matlab--LMI工具箱使用学习2(LMI求解)

在matlab中编写完LMI后继续对LMI求解

  • 在完成lmivar()、lmiterm()后,获得LMI的函数的内部描述
lmis = getlmis;

对于LMI Lab, 其中有三种求解器(solver): feasp、mincx和gevp。

[tmin,xfeas] = feasp(lmisys,options,target):在约束条件下,求解LMI(feasibility problem),具体的参数可以查看help浏览器。

下面是一个具体的算例:

matlab--LMI工具箱使用学习2(LMI求解)_第1张图片

求矩阵P>I,在上面三个约束条件下,

setlmis([]) 
p = lmivar(1,[2 1]);

A1 = [-1 2;1 -3];
A2 = [-0.8 1.5; 1.3 -2.7];
A3 = [-1.4 0.9;0.7 -2.0];

lmiterm([1 1 1 p],1,A1,'s');     % LMI #1  第一个矩阵不等式 左
lmiterm([2 1 1 p],1,A2,'s');     % LMI #2  第二个矩阵不等式 左
lmiterm([3 1 1 p],1,A3,'s');     % LMI #3  第三个矩阵不等式 左
lmiterm([-4 1 1 p],1,1);         % LMI #4: P 第四个矩阵不等式 右
lmiterm([4 1 1 0],1);            % LMI #4: I  第四个矩阵不等式 左
lmis = getlmis;

[tmin,xfeas] = feasp(lmis);

下面是运行结果
matlab--LMI工具箱使用学习2(LMI求解)_第2张图片
tmin = -3.1363 表明问题有解
使用dec2mat从xfeas中导出矩阵变量的可行值。

P = dec2mat(lmis,xfeas,p)

matlab--LMI工具箱使用学习2(LMI求解)_第3张图片

  • [copt,xopt] = mincx(lmisys,c,options,xinit,target)在LMI约束下最小化线性目标
    minimize cTx subject to NTL(x)N≤MTR(x)M

  • [lopt,xopt] = gevp(lmisys,nlfc,options,linit,xinit,target) LMI约束下的广义特征值最小化

你可能感兴趣的:(控制学习)