SpiceシミュレータSIMetrixを使って定電力負荷をモデリングする方法

↓シェアしてもらえると更新のモチベーションになります(^^)

無題 (2)

回路シミュレーションでスイッチング電源みたいな定電力負荷を再現したい!けどネットにはなかなか載ってない!

ということでゴニョゴニョしてたらモデル化できたのでその方法を紹介します。

使用した回路シミュレータはSIMetrixです。LTspiceでも同じようなことができるはず。

定電力負荷って?

定電力負荷ってどういう状態か確認しておきます。

基本の式は 電力=電圧×電流(P=IV)

電力が一定ということは、電圧が大きくなれば吸い込む電流が小さくなるということですね(I=P/V)。

1W定電力の場合をグラフにすると普通の反比例の形です。

定電力

こんな特性の素子は実際の回路でいうと、スイッチングレギュレータみたいに、出力する電力が一定であれば入力電圧に応じて消費電流が変動するようなものです(効率を無視すれば)。

今回わけあってスイッチングレギュレータの入力電圧が大きく変動する回路の検討をしていたので、定電力負荷が必要になったってわけです。

失敗例

image

読み飛ばしてもらってもいいんだけど、失敗例を紹介。

この記事を参考にしようとすると難しいです。
http://monoist.atmarkit.co.jp/mn/articles/1310/23/news008_2.html

Non-Linear Transfer Functionとか使ってI=P/Vの式で計算しようとすると、Vが0のときI無限になって収束しなくなります。

初期条件を与えてやれば動くことはあるけど、その都度適切な初期条件を与える必要があってなかなか実用にはなりません。そんなところで迷っている暇はありません。却下。

成功例

Arbitrary Non-linear Resistorを使うと簡単にモデリングできます。

Place>Passives>Arbitrary Non-linear Resistorと選択して置ける、抵抗の形をした素子です。

image

置きます。

image

ダブルクリックで式を入れます。式の結果がこの素子の抵抗値となります。

V(N1)*V(N1)/P

今回は1W定電力にするためにP=1としました。この式はP=(V^2)/Rから導けます。

image

この状態で抵抗に時間変化する電圧を与えてみると、(V1を0~10Vでスイープ)

image

怒られました。V1=0のときにR1=0となるため計算ができません。回路シミュレーションの計算にゼロとか無限大はご法度です。

以下のように対策をします。

V(N1)*V(N1)/P + 1

ゼロにならないように最低値1Ωを足すことで無事走りました。

image

理想の特性と重ねて書くと電圧が低い部分でうまく合いません。あとで足した1Ωが支配的になるためです。

グラフィックス2

使いたい領域でうまく合うように調整が必要です(逆に言うと、計算に使わない部分は全然デタラメでも問題ないです)。

例えば1Ω→0.01Ωとするとここまで低い電圧でもうまく合います。

image

まとめ

定電力負荷はArbitrary Non-linear Resistorで簡易モデリング。

結局チューニングは必要なんだけど、初期条件を与えるよりもずっとラクです。

その他の操作方法は下記書籍が詳しいです。手元に1冊置いておくと便利ですよー。