LMI(线性矩阵不等式)工具箱

合集下载

MATLAB常用工具箱及常用函数

MATLAB常用工具箱及常用函数

常用工具箱MATLAB包括拥有数百个内部函数的主包和三十几种工具包。

工具包又可以分为功能性工具包和学科工具包。

功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。

学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。

开放性使MATLAB广受用户欢迎。

除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

Matlab Main Toolbox——matlab主工具箱Control System Toolbox——控制系统工具箱Communication Toolbox——通讯工具箱Financial Toolbox——财政金融工具箱System Identification Toolbox——系统辨识工具箱Fuzzy Logic Toolbox——模糊逻辑工具箱Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱Image Processing Toolbox——图象处理工具箱computer vision system toolbox----计算机视觉工具箱LMI Control Toolbox——线性矩阵不等式工具箱Model predictive Control Toolbox——模型预测控制工具箱μ-Analysis and Synthesis Toolbox——μ分析工具箱Neural Network Toolbox——神经网络工具箱Optimization Toolbox——优化工具箱Partial Differential Toolbox——偏微分方程工具箱Robust Control Toolbox——鲁棒控制工具箱Signal Processing Toolbox——信号处理工具箱Spline Toolbox——样条工具箱Statistics Toolbox——统计工具箱Symbolic Math Toolbox——符号数学工具箱Simulink Toolbox——动态仿真工具箱Wavele Toolbox——小波工具箱DSP system toolbox-----DSP处理工具箱常用函数Matlab内部常数[2]eps:浮点相对精度exp:自然对数的底数ei 或j:基本虚数单位inf 或Inf:无限大,例如1/0nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...)realmax:系统所能表示的最大数值realmin:系统所能表示的最小数值nargin: 函数的输入引数个数nargout: 函数的输出引数个数lasterr:存放最新的错误信息lastwarn:存放最新的警告信息MATLAB常用基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):下取整,即舍去正小数至最近整数ceil(x):上取整,即加入正小数至最近整数rat(x):将实数x化为多项分数展开rats(x):将实数x化为分数表示sign(x):符号函数(Signum function)。

matlab各种应用工具箱参考

matlab各种应用工具箱参考

2021/3/10
讲解:XX
11
二、通用工具箱
• Matlab主工具箱
• 前面课程所介绍的数值计算、符号运算、 绘图以及句柄绘图都是matlab主工具箱 的内容,是matlab的基本部分,也是我 们课程的重点。
• Matlab主工具箱位于:
c:\matlab\toolbox\matlab
• matlab主工具箱是任何版本的matlab都
simulink 的一般结构:
输入
系统
输出
2021/3/10
讲解:XX
27
仿真原理
• 当在框图视窗中进行仿真的同时,matlab 实际上是运行保存于simulink内存中s函数 的映象文件,而不是解释运行该m文件。
• s函数并不是标准m文件,它m文件的一种 特殊形式。
结构图创建方法
• 一个动态系统的创建过程,就是一个方框 图的绘制过程
rose - Angle histogram plot.
compass - Compass plot.
feather - Feather plot.
fplot - Plot function.
comet - Comet-like trajectory.
2021/3/10
讲解:XX
17
Graph annotation. title - Graph title. xlabel - X-axis label. ylabel - Y-axis label. text - Text annotation. gtext - Mouse placement of text. grid - Grid lines.
高阶谱分析工具箱
2021/3/10

LMI工具箱介绍

LMI工具箱介绍

入量 type 确定了矩阵变量 X 的类型,第二个输入量 struct 进一步根据变量 X 的类型给出该
变量的结构。变量的类型分成三类:
Type =1:对称块对角结构。这种结构对应于具有以下形式的矩阵变量:
⎡D1 0 " 0 ⎤
⎢ ⎢
0
D2 "
0
⎥ ⎥
⎢# # % #⎥
⎢ ⎣
0
0
"
⎥ Dr ⎦
其中对角线上的每一个矩阵块 Dj 是方阵,它可以是零矩阵、对称矩阵或数量矩阵。这种
setlmis 和 getlmis 一个线性矩阵不等式系统的描述以 setlmis 开始,以 getlmis 结束。当要确定一个新的 系统时,输入:
setlmis([])
如果需要将一个线性矩阵不等式添加到一个名为 lmiso 的现有的线性矩阵不等式系统中, 则输入:
setlmis(lmiso)
当线性矩阵不等式系统被完全确定好后,输入:
这个过程产生所描述线性矩阵不等式系统的一个内部表示,它以一个单一向量的形式
储存在计算机内,通常用一个名字,例如 lmisys 来表示。该内部表示 lmisys 可以在后面处 理这个线性矩阵不等式时调用。
下面将通过 LMI 工具箱中的一个例子来说明线性矩阵不等式系统的确定。运行 lmidem 可以看到这个例子的完整描述。
A.1 线性矩阵不等式及相关术语
一个线性矩阵不等式就是具有以下一般形式的一个矩阵不等式:
L( x) = L0 + x1L1 + " + xN LN < 0
(1)
其中: L0 , L1 , ", LN 是给定的对称常数矩阵, x1, ", xN 是未知变量,称为决策变量,

MATLAB中常用的工具箱

MATLAB中常用的工具箱

6.1.1MA TLAB中常用的工具箱MA TLAB中常用的工具箱有:Matlab main toolbox——matlab主工具箱Control system toolbox——控制系统工具箱Communication toolbox——通信工具箱Financial toolbox——财政金融工具箱System identification toolbox——系统辨识工具箱Fuzzy logic toolbox ——模糊逻辑工具箱Higher-order spectral analysis toolbox——高阶谱分析工具箱Image processing toolbox——图像处理工具箱Lmi contral toolbox——线性矩阵不等式工具箱Model predictive contral toolbox——模型预测控制工具箱U-Analysis ang sysnthesis toolbox——u分析工具箱Neural network toolbox——神经网络工具箱Optimization toolbox——优化工具箱Partial differential toolbox——偏微分奉承工具箱Robust contral toolbox——鲁棒控制工具箱Spline toolbox——样条工具箱Signal processing toolbox——信号处理工具箱Statisticst toolbox——符号数学工具箱Symulink toolbox——动态仿真工具箱System identification toolbox——系统辨识工具箱Wavele toolbox——小波工具箱6.2优化工具箱中的函数1、最小化函数2、最小二乘问题3、方程求解函数4、演示函数中型问题方法演示函数大型文体方法演示函数。

线性矩阵不等式的LMI工具箱求解

线性矩阵不等式的LMI工具箱求解

一、线性矩阵不等式的LMI 工具箱求解(一)可行性问题(LMIP )1、可行性问题描述系统状态方程:[]11223301000210-4014x x x x u x x ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=-+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦在判断系统的稳定性时,根据线性定常系统的李雅普诺夫稳定性判据,需要判断是否存在实对称矩阵P ,使得:T A P+PA=Q -成立,其中Q 为正定矩阵。

