SPICEの小瓶(29) 三角波-正弦波変換ビヘイビアモデル、マクローリン展開と小技

Joseph Halfmoon

前回はビヘイビアモデルではなく実回路化可能と思われる(やってないケド)三角波‐正弦波変換回路(折れ線近似)をLTspiceしてみました。今回はビヘイビアに戻ってモデルを作ってみます。マクローリン展開の係数を電圧制御電圧源のPOLYの係数にぶっこむという方法なのですが、教科書はちょいと小技を使ってました。流石。

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

※ Analog Devices, Inc. LTspice XVII(x64) (17.0.36.0)を使用させていただいて動作確認しております。

電圧制御電圧源のPOLY記法とマクローリン展開

電圧制御電圧源、Voltage Dependent Voltage Sourceは、マクローリン展開との相性が良い感じです。

Exxx n+ n- POLY(1) nc+ nc- c0 c1 c2 c3 c4 c5 c6 c7 ...

n+, n- は電位差を与える2つのノードであり、POLY(1) は以下の係数が1制御変数の多項式近似であることを示しています。次のnc+ nc- は制御する側のノード2つでこの間の電圧をVとすると、Vの0乗の係数がC0(定数)、Vの1乗の係数がC1、という形で記述ができます。適当な次数で打ち切れば計算はそこで止まります。

ここで、高校だか、大学だかで教わった筈のSIN関数のマクローリン展開を思い出せば以下のようです。偶数次数が消えるのね。T2S1_Formula

ここで出てくる 1/3!とかは簡単に計算できるので、それをそのままPOLYの係数にすればいいじゃん、と思うのですが、教科書をカンニングしたらば値が違いました。

入力三角波の振幅を -π/2 ~ π/2とすれば、そのままでもよいのですが、流石にSPICEシミュレーションで振幅π/2というのは抵抗があります。そこで振幅は1としておいて、そのπ/2倍の値を電圧として扱えば目的を達すると。ぶっちゃけ、係数の(π/2)**次数をあらかじめ含めておく、という小技です。

ビヘイビアモデルのソース

上記の小技を用いた三角波-正弦波変換(ただし三角波の振幅は1にしてね)のコードが以下に。一応、入出力の抵抗(RI、RO)と出力正弦波の振幅(入力1のK倍)はパラメータ化してあります。T2S2_LIB

ビヘイビアモデルのシンボル

例によって四角で手抜きなシンボルが以下に。T2S2_ASY

動作確認用の回路

これまた手抜きな動作確認用の回路図が以下に。T2S1_DUT

シミュレーション結果

黄緑色が振幅1、オフセット0の入力三角波です。赤色がゲインK=1とした三角波-正弦波変換ビヘイビアモデルの出力です。

T2S2_WAVE

まあまあ、正弦波。近似とは言え7次の項までとってるもんね。

SPICEの小瓶(28) 実回路化可能? 三角波-正弦波変換回路。ダイオード折れ線近似 へ戻る

SPICEの小瓶(30) BVエレメント使って、遅延のビヘイビア・モデル へ進む