matlab中LMI应用说明.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab中LMI应用说明

我们要实现的就利用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 symmetric Q = lmivar(1, [2 1]); % S1 a symmeric matrix, size 2 S1 = lmivar(1, [2 1]); % S2 is 1 by 1 matrix S2 = lmivar(1, [1 0]); % Type of 2, size 1 by 2 M = 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、对于外部变量,取值为0 2、对于A*X*B,取值X 3、对于A*X*B,取值-X flag(可选,值为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)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档