那么判断系统稳定性的问题,可以转化为下面不等式是否存在解的问题:T A P+PA<0这种不等式解是否存在的问题可以用MATLAB 的LMI 工具箱进行判断。

2、仿真所需要用到的命令setlmis([]) :开始一个线性矩阵不等式系统的描述;X= lmivar(TYPE,STRUCT):定义一个新的矩阵变量;lmiterm(TERMID,A,B,FLAG):确定线性矩阵不等式的一个项的内容; LMISYS = getlmis :结束一个线性矩阵不等式系统的描述,返回这个现行矩阵不等式系统的内部表示向量LMISYS ;X = dec2mat(LMISYS,DECV ARS,XID):由给定的决策变量得到相应的矩阵变量值。

[tmin,xfeas]=feasp(lmisys):可行性问题的求解器函数,tmin 大于0时,表明LMI 系统不可行,P 阵无解,系统不稳定,tmin 小于0时,便可以用dec2mat 函数求解出P矩阵。

3、仿真结果可以看到,仿真结果tmin<0,因此P阵存在,系统是稳定的。

进一步用dec2mat函数求解出P矩阵。

得:(二)特征值问题(EVP)1、EVP 问题描述该问题对应矩阵工具箱中的LMI 约束的线性目标函数最小化优化问题。

一般采用mincx 求解器求解。

考虑这样一个优化问题:min ().. 0T T Trace X s t A X XA XBB X Q +++<其中: 5342154067; 3; 562.78314228A B Q -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪===-- ⎪ ⎪ ⎪ ⎪ ⎪ ⎪---⎝⎭⎝⎭⎝⎭2、仿真用到的命令DECV ARS = mat2dec(LMISYS,X1,X2,X3,...) :由给定的矩阵变量得到相应的决策变量值;[copt,xopt]=mincx(LMIs,c,options):用于给定的特征值问题求解,copt 返回全局最优的决策变量,xopt 返回决策变量的最优解。

Matlab工具箱解LMI 线性矩阵不等式详解

Matlab工具箱解LMI 线性矩阵不等式详解
• 第一个参数是所在不等式名,第二个参数是返回的可行解 (包含很多变量),第三个参数是指定变量。
• mincx求解器
• 第一步:建立矩阵不等式,变量命名为X,不 等式组命名为LMIs。
• 第二步:将目标函数Trace(X)写成cTX形式。用 函数mat2dec建立c。
• Mat2dec的调用格式:定义与X同阶的矩阵W, mat2dec(LMIs, W)返回的是W与X对应元素乘 积的和。(延申,257页,defcx等)
提取结果和验证结果:evallmi和 showlmi
• 用法: • EVALSYS = evallmi(LMISYS,DECVARS):计算出矩阵
不等式中所有决策变量项的值(矩阵形式?); • [LHS,RHS]=showlmi(LMISYS,N):给出第N个线性矩
阵不等式的左边和右边的矩阵值。
• lmiterm([-1 1 1 0],0); • lmiterm([-1 2 1 0],B'*P1); • lmiterm([-1 2 2 0],P3*B+B'*P2);
• lmis=getlmis;
• 四、观察所建立的矩阵不等式的信息
• 使用函数lmiinfo(lmisys),lmibr(lmisys), matnbr(lmisys)可以提取所建立的不等式 lmisys的信息。
其它命令
• 1、用于求个数的命令: • lminbr(lmisys):给出系统中线性矩阵不等式的个数;
matnbr(lmisys):给出系统中矩阵变量的个数; decnbr(lmisys):给出系统中决策变量的个数。 • 2、用于查看相关信息的命令: • lmiinfo(LMISYS):给出线性矩阵不等式系统的信息; DECX = decinfo(LMISYS,XID) :给出决策变量和矩阵变 量之间关系的一些详细信息。

LMI(线性矩阵不等式)工具箱介绍学习

LMI(线性矩阵不等式)工具箱介绍学习

LMI:Linear Matrix Inequality,就是线性矩阵不等式。

在Matlab当中,我们可以采用图形界面的lmiedit命令,来调用GUI接口,但是我认为采用程序的方式更方便(也因为我不懂这个lmiedit的GUI)。

对于LMI Lab,其中有三种求解器(solver): feasp,mincx和gevp。

每个求解器针对不同的问题:feasp:解决可行性问题(feasibility problem),例如:A(x)<B(x)。

mincx:在线性矩阵不等式的限制下解决最小化问题(Minimization of a linear objective under LMI constraints),例如最小化c'x,在限制条件A(x) < B(x)下。

gevp:解决广义特征值最小化问题。

例如:最小化lambda,在0<B(x),A(x)<lamba*B(x)限制条件下。

要解决一个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)<B(x),那么X就叫做矩阵变量。

matlab lmi工具箱使用实例

matlab lmi工具箱使用实例

MATLAB(Matrix Laboratory)是一款广泛应用于科学计算和工程领域的专业软件,其功能强大、灵活性高,并且具有丰富的工具箱支持。

LMI(Linear Matrix Inequality)工具箱是MATLAB中的一种工具箱,用于解决线性矩阵不等式相关的问题。

本文将介绍LMI工具箱的基本使用方法,并结合具体实例进行详细讲解。

一、LMI工具箱的安装1.确保已经安装了MATLAB软件,并且软件版本是R2015b及以上版本。

只有在这些版本中,LMI工具箱才会被自动安装。

2.在MATLAB的命令行中输入“ver”,可以查看当前安装的工具箱列表,确认LMI工具箱是否已经成功安装。

二、LMI工具箱的基本功能1. LMI工具箱主要用于解决线性矩阵不等式问题,例如矩阵的稳定性分析、最优控制问题等。

2. LMI工具箱提供了一系列的函数和工具,能够方便地构建和求解线性矩阵不等式问题,同时也包括了一些经典的稳定性分析方法和控制器设计方法。

三、LMI工具箱的基本使用方法1. 定义变量:在使用LMI工具箱时,首先需要定义相关的变量。

可以使用“sdpvar”函数来定义实数变量,使用“sdpvar”函数和“size”函数可以定义矩阵变量。

2. 构建约束:在定义变量之后,需要构建线性矩阵不等式的约束条件。

可以使用“sdpvar”变量的线性组合来构建约束条件,使用“>=”来表示大于等于关系。

3. 求解问题:构建好约束条件之后,即可使用“optimize”函数来求解线性矩阵不等式问题。

在求解问题时,可以指定优化的目标函数和一些额外的约束条件。

四、LMI工具箱的实例应用下面我们通过一个具体的实例来演示LMI工具箱的使用方法。

