为什么报错说串联的矩阵维度不一致啊??

恋秋倾心 2022-04-10 15:10:03

function[gamma,Y,G]=LMI_01()
%%程序参数初始化
   C1=[0 0 1 0;0 0 0 1];
   C=[0 1 0];
   Mr=10;
   R=[1 0 0;0 1 0;0 0 1];
   Q=[1 0 0;0 1 0;0 0 1];
   A1=[-0.0004 0.00006 0 0;0.00046 2.87 0 0;3 0 0 3;0 1 0 0];4×4的矩阵
   Gpr=[0 -1 0 0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0 0 0 0];11×2的矩阵
   Ar=[0 1 0 0 0 0 0 0 0 0 0;0 0 1 0 0 0 0 0 0 0 0;0 0 0 1 0 0 0 0 0 0 0;0 0 0 0 1 0 0 0 0 0 0;0 0 0 0 0 1 0 0 0 0 0;0 0 0 0 0 0 1 0 0 0 0;0 0 0 0 0 0 0 1 0 0 0;0 0 0 0 0 0 0 0 1 0 0;0 1 0 0 0 0 0 0 0 1 0;0 1 0 0 0 0 0 0 0 0 1;0 0 0 0 0 0 0 0 0 0 0];11×11的矩阵
   M=C1*A1;
   M=[3 0 0 3;0 1 0 0];4×2的矩阵
   A=[A1 0 0;M 0 Gpr;0 0 Ar];该位置报错了
   B1=[0.0002 0;0.0005 0.00065;0 0;-1.03 0];
   B=[B1 C1*B1 0];
   
%%描述矩阵不等式
  setlims([]);%初始化LMI系统
  
  G=lmivar(1,[3,1]);%n阶对称正定矩阵
  Y=lmivar(2,[3,3]);%m×n阶正定矩阵
  gamma=limvar(1,[1,1]);%γ是一个标量
  
  lmiterm([-1,1,1,G],1,1);%矩阵1行1列
  lmiterm([-1,2,1,G],A);%矩阵2行1列
  lmiterm([-1,2,1,Y],B,C);%矩阵2行1列
  lmiterm([-1,2,2,G],1,1);%矩阵2行2列
  lmiterm([-1,3,1,G],Q^0.5,1);%矩阵3行1列,Q的0.5次方
  lmiterm([-1,3,3,gamma],1,1);%矩阵3行3列
  lmiterm([-1,4,1,Y],R^0.5,C);%矩阵4行1列
  lmiterm([-1,4,4,gamma],1,1);%矩阵4行4列
  
  lmiterm([-2,1,1,G],1,1);%G是正定的
  lmiterm([-3,1,1,Y],1,1);%Y是正定的
  
  lmisys=getlmis;%获取lmi信息
%%求解LMI
  [tmin,xfeas]=feasp(lmisys);%可行解
  if(tmin<0)
      disp('Feasible');
      G=dec2mat(lmisys,xfeas,G);
      Y=dec2mat(lmisys,xfeas,Y);
  else
      G=nan;
      Y=nan;
  end
%cell
end

...全文
68 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
图象工具使用

1444

社区成员

多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
  • 图象工具使用社区
加入社区
帖子事件
创建了帖子
2022-04-10 15:10
社区公告
暂无公告