Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2007-04-22
帖子: 1
声望力: 0 ![]() |
![]()
求助一个鲁棒控制器仿真问题
对于一个 不确定系统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 ![]() 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 那位高手能帮我编一下画阶跃响应图的程序,谢谢 |
![]() |
![]() |