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

LTSPICE AC注入による解析 - kurin

2013/12/30 (Mon) 13:46

feedback制御における系の安定性を見るために
AC特性で見る見方ともう1つ正弦波注入に見る見方があります。

正弦波注入の時間解析をAC解析に変換すると
元々AC解析で行った結果と同じになるはずが異なります。
添付のように

時間解析を始める時間は系が安定した50ms後であることを確認しました。

この違いは何かわかりますでしょうか?


図の左が正弦波注入 右はAC解析

今後は非線形素子のある回路に正弦波注入をあてはめようと思うのですが、これだ
けAC特性と差があると使えません。

設定の問題、解析方法の問題・・・

Re: LTSPICE AC注入による解析 - inara1

2013/12/30 (Mon) 19:23

AC解析の回路図をこちらでシミュレーションしてみましたが、なぜか特性がkurin
さんのと若干違いました。v(o)/v(i)の最低値が-12dBでなく、-10dBくらいになり
ました。回路図に見落としがあったのかもしれません。回路図ファイル(拡張子が
asc)はテキスト形式で書かれているので、それをNotePadなどのテキストエディタ
で開いて、その内容をコピーして、この掲示板にペーストしてもらえますか?そう
すれば、こちらで全く同じ回路図ファイルでシミュレーションできます。

AC解析と正弦波を入れたときの違いは、線形素子だけを使っていて、なおかつ定常
状態で比較しているのなら、ないはずです。しかし、LT-spiceでLaplace変換を
使ったときの過渡解析には無視できない誤差があります(この掲示板でもその例が
あります)。

Laplace変換はAC解析でも過渡解析でも使っているから、誤差があっても結果は同
じではないかと思われるかもしれませんが、AC解析の場合は、周波数特性を求める
ときに、Laplace変換の式をそのまま使える(変数のsをj*ωに置き換えれば伝達関
数になる)のに対して、過渡応答をシミュレーションするときは、数値計算で
Laplace逆変換しているので、そこに誤差が入り込んでいるのかもしれません。

LT-spiceのLaplace変換の式でs+0.00001としているのは、sのままだとエラーが出
るためだと思いますが、s+0.00001としているために誤差が大きくなっているのか
もしれません。こちらには、数式処理ソフト(Maple)があるので、sのままのとき
と、s+0.00001とした場合の、Laplace逆変換後の式を求めてみました(添付図)。
逆変換後の式は、1msくらいで安定するので、その時間までのグラフを描いてみま
したが、どちらもほとんど同じでした。

Laplace逆変換の式(過渡応答)が分かっているので、逆変換後の式を使って(V=
逆変換跡の式 とする)過渡解析してみてはいかがでしょうか。その結果と
Laplece=で記述した場合で違いがあれば、それが原因だと思います。

Re: LTSPICE AC注入による解析 - kurin

2013/12/30 (Mon) 21:52

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

逆laplace式を添付ファイルのように打ち込みましたが、
missing gain errorになりシミュレーションできなかったのですが原因は何で
しょうか?

ファイルの内容をメモ帳で開きました。以下にコピーします。
Version 4
SHEET 1 2160 680
WIRE 1200 -832 1120 -832
WIRE 1312 -832 1280 -832
WIRE 1376 -832 1312 -832
WIRE 1408 -832 1376 -832
WIRE 1120 -752 1120 -832
WIRE 1072 -736 928 -736
WIRE 1072 -688 1024 -688
WIRE 704 -640 704 -688
WIRE 1024 -640 1024 -688
WIRE 1024 -624 1024 -640
WIRE 1024 -528 1024 -544
WIRE 1024 -512 1024 -528
WIRE 1056 -512 1024 -512
FLAG 1312 -688 0
FLAG 1408 -752 0
FLAG 1376 -832 vo
FLAG 928 -656 0
FLAG 1024 -432 0
FLAG 1120 -672 0
FLAG 1024 -528 a
FLAG 1024 -640 b
SYMBOL e 1120 -768 R0
WINDOW 3 -6 152 Left 2
SYMATTR Value laplace=1*(kp + ki/t/(s+0.00001))*(1/(1+T1*s))
SYMATTR InstName E1
SYMBOL cap 1296 -832 R0
SYMATTR InstName C1
SYMATTR Value 2200u
SYMBOL res 1296 -784 R0
SYMATTR InstName R1
SYMATTR Value 10m
SYMBOL ind 1184 -816 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 5 56 VBottom 2
SYMATTR InstName L1
SYMATTR Value 10u
SYMBOL res 1392 -848 R0
SYMATTR InstName R2
SYMATTR Value 3
SYMBOL voltage 928 -752 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value 2.5
SYMBOL bv 1024 -528 R0
SYMATTR InstName B1
SYMATTR Value V=1/10*v(vo)
SYMBOL voltage 1024 -528 M180
WINDOW 0 -32 56 VBottom 2
WINDOW 3 -136 189 VBottom 2
WINDOW 123 58 22 VBottom 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V2
SYMATTR Value SINE(0 1 {Freq})
TEXT 1272 -560 Left 2 !.param kp=3 t=1/200000 ki=0.01 t1=16u
TEXT -416 -928 Left 2 !;.param Freq=100 ; iterate to 0dB gain or use the .
step statement below\n.step dec param freq 900 1000 100\n;.save V(a) V(b)
I(L1)\n;.options plotwinsize=0 numdgt=15
TEXT -408 -728 Left 2 !.measure Aavg avg V(a)\n.measure Bavg avg
V(b)\n.measure Are avg (V(a)-Aavg)*cos(360*time*Freq)\n.measure Aim avg
-(V(a)-Aavg)*sin(360*time*Freq)\n.measure Bre avg
(V(b)-Bavg)*cos(360*time*Freq)\n.measure Bim avg
-(V(b)-Bavg)*sin(360*time*Freq)\n.measure GainMag param
20*log10(hypot(Are,Aim) / hypot(Bre,Bim))\n.measure GainPhi param
mod(atan2(Aim, Are) - atan2(Bim, Bre)+180,360)-180
TEXT 344 -784 Left 2 !.param t0=50m
TEXT 328 -736 Left 2 !.tran 0 {t0+1000/freq} {t0}

