LMI:Linear Matrix Inequality,就是线性矩阵不等式。
在Matlab当中,我们可以采用图形界面的lmiedit命令,来调用GUI接口,但是我认为采用程序的方式更方便(也因为我不懂这个lmiedit的GUI)。
对于LMI Lab,其中有三种求解器(solver):feasp,mincx和gevp。
每个求解器针对不同的问题:
feasp:解决可行性问题(feasibility problem),例如:A(x)
mincx:在线性矩阵不等式的限制下解决最小化问题(Minimization of a linear objective under LMI constraints),例如最小化c'x,在限制条件A(x) < B(x)下。
gevp:解决广义特征值最小化问题。例如:最小化lambda,在
0
要解决一个LMI问题,首要的就是要把线性矩阵不等式表示出来。
对于以下类型的任意的LMI问题
N' * L(X1, . . . , XK) * N < M' * R(X1, . . . , XK) * M
其中X1, . . . , XK是结构已经事先确定的矩阵变量。左侧和右侧的外部因子(outer factors)N和M是给定的具有相同维数的矩阵。
左侧和右侧的内部因子(inner factors)L(.)和R(.)是具有相同结构的对称块矩阵。每一个块由X1, . . . , XK以及它们的转置组合而成形成的。
解决LMI问题的步骤有两个:
1、定义维数以及每一个矩阵的结构,也就是定义X1, . . . , XK。
2、描述每一个LMI的每一项内容(Describe the term content of each LMI)此处介绍两个术语:
矩阵变量(Matrix Variables):例如你要求解X满足A(x)
项(Terms):项是常量或者变量(Terms are either constant or variable)。
常项(Constant Terms)是确定的矩阵。可变项(Variable Terms)是哪些含有矩阵变量的项,例如:X*A, X*C'。如果是X*A + X*C',那么记得要把它当成两项来处理。
好了废话不说了,让我们来看个例子吧(下面是一线性时滞系统)。
500)this.width=500;" border=0>
针对这个式子,如果存在满足如下LMI的正矩阵(positive-define)的Q,S1,S2和矩阵M,那么我们就称作
该系统为H-inf渐进稳定的,并且gammar是上限。
500)this.width=500;" border=0>