Matlab中的LMI工具箱的研究与使用(3)

1970-01-01 08:00

setlmis lmivar lmiterm newlmi getlmis lmiedit 初始化LMI系统 定义矩阵变量 确定LMI系统中每一项的内容 多LMI系统中添加新的LMI 获得LMI系统的内部描述 通过GUI界面确定LMI系统 将求解器的输出转化为矩阵变量值 通过给定的矩阵变量值返回决策向量 验证LMI的可行性 LMI限制下线性目标的极小值 在mincx命令中第一Cx目标 LMI限制下的广义特征值最小化 由决策变量的给定值来验证所有的变量项 返回一个已经评估的LMI的左右边 从系统中删除一个LMI 从问题中移除一个矩阵变量 将一个矩阵变量赋予指定值 以决策变量的形式表示每个输入的矩阵变量 得到决策变量的个数 查询现存LMI系统的信息 得到问题中LMI的个数 得到问题中矩阵变量的个数 T2 对LMI变量的操作 dec2mat mat2dec 3 LMI解算器 feasp mincx defcx gevp 4 LMI结果验证与修改 evallmi showlmi dellmi delmvar setmvar 5 LMI系统信息的提取 decinfo decnbr lmiinfo lminbr mntnbr 3.2 确定LMI系统的函数 (1)setlmis([])或者setlmis(lmi0)

在通过lmivar以及lmiterm描述一个LMI系统之前,利用setlmis初始化其内部表示。为一个已经存在的LMI系统中添加新描述,使用后者,其中lmi0表示已存在的LMI系统,之后的lmivar和lmiterm被用来在lmi0中添加新的变量和项。 (2)[X,n,sX]=lmivar(type,struct)

为LMI问题定义矩阵变量,其中type和struct是描述该矩阵变量的必须参数。type确定变量X的类型,struct描述变量X的内容。

type=1:此时X是具有块对角化对称矩阵。X对角线上的每一个矩阵Di必须是方阵,注意标量也1?1的方阵。此时的矩阵变量X大体结果如下:

?D1??(必须是方阵) X??D2??Di?D3???如果X具有n个对角块,那么struct是一个n?2的矩阵:

m=struct(i,1)表示第i个方阵(即Di)的大小,比如Di是5?5的方阵,那么struct(i,1)=5,n=struct(i,2)表示Di的内容,n=-1表示Di是零矩阵,n=0表示标量,n=1表示满矩阵。 type=2:表示X是一个m?n的长方形矩阵,此时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个决策变量。 type 1 Struct=[m n] m n 第i个矩阵的大小 -1 零矩阵 0 标量 1 满矩阵 说明 X必须是对角化的块对称矩阵,每个块也必须是方阵 9

2 3 [m n] X为 m?n的长方形矩阵,不能包含子块矩阵 (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:3)=[i,j];如果该项在外因子中,那么termID=[0 0]。

termID(4)表示所描述的项是常数项还是变量项。0代表常数项,k代表该项中包含

T第k个矩阵变量Xk,-k代表该项中包含第k个矩阵变量Xk的转置Xk。

termID termID(1) termID(2:3) termID(4) 取值 P -p [0 0] [i j] 0 所描述的项 位于第p个LMI的左边 位于第p个LMI的右边 外因子 在内因子中的位置(i,j) 常数 项中包含第k个矩阵变量Xk ?Xk Xk TXk参数A、B是描述该项包含的数据信息,具体可以看下面的表格: 项中包含第k个矩阵变量的转置所描述项 外因子N 常数项C或者Q*Q’ 变量项A N C/ Q*Q’ A/A B 省略 省略 B/B’ AXB或者AXBT (4)tag=newlmi 在当前多描述的LMI系统中添加一个新的LMI,并返回它的句柄tag。 (5)lmisys=getlmis

在利用lmivar和lmiterm描述给定LMI后,通过getlmis获取当前LMI系统的内部描述,注意这个命令是必须的。 (6)lmiedit

打开LMI的GUI界面,它可以直观的编辑LMI。其实这个界面对与大部分人来说没有太大的意义,由于它只是免去你书写和记忆lmiterm函数中的参数,但是lmivar参数,比如type和struct还是要理解的,当然对初学这可能可以方便些。 3.3 对LMI变量的操作

(1)valX=dec2mat(lmisys,decvars,X)

