SPICEの小瓶(22) POLYのパラメータを.STEPできるようにしてみる

Joseph Halfmoon

前回はマクロモデルの中で非線形な従属電源の特性をPOLY(多項式)で表現してみました。これができればどんな特性でも思うがままなどとほくそ笑んだのですが、前回の方法では新たな特性のデバイスを定義する度にモデルファイルを書き換えねばなりません。メンドイです。今回は「パラメータ化」してみたいと思います。

※「SPICEの小瓶」投稿順インデックスはこちら

マクロモデルの特性をパラメタライズ?

パラメタライズなどと書くと高級な感じがしますが、前回使用したライブラリのモデルにおいて、特性を決めているPOLY(多項式定義)の係数部分を、具体的な数字からシンボルに置き換えるだけです。TSTPOLY1P_LIB

上記で黄色のマーカ引いた部分です。シンボル部分は{ } カーリーブラケットってやつで囲ってます。

それを使って描いた回路が以下に。前回の回路と見た目はほとんど同じ。マクロモデルのシンボル名がTSTPOLY1PとPが増えただけ。circuit_1

でもシンボルのアトリビュートエディタを開けば、以下のように SpiceLineとある行にC1=0.5,…などと設定すべき数字を書き込んでます。これでライブラリファイルの中には具体数値がなく、「現物」の回路の方に具体数値がおかれた状態になりました。circuit_1settingA

 

 

なお当然ながら、シンボルファイル内で参照しているライブラリファイルのパスやモデル名等も「パラメタライズ版」に変更しておかねばなりません。

シミュレーション結果が以下に。ちゃんと2次関数になっているみたいっす。circuit_1sim

パラメータ化した値をさらに.stepしてみる

上記のようにライブラリファイルの中身をシンボル化してしまうとそのシンボルに割り当てる値を .step でいろいろ変えてみることもできます。回路上に .step コマンドを記述。

circuit_2

そして、マクロモデルのアトリビュートでは、上記で定義したABCというパラメータを参照するように C1={ABC}と記述。C1のところは具体的な数字になるまで2段階の参照を経由することになります。circuit_2settingA

シミュレーション結果が以下に。上記では、.stepしている一番右の値1.5が切れて見えてないですが、3つの値すべてについてシミュレーションを行ってグラフを描いてくれています。circuit_2sim

これでPOLYによる記述、バッチリ? ホントか?

SPICEの小瓶(21) POLYって何よ?非線形従属電源の多項式定義、なんじゃそりゃ へ戻る

SPICEの小瓶(23) 電圧制御電圧源のPOLYでアナログ電圧加算器のビヘイビアモデル作る へ進む