So-net無料ブログ作成
検索選択

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年 09月号 [雑誌]

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

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

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

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。