本文主要是介绍使用YALMIP工具箱来求解LMI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用YALMIP工具箱来求解LMI
使用的例子为《滑模变结构控制MATLAB仿真基本理论与设计方法 第四版》第434页
工具:MATLAB 2016B YALMIP工具包
例子:
代码:
A = [-2.548 9.1 0;1 -1 1;0 -14.2 0];
B =[1 0 0;0 1 0;0 0 1];
F = sdpvar(3,3);
M = sdpvar(3,3);
P = 100000*eye(3);
FAI = (A' + F'*B')*P+P*(A+B*F);
***L = set(FAI<0);***这行有问题,新的工具包以及不支持此命令。
L = [FAI<=0]; 改成这样
solvesdp(L);
F = double(F)
注:源代码中L = set(FAI<0); set命令在新的工具包中已经不支持,所以需要更改描述约束。
在新的工具包中描述一个条件A<0;可以直接使用
L = [FAI<=0];
来说明FAI<=0;
由于YALMIP不允许严格不等式存在,所以使用非严格不等式,否则报错,最后添加约束条件。
solvesdp(L);命令以后MATLAB就已经把L约束条件下的F解出来了,此时可以输入获取结果命令。
两个命令都可以。
1、F = double(F)
2、F = value(F)
value和double命令都可以用来获取需要求解的不等式的值。
YALMIP工具包教程可以见添加链接描述https://yalmip.github.io/
这篇关于使用YALMIP工具箱来求解LMI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!