この記事では、.savebiasコマンドと.loadbiasコマンドについて詳しく説明します。
『.savebiasコマンド』と『.loadbiasコマンド』とは
『.savebiasコマンド』と『.loadbiasコマンド』は対となっているコマンドであり、それぞれ以下の機能となっています。
- .savebiasコマンド
- .loadbiasコマンド
『.tran解析』または『.dc解析』における直流動作点をテキストファイル形式で保存するコマンドです。
『.savebiasコマンド』で保存した直流動作点を読み込むコマンドです。
『.savebiasコマンド』と『.loadbiasコマンド』の構文
『.savebiasコマンド』と『.loadbiasコマンド』の構文は以下のようになっています。
.savebiasコマンド
+[temp=<value>] [time=<value> [repeat]] [step=<value>]
+[DC1=<value>] [DC2=<value>] [DC3=<value>]
.loadbiasコマンド
<filename>
『.savebiasコマンド』の場合は保存するファイル名を入力します。『.loadbiasコマンド』の場合は読み込むファイル名を入力します。このファイル名の拡張子には「*.txt」などメモ帳で扱いやすい形式にするのをお勧めします。
[internal]
internalをコマンドにつけると、デバイスの内部ノード電圧を保存することができます。例えば、NPNトランジスタのコレクタ電圧やベース電圧など保存することができるようになります(後ほど、シミュレーション例を用いて説明します)。
temp=<value>
半導体など温度によって変化する素子を用いている場合、ある温度の直流動作点のみ保存します。例えば、温度を『.tempコマンド』を用いて、「.temp 25 100 150」と3パターンで変化させていた場合、「temp=25」と指定すると、「temp=25」における直流動作点、「temp=100」と指定すると、「temp=100」における直流動作点が保存されます。また、何も記述しない場合、『.tempコマンド』で変化させた時の最後の値(この例だとtemp=150)における直流動作点が保存されます。また、『.tempコマンド』で変化させた温度以外を「temp=<value>」で指定しても最後の値(この例だとtemp=150)における直流動作点が保存されます。
time=<value>(『.tran解析』のみ使用)
『.tran解析』においてある時間における直流動作点を保存します。[repert]を指定すると、「time=<value>」で指定した値ごとに動作点データを更新し保存します。
step=<value>
『.stepコマンド』でパラメータ等をステップしている場合、あるステップの直流動作点のみ保存します。例えば、コンデンサの値を『stepコマンド』を用いて、「.step param C list 1u 2u 3u」と3パターンで変化させていた場合、「step=0」と指定すると、「C=1u」における直流動作点、「step=1」と指定すると、「C=2u」における直流動作点が保存されます。また、何も記述しない場合、『stepコマンド』で変化させた時の最後の値(この例だと3u)における直流動作点が保存されます。
[DC1=<value>] [DC2=<value>] [DC3=<value>](『.dc解析』のみ使用)
『.dc解析』から1つの動作点を保存します。例えば、電圧源V1と電流源I1をスイープ(掃引)するDC解析において、「DC1=X DC2=Y」と入力すると、電圧源V1の電圧がX、電流源I1の電流がYにおける動作点を保存します(後ほど、シミュレーション例を用いて説明します)。
シミュレーション例(『.savebiasコマンド』で動作点を保存する)
シミュレーション回路
上図は1kΩの抵抗R1と1uFのコンデンサC1を直列接続した積分回路となっており、この積分回路にパルス電圧を印加しています。『.savebiasコマンド』は以下のように記述しており、12[ms]におけるノード電圧を「test01.txt」というテキストファイルに保存してます。
シミュレーション結果
シミュレーション結果を上図に示します。シミュレーションにおいて、ノードOUTの電圧はグラフのカーソル値を見ると、12[ms]において約8.64Vになっていることが分かります。
シミュレーションにより生成したテキストファイルの中身
回路図ファイルと同じフォルダ内に『.savebiasコマンド』で指定したテキストファイル「test01.txt」が保存されます。このテキストファイルの中身を見ると上図のように、『.nodesetコマンド』の形式で保存されています。これはtime=0.0120056[s]≒12[ms]において、ノードOUTの電圧V(out)は約8.65Vであるということを示しています(グラフと0.01V異なっているのは、図のカーソルでは完全に0.0120056[s]に揃えてないためです)。次にこのテキストファイルを『.loadbiasコマンド』で読み込むシミュレーションを行います。
シミュレーション例(『.loadbiasコマンド』で直流動作点を読み込む)
シミュレーション回路
シミュレーション回路を上図に示します。この回路は先ほど『.savebiasコマンド』で使用した回路図と同じです。ここでは『.loadbiasコマンド』で先ほど保存したテキストファイル「test01.txt」を読み込んでいます。『.loadbiasコマンド』は以下のように記述します。
この『.loadbiasコマンド』でテキストファイル「test01.txt」を読み込む際に注意点があります。
『.savebiasコマンド』によって保存される直流動作点は『.nodesetコマンド』の形式で保存されています。この『.nodesetコマンド』は回路に初期の動作点を与えることで、.tran解析における初期状態を計算しやすくするコマンドです。そのため、テキストファイル「test01.txt」をそのまま『.loadbiasコマンド』で読み込んでも『.savebiasコマンド』で保存した直流動作点から『.tran解析』が始まるわけではありません。『.savebiasコマンド』で保存した直流動作点から『.tran解析』を行いたい場合には、『.nodesetコマンド』を以下のように.icコマンドに変更して再保存することが必要となります。
補足
『.nodesetコマンド』については以下の記事を参考にしてください。
【LTspice】初期の動作点を与える『.nodesetコマンド』の使い方
続きを見る
-
【LTspice】初期値を設定する『.icコマンド』の使い方
続きを見る
シミュレーション結果
シミュレーション結果を上図に示します。上図より、『.savebiasコマンド』で保存した直流動作点V(out)=8.65Vから『.tran解析』が開始されていることが分かります。
シミュレーション例(『.savebiasコマンド』を『.dc解析』で使用した場合)
シミュレーション回路
シミュレーション回路を上図に示します。上図はNPNトランジスタQ1に対して、電流源I1をベースに、電圧源V1をコレクタに接続した回路図です。
DC解析のコマンドは
と入力しており、各Sourceは
- 1st Source
- 2nd Source
0Vから1Vまで10mV間隔でスイープする電圧源V1
0uAから100uAまで20uA間隔でスイープする電流源I1
となっています。
また、『.savebiasコマンド』は以下のように記述しており、電圧源V1が0.5V、電流源I1が40uAにおける直流動作点をテキストファイル「test2.txt」に保存しています。なお、「intenal」を記述しているので、トランジスタQ1のコレクタ電圧、ベース電圧、エミッタ電圧も保存されます。
シミュレーション結果
シミュレーションにおいて、ノードBの電圧は電圧源V1が0.5V、電流源I1が40uAにおいて710mVとなっていることが確認できます。
シミュレーションにより生成したテキストファイルの中身
回路図ファイルと同じフォルダ内に『.savebiasコマンド』で指定したテキストファイル「test02.txt」が保存されます。このテキストファイルの中身を見ると上図のように、『.nodesetコマンド』の形式で保存されています。これはV(c)(←電圧源V1と同電位)=0.5[V]において、ノードBの電圧V(b)は約710mVであるということを示しています。