假设有一个线性时不变系统,其状态方程可以表示为:$\dot{x} = Ax + Bu$其中,A和B分别为系统的状态矩阵和输入矩阵。

我们希望设计一个状态反馈控制器K,使得系统在闭环下能够保持稳定。

LMI工具箱介绍

LMI工具箱介绍

L M IL M IL M IL M I0NN x x L L L x L 110)( (1)NL L L ,,,10Nx x ,,1T1],,[N x x x N R11),,(),,(11n n X X R X X L1Lyapunov)(L )(R nX X ,,10XA X A T (2)21X221A22X3221x x x x X X321x x x X100001100001321x x x XA20400043300222321x x x (3) 21Lyapunov23323A n2)1(n n L M ILyapunov23XH0NID B D ICX BXC XA X A N TTTT TNDCBAT XXnnR RNI D B D I CX B XC XA X A X L TT TT ),(X 11),(X L ),(X L),(X L X),(X L BDIXA ,A.2L M IM X X R M NX X L N ),,(),,(1T 1T K KKX X ,,1N M)(L )(R 0XXX1KX X ,,12l m i s y s l m i s y sL M Il m i de m1446B A IC G 1)()(s s (4)/D543211000000000d d d d d d D(5)5D1)(s up 1DDG jX66R DD ST 44R0S XB XB SC C XA XA T T T (6) 0X (7) I S(8)l m i var l m it er m 6~8setlmis([])X=lmivar(1,[6 1]) S=lmivar(1,[2 0;2 1])% 1st LMIlmiterm([1 1 1 X],1,A,’s’) lmiterm([1 1 1 S],C’,C) lmiterm([1 1 2 X],1,B) lmiterm([1 2 2 S],-1,1) % 2nd LMI lmiterm([-2 1 1 X],1,1)% 3rd LMI lmiterm([-3 1 1 S],1,1) lmiterm([3 1 1 0],1) lmisys=getlmisl m i varX l m it er mge tl m i sl m i s ys l m i s y sSs et l m i sget l m i s s e tl m i s ge tl m i ssetlmis([])l m i s osetlmis(lmiso) lmisys=getlmisl m i s y sl m i varl m i varX=lmivar(type,struct)X Xt ype Xs t ruc tX Type =1rD D D 0000021s t ruc tjD 2r in 10),(n m miD 11n i D 0n iD 1niD Type =2s t ruc t = ),(n m Type =3X0nx s t ruc tnx nXs t ruc tnn x j i n x j i n j i j i ),(,),(,0),(,0),(X X X 221X X3X1X 332X 42 2213I X 0000055122I 22l m i varsetlmis([])X1=lmivar(1,[3 1]) X2=lmivar(2,[2 4]) X3=lmivar(1,[5 1;1 0;2 0])l m i term1 23X A T S CC T P X QXPQ 3L M Il m it er m0SXB XB S CC XA X A TT Tlmiterm([1 1 1 X],1,A,’s’) lmiterm([1 1 1 S],C’,C) lmiterm([1 1 2 X],1,B) lmiterm([1 2 2 S],-1,1)XB S CC XA XA T T S11mm -m m23[1 1 2 1]1223k k-k 1kX k X T k X X 12S l m it er m234's 'P X Q QP X T1 2l m it er m's 'l m it er mXA X A T3I13I S lmiterm([-3 1 1 S],1,1) lmiterm([3 1 1 0],1)l m i varnew l m il m it er m1setlmis([]) X=lmivar(1,[6 1]) S=lmivar(1,[2 0;2 1])BRL=newlmilmiterm([BRL 1 1 X],1,A,’s’) lmiterm([BRL 1 1 S],C’,C) lmiterm([BRL 1 2 X],1,B) lmiterm([BRL 2 2 S],-1,1) Xpos=newlmi lmiterm([-Xpos 1 1 X],1,1)Slmi=newlmi lmiterm([-Slmi 1 1 S],1,1) lmiterm([Slmi 1 1 0],1) lmisys=getlmisX SX BR L Xpo s Sl m i123-Xpo s2-XSXl m i e di tl m i ed itlmiedit1SRGl m i vars t ruc t2M ATLA B0IXB XBXA X A T T[A’*X+X*A X*B;B’*X -1]<0X Xl m i var /l m it er m v i ew co mm and sde s cr i be…l m i var /l m it er mM ATLA BM ATLA B s avel oadl m i var /l m it er m readde s cr i be t he m a t r i x var i ab l e s de s cr i be t he L M I s …l m i var /l m it er m wr it e crea t eM ATLA B m y l m i M ATLA B m y l m i m y l m il m it er m01l m i ed itl m it er m l m i ed it X (A*X+B)’*C+C’*(A*X+B)(A+B)’*X+X’*(A+B)l m it er m l m it er m1new l m i l m i varA.1l m i ed it1A.1l m i ed itA.3L M I l m ii nfo l m i nbr m a t nbrl m iin fol m ii nfol m ii nfolmiinfo(lmisys)l m i s y s ge tl m i sl m inb r mat nb rmatnbr(lmisys)A.4L M I xkX X ,,1NR x kX X ,,1)()(x B x Afea s px c xT m i ns .t . )()(x B x Am i ncxxm i ns .t . )()(x D x C (9))(x B 0(10) )()(x B x A (11)gevpfea s pfea s p[tmin,xfeas]=feasp(lmisys,options,target)fea s pt m i ns .t . I x B x A t )()( l m i s y st m i nfea s pt m i n <0l m i s y sl m i s y s fea s pxfea sdec2m a tl m i s y s fea s pt arge t t m i n t m i n <t arge tt arge t =0fea s pop ti on s5op ti on s (1)op ti on s (2)100 op ti on s (3)op ti on s (3)=R212R x N i ixfea sR910Rxop ti on s (4)J1%10Jt op ti on s (5)op ti on s (5)=1op ti on s (5)=0op ti on s (i )3IPP01T 1P A PA 1202T 2P A PA 13 03T 3P A P A 14.27.09.04.1,7.23.15.18.0,3121321A A A fea s psetlmis([]) P=lmivar(1,[2 1])lmiterm([1 1 1 P],1,A1,’s’) % LMI #1 lmiterm([2 1 1 P],1,A2,’s’) % LMI #2 lmiterm([3 1 1 P],1,A3,’s’) % LMI #3 lmiterm([-4 1 1 P],1,1) % LMI #4: P lmiterm([4 1 1 0],1)% LMI #4: Ilmis=getlmisfea s p[tmin,xfeas]=feasp(lmis)t m i n l m i sdec2m a t1363.3PP=dec2mat(lmis,xfeas,P)1.1554.1264.1268.270PPF roben i u s10t m i n1[tmin,xfeas]=feasp(lmis,[0,0,10,0,0],-1)t m i n1745.1P6912.9)(m axPm in cxm i ncx[copt,xopt]=mincx(lmisys,c,options,xinit,target)l m i s y s cxdefcxcm i ncxcop txop tdec2m a txop tx c Tm i ncx l m i s y sc x i n it xop tm a t 2decx i n itx i n itkX X ,,1t arge t t arge txxc T op ti on s 5op ti on s (1)cop t210op ti on s (2)100op ti on s (3)fea s pop ti on s (4)5JJx c T op ti on s (5)op ti on s (5)=1op ti on s (5)=0op ti on s (i)m i ncx4)(Trace m i n X Xs .t .0Q X XBB XA XA T T X36121231011,101,121123121Q B AS chur)(Trace m i n X Xs .t .0IXB XB Q XA XA TT )(Trace X Xm i ncxm i ncx1setlmis([])X=lmivar(1,[3 1]) % Xlmiterm([1 1 1 X],1,A,’s’)lmiterm([1 1 1 0],Q)lmiterm([1 2 2 0],-1)lmiterm([1 2 1 X],B’,1)LMIs=getlmisTrace X x c T x X2)(c X I Xc=mat2dec(LMIs,eye(3))defcx3m i ncx xop t cop t=c’*xop toptions=[1e-5,0,0,0,0][copt,xopt]=mincx(LMIs,c,options)1e-5cop tm i ncxSolver for linear objective minimization under LMI constraints Iterations : Best objective value so far12 -8.5114763 -13.063640*** new lower bound: -34.0239784 -15.768450*** new lower bound: -25.0056045 -17.123012*** new lower bound: -21.3067816 -17.882558*** new lower bound: -19.8194717 -18.339853*** new lower bound: -19.189417 8 -18.552558 *** new lower bound: -18.919668 9 -18.646811 *** new lower bound: -18.803708 10 -18.687324 *** new lower bound: -18.753903 11 -18.705715 *** new lower bound: -18.732574 12 -18.712175 *** new lower bound: -18.723491 13 -18.714880 *** new lower bound: -18.719624 14 -18.716094 *** new lower bound: -18.717986 15 -18.716509 *** new lower bound: -18.717297 16 -18.716695 *** new lower bound: -18.716873Result: feasible solution of required accuracy best objective value: -18.716695 guaranteed relative accuracy: 9.50e-006 f-radius saturation: 0.000% of R = 1.00e+009x c T x4m i ncxxop tXopt=dec2mat(LMIs,xopt,X)0771.62201.22046.22201.22855.65.88952046.28895.56.3542op tX gev pgevp[lopt,xopt]=gevp(lmisys,nlfc,options,linit,xinit,target)gevpl op tx xop t dec2m a tl m i s y s 16~88n l fcli n it =),(00x 0x i n it =gevpt arge tx ),(00x ),(00x ),(x t arge top ti on s5op ti on s (1)l op t210op ti on s (2)100op ti on s (3)fea s pop ti on s (4)JJ5op ti on s (5)op ti on s (5)=1op ti on s (5)=0op ti on s (i )gevp)()(x B x A)()(x B x A)(x B 0)(x B 00000)(,)()(11x B x B x BgevpY0000)(),(,)(1x B x B Y Y x A0)(),()(x B x B x Agevp53),3,2,1(),()(itt i x Ax3Lyapunov3)3,2,1(,i i A Px xx T)(VtVd)(d xm i ns.t. P IPP AP A1T1PP AP A2T2PP AP A3T3gevpsetlmis([]);P=lmivar(1,[2 1])lmiterm([1 1 1 0],1) % P>I: Ilmiterm([-1 1 1 P],1,1) % P>I: Plmiterm([2 1 1 P],1,A1,’s’) % LFC #1 (lhs)lmiterm([-2 1 1 P],1,1) % LFC #1 (rhs)lmiterm([3 1 1 P],1,A2,’s’) % LFC #2 (lhs)lmiterm([-3 1 1 P],1,1) % LFC #2 (rhs)lmiterm([4 1 1 P],1,A3,’s’) % LFC #3 (lhs)lmiterm([-4 1 1 P],1,1) % LFC #3 (rhs)lmis=getlmisgevp[alpha,popt]=gevp(lmis,3)a l pha =-0.1220.12264.1835.835.858.5Px m a t 2dec dec2m a tX1X2X3m a t 2dec321X X X xdec=mat2dec(lmisys,X1,X2,X3)l m i s y sl m i s y sm i ncx gevpm a t 2decx i n it321X X X xdecdec2m a tk2X2=dec2mat(lmisys,xdec,2)dec2m a t2l m i varm a t nbrdecnbr dec i nfoA.5L M I eva ll m is how l m i4m i ncxxop tevlmi=evallmi(LMIs,xopt) [lhs,rhs]=showlmi(evlmi,1)xop t1eig(lhs-rhs)ans=-2.0387e-04-3.9333e-05-1.8917e-07-4.6680e+01l h s-rh s xop t1A.6L M I de ll m i de l m var s e t m varDe ll m ide ll m i1l m i s y s Xnewsys=dellmi(lmisys,2)2new s y s12I S32new l m i1BR L Xpo s Sl m i Sl m inewsys=dellmi(lmisys,Xpos)2I Sd e l mvarde l m var0I B W B W XA X A T T TT X X44R42R Wsetlmis([]) X=lmivar(1,[4 1]) % X W=lmivar(2,[2 4]) % Slmiterm([1 1 1 X],1,A,’s’) lmiterm([1 1 1 W],B,1,’s’) lmiterm([1 1 1 0],1) lmisys=getlmisWnewsys=delmvar(lmisys,W)new s y sLyapunov0I XA X A Ts e t m vars etmvars e t m var11G1G D DD ST IS I S2Snewsys=setmvar(lmisys,S,2)2S32S I 2new s y s0IXB XB CC XA XA 22TT T0X I I 2newsys=dellmi(newsys,3) newsys =dellmi(newsys,Slmi) Sl m i new l m i 3 A.7l m i var 123 0n x n x n X X X X n X p p n n x x ,,1p n n x x ,,1X l m i var[X,n,sX]=lmivar(type,struct) n s X X nx x ,,1l m i var 621X X X00 X1X 2X 3223X 1 1X 2Xsetlmis([])[X1,n,sX1]=lmivar(2,[2 3]) [X2,n,sX2]=lmivar(2,[3 2])s X1s X2 1X 2X>>sX1sX1=1 2 3 4 5 6>>sX2sX2= 7 89 10 11 12 s X2(1, 1)=7(1, 1)7 2X 2Type 3X 1X 2X [X,n,sX]=lmivar(3,[sX1,zeros(2);zeros(3),sX2]) X>>sXsX= 1 2 3 0 0 4 5 6 0 0 0 0 0 7 8 0 0 0 9 10 0 0 0 11 12 733X 33Toep li z123212321y y y y y y y y y Y Y 33Y X Y 321n n n n XXsetlmis([]) [X,n]=lmivar(1,[3 1]) [X, n]2n =6Y Y=lmivar(3,n+[1 2 3;2 1 2;3 2 1])Y=lmivar(3,toeplitz(n+[1 2 3])) t oep lit zM ATLA B dec i nfo X Ylmis=getlmis decinfo(lmis,X) ans= 1 2 4 2 3 5 4 5 6decinfo(lmis,Y)ans= 7 8 9 8 7 8 9 8 78Y X Z00,00,00t x t z y x Z Y X tz y x X Y1 setlmis([])[X,n,sX]=lmivar(1,[1 0;1 0]) [Y,n,sY]=lmivar(1,[1 0;1 0])l m i var 3X Y),,,(4321x x x x ),,,(t z y x sX=1 0 0 2sY=3 0 04 l m i var 3Z[Z,n,sZ]=lmivar(3,[0 -sX(1,1);-sY(2,2) 0]) s X(1, 1)s Y(2, 2) 1x 4x 000041t x x x ZHer m iti an m a t r i x)(x L 0)(x L 0))(R e())(I m ())(I m ())(R e(x L x L x L x L X21X X X j 1X 2X A21A A A j 1A 2A 21X X 1221X X X X X21X X j 1221A A A A 21A A A j I X X X X M M H H , 122112211221T 1221X X X X M M M M X X X X M M M M I X X X X 1221 21M M M j 21X X X j i i X M 55C M M1=real(M), M2=imag(M) bigM=[M1 M2;-M2 M1] setlmis([])% declare bigX=[X1 X2;-X2 X1] with X1=X1’ and X2+X2’=0:[X1,n1,sX1]=lmivar(1,[5 1])[X2,n2,sX2]=lmivar(3,skewdec(5,n1)) bigX=lmivar(3,[sX1 sX2;-sX2 sX1])% describe the real counterpart of the complex LMI system: lmiterm([1 1 1 0],1) lmiterm([-1 1 1 bigX],1,1)lmiterm([2 1 1 bigX],bigM’,bigM)lmiterm([-2 1 1 bigX],1,1)lmis=getlmis b i gX =1221X X X X 1s X1n1 1X 1X 2s kewdec s kewdec(5,n1)n1+1, n1+2, ... 2X 5533s X1, s X2b i gX 1X 2Xm in cxx c Tm i ncxx c T x )(Trace X XX uu T u defcx c0T 0)(Trace Px x X X P l m i s y s 0x P X x 0 x0=[1 1] setlmis([])X=lmivar(1,[3 0]) P=lmivar(1,[2 1]) : :lmisys=getlmis 0T 0T )(Trace Px x X x c c n=decnbr(lmisys) c=zeros(n,1) for j=1:n,[Xj,Pj]=defcx(lmisys,j,X,P) c(j)=trace(Xj)+x0’*Pj*x0end 12for c 11j x x X P defcx defcx l m i s y s j X P X j Pj 2X =X j P =Pj j cc=3 1 2 1n=decnbr(LMI system) c=zeros(n,1) for j=1:n, [matrix values]=defcx(LMI system,j, matrix identifiers) c(j)=objective(matrix values) end A.8 系统模型描述)()()()()()(t t t t t t D u C x y B u A x x E (15) E D C B A ,,,,E 15)(),(),(t t t y u x E 15E 15 x y u kx x f x m 15 )(01)()(10)(10)(001t t y t u t f k t mT ])()([)(t x t x t 15M ATLA B S Y S TE MInf 00)(0n j D CB I E An L M I lti s y s lti ss S Y S TE M S Y S TE Msys=ltisys(-1,1,1,0)x y u x x , SYSTEM SYSTEM sys DC B A ,,, [A,B,C,D]=ltiss(sys) ltitf SYSTEM )()()(s d s n s G sys=ltisys(‘tf’,n,d) n d )(s G )(s n )(s d sinfo(sys)SYSTEM sys spol(sys)ssub SYSTEM G 123 G ssub(G,1,2:3) G G SYSTEM sinv )(s G )()(1s s G H )(s G D sbalancC B A ,,L M I SYSTEM SYSTEMg1g2SYSTEM sadd )(1s G )(2s G)(1s G )(2s G SYSTEM smult(g1,g2)SYSTEM 10 )()(12s s G G sdiag(g1,g2)SYSTEMS )}(),({d i ag )(21s s s G G G G 1(s )G 2(s )y r + 1 sloop r y SYSTEM slft SYSTEM 21w w 21z z G 1(s )G 2(s )w 1u z 1y w 2z 2 232,R R y u slft(g1,g2,2,3) H。

LMI(线性矩阵不等式)工具箱介绍学习

LMI(线性矩阵不等式)工具箱介绍学习

LMI:Linear Matrix Inequality,就是线性矩阵不等式。

在Matlab当中,我们可以采用图形界面的lmiedit命令,来调用GUI接口,但是我认为采用程序的方式更方便(也因为我不懂这个lmiedit的GUI)。

对于LMI Lab,其中有三种求解器(solver): feasp,mincx和gevp。

每个求解器针对不同的问题:feasp:解决可行性问题(feasibility problem),例如:A(x)<B(x)。

mincx:在线性矩阵不等式的限制下解决最小化问题(Minimization of a linear objective under LMI constraints),例如最小化c'x,在限制条件A(x) < B(x)下。

gevp:解决广义特征值最小化问题。

例如:最小化lambda,在0<B(x),A(x)<lamba*B(x)限制条件下。

要解决一个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)<B(x),那么X就叫做矩阵变量。

