2018年1月13日(土)/ LTSpice, 電子回路

LTSpiceの使い方について少しずつ書いていきます
基本操作は別途まとめたいと思いますが、まずはシミュレーションの基本であるパラメータを振ったステップ解析方法についてです
定数を変化させた時の動作波形を重ねて表示できたりするので便利です




スポンサーリンク

どんなことができるのか

まずは、「.step」というコマンドで何ができるのかを簡単に説明します


簡単な実例

言葉で説明するよりも以下の例を見て頂いた方が良く分かると思います
回路中の定数を変数として定義して、その変数を順次変化させていき各々の値でシミュレーションを複数回実行していきます

↑この例ではトランジスタのC-E間電圧を0-1VでDC解析した時にベース電流を10uAずつ変化させて
 コレクタ電流の様子をシミュレートしている


「.step」コマンドの入力方法

「.step」コマンドは専用のボタン (アイコン) が用意されていないので、右端にある「.OP」と書かれたアイコンをクリックして直接打ち込みます
最新バージョンのLTSpiceXVIIでは一度「.step」コマンドを書けば右クリックして編集する際に補助的なダイアログが表示されるので初めて使う方に易しくなっています
ちなみに、2017年以前のバージョンであるLTSpiceIVではダイアログは表示されずにテキストの編集画面が出ます
(慣れている場合はテキスト編集の方が楽だったりします)
コマンドの詳細は後ほどまとめますが、以下のような書き方となります

– 変数に与える数値をリストで与える場合
.step param 変数名 list 値1 値2 値3 …
– 変数に与える数値を 初期値→終了値、間隔(線形増加) で与える場合
.step param 変数名 list 初期値 終了値 間隔
– 変数に与える数値を 初期値→終了値、分割数(対数増加) で与える場合
.step dec/oct param 変数名 list 初期値 終了値 分割数
※dec:10倍するのに何等分するか、dec:2倍するのに何等分するか



回路側の準備 (変数となる定数を定義する)

ステップ解析するには回路図中のどこかの定数を変化させる必要があるので、変数化します
変数の定義は {変数名} と任意の変数名を中括弧{}で囲み通常は定数を入力する場所 (抵抗値とか容量値など) に記載します
同時に変化させたい定数がある場合は同じ変数を設定することもできます

上の例ではベース電流を与える電流源I1の値を”Ib”という変数名で定義しています

では実行してみよう!

これでとりあえずステップ解析の準備ができたので通常のシミュレーションと同様にtranやdc、ac解析を実行させればしていしたステップ数だけシミュレーションを行います
但し、ステップ数が多いと解析に時間が掛かるかもしれないのでほどほどに
コマンド記載方法に不備がなければはじめの例のように解析を行うことができます
不備がある場合はエラーダイアログが出ます


まとめ

以上のように簡単な手順でステップ解析ができます
次はステップ解析する時に使える小技を紹介します



ステップ解析で使える小技

温度を変化させる

温度依存のある素子 (標準ではトランジスタやダイオードなどの半導体) の温度を変化させる場合には「.step」の代わりに「.temp」コマンドを使います
「.temp」コマンドは “.step param temp list” の省略だと思ってもらえれば良いです
なので抵抗値に {temp} という値を指定することもできます

– 温度を10℃、25℃、60℃、100℃でステップさせる
.temp list 10 25 60 100
※リストの順番はどう並べても必ず低い値から実行されます


2箇所以上の定数を別々で変化させる

SPICEでは2箇所以上の定数に対してそれぞれ「.step」で値を変化させると全ての組み合わせで実行されるように各ステップ数の総積回実行されます
以下の例では変数”R1″が10回、変数”R2″が5回のステップになるので、全体では50回の処理が実行されます

.step param R1 1k 10k 1k
.step param R2 20k 100k 20k


モンテカルロ解析を行う

ステップ解析 (複数回実行されること) を使ってモンテカルロ解析 (値をランダムに変化させて最大値や最小値などを求める解析方法) を実施することができます

まず「.step」コマンドで適当な回数実行されるように設定します
(“.step param X 1 100 1” とかで使ってない変数”X”に対して値を変化させます)

次に解析対象の定数に {mc(中央値, 公差)} と指定します
例えば、J級抵抗 (公差:±5%) を表すには {mc(10k, .05)} とします

モンテカルロ解析の良いところは各々の定数が関係しあってどういった値をとれば出力が最大になるか不明な場合にランダムに値を振り当てて実際に解析させて、それを複数回実行することで最大値であろう数値を疑似的に得ることができることです
但し、繰り返し回数が少ない場合には真値とはかけ離れた結果が出る可能性がたかいことに注意しなければいけません
(常に真値が出るとは限りませんし、あくまで検算的な意味で使う方が安全だと思います)

測定コマンドと組み合わせる

波形から様々な測定値 (最大・最小値や実効値など) を計算する「.meas」コマンドと組み合わせることでステップ解析がもっと有用なものに生まれ変わります!
例えば「.meas」コマンドで最大値を求めるように指示しておくと、各ステップでの最大値をステップ値に応じてグラフ化できる機能があります

どうやってやるかというと、シミュレーションが終わったら 右クリック → View → SPICE Erro Log と選択してログを表示させて、この画面上で右クリックすると “Plot .step’ed .meas data” というものがあるのでこれを選ぶだけ!
こうやってやると横軸にステップした変数の値、縦軸に測定値のグラフが作成されます
本記事の最初に貼ってある画像がまさに「.meas」との組み合わせ結果で、容量を変えた時のピーク値をグラフとして表示させています



おわりに

以上がステップ解析の簡単な説明です
手軽に使える有用な解析方法だと思いますので是非使ってみて下さい


入力したメールアドレスは公開されません。


以下のタグが使用可能です :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください