2018年07月11日 | 公開。 |
2018年08月31日 | LTspiceがLTSpiceと表記されていたのを改めた。 |
Analog Devices社が無償で配布しているLTspiceという回路シミュレーションソフトは、無償で使えて、かつ、かなり本格的な回路シミュレーションができるので、アマチュアの電子工作愛好家や、電子回路開発を行う小規模事業者にはありがたい存在です。この記事では、LTspiceで理想オペアンプを含む回路のシミュレーションをする方法について説明します。
LTspiceで回路シミュレーションを行うと、現実の部品を使って回路を作った場合と非常に近い特性が得られます。そのため、回路の設計にLTspiceを使うと、試作回数を減らす事ができます。この様に、現実の部品が持つ色々な不都合な性質(例えばオペアンプの場合だと利得や帯域が有限であるなど)を考慮して回路のシミュレーションができる事は、回路設計で強力な武器になります。
注:LTspiceが他のSpice系のシミュレーションソフトよりも優れていると主張している訳ではありません。他のSpice系ソフトと同様に優れています。
一方で、初心者が教科書に書いてある事を試そうとする場合は、理想的に動作する部品(オペアンプの場合だと利得や帯域が無限大であるなど)を使ってシミュレーションができる方が、回路の動作の理解がしやすい場合があります。教科書に載っている式やグラフは、回路が理想的な部品だけで構成されている事を前提にしている場合が多くあります。現実の部品の特性を考慮して回路のシミュレーションを行うと、シミュレーション結果が教科書と違った場合に、その原因が、教科書が前提にしている理想的な部品と現実の部品の特性に違いがあるからなのか、回路図がLTspiceに正確に入力されていないからなのか、教科書の式やグラフが間違っているからなのか、LTspiceの計算誤差なのかといった事が、初心者には判別しにくいという問題が生じます。
また、回路設計の上級者の場合でも、使いたい部品のシミュレーションモデルが入手できない場合、とりあえず理想的な部品を使ってシミュレーションし、設計中の回路の性能の上限を見極めたい場合もあります。
筆者の場合も、考案した回路の性能の理論的な上限を見極めるために、理想オペアンプを使ってシミュレーションをしたい事があるのですが、最初、その方法が分からなかったために、色々と調べたり試行錯誤をしました。
この記事では、理想オペアンプを使った回路のシミュレーションをLTspiceで行う方法を、何通りか紹介します。
なお、この記事は、LTspice XVIIをWindows 10で使用する事を前提に書いています。
この記事で考える理想オペアンプとは、次の様な性質を持ったオペアンプの事です。
10番の「出力電圧の範囲が-∞~+∞」という性質は、場合によっては理想オペアンプの必要条件とはみなされない事もありますが、この記事では理想オペアンプの必要条件と考えます。
1番の「オープンループ電圧利得が無限大」という性質は、この記事で紹介する方法では実現できませんが、現実の回路で問題にならない大きな値(例えば200dB)に設定する事ができます。
2番の「周波数帯域が無限大」という性質は、後述のopamp(LTspiceの部品名)を使う方法では実現できませんが、現実の回路で問題にならない広帯域(例えばGB積が1GHz)に設定する事ができます。
4番の「出力インピーダンスが0」という条件は、後述のopampを使う方法では実現できません。opampでは、低周波領域の出力インピーダンスが1Ωに設定されています。(高周波数領域では、出力インピーダンスがもっと下がります) ただし、オペアンプは負帰還を掛けて使う事が多く、その場合、帰還量に応じて、オペアンプの見かけ上の出力インピーダンスはさらに下がりますから、出力インピーダンスが1Ωあっても、実際の回路では困る事はないはずです。
6番、7番、12番の性質は、普通のオペアンプのモデルを使ってシミュレーションしても、成立している事が多いです。(逆に言えば、それらの性質に配慮していないシミュレーションモデルも多くあります)
まず、LTspiceに標準で付いてくる、opampという部品を使った、理想オペアンプのシミュレーション方法について説明します。
なお、3-7節に、opampを使うシミュレーション方法についての要点がまとめてありますので、結論を先に確認したい方は、そちらを先にご覧ください。
図1の様にLTspiceでコンポーネントアイコンをクリックすると出てくるSelect Component Symbolダイアログボックスで、図2の様にOpampsフォルダをダブルクリックしてください。
そうすると、Opampsフォルダの最後の方に、opampという部品が見つかるはずですので、それをダブルクリックして回路図に配置してください。(図3、図4参照)
このopampという部品は、オープンループ電圧利得が有限(デフォルトで100dB)という点と、GB積が有限(デフォルトで10MHz)という点と、出力インピーダンスが低周波領域で1Ω(高周波領域ではもっと下がる)という点の3点では理想オペアンプと異なりますが、他の点では、全て理想オペアンプと同じ特性になります。つまり、先に述べた理想アンプの必要条件の1番と2番と4番以外は、全て満たしています。
また、後述する様に、opampのパラメータを変更すれば、理想オペアンプの必要条件の1番と2番に関しては、事実上問題とならない程度に満たす事ができます。
理想オペアンプの必要条件の10番により、出力電圧が電源電圧に制限されないため、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に結び付けられ、シミュレーションが行えるようになりました。
デフォルト状態でのopampの周波数特性を確認してみましょう。AC電圧源を2つの入力の間に入れて、AC解析をすれば周波数特性が解析できます。
そのためには、図8の様に回路を組みます。
左のV1という部品(円の中に+とーの記号が書いてある部品)は、voltageという名前の部品(電圧源)です。コンポーネントアイコンをクリックし(図1参照)、Select Component Symbolダイアログボックスでvoltageをダブルクリックするとvoltageが回路図上に配置できます。(図9、10参照)
voltageが回路図中に配置できたら、AC解析用に電圧を設定します。それにはまず先ほど配置したvoltage(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参照)
図8の回路図の右側のVoutというラベルを入力するには、図13の様にLabel Netアイコン(四角に囲まれたAという文字のアイコン)をクリックしてください。
そうすると、図14の様にNet Nameダイアログボックスが開きますから、エディットボックス(文字を入力する四角い箱)にVoutと入力して、OKボタンをクリックします。
そうするとVoutのラベルが回路図上に配置できる様になりますので、適切な位置に配置してください。(図15参照)
この後、GND記号を配置し、配線で部品を結んで図8の回路を組み上げます。
ここで、AC解析を行います。今回は10Hz~1GHzの範囲で解析を行います。周波数が等比数列をなす様に周波数を変化させ(対数目盛り)、周波数が10倍になる間に100回のシミュレーションをします。
図16に示す様に、Simulateメニューの中のEdit Simulation Cndメニューを選んでください。
そうすると、図17に示す様に、Edit Simulation Commandダイアログボックスが開きますので、AC Analysisのタブを選択後、Type of sweepの欄でDecadeを選択し、Number of points per decadeの欄には100、Start frequencyの欄には10Hz、Stop frequencyの欄には1GHzと入力します。正しく入力できているのが確認出来たらOKボタンをクリックします。
そうすると、図18に示す様に、.ac dec 100 10Hz 1GHzという文字列が回路図中に配置できる様になりますので、回路図中の邪魔にならない所に配置してください。
この後、Runアイコン(人が走っているアイコン)をクリックするとシミュレーションが行われます。(図19参照)
そうすると、図20の様に画面が上下2つに分かれ、一方に今までに入力した回路図が、もう一方にグラフが表示されます。
この状態では、グラフに何も表示されていません。そこで、次に図21に示す様に、回路図中のVoutのラベルが付けられた配線上でクリックします。この時、マウスカーソルは、オシロスコープのプローブの様な形になっているはずです。
Voutのラベルの配線をクリックすると、グラフにopampの周波数特性が表示されます。(図22参照)
このグラフには実線の振幅特性と、点線の位相特性が同時に表示されていますが、振幅特性に注目してください。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は、一般的に使われる事の多い汎用品に、おおむね特性を合わせているみたいです。現実の回路の性能の検討をする時には使いやすいかも知れませんが、高周波数の回路のシミュレーションには使えませんし、理論式の検討に使うには全く性能不足です。このままでは面白くありません。
実は、opampは利得とGB積の2つのパラメータを変更できる様になっています。
それでは、opampのパラメータを変更してみましょう。
回路図中のopamp(U1)にカーソルを合わせて右クリックすると、図23の様に、Component Attribute Editorダイアログボックスが開きます。
ここで図24の様に、SpiceLineをAol=10Megに打ち換え、SpiceLine2をGBW=1Gに打ち換えて、OKボタンをクリックしてください。
このAolというのは、直流におけるオープンループ電圧利得です。
デフォルトのAolは10万倍(100k)でしたから、デシベルに換算すると100dBだったことになります。
設定し直したAolは1000万倍(10Meg)ですから、デシベル換算で140dBです。この140dBという利得はかなり高めで、現実のオペアンプではなかなか実現できている物は少ないのではないでしょうか。
GBWというのはGB積の事です。
デフォルトのGBWは10MHzでしたが、それを100倍の1GHzに上げました。GBWが1GHzのオペアンプと言えば、広帯域用のかなり特殊なオペアンプです。
この状態で、opampの周波数特性を求めてみましょう。Runアイコン(図19参照)をクリックして、もう一度シミュレーションをしてください。
今度は、図25の様なグラフが得られました。
ちゃんと周波数が低い所の利得が140dBになって、利得が0dBになる周波数が1GHzになりましたね。
参考までに、デフォルト状態のopamp(Aol=100k GBW=10Meg)と特性を改善したopamp(Aol=10Meg GBW=1G)の特性を比較したのが図26のグラフです。AolとGBWの両方を100倍にしたことで、全帯域で利得が上昇している事が分かります。
以上の例では、元々の周波数特性と比較しやすい様に、利得とGB積をそれぞれ100倍した例を示しました。さらに、本当に理想オペアンプと呼べるような特性を得たいなら、Aolを1010倍(200dB)、GBWを1020Hzなどと、両方のパラメータに非現実的な大きな数字を設定すればいいです。(図27参照)
参考:1020Hzという周波数は、ガンマ線に相当する周波数です。
この場合、図28の様な周波数特性が得られます。10Hz~1GHzまで、ほぼ200dB一定の利得が得られているのが分かります。
opampの利得とGB積を大きな値に設定すれば、ほぼ理想オペアンプみなしてよい周波数特性が得られる事はお分かりいただけたと思います。しかし、利得やGB積の設定の変更が、回路図上で確認できないのは不便です。回路図を見ただけでは、デフォルトのopampなのか、理想オペアンプ化したopampなのかが、判別できません。
この様な場合、図29の様に、Component Attribute EditorダイアログボックスでSpiceLineとSpiceLine2の2行のVis.の列にチェックを入れると、AolとGBWのパラメータを回路図中に表示する事ができます。
参考:Vis.はVisible(見える)の省略形だと思われます。
次のページではopampの出力インピーダンスの話をします。