LTspiceで、複数部品のパラメータを.stepコマンドで変化させてシミュレーションしてみる

LTspice

LTspiceを使っていると、抵抗やコンデンサの値を変えた、複数条件でシミュレーションしてみたい時があるかもしれません。

そんな時に、1条件ずつシミュレーションするのは、面倒臭くて大変です。

なので、そういう場合には、.stepコマンドを利用し、自動で抵抗値や容量値のパラメータを変えてシミュレーションを実行していました。

しかし、ふと、1回のシミュレーションで、パラメータが変更できるのは1部品だけなのか?2部品のパラメータを変えることもできるのか?、と思い確認をしてみました。

スポンサーリンク

.stepコマンドのおさらい

まずは.stepコマンドのおさらいです。

以下の回路図で試してみたいと思います。

電源電圧は10V、コンデンサの容量は1uFです。抵抗R1は抵抗値を変化させるので、抵抗値は{x}としておきます。

抵抗R1は100Ω、300Ω、500Ωの3つのパラメータとし、抵抗R1とコンデンサC1の間の電圧をシミュレーションしてみます。

このシミュレーションのやり方は、私の知っている限り、2つの方法があります。

(1).step param x list ParamA ParamB ParamC

ParamAとParamBとParamCに、シミュレーションしてみたい抵抗値を入力します。

今回のケースだと、100Ω、300Ω、500Ωの3つのパラメータでシミュレーションしたいので、Edit Text on the Schematicでの設定は以下のようになります。

ここでは3つのパラメータを入力していますが、4つ以上でも大丈夫です。

(2).step param x start end step

startの抵抗値から、endの抵抗値まで、stepの抵抗値ごとにシミュレーションする設定です。

今回のケースだと、100Ω、300Ω、500Ωの3つのパラメータでシミュレーションしたいので、Edit Text on the Schematicでの設定は以下のようになります。

100Ωから500Ωまで、200Ωステップなので、結局、100Ω、300Ω、500Ωでのシミュレーションになります。

.stepコマンドは2つの書き方になりましたが、結局は同じ条件でシミュレーションしているので、結果は同じになります。

CとRのパラメータを変えてみる

では、次に1回のシミュレーションで、抵抗値とコンデンサ容量値を変えてみたいと思います。

以下の回路図で試してみたいと思います。

抵抗R1は{xr}、コンデンサC1は{xc}と設定しています。

抵抗R1は、100Ω、300Ω、500Ωの3つのパラメータでシミュレーションしたいので、Edit Text on the Schematicでの設定は以下のようにしました。

コンデンサC1は、0.5uF、1uF、1.5uFの3つのパラメータでシミュレーションしたいので、Edit Text on the Schematicでの設定は以下のようにしました。

最終的な回路図は、以下のようになりました。

これでシミュレーションを実行した結果です。

結果は8波形が表示されました。

まずは、1回のシミュレーションで、抵抗とコンデンサの2つのパラメータを変化させてもシミュレーションができることがわかりました。

つまり、Edit Text on the SchematicSPICE directiveが2設定があっても問題はないようです。

これでができれば、シミュレーションの作業時間を短縮できる場合もありそうですね。

そして、なぜ結果は8本の波形表示になったのかですが、もうだいたい予想はつきますが、念のため確認しておきたいと思います。

表示される波形数

上で得られたシミュレーション結果の波形を、テキストファイルで出力させてみます。

結果波形をテキストデータで出力させる方法は、以下の記事をご参照ください。

出力したテキストファイルの結果を抜粋してみます。