LMI工具箱介绍——俞立

LMI工具箱介绍——俞立

LMI 工具箱介绍线性矩阵不等式(LMI )工具箱是求解一般线性矩阵不等式问题的一个高性能软件包。

由于其面向结构的线性矩阵不等式表示方式,使得各种线性矩阵不等式能够以自然块矩阵的形式加以描述。

一个线性矩阵不等式问题一旦确定,就可以通过调用适当的线性矩阵不等式求解器来对这个问题进行数值求解。

LMI 工具箱提供了确定、处理和数值求解线性矩阵不等式的一些工具,它们主要用于:z 以自然块矩阵形式来直接描述线性矩阵不等式; z 获取关于现有的线性矩阵不等式系统的信息; z 修改现有的线性矩阵不等式系统; z 求解三个一般的线性矩阵不等式问题; z 验证结果。

本附录将详细介绍LMI 工具箱提供的用于解决以上各个问题的相关函数和命令。

A.1 线性矩阵不等式及相关术语一个线性矩阵不等式就是具有以下一般形式的一个矩阵不等式:0<+++=N N x x L L L x L "110)( (1)其中:是给定的对称常数矩阵,是未知变量,称为决策变量,N L L L ,,,10"N x x ,,1"∈=T 1],,[N x x "x N R 是由决策变量构成的向量,称为决策向量。

