??? Error using ==> dec2mat at 31 DECVARS must be a vector of length 128

2019-07-17 13:34发布

程序出现 RT的错误
程序:
clear all
clc
A=[ -0.0153  0.0481  -5.9420   0.0021   0   0;
    -0.0910 -0.9569  138.3608  0.0163   0   0;
     0.0002  0.0046   -1.022  -0.0005   0  -0.0029;
        0      0        0     -0.2804  6.2667 -151.1435;
        0      0      0.0003  -0.1821  -3.4192 0.6401;
        0      0      0.0025  0.0454   -0.0304 -0.4535];
B=[ 0.0239   0.0239   0.0250   0.0250    0;
    -0.1722  -0.1722  -0.1799 -0.1799    0;
    -0.0873  -0.0873  -0.0076 -0.0076    0;
    -0.3149  0.3149   0.0233  -0.0233  0.1205;
    -0.1892  0.1892   -0.3464  0.3464  0.1237;
    -0.1678  0.1678   -0.0147  0.0147  -0.0587];
C=[ 0     0     57.2958   0      0       0;
    0     0       0       0   57.2468  2.3696;
    0     0       0       0   -2.3696  57.2468;
-0.0155 0.3756   0       0      0       0;
    0     0       0     0.3760   0       0];
S=[ 0  1  0  0  0;
    0  0  0  1  0;
    0  0  0  0  1];
SC=[    0         0          0         0  -57.2468   -2.3696;
    0.0155   -0.3756         0         0         0         0;
         0         0         0   -0.3760         0         0]; %-SC
Q1=[ 0.09  0   0;
      0    1   0;
      0    0  0.36];
Q2=[ 0.01  0   0   0   0;
       0   0.2  0   0   0;
       0    0  0.01 0   0;
       0    0   0   0   0;
       0    0   0   0   0];
  Q=[ 0.09  0   0    0     0     0    0  0   0;
      0     1   0    0     0     0    0  0   0;
      0     0  0.36  0     0     0    0  0   0;
      0     0   0   0.01   0     0    0  0   0;
      0     0   0    0   0.2     0    0  0   0;
      0     0   0    0     0   0.01   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];
  R=[ 0.49   0    0    0   0;
       0    0.49  0    0   0;
       0     0   0.04  0   0;
       0     0    0   0.04 0;
       0     0    0    0  0.04];
  AA=[ 0    0   0    0         0        0         0  -57.2468   -2.3696;
       0    0   0   0.0155   -0.3756    0         0         0         0;
       0    0   0    0         0        0     -0.3760       0         0;
       0    0   0    -0.0153  0.0481  -5.9420   0.0021      0         0;     
       0    0   0    -0.0910 -0.9569  138.3608  0.0163      0         0;
       0    0   0    0.0002  0.0046   -1.022   -0.0005      0   -0.0029;
       0    0   0      0        0        0     -0.2804  6.2667 -151.1435;
       0    0   0      0        0      0.0003  -0.1821  -3.4192   0.6401;
       0    0   0      0        0      0.0025  0.0454   -0.0304 -0.4535];
  BB=[ 0        0        0        0        0;
       0        0        0        0        0;
       0        0        0        0        0;
     0.0239   0.0239   0.0250   0.0250     0;
    -0.1722  -0.1722  -0.1799 -0.1799      0;
    -0.0873  -0.0873  -0.0076 -0.0076      0;
    -0.3149  0.3149   0.0233  -0.0233  0.1205;
    -0.1892  0.1892   -0.3464  0.3464  0.1237;
    -0.1678  0.1678   -0.0147  0.0147  -0.0587];
GG=[ 1   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];

I=eye(9);
I3=eye(3);
I5=eye(5);
setlmis([]);

T=lmivar(2,[9 9]);
Z=lmivar(1,[9 0]);
W=lmivar(2,[5 9]);
gamma=lmivar(1,[1 0]);

lmiterm([1 1 1 Z],AA,1,'s');
lmiterm([1 1 1 W],BB,1,'s');
lmiterm([1 1 2 0],GG);
lmiterm([1 1 3 -W],1,R^0.5);
lmiterm([1 1 4  Z],1,Q^0.5);
lmiterm([1 2 2 gamma],-I3,1);
lmiterm([1 3 3  0],-I5);
lmiterm([1 4 4  0],-I);

lmiterm([-2 1 1 T],1,1);
lmiterm([-2 1 2 0],I);
lmiterm([-2 2 2 Z],1,1);

% lmiterm([-3 1 1 Z],1,1);


LMIs=getlmis;
n=decnbr(LMIs);
c=zeros(n,1);
for j=1:n
[Tj]=defcx(LMIs,j,T);
c(j)=trace(Tj);
end

options=[1e-5,1000,100,0,0];
[copt,topt]=mincx(LMIs,c,options);
ZZ=dec2mat(LMIs,topt,Z)
W=dec2mat(LMIs,topt,W)
K=W*inv(ZZ)
gamma=dec2mat(LMIs,topt,gamma)

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
zjbhello
1楼-- · 2019-07-17 19:32
问题出在这两句代码上面,“[copt,topt]=mincx(LMIs,c,options);ZZ=dec2mat(LMIs,topt,Z)”,提示变量的维度错误,我运行程序发现copt,topt两个变量为空,应该是mincx函数没有的出合适解
1.png
wangweijie2016
2楼-- · 2019-07-17 21:15

一周热门 更多>