- LTspiceで「STEPコマンド」の使い方を知りたい
- LTspiceで「パラメトリック解析」の方法を知りたい
- 電子回路の抵抗やコンデンサ、周囲温度の「パラメータ」を変えたときのグラフを比較検証したい
- 抵抗やコンデンサの「最適値」を決められるようになりたい
- 「MESUREコマンド」と組み合わせた使い方を知りたい
このように電子回路シミュレータLTspiceを使っていると、
回路図の様々なパラメータを変化させたいと思うことがありますよね。
STEPコマンドを使えば、様々なパラメータを変化させることができます。
なぜなら、STEPコマンドを使うと回路図の様々なパラメータを変化させながら、
繰り返しシミュレーションを行うことができるからです。
この解析方法をパラメトリック解析といいます。
本記事ではSTEPコマンドの使い方について、事例とともに詳しく解説していきます。
抵抗やコンデンサのパラメータを変化させるだけでなく、
温度を変化させる方法、値を変化させた後に特定の波形のみ表示させる方法、
MESUREコマンドと組み合わせて使う方法など、詳しく解説しています。
STEPコマンドの使い方を知りたい方はもちろん、
これからLTspiceを使いたい方、
ある程度LTspiceを使いこなしている方がスキルアップするために、
この記事がお役に立てば幸いです。
※ 初心者向けのLTspice通信講座(返金保証あり)
LTspiceの初心者向け通信講座です。
通信講座を利用すると、LTspice習得の近道になりますね。
英語ですが、LTspiceのシミュレーション動画を見れるので、けっこう理解できます。
30日間の返金保証があるので、ノーリスクで始められます。
まずは、右クリックの「日本語に翻訳」を活用してカリキュラムを確認してみましょう。
» 初心者向けのLTspiceチュートリアル(Udemy)はこちら
※この講座ではLTspiceのソースファイルをダウンロードできます。
LTspiceでSTEPコマンドを使えるとどうなるか?
回路図上のパラメータを変化できる
電子回路シミュレータLTspiceは、電子回路の特性を数値計算で求めているので、
回路図上のパラメータを変数のまま計算することはできません。
そこで、STEPコマンドを使うと、回路図上のパラメータを段階的に変化させながら、
繰り返しシミュレーションを行うことができます。
例えば、抵抗値を1kΩ、2kΩ、3kΩと段階的に変化させ、
それぞれの場合でシミュレーションを行うことができます。
様々なパラメータを変化できる
抵抗値だけでなく、コンデンサの値、電圧値、電流値、温度など
様々な電子回路の特性値を変化させることができます。
さらに、電圧値を例にとると、変化できる特性値は電圧源だけでなく、
たとえばツェナーダイオードのブレークダウン電圧なども変化させることが可能です。
ブレークダウン電圧を変化させる方法は後ほど説明します。
その結果、最適値を決められる
回路図上の抵抗値を1kΩ、2kΩ、3kΩと段階的に変化させたとき、
電圧値が5.0V、6.6V、7.5Vと変化しているのが分かります。
LTspiceでSTEPコマンドを使うと、
回路図上のパラメータを変えたときのシミュレーション結果を、
まとめてグラフで見ることができるので、それぞれの結果を比較することができます。
よって、その結果から最適値を決めることも容易になります。
LTspiceでSTEPコマンドを入力する方法
まず初めにSTEPコマンドの入力方法について解説します。
入力方法は簡単で、一度知ってしまえば、
抵抗でも、コンデンサでも、電圧でも、電流でも入力方法は同じです。
以下の回路で入力手順を説明します。
定数をパラメータに変更する
回路図の抵抗R1の素子(シンボル)上で右クリックすると、Resistorウィンドウが表示されますので、
Resistance[Ω]の「1」を『{Rx}』に変更します。
このとき、必ずRxを「{」と「}」で囲いましょう。
STEPコマンドを入力する
メニューの
「Edit」→「SPICE Directive」
を選択すると、Edit Text on the Schematicウィンドウが表示されるので、
.step param Rx 1 9 2
と入力します。
この設定により、抵抗R1の抵抗値Rxを1Ω~9Ωまで、2Ω間隔で変化させることができます。
『.step param Rx 1 9 2』のPARAMコマンドはユーザ定義パラメータのことで、Rxを変数扱いにしています。
なお、抵抗値はRxという表現でなくてもよく、
『{Rx}』と『.step param Rx 1 9 2』のRxの箇所が一致していれば他の表現でも大丈夫です。
例えば、シンプルに『{x}』と『.step param x 1 9 2』のように抵抗値をxとしても構いません。
STEPコマンドの基本的な使い方
STEPコマンドの基本的な使い方を解説していきます。
回路図上のパラメータを等間隔で変化する(線形表現)
抵抗値を変化する
.step param Rx 1k 10k 3k
と入力すると、抵抗値Rxを1kΩ~10kΩまで、3kΩステップで変化させることができます。
抵抗R2が1kΩ、4kΩ、7kΩ、10kΩと段階的に変化することで、
抵抗で分圧された電圧が5.00V、8.00V、8.75V、9.09Vと変化していることが分かります。
コンデンサの値を変化する
.step param Cx 10uF 100uF 30uF
と入力すると、コンデンサの値Cxを10uF~100uFまで、30uFステップで変化させることができます。
コンデンサC1が10uF、40uF、70uF、100uFと段階的に変化することで、
電圧が徐々に整流していることが分かります。
電圧値を変化する
.step param Vx 1V 10V 3V
と入力すると、電圧値Vxを1V~10Vまで、3Vステップで変化させることができます。
電圧源V1が1V、4V、7V、10Vと段階的に変化することで、
抵抗で分圧された電圧が0.5V、2.0V、3.5V、5.0Vと変化していることが分かります。
電流値を変化する
.step param Ix 1A 10A 3A
と入力すると、電流値Ixを1A~10Aまで、3Aステップで変化させることができます。
電流源I1が1A、4A、7A、10Aと段階的に変化することで、
電圧が1.0V、4.0V、7.0V、10.0Vと変化していることが分かります。
回路図上のパラメータを指定値で変化する(list表現)
抵抗値を変化する
.step param Rx list 9k 19k 39k
と入力すると、抵抗値Rxを9kΩ、19kΩ、39kΩと指定した値で変化させることができます。
抵抗R2が9kΩ、19kΩ、39kΩと変化することで、
抵抗で分圧された電圧が9.00V、9.50V、9.75Vと変化していることが分かります。
コンデンサの値を変化する
.step param Cx list 22uF 47uF 100uF
と入力すると、コンデンサの値Cxを22uF、47uF、100uFと指定した値で変化させることができます。
コンデンサC1が22uF、47uF、100uFと変化することで、
電圧が徐々に整流していることが分かります。
電圧値を変化する
.step param Vx list 2V 10V 20V
と入力すると、電圧値Vxを2V、10V、20Vと変化させることができます。
電圧源V1が2V、10V、20Vと変化することで、
抵抗で分圧された電圧が1.0V、5.0V、10.0Vと変化していることが分かります。
電流値を変化する
.step param Ix list 2A 5A 10A
と入力すると、電流値Ixを2A、5A、10Aと変化させることができます。
電流源I1が2A、5A、10Aと変化することで、
電圧が2.0V、5.0V、10.0Vと変化していることが分かります。
回路図上のパラメータを2倍区間当りの分割数を指定して変化する(対数表現)
抵抗値を変化する
.step oct param Rx 2k 4k 3
と入力すると、抵抗値Rxを2kΩ~4kΩまで、3分割して変化させることができます。
抵抗R2が2kΩ~4kΩの間で3分割されており、
その抵抗値に応じて、分圧された電圧が変化していることが分かります。
コンデンサの値を変化する
.step oct param Cx 50uF 100uF 3
と入力すると、コンデンサの値Cxを50uF~100uFまで、3分割して変化させることができます。
コンデンサC1が50uF~100uFの間で3分割され、
それに応じて電圧が徐々に整流していることが分かります。
電圧値を変化する
.step oct param Vx 5V 10V 3
と入力すると、電圧値Vxを5V~10Vで、3分割して変化させることができます。
電圧源V1が5V~10Vの間で3分割されており、
その抵抗値に応じて、分圧された電圧が変化していることが分かります。
電流値を変化する
.step oct param Ix 5A 10A 3
と入力すると、電流値Ixを5A~10Aで、3分割して変化させることができます。
電流源I1が5A~10Aの間で3分割されており、
それに応じて電圧が変化していることが分かります。
回路図上のパラメータを10倍区間当りの分割数を指定して変化する(対数表現)
抵抗値を変化する
.step dec param Rx 1k 10k 3
と入力すると、抵抗値Rxを1kΩ~10kΩまで、3分割して変化させることができます。
抵抗R2が1kΩ~10kΩの間で3分割されており、
その抵抗値に応じて、分圧された電圧が変化していることが分かります。
コンデンサの値を変化する
.step dec param Cx 10uF 100uF 3
と入力すると、コンデンサの値Cxを10uF~100uFまで、3分割して変化させることができます。
コンデンサC1が10uF~100uFの間で3分割され、
それに応じて電圧が徐々に整流していることが分かります。
電圧値を変化する
.step dec param Vx 1V 10V 3
と入力すると、電圧値Vxを1V~10Vで、3分割して変化させることができます。
電圧源V1が1V~10Vの間で3分割されており、
その抵抗値に応じて、分圧された電圧が変化していることが分かります。
電流値を変化する
.step dec param Ix 1A 10A 3
と入力すると、電流値Ixを1A~10Aで、3分割して変化させることができます。
電流源I1が1A~10Aの間で3分割されており、
それに応じて電圧が変化していることが分かります。
温度を変化する
温度を等間隔で変化する
.step temp -25 75 25
と入力すると、温度を-25℃~75℃まで、25℃ステップで変化させることができます。
温度が-25℃、0℃、25℃、50℃、75℃と段階的に変化することで、
電流が徐々に大きくなっていることが分かります。
温度を指定値で変化する
.step temp list -25 25 75
と入力すると、温度を-25℃、25℃、75℃と指定した値で変化させることができます。
温度が-25℃、25℃、75℃と変化することで、電流が徐々に大きくなっていることが分かります。
なお、『.temp -25 25 75』と入力しても同じ結果が得られます。
特定の波形のみ表示する方法
複数の波形を表示させると、どの値のときのグラフを表示しているのか、分からなくなります。
このようなときに特定の波形のみ表示する方法があります。
温度を-25℃~75℃まで、25℃ステップで変化させた場合、
25℃のときの波形のみ表示する手順を解説します。
1. グラフウィンドウ上で右クリックする。
2. View → Select Steps を選択すると、Select Displayed Stepsウィンドウが表示される。
3. 「Step:3 の TEMP:25」を選択し、「OK」をクリックする。
25℃のときの波形のみ表示されていることが分かります。
波形の色を変更する方法
複数の波形を表示させると、それぞれのグラフは異なる色として表示されます。
指定した色に変更したい場合、波形の色を変える方法があります。
温度を-25℃~75℃まで、25℃ステップで変化させた場合、
25℃の波形の色を「赤」→「青」に変更する手順を解説します。
1. 回路図ウィンドウをクリックする。(アクティブにする)
2. メニューの
「Simulate」 → 「Control Panel」 → 「Waveforms」 → 「Color Scheme」ボタン
をクリックする。
3. Color Palette Editorウィンドウが表示されるので、Selected Itemを「Trace V(3)」に変更する。
4. Selected Item Color MixのRedを「0」に、Blueを「255」に変更し、「OK」をクリックする。
これで25℃の波形の色を「赤」→「青」に変更することができます。
STEPコマンドの注意点とエラーの対処方法
同時に変化するパラメータは2つまで
LTspiceで同時に変化できるパラメータの数は3つまでです。
しかしシミュレーションの実行回数は、それぞれのパラメータが変化する回数の積になります。
例えば、
.step param Rx1 1k 10k 3k の実行回数は4回
.step param Rx2 1k 10k 3k の実行回数も4回
.step param Vx 1V 10V 3V の実行回数も4回
なので、合計64(=4×4×4)回もシミュレーションすることになります。
よって、シミュレーションに時間がかかるようになり、実行結果のグラフ表示も複雑になるので、
現実的には2つまでにすることをオススメします。
以下は変化するパラメータを3つにした時のシミュレーション結果です。
R1とR2の抵抗値、V1の電圧値を変化させています。
グラフの表示が複雑になっていることが分かります。
なお、変化するパラメータを4つ以上にすると
Only three dimensions can be .STEP’ed
とうエラーが発生します。3つ以下にすればエラーは発生しません。
『syntax error in,step command』エラーの対策方法
STEPコマンドを使用するとき、
syntax error in,step command
というエラーが発生することがあります。
これはSTEPコマンドの構文にミスがあるということです。
『.step』や『param』にスペルミスがあったり、半角スペースが全角スペースになっていると発生しますので、
コマンドが正確に入力できているか、きちんと確認しましょう。
STEPコマンドを他のコマンドと組み合わせたシミュレーション
MEASコマンドと組み合わせる
MESUREコマンドは、
ある区間の平均値、最大値、最小値、実効値、振幅、効率など
様々な値を読み取ることができるコマンドです。
使い方を知っていると何かと便利です。
「STEPコマンド」と「MESUREコマンド」を組み合わせてシミュレーションすることができます。
できることは、STEPコマンドで繰り返しシミュレーションした後、
それぞれの場合の値を読み取ることができます。
さらに、その値をグラフに表示することができます。
実際にシミュレーションしてみましょう。
振幅±10V、周波数1kHzの正弦波を、R1とR2で分圧したシミュレーションです。
この実効値を読み取り、グラフに表示します。
回路図上に
.step param Rx 1k 10k 3k
.meas out1 RMS V(OUT)
と入力し、「Simulation」→「Run」を選択し、シミュレーションを実行します。
次に、グラフウィンドウ上で右クリックを選択し、「View」→「SPICE Error Log」を選択します。
試行回数ごとの実効値が読み取れていることが分かります。
これをグラフ表示するには、「SPICE Error Log」ウインドウ上で右クリックし、
「Plot .step’ed .meas data」を選択すれば、表示することができます。
横軸には、
STEPコマンドで段階的に変化した「R2の抵抗値(1kΩ、4kΩ、7kΩ、10kΩ)」が表示され、
縦軸には、
MESUREコマンドで読み取った回路図上OUTの「電圧の実効値」が表示されています。
このように、MESUREコマンドと組み合わせると試行回数ごとの値を読み取ることができ、
さらにグラフに表示することができます。
MESUREコマンドについて、
より詳しく知りたい方は「回路シミュレータLTspiceで学ぶ電子回路(第4版)」をオススメします。
第4章で詳しく説明されてますので、非常に参考になります。
STEPコマンドを利用した電子回路シミュレーション
STEPコマンドを利用した電子回路のシミュレーション事例を紹介します。
ツェナーダイオードのブレークダウン電圧を変化する
STEPコマンドで電圧のパラメータを変化することができるのは、電圧源だけではありません。
例えば、ツェナーダイオードのブレークダウン電圧も変化することができます。
SPICEモデルのブレークダウン電圧のパラメータを『{BVx}』とし、
.step param BVx 10V 15V 1V
と入力することで、ブレークダウン電圧を10V~15Vまで、1Vステップに設定しています。
入力信号V(in)の振幅20Vの矩形波に対して、
出力信号V(out)は振幅が10V~15Vまで、1Vステップで制限されていることが分かります。
なお、LTspiceにSPICEモデルを追加する方法を知りたい方は、
「LTspiceに部品モデルを追加する方法」の記事で詳しく解説していますので参考にしてください。
AC解析のSTEPコマンドで縦軸を利得、横軸を電圧に表示する
STEPコマンドを入力してAC解析を行うとき、シミュレーション結果のグラフを、
縦軸を利得、横軸を電圧に表示することができます。
この方法については、
「LTspiceのAC解析で自由にグラフを表示する方法」の記事で紹介していますので、
そちらを参照してください。
MOSFETの端子間容量(C-Vds特性)をシミュレーションする
東芝製のNチャネルMOSFET「TK40A06N1」を用いて、
入力容量Cissと出力容量CossをLTspiceでシミュレーションできます。
直接、容量値を測定できるわけではなく、ゲート電圧とドレイン電圧をLTspiceで測定して、
Excelで容量値に変換するという流れになります。
LTspiceでゲート電圧を測定する
上記の回路で
.step param Vds 0V 30V 0.1V
と入力し、
ソースドレイン電圧Vdsを0V~30Vまで、0.1Vステップで変化させ、ゲート電圧を測定しています。
そして測定した結果を以下の手順でテキストファイルに保存します。
1. グラフウィンドウをクリックする。(アクティブにする)
2. 「File」→「Export data as text」を選択すると、Select Traces to Exportウィンドウが表示される。
3. Formatで「Cartesian: re,in」を選択し、Brawseボタンをクリックし、保存先を指定する。
LTspiceでドレイン電圧を測定する
上記の回路で、
.step param Vds 0V 30V 0.1V
と入力し、ドレイン電圧を測定しています。
そして、測定した結果をゲート電圧測定時と同じようにテキストファイルで保存します。
Excelで容量値に変換する
テキストファイルに保存した「ゲート電圧」と「ドレイン電圧」の測定データから、
Excelを使って「容量値」に変換しています。
Vdsはソースドレイン電圧です。
ゲート電圧VgとドレインVdは実部と虚部で測定され、|Vg|と|Vd|は、VgとVdの大きさを表しています。
この測定データからCissとCossを以下の計算式で算出しています。
この結果をグラフにすると以下のようになります。
縦軸が容量値[pF]で、横軸がソースドレイン電圧Vds[V]です。
Excelが必要になりますが、
ソースドレイン電圧Vdsを変化したときの端子間容量(C-Vds特性)が
シミュレーションできていることが分かります。
LEDの定電流回路シミュレーション
LEDを定電流回路で点灯する場合、「周囲温度」や「LEDの順方向電圧VF」がばらつくため、
電源電圧を一定の電圧以上にしないと、安定してLEDを点灯することができなくなります。
LTspiceでSTEPコマンドを利用すれば、ばらつきの要因を変化させることができるので、
何V以上であればLEDに一定の電流を流し、安定して点灯するかを判断することができます。
日亜化学工業製のLED「NSCW100」でシミュレーションしてみます。
LEDの順方向電圧VFを変化する
順方向電圧VFの「ばらつきの影響」をみるため、上記の定電流回路で
.step param VF list 3.2 3.6 4.0
と入力し、DC解析で電源電圧V2を変化させシミュレーションしています。
縦軸が
LEDに流れる順方向電流で、
横軸が
電源電圧V2の電圧になります。
なお、NSCW100は、LTspiceにデフォルトで用意されている「LEDのSPICEモデル」です。
「VFのばらつき」がSPICEモデルに反映されるように、パラメータの一部を変更しています。
シミュレーションの結果、LEDの順方向電圧VFは、電源電圧2~6V付近でばらついています。
電源電圧V2が8V以上であれば、安定して定電流を流せることが分かります。
周囲温度を変化する
周囲温度のばらつきの影響をみるため、今度は
.step temp -25 75 25
と入力し、DC解析で電源電圧V2を変化させシミュレーションします。
先程と同様に、
縦軸が
LEDに流れる順方向電流で、
横軸が
電源電圧V2の電圧です。
シミュレーションの結果、周囲温度を変化させたときも
LEDの順方向電圧VFは、電源電圧2~6V付近でばらついており、
電源電圧V2が8V以上であれば安定して定電流を流せることが分かります。
まとめ
今回はLTspiceでSTEPコマンドの使い方について解説しました。
今回解説した流れでシミュレーションすれば、STEPコマンドの使い方で困ることはないと思います。
LTspiceを使いこなすのであれば、電子回路のパラメータを変化したいと思うことは良くありますので、
ぜひ、今回紹介したSTEPコマンドの使い方を活用してみてください。
また、STEPコマンドの使い方や事例をもっと知りたい方は、以下の書籍をオススメします。
ぜひ参考にしてください。
第8章では、パラメトリック解析で「半波整流回路の負荷」や「整流回路の容量」を変化させて
シミュレーションしています。
また、コラム8-Aでは、ダイオードの順方向電圧の温度の影響を、
STEPコマンドの構文とともに解説しています。
第1章では、STEPコマンドを使って、RLC回路の共振、現実の抵抗、伝送線路、
オシロスコープのプローブの特性をシミュレーションしています。
また、第2章では「LEDを安定に点灯させるための説明」をSTEPコマンドを用いて説明しています。
この本は、LTspiceで使用する様々なコマンドが紹介されています。
第3章では「PARAMコマンド」と「STEPコマンド」の構文と例題を、
第4章では「MESUREコマンドの構文と例題」を紹介しています。
※ 初心者向けのLTspice通信講座(返金保証あり)
LTspiceの初心者向け通信講座です。
通信講座を利用すると、LTspice習得の近道になりますね。
英語ですが、LTspiceのシミュレーション動画を見れるので、けっこう理解できます。
30日間の返金保証があるので、ノーリスクで始められます。
まずは、右クリックの「日本語に翻訳」を活用してカリキュラムを確認してみましょう。
» 初心者向けのLTspiceチュートリアル(Udemy)はこちら
※この講座ではLTspiceのソースファイルをダウンロードできます。