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

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

scilab 19 '

2017-10-10 20:27:45 | 工学

さて、前回のmatlabとscilabの極配置の結果の違いは
アルゴリズムの違いと言うしかない
以下matlabで

>> ke=place(Abb',Aab',L)';
>> ke
ke =

14.4000 0.6000
0.3000 15.7000

と確かに、0.3だ.
さて

>> eig(Abb'-Aab'*ke)

ans =

-15.1000
-15.9000

あれ、L=[-15 -16]
だったので、誤差がある.0.1
一方、scilabの結果では 0.3を0にして
>> ke1=[14.4 0.6;0.0 15.7];
>> eig(Abb'-Aab'*ke1)

ans =

-15.2354
-15.7646

まあ、この誤差の方が大きい

これはmatlabに軍配か

Scilab 19

2017-10-09 17:49:47 | 技術
Scilab 19

さて、今回はオブザーバです。尾形先生の本では6−5
状態方程式の状態フィードバックを行うという制御系の設計では、すべての状態変数が既知である必要があります。
ところが、一般的に状態変数がすべてわかっていることは稀で
出力方程式の出力程度しか観測できないことが大半でしょう。
そこで、状態変数を観測器(オブザーバ)を使って推定して、フィードバックする
ということをします。
オブザーバは、状態変数全部を推定する全次元オブザーバと、一部状態変数が計測できる場合に、それ以外の状態変数を推定する最小次元オブザーバがあります。
ココらへんの解説は尾形先生の本にありますので細かい解説はしません。
結局、オブザーバの設計としては、オブザーバの極を安定とするようなオブザーバゲインを求めることに帰着します。
これは、前回やった極配置問題にて設計できることを意味します。
尾形先生の本、例題6−9は

–>A=[0 0 1 0;0 0 0 1;-36 36 -0.6 0.6;18 -18 0.3 -0.3];

-->B=[0;0;1;0];

-->J=[-2+%i*2*sqrt(3) -2-%i*2*sqrt(3) -10 -10];

-->k=ppol(A,B,J);

-->k
k =

130.44444 - 41.555556 23.1 15.418519

-->Aab=[1 0;0 1];

-->Abb=[-0.6 0.6;0.3 -0.3];

-->L=[-15 -16];

-->ke=ppol(Abb',Aab',L)';

-->ke
ke =

14.4 0.6
0. 15.7

あれ。。。 おかしい。オブザーバゲインが求まっていない。。。なぜだ 次回までに調べます
(2行 1列目 本では0.3)