您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > Matlab-LMI(线性矩阵不等式)工具箱中文版介绍及使用教程
LMI工具箱介绍线性矩阵不等式(LMI)工具箱是求解一般线性矩阵不等式问题的一个高性能软件包。由于其面向结构的线性矩阵不等式表示方式,使得各种线性矩阵不等式能够以自然块矩阵的形式加以描述。一个线性矩阵不等式问题一旦确定,就可以通过调用适当的线性矩阵不等式求解器来对这个问题进行数值求解。LMI工具箱提供了确定、处理和数值求解线性矩阵不等式的一些工具,它们主要用于:z以自然块矩阵形式来直接描述线性矩阵不等式;z获取关于现有的线性矩阵不等式系统的信息;z修改现有的线性矩阵不等式系统;z求解三个一般的线性矩阵不等式问题;z验证结果。本附录将详细介绍LMI工具箱提供的用于解决以上各个问题的相关函数和命令。A.1线性矩阵不等式及相关术语一个线性矩阵不等式就是具有以下一般形式的一个矩阵不等式:0+++=NNxxLLLxL110)((1)其中:是给定的对称常数矩阵,是未知变量,称为决策变量,NLLL,,,10Nxx,,1∈=T1],,[NxxxNR是由决策变量构成的向量,称为决策向量。尽管表达式(1)是线性矩阵不等式的一个一般表示式,但在大多数实际应用中,线性矩阵不等式常常不是以一般表示式(1)的形式出现,而是具有以下形式:),,(),,(11nnXXRXXL其中的和是矩阵变量的仿射函数,通过适当的代数运算,上式可以写成线性矩阵不等式的一般表示式(1)的形式。例如,在系统稳定性问题中经常遇到的Lyapunov矩阵不等式)(⋅L)(⋅RnXX,,10+XAXAT(2)也是一个线性矩阵不等式,其中的是一个矩阵变量。我们以一个二阶矩阵为例,将矩阵不等式(2)写成一般表示式(1)的形式。针对二阶矩阵不X⎥⎦⎤⎢⎣⎡−−=2021A等式(2),对应的矩阵变量是一个二阶的对称矩阵,,不等式(2)中的决策变量是矩阵中的独立元。根据对策性,矩阵变量可以写成X⎥⎦⎤⎢⎣⎡=3221xxxxXX321xxx、、X⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡=100001100001321xxxX将矩阵A和上式代入矩阵不等式(2),经整理,可得0⎥⎦⎤⎢⎣⎡−+⎥⎦⎤⎢⎣⎡−−+⎥⎦⎤⎢⎣⎡−400043300222321xxx(3)这样就将矩阵不等式(2)写成了线性矩阵不等式的表示式(1)。显然,与Lyapunov矩阵不等式(2)相比,表示式(3)缺少了许多控制中的直观意义。另外,(3)式涉及到的矩阵也比(2)式中的多。如果矩阵是阶的,则(3)式中的系数矩阵一般有An2)1(+nn个。因此,这样的表达式在计算机中将占用更多的存储空间。由于这样的一些原因,LMI工具箱中的函数采用线性矩阵不等式的结构表示。例如,Lyapunov矩阵不等式(2)就以矩阵变量的不等式来表示,而不是用其一般形式(3)来表示。X一般的,一个线性矩阵不等式具有块矩阵的形式,其中每一个块都是矩阵变量的仿射函数。以下通过一个例子来说明有关描述一个线性矩阵不等式的术语。考虑控制中的一个线性矩阵不等式:∞H0⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−−+NIDBDICXBXCXAXANγγTTTTT其中:是给定的矩阵,NDCBA、、、、∈=TXXnn×R和R∈γ是问题的变量。zN称为外因子,块矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−−+=IDBDICXBXCXAXAXLγγγTTTT),(称为内因子。外因子可以不是一个正方矩阵,它在许多问题中常常不出现。zX和γ是问题的矩阵变量。注意标量也可以看成是一个11×维的矩阵。z内因子),(γXL是一个对称块矩阵。根据对称性,),(γXL可以由对角线及其上方的块矩阵完全确定。z),(γXL中的每一块都是矩阵变量X和γ的仿射函数。这一函数由常数项和变量项这两类基本项组成,其中常数项就是常数矩阵或以一些常数矩阵组成的算术表达式,例如),(γXL中的和BD;变量项是包含一个矩阵变量的项,例如IXAγ−,等。一个线性矩阵不等式不论多么复杂,都可以通过描述其中每一块的各项内容来确定这个线性矩阵不等式。A.2线性矩阵不等式的确定LMI工具箱可以处理具有以下一般形式的线性矩阵不等式:MXXRMNXXLN),,(),,(1T1TKK其中:是具有一定结构的矩阵变量,左、右外因子KXX,,1N和M是具有相同维数的给定矩阵,左、右内因子和)(⋅L)(⋅R是具有相同块结构的对称块矩阵。注意在线性矩阵不等式的描述中,左边总是指不等式较小的一边,例如对线性矩阵不等式,0XX称为是不等式的右边,0称为是不等式的左边,常表示成。X0要确定一个线性矩阵不等式系统,需要做以下两步:1.给出每个矩阵变量的维数和结构;KXX,,12.描述每一个线性矩阵不等式中各个项的内容。这个过程产生所描述线性矩阵不等式系统的一个内部表示,它以一个单一向量的形式储存在计算机内,通常用一个名字,例如lmisys来表示。该内部表示lmisys可以在后面处理这个线性矩阵不等式时调用。下面将通过LMI工具箱中的一个例子来说明线性矩阵不等式系统的确定。运行lmidem可以看到这个例子的完整描述。例1:考虑一个具有4个输入、4个输出和6个状态的稳定传递函数BAICG1)()(−−=ss(4)和一组具有以下块对角结构的输入/输出尺度矩阵D:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=5432110000000000ddddddD(5)则在具有时变不确定性系统的鲁棒稳定性分析中提出了以下问题:寻找一个具有结构(5)的尺度矩阵D,使得1)(sup1−DDGωωj。可以证明:这样一个问题可以转化成一个线性矩阵不等式系统的可行性问题,即寻找两个对称矩阵X66R×∈和DDST=44×∈R,使得0⎥⎦⎤⎢⎣⎡−++SXBXBSCCXAXATTT(6)0X(7)IS(8)用命令lmivar和lmiterm给出线性矩阵不等式系统(6)~(8)的内部描述如下:setlmis([])X=lmivar(1,[61])S=lmivar(1,[20;21])%1stLMIlmiterm([111X],1,A,’s’)lmiterm([111S],C’,C)lmiterm([112X],1,B)lmiterm([122S],-1,1)%2ndLMIlmiterm([-211X],1,1)%3rdLMIlmiterm([-311S],1,1)lmiterm([3110],1)lmisys=getlmis其中:函数lmivar定义了两个矩阵变量X和,lmiterm则描述了每一个线性矩阵不等式中各项的内容。getlmis回到了这个线性矩阵不等式系统的内部表示lmisys,lmisys也称为是储存在机器内部的线性矩阵不等式系统的名称。以下将详细介绍这几个函数的功能和用法。Ssetlmis和getlmis一个线性矩阵不等式系统的描述以setlmis开始,以getlmis结束。当要确定一个新的系统时,输入:setlmis([])如果需要将一个线性矩阵不等式添加到一个名为lmiso的现有的线性矩阵不等式系统中,则输入:setlmis(lmiso)当线性矩阵不等式系统被完全确定好后,输入:lmisys=getlmis该命令返回这个线性矩阵不等式系统的内部表示lmisys。lmivar函数lmivar用来描述出现在线性矩阵不等式系统中的矩阵变量,每一次只能描述一个矩阵变量。矩阵变量的描述包括该矩阵变量的结构。该函数的一般表达式是:X=lmivar(type,struct)这一函数定义了一个新的矩阵变量X,X是该矩阵变量的变量名。函数中的第一个输入量type确定了矩阵变量X的类型,第二个输入量struct进一步根据变量X的类型给出该变量的结构。变量的类型分成三类:Type=1:对称块对角结构。这种结构对应于具有以下形式的矩阵变量:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡rDDD#%##00000021其中对角线上的每一个矩阵块是方阵,它可以是零矩阵、对称矩阵或数量矩阵。这种结构也包含了通常意义的对称矩阵和数量矩阵(分别相当于只有一块)。此时,struct是一个jD2×r维的矩阵。如果该矩阵的第i行是,则其中的表示对称矩阵块的阶数,而n只能取1、0或,其中),(nmmiD1−1=n表示是一个满的对称矩阵(或无结构的对称矩阵),表示是一个数量矩阵,iD0=niD1−=n表示是一个零矩阵。iDType=2:长方型结构。这种结构对应于任意的长方矩阵。此时,struct=表示矩阵的维数。),(nmType=3:其他结构。这种结构用来描述更加复杂的矩阵,也可以用于描述矩阵变量之间的一些关联。X的每一个元或者是0,或者是nx±,其中是第个决策变量。相应的,struct是一个和变量nxnX有相同维数的矩阵,其中的每一个元取值如下:struct⎪⎩⎪⎨⎧−=−===nnxjinxjinjiji),(,),(,0),(,0),(XXX如果如果如果例2:考虑具有三个矩阵变量和的线性矩阵不等式系统,其中21XX、3Xz是一个1X33×维的对称矩阵;z是一个维的长方矩阵;2X42×z,其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡Δ=2213IXδδ000000Δ是55×维的对称矩阵,1δ和2δ是两个标量,表示维的单位矩阵。2I22×可以应用lmivar来定义这些矩阵变量:setlmis([])X1=lmivar(1,[31])X2=lmivar(2,[24])X3=lmivar(1,[51;10;20])lmiterm在确定了矩阵变量之后,还需要确定每一个线性矩阵不等式中各项的内容。线性矩阵不等式的项指构成这个线性矩阵不等式的块矩阵中的加项。这些项可以分成三类:1.常数项;2.变量项,即包含了矩阵变量的项,例如(3)式中的XAT和。一般的变量项具有形式,其中的SCCTPXQX是一个变量,P和Q是给定的矩阵,分别称为该变量项的左系数和右系数;3.外因子。在描述一个具有多个块的线性矩阵不等式时,LMI工具箱提供了这样的功能,即只需要确定对角线上和对角线上方的项的内容,或者只描述对角线上和对角线下方的项的内容,其他部分项的内容可以根据线性矩阵不等式的对称性得到。用命令lmiterm每次可以确定线性矩阵不等式的一个项的内容。例如,对线性矩阵不等式0⎥⎦⎤⎢⎣⎡−++SXBXBSCCXAXATTT可以用以下一组命令来描述:lmiterm([111X],1,A,’s’)lmiterm([111S],C’,C)lmiterm([112X],1,B)lmiterm([122S],-1,1)这些命令依次描述了项和XBSCCXAXA、、TT+S−。在每一条命令中,第1项是一个四元向量,它刻画了所描述的项所在的位置和特征:z第1个元表示所描述的项属于哪一个线性矩阵不等式。值m表示第m个不等式的左边,-m表示第m个不等式的右边。z第2和第3个元表示所描述的项所在块的位置。例如,向量[1121]表示所描述的项位于第一个线性矩阵不等式左边内因子的块(1,2)中。第2和第3个元均取零表示所描述的项在外因子中。z昀后一个元表明了所描述的项是常数项还是变量项。如果是变量项,则进一步说明涉及哪一个变量。0表示常数项,k表示所描述的项包含第k个矩阵变量,-k则表示包含矩阵变量的转置(在例1中,kXkXTkXX是第1个变量,是第2个变量,它们按确定的先后顺序排列)。Slmiterm的第2项和第3项包含了数据(常数项的值,外因子,变量项或中的左、右系数)。第4项是可选择的,且只能是's'。PXQQPXT在描述项的内容时,有一些简化的方法。1.零块可以省略描述;2.可以通过在命令lmiterm中外加一个分量's',使得可以只用一个命令lmiterm就能描述一个变量项与该变量项的转置的和。例如,上面的第一个命令描述了XAXA+T。3.可以用一个标量值来表示一个数量矩阵,即用α表示数量矩阵Iα,其中α是一个标量。如例1中的第3个不等式被描述成ISlmiterm([-311S],1,1)lmiterm([3110],1)为了便于阅读,也可以用线性矩阵不等式和矩阵变量的名称来表示对应的线性矩阵不等式和矩阵变量。矩阵变量的变量名可以用命令lmivar来赋值,线性矩阵不等式的名称则可以用函数newl
本文标题:Matlab-LMI(线性矩阵不等式)工具箱中文版介绍及使用教程
链接地址:https://www.777doc.com/doc-2137914 .html