24小时热门版块排行榜    

查看: 4172  |  回复: 1

_拧发条的鸟

新虫 (初入文坛)

[求助] MATLAB中LMI程序求解H无穷可行解问题

MATLAB中LMI程序运行报错:Error using lmiterm (line 271)lhs of LMI #4, block (1,1): terms in diagonal blocks must be square;
程序如下:
clc
clear
A=[0.0000000e+00   3.6301310e-21  -9.7026387e+00  -4.9849839e-05   0.0000000e+00  4.9698601e-07   0 0 0 0 0 0 0;
      7.9257028e-24   0.0000000e+00   7.8831201e+03   0.0000000e+00   0.0000000e+00 0 0 0 0 0 0 0 0;
         3.1226519e-07   1.9087724e-10   0.0000000e+00   1.3008627e-08   0.0000000e+00 1.5307304e-11   0.0000000e+00 0 0 0 0 0 0;
           -3.1226519e-07  -1.9087724e-10   0.0000000e+00  -1.3008627e-08   1.0000000e+00 -1.5307304e-11   0 0 0 0 0 0 0;
             -3.1895452e-23   5.2382432e-23   0.0000000e+00  -5.0419522e-07  -4.5526839e-08 0 0 0 0 0 0 0 0;
             0 0 0 0 0 0 1 0 0 0 0 0 0;
             0 0 0 0 0 -0.49 -28 0 0 0 0 0 0;
             0 0 0 0 0 0 0 0 0 0 0 0 0;
             0 0 0 0 0 0 0 0 0 0 0 0 0;
             0 0 0 0 0 0 0 0 0 0 0 1 0;
             0 0 0 0 0 0 0 0 0 0 0 0 1;
             0 0 0 0 0 0 0 1 0 -1 0 -0.16 0;
             0 0 0 0 0 0 0 0 1 0 -1 0 -0.16];
B=[0 0;
    0 0;
    0 0;
    0 0;
    0 1.5905035e-06;
    0 0;
    0.49 0;
    0 0;
    0 0;
    0 0;
    0 0;
    0 0];
G=[1 0 0 0 0;
   0 1 0 0 0;
   0 0 1 0 0;
   0 0 0 1 0;
   0 0 0 0 1;
   0 0 0 0 0;
   0 0 0 0 0;
   0 0 0 0 0;
   0 0 0 0 0;
   0 0 0 0 0;
   0 0 0 0 0;
   0 0 0 0 0;
   0 0 0 0 0];
F=[1 0 0 0 0 0 0 0 0 0 0 0 0
   0 1 0 0 0 0 0 0 0 0 0 0 0
   0 0 1 0 0 0 0 0 0 0 0 0 0
   0 0 0 1 0 0 0 0 0 0 0 0 0
   0 0 0 0 1 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0];
E1=[1 0 0 0 0 0 1 0 0 0 0 0 0
   0 1 0 0 0 0 0 0 0 0 0 0 0
   0 0 1 0 0 0 0 0 0 0 0 0 0
   0 0 0 1 0 0 0 0 0 0 0 0 0
   0 0 0 0 1 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0 0 0 0 0 0];
E2=[0 1;
    0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0;
     0 0];
C=[0 0 1 0 0 0 -1 0 0 0 0 0 0;
   0 0 0 1 0 0 0 -1 0 0 0 0 0;
   0 0 0 0 0 0 0 0 0 0 0 0 0;
   0 0 0 0 0 0 0 0 0 0 0 0 0 ];
D=[0 0;
    0 0;
    1 0;
    0 1];

setlmis([])
Q=lmivar(1,[13 1]);
Y=lmivar(2,[2 13]);
r=lmivar(1,[1 1]);%
r1=lmivar(1,[1 1]);%
r2=lmivar(1,[1 1]);%

%strictly proper
lmiterm([-1 1 1 Q],1,1);
lmiterm([-2 1 1 r],1,1);
lmiterm([-3 1 1 r2],1,1);
lmiterm([4 1 1 Q],A,1,'s');
lmiterm([4 1 1 Y],B,1,'s');
lmiterm([4 1 1 r],1,F*F');
lmiterm([4 2 1 Q],E1,1);
lmiterm([4 2 1 Y],E2,1);
lmiterm([4 3 1 Q],C,1);
lmiterm([4 3 1 Y],D,1);
lmiterm([4 4 1 0],G');
lmiterm([4 2 2 r],-1,1);
lmiterm([4 3 3 0],-1);
lmiterm([4 4 4 r2],-1,1);
lmisys=getlmis;

[ropt xopt]=feasp(lmisys);%
r=dec2mat(lmisys,xopt,r);
r2=dec2mat(lmisys,xopt,r2);
Q=dec2mat(lmisys,xopt,Q);
Y=dec2mat(lmisys,xopt,Y);
K=Y*inv(Q);

运行时报错,但是矩阵维数应该是没有问题,求大神帮助,LMI不等式如下

MATLAB中LMI程序求解H无穷可行解问题
%@Y4C)Q1IUU4{KC@901WF(R.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

云月禅心

铜虫 (小有名气)

理解,但是爱莫能助呀
撸起袖子加油干
2楼2016-05-18 10:57:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 _拧发条的鸟 的主题更新
信息提示
请填处理意见