24小时热门版块排行榜    

查看: 898  |  回复: 0

导热小菜鸟

金虫 (正式写手)

[求助] 100RMB求MATLAB简单的LMI问题!

如题,LMI中要求对角线的矩阵必须是方阵才能求解,可是我要求的矩阵不是方阵怎么办?
问题如图1.
Z=[98.235;50.862;49.144;48.756;25.397;25.514;75.375];
A=[1 -1 -1 0 0 0 0;0 0 1 -1 0 0 0;0 1 0 0 -1 -1 0;0 0 0 1 1 0 -1];
e1=[0.5;0.5;0.5;0.5;0.5;0.5;0.5];
e2=[0.4;0.4;0.4;0.4;0.4;0.4;0.4];
r1=[0.08;0.08;0.08;0.08;0.08;0.08;0.08];
r2=[0.06;0.06;0.06;0.06;0.06;0.06;0.06];
A为4X7矩阵;X,Z,e1,e2,r1,r2均为7x1矩阵
代码如下:
Z1=z-e1; Z2=-(z+e2);
setlmis([]);
  X=lmivar(2,[7 1]);   
  lmiterm([1 1 1 X],-1,1);                       
  lmiterm([1 1 1 0], Z1);                       
  lmiterm([2 1 1 X],1,1);                        
  lmiterm([2 1 1 0],Z2);                          
  lmiterm([3 1 1 X], A,1);                  
  lmiterm([3 1 1 0],-r1);                          
  lmiterm([4 1 1 X],-A,1);                 
  lmiterm([4 1 1 0],r2);                          
lmis=getlmis;

运行后如下错误:
lmiterm([1 1 1 X],-1,1);
lhs of LMI #1, block (1,1): terms in diagonal blocks must be square

Matlab要求每一个不等式必须是方阵,即X,AX也必须是方阵。怎么办?不可能每次都正好是方阵呀。

如果转化成图片2再求解,
程序如下
Z1=z-e1; Z2=-(z+e2);
setlmis([]);
  X=lmivar(2,[7 1]);   
  lmiterm([1 1 1 X],-1,1);                       
  lmiterm([1 1 1 0],Z1);                       
  lmiterm([1 2 2 X],1,1);                        
  lmiterm([1 2 2 0],Z2);                          
  lmiterm([1 3 3 X], A,1);                  
  lmiterm([1 3 3 0],r1);                          
  lmiterm([1 4 4 X],A,-1);                 
  lmiterm([1 4 4 0],r2);                          
lmis=getlmis;

还是出现同样的问题。

LMI要求不等式斜对角线上的矩阵为方阵,即nxn矩阵。而我这里要求解的不等式矩阵(1)-(4)都不是方阵怎么办?要怎么处理?
用fmincon函数可以解,但是就是想学会使用LMI函数,如果都是方阵才可以解,那岂不是LMI这个工具箱很局限?

100RMB求MATLAB简单的LMI问题!
111111.png


100RMB求MATLAB简单的LMI问题!-1
22222.png
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 导热小菜鸟 的主题更新
信息提示
请填处理意见