logo资料库

线性矩阵不等式的MATLAB求解.pdf

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! 近年来,线性矩阵不等式广泛应用于解决系统与控制中的一系列问题。随着解决线LMI 内点法的提出以及 Matlab 中 LMI 控制工具箱的推广,LMI 这一工具已经受到人重视。LMI 控制工具箱已经成为了从控制工程到系统识别 设计和结构设计等诸多领域的一个强大的设计工具。由于许多控制问题都可以转化为一个 LMI 系统的可行性问 题,或者是一个具有 LMI 约束大的徒优化问题,应用 LMI 来解决系统和控制问题已经成为这些领域中的一大研 究热点。 LMI 控制工具箱,采用内点法的 LMI 求解器,这些求解器比经典的凸优化算法速度有了显著提高。另方方面, 它采用了有效的 LMI 结构化表示,在求解和计算领域做出了重大贡献。 LMI 基础知识 ......................................................................................................................................................................3 一、LMI 的一般表示 ..................................................................................................................................................3 二、描述 LMI 的相关术语 .........................................................................................................................................4 三、3 类标准的 LMI 控制问题 ..................................................................................................................................5 1.可行性问题 .......................................................................................................................................................5 2.线性目标最小化问题........................................................................................................................................5 3.广义特征值最小化问题....................................................................................................................................5 LMI 工具箱介绍和使用 ......................................................................................................................................................6 一、LMI 工具箱概述 ..................................................................................................................................................6 1.系统描述 ...........................................................................................................................................................6 2.信息检 ...............................................................................................................................................................6 3.问题求解 ...........................................................................................................................................................6 4.结果验证 ...........................................................................................................................................................6 二、LMI 工具箱函数列表 ..........................................................................................................................................8 1.确定 LMI 系统的函数 ......................................................................................................................................8 2.对 LMI 变量的操作 ..........................................................................................................................................8 3.LMI 解算器 .......................................................................................................................................................8 4.LMI 结果验证与修改 .......................................................................................................................................8 5.LMI 系统信息的提取 .......................................................................................................................................8 三、LMI 工具箱函数详解 ..........................................................................................................................................9 1.确定 LMI 系统的函数 ......................................................................................................................................9 2.对 LMI 变量的操作 ........................................................................................................................................13 3.LMI 求解器命令 .............................................................................................................................................14 4.结果验证和修改..............................................................................................................................................21 5.LMI 系统信息提取 .........................................................................................................................................24 LMI 系统实例分析 ............................................................................................................................................................25 命令行形式解答 ........................................................................................................................................................25 GUI 形式解答 ............................................................................................................................................................27 Matlab Sky
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! LMI 基础知识 一、LMI 的一般表示 一个 LMI 就是具有形式 FxFxFx F=+++ ()0(1) 01 1
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! 二、描述 LMI 的相关术语 以 H¥ 控制中的一个典型线性矩阵不等式为例来进行说明: 较小的一边,叫左边 + AXXAXC T 内 因 子 N B T g I T T NCXID BD T 项 其中, =˛ XXR Tn n R g , 一般形式的表示 LMI 系统 NLXXXNMRXXX M < (,,,)(,,,)( ) T L 2 121 n 外因子 是上述 LMI 的【变量】,而 A、B、C、D 和 N 都是给定的【常数矩阵】。或者用更 矩阵变量 X 右边 < 0( ) 式4 g 外因子 Matlab Sky 矩阵变量 右边 式5 L T n 左边 内因子 其中 kX 是 LMI 系统的第 k 个矩阵变量或标量变量,L 和 R 是关于 kX 的分块矩阵,N 和 M 是给定的常数矩阵。 那么我们通过下列语句来描述这个 LMI: (1)我们约定左边是不等式较小的一边,右边是不等式较大的一边。比如 X>0,X 是不等式的右边,而 0 是右边, 也就是说 LMI 系统一般总是使用“<”号表示不等式,与优化工具箱相似。还有就是标量在 Matlab 中认为是 1 ×1 的对称矩阵,例如(式 4)中的γ。 (2) (式 5)中的 N 和 M 称为 LMI 的【外因子】,是具有相同维数的给定矩阵,它们可以不是方阵,在一般的问题 中都是不出现的。 (3)(式 5)中的 L 和 R,或者说不等号两边的中间位置的大分块矩阵叫做【内因子】,L 和 R 是具有相同块结构的 对称块矩阵。 (3)内因子是一个分块对称矩阵,它的分块结构是由其对角块的数目来描述的,并可完全由其对角线以上或以下 Ø ø Œ œ - Œ œ Œ œ - º ß · ˛
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! 的那些部分来决定,故在 Matlab 编程时,内因子只需要并且只能写出它一半。 (4)内因子中的子块矩阵中每一个表达式都称为 LMI 的【项】,它们是关于矩阵变量 X 和矩阵标量γ的仿射表达 式,并且可以分解为一些基本项之和,例如(式 4)中的内因子的第(1,1)块就包含两个基本项: TA X 和 XA 。 (5) 内因子中的每项都有常数项和变量项之分,所谓常数项即(式 4)中所示的 B 和 D,而变量项则至少包含一个 矩阵变量,例如 XA 以及 Ig- 等。 三、3 类标准的 LMI 控制问题 1.可行性问题 寻找一个 X R˛ n ,使的满足 LMI 系统成立,这个问题的求解器为 feasp。 Matlab Sky 2.线性目标最小化问题 c x T min x stAxB x < ..()( ) 此类问题的求解器为 mincx。 3.广义特征值最小化问题 min l x < stCxD x ..()( ) < B x 0( ) < AxB x ()( ) l 相应的求解器是 gevp。 三个解算器的功能和具体使用方法在后面会详细介绍。
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! LMI 工具箱介绍和使用 一、LMI 工具箱概述 LMI 工具箱支持如下功能: 1.系统描述 LMI 系统的描述既可以通过交互式 GUI 界面 lmiedit 来进行直观的矩阵描述,又可以通过命令 lmivar 和 lmiterm 来进行逐项的描述。 2.信息检 Matlab Sky 交互式函数 lmiinfo 提供有 lmiedit、lmivar 和 lmiterm 所创建的 LMI 系统的量化检索功能。也可以通过 lmiedit 使 得由一系列 lmivar 和 lmiterm 命令所建立的 LMI 系统可视化。 一般的 LMI 求解器都可以针对上面说到的三类标准 LMI 问题进行求解,三个求解器可以解决一般结构的 LMI 系统和矩阵变量,并返回一个关于决策变量 x 的可行或者最优解,相应的矩阵变量函数 dec2mat 得到。 3.问题求解 4.结果验证 所得解 x 很容易由函数 evallmi 和 showlmi 进行验证,从而实现检查分析结果。LMI 系统中的所有变量都可以通 过 evallmi 有决策变量 x 的值来估计,此时,每个 LMI 左边和右边的部分都变味了常数矩阵,可以由 showlmi 显 示。
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! 例1、 下面给出一个例子看看,寻找两个对称矩阵 其中 X R · 6 6 和 d 1 d 1 = D d d 2 4 d 3 d 5 = SDD R T 4 4 + + T S < 0 0 I Matlab Sky 使得 AXXACSCXB T BX T > X > S 使用 Matlab 的 LMI 工具箱函数编程如下,现在看不懂不要紧: %具体函数的意义和用法在后面会详细介绍 %%初始化LMI系统 setlmi([]) %%定义决策变量 X=lmivar(1,[6,1]); S=lmivar(1,[2 0;2 1]); %%添加LMI内因子的项 %注意只要给出右上角(或左下角)的即可 lmiterm([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) %% lmiterm([-2 1 1 X],1,1); %% lmiterm([-3 1 1 S],1,1); lmiterm([3 1 1 0],1); %% lmisys=getlmis; ˛ · ˛ Ø ø Œ œ Œ œ Œ œ Œ œ º ß Ø ø Œ œ - º ß
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! 二、LMI 工具箱函数列表 1.确定 LMI 系统的函数 初始化 LMI 系统 定义矩阵变量 确定 LMI 系统中每一项的内容 多 LMI 系统中添加新的 LMI 获得 LMI 系统的内部描述 通过 GUI 界面确定 LMI 系统 将求解器的输出转化为矩阵变量值 通过给定的矩阵变量值返回决策向量 Matlab Sky 验证 LMI 的可行性 LMI 限制下线性目标的极小值 在 mincx 命令中第一 CTx 目标 LMI 限制下的广义特征值最小化 由决策变量的给定值来验证所有的变量项 返回一个已经评估的 LMI 的左右边 从系统中删除一个 LMI 从问题中移除一个矩阵变量 将一个矩阵变量赋予指定值 4.LMI 结果验证与修改 2.对 LMI 变量的操作 setlmis lmivar lmiterm newlmi getlmis lmiedit dec2mat mat2dec 3.LMI 解算器 feasp mincx defcx gevp evallmi showlmi dellmi delmvar setmvar 5.LMI 系统信息的提取 decinfo decnbr lmiinfo lminbr mntnbr 以决策变量的形式表示每个输入的矩阵变量 得到决策变量的个数 查询现存 LMI 系统的信息 得到问题中 LMI 的个数 得到问题中矩阵变量的个数
http://www.matlabsky.com 打造最优秀、专业和权威的 Matlab 技术交流平台! 三、LMI 工具箱函数详解 1.确定 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 大体结果如下: Matlab Sky ) 必须是方阵 D i D 1 = X D 2 O D n ( 如果 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 说明 struct=[m n] m 第 i 个矩阵的大小 -1 零矩阵 0 标量 1 满矩阵 n [m n] X 必须是对角化的块对称矩阵,每个块也必须是方 阵 X 为 m×n 的长方形矩阵,不能包含子块矩阵 1 2 3 Ø ø Œ œ Œ œ Œ œ Œ œ º ß
分享到:
收藏