秋月ファンクラブ掲示板 過去ログ

同じ関数でも特性が異なる - ok-909

2014/08/09 (Sat) 23:46

LTSPICEで添付のように同じS関数でも解析の仕方により
結果が異なります。
1つはAC解析、もう1つは正弦波注入によるAC解析

どちらも同じ関数です。LTSPICEはS関数の時間解析は
うまくいかなかった経験が過去にあります。

S関数の時間解析を改善できないでしょうか?


Re: 同じ関数でも特性が異なる - inara1

2014/08/10 (Sun) 11:13

過渡解析で周波数応答を見るにはそういう方法があるのですか。実際やってみましたが恐ろしく時間がかかりますね。

その計算法の出典はここ
http://cds.linear.com/docs/en/lt-journal/LTJournal-V23N3-05-di-LTspice-GabinoAlonso.pdf
でしょうか。しかし、この式はおかしいと思います。

sinやcosの引数はラジアン単位なので
sin(2*pi*time*freq)
と書かなければいけないはずです。

atan2の値もラジアン単位なので、位相の計算式は、結果を度単位にするのなら
180*(mod(atan2(Aim,Are)-atan2(Bim,Bre)+pi,2*pi)-pi)/pi
が正しいと思います。

利得の大きさと位相の計算式が正しくないようです。


LT-spiceの過渡解析でLaplace変換を使うとき、s=0で発散するような式は使えないので、ご質問にあるように、分母を s+0.0001 などとして発散しないようにしますが、s に加える数値をどれくらいにするかは、厳密解と比較して決めるしかないようです。

添付図は、伝達関数が (1+k*s)/s で表されるような回路の周波数特性を、ラプラス変換を使った場合と、オペアンプを使った回路で比較したものです。ラプラス変換を使った場合、分母がs のままだとエラーとなるので、s+{a} として、a の値を変えています。オペアンプを使った回路では理想オペアンプを使って同じ伝達関数となるようにしています。したがって、このオペアンプを使った回路をリファレンス(厳密解)として、ラプラス変換を使った場合に、a の値によってどれくらいの精度が得られるのかが分かります。

その結果を見ると、0.1Hz未満の非常に低い周波数で差が出てくることが分かります。ステップ電圧を入力したときの過渡応答では、時間のオーダが数十秒より大きい場合に誤差が大きくなります。

このように、ラプラス変換を使う場合に、s=0で発散するような関数を使うと、直流に近い周波数成分の誤差が大きくなるので、ラプラス変換の式が分かっているのであれば、ラプラス変換を使わず、それと等価な回路を使ってシミュレーションしたほうがいいと思います。

Re: 同じ関数でも特性が異なる - ok-909

2014/08/10 (Sun) 12:41

返信ありがとうございます。

inara1さんの説明通り、ラジアン単位ですので、
その表記が正しいようです。

周波数応答ですが、説明通りやりましたが添付のように
inara1さんの方は正しい結果になりませんでした。
その理由はよくわかりませんが。

S関数についてはうまくシミュレーションできない理由が
よくわかりました。
opampで代用しようと思います。

ちなみに下記式をopampに変えたいのですがわかりますか?

LAPLACE=(1-exp(-T*s))/(T*s+0.0001)

Re: 同じ関数でも特性が異なる - inara1

2014/08/10 (Sun) 14:56

Laplace変換の式
H(s)=(1-exp(-T*s))/(T*s+a) --- (1)
を逆ラプラス変換すると
G(t)=exp(-a*t/T)/T*( 1 + U(t-T)*exp(a*T) ) --- (2)
となります。

U(t-T) というのは時間Tだけ遅延した信号です。入力にステップ信号を与えたとき、exp(-a*t/T) という応答は時定数がT/aのローパスフィルタの特性で、 U(t-T)は遅延素子になるので、式(2)のようなステップ応答となる回路は添付図のようになります。

ラプラス変換の式(1)をそのまま記述したときの出力out1と、式(2)の応答と等価な回路の出力out4の周波数応答を比較すると、利得の大きさは合っているようです。位相は1Hzより高い部分で異なっています。しかし、良く見ると、1Hzより大きい領域でのout1とout4の位相差は360度なので、out1とout4の位相は数学的には同じになります。

添付図の例ではa=0.0001としていますが、a=0の場合、式(2)は
G(t)=(1/T)*( 1 + U(t-T) )
となって、ローパスフィルタのない式(遅延なしの信号と遅延のある信号の差)になります。

Re: 同じ関数でも特性が異なる - ok-909

2014/08/10 (Sun) 22:36

素晴らしいですね。

いつも感心させられます。
inara1さんの内容でできそうです。
ありがとうございました。