尽管表达式(1)是线性矩阵不等式的一个一般表示式,但在大多数实际应用中,线性矩阵不等式常常不是以一般表示式(1)的形式出现,而是具有以下形式:),,(),,(11n n X X R X X L ""<其中的和是矩阵变量的仿射函数,通过适当的代数运算,上式可以写成线性矩阵不等式的一般表示式(1)的形式。

例如,在系统稳定性问题中经常遇到的Lyapunov 矩阵不等式)(⋅L )(⋅R n X X ,,1"0<+XA X A T (2)也是一个线性矩阵不等式,其中的是一个矩阵变量。

我们以一个二阶矩阵为例,将矩阵不等式(2)写成一般表示式(1)的形式。

针对二阶矩阵不X ⎥⎦⎤⎢⎣⎡−−=2021A等式(2),对应的矩阵变量是一个二阶的对称矩阵,,不等式(2)中的决策变量是矩阵中的独立元。

LMI线性矩阵不等式工具箱

LMI线性矩阵不等式工具箱

LMI:Linear Matrix Inequality,就是线性矩阵不等式。

在Matlab当中,我们可以采用图形界面的lmiedit命令,来调用GUI接口,但是我认为采用程序的方式更方便(也因为我不懂这个lmiedit的GUI)。

对于LMI Lab,其中有三种求解器(solver):feasp,mincx和gevp。

每个求解器针对不同的问题:feasp:解决可行性问题(feasibility problem),例如:A(x)<B(x)。

mincx:在线性矩阵不等式的限制下解决最小化问题(Minimization of a linear objective under LMI constraints),例如最小化c'x,在限制条件A(x) < B(x)下。

gevp:解决广义特征值最小化问题。

例如:最小化lambda,在0<B(x),A(x)<lamba*B(x)限制条件下。

要解决一个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)<B(x),那么X就叫做矩阵变量。

MATLAB常用工具箱及常用函数

MATLAB常用工具箱及常用函数

常用工具箱MATLAB包括拥有数百个内部函数的主包和三十几种工具包。

工具包又可以分为功能性工具包和学科工具包。

功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。

学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。

开放性使MATLAB广受用户欢迎。

除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

Matlab Main Toolbox——matlab主工具箱Control System Toolbox——控制系统工具箱Communication Toolbox——通讯工具箱Financial Toolbox——财政金融工具箱System Identification Toolbox——系统辨识工具箱FuzzyLogic Toolbox——模糊逻辑工具箱Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱Image Processing Toolbox——图象处理工具箱computer vision systemtoolbox----计算机视觉工具箱LMI Control Toolbox——线性矩阵不等式工具箱Model predictive Control Toolbox——模型预测控制工具箱μ-Analysis and Synthesis Toolbox——μ分析工具箱Neural Network Toolbox——神经网络工具箱Optimization Toolbox——优化工具箱Partial Differential Toolbox——偏微分方程工具箱Robust Control Toolbox——鲁棒控制工具箱Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱Statistics Toolbox——统计工具箱Symbolic Math Toolbox——符号数学工具箱Simulink Toolbox——动态仿真工具箱Wavele Toolbox——小波工具箱DSP systemtoolbox-----DSP处理工具箱常用函数Matlab内部常数[2]eps:浮点相对精度exp:自然对数的底数ei 或j:基本虚数单位inf 或Inf:无限大, 例如1/0nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...)realmax:系统所能表示的最大数值realmin:系统所能表示的最小数值nargin: 函数的输入引数个数nargout: 函数的输出引数个数lasterr:存放最新的错误信息lastwarn:存放最新的警告信息MATLAB常用基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):下取整,即舍去正小数至最近整数ceil(x):上取整,即加入正小数至最近整数rat(x):将实数x化为多项分数展开rats(x):将实数x化为分数表示sign(x):符号函数(Signum function)。

matlab工具箱介绍

matlab工具箱介绍

matlab工具箱介绍MATLAB有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱.功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。

而领域型工具箱是专业性很强的。

如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。

下面,将MATLAB工具箱内所包含的主要内容做简要介绍:1)通讯工具箱(Communication Toolbox)。

令提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析——信号编码——调制解调——滤波器和均衡器设计——通道模型——同步可由结构图直接生成可应用的C语言源代码。

2)控制系统工具箱(Control System Toolbox)。

鲁连续系统设计和离散系统设计* 状态空间和传递函数* 模型转换* 频域响应:Bode图、Nyquist图、Nichols图* 时域响应:冲击响应、阶跃响应、斜波响应等* 根轨迹、极点配置、LQG3)财政金融工具箱(FinancialTooLbox)。

* 成本、利润分析,市场灵敏度分析* 业务量分析及优化* 偏差分析* 资金流量估算* 财务报表4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox* 辨识具有未知延迟的连续和离散系统* 计算幅值/相位、零点/极点的置信区间* 设计周期激励信号、最小峰值、最优能量诺等5)模糊逻辑工具箱(Fuzzy Logic Toolbox)。

