MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【求助】不确定系统求出反馈增益后如何画响应图 (https://www.labfans.com/bbs/showthread.php?t=88)

huwentao_1984 2007-04-22 21:32

【求助】不确定系统求出反馈增益后如何画响应图
 
求助一个鲁棒控制器仿真问题
对于一个 不确定系统dx(t)=(A+DFE)x(t)+Bu(t) (1)其中
A=[-3 0 0;0 1 1;0 0 1]
B=[0 0;1 0;0 1]
D=E=[0.5 0 0;0 0.5 0;0 0 0.5]
F'*F<=I
先要求设计一个状态反馈控制器u(t)=kx(t),使得闭环系统所有极点位于圆盘D(-3,2)(q=-3,r=2)内

我已经利用LMI法验证了可行性,并求出了k
程序如下:
%不确定系统具有圆盘区域极点约束的鲁棒控制
A=[-3 0 0;0 1 1;0 0 1];
B=[0 0;1 0;0 1];
D=[0.5 0 0;0 0.5 0;0 0 0.5];
E=[0.5 0 0;0 0.5 0;0 0 0.5];
q=-3;
r=2;
setlmis([]);
X=lmivar(1,[3 1]);
Q=lmivar(2,[2 3]);
a=lmivar(1,[1 1]);
b=lmivar(1,[1 1]);
lmiterm([1 1 1 X],r,-1); %LMI #1:-r*X
lmiterm([1 1 1 0],D*D'); %LMI #1:D*D'
lmiterm([1 2 1 X],1,A'); %LMI #1:X*A'
lmiterm([1 2 1 -Q],1,B'); %LMI #1:Q'*B'
lmiterm([1 2 1 X],q,-1); %LMI #1:-q*X
lmiterm([1 2 2 X],r,-1); %LMI #1:-r*X
lmiterm([1 3 2 X],E,1); %LMI #1:E*X
lmiterm([1 3 3 0],-1); %LMI #1:-1
lmiterm([-2 1 1 X],1,1); %LMI #2:X
lmiterm([3 1 1 a],1,-1); %LMI #3:-a*1
lmiterm([3 2 1 Q],1,1); %LMI #3:Q
lmiterm([3 2 2 0],-1); %LMI #3:-1
lmiterm([-4 1 1 X],1,1); %LMI #4:X
lmiterm([-4 2 1 0],1); %LMI #4:I
lmiterm([-4 2 2 b],1,1); %LMI #4:b*I
lmis=getlmis;
c=[0 0 0 0 0 0 0 0 0 0 0 0 1 1]';
options=[1e-4,100,-1,10,1];
[copt,xopt]=mincx(lmis,c,options)
qq=dec2mat(lmis,xopt,Q)
x=dec2mat(lmis,xopt,X)
xx=inv(x)
k=qq*xx
结果是

k =

0 -2.2684 -0.7771
0 -0.2840 -2.4261

现在我想画系统的阶跃响应图,但是我不会处理不确定矩阵F

那位高手能帮我编一下画阶跃响应图的程序,谢谢


所有时间均为北京时间。现在的时间是 11:13

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.