Article header library 128133  1

LTspiceを使ってみよう -「モンテカルロ解析」を使ってみよう

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回の繰り返しを行います。

Article header library 128133 pic01  1

mc関数で抵抗1k±5%(ohm)をランダムに発生

シュミレーション結果は下図の通りです。

抵抗に生じる電圧のバラツキを抵抗のバラツキとして確認しています。
縦軸が抵抗に生じた電圧値、横軸がステップ回数となります。

Article header library 128133 pic02  1

抵抗のバラツキ結果(1000サンプル)

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

Article header library 128133 pic03  1

ヒストグラム

フィルタのカットオフ周波数を検討してみよう

モンテカルロ解析の良いところは、複数の部品定数がどのように関係し合うのかを疑似的に確認できることです。
ここでは抵抗とコンデンサ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回とします。

Article header library 128133 pic04  1

RCフィルタ回路(mc関数でRとCに誤差を加える)

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

Article header library 128133 pic05  1

フィルタのAC特性結果(1000サンプル)

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

Article header library 128133 pic06  1

ヒストグラム

誤差がない場合のカットオフ周波数は Fc=1/(2*π*R*C)=15.915kHz(約16kHz)です。
一様分布の乱数を加えると、カットオフ周波数の最小値(約12.6kHz)、最大値(約20.6kHz)の発生率は少ないように見えますが、全体的にほぼ均一に分布している結果となりました。

今回検証したLTspiceデモ・ファイル

LTspiceインストール済のパソコンで、zipファイルを同一フォルダに解凍後、LTspiceを実行すると波形表示が自動的に始まります。

R_mc__1.zip

抵抗Rの⼀様分布_シミュレーションファイル

RC_mc__1.zip

RC回路の⼀様分布_シミュレーションファイル

最後に

今回はLTspiceにおけるモンテカルロ解析の例をご紹介しました。

バラツキを設定してシミュレーションをすることで、回路の挙動やシステム全体への影響度合いを把握する事ができます。ただし、与える関数を一様分布のにするのか、他の乱数関数を使うべきなのかは別途検討が必要になります。

LTspiceでは様々な関数(Gaussionなど)をサポートしていますので機会があれば試してみてください。これらの関数はLTspiceEのHelpメニューで確認ができます。

まずは下記リンクよりLTspiceをダウンロード!ぜひ、一度お試しください。

LTspiceのダウンロードはこちら


おすすめ記事/資料はこちら

LTspice セミナー情報

関連タグ