* 友好的交互设计界面* 自适应神经—模糊学习、聚类以及Sugeno推理* 支持SIMULINK动态仿真* 可生成C语言源代码用于实时应用(6)高阶谱分析工具箱(Higher—Order SpectralAnalysis Toolbox* 高阶谱估计* 信号中非线性特征的检测和刻画* 延时估计* 幅值和相位重构* 阵列信号处理* 谐波重构(7)图像处理工具箱(Image Processing Toolbox)。

线性矩阵不等式的LMI工具箱求解

线性矩阵不等式的LMI工具箱求解

一、线性矩阵不等式的LMI 工具箱求解 (一)可行性问题(LMIP )1、可行性问题描述系统状态方程:[]11223301000210-414x x x x u x x ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=-+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦&&& 在判断系统的稳定性时,根据线性定常系统的李雅普诺夫稳定性判据,需要判断是否存在实对称矩阵P ,使得:T A P+PA=Q -成立,其中Q 为正定矩阵。

那么判断系统稳定性的问题,可以转化为下面不等式是否存在解的问题:T A P+PA<0这种不等式解是否存在的问题可以用MATLAB 的LMI 工具箱进行判断。

2、仿真所需要用到的命令setlmis([]) :开始一个线性矩阵不等式系统的描述; X= lmivar(TYPE,STRUCT):定义一个新的矩阵变量;lmiterm(TERMID,A,B,FLAG):确定线性矩阵不等式的一个项的内容; LMISYS = getlmis :结束一个线性矩阵不等式系统的描述,返回这个现行矩阵不等式系统的内部表示向量LMISYS ;X = dec2mat(LMISYS,DECVARS,XID):由给定的决策变量得到相应的矩阵变量值。

[tmin,xfeas]=feasp(lmisys):可行性问题的求解器函数,tmin大于0时,表明LMI系统不可行,P阵无解,系统不稳定,tmin小于0时,便可以用dec2mat 函数求解出P矩阵。

3、仿真结果可以看到,仿真结果tmin<0,因此P阵存在,系统是稳定的。

进一步用dec2mat 函数求解出P 矩阵。

得:(二)特征值问题(EVP)1、EVP 问题描述该问题对应矩阵工具箱中的LMI 约束的线性目标函数最小化优化问题。

一般采用mincx 求解器求解。

考虑这样一个优化问题:min ().. 0TTTrace X s t A X XA XBB X Q +++<其中:5342154067; 3; 562.78314228A B Q -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪===-- ⎪ ⎪ ⎪ ⎪ ⎪ ⎪---⎝⎭⎝⎭⎝⎭2、仿真用到的命令DECVARS = mat2dec(LMISYS,X1,X2,X3,...) :由给定的矩阵变量得到相应的决策变量值;[copt,xopt]=mincx(LMIs,c,options):用于给定的特征值问题求解,copt 返回全局最优的决策变量,xopt 返回决策变量的最优解。

MATLAB常用工具箱

MATLAB常用工具箱

MATLAB常用工具箱常用工具箱MATLAB包括拥有数百个内部函数的主包和三十几种工具包。

工具包又可以分为功能性工具包和学科工具包。

功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。

学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。

开放性使MATLAB广受用户欢迎。

除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

Matlab Main Toolbox——matlab主工具箱Control System Toolbox——控制系统工具箱Communication Toolbox——通讯工具箱Financial Toolbox——财政金融工具箱System Identification Toolbox——系统辨识工具箱Fuzzy Logic Toolbox——模糊逻辑工具箱Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱Image Processing Toolbox——图象处理工具箱LMI Control Toolbox——线性矩阵不等式工具箱Model predictive Control Toolbox——模型预测控制工具箱μ-Analysis and Synthesis Toolbox——μ分析工具箱Neural Network Toolbox——神经网络工具箱Optimization Toolbox——优化工具箱Partial Differential Toolbox——偏微分方程工具箱Robust Control Toolbox——鲁棒控制工具箱Signal Processing Toolbox——信号处理工具箱Spline Toolbox——样条工具箱Statistics Toolbox——统计工具箱Symbolic Math Toolbox——符号数学工具箱Simulink Toolbox——动态仿真工具箱Wavele Toolbox——小波工具箱常用函数Matlab内部常数[3]eps:浮点相对精度exp:自然对数的底数ei或j:基本虚数单位inf或Inf:无限大,例如1/0nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...)realmax:系统所能表示的最大数值realmin:系统所能表示的最小数值nargin:函数的输入引数个数nargout:函数的输出引数个数lasterr:存放最新的错误信息lastwarn:存放最新的警告信息MATLAB常用基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):下取整,即舍去正小数至最近整数ceil(x):上取整,即加入正小数至最近整数rat(x):将实数x化为多项分数展开rats(x):将实数x化为分数表示sign(x):符号函数(Signum function)。

线性矩阵不等式(LMI)的 MATLAB求解

线性矩阵不等式(LMI)的 MATLAB求解
打造最优秀、专业和权威的 Matlab 技术交流平台!
线性矩阵不等式(LMI)的 MATLAB 求解©
作者:dynamic
Sky 时间:2008.12.10
版权:All Rights Reserved By
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
b 一、LMI 工具箱概述 ..................................................................................................................................................6 a 1.系统描述 ...........................................................................................................................................................6
对lmi变量的操作dec2matmat2dec将求解器的输出转化为矩阵变量值通过给定的矩阵变量值返回决策向量3lmifeaspmincxdefcxgevpevallmishowlmidellmidelmvarsetmvarma4lmi结果验证与修改5lmi系统信息的提取decinfodecnbrlmiinfolminbrmntnbr以决策变量的形式表示每个输入的矩阵变量得到决策变量的个数查询现存lmi系统的信息得到问题中lmi的个数得到问题中矩阵变量的个数tlab验证lmi的可行性lmi限制下线性目标的极小值在mincx命令中第一ctx目标lmi限制下的广义特征值最小化由决策变量的给定值来验证所有的变量项返回一个已经评估的lmi的左右边从系统中删除一个lmi从问题中移除一个矩阵变量将一个矩阵变量赋予指定值ky三lmi工具箱函数详解1

线性矩阵不等式及其在控制工程中的应用(1)

线性矩阵不等式及其在控制工程中的应用(1)

1 引 言
在过去的 10 余年内 ,由于线性矩阵不等式 (L M I) 的优良性质以及解法的突破 ,使其在控制 系统分析和设计方面得到了广泛的重视和应用 。 在此之前 ,绝大多数的控制问题都是通过 Riccati 方程或其不等式的方法来解决的[1~3 ] 。但是解 Riccati 方程或其不等式时 ,有大量的参数和正定 对称矩阵需要预先调整 。有时 ,即使问题本身是 有解的 ,也找不出问题的解 。这给实际应用问题 的解决带来极大不便 ,而线性矩阵不等式方法可 以很好地弥补 Riccati 方程 方 法 的 上 述 不 足[4 ] 。 在解线性矩阵不等式时 ,不需要预先调整任何参 数和正定对称矩阵 。本文对 L M I 在控制工程中 的发展和现状进行简要的回顾 ,着重讨论 L M I 在 不确定控制系统中的应用研究成果以及展望 。
表 1 基于 LMI 方法的各种控制与滤波问题
序号
系统描述
采用方法
文献
1
不确定线性系统和非线性系统的状 基于 L M I 转化为凸优化问题求得鲁棒界 ;对于非
[14 ]
态反馈以及输出反馈表述
线性如 L urie 系统则通过 L yapunov 函数方法得到
[15 ]
系统稳定的 L M I 判定准则
摘 要 : 介绍了线性矩阵不等式的基本概念和用于求解线性矩阵不等式的软件工具 箱 Matlablmi 的 3 个求解器 ,对线性矩阵不等式在控制系统中的应用作了详细的综述 。分 析了其在当前的两个研究热点 ,即不确定系统的鲁棒控制与鲁棒滤波中的运用 。同时探 讨了时滞系统与非线性系统的研究现状 。然后列举了一些具有代表性的采用 L M I 求解控 制问题的最新结果 。为了说明线性矩阵不等式的求解过程 ,给出了一个保性能控制的例 子 ,在 Matlab 513 编辑器中运行程序 ,得到的结果是最优性能指标值 , copt = J 3 101677 7 。 关 键 词 : 线性矩阵不等式 ;时滞 ;凸优化 ;L M I 工具箱 中图分类号 : TP 13 文献标识码 : A

LMI工具箱介绍俞立

LMI工具箱介绍俞立

