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
Ø
ø
Œ
œ
Œ
œ
Œ
œ
Œ
œ
º
ß