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

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

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

2017-03-23 20:36:40 | 工学
Scilab 12
前回までで根軌跡は終了。scilabで使ってきたevansという関数であるが、これはEvansが根軌跡法を提案したのでそれを使っているのであろう。今回から、周波数応答法に入る。ところがEvansが提案した根軌跡法の方が新しいらしい。周波数応答で出てくるbode線図やNyquist線図の方が古い。
ということで、周波数応答に入ろう。
尾形先生の本では第5章 周波数応答解析 である。
応答というのであるから、入力があって、それに対する応答をみるということである。システムの応答は、その応答の大きさと追従性つまり位相で評価できる。入力に対して、応答の大きさをゲインという。一方位相は、入力が振動であれば、その振動数に対してどの程度の位相ずれがあるかということで、追従性を評価する。低い周波数で振動させた場合、例えばロボットの腕などの動きは、多分追従して、入力どおりの大きさと、同位相で動く。ところが、高い周波数で振動させた時には、その応答はだんだん遅れて動き、さらに動きの大きさも小さくなってしまうであろう。
これらのゲインと位相を図で書いたものが、ボード線図である。
さっそく、bode線図について書いてみよう。
-->s=poly(0,'s');
-->ht=25/(s^2+4*s+25);
-->H=syslin('c',ht);
-->bode(H);



となり、尾形先生の例題5−1と一致する。上段のグラフがゲインで下段が位相を示す。厳密には、MATLABは横軸がrad/sであるのに対してscilabはHzである。どちらが良いのか一長一短であるが。
さて、このシステムは伝達関数で1入力1出力なので応答は一つであるが、多入力である場合にはどうなるか、やってみよう。MATLABであれば、例えば2入力、2出力であれば4組のボード線図がそのまま書かれる。
さて、
->A=[0 1;-25 -4];
-->B=[1 1;0 1];
-->C=[1 0;0 1];
-->H=syslin('c',A,B,C);
-->bode(H);
!--error 95
引数 1 の型が間違っています: SISO を指定してください.
at line 91 of function repfreq called by :
at line 41 of function bode called by :
やっぱだめだ、SISO つまり1入力1出力しか受け付けない。
分解して、表示するしかなさそうですね。
今回はここまで。


最新の画像もっと見る

コメントを投稿