给定决策变量的值返回相应矩阵变量的值。 (2)decvec=mat2dec(lmisys,X1,X2...)

根据矩阵变量的特殊值来返回决策变量组成的决策向量。给定一个LMI系统lmisys和矩阵变量X1,X2...,得到决策向量decvec。这个函数在初始化LMI求解器mincx和gevp的时候很重要,通过给定一个关于矩阵变量X1,X2...的初始值,mat2vec将会组成相应的关于决策变量xinit的向量。 3.4 LMI求解器命令

(1)[tmin,xfeas]=feasp(lmisys,options,target)

计算以lmisys描述的LMI系统的一个可行解,向量xfeas 是一个guanyu决策变量的特殊值,它满足任意一个LMI。即:给定LMI系统

NTL?x?N?MTR?x?M

xfeas通过求解辅助凸优化问题

10

mint

s.t.NTL?x?N?MTR?x?M?tI ??(10) 其中,(式10)的全局最优解由标量值tmin表示,如果tmin<0,那么系统是严格可行的。如果问题是可行但非严格可行的话,tmin是一个非常小的整数。

options:是一个长度为5的向量,用来描述优化算法中的某些控制参数。 options options(1) options(2)=n options(3)=R 说明 不使用 设置优化算法的过程中允许的最大迭代次数n,默认n=100 设定可行域半径R,表示决策变量被限制在球体options(4)=J options(5) ?xi?1N2i?R2内,默认R?109 加快优化迭代过程,表示在最后的J次迭代中,如果每次迭代后t的减小幅度不超过1%,迭代即终止,默认J=10 0 显示迭代过程,默认0 1 不显示迭代过程 Target:为tmin设定目标值,使得只要满足tmin

(2)[copt,xopt]=mincx(lmisys,c,options,xinit,target)

求解具有LMI约束的线性目标函数的最小化问题,返回目标最小值copt和对应的决策变量的值,即解决下面的凸包问题:

mincTx(x为决策向量) s.t.NTL?x?N?MTR?x?M

lmisys:需要求解的LMI系统。

c:就是目标函数mincTx中的那个c,通常情况题目不会直接给出c而是需要我们间接的求解。控制系统中大部分都是以变量矩阵X的形式给出目标函数,而不是刚才说到的决策向量的形式。此时我们一般需要通过defcx函数来求解。

xinit:决策变量x的初始猜测值,它可以加快问题求解过程,我们可以使用mat2dec函数从矩阵变量的给定值中导出xinit,但是当输入的xinit不是一个可行解时,将被忽略。

target:目标函数的设置目标,只要满足cTx?target,求解过程就终止。 options:5维向量,控制优化算法中的参数 options options(1)=tol options(2)=itermax options(3)=R options(4)=J options(5) 说明 最优解copt的精度tol,默认0.01 允许的最大迭代次数itermax,默认100 设定可行域半径R,默认10 最后J次迭代结果变化幅度在精度范围,将终止迭代过程,默认5 控制是否显示迭代过程,0显示,1不显示,默认0 9(3)[V1,V2...]=defcx(lmisys,n,X1,X2...) 将矩阵变量形式的目标函数转成决策变量形式,从而得到c,也就是说LMI求解器mincx的目标函数必须转换成cTx的形式才可以使用,其中x是由决策变量组成的决策向量。然而在多数控制问题中,目标函数一般以矩阵变量X的形式给出,而不是决策向量x。比如trace(X)或者ATXA等。

lmisys:需要求解的LMI系统。

n:LMI系统中独立变量的个数,可以使用decnlmi函数获取。 Xk:第k个矩阵变量。

Vk:返回的第k个决策变量系数。

(4)[lopt,xopt]=gevp(lmisys,nlfc,options,linit,target)

求解LMI限制下的广义特征矩阵最小化问题:

min? s.t.C?x??D?x?

11

0?B?x? A?x???B?x?

只要上面的三个约束是可行的,gevp就返回全局最小值lopt和相应的决策变量的值xopt。由于大部分参数前面的相似,我们这里只是说明下不同的参数:

nlfc:线性比例约束的个数,即包括?的式子的个数。 linit:?的初值猜测值?0。

xinit:每个决策变量的初始猜测值x0,注意必须是以决策向量的形式给出,长度等于decnbr(lmisys)。

options:与mincx的完全一样,这里不具体介绍了。 3.5 结果验证和修改 3.5.1 结果验证

LMI工具箱提供了两个函数用于分析和验证一个线性矩阵不等式优化问题的结果。对一个给定的决策向量的值,例如由线性矩阵不等式求解器给出的可行或最优解向量,函数evallmi求出线性矩阵不等式系统中所有变量项的值,进而应用showlmi给出特定线性矩阵不等式的左边和右边。 (1)evalsys=evallmi(lmisys,decvars)

对一个给定的决策向量的值decvars,验证LMI求解器的输出,返回给evalsys,之后每个LMI左右两边的矩阵值通过showlmi函数返回。 (2)[lhs,rhs]=showlim(evalsys,n)

对于决策变量的给定值,返回每个LMI不等号的左右两边的值。 evalsys:由evallmi计算返回的参数。 n:第n个LMI。 3.5.2 结果修改

LMI工具箱提供了函数setmvar、dellmi和delmvar,它们可以用来修改一个已经确定的线性矩阵不等式系统。

(1)函数setmvar用于给某个矩阵变量赋值,一旦赋值,该变量就从原来的问题中消失了,包含该变量的所有项都成为常数项。可以通过以下的命令来实现:

newsys=setmvar(lmisys,X,Xval)

将Xval赋值给矩阵变量X,此时所有包含X的项都会变为常数项,当然那个矩阵变量X也就从地球上消失了,返回的新LMI系统是有剩下的矩阵变量和常数项构成。 setvar的作用就是可是冻结默一个矩阵变量,或者根据剩余变量进行优化,可以避免LMI约束的部分或全部重定义。

(2)函数dellmi可以从一个线性矩阵不等式系统中删除一个完整的线性矩阵不等式。可以通过以下的命令来实现:

newsys=dellmi(lmisys,n)

删除lmisys系统中的第n个LMI,返回新的LMI系统给newsys,当然在被删除的LMI中出现的矩阵变量也会被相应的删除。

(3)函数delmvar修改一个线性矩阵不等式系统的方式是删除一个矩阵变量,即在所有包含该变量的变量项中删除该矩阵变量。delmvar提供了这样一种修改功能。可以通过以下的命令来实现:

newsys=delvar(lmisys,X)

将矩阵变量从当前LMI系统中删除,相当于setvar(lmisys,X,0)。 3.6 LMI系统信息提取

线性矩阵不等式系统的完整描述是以一个叫做内部表示的向量储存在机器内的。LMI工具箱提供了三个函数lmiinfo、lminbr和matnbr,它们可以从内部表示向量中提取线性矩阵不等式的相关信息,并以用户可读的方式显示出来。

12

lmiinfo是一种交互式工具,用以反映有关线性矩阵不等式系统的一些信息。这些信息包括线性矩阵不等式的个数、矩阵变量的个数和它们的结构、每一个线性矩阵不等式块中项的内容等。为了调用lmiinfo,输入lmiinfo(lmisys)其中的lmisys是由getlmis产生的线性矩阵不等式系统的内部表示。

minbr和matnbr这两个函数给出了系统中线性矩阵不等式的个数和矩阵变量的个数。例如,为了得到矩阵变量的个数,输入matnbr(lmisys)。 (1)nlmi=lminbr(lmisys)

返回由lmisys描述的LMI系统中LMI的个数。 (2)nmat=matnbr(lmisys)

返回由lmisys描述的LMI系统中矩阵变量的个数。 (3)ndec=decnbr(lmisys)

返回由lmisys描述的LMI系统中决策变量的个数。 (4)lmiinfo(lmisys)

返回有lmisys描述的LMI系统中矩阵变量的类型和结构,内因子中对角块的个数以及每一块中各项的内容等。 (5)decX=decinfo(lmisys,X)

指明X中每一个块,分别是哪个决策变量,返回的decx和X的维数相同 X(i,j)=0?decX(i,j)=0 X(i,j)=xk?decX(i,j)=k X(i,j)=-xk?decX(i,j)=-k

当第二参数省略的时候,会出现交互是界面列所有的决策变量,要求你选择。

4 线性矩阵不等式在控制理论中的应用

13


Matlab中的LMI工具箱的研究与使用(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:钻芯法测灌注桩

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: