LTspiceで理想オペアンプを使う(1)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) 次のページへ
2018年07月11日 公開。
2018年08月31日 LTspiceがLTSpiceと表記されていたのを改めた。

Analog Devices社が無償で配布しているLTspiceという回路シミュレーションソフトは、無償で使えて、かつ、かなり本格的な回路シミュレーションができるので、アマチュアの電子工作愛好家や、電子回路開発を行う小規模事業者にはありがたい存在です。この記事では、LTspiceで理想オペアンプを含む回路のシミュレーションをする方法について説明します。

この記事で紹介する理想オペアンプの特性を測定している様子
↑ 画像をクリックすると拡大
この記事で紹介する理想オペアンプの特性を測定している様子

目次

1. はじめに … 1ページ
2. 理想オペアンプとは … 1ページ
3. opampを使う方法 … 1ページ
3-1. opampを回路図中に配置する … 1ページ
3-2. opamp.subをopampに結び付ける … 1ページ
3-3. opampの周波数特性をシミュレーションしてみる … 1ページ
3-4. opampの利得とGB積を変更する … 1ページ
3-5. opampのパラメータを表示する … 1ページ
3-6. opampの出力インピーダンスを確認する … 2ページ
3-7. opampを使って理想オペアンプのシミュレーションを行う方法のまとめ … 2ページ
4. 電圧制御電圧源を使う方法 … 3ページ
4-1. 電圧制御電圧源とは … 3ページ
4-2. 電圧制御電圧源で近似的に構成した理想オペアンプ … 3ページ
4-3. 非反転増幅回路を電圧制御電圧源で構成する … 3ページ
4-3-1. 非反転増幅回路とは … 3ページ
4-3-2. 理想オペアンプを電圧制御電圧源で構成して非反転増幅回路の特性をシミュレーションする … 3ページ
4-3-3. 非反転増幅回路をさらに簡略化する … 3ページ
4-4. 反転増幅回路を電圧制御電圧源で構成する … 3ページ
4-4-1. 反転増幅回路とは … 3ページ
4-4-2. 理想オペアンプを電圧制御電圧源で構成して非反転増幅回路の特性をシミュレーションする … 3ページ
4-4-3. 反転増幅回路をさらに簡略化する … 3ページ
4-5. 電圧制御電圧源で理想オペアンプのシミュレーションを行う方法のまとめ … 3ページ
5. opamp_idealを使う方法 … 4ページ
5-1. opamp_idealについて … 4ページ
5-2. opamp_idealのダウンロードとインストール … 4ページ
5-3. opamp_idealの使い方 … 4ページ
5-4. オープンループ電圧利得の変更法 … 4ページ
5-5. opamp_idealを使って理想オペアンプのシミュレーションを行う方法のまとめ … 4ページ
6. おわりに … 4ページ
広告

1.はじめに

LTspiceで回路シミュレーションを行うと、現実の部品を使って回路を作った場合と非常に近い特性が得られます。そのため、回路の設計にLTspiceを使うと、試作回数を減らす事ができます。この様に、現実の部品が持つ色々な不都合な性質(例えばオペアンプの場合だと利得や帯域が有限であるなど)を考慮して回路のシミュレーションができる事は、回路設計で強力な武器になります。

注:LTspiceが他のSpice系のシミュレーションソフトよりも優れていると主張している訳ではありません。他のSpice系ソフトと同様に優れています。

一方で、初心者が教科書に書いてある事を試そうとする場合は、理想的に動作する部品(オペアンプの場合だと利得や帯域が無限大であるなど)を使ってシミュレーションができる方が、回路の動作の理解がしやすい場合があります。教科書に載っている式やグラフは、回路が理想的な部品だけで構成されている事を前提にしている場合が多くあります。現実の部品の特性を考慮して回路のシミュレーションを行うと、シミュレーション結果が教科書と違った場合に、その原因が、教科書が前提にしている理想的な部品と現実の部品の特性に違いがあるからなのか、回路図がLTspiceに正確に入力されていないからなのか、教科書の式やグラフが間違っているからなのか、LTspiceの計算誤差なのかといった事が、初心者には判別しにくいという問題が生じます。

また、回路設計の上級者の場合でも、使いたい部品のシミュレーションモデルが入手できない場合、とりあえず理想的な部品を使ってシミュレーションし、設計中の回路の性能の上限を見極めたい場合もあります。

筆者の場合も、考案した回路の性能の理論的な上限を見極めるために、理想オペアンプを使ってシミュレーションをしたい事があるのですが、最初、その方法が分からなかったために、色々と調べたり試行錯誤をしました。

この記事では、理想オペアンプを使った回路のシミュレーションをLTspiceで行う方法を、何通りか紹介します。

なお、この記事は、LTspice XVIIをWindows 10で使用する事を前提に書いています。

2.理想オペアンプとは

この記事で考える理想オペアンプとは、次の様な性質を持ったオペアンプの事です。

  1. オープンループ電圧利得が無限大である。
  2. 性能が劣化せずに(特に利得が下がらずに)使用できる周波数帯域がDC~無限大まである。
  3. 入力インピーダンスが無限大である。
  4. 出力インピーダンスが0である。
  5. 入力バイアス電流が0である。
  6. 入力オフセット電流が0である。
  7. 入力オフセット電圧や入力オフセット電圧ドリフトが0である。
  8. 同相信号除去比(CMRR)や電源電圧変動除去比(PSRR)が無限大である。
  9. 短絡保護回路などがなく、出力電流に制限がかからない。出力電流の上限・下限が±∞。
  10. 出力電圧の範囲が電源電圧にかかわりなく-∞~+∞である。
  11. ノイズが全く発生しない。
  12. 電力損失に上限がない。(大きな負荷を掛けても発熱して壊れるという事がない)
  13. スルーレートが無限大。

10番の「出力電圧の範囲が-∞~+∞」という性質は、場合によっては理想オペアンプの必要条件とはみなされない事もありますが、この記事では理想オペアンプの必要条件と考えます。

1番の「オープンループ電圧利得が無限大」という性質は、この記事で紹介する方法では実現できませんが、現実の回路で問題にならない大きな値(例えば200dB)に設定する事ができます。

2番の「周波数帯域が無限大」という性質は、後述のopamp(LTspiceの部品名)を使う方法では実現できませんが、現実の回路で問題にならない広帯域(例えばGB積が1GHz)に設定する事ができます。

4番の「出力インピーダンスが0」という条件は、後述のopampを使う方法では実現できません。opampでは、低周波領域の出力インピーダンスが1Ωに設定されています。(高周波数領域では、出力インピーダンスがもっと下がります) ただし、オペアンプは負帰還を掛けて使う事が多く、その場合、帰還量に応じて、オペアンプの見かけ上の出力インピーダンスはさらに下がりますから、出力インピーダンスが1Ωあっても、実際の回路では困る事はないはずです。

6番、7番、12番の性質は、普通のオペアンプのモデルを使ってシミュレーションしても、成立している事が多いです。(逆に言えば、それらの性質に配慮していないシミュレーションモデルも多くあります)

3.opampを使う方法

まず、LTspiceに標準で付いてくる、opampという部品を使った、理想オペアンプのシミュレーション方法について説明します。

なお、3-7節に、opampを使うシミュレーション方法についての要点がまとめてありますので、結論を先に確認したい方は、そちらを先にご覧ください。

3-1.opampを回路図中に配置する

図1の様にLTspiceでコンポーネントアイコンをクリックすると出てくるSelect Component Symbolダイアログボックスで、図2の様にOpampsフォルダをダブルクリックしてください。

図1、コンポーネントアイコンをクリックする様子
図1、コンポーネントアイコンをクリックする様子
図2、Opampsフォルダをダブルクリックする様子
図2、Opampsフォルダをダブルクリックする様子

そうすると、Opampsフォルダの最後の方に、opampという部品が見つかるはずですので、それをダブルクリックして回路図に配置してください。(図3、図4参照)

図3、opampという部品をダブルクリックする様子
図3、opampという部品をダブルクリックする様子
図4、opampを回路図上に配置する様子
図4、opampを回路図上に配置する様子

このopampという部品は、オープンループ電圧利得が有限(デフォルトで100dB)という点と、GB積が有限(デフォルトで10MHz)という点と、出力インピーダンスが低周波領域で1Ω(高周波領域ではもっと下がる)という点の3点では理想オペアンプと異なりますが、他の点では、全て理想オペアンプと同じ特性になります。つまり、先に述べた理想アンプの必要条件の1番と2番と4番以外は、全て満たしています。

また、後述する様に、opampのパラメータを変更すれば、理想オペアンプの必要条件の1番と2番に関しては、事実上問題とならない程度に満たす事ができます。

理想オペアンプの必要条件の10番により、出力電圧が電源電圧に制限されないため、opampには電源端子がありません。(言い換えるならば、電源電圧が±無限大とみなさると考えてもいいです)

3-2.opamp.subをopampに結び付ける

opampを使ったシミュレーションを行う場合には、忘れずに"opamp.sub"というファイルを.libコマンドで取り込む必要があります

opamp.subというのは、opampの中身の回路を記述したファイルです。通常の部品の場合、Select Component Symbolダイアログボックス(図2参照)で選んだ部品のシンボル(記号)は、部品の中身を記述する.subファイルや.libファイルに結び付けられているのですが、どういう訳か、opampの場合は、その結びつけがデフォルトではされておらず、ユーザーが明示的に結び付けなければならないのです。

opampのシンボルとopamp.subを結び付けるには、図5の様にSPICE directiveアイコン(.opと書いたアイコン)をクリックします。そして図6の様に、Edit Text on the Schematicダイアログボックスで、.lib "opamp.sub"と入力し、OKボタンをクリックします。そうすると図7の様に、.lib "opamp.sub"という文字列が回路図中に配置できる様になりますので、回路図中の邪魔にならない所に移動して、クリックして配置してください。これでopampの部品がopamp.subに結び付けられ、シミュレーションが行えるようになりました。

図5、SPICE directiveアイコンをクリックする様子
図5、SPICE directiveアイコンをクリックする様子
図6、.lib "opamp.sub"と入力している様子
図6、.lib "opamp.sub"と入力している様子
図7、.lib "opamb.sub"を回路図中に配置している様子
↑ 画像をクリックすると拡大
図7、.lib "opamb.sub"を回路図中に配置している様子

3-3.opampの周波数特性をシミュレーションしてみる

デフォルト状態でのopampの周波数特性を確認してみましょう。AC電圧源を2つの入力の間に入れて、AC解析をすれば周波数特性が解析できます。

そのためには、図8の様に回路を組みます。

図8、opampの周波数特性を測るための回路
↑ 画像をクリックすると拡大
図8、opampの周波数特性を測るための回路

左のV1という部品(円の中に+とーの記号が書いてある部品)は、voltageという名前の部品(電圧源)です。コンポーネントアイコンをクリックし(図1参照)、Select Component Symbolダイアログボックスでvoltageをダブルクリックするとvoltageが回路図上に配置できます。(図9、10参照)

図1(再掲)、コンポーネントアイコンをクリックする様子
図1(再掲)、コンポーネントアイコンをクリックする様子
図9、voltageをダブルクリックしている様子
図9、voltageをダブルクリックしている様子
図10、voltageを回路図中に配置している様子
図10、voltageを回路図中に配置している様子

voltageが回路図中に配置できたら、AC解析用に電圧を設定します。それにはまず先ほど配置したvoltage(V1)を右クリックしてください。図11の様なVoltage Source - V1というダイアログボックスが開きます。

図11、Voltage Source -V1ダイアログボックス
図11、Voltage Source -V1ダイアログボックス

もしV1を直流電圧源として使用するなら、DC value[V]の欄に電圧を入力すればいいのですが、今回は交流電圧源にしてAC解析するつもりですので、Advancedボタンをクリックします。

そうすると、Independent Voltage Source -V1というダイアログボックスが開きますので、Small signal AC analysis(AC)AC Amplitudeの欄に1Vと入力して、OKボタンをクリックしてください。(図12参照)

図12、AC Amplitudeの欄に"1V"と入力している様子
図12、AC Amplitudeの欄に"1V"と入力している様子

図8の回路図の右側のVoutというラベルを入力するには、図13の様にLabel Netアイコン(四角に囲まれたAという文字のアイコン)をクリックしてください。

図13、Label Netアイコンをクリックしている様子
図13、Label Netアイコンをクリックしている様子

そうすると、図14の様にNet Nameダイアログボックスが開きますから、エディットボックス(文字を入力する四角い箱)にVoutと入力して、OKボタンをクリックします。

図14、エディットボックスに"Vout"と入力してOKボタンをクリックする様子
図14、エディットボックスに"Vout"と入力してOKボタンをクリックする様子

そうするとVoutのラベルが回路図上に配置できる様になりますので、適切な位置に配置してください。(図15参照)

図15、Voutのラベルを回路図中に配置した後の様子
図15、Voutのラベルを回路図中に配置した後の様子

この後、GND記号を配置し、配線で部品を結んで図8の回路を組み上げます。

図8(再掲)、opampの周波数特性を測るための回路
↑ 画像をクリックすると拡大
図8(再掲)、opampの周波数特性を測るための回路

ここで、AC解析を行います。今回は10Hz~1GHzの範囲で解析を行います。周波数が等比数列をなす様に周波数を変化させ(対数目盛り)、周波数が10倍になる間に100回のシミュレーションをします。

図16に示す様に、Simulateメニューの中のEdit Simulation Cndメニューを選んでください。

図16、Edit Simulation Cmdメニューを選んでいる様子
図16、Edit Simulation Cmdメニューを選んでいる様子

そうすると、図17に示す様に、Edit Simulation Commandダイアログボックスが開きますので、AC Analysisのタブを選択後、Type of sweepの欄でDecadeを選択し、Number of points per decadeの欄には100Start frequencyの欄には10HzStop frequencyの欄には1GHzと入力します。正しく入力できているのが確認出来たらOKボタンをクリックします。

図17、AC Analysisタブで設定値を入力してOKボタンをクリックする様子
図17、AC Analysisタブで設定値を入力してOKボタンをクリックする様子

そうすると、図18に示す様に、.ac dec 100 10Hz 1GHzという文字列が回路図中に配置できる様になりますので、回路図中の邪魔にならない所に配置してください。

図18、".ac dec 100 10Hz 1GHz"の文字列を回路図中に配置している様子
↑ 画像をクリックすると拡大
図18、".ac dec 100 10Hz 1GHz"の文字列を回路図中に配置している様子

この後、Runアイコン(人が走っているアイコン)をクリックするとシミュレーションが行われます。(図19参照)

図19、Runアイコンをクリックする様子
図19、Runアイコンをクリックする様子

そうすると、図20の様に画面が上下2つに分かれ、一方に今までに入力した回路図が、もう一方にグラフが表示されます。

図20、シミュレーション終了後の画面
↑ 画像をクリックすると拡大
図20、シミュレーション終了後の画面

この状態では、グラフに何も表示されていません。そこで、次に図21に示す様に、回路図中のVoutのラベルが付けられた配線上でクリックします。この時、マウスカーソルは、オシロスコープのプローブの様な形になっているはずです。

図21、プローブ状のマウスカーソルをVoutのラベルの配線上に置いた様子
図21、プローブ状のマウスカーソルをVoutのラベルの配線上に置いた様子

Voutのラベルの配線をクリックすると、グラフにopampの周波数特性が表示されます。(図22参照)

図22、デフォルトのopampの周波数特性のグラフ
↑ 画像をクリックすると拡大
図22、デフォルトのopampの周波数特性のグラフ

このグラフには実線の振幅特性と、点線の位相特性が同時に表示されていますが、振幅特性に注目してください。10Hz程度の低い周波数では電圧利得が100dB(10万倍)になっています。また、周波数が上がるほど利得は下がり、10MHzで利得が0dB(1倍)にまで低下しています。

このグラフは、opampが理想オペアンプとは違い、現実のオペアンプに近い動作をしている事を示しています。理想オペアンプの場合は低い周波数の利得は100dBではなく無限大になります。また、理想オペアンプでは、周波数が上がっても利得が低下する事はありません。

opampの様な単極型オペアンプ(ある周波数まで利得が平坦で、ある周波数以降は-6dB/octの傾きで利得が低下するオペアンプ)は、利得が右肩下がりになっている領域で、利得と周波数の積が一定になります。この積をGB積と呼び、Hzの単位で表示します。

GB積は、オペアンプがどの程度高い周波数まで使えるかの指標になっています。もちろん、GB積の大きなオペアンプほど、高い周波数まで使える高性能なオペアンプという事になります。

周波数特性のグラフからGB積を読み取る一番簡単な方法は、利得が0dBになる周波数を読み取る事です。図22のグラフで利得が0dBとなる周波数を読み取ると、10MHzになりますから、opampのGB積は10MHzという事になります。

安価な汎用オペアンプは、利得(十分低い周波数のオープンループ電圧利得)が100~120dBの物が多く、一方でopampの利得は100dBですから、opampの利得は、標準的だと言えます。

また、安価な汎用オペアンプのGB積は、1MHz~数MHzの物が多く、一方でopampのGB積は10MHzですから、opampは汎用品よりやや高性能と言えそうですが、とびぬけて高性能というほどでもありません。

どうやらopampは、一般的に使われる事の多い汎用品に、おおむね特性を合わせているみたいです。現実の回路の性能の検討をする時には使いやすいかも知れませんが、高周波数の回路のシミュレーションには使えませんし、理論式の検討に使うには全く性能不足です。このままでは面白くありません。

広告

3-4.opampの利得とGB積を変更する

実は、opampは利得とGB積の2つのパラメータを変更できる様になっています。

それでは、opampのパラメータを変更してみましょう。

