|
>ゲインの絶対値が1以上で位相が180度以上回っているフィードバック系は必ず発振するか?
回路図の例から判断すると条件安定系:すなわち「gain 交点で位相回転 180 度以下であれば、gain 交点より小さい周波数で位相回転が 180 度以上回っていても発振しない」ことを言っているのだと思います。
私は、この条件安定系の主張に、いま一つ納得できていません。このスレッドの最初に行った二つ目の問題定義でも述べています。「gain 交点より小さい周波数で位相回転が 180 度以上回っている」ならば、「Bode 線図は右肩下がりなのだから、その周波数では gain が 1 以上であり、位相が 180 度回っている」ことになる。ならば「その周波数を入力したら closed loop での一周すると正帰還となり発散する」との直感を否定できていないからです。後で、「closed loop 系で、その周波数を入力する」ことを Python sf で具体的に行ってみるつもりです。具体例ではのシミュレーションでは発振しないはずであり、直感との違いを説明する何かが出てくると思っています。
------------------ 添付 pdf ファイルの説明を読むと、「F 行列が等価な YΔ 変換」を使っているのですが、私には そのような概念がないので、言われている中身の中心となるはずのパラドックスを感じられません。
一般に pdf 回路にあるような抵抗・コンデンサのネットワークは F 行列で扱わないとループ特性を計算できません。Mathematica, Matlab などの計算ソフトでは、専用のパッケージを持ってこないと計算する気にはならない面倒な計算のはずです。(そんな特殊なパッケージがあるか否かは知りませんが)
一方で Python sf の行列は有理関数も要素とできるので、Python sf で用意されているものの組み合わせだけで F 行列を扱えてしまいます。
PDF にある回路の F 行列で扱うべき抵抗・コンデンサの電圧伝達特性の計算を Python sf への演習問題として計算してみます。
すでに存在している F 行列に平行または直列にインピーダンス Zb が追加されたとき、新たな F 行列の合成は下のように計算できます。
・合成前の F 行列 Io = │F00,F01│ Ii Vo │F10,F11│ Vi
・並列での F 行列合成 Ii→ ┌──────┐→Io` →Io ──┤ Original F ├───┬─── │ Matrix │ ┌┴┐ │ │ │Zb│ Vo Vi │ │ └┬┘ │ │ │ ──┤ ├───┴─●─ └──────┘ Io ==( [F00, F01] - [F10, F11]/Zb ) Ii Vo [F10, F11] [ 0, 0] Vi
・直列での F 行列合成
Ii→ ┌──────┐→Io ┌─┐→Io ──┤ Original F ├───┤Zb├─ │ Matrix │ └─┘ │ │Vo Vo Vi │ │ │ │ ──┤ ├─────●─ └──────┘
Io ==( [F00, F01] - [ 0, 0]Zb ) Ii Vo [F10, F11] [F00, F01] Vi
D:\my\sf\blog\AnCmmnty\Fmatrix_synthesys.jpg
F 行列が求まると、出力開放での電圧伝達関数 Vo/Vi は下のように Fij 要素で表される
Vo/Vi ≡ (-F10 F01/F00 + F11)
この計算を Python で愚直に行います。求めた F 行列から抵抗・コンデンサの電圧伝達特性を計算し、その gain/phase 特性を描かせます。長くなりすぎるので Ri 抵抗を繋ぐ前の F 行列をファイル変数に一旦出力しています。ワンライナーではなく two liner で Bode 線図を描きます
・C=0.01uF のとき Rs,C,Rp=10kΩ`, 0.01uF`, 1kΩ`;Z= 1/(C `s)+ Rp;F=kzrs(2,2, ClRtnl)^0; F=F-~[[0,0],[F[0,0],F[0,1]], ClRtnl]Rs; F=F-~[[F[1,0],F[1,1]],[0,0], ClRtnl]/Z;F:=F^2
=:F;Ri=100kΩ`; F=F - ~[[F[1,0],F[1,1]],[0,0], ClRtnl]/Ri;G = (-F[1,0] F[0,1]/F[0,0] + F[1,1]); G.plotBode(10Hz`,10M` k` Hz`)
D:\my\sf\blog\AnCmmnty\ishbashi_F_01uF_Bode.jpg
・C=0.001uF のとき Rs,C,Rp=10kΩ`, 0.001uF`, 1kΩ`;Z= 1/(C `s)+ Rp;F=kzrs(2,2, ClRtnl)^0; F=F-~[[0,0],[F[0,0],F[0,1]], ClRtnl]Rs; F=F-~[[F[1,0],F[1,1]],[0,0], ClRtnl]/Z;F:=F^2
=:F;Ri=100kΩ`; F=F - ~[[F[1,0],F[1,1]],[0,0], ClRtnl]/Ri;G = (-F[1,0] F[0,1]/F[0,0] + F[1,1]); G.plotBode(10Hz`,10M` Hz`)
D:\my\sf\blog\AnCmmnty\ishbashi_F_001uF_Bode.jpg
C = 0.001uF のときは 1MHz 近辺で位相が 180 度近くまで回っていますが C = 0.01uF のときは 1MHz 近辺で位相が戻ってしまっています。
これに 1MHz 近辺を gain 交点とする Op アンプをシリーズに挿入して close loop にしたとき C = 0.001uF のときは 発振するが C = 0.01uF のときは 条件安定な系となり発振しない
--------------- 以上が私の計算・検討ですが如何でしょうか。普通の計算ソフトでは計算する気にもならないと思います。
|