LTspiceで、サブサーキットをLTspiceの回路図エディタを使用して
利用する方法の一例です。
肝心なことは、サブサーキットにしたい回路図ファイル(*.ascファイル)
とそのシンボルファイル(*.asyファイル)を同じ名前(sub.asc, sub.asy 等)
にして親回路図ファイルと同じディレクトリに置く、ということです。
LTspice のヘルプでは Schematic Capture - Hierarchy として説明されています。
以下、具体的に使用例を述べます。
以下のようなLPF回路図を作成し、sub01.asc (拡張子 .asc はデフォルトで設定されます)
というファイル名で保存します。
このサブサーキットは、IN と OUT とラベルされた2個の端子をもちます。
つぎに、シンボルの準備をします。メニューのFileから、New Symbol を選択し、
シンボル編集画面を開きます。
このシンボル編集画面では、メニューの、Edit と Draw を非常に良く使います。
早速、メニューの Draw から Rect を選択し、
シンボルの外形用に四角を描きます。
描き方は、Rectを選択した後、
左上のコーナーとおぼしき位置で左クリック、
そのあと、右下のコーナーとおぼしき位置でまた左クリック、
Escキーもしくは右クリックで Rect モードから抜ける、となります。
描き終わった四角の例です。
つぎに、端子となるべき、線を2本加えます。Draw から Line を選択して
線を2本引いてください。Line は Esc キーもしくは右クリックで抜けるまで
折れ線を引こうとしますが、右クリックにて抜けると続けて Line が引けます。
Esc キーで抜けるともう一度メニューから Draw-Line となります。
描き終わったシンボルの例です。
もし描き間違えた場合は、
ハサミアイコンを使うことで間違った部分を削除できます。
ただ、シンボルの形そのものはシミュレーション結果に
影響を与えませんのであまり神経質になる必要は無いかと思います。
次に端子名を与えます。この端子名は先の回路図で使った端子名と
一致していなければなりません。メニューの Edit から Add Pin/Port を
選択します。まず、端子 IN からはじめます。
Label に IN と入力し、Pin Label Position をお好みで選びます。
NONE はお勧めしません。Netlist Order は、テキストベースの
サブサーキットモデルのときに意味を持ちます。
もし、ご自身のSPICEモデルライブラリなど利用したい場合は、
Netlist Order をそのモデルに合わせて設定してください。
さて、Okを左クリックして IN を向かって左側の端子の先に置きます(左クリック)。
同様に、端子 OUT を作成します。
とりあえずこれでシンボルの準備が整いました。
メニューの File から Save As にて sub01.asy
(拡張子 .asy はデフォルトで設定されます)として、
先の回路図ファイル sub01.asc と同じフォルダに保存します。
これで、サブサーキットの準備が整いました。
では、説明のため、いったん LTspice を終了してください。
LTspice を起動し、
新規作成アイコンを左クリックして
新規回路図ファイルを開きます。次に、メニューの File - Save As にて、
先ほど作成したサブサーキットファイルがあるフォルダに、top.asc
とでも(任意です)して何も無い回路図をとりあえず保存します。
部品アイコンを左クリックして
部品リストウィンドウをひらきます。
このとき、一番上の Top Directoryプルダウンメニューの下矢印を
左クリックすると、回路図ファイルを保存したディレクトリへのパスと、
LTspiceのインストールされているディレクトリへのパスが表示されます。
ファイルの保存されているパスは個々の環境によるため、以下の例では、
大部分を塗りつぶしてありますのでご了解ください。
このプルダウンメニューで、リストの一番上の回路図ファイルが
保存されているパスを選択します。すると、同じフォルダに保存されている
先ほど作成したサブサーキットの名前がリスト上にあらわれます。
それを選択すれば、先ほど作成したシンボルが部品選択ウィンドウに
あらわれます。
Ok をクリックすれば、サブサーキットが利用できます。
入力にステップ電圧信号を与え、出力の波形を見てみます。
シミュレーション設定( .Tran )も含めた回路図は以下のようになります。
シミュレーション結果(V(TST))は以下のようになります。
では、説明のため、いったん LTspice を終了してください。
サブサーキットの便利な利用法としてパラメータ( .PARAM )
の活用があります。たとえばこの例でいくと、LPFの時定数
などが挙げられます。
とりあえず、sub01.ascをもう一度開きます。
(ファイルをダブルクリックか、LTspice を起動してから File - open など)
抵抗 R1 とコンデンサ C1 の値を以下のように変更します。
特に、R1は本来 100k と数値のあったところを、"{ 100k * FT }"
となっています。なお、このような式を数値のところに入力する場合は、
部品の上で右クリックをして値を変更するより、100k と値のあるその上で
右クリックをして値のみを変更するほうが楽です。
若干、この"{ 100k * FT }"について説明します。
{ } は、これに囲まれた式、表記をシミュレーション時に評価(計算)
しなさいという指示をシミュレータに与えます。したがって、パラメータ
などを部品の値として使いたい場合は、これでくくります。
FT は とくにシミュレータで特別な意味をもったものではありませんので、
パラメータとして使用されていることになります。ちなみに PI だと円周率の意味を持ちます。
回路全体として、時定数が、R1 * C1 = FT [sec] となるように
R1の値が設定されます。
さて、ついでにシンボルのほうもちょっと手を加えて、
メニューの Draw - Text によりシンボルに LPF というテキストを加えます。
全てのファイルをセーブしていったん LTspice を終了します。
もう一度、回路図 top.asc ファイルを開きます。
すでに、自動的にシンボルの変更が反映されています。
このままシミュレーションを走らせると、
結果表示直前でエラーがでます。
今回は、サブサーキットに対して FT というパラメータを
定義しなければなりません。LPF のシンボル上で右クリックし、
サブサーキットへのパラメータ編集画面を表示します。
以下のように PARAMS: フィールドを設定した後、
Okを左クリックしウィンドウを閉じます。
FT=1 が非常に見にくい位置にいきますので、
にて見やすい位置に
移動してやってください。出来上がった回路図はこんな感じになります。
こんどはシミュレーションが問題なく走るはずです。
なお、出力にある抵抗 R1 が 1Meg オームと LPF 内で使用している
抵抗値に対して十分大きくない値のため出力電圧が
入力の 1V からだいぶ落ちています。
100Meg くらいにすると多分問題ないと思います。
なお、サブサーキットは、ひとつの回路図内でいくつも呼び出せ、
基本的にそれぞれが独立な回路となりますので、
PARAMS を利用することで、ひとつのサブサーキットに
以下のように異なる特性を持たせることも可能です。
シミュレーションの結果(V(TST1), V(TST2))はこうなります。