SSブログ

scilabで遊ぼう (9) [プログラム三昧]このエントリーを含むはてなブックマーク#

WS000226.png

今回は、フィードバック・ループを作成し、全体の特性を調べます。 トランジスタ技術、2008年7月号と9月号に掲載されている記事「dsPICで作るDC-DCコンバータのソフトウェア」もご参照ください。

あれ? いつのまにか、scilab-5.0.3の方が立ち上がっていたみたいだ。

ここまで作成してきた部品

前回までで必要な部品はほとんどそろいました。 まずは、これまでのあらすじから。

L1=39d-6;
C1=680d-6;
w0_lc=1.0/sqrt(L1*C1);
Q=0.8;
s=poly(0,'s');
lc_cont=syslin('c',w0_lc^2/(s^2+s*(w0_lc/Q)+w0_lc^2));

Ts=50d-6;
lc_filter=ss2tf(dscr(tf2ss(lc_cont),Ts));

Ap=3.87;
Fc=100;
z=poly(0,'z');
p_factor=syslin(Ts,Ap/(1+z*0));
i_factor=syslin(Ts,2*%pi*Fc*Ts*(z/(z-1)));
PI=p_factor*(1+i_factor);
変数概要
Tsサンプリング周期
lc_filter離散時間表現のLCフィルタ
p_factor比例制御フィルタ
i_factor積分制御フィルタ
PIPI制御フィルタ

フィードバック制御を作成する

フィードバック制御の基本にしたがって、入力から出力までの伝達関数を"A"、出力から入力に戻ってくるフィードバックの伝達関数を"beta"(β)と定義します。

-->A=PI*lc_filter;
 
-->beta=syslin(Ts,1/(2+z*0));

"A"は、PI制御とLCフィルタの合成です。 また、"beta"は、記事にあったものと同じ1/2分圧回路です。 "z*0"は、"z"の関数とするためのおまじないです。

-->open_loop=A*beta
 open_loop  =
 
                                         2    
    - 0.1406813 - 0.0148216z + 0.1649467z     
    ---------------------------------------   
                                      2    3  
  - 1.3625494 + 4.569748z - 5.2071985z + 2z   

-->scf(1);clf;bode(open_loop,1,3000);
WS000229.png

"open_loop"は、フィードバック・ループを一周したときの伝達関数です。 このループ・ゲインからシステムの安定性を検証します。

-->[G,freqGM]=g_margin(open_loop)
 freqGM  =
 
    0.  
 G  =
 
  - 272.57409  

マニュアルによれば、"g_margin"でゲイン・マージンを計算してくれることになっているのですが、思ったようには動作してくれませんでした。 ボード線図を見たところ、2.6kHzで13dBぐらいのマージンがあるようです。

-->[P,freqPM]=p_margin(open_loop)
 freqPM  =
 
    1351.9202  
 P  =
 
    45.890072  

一方、フェーズ・マージンは、計算してくれました。 1352Hzで45.9°のフェーズ・マージンになっています。 これは、ボード線図から得られる値と同じです。

閉ループ特性を調べる

閉ループ特性は、"A"と"beta"を用いて簡単に計算させることが出来ます。

-->closed_loop=A/.beta
 closed_loop  =
 
                                         2     
    - 0.2813627 - 0.0296433z + 0.3298935z      
    ---------------------------------------    
                                       2      
  - 1.5032308 + 4.5549263z - 5.0422518z       
           3                                   
       + 2z                                    
 
-->scf(1);clf;bode(closed_loop,1,3000);
WS000228.png

これは、出力電圧に対する基準電源の影響を示します。 DC領域では、6dBのゲインがあるので、入力の二倍の出力電圧が得られます。 また、3kHzを超えると利得が急激に落ちるので、基準電源にゆらぎがあっても出力には影響しないはずです。 1.5kHz付近に利得のピークがあるのだけど、問題にならないのかな?

付録 : 「scilab で遊ぼう」索引

参考文献

トランジスタ技術 (Transistor Gijutsu) 2008年 07月号 [雑誌]

トランジスタ技術 (Transistor Gijutsu) 2008年 07月号 [雑誌]

  • 作者:
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/06/10
  • メディア: 雑誌
トランジスタ技術 (Transistor Gijutsu) 2008年 09月号 [雑誌]

トランジスタ技術 (Transistor Gijutsu) 2008年 09月号 [雑誌]

  • 作者:
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/08/09
  • メディア: 雑誌

nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました