2019年8月12日 星期一

p11_7_14

11章7頁-14頁,
P11-7的極點安置設計Pole placement design
已知一線性非時變系統
X(t)=AX(t)+Bu(t) (11-2)
y(t)=CX(t)
假設其狀態回授控制器為
u(t)=r(t)-KX(t) (11-3)
將(11-3)代入(11-2)得
X(t)=AX(t)+Bu(t)
=AX(t)+Br(t)-KX(t)
=(A-BK)X(t)+Br(t) ( 11-4)
而(11-2)~(11-4)所畫的系統方塊圖如圖11-3

例四:題目
% p11_8頁的程式
% 極點安置設計
damping=0.707;
wn=3;
[num1,den1]=ord2(wn,damping)%由damping 與wn所組成的標準二階微分方程(分子/分母)
% 受控系統轉換成狀態空間模表示式
num=1;%題目給的轉移函數分子
den=conv([1 1],conv([1 2],[1 3]));%題目給的轉移函數分母,兩兩相乘的多項式
[A,B,C,D]=tf2ss(num,den)%將題目所給的三階系統轉為狀態方程式A,B,C,D
length_of_A=length(A)%
Cm=ctrb(A,B);
rank_of_Cm=rank(Cm)%先判別可不可以控制
if rank_of_Cm==length_of_A%若是相等就可以控制
 % 設定所需的極點
 dominant_poles=roots(den1);%主極點是
由damping 與wn所組成的標準二階微分方程(分子/分母)
desired_poles=[dominant_poles' 10*real(dominant_poles(1))]%因為是三階,所以除了主極點外,再加一個10倍遠的極點
% 計算增益K
 K=place(A,B,desired_poles)
 % 計算閉迴路系統狀態空間模表示式
 Ac=A-B*K%課本11-4式
 Bc=B
 Cc=C
 Dc=D
else
 disp('cannot use the method of pole placement') 
end
例五將7-32頁的4階倒單擺系統,作一狀態回控控制
找出阻尼比與自然無阻尼後,可以得到標準二階系統轉移函數
% P11_12.m
% 倒單擺系統之極點安置設計
damping=0.6;
wn=3.33;
[num1,den1]=ord2(wn,damping)
% 受控系統以狀態空間表示 11-11頁
A=[0 1 0 0;0 0 -0.98 0;0 0 0 1;0 0 17.97 0];
B=[0;0.5;0;-0.83];
C=[1 0 0 0;0 0 1 0];
D=[0;0];
length_of_A=length(A)
Cm=ctrb(A,B);
rank_of_Cm=rank(Cm)
if rank_of_Cm==length_of_A
  % 設定所需的極點
dominant_poles=roots(den1);
desired_poles=[dominant_poles' 9*real(dominant_poles(1)) 10*real(dominant_poles(1))]%多兩點無關緊要的極點
% 計算增益K
  K=place(A,B,desired_poles)
  % 計算閉迴路系統狀態空間模表示式
  Ac=A-B*K
  Bc=B
  Cc=C
  Dc=D
else
  disp('cannot use the method of pole placement') 
end
同學設計出11-14頁的Simulink程式來驗証看看是否正確!
  1. Simulink內的Demux是全黑的,只要快按兩下到裏面將「Display option選為none, 
  2. 按一下Demux的滑鼠右鍵/Format/show block name, 可出現下標文字Demux

所以輸出有6個,前兩個輸出y1=x1; y2=x3;
後面4個輸出:y3=x1; y4=x2; y5=x3; y6=x4;


沒有留言:

張貼留言