Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-04
年龄: 39
帖子: 5
声望力: 0 ![]() |
![]()
程序如下:
A1=[-0.1125 -0.02;1 0]; Ad1=[-0.0125 -0.005;0 0]; B1=[1;0]; A2=[-0.1125 -1.527;1 0]; Ad2=[-0.0125 -0.23;0 0]; C1=[0.1 0;0 0.1]; Da=[-0.425 0;0 -0.425]; Db=[-0.425 0;0 -0.425]; Dd=[-0.425 0;0 -0.425]; Ea1=[0.01 0;0 0.3]; Eb1=0; Ed1=[0.31 0;0 0.1]; Q=[1 0;0 1]; R=10; U=[-0.0793 0;0.0402 0]; M=[-0.1597 0;0.0793 0]; K1=[-2.5713 -3.3913]; K2=[-2.5734 -3.3874]; x=[0.2;-0.1]; setlmis([]) %定义变量 X=lmivar(1,[2 1]); q1=lmivar(1,[1 1]); q2=lmivar(1,[1 1]); q3=lmivar(1,[1 1]); q4=lmivar(1,[1 1]); q5=lmivar(1,[1 1]); q6=lmivar(1,[1 1]); q7=lmivar(1,[1 1]); q8=lmivar(1,[1 1]); q9=lmivar(1,[1 1]); q10=lmivar(1,[1 1]); q11=lmivar(1,[1 1]); q12=lmivar(1,[1 1]); q12=lmivar(1,[1 1]); q13=lmivar(1,[1 1]); q14=lmivar(1,[1 1]); q15=lmivar(1,[1 1]); q16=lmivar(1,[1 1]); a=lmivar(1,[1 1]); b=lmivar(1,[1 1]); K1=lmivar(2,[1 2]); T1=lmivar(1,[2 0]); T2=lmivar(1,[2 0]); Y1=lmivar(1,[1 1]); Y1=K1*inv(X); %第一个LMI %S (1,1) lmiterm([1 1 1 X],A1,1,'s'); lmiterm([1 1 1 Y1],B1,1); lmiterm([1 1 1 -Y1],1,B1'); lmiterm([1 1 1 q1],1,Da*Da'); lmiterm([1 1 1 q2],1,Dd*Dd'); lmiterm([1 1 1 q3],1,Db*Db'); %S(1,2) ————————line 57 lmiterm([1 1 2 X],1,Ea1'); lmiterm([1 1 3 -Y1],1,Eb1'); lmiterm([1 1 4 X],q4,A1*Da); lmiterm([1 1 5 X],1,Ea1'); lmiterm([1 1 6 X],q5,A1'*Dd); lmiterm([1 1 7 X],q6,A1'*Db); lmiterm([1 1 8 Y1],1,Eb1'); lmiterm([1 1 9 -Y1],q7,B1'*Da); lmiterm([1 1 10 X],1,Ea1'); lmiterm([1 1 11 -Y1],q8,B1'*Db); lmiterm([1 1 12 -Y1],1,Eb1'); lmiterm([1 1 13 X],a,Ea1'); lmiterm([1 1 14 X],a,Ea1'); lmiterm([1 1 15 a],1,Y1'*Eb1'); lmiterm([1 1 16 -Y1],q9*a,Eb1'); lmiterm([1 1 17 X],q10,Ea1'); lmiterm([1 1 18 -Y1],q11,B1'*Dd); lmiterm([1 1 19 X],q12*a,Ea1'); lmiterm([1 1 20 X],1,Ea1'); lmiterm([1 1 21 -Y1],1,Eb1'); lmiterm([1 1 22 X],1,1); lmiterm([1 1 23 -Y1],1,1); %S(1,3) lmiterm([1 1 24 0],Ad1); lmiterm([1 1 24 X],1,A1'*Ad1); lmiterm([1 1 24 -Y1],1,B1'*Ad1); %S(1,5) lmiterm([1 1 32 0],C1); lmiterm([1 1 32 X],1,A1'*C1); lmiterm([1 1 32 -Y1],1,B1'*C1); %-S(2,2) lmiterm([1 2 2 q1],-1,1); lmiterm([1 3 3 q3],-1,1); lmiterm([1 4 4 q4],-1,1); lmiterm([1 5 5 q4],-1,1); lmiterm([1 6 6 q5],-1,1); lmiterm([1 7 7 q6],-1,1); lmiterm([1 8 8 q6],-1,1); lmiterm([1 9 9 q7],-1,1); lmiterm([1 10 10 q7],-1,1); lmiterm([1 11 11 q8],-1,1); lmiterm([1 12 12 q8],-1,1); lmiterm([1 13 13 0],-1); lmiterm([1 14 14 q9],-1,1); lmiterm([1 15 15 0],-1); lmiterm([1 16 16 q9],-1,1); lmiterm([1 17 17 q10],-1,1); lmiterm([1 18 18 q11],-1,1); lmiterm([1 19 19 q12],-1,1); lmiterm([1 20 20 q14],-1,1); lmiterm([1 21 21 q15],-1,1); lmiterm([1 22 22 0],Q); lmiterm([1 23 23 0],R); %S(3,3) lmiterm([1 24 24 0],Ad1'*Ad1); lmiterm([1 24 24 b],-1,1); lmiterm([1 24 24 a],a,Ed1'*Ed1); lmiterm([1 24 24 q13],1,Ad1'*Dd*Dd'*Ad1); %S(3,4) lmiterm([1 24 25 0],Ed1'); lmiterm([1 24 26 0],Ed1'); lmiterm([1 24 27 0],Ad1'*Dd); lmiterm([1 24 28 0],Ed1'); lmiterm([1 24 29 a],1,Ed1'); lmiterm([1 24 30 0],Ed1'); lmiterm([1 24 31 0],Ed1'); %-S(4,4) lmiterm([1 25 25 q2],-1,1); lmiterm([1 26 26 q5],-1,1); lmiterm([1 27 27 q10],-1,1); lmiterm([1 28 28 q11],-1,1); lmiterm([1 29 29 q12],-1,1); lmiterm([1 30 30 q13],-1,1); lmiterm([1 31 31 q16],-1,1); %A'C lmiterm([1 25 32 0],A1'*C1); %S(5,5) lmiterm([1 32 32 0],C1'*C1); lmiterm([1 32 32 0],-1); lmiterm([1 32 32 q14],1,C1'*Da*Da'*C1); lmiterm([1 32 32 q15],1,C1'*Db*Db'*C1); lmiterm([1 32 32 q16],1,C1'*Dd*Dd'*C1); %第二个LMI lmiterm([2 1 1 a],-1,1); lmiterm([2 1 2 0],x'); lmiterm([2 2 2 X],-1,1); %第三个LMI lmiterm([3 1 1 T1],-1,1); lmiterm([3 1 2 b],-1,M'); lmiterm([3 2 2 b],-1,1); %第四个LMI lmiterm([4 1 1 T2],-1,1); lmiterm([4 1 2 0],-U); lmiterm([4 2 2 0],-1); lmisys=getlmis; [tmin,xfeas]=feasp(lmisys); q11=dec2mat(lmisys,xfeas,q1); q22=dec2mat(lmisys,xfeas,q2); q33=dec2mat(lmisys,xfeas,q3); q44=dec2mat(lmisys,xfeas,q4); q55=dec2mat(lmisys,xfeas,q5); q66=dec2mat(lmisys,xfeas,q6); q77=dec2mat(lmisys,xfeas,q7); q88=dec2mat(lmisys,xfeas,q8); q99=dec2mat(lmisys,xfeas,q9); q100=dec2mat(lmisys,xfeas,q10); q110=dec2mat(lmisys,xfeas,q11); ——————line 175 q120=dec2mat(lmisys,xfeas,q12); q130=dec2mat(lmisys,xfeas,q13); q140=dec2mat(lmisys,xfeas,q14); q150=dec2mat(lmisys,xfeas,q15); q160=dec2mat(lmisys,xfeas,q16); a1=dec2mat(lmisys,xfeas,a); b1=dec2mat(lmisys,xfeas,b); T11=dec2mat(lmisys,xfeas,T1); T12=dec2mat(lmisys,xfeas,T2); 运行结果:Warning in (1,1) block of LMI #1: Non symmetric term AXB stored as (AXB+B'X'A')/2. For safety, set FLAG='s' to specify AXB+B'X'A' in one shot Warning in (1,1) block of LMI #1: Non symmetric term AXB stored as (AXB+B'X'A')/2. For safety, set FLAG='s' to specify AXB+B'X'A' in one shot Solver for LMI feasibility problems L(x) < R(x) This solver minimizes t subject to L(x) < R(x) + t*I The best value of t should be negative for feasibility Iteration : Best value of t so far 1 10.634009 2 10.260599 3 10.260599 4 10.093105 5 10.093105 6 10.018280 7 10.018280 8 10.004556 9 10.004556 10 10.001735 11 10.000804 12 10.000079 13 10.000079 14 10.000040 15 10.000011 16 10.000001 17 10.000001 18 10.000001 19 10.000000 20 10.000000 21 10.000000 22 10.000000 23 10.000000 * switching to QR 24 10.000000 25 10.000000 26 10.000000 27 10.000000 28 10.000000 *** new lower bound: 10.000000 Result: best value of t: 10.000000 guaranteed absolute accuracy: 1.38e-009 f-radius saturation: 92.622% of R = 1.00e+009 These LMI constraints were found infeasible ??? Index exceeds matrix dimensions. Error in ==> D:\matlab6.5\toolbox\lmi\lmilab\dec2mat.m On line 57 ==> type=varrec(2); Error in ==> D:\matlab6.5\work\lmisys.m On line 175 ==> q110=dec2mat(lmisys,xfeas,q11); 问题:不知这两处怎么错了,而且为什么结果中显示不出a,b及q1~q16的值呢? 那位高人帮帮我吧? |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-03-04
年龄: 39
帖子: 5
声望力: 0 ![]() |
![]()
大家帮帮忙嘛,拜托啦
|
![]() |
![]() |