LTspiceを使ってみよう -「.step」でパラメータを変化させてみよう では繰り返し解析としてパラメータを変化させる「Stepコマンド」をご紹介しました。
今回はその応用として、統計解析である「モンテカルロ解析」の使い方をご紹介します。
LTspiceを使ってみようシリーズ 一覧はこちら
モンテカルロ解析とは?
回路設計をするにあたり部品公差(バラツキ)を考慮して部品選定をする場合があります。
モンテカルロ解析は乱数を用いて、部品公差にランダムな組み合わせを発生させることで、回路の動作変化を確認することができます。
そのため回路の歩留りを予測したり設計仕様に合う部品定数を検証することができます。
mc関数を使って抵抗のバラツキをみてみよう
SPICEでのモンテカルロ解析は、一般的に疑似乱数(関数)を部品誤差として与え、パラメータを変動させます。
LTspiceでは自動でモンテカルロ解析を行うメニューがありませんので、関数指定とStepコマンドを組み合わせて使用します。
今回はmc関数を使ってみたいと思います。
mc(x, y)関数は、x*(1+y)値 から x*(1-y) 値間で、一様分布の乱数が発生させます。
まず下図のように抵抗の値に関数を指定します。
今回の例では抵抗1kΩ(公称誤差5%)を {mc( 1k, tol )} で設定します。
次に Stepコマンドで0~999の1000回の繰り返しを行います。

シュミレーション結果は下図の通りです。
抵抗に生じる電圧のバラツキを抵抗のバラツキとして確認しています。
縦軸が抵抗に生じた電圧値、横軸がステップ回数となります。

このグラフデータをExcelに取り込んで解析した結果(ヒストグラム)ものせておきます。
抵抗に発生する電圧(抵抗のバラツキ)がほぼ均一の分布になっていることがわかります。

フィルタのカットオフ周波数を検討してみよう
モンテカルロ解析の良いところは、複数の部品定数がどのように関係し合うのかを疑似的に確認できることです。
ここでは抵抗とコンデンサ2つの部品を使いRCフィルタを作りカットオフ周波数の変動を確認してみます。
使用する抵抗値は1k±0.5%(ohm)、コンデンサは0.01u±20%(F)とするので、抵抗R1の定数を {mc(1k, 0.05)}、C1の定数を {mc(0.01u, 0.1)} にします。
繰り返し回数はStepコマンドを用いて0~999の合計1000回とします。

下図がシュミレーション結果(AC特性)となり、ゲイン(縦軸)が-3dBのポイントがカットオフ周波数です。

この図だけでは結果がみえにくいため「.meas」コマンドでカットオフ周波数のバラツキをExcelで図にしました。

誤差がない場合のカットオフ周波数は Fc=1/(2*π*R*C)=15.915kHz(約16kHz)です。
一様分布の乱数を加えると、カットオフ周波数の最小値(約12.6kHz)、最大値(約20.6kHz)の発生率は少ないように見えますが、全体的にほぼ均一に分布している結果となりました。
今回検証したLTspiceデモ・ファイル
LTspiceインストール済のパソコンで、zipファイルを同一フォルダに解凍後、LTspiceを実行すると波形表示が自動的に始まります。
抵抗Rの⼀様分布_シミュレーションファイル
RC回路の⼀様分布_シミュレーションファイル
最後に
今回はLTspiceにおけるモンテカルロ解析の例をご紹介しました。
バラツキを設定してシミュレーションをすることで、回路の挙動やシステム全体への影響度合いを把握する事ができます。ただし、与える関数を一様分布のにするのか、他の乱数関数を使うべきなのかは別途検討が必要になります。
LTspiceでは様々な関数(Gaussionなど)をサポートしていますので機会があれば試してみてください。これらの関数はLTspiceEのHelpメニューで確認ができます。
まずは下記リンクよりLTspiceをダウンロード!ぜひ、一度お試しください。
LTspiceのダウンロードはこちら
おすすめ記事/資料はこちら
記事一覧:LTspiceを使ってみようシリーズ