SPICEモデルの使用法として、LTspiceにデフォルトで
登録されているシンボルをつかったやり方を挙げます。
ここでは、サブサーキットモデルとして
アナログデバイセズ社のオペアンプAD8572を、
トランジスタモデルとしてZETEX社のNPNトランジスタFMMT617
を使用した定電流駆動回路を例としてとりあげます。
SPICEモデルを利用するために使用するシンボルは、それぞれ、
オペアンプ(シンボル名:opamp2)
NPNトランジスタ(シンボル名:npn)
を利用します。
オペアンプおよびトランジスタをシンボルを置くだけに
とどめ、その他抵抗などの値を記入した回路図です。
R4 は回路としては本来必要のない抵抗ですが、オペアンプの出力が
トランジスタのベースなど入力抵抗の高いものにつながれている場合に
シミュレーションの初期動作電位が決まらない問題(Iteration error)
を避けるために入れてあります。
ここで、SPICEモデルを参照するために必要な手続きを述べます。
まずオペアンプから。
オペアンプのシンボル上にマウスカーソルを置き、
その場で Ctrlキーを押しながら右クリックします。
すると以下のような画面が現れますので、Value のところの
opamp2 をサブサーキットのモデル名と置き換えます。
今回の場合は、AD8572 です。
その後、モデル名が回路図上で読めるよう、Visible を
有効にしておきます。設定は以下のようになります。
これで Ok をクリックします。
つぎにトランジスタ。
同様にシンボルの上で、Ctrl key−右クリックを行い、
Value のところをNPNトランジスタのモデル名(今回の場合、FMMT617)
と置き換えます。
(LTspice のヘルプには FAQ のところにサードパーティ製のモデルを
使用する方法がのっています。そこでは、LTspice デフォルトの
ライブラリファイルを変更するように記述がありますが、上記の
方法でも問題なく使用できますので私はもっぱらこちらの方法を
利用しています。)
これでシンボルのほうの準備は整いました。あとは、シミュレータに
正しくモデル定義ファイルを参照するよう必要な情報を与えるだけです。
シミュレータに追加のライブラリファイルを参照させるようにするには、
.LIB コマンドを利用します。
アイコンをクリックして、
(もしくは、メニュー Edit から、SPICE Directive を選択して)
現れたウィンドウに、”.LIB モデル定義ファイル名”と入力します。
Ok をクリックし、回路図上の適当な位置で左クリックすることで
コマンド入力を完了します。
今回の例ではそれぞれのモデルが別のファイルにありますので、
2回作業を繰り返します。回路図は以下のようになります。
これでシミュレーションの準備が整いました。
Runアイコンをクリックしてシミュレーションを実行してみましょう。
とりあえず、2秒間のTransient解析を行います。
V(Imon) をプロットするとほぼ理想的に回路が動いていることがわかります。
つぎにAC解析を行ってみます。
AC解析のため、入力となる信号にACを定義します。
V2 の上で右クリックして部品の詳細設定画面を開き、
以下のように設定を変更します。
Ok をクリックし画面を閉じます。
今度は、.Tran 2 と回路図上にあるシミュレーションコマンド
の上で右クリックをします。
シミュレーションの設定画面があらわれますので、AC Analisys
タブを選んで、以下のように設定します。
Type of Sweep: Decade は周波数を、1, 10, 100, 1000,... というように
10倍区切りで掃引します。Type of Sweep: Octave は周波数を
1, 2, 4, 8, 16, 31, 64,...というように、2倍区切りで掃引します。
Ok をクリックしシミューレーションの設定を終了した後、
いったんグラフウィンドウを閉じて(右上の X アイコンをクリック)
Runアイコンをクリックしてシミュレーションを実行します。
I(R1)をプローブした結果は以下のようになります。
1MHz近辺で若干ピークをもった変調特性が確認されます。
ちなみに、この AC 解析で R4 を 10Meg 程度より大きくとると
Iteration error が出るようです。Transient 解析のほうは特に
問題ないようですが。
この Iteration error は SPICE シミュレーションオプションの
Gmin stepping をスキップしたりすると回避できる場合もあるようですが、
このあたりあまり深く突っ込んでいません。
サブサーキットモデルを利用する上でライブラリと
シンボルのピンは対応していなくてはなりません。
ほとんどの場合(今回の場合も含めて)
標準と言っていいほどそのまま使用できますが、
やはり認識は必要かと思われます。
今回使用した Opamp2 というシンボルは5つの端子を
もち、
noninverting input
inverting input
positive power supply
negative power supply
output
という順番の定義に対応しています。
したがって、使用したいサブサーキットファイルが
この順番と異なるときは、自分でサブサーキットの
ファイルを編集してピンの順番の定義を
あわせる必要があります。(たいていは .subckt
のある行を変更するだけですが。)