1 初始化一个LMI系统setlmis

setlmis(lmi0);

setlmis([]);

2 向LMI系统中添加矩阵变量lmivar

X = lmivar(type,struct);

[X,n,sX] = lmivar(type,struct);

type类型对应的数值 type类型表示的含义
1 对角线对称矩阵格式,每个对角块都是满块
2 矩形块,struct=[m,n]表示mxn阶的矩阵
3 描述复杂类型的矩阵

TYPE=1:

struct包含两个基本变量

(1)第1个变量描述矩阵块的阶数

(2)第2个变量描述矩阵块的类型

第2个变量 阵块的类型
0 标量
1 满块
-1 0块

例如:[X,n,sX]=lmivar(1,[3 1;2,0]) ; %3阶的满块和2阶的对角块组合

[X,n,sX]=lmivar(2,[3 4]) ; %3*4阶的矩阵

TYPE=3:

可以允许指定相当复杂的矩阵变量结构

ww2.mathworks.cn/help/r

3 返回LMI的函数的内部描述getlmis

lmisys = getlmis; %lmisys称为储存在机器内部的线性矩阵不等式系统的名称

一个线性矩阵不等式系统的描述以setlmis开始,以getlmis结束。

4 确定线性矩阵不等式中各项的内容lmiterm

  • 可以用一个标量值,表示一个数量矩阵,S>I可以描述为:
Lmiterm([-3,1,1,S],1,1)
Lmiterm([3,1,1,0],1) %表示单位矩阵I
  • 在描述一个具有多个块的线性矩阵不等式时,LMI工具箱提供了这样的功能,即只需要确定对角线上和对角线上方或下方的内容,其他部分的内容可以根据线性矩阵不等式的对称转置得到。

4 约束条件下,求LMI可行性问题feasp

[tmin,xfeas] = feasp(lmisys,options,target);%若返回tmin<=0说明LMI系统是可行的!

5 在LMI约束下最小化线性目标mincx

[公式]

[copt,xopt] = mincx(lmisys, c, options, xinit, target);

LMI系统由lmisys描述。 向量c的长度必须与x相同。 该长度对应于函数decnbr返回的决策变量的数量。 对于用矩阵变量表示的线性目标,可以使用defcx轻松导出足够的c向量。
function sys=mincxSolve()
%{
程序功能:
1、在LMI约束下最小化线性目标
2、min trace(X)
    s.t A'X+XA+XBB'X+Q<0
3、shur补转换


%}
clear,clc
A=[-1,-2,1; 3,2,1; 1,-2,-1];
B=[1;0;1];
Q=[1,-1,0;-1,-3,-12;0,-12,-36];

setlmis([]);
X=lmivar(1,[3,1]) ;%三阶对称矩阵变量

lmiterm([1,1,1,X],1,A,'s');%A'X+XA
lmiterm([1,1,1,0],Q); %Q
lmiterm([1,2,2,0],-1); %-I
lmiterm([1,2,1,X],B',1); %B'X
lmis=getlmis; %获得LMI

n=length(A);
options=[1e-5, 0, 0, 0, 0]; %计算精度
c=mat2dec(lmis, eye(3) ); %目标值:最优X的trace
[copt,xopt]=mincx(lmis , c, options);
xopt=dec2mat(lmis,xopt,X); %最优X

sys=xopt;
X=sys;
L=A'*X+X*A+X*B*B'*X+Q;
[V,D]=eig(L) % 结果验证

end

6 mincx求解LMI约束的线性目标函数最小化

(1)形式

[公式]

[copt,xopt] = mincx(lmisys, c, options, xinit, target);

(2)c需要我们间接求解,一般需要defcx函数求解。

考虑线性目标函数

[公式]

X是一个三阶标量矩阵,P是一个二阶对称矩阵,x0是一个给定向量,确定向量c。

 x0=[1;1];
setlmis([]);
X=lmivar(1,[3,0]);
P=lmivar(1,[2,1]);
lmisys=getlmis;
%求取c的过程
n=decnbr(lmisys);获取lmisys决策变量的个数
c=zeros(n,1);
for j=1:n
    [xj,pj]=defcx(lmisys,j,X,P);
    c(j)=trace(xj)+x0'*pj*x0;
end
 
 

Others

1、Mat2dec:根据矩阵变量值构造决策变量向量。

2、Dec2mat:从决策变量向量中提取矩阵变量值。将求解器求出的向量,根据对称性转换为普通的矩阵;

——2020.04.02——