技術士(総合技術監理・機械部門)のブログ

技術士がお届けする,技術,工学,技術者倫理などの話題

SCILABによる制御系設計 その16

2017-04-01 20:31:50 | 工学
Scilab 16

制御システムの設計として、
位相進み補償器、位相遅れ補償器、位相遅れ進み補償器
というものがあります。これらはボード線図によって設計していきます。

1) 位相進み補償
制御対象をG1とし
->s=poly(0,'s');
-->g=10/(s*(s+1));
-->G1=syslin('c',g);
-->bode(G1);


ということで、制御対象に対して、「位相余裕を50度になる位相進み補償をすること」という要求があったとすると、現状余裕が12.7度なので あと37,3度進ませることが必要であることがまずわかります。
ここから省略しますが、以下の位相進み補償器Gcが必要となります。
-->gc=2*(0.3357*s+1)/(0.0705*s+1);

-->Gc=syslin('c',gc);

-->bode(Gc);


そして、それらの閉ループ伝達関数は
->gl=g*gc/(g*gc+1)
gl =

283.68794 + 95.234043s
--------------------------------------
         2  3
283.68794 + 109.41844s + 15.184397s + s
->t=0:0.01:10;
-->y=csim('step',t,G);
-->plot2d(t,y);
一方補償器を入れる前の伝達関数は、
-->go=g/(g+1);
-->Go=syslin('c',go);
-->y1=csim('step',t,Go);
-->plot2d(t,y);
-->plot2d(t,y1);
となり、ステップ応答をみても改善されているのが確認できる。