《Matlab中的LMI工具箱的研究与使用讲解学习.doc》由会员分享,可在线阅读,更多相关《Matlab中的LMI工具箱的研究与使用讲解学习.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。Matlab中的LMI工具箱的研究与使用-目录摘要1关键词1Abstract1Keywords1引言21LMI工具箱介绍和使用311系统描述312信息检313问题求解314结果验证32LMI基础知识421LMI的一般形式422描述LMI的相关术语423LMI应用的基本问题524LMI不等式问题625三类标准的LMI控制问题及其相应的求解器6251可行性问题6252具有线性矩阵不等式约束的一个线性目标函数的最小化问题6253广义特征值最小化问题63LMI工具箱函数详解931LMI工具箱函数列表932确定L
2、MI系统的函数933对LMI变量的操作1034LMI求解器命令1035结果验证和修改12351结果验证12352结果修改1236LMI系统信息提取124线性矩阵不等式在控制理论中的应用1441LMI用于控制问题常用的技术14411矩阵操作技术14412LFT(LinearFractionTransformation)和多胞(polytopy)表示方法1442在控制理论中的应用举例1443用线性矩阵不等式求解控制问题的实例1544基于LMI的鲁棒控制器设计16-5结论和展望20致谢21参考文献22Matlab中的LMI工具箱的研究与使用摘要:由于内点算法可以利用计算机求解高阶矩阵不等式,使得线性
3、矩阵不等式(LMI)在控制理论得以应用,因而线性矩阵不等式在控制系统分析、设计中扮演着越来越重的角色。在毕业设计中,我学习了LMI理论,Matlab中LMI工具箱的使用,研究了常见的控制问题与LMI关系以及其表达式,并研究了基于LMI方法的鲁棒控制器设计问题,推导了如何将鲁棒控制器设计问题转化为LMI形式,给出了通过求解LMI方程构造控制率的算法。LMI是一种较新的方法,可以在控制系统的许多领域得以应用,如鲁棒控制、非线性控制预测控制等有着巨大的潜力。关键词:线性矩阵不等式;LMI工具箱;控制系统TheresearchanduseoftheMatlbaLMItoolboxStudentmajo
4、ringinAutomationSUNPeng-kunTutorAbstract:Duetotheinteriorpointalgorithmcanusecomputertosolvehighordermatrixinequality,Itmakesthelinearmatrixinequality(LMI)inthecontroltheorytoapplicationandlinearmatrixinequality(LMI)playedmoreandmoreheavyroleinthecontrolsystemanalysisanddesign.Atthegraduationdesign,
5、IstudiedtheLMItheory,intheuseofMatlabLMItoolbox,andstudiestheproblemofcommoncontrolwithLMIrelationsanditsexpression,andIstudiedtheproblemoftherobustcontoellerdesignthatbasedonlmimethod,howtotransformtherobustcontrollerdesignproblemintotheLMIform,andgivenbysolvingtheLMIequationoftectoniccontrolalgori
6、thm.LMIisanewmethod,itcanbeusedinmanycontrolsystemfields,suchasrobustcontrol,nonlinearcontrolpredictivecontrol,andithasgreatpotential.Keywords:linearmatrixinequality;LMItoolbox;controlsystem;robustcontrol引言线性矩阵不等式(LMI)工具箱是求解一般线性矩阵不等式问题的一个高性能软件包。由于其面向结构的线性矩阵不等式表示方式,使得各种线性矩阵不等式能够以自然块矩阵的形式加以描述。一个线性矩阵不等
7、式问题一旦确定,就可以通过调用适当的线性矩阵不等式求解器来对这个问题进行数值求解。LMI工具箱提供了确定、处理和数值求解线性矩阵不等式的一些工具,它们主要用于: 以自然块矩阵形式来直接描述线性矩阵不等式; 获取关于现有的线性矩阵不等式系统的信息; 修改现有的线性矩阵不等式系统; 求解三个一般的线性矩阵不等式问题; 验证结果。在60年代,已经提出了线性矩阵不等式,但由于当时的线性矩阵不等式的算法还不够成熟。再加上求解量大,因而线性矩阵不等式在实际中未得到充分应用。近几年来,由于线性矩阵不等式的理论不断完善,求解算法也不断成熟,加上计算机的广泛应用,线性矩阵不等式的求解变得很方便,因此线性矩阵不等
8、式在实际工程中尤其在控制工程理论中得到广泛的应用。由于用线性矩阵不等式求解控制理论中的问题是当今控制理论发展的一个重要方向,因此出现了许多计算机应用软件,其中以美国MathsWorks.Inc公司用C语言开发的MATLAB软件最为流行。在MATLAB5.1版本中,就增加了用于求解线性矩阵不等式的线性矩阵不等式控制工具箱。近十多年来,线性矩阵不等式广泛用于解决控制系统中的问题,随着线性矩阵不等式的内点法的提出、Matlab软件中LMI工具箱的推出,线性矩阵不等式(LMI)越来越受到人们的重视,已成为系统与控制领域研究中的一大热点问题。1971年,Willems提出了线性矩阵不等式(LMI)的概念
9、,1988年,Nesterov和Nemirovskii研究出可直接用于求解LMI凸优化问题的内点算法,随后Boyd等人总结了LMI在工程系统和控制理论中的应用,奠定了LMI在控制理论与应用的基础。由于目前许多控制系统的分析、设计问题以及约束条件等均可以转化为一系列LMI的可解性问题来处理,并有Matlab等高效可靠的工具软件提供技术支持和开发手段,因此基于LMI的控制理论和方法已成为近年来控制界的研究热点之一。近年来LMI主要应用在控制理论中,广泛应用于解决系统与控制中的一系列问题。这些问题的解决一般是根据控制理论建立线性矩阵不等式,然后再用Matlab中的LMI工具箱求解(LMI工具箱中的函
10、数一般只能处理固定形式的线性矩阵不等式)。由于LMI的模糊控制理论有效地解决了如何利用Lyapnov方法分析和设计模糊控制器的重要问题,同时也确立了模糊控制理论研究的一个重要方向,因此一经提出便受到了模糊控制研究人员的普遍关注。LMI控制工具箱,采用内点法的LMI求解器,这些求解器比经典的凸优化算法速度有了显著提高。另方方面,它采用了有效的LMI结构化表示,在求解和计算领域做出了重大贡献。因此基于LMI的控制理论和方法已成为近年来控制界的研究热点。1LMI工具箱介绍和使用11系统描述LMI系统的描述既可以通过交互式GUI界面lmiedit来进行直观的矩阵描述,又可以通过命令lmivar和lmi
11、term来进行逐项的描述。12信息检交互式函数lmiinfo提供有lmiedit、lmivar和lmiterm所创建的LMI系统的量化检索功能。也可以通过lmiedit使得由一系列lmivar和lmiterm命令所建立的LMI系统可视化。13问题求解一般的LMI求解器都可以针对上面说到的三类标准LMI问题进行求解,三个求解器可以解决一般结构的LMI系统和矩阵变量,并返回一个关于决策变量x的可行或者最优解,相应的矩阵变量函数dec2mat得到。求解线性矩阵不等式问题的算法主要有椭球法和内点法及其他的数值解法。其中内点法的优点很明显,它不需要给出迭代的初始可行解且能够求解拟凸问题。Matlab软件
12、开发出功能强大的LMI工具箱的算法就是基于内点法,它提供了与上述相对应的3类标准的线性矩阵不等式问题求解函数:feasp,mincx,gevp。此外,该工具箱还可用于以下几方面。多目标控制器综合,包括LQG综合,综合和极点配置综合。系统鲁棒性的分析和测试,包括检测时变线性系统的二次稳定性,带有参数的Lyapunov稳定性,混合的分析以及带有非线性成分的Popov准则。系统的辨识、滤波、结构设计、图形理论、线性代数以及加权值等问题,LMI工具箱还提供了两个交互的图形用户界面(GUI):LMI编辑器和Magshape界面。用户可以在LMI编辑器中很方便地描述线性矩阵不等式。14结果验证所得解x很容
13、易由函数evallmi和showlmi进行验证,从而实现检查分析结果。LMI系统中的所有变量都可以通过evallmi有决策变量x的值来估计,此时,每个LMI左边和右边的部分都变味了常数矩阵,可以由showlmi显示。2LMI基础知识21LMI的一般形式一个线性矩阵不等式具有如下形式:(1)式中,是m个实数变量,称为是线性矩阵不等式(1)的决策变量,是由决策变量构成的向量,称为决策向量。,是一组给定的实对称矩阵,式(1)中的“”指的是矩阵是负定的,即对所有非零的向量或的最大特征值小于零。所有满足线性矩阵不等式(1)的的全体构成一个凸集。在线性矩阵不等式使用之前,许多控制问题是用Riccati不等
14、式方法来解决的,而Riccati不等式的求解带有一定的保守性。Riccati不等式是二次矩阵不等式,所以将二次矩阵不等式转化成线性矩阵不等式很有必要和意义,在此转化过程中,矩阵的Schur补引理起着决定性的作用。考虑一个矩阵,并将进行分块式中,是维的。假定是非奇异的,则称为是在中的Schur补。下面不加证明地给出矩阵的Schur补引理及其性质。引理:对给定的对称矩阵,以下3个结论是等价的。注意到式(ii)和式(iii)中的第二个不等式是一个非线性矩阵不等式,上述的等价关系说明了应用矩阵的Schur补性质,一些非线性矩阵不等式可以转化成线性矩阵不等式。从而利用现有的软件Matlab中的LMI工具
15、箱可以直接对问题求解。22描述LMI的相关术语以控制中的一个典型线性矩阵不等式为例来进行说明:(2)式中是外因子;叫项;式中的X为矩阵变量;“”左边为较小的一边叫左边,0为右边。其中,是上述LMI的变量,而A、B、C、D和N都是给定的常数矩阵。或者用更一般形式的表示LMI系统。(3)式中为内因子,为外因子,式中X为矩阵变量。其中是LMI系统的第k个矩阵变量或标量变量,L和R是关于的分块矩阵,N和M市给定的常数矩阵。那么我们通过下列语句来描述这个LMI:我们约定左边是不等式较小的一边,右边是不等式较大的一边。比如,X是不等式的右边,而0是右边,也就是说LMI系统一般总是使用“”号表示不等式,与优
16、化工具箱相似。还有就是标量在Matlab中认为是的对称矩阵,例如(式2)中的。(式3)中的N和M称为LMI的外因子,是具有相同维数的给定矩阵,它们可以不是方阵,在一般的问题中都是不出现的。(式3)中的L和R,或者说不等号两边的中间位置的大分块矩阵叫做内因子,L和R是具有相同块结构的对称块矩阵。内因子是一个分块对称矩阵它的分块结构是由其对角块的数目来描述的,并可完全由其对角线以上或以下的那些部分来决定,故在Matlab编程时,内因子只需要并且只能写出它一半。内因子中的子块矩阵中每一个表达式都称为LMI的项,它们是关于矩阵变量X和矩阵标量的仿射表达式,并且可以分解为一些基本项之和,例如(式2)中的
17、内因子的第(1,1)块就包含两个基本项:和。内因子中的每项都有常数项和变量项之分,所谓常数项即(式2)中所示的B和D,而变量项则至少包含一个矩阵变量,例如以及等。23LMI应用的基本问题与控制理论相关的LMI问题的研究已有相当长的历史,Lyapunov、Lure、Popov、Yakubovich、Kalman都作出过独特的贡献。80年代,Pyatniskii和Skirodiski把Lure的问题简化为一个凸优化问题,Nestrov等又提出了可直接用于矩阵不等式凸规划问题求解的内点方法,使得利用LMI求解控制问题变得实用有效。基本的LMI问题分三类: 严格LMI可解性问题(LMIP); 特征值问
18、题(EVP); 广义特征值问题(GEVP)。控制理论中的一些性能指标、稳定性判据等量化条件之所以可以转化为LMI标准问题,是由于一方面LMI能表示范围广泛的不同类凸约束,另一方面Lyapunov方法可以很方便地引出凸或拟凸问题。除此之外,图1对常用的鲁棒控制方法,如小增益定理、的综合方法等与LMI技术的较为深层的关系进行了说明。其中,正实/有界实定理作为桥梁,把输入输出方法和状态空间连接了起来,故从理论上指出了LMI技术广泛用于鲁棒控制问题的可能性。小增益定理对偶同构无源性定理正实/有界实定理LMI技术输入-输出方法状态空间法方法密切相关方法图1LMI与一些控制原理的关系LMI标准问题的数值解
19、法有多种,Beck在文献13中综述了这些方法。它们的共同思路都是把LMI问题看作凸优化问题处理。主要的LMI求解算法有替代凸投影算法、椭球算法及内点法。内点法又分中心点法、投影法、原始-对偶法。Nestorov等对不同内点算法的计算复杂性界限给出了理论分析。从实验验证上看,目前最好的内点法是Nemiroskii等的投影算法。投影算法跟其他方法相比,有如下优点:不需要给出迭代的初始可行解,即不另需独立的算法对初始可行解进行求解;它能够扩展到求解拟凸问题,即LMI约束下广义特征值问题;它能够充分利用有块对角结构的LMI问题的结构信息,减少保守性;整个过程可以给以清晰的几何图示进行说明,易于理解。目
20、前基于MATLAB环境的LMI求解软件包采用的就是这种方法。24LMI不等式问题在控制工程中,许多控制问题尤其是鲁棒控制问题,都可转化成一种称为线性矩阵不等式问题或带有线性矩阵不等式限制条件的简单的最优化问题的求解。线性矩阵不等式的一般形如下或式中具体信息前文1.1中有详细的介绍,这里就不在重复。在控制理论中,经常遇到的两种矩阵不等式为:李亚普诺夫(Lyapunov)不等式(4)李卡第(Riccati)不等式(5)显然,式(4)是线性矩阵不等式,式(5)由于含有二次项,故此式是二次矩阵不等式而不是线性矩阵不等式,但利用Schur定理,可很容易将其变成线性矩阵不等式,即(6)在上述两种线性矩阵不
21、等式中,对称矩阵X中的个未知的自由项(元素)构成了决策向量x,即。25三类标准的LMI控制问题及其相应的求解器在控制、辨识和信号处理等领域中,许多问题都可以转化成用线性矩阵不等式来描述的优化问题。这里介绍3类标准的线性矩阵不等式问题及其求解:一是可行性问题(LMIP);二是特征值问题(EVP);三是广义特征值问题(GEVP)。在MATLAB软件的线性矩阵不等式工具箱(LMIToolbox)中给出了3类问题的求解器。控制系统中的一些性能指标、稳定性判据可以转化为LMI的3类标准问题,其原因是由于一方面Lyapunov方法易得到凸的或拟凸的条件,另一方面LMI本身能表示范围广泛的不同类凸约束。25
22、1可行性问题寻找一个,使得满足线性矩阵不等式系统(7)相应的求解器是feasp。feasp函数是在线性矩阵不等式的约束下搜索决策变量,使得满足上式的最小化,显然最终如果,则对应的x即为一组可行解。252具有线性矩阵不等式约束的一个线性目标函数的最小化问题(8)此类问题的求解器为mincx。253广义特征值最小化问题(9)相应的求解器是gecp。以下详细介绍这三个求解器的功能和使用方法:求解器feasp的一般表达式如下:tmin,xfeas=feasp(lmisys,options,target)。求解器feasp是通过求解如下的一个辅助凸优化问题:来求解线性矩阵不等式系统lmisys的可行性问
23、题。这个凸优化问题的全局最优值用tmin表示,作为求解器feasp输出的第一个分量。如果tmin0,则系统lmisys是可行的。当系统lmisys为可行时,求解器feasp输出的第二个分量xfeas给出了该线性矩阵不等式系统决策变量的一个可行解。进而,应用dec2mat可以得到系统lmisys矩阵变量的一个可行解。求解器feasp的输入变量target为tmin设置了目标值,使得只要tmin0表示限制决策变量在球体中,或者说向量xfeas的欧氏范数不超过R。该参数的默认值是。可行域半径的设定可以避免产生具有很大数值的解,同时也可以加快计算过程,改进数值稳定性。options(4):该参数用于加
24、快迭代过程的结束,它提供了反映优化过程中迭代速度和解的精度之间的一个折中指标。当该参数取值为一个正整数J时,表示在最后的J次迭代中,如果每次迭代后t的减小幅度不超过1%,则优化迭代过程就停止。该参数的默认值是10。options(5):options(5)=1表示不显示迭代过程中的数据,options(5)=0(默认值)则相反。将options(i)设置为零相当于将相应的控制参数设置为默认值,也可以通过忽略该输入变量来接受默认值。mincx求解器mincx的一般表达式如下:copt,xopt=mincx(lmisys,c,options,xinit,target)问题中的线性矩阵不等式系统由l
25、misys表示,向量c和决策变量向量x有相同的维数。对于由矩阵变量表示的线性目标函数,可以应用函数defcx来得到适当的向量c。函数mincx返回到目标函数的全局最优值copt和决策变量的最优解xopt,相应的矩阵变量的最优解可以应用函数dec2mat从xopt得到。函数mincx的输入量中除了lmisys和c以外,其他的输入是可选择的。xinit是最优解xopt的一个初始猜测(可以从矩阵变量的给定值,通过使用mat2dec来导出xinit)。当输入的xinit不是一个可行解时,它将被忽略;否则,则有可能加快问题求解的过程。target是目标函数的一个设定目标,只要某个可行的满足,求解过程就停
26、止。options是一个5维向量,它用来描述优化迭代过程中的一些控制参数:options(1):该参数确定了最优值copt所要求的精度(默认值是)。options(2):该参数设定优化迭代过程中允许的最大迭代次数(默认值是100)。options(3):该参数设定了可行域的半径。有求解器feasp中的相应参数相同。options(4):该参数用于加快迭代过程的结束。当该参数取值为一个正整数J时,表示在最后的J次迭代中。如果每次迭代后,目标函数的减小幅度在给定的精度内,则优化迭代过程就停止。该参数的默认值是5。options(5):options(5)=1表示不显示迭代过程中的数据,option
27、s(5)=0(默认值)则相反。将options(i)设置为零相当于将相应的控制参数设置为默认值,也可以通过忽略该输入变量来接受默认值。求解器gevp的一般表达式如下:lopt,xopt=gevp(lmisys,nlfc,options,linit,xinit,target)如果问题的线性矩阵不等式约束是可行的,则gevp给出了优化问题的全局最小值lopt和决策向量x的最优解xopt。相应的矩阵变量的最优解可以应用dec2mat得到。输入分量lmisys表示当时由构成的线性矩阵不等式系统。包含的线性矩阵不等式系统称为线性分式约束。线性分式约束的个数用nlfc表示。其他的输入分量都是可选择的。如果
28、是一个可行解,则通过令、,将设置为gevp的初始值。当不是可行解时,这样的初始值设置不会被接受。target的设定值表明了只要当一个可行解满足时,迭代过程就停止。可选择的输入量options是一个5维向量,它用来描述优化迭代过程中的一些控制参数:options(1):该参数设定了最优值lopt所要求的精度(默认值是)。options(2):该参数设定优化迭代过程中允许的最大迭代次数(默认值是100)。options(3):该参数设定了可行域的半径。与求解器feasp中的相应参数相同。options(4):该参数用于加快迭代过程的结束。当该参数取值为一个正整数J时,表示在最后的J次迭代中,如果每
29、次迭代后的减小幅度在给定的精度内,则优化迭代过程就停止。该参数的默认值是5。options(5):options(5)=1表示不显示迭代过程中的数据,options(5)=0(默认值)则相反。将options(i)设置为零相当于将相应的控制参数设置为默认值,也可以通过忽略该输入变量来接受默认值。对广义特征值的最小化问题,在调用求解器gevp时,须遵循以下规则:确定包含的线性矩阵不等式:(注意没有);总是把放在线性矩阵不等式系统的最后;要求有约束,或者保证成立的任何其他约束。根据以上要求,对于,的广义特征值优化问题,我们就不能直接应用求解器gevp来求解。为了克服这一困难,可以通过引进矩阵变量Y
30、,并用,来代替,而等价的新问题可以用gevp来求解。3LMI工具箱函数详解31LMI工具箱函数列表1确定LMI系统的函数setlmis初始化LMI系统lmivar定义矩阵变量lmiterm确定LMI系统中每一项的内容newlmi多LMI系统中添加新的LMIgetlmis获得LMI系统的内部描述lmiedit通过GUI界面确定LMI系统2对LMI变量的操作dec2mat将求解器的输出转化为矩阵变量值mat2dec通过给定的矩阵变量值返回决策向量3LMI解算器feasp验证LMI的可行性mincxLMI限制下线性目标的极小值defcx在mincx命令中第一目标gevpLMI限制下的广义特征值最小化
31、4LMI结果验证与修改evallmi由决策变量的给定值来验证所有的变量项showlmi返回一个已经评估的LMI的左右边dellmi从系统中删除一个LMIdelmvar从问题中移除一个矩阵变量setmvar将一个矩阵变量赋予指定值5LMI系统信息的提取decinfo以决策变量的形式表示每个输入的矩阵变量decnbr得到决策变量的个数lmiinfo查询现存LMI系统的信息lminbr得到问题中LMI的个数mntnbr得到问题中矩阵变量的个数32确定LMI系统的函数(1)setlmis()或者setlmis(lmi0)在通过lmivar以及lmiterm描述一个LMI系统之前,利用setlmis初始
32、化其内部表示。为一个已经存在的LMI系统中添加新描述,使用后者,其中lmi0表示已存在的LMI系统,之后的lmivar和lmiterm被用来在lmi0中添加新的变量和项。(2)X,n,sX=lmivar(type,struct)为LMI问题定义矩阵变量,其中type和struct是描述该矩阵变量的必须参数。type确定变量X的类型,struct描述变量X的内容。type=1:此时X是具有块对角化对称矩阵。X对角线上的每一个矩阵必须是方阵,注意标量也的方阵。此时的矩阵变量X大体结果如下:(必须是方阵)如果X具有n个对角块,那么struct是一个的矩阵:m=struct(i,1)表示第i个方阵(即
33、)的大小,比如是的方阵,那么struct(i,1)=5,n=struct(i,2)表示Di的内容,n=-1表示是零矩阵,n=0表示标量,n=1表示满矩阵。type=2:表示X是一个的长方形矩阵,此时struct=m,n,很简单。type=3:表示其他结构,一般用于复杂的LMI系统,正常情况使用的比较少,此时若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个决策变量。typeStruct=mn说明1m第i个矩阵的大小X必须是对角化的块对称矩阵,每个块也必须是方阵n-1零矩阵0标
34、量1满矩阵2mnX为的长方形矩阵,不能包含子块矩阵3(3)lmiterm(termID,A,B,flag)确定LMI中每一项的内容,包括内外因子、常数项以及变量项。再次强调,在描述一个具有分块对称的LMI时,只需要确定右上角或者左下角即可。termID:四元向量,确定该项的位置以及包含的矩阵变量。termID(1)表述所描述的项属于哪个LMI,它可取值为p或者-p,p代表该项位于第p个LMI的左边,而-p则代表该项位于第p个LMI的右边。我们再起强调,左边是指LMI较小的那一边。termID(2:3)表示所描述的项所在LMI中块的位置,如果该项位于内因子的第(i,j)块,那么termID(2:
35、3)=i,j;如果该项在外因子中,那么termID=00。termID(4)表示所描述的项是常数项还是变量项。0代表常数项,k代表该项中包含第k个矩阵变量,-k代表该项中包含第k个矩阵变量的转置。termID取值所描述的项termID(1)P位于第p个LMI的左边-p位于第p个LMI的右边termID(2:3)00外因子ij在内因子中的位置(i,j)termID(4)0常数项中包含第k个矩阵变量项中包含第k个矩阵变量的转置参数A、B是描述该项包含的数据信息,具体可以看下面的表格:所描述项AB外因子NN省略常数项C或者Q*QC/Q*Q省略变量项或者A/AB/B(4)tag=newlmi在当前多描
36、述的LMI系统中添加一个新的LMI,并返回它的句柄tag。(5)lmisys=getlmis在利用lmivar和lmiterm描述给定LMI后,通过getlmis获取当前LMI系统的内部描述,注意这个命令是必须的。(6)lmiedit打开LMI的GUI界面,它可以直观的编辑LMI。其实这个界面对与大部分人来说没有太大的意义,由于它只是免去你书写和记忆lmiterm函数中的参数,但是lmivar参数,比如type和struct还是要理解的,当然对初学这可能可以方便些。33对LMI变量的操作(1)valX=dec2mat(lmisys,decvars,X)给定决策变量的值返回相应矩阵变量的值。(2
37、)decvec=mat2dec(lmisys,X1,X2.)根据矩阵变量的特殊值来返回决策变量组成的决策向量。给定一个LMI系统lmisys和矩阵变量X1,X2.,得到决策向量decvec。这个函数在初始化LMI求解器mincx和gevp的时候很重要,通过给定一个关于矩阵变量X1,X2.的初始值,mat2vec将会组成相应的关于决策变量xinit的向量。34LMI求解器命令(1)tmin,xfeas=feasp(lmisys,options,target)计算以lmisys描述的LMI系统的一个可行解,向量xfeas是一个guanyu决策变量的特殊值,它满足任意一个LMI。即:给定LMI系统x
38、feas通过求解辅助凸优化问题(10)其中,(式10)的全局最优解由标量值tmin表示,如果tmin0,那么系统是严格可行的。如果问题是可行但非严格可行的话,tmin是一个非常小的整数。options:是一个长度为5的向量,用来描述优化算法中的某些控制参数。options说明options(1)不使用options(2)=n设置优化算法的过程中允许的最大迭代次数n,默认n=100options(3)=R设定可行域半径R,表示决策变量被限制在球体内,默认options(4)=J加快优化迭代过程,表示在最后的J次迭代中,如果每次迭代后t的减小幅度不超过1%,迭代即终止,默认J=10options(
39、5)0显示迭代过程,默认01不显示迭代过程Target:为tmin设定目标值,使得只要满足tmintarget,则优化迭代过程终止,默认target=0。(2)copt,xopt=mincx(lmisys,c,options,xinit,target)求解具有LMI约束的线性目标函数的最小化问题,返回目标最小值copt和对应的决策变量的值,即解决下面的凸包问题:(x为决策向量)lmisys:需要求解的LMI系统。c:就是目标函数中的那个c,通常情况题目不会直接给出c而是需要我们间接的求解。控制系统中大部分都是以变量矩阵X的形式给出目标函数,而不是刚才说到的决策向量的形式。此时我们一般需要通过d
40、efcx函数来求解。xinit:决策变量x的初始猜测值,它可以加快问题求解过程,我们可以使用mat2dec函数从矩阵变量的给定值中导出xinit,但是当输入的xinit不是一个可行解时,将被忽略。target:目标函数的设置目标,只要满足,求解过程就终止。options:5维向量,控制优化算法中的参数options说明options(1)=tol最优解copt的精度tol,默认0.01options(2)=itermax允许的最大迭代次数itermax,默认100options(3)=R设定可行域半径R,默认options(4)=J最后J次迭代结果变化幅度在精度范围,将终止迭代过程,默认5op
41、tions(5)控制是否显示迭代过程,0显示,1不显示,默认0(3)V1,V2.=defcx(lmisys,n,X1,X2.)将矩阵变量形式的目标函数转成决策变量形式,从而得到c,也就是说LMI求解器mincx的目标函数必须转换成的形式才可以使用,其中x是由决策变量组成的决策向量。然而在多数控制问题中,目标函数一般以矩阵变量X的形式给出,而不是决策向量x。比如trace(X)或者等。lmisys:需要求解的LMI系统。n:LMI系统中独立变量的个数,可以使用decnlmi函数获取。Xk:第k个矩阵变量。Vk:返回的第k个决策变量系数。(4)lopt,xopt=gevp(lmisys,nlfc,
42、options,linit,target)求解LMI限制下的广义特征矩阵最小化问题:只要上面的三个约束是可行的,gevp就返回全局最小值lopt和相应的决策变量的值xopt。由于大部分参数前面的相似,我们这里只是说明下不同的参数:nlfc:线性比例约束的个数,即包括的式子的个数。linit:的初值猜测值。xinit:每个决策变量的初始猜测值,注意必须是以决策向量的形式给出,长度等于decnbr(lmisys)。options:与mincx的完全一样,这里不具体介绍了。35结果验证和修改351结果验证LMI工具箱提供了两个函数用于分析和验证一个线性矩阵不等式优化问题的结果。对一个给定的决策向量的
43、值,例如由线性矩阵不等式求解器给出的可行或最优解向量,函数evallmi求出线性矩阵不等式系统中所有变量项的值,进而应用showlmi给出特定线性矩阵不等式的左边和右边。(1)evalsys=evallmi(lmisys,decvars)对一个给定的决策向量的值decvars,验证LMI求解器的输出,返回给evalsys,之后每个LMI左右两边的矩阵值通过showlmi函数返回。(2)lhs,rhs=showlim(evalsys,n)对于决策变量的给定值,返回每个LMI不等号的左右两边的值。evalsys:由evallmi计算返回的参数。n:第n个LMI。352结果修改LMI工具箱提供了函数
44、setmvar、dellmi和delmvar,它们可以用来修改一个已经确定的线性矩阵不等式系统。(1)函数setmvar用于给某个矩阵变量赋值,一旦赋值,该变量就从原来的问题中消失了,包含该变量的所有项都成为常数项。可以通过以下的命令来实现:newsys=setmvar(lmisys,X,Xval)将Xval赋值给矩阵变量X,此时所有包含X的项都会变为常数项,当然那个矩阵变量X也就从地球上消失了,返回的新LMI系统是有剩下的矩阵变量和常数项构成。setvar的作用就是可是冻结默一个矩阵变量,或者根据剩余变量进行优化,可以避免LMI约束的部分或全部重定义。(2)函数dellmi可以从一个线性矩阵
45、不等式系统中删除一个完整的线性矩阵不等式。可以通过以下的命令来实现:newsys=dellmi(lmisys,n)删除lmisys系统中的第n个LMI,返回新的LMI系统给newsys,当然在被删除的LMI中出现的矩阵变量也会被相应的删除。(3)函数delmvar修改一个线性矩阵不等式系统的方式是删除一个矩阵变量,即在所有包含该变量的变量项中删除该矩阵变量。delmvar提供了这样一种修改功能。可以通过以下的命令来实现:newsys=delvar(lmisys,X)将矩阵变量从当前LMI系统中删除,相当于setvar(lmisys,X,0)。36LMI系统信息提取线性矩阵不等式系统的完整描述是以一个叫做内部表示的向量储存在机器内的。LMI工具箱提供了三个函数lmiinfo、lminbr和matnbr,它们可以从内部表示向量中提取线性矩阵不等式的相关信息,并以用户可读的方式显示出来。lmiinfo是一种交互式工具,用以反映有关线