资源描述:
《lmi工具箱介绍程五彬》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用MATLABLMI工具计算保持线性系统稳定的最大时滞0引言线性矩阵不等式(LMI)工具箱是求解一般线性矩阵不等式问题的一个高性能软件包。由于其面向结构的线性矩阵不等式表示方式,使得各种线性矩阵不等式能够以自然块矩阵的形式加以描述。一个线性矩阵不等式问题一旦确定,就可以通过调用适当的线性矩阵不等式求解器来对这个问题进行数值求解。LMI工具箱提供了确定、处理和数值求解线性矩阵不等式的一些工具,它们主要用于:1.以自然块矩阵形式来直接描述线性矩阵不等式;2.获取关于现有的线性矩阵不等式系统的信息;3.修改现有的线性
2、矩阵不等式系统;4.求解三个一般的线性矩阵不等式问题;5.验证结果。1LMI与H∝鲁棒控制问题许多有关控制系统鲁棒稳定性的问题都可归结为LMI方程的求解,下面举例进行介绍。在论文《改进的Markov切换系统区间时滞相关稳定性与H∞分析》(赵旭东编写)中的定理1主要内容如下:已知时滞马尔可夫切换系统给定常数h1、h2,对任意时滞d(t),上述系统是随机稳定的。如果存在n×n阶矩阵Pi>0,Q1i>0,Q2i>0,Q3i>0,Ri>0,Si>0,Ti>0,Z1>0,Z2>0,Q1>0,Q2>0,Q3>0,Lki,Mk
3、i,Nki,Hki,k=1,...,5,使得对任意i=1,...,N,以下矩阵不等式成立,即为证明定理1中结果具有较低的保守性,考虑以下算例。考虑以上具有两模态的时滞马尔可夫跳跃系统,系统参数如下:为了将定理1中结果与文献[9]中的结果进行比较,首先设定h1=0,u11=-0.1,u22=-0.8,对于给定u值,满足式(4)~(8)的最大时滞h2可以通过求quasi凸优化问题得到。表1给出了比较结果。2Matlab中的LMI工具箱确定LMI系统的函数a.(1)setlmis([])或者setlmis(lmi0)在
4、通过lmivar以及lmiterm描述一个LMI系统之前,利用setlmis初始化其内部表示。为一个已经存在的LMI系统中添加新描述,使用后者,其中lmi0表示已存在的LMI系统,之后的lmivar和lmiterm被用来在lmi0中添加新的变量和项。b.[x,ndec,xdec]=lmivar(type,struct)为LMI问题定义矩阵变量,其中type和struct是描述该矩阵变量的必须参数。type确定变量X的类型,struct描述变量X的内容。type=1:此时X是具有块对角化对称矩阵。X对角线上的每一个
5、矩阵Di必须是方阵,注意标量也1×1的方阵。此时的矩阵变量X大体结果如下:如果X具有n个对角块,那么struct是一个n×2的矩阵:m=struct(i,1)表示第i个方阵(Di)的大小,比如Di是5×5的方阵,则struct(i,1)=5n=struct(i,2)表示Di的内容,n=-1表示Di是零矩阵,n=0表示数量矩阵,n=1表示满的对称矩阵(或无结构的对称矩阵)。type=2:表示X是一个m×n的长方形矩阵,此时struct=[m,n],很简单。type=3:表示其他结构,一般用于复杂的LMI系统,正常情
6、况使用的比较少,此时若X(i,j)=0,struct(i,j)=0,若X(i,j)=xk则struct(i,j)=k,若X(i,j)=-xk则struct(i,j)=-k,其中xk表示第k个决策变量。举个例子说明下,考虑有3个矩阵变量的LMI系统,其中X1是3×3的对称矩阵,X2是2×4的矩阵,X3具有下面的形式其中Δ是一个任意的5×5的对称矩阵,δ1和δ2是标量,I2是2×2的单位矩阵,利用lmivar定义上述三个矩阵变量如下:%%定义X1X1=lmivar(1,[3,1]);%%定义X2X2=lmivar(2
7、,[2,4]);%%定义X3X3=lmivar(1,[51;1,0,2,0]);%注意此时的X3(3,3)是算标量的,原因有二:一是它不满也不全为零,二是只需要δ2一个数据即可确定。c.lmitag=newlmi功能:增加新的LMI到当前描述的LMI系统中,并给予其标识号lmitag。输出:lmitag:新的LMI的标识号。d.lmiterm(termID,A,B,flag)确定LMI中每一项的内容,包括内外因子、常数项以及变量项。需要注意的是,在描述一个具有分块对称的LMI时,只需要确定右上角或者左下角即可,其
8、它项的内容可以根据线性矩阵不等式的对称性得到。下面结合例子来介绍,考虑LMI,给出这个LMI的描述:其中,X1和X2分别是type=2和type=1的矩阵变量,x3是一个标量(再次说明,Matlab将标量视为1×1的对称矩阵)%确定LMI左边的项(即不等号较小的那边,再次强调),还有记住只要描述一半即可lmitag=newlmilmiterm([lmitag11X2],2