S=lmivar(1, [2 0;2 1])
%1# LMI
%3# LMI
lmiterm([1 1 1 X], 1, A, 's' ) lmiterm([-3 1 1 S], 1, 1)
lmiterm([1 1 1 S], C', C) lmiterm([3 1 1 0], 1)
lmiterm([1 1 2 X], 1, B)
min
Trace(X)
X
ATX XAQ XB
s.t.
BTX
I
0
新建mincxexample.m文件:
function mainfunction
clc;
% 清屏
A=[-1 -2 1;3 2 1;1 -2 -1];
% 输入已知矩阵
B=[1;0;1];
Q=[1 -1 0;-1 -3 -12;0 -12 -36];
例:考虑优化问题 minX Trace (X) s.t. AT X + XA + XBBTX + Q < 0,
其中X是一个对称的矩阵变量,
1 2 1 1 1 1 0 A 3 2 1 ,B 0 ,Q 1 3 12 .
1 2 1 1 0 12 36
解: 根据Schur补性质,上述优化问题等价于
③描述该项是变量还是常数. ④变量的左系数、右系数. ⑤可选项, 只能是's' , 描述转置.
使用LMI工具箱描述
AT
X
XA BT X
CTD∈R 4×4,
XB
S
0
X 0
SI
d1 D
d1
d2 d4
d12
d d
3 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LMI:Linear Matrix Inequality,就是线性矩阵不等式。

在Matlab当中,我们可以采用图形界面的lmiedit命令,来调用GUI接口,但是我认为采用程序的方式更方便(也因为我不懂这个lmiedit的GUI)。

对于LMI Lab,其中有三种求解器(solver):feasp,mincx和gevp。

每个求解器针对不同的问题:feasp:解决可行性问题(feasibility problem),例如:A(x)<B(x)。

mincx:在线性矩阵不等式的限制下解决最小化问题(Minimization of a linear objective under LMI constraints),例如最小化c'x,在限制条件A(x) < B(x)下。

gevp:解决广义特征值最小化问题。

例如:最小化lambda,在0<B(x),A(x)<lamba*B(x)限制条件下。

要解决一个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)<B(x),那么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>算例为:500)this.width=500;" border=0>我们要实现的就利用LMI进行求解,验证论文结果。

首先我们要用setlmis([])命令初始化一个LMI系统。

接下来,我们就要设定矩阵变量了。

采用函数为lmivar语法:X = lmivar(type,struct)type=1: 定义块对角的对称矩阵。

每一个对角块或者是全矩阵<任意对称矩阵>,标量<单位矩阵的乘积>,或者是零阵。

如果X有R个对角块,那么后面这个struct就应该是一个Rx2阶的的矩阵,在此矩阵中,struct(r,1)表示第r个块的大小,struct(r,2) 表示第r个块的类型<1--全矩阵,0--标量,-1--零阵)。

比如一个矩阵有两个对角块,其中一个是2x2的全对称矩阵,第二个是1x1的一个标量,那么该矩阵变量应该表示为X = lmivar(1, [2 1; 1 0]) 。

type=2: mxn阶的矩阵,只需要写作struct = [m,n]即可。

type=3: 其它类型。

针对类型3,X的每一个条目(each entry of X)被定义为0或者是+(-)xn,此处xn代表了第n个决策变量。

那么针对我们的例子,我们如此定义变量:% Q is a symmetric matrix, has a block size of 2 and this block is symmetricQ = lmivar(1, [2 1]);% S1 a symmeric matrix, size 2S1 = lmivar(1, [2 1]);% S2 is 1 by 1 matrixS2 = lmivar(1, [1 0]);% Type of 2, size 1 by 2M = lmivar(2, [1 2]);定义完成变量之后,我们就该用lmiterm来描述LMI中的每一个项了。

Matlab的官方文档提示我们,如果要描述一个LMI只需要描述上三角或者下三角元素就可以了,否则会描述成另一个LMI。

When describing an LMI with several blocks, remember to specify only the terms in the blocks on or below the diagonal (or equivalently, only the terms in blocks on or above the diagonal).语法为:lmiterm(termID,A,B,flag)termID是一个四维整数向量,来表示该项的位置和包含了哪些矩阵变量。

termID(1)可以为+p或者-p,+p代表了这个项位于第p个线性矩阵不等式的左边,-p代表了这个项位于第p个线性矩阵不等式的右边。

注意:按照惯例来讲,左边通常指较小的那边。

termID(2:3):1、对于外部变量来说,取值为[0,0];2、对于左边或者右边的内部变量来说,如果该项在(i,j)位置,取值[i,j]termID(4):1、对于外部变量,取值为02、对于A*X*B,取值X3、对于A*X'*B,取值-Xflag(可选,值为s):因为:(A*X*B) + (A*X*B)T = A*X*B + B'*X'*A',所以采用s来进行简写。

比如:针对A*X + X'*A'我们采用笨方法:lmiterm([1 1 1 X],A,1)lmiterm([1 1 1 -X],1,A')那么简写就是lmiterm([1 1 1 X],A,1,'s')接下来我们就看该论文中的算例吧:(1,1)位置是-Q+Bd*S2*Bd'+Ad*S1*Ad';我们应该表示为:% 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');其它位置仿照写就行了,不懂了多看帮助文档。

把每一个项都定义以后,要记得lmis = getlmis;[tmin, feas] = feasp(lmis)getlmis:是在完成定义变量和项之后,LMI系统的内部表示就可以通过此命令获得(After completing the description of a given LMI system with lmivar and lmiterm, its internal representation lmisys is obtained with the command)。

feasp是调用feasp求解器,看有没有可行解。

feas就是可行解。

下面我把代码贴上去,那些常数矩阵都在此源程序中定义了。

A = [2 1; 0 1];Ad = [0.2 0.1; 0 0.1];B1 = [0.1 0.1]';B2 = [1 1]';Bd = [0.1 0.1]';C = [1, 1];Cd = [0.1, 0.1];D11 = 0.1;Dd = 0.1;gammar = 1;% Initial a LMI systemsetlmis([]);% Define Variables% Q is a symmetric matrix, has a block size of 2 and this block is symmetric Q = lmivar(1, [2 1]);% S1 a symmeric matrix, size 2S1 = lmivar(1, [2 1]);% S2 is 1 by 1 matrixS2 = lmivar(1, [1 0]);% Type of 2, size 1 by 2M = lmivar(2, [1 2]);% Q, S1, S2 > 0lmiterm([-2 1 1 Q], 1, 1);lmiterm([-3 1 1 S1], 1, 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);lmiterm([1 1 4 S2], Bd, Dd');lmiterm([1 1 4 S1], Ad, Cd');% pos(2, 2)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], -(gammar^2));% 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把决策变量转化为矩阵形式。

相关文档
最新文档