この記事では.dc解析の使い方と応用について詳しく説明します。
『.dc解析』とは
.dc解析とは直流電圧・直流電流・温度といったパラメータをスイープ(掃引)させた時において、ノード電圧や電流がどのように変化するかを調べる解析です。「オペアンプの直流伝達関数」、「ダイオードの電流-電圧特性」、「トランジスタの静特性」を検証するのに役立ちます。
メニューバーの[Simulate]から[Edit Simulation Cmd]を左クリックすると、[Edit Simulation Command]ダイアログボックスが表示されます。このダイアログボックス内の[DC sweep]タブが『.dc解析』の設定画面となっています。
『.dc解析』を使用すると、下図のようなトランジスタの静特性(コレクタ電流-コレクタ電圧特性)を観測することができます(下図のシミュレーション方法についてはこの記事の後半に記載しています)。
これから、『.dc解析』において
- 『.dc解析』の構文とダイアログボックスでの設定項目
- シミュレーション例(トランジスタの静特性の観測)
- シミュレーション例(温度をスイープする方法01)
- シミュレーション例(温度をスイープする方法02)
を説明します。
補足
- 『.dc解析』は直流電源スイープ解析、直流掃引解析、DCスイープ解析、DC sweep解析とも呼ばれています。
- 『.dc解析』ではコンデンサは開放、インダクタは短絡と考えて、直流点を計算します。
『.dc解析』の構文とダイアログボックスでの設定項目
『.dc解析』の構文は以下のようになっています。
構文
この構文ですが、[Edit Simulation Command]ダイアログボックスの設定画面の各項目を選択または入力すると、自動的に構文が作成されます。各項目は以下のようになっています。
タブ
タブには[1st Source]、[2nd Source]、[3rd Source]の3つのタブがあります。『.dc解析』では、スイープ(掃引)する電圧源・電流源を3つまで設定可能であり、各電圧源・電流源の設定はタブ毎に行います。なお、[1st Source]~[3rdSource]の各タブで入力方法に違いはありません。
Name of 1st Source to sweep
スイープする電圧源・電流源の部品名を入力します(例えばV1,I1など)。ここで選択した内容は自動的に構文の<srcnam>の箇所に反映されます。なお、タブが[2nd Source]の場合には項目名が「Name of 2nd Source to sweep」となります。
Type of sweep
電圧源・電流源の直流値をスイープする間隔を選択します。以下に選択できる項目を示します。
- Linear:等間隔(これを使用するのがほとんど)
- Octave:2倍間隔
- Decade:10倍間隔
- List:リストで指定した直流値のみ解析
「Octave」と「Decade」を選択した場合には、横軸が対数目盛となります。
Start Value
スイープの開始値を入力します(スイープ対象が電圧源の場合には単位は[V]、電流源の場合には単位は[A]となります)。ここで選択した内容は自動的に構文の<Vstart>の箇所に反映されます。
Stop Value
スイープの終了値を入力します(単位は<Vstart>と同様です)。ここで選択した内容は自動的に構文の<Vstop>の箇所に反映されます。
Increment
スイープの増分値(刻み幅)を入力します(単位は<Vstart>と同様です)。増分値が小さいほど滑らかなグラフとなりますが、シミュレーションの実行時間が長くなります。ここで選択した内容は自動的に構文の<Vincr>の箇所に反映されます。
補足
- Incrementは、「Type of Sweep」でListを選択した場合のみ表示されます。Octaveを選択すると、Number of points per octaveとなり、直流値が10倍になるまでのステップ数となります。また、Decadeを選択すると、項目名がNumber of points per decadeとなり、直流値が2倍になるまでのステップ数となります。
- 「Type of Sweep」でListを選択すると、項目名が1st value~3rd valueに変わります。ここに解析したい直流値を入力します。
- 「Type of Sweep」でLinearを選択した場合、構文は何も変化ありません。しかし、Octaveを選択すると、<srcnam>の前にoctが追加されます。Decadeを選択すると、<srcnam>の前にdecが追加されます。また、Listを選択すると、<srcnam>の後にlistが追加されます。
SPICE Directiveからでもコマンドを入力可能
『.dc解析』のコマンド例
- .dc VIN 0.2 5.0 0.1
- .dc V1 0 15 10m I1 20u 100u 20u
- .dc dec V1 1 1000 100
→電圧源VINの値を0.2Vから5.0Vまで0.1V刻みで変化させる
→1st Sourceが電圧源V1であり値を0Vから15Vまで10mV刻みで変化させる。2nd Sourceが電流源I1であり、値を20uAから100uAまで20uA刻みで変化させる。
→電圧源VINの値を1Vから1000Vまで変化させる。直流値が10倍になるまでのステップ数は100である。
シミュレーション例(バイポーラトランジスタの静特性)
『シミュレーション回路』と『コマンド』について
上図はNPNトランジスタQ1に対して、電流源I1をベースに、電圧源V1をコレクタに接続した回路図です。
DC解析のコマンドは
と入力しており、各Sourceは
- 1st Source
- 2nd Source
0Vから15Vまで10mV間隔でスイープする電圧源V1
0uAから100uAまで20uA間隔でスイープする電流源I1
となっています。
補足
シミュレーション結果
上図にシミュレーション結果(コレクタ電流IC(Q1)のグラフ)を示します。
ここで、重要なのは『.dc解析』では1st Sourceがグラフの横軸となるという点です。1st sourceには電圧源V1を設定しており、0Vから10vまでスイープしているので、グラフの横軸も0V~10Vとなっていることが確認できます。2nd Sourceは電流源I1を設定しており、各電流値におけるグラフが同じグラフ上に色分けされ表示されます。特定の電流値におけるグラフを見るためには、波形ウィンドウをクリックしてアクティブにした後に、[Plot Setting]→[Select Steps]を選択します。すると、[Select Displayed Steps]ダイアログボックスが表示されるので、表示したいパラメータを選択して[OK]ボタンを押します。
基本のおさらい(グラフの表示方法)
補足
- 1st Sourceと2nd Sourceを入れ替えると、横軸がコレクタ電流となるため、以下のような波形となってしまいます。
シミュレーション例(温度をスイープする方法01)
『.dc解析』は電流源・電圧源の直流値以外に温度もスイープすることができます。1st Sourceに温度パラメータである「temp」を入力するとシミュレーション結果の横軸が温度の目盛となります。
『シミュレーション回路』と『コマンド』について
上図はダイオードD1に対して0.6Vの電圧源V1を接続した回路図です。
DC解析のコマンドは
と入力しており、温度を-20℃から100℃まで0.01℃刻みでスイープさせています。
シミュレーション結果
上図にシミュレーション結果(ダイオード電流I(D1)のグラフ)を示します。横軸が温度になっていることが確認できます。また、温度が増加するほど、流れる電流が大きくなっていることが確認できます。
シミュレーション例(温度をスイープする方法02)
2nd Soueceに「temp」を設定すると、『.stepコマンド』、『.tempコマンド』と同様のシミュレーションを実施することができます。
『シミュレーション回路』と『コマンド』について
上図はダイオードD1に電圧源V1を接続した回路図です。
DC解析のコマンドは
と入力しており、各Sourceは
- 1st Source
- 2nd Source
0Vから1.2Vまで0.01V間隔でスイープする電圧源V1
-20℃から100℃まで20℃間隔でスイープする温度(temp)
となっています。
シミュレーション結果
上図にシミュレーション結果(ダイオード電流I(D1)のグラフ)を示します。また、『.stepコマンド』で
と入力した時のグラフと、『.tempコマンド』で
と入力した時のグラフも表示しています。これら3つのコマンドで全て同じ結果を得ることができます。
なお、『.stepコマンド』、『.tempコマンド』については以下の記事に詳しく説明しています。
【LTspice】温度解析を行う『.temp』コマンドの使い方
まとめ
この記事では、スイープ(掃引)を行う『.dc解析』について構文から[Edit Simulation Command]ダイアログボックスの設定画面、そして3つのシミュレーション例説明しました。LTspiceには『.dc解析』以外にも様々な解析コマンドがあります。LTspiceに関する記事は以下にまとめてあるのでぜひ参考にしてください。
また、当サイトの全記事一覧は以下にまとめてあるのでぜひ参考にしてください。