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

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

pythonで制御系設計(1’’)

2021-08-14 13:23:32 | 工学

夏休みの宿題で 「オブザーバゲインを求めるということはどのようなことか」

を真剣にやるべきですが、道具から入ってます(mac mini M1 での動作確認をしているので:言い訳か!

scilab6.1.1(mac mini M1で動作しました!)でふたたびやってみましたが やはりKeは違う結果

-> A=[0,0,1,0;0,0,0,1;-36,36,-0.6,0.6;18,-18,0.3,-0.3]
 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]
 B  = 

   0.
   0.
   1.
   0.

--> [K]=ppol(A,B,J)
 K  = 

   130.44444  -41.555556   23.1   15.418519

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

   1.   0.
   0.   1.

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

  -0.6   0.6
   0.3  -0.3

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

  -15.  -16.

--> [Ke]=ppol(Abb',Aab',L)'
 Ke  = 

   14.4   0.6 
   0.     15.7

教科書では0.3になる。

---------- 以下 matlab R2021a trial use (古いと新しいのは仕事で使ってますが 個人のものではないのでtrialでやりました)

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

A =

         0         0    1.0000         0
         0         0         0    1.0000
  -36.0000   36.0000   -0.6000    0.6000
   18.0000  -18.0000    0.3000   -0.3000

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

B =

     0
     0
     1
     0

>> J=[-2+2*j*sqrt(3),-2-2*j*sqrt(3),-10,-10]

J =

  -2.0000 + 3.4641i  -2.0000 - 3.4641i -10.0000 + 0.0000i -10.0000 + 0.0000i

>> K=acker(A,B,J)

K =

  130.4444  -41.5556   23.1000   15.4185

>> Aab=[1 0;0 1]

Aab =

     1     0
     0     1

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

Abb =

   -0.6000    0.6000
    0.3000   -0.3000

>> L=[-15 -16]

L =

   -15   -16

>> [Ke]=place(Abb',Aab',L)'

Ke =

   14.4000    0.6000
    0.3000   15.7000

という結果に。明日は きちんとオブザーバの計算を見ます。

 



最新の画像もっと見る

コメントを投稿