[LTspice] ラプラス変換を使って伝達関数を解析する


LTspiceでラプラス変換を使った解析が行えることを知らない人が多い気がします。

知ってると、わざわざ微分方程式を回路方程式に見立てて回路を組んでシミュレーションするという手間が省けて便利です。

これは特に、フィルタの設計や制御系設計、モータのモデリング等、電子回路とその他の物を組み合わせた解析をしたい時などに顕著です。

Matlabに代表されるような、より汎用的な数値解析ソフトを使えと言われればそれまでですが、無料で手軽に使えるLTspiceはなかなか便利なものです。

今まで普通に使っていたのですが、本当に動作してるのか少し気になっていました。

そこで、単純なRCフィルタを回路素子とラプラス素子を使ってシミュレーションして、その差異を確認してみました。

電圧制御電圧源

ラプラス変換により周波数領域で表された伝達関数は、LTspice上では電圧制御電圧源を用いて表現します。

コンポーネントにあるeやe2が電圧制御電圧源です。
eとe2の違いは回路シンボルの入力端子の配置のみです。

電圧制御電圧源は入力電圧によって出力電圧を制御する電圧源ですが、Valueに

$$ Laplace = G(s) $$

という書式で伝達関数を記述することで、ラプラス変換を使った解析を行えます。

但し、分母に1/sの項があると

The Laplacian is singular at DC.

のようにDC領域で特異点があるとエラーを吐かれるので、そういった計算をさせたい場合には1/(s+1n)等で近似してやる必要があるかもしれません。

ビヘイビア電源

電圧制御電圧源を使うほうが一般的なようですが、ビヘイビア電源でもラプラス変換を用いた伝達関数が使えます。

ビヘイビア電源ではValueに

$$ V = F(…)  Laplace = G(s) $$

という書式で記述してやると、$$ F(…) \times G(s) $$を出力します。

RCフィルタ

RCによるローパスフィルタを解析してみます。

出力電圧は

$$ V_o = \frac{1}{ RCs+1} V_i $$

と表されるので、これを電圧制御電圧源に記述します。

RC_Filter

過渡解析を行うと次のような結果が得られます。

Transient_Analyze

Transient_AnalyzeError

回路素子での解析とLaplaceを使った解析は、ほぼ一致しています。

回路素子とLaplaceの差異は約1%程度でした。
ただし、この値はMaximun Timestepを小さくするほど減少していきます。

またAC解析も次に示すように、同様の結果が得られます。

AC_Analyze_by_Circuit_Element AC_Analyze_by_Laplace

 

おわり

ラプラスによる伝達関数を上手く使うと、LTspiceをかなり汎用的な数値解析ソフトとして使いこなせるようになると思います。

追記

書いてから気づきましたが、エレキジャックさんで似たような解説がありました。
http://www.eleki-jack.com/KitsandKids2/2008/10/ltspice37voltage_dependent_vol.html

Tweet about this on TwitterShare on FacebookShare on Google+