モンテカルロ解析
乱数を用いてシミュレーションや数値計算を行う方法をモンテカルロ法と呼んでいます。乱数はさいころを転がしても生じます、モナコ公国のカジノの街の名にちなんでモンテカルロ法と呼ばれています。
ここでのモンテカルロ解析は、ノイマンの考案した、数値計算やシミュレーションで利用されるモンテカルロ法とは別物で、デバイスの素子のばらつきによる回路の動作の変動を把握するシミュレーションのことを指しています。
トランジスタ増幅器の抵抗のばらつきの影響を確認
前回確認したトランジスタ増幅回路において、抵抗値のばらつきが出力に与える影響を確認してみます。R3は16kΩにします。抵抗は一般に利用される5%の精度のものを利用します。
モンテカルロ解析用関数mc(val,tol)
モンテカルロ解析に直接利用できる関数 mc(val,tol) が用意されています。今回はこの関数を利用します。この関数はvalで示される値を、tolで示される変動幅でばらつかせた値を戻します。
モンテカルロ解析の手順
1.ばらつきのシミュレーション対象の変数設定
ばらつきを確認するデバイスの値をmc(val,tol) の変数として設定します。
ここでは、R1、R2、R3、R4の値を変数{mc(val、tol)}で設定します。R1の場合{mc(10k,tol)}と設定します。同様にR2は{mc(100k,tol)}、R3は{mc(16k,tol)}、R4は{mc(2k,tol)}、と設定します。
2.シミュレーション回数の設定
ばらつきの様子を調べるためにシミュレーションを繰り返します。シミュレーションを繰り返すために.stepコマンドを使用します。
.step param x 0 20 1
パラメータのxは0から20まで1ステップで繰り返すためのパラメータで、それ以外には利用されていません。
3.tolの変数の定義
モンテカルロ関数mc(val,tol)のtolの変数定義を行います。tolは5%に設定します。
.param tol=0.05
回路図にこれらの設定を行い、シミュレーションを行った結果を次に示します。各抵抗の値を5%の範囲でばらつかせたシミュレーション結果が表示されています。
R1、R4のばらつきを抑えると
R1、R4の抵抗の精度を1%にした場合の様子を調べます。R1とR4の精度の変数tolをtol1に変更し、値を0.01に設定します。シミュレーション結果を次に示します。出力の正弦波のカーブが線が細くなり変動が小さくなっているのがわかります。
mc(val,tol)関数を使用すると、このように、完成した製品の精度に影響を与える部品の品質の影響を評価することができます。
<神崎康宏>
