本课程介绍MATLAB中的LMI工具箱及其关键函数mincx的应用和操作技巧。通过实例详细解析mincx的功能与参数设置,帮助学生掌握该函数在控制系统设计中的作用。
LMI工具箱中的mincx函数用于求解线性矩阵不等式(LMIs)的最小化问题。使用该函数需要首先定义所需的LMI系统,并将其作为输入参数传递给mincx函数。
具体步骤如下:
1. 使用lmiterm命令设置每个LMI项。
2. 调用getlmis创建一个描述所有已定义LMI的结构体对象。
3. 利用feasp或gevp求解器验证问题是否可解,确保可以调用mincx进行优化计算。
下面给出一个实例来说明如何使用minxc函数:
假设我们有一个线性矩阵不等式系统,其形式为:
\[ X > 0 \]
\[ A_1^T X + XA_1 < B_1B_1^T \]
其中\(X\)是需要求解的变量。首先定义LMI项和结构体对象:
```matlab
lmiterm([1 1 1 X], 1, 1) % 对应于 X > 0
lmiterm([-2 -3 A_1 X], 1, 1)
lmiterm([-2 -4 X, A_1], 1, 1)
lmiterm([2-3], B*B)
```
然后创建LMI描述对象:
```matlab
lmisys = getlmis;
```
接下来,设定优化参数并调用mincx函数进行求解:
```matlab
[tmin,xfeas] = mincx(lmisys, myfun, [], 1e-6);
```
这里`myfun`是目标函数的名称(需要单独定义),而最后两个输入参数分别用于设置优化选项和指定终止误差容限。
通过这种方法,我们可以有效地使用LMI工具箱中的mincx函数来求解线性矩阵不等式问题。