Re: LTSPICE AC注入による解析 - inara1

2013/12/31 (Tue) 06:39

AC解析の結果が一致しました。不一致の原因は電圧源V1とV2のパラメータの間違い
でした。

missing gain errorの原因は、電圧制御電圧源E1の記述に時間を入れたことです
(うっかりしていました)。時間変数timeが使えるのはビヘイビア電源だけでし
た。E1をビヘイビア電圧源B2に変えて、入力信号をラベル名で指定すれば大丈夫の
はずです(後でやってみます)。

Re: LTSPICE AC注入による解析 - kurin

2014/01/03 (Fri) 01:15

inara1さんがmapleで算出した時間関数を
BVで実行しました。

AC解析波形、正弦波注入波形、逆laplaceによる時間関数で正弦波注入波形のどれ
も結果は異なっていました。

添付ファイルのように今度は補償回路をAMPにしました。AC解析の波形と正弦波注
入による波形は一致しました。つまり正弦波注入がAC解析と等しいことを証明でき
たのですが、laplaceがどうも
使えなさそうです。
このlaplaceでAC解析は使えそうですが時間解析はなんだか怪しい感じです。どう
いう場合にokかNG
か良くわかりません。

laplaceを時間解析で使う場合はいちいち逆laplaceをしてつかわないとまずいので
すかね?

AC解析と時間解析はいつもsetでつかうので、不便さを感じます。

何か良い方法はないですかね?

Re: LTSPICE AC注入による解析 - kurin

2014/01/08 (Wed) 23:13

webサイトにLTSPICEでlaplaceを使う際の注意点がありました。http://homepage1.
nifty.com/ntoshio/rakuen/spice/behavioral/index.htm

どうも関数の解が0に近いほど大きな誤差を生むようです。
laplace関数をampに置き換える方法が私ができる方法かな?

Re: LTSPICE AC注入による解析 - inara1

2014/01/09 (Thu) 19:09

そのサイトはよく見ています。

ラプラス変換の式に1/sが含まれると、DC利得が無限大になりますが、そういう伝
達関数が出てくるのは、理想オペアンプを使った場合などに限られると思います。

オペアンプを使った回路でDC利得が非常に大きくなるのは、積分回路くらいしかな
いとと思いますが
1*(kp + ki/t/(s+0.00001))*(1/(1+T1*s))
というのは、どのような回路でしょうか。

Re: LTSPICE AC注入による解析 - kurin

2014/01/11 (Sat) 00:31

PI,PIDの関数をopampで作っています。
すいません。inara1さんの関数では回路を作っていません。

やはり時間解析でlaplace関数を使う(1/sを含む)と誤差が大きくなるので、時間
関数やampしかないですよね?

mapleはS関数を時間関数に変えれるのですか?
また、Z関数⇔S関数⇔時間関数などの変換かのうでしょうか?

Re: LTSPICE AC注入による解析 - inara1

2014/01/11 (Sat) 07:10

Maximaというフリーの数式処理ソフトがあります。添付図はそれで逆ラプラス変換
した結果です。

ここ(http://www.cymric.jp/maxima/maxima-winxp.html)にダウンロード方法が
書いてあります。日本語の解説書もあるようですので、使ってみてはいかがでしょ
うか。

Re: LTSPICE AC注入による解析 - kurin

2014/01/11 (Sat) 23:52

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

マキシマというsoftがあるんですね。
ダウンロードしました。色々と使ってみます。