Step Information: Xr=100 Xc=500n (Run: 1/9)
0.000000000000000e+000 0.000000e+000
7.999999951380232e-008 3.996574e-005
1.599999990276046e-007 1.597262e-004
Step Information: Xr=300 Xc=500n (Run: 2/9)
0.000000000000000e+000 0.000000e+000
7.999999951380232e-008 1.332953e-005
1.599999990276046e-007 5.330288e-005
Step Information: Xr=500 Xc=500n (Run: 3/9)
0.000000000000000e+000 0.000000e+000
1.599999990276046e-007 3.198903e-005
3.199999980552093e-007 1.279123e-004
Step Information: Xr=100 Xc=1オ (Run: 4/9)
0.000000000000000e+000 0.000000e+000
7.999999951380232e-008 1.999143e-005
1.599999990276046e-007 7.993149e-005
Step Information: Xr=300 Xc=1オ (Run: 5/9)
0.000000000000000e+000 0.000000e+000
1.599999990276046e-007 2.665905e-005
3.199999980552093e-007 1.066057e-004
Step Information: Xr=500 Xc=1オ (Run: 6/9)
0.000000000000000e+000 0.000000e+000
1.599999990276046e-007 1.599726e-005
3.199999980552093e-007 6.397806e-005
Step Information: Xr=100 Xc=1.5オ (Run: 7/9)
0.000000000000000e+000 0.000000e+000
7.999999951380232e-008 1.332953e-005
1.599999990276046e-007 5.330288e-005
Step Information: Xr=300 Xc=1.5オ (Run: 8/9)
0.000000000000000e+000 0.000000e+000
1.599999990276046e-007 1.777439e-005
3.199999980552093e-007 7.108403e-005
Step Information: Xr=500 Xc=1.5オ (Run: 9/9)
0.000000000000000e+000 0.000000e+000
1.599999990276046e-007 1.066545e-005
3.199999980552093e-007 4.265692e-005

※”オ”と表示されているのは文字化けです。LTspiceがテキストファイルを出力した段階ですでに文字化けしていたので、そのまま表示しています。

テキストファイルで見ると、9波形分のデータがありました。

テキストファイルには、抵抗とコンデンサのパラメータ(xrとxc)も表示されています。

テキストファイルのxrとxcを見ると、今回のシミュレーションはxrが3パラメータ、xcが3パラメータなので、3×3=9で9条件分のシミュレーションをしてくれたようです。

では、なぜ8波形しか表示されなかったのか?

テキストデータを比較すると、Run:2/9(Xr=300Ω, Xc=500nF)とRun:7/9(Xr=100Ω, Xc=1.5uF)が同じ結果になっています。

ということは、Run:2/9(Xr=300Ω, Xc=500nF)とRun:7/9(Xr=100Ω, Xc=1.5uF)はシミュレーション結果が同じということになります。

シミュレーション結果が同じなので、波形表示させると、2本の波形が重なってしまい1本の波形に見えます。

これが原因で、実際は9波形表示されているので、8波形しか表示されていないように見えていたようです。

CR回路の時定数は、コンデンサ容量と抵抗値の積なので、Run:2/9とRun:7/9の結果が一緒になりますね。

Select Stepsを使って必要なパラメータを選択

パラメータを振ってシミュレーションしたいけど、結果が見づらくなるので余計なパラメータは外したい場合もあるかもしれません。

そんな時はSelect Stepsを使います。

Select Stepsを使うことで、必要な波形だけを表示させることができます。(逆に言えば、不必要な波形を非表示にできる)

Select Stepsは、シミュレーション波形が表示された状態で、Plot Settings -> Select Stepsを選択します。

すると、以下のウインドウが表示されます。

このウインドウにxrとxcが表示されているので、必要なパラメータだけを選択してOKボタンをクリックします。

試しに一番短い時定数と、一番長い時定数の条件だけを選択してみます。

2波形だけになり、見やすくなりました。

余計な波形を消して、見やすくするためには便利な機能です。

まとめ

.stepコマンドは、1回のシミュレーションで、1部品だけしかパラメータを変化させられないのかと思いましたが、複数部品のパラメータを変えられることがわかりました。

上手く使えば、作業時間を削減できそうです。

タイトルとURLをコピーしました