1、LMI: Linear Matrix Inequality,就是线性矩阵不等式。 在 Matlab 当中,我们可以采用图形界面的 lmiedit 命令,来调用 GUI 接口, 但是我认为采用程序的方式更方便(也因为我不懂这个 lmiedit 的 GUI)。 对于 LMI Lab, 其中有三种求解器( solver): feasp,mincx 和 gevp。 每个求解器针对不同的问题: feasp:解决可行性问题(feasibility problem),例如:A(x) 该论文的地址为:论文原文地址 该论文的算例为: 500)this.width=500;“ border=0 我们要实现的就利用
2、 LMI 进行求解,验证论文结果。 首先我们要用 setlmis()命令初始化一个 LMI 系统。 接下来,我们就要设定矩阵变量了。采用函数为 lmivar 语法:X = lmivar(type,struct) type=1: 定义块对角的对称矩阵。 每一个对角块或者是全矩阵 ,标量 ,或者是零阵。 如果 X 有 R 个对角块,那么后面这个 struct 就应该是一个 Rx2 阶的的矩 阵,在此矩阵中,struct(r,1)表示第 r 个块的大小, struct(r,2) 表示第 r 个块的 类型 0 lmiterm(-2 1 1 Q, 1, 1); lmiterm(-3 1 1 S1, 1,
3、 1); lmiterm(-4 1 1 S2, 1, 1); % pos in (1, 1) lmiterm(1 1 1 Q, -1, 1); lmiterm(1 1 1 S2, Bd, Bd); lmiterm(1 1 1 S1, Ad, Ad); % pos (1, 2) lmiterm(1 1 2 Q, A, 1); lmiterm(1 1 2 M, B2, 1); % pos(1, 3) lmiterm(1 1 3 0, B1); % pos(1, 4) lmiterm(1 1 4 S2, Bd, Dd); lmiterm(1 1 4 S1, Ad, Cd); % pos(2, 2)
4、lmiterm(1 2 2 Q, -1, 1); % pos(2, 4) lmiterm(1 2 4 Q, 1, C); lmiterm(1 2 4 -M, 1, D12); % pos(2, 5) lmiterm(1 2 5 -M, 1, 1); % pos(2, 6) lmiterm(1 2 6 Q, 1, 1); % pos(3, 3) lmiterm(1 3 3 0, -(gammar2); % pos(3, 4) lmiterm(1 3 4 0, D11); % pos(4, 4) lmiterm(1 4 4 0, -1); lmiterm(1 4 4 S1, Cd, Cd); lmiterm(1 4 4 S2, Dd, Dd); lmiterm(1 5 5 S2, -1, 1); lmiterm(1 6 6 S1, -1, 1); lmis = getlmis; tmin, feas = feasp(lmis) 运行后,就调用 dec2mat 把决策变量转化为矩阵形式。 Q = dec2mat(lmis, feas, Q) Q = 1.9253 -2.2338 -2.2338 9.1054 可以看到,和论文中的一样。