回路図中のopamp(U1)にカーソルを合わせて右クリックすると、図23の様に、Component Attribute Editorダイアログボックスが開きます。

図23、Component Attribute Editorダイアログボックス
図23、Component Attribute Editorダイアログボックス

ここで図24の様に、SpiceLineAol=10Megに打ち換え、SpiceLine2GBW=1Gに打ち換えて、OKボタンをクリックしてください。

図24、SpiceLineを"Aol=10Meg"に、SpiceLine2を"GBW=1G"に打ち換えた様子
図24、SpiceLineを"Aol=10Meg"に、SpiceLine2を"GBW=1G"に打ち換えた様子

このAolというのは、直流におけるオープンループ電圧利得です。

デフォルトのAolは10万倍(100k)でしたから、デシベルに換算すると100dBだったことになります。

設定し直したAolは1000万倍(10Meg)ですから、デシベル換算で140dBです。この140dBという利得はかなり高めで、現実のオペアンプではなかなか実現できている物は少ないのではないでしょうか。

GBWというのはGB積の事です。

デフォルトのGBWは10MHzでしたが、それを100倍の1GHzに上げました。GBWが1GHzのオペアンプと言えば、広帯域用のかなり特殊なオペアンプです。

この状態で、opampの周波数特性を求めてみましょう。Runアイコン(図19参照)をクリックして、もう一度シミュレーションをしてください。

図19(再掲)、Runアイコンをクリックする様子
図19(再掲)、Runアイコンをクリックする様子

今度は、図25の様なグラフが得られました。

図25、Aol=10Meg GBW=1Gに改善したopampの周波数特性
↑ 画像をクリックすると拡大
図25、Aol=10Meg GBW=1Gに改善したopampの周波数特性

ちゃんと周波数が低い所の利得が140dBになって、利得が0dBになる周波数が1GHzになりましたね。

参考までに、デフォルト状態のopamp(Aol=100k GBW=10Meg)と特性を改善したopamp(Aol=10Meg GBW=1G)の特性を比較したのが図26のグラフです。AolとGBWの両方を100倍にしたことで、全帯域で利得が上昇している事が分かります。

図26、デフォルトのopamp(青)とAol=10Meg GBW=1Gに改善したopamp(緑)の周波数特性
↑ 画像をクリックすると拡大
図26、デフォルトのopamp(青)とAol=10Meg GBW=1Gに改善したopamp(緑)の周波数特性

以上の例では、元々の周波数特性と比較しやすい様に、利得とGB積をそれぞれ100倍した例を示しました。さらに、本当に理想オペアンプと呼べるような特性を得たいなら、Aolを1010倍(200dB)、GBWを1020Hzなどと、両方のパラメータに非現実的な大きな数字を設定すればいいです。(図27参照)

参考:1020Hzという周波数は、ガンマ線に相当する周波数です。

図27、Aol=1e10とGBW=1e20に設定している様子
図27、Aol=1e10とGBW=1e20に設定している様子

この場合、図28の様な周波数特性が得られます。10Hz~1GHzまで、ほぼ200dB一定の利得が得られているのが分かります。

図28、Aol=1e10とGBW=1e20の場合の周波数特性
↑ 画像をクリックすると拡大
図28、Aol=1e10とGBW=1e20の場合の周波数特性

3-5.opampのパラメータを表示する

opampの利得とGB積を大きな値に設定すれば、ほぼ理想オペアンプみなしてよい周波数特性が得られる事はお分かりいただけたと思います。しかし、利得やGB積の設定の変更が、回路図上で確認できないのは不便です。回路図を見ただけでは、デフォルトのopampなのか、理想オペアンプ化したopampなのかが、判別できません。

この様な場合、図29の様に、Component Attribute EditorダイアログボックスでSpiceLineSpiceLine2の2行のVis.の列にチェックを入れると、AolGBWのパラメータを回路図中に表示する事ができます。

参考:Vis.はVisible(見える)の省略形だと思われます。

図29、SpiceLineとSpiceLine2の行のVis.の列にチェック(×マーク)を入れている様子
図29、SpiceLineとSpiceLine2の行のVis.の列にチェック(×マーク)を入れている様子
図30、AolとGBWの2つのパラメータを回路図中に表示した様子
↑ 画像をクリックすると拡大
図30、AolとGBWの2つのパラメータを回路図中に表示した様子

次のページではopampの出力インピーダンスの話をします。

目次へ  前のページへ (1) (2) (3) (4) 次のページへ

このページで使われている用語の解説

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。