最大控制不变集 (MAS) 计算
一、控制不变集的定义
1.1 基本定义
定义(控制不变集):集合 称为控制不变集,如果对于任意 ,存在控制输入 使得:
1.2 物理意义
直观理解
一旦系统状态进入控制不变集,就存在一个控制策略,使状态永远留在集合内,同时满足所有约束。
1.3 相关概念
| 概念 | 定义 | 区别 |
|---|---|---|
| 控制不变集 | s.t. | 存在控制 |
| 正不变集 | (无控制) | 自治系统 |
| 鲁棒不变集 | , | 有扰动 |
二、最大控制不变集 (MAS)
2.1 定义
最大控制不变集 (Maximal Admissible Set, MAS) 是包含所有控制不变集的并集:
等价定义为:
2.2 性质
| 性质 | 说明 |
|---|---|
| 最大性 | 包含所有控制不变集 |
| 唯一性 | 对给定系统和约束唯一 |
| 闭凸性 | 若 是凸集,则 也是凸集 |
| 包含原点 | (假设原点可行) |
三、迭代计算算法
3.1 算法思想
通过迭代收缩的方法计算 MAS:
- 从状态约束集 开始
- 逐步剔除不能保持的状态
- 收敛到最大控制不变集
3.2 算法步骤
算法:计算最大控制不变集
-
初始化:
-
迭代:对于
-
终止条件:当 时,算法收敛
-
输出:
3.3 集合运算的显式表达
迭代公式可写为:
其中 是集合 的前向可达集:
四、多面体 MAS 的计算
4.1 多面体表示
假设状态约束和输入约束是多面体:
4.2 一步集计算
的计算:
通过投影(Projection)或傅里叶 - 莫茨金消元(Fourier-Motzkin Elimination)计算。
4.3 算法实现
使用多面体计算工具:
| 工具 | 语言 | 特点 |
|---|---|---|
| MPT3 | MATLAB | 专业 MPC 工具箱 |
| PPL | C++/Python | 多面体库 |
| cdd/cdd+ | C/Java | 凸多面体计算 |
| Polyhedra | Julia | 现代计算框架 |
五、收敛性分析
5.1 有限步收敛定理
定理:若系统 能稳且约束集有界,则 MAS 迭代算法在有限步内收敛。
5.2 收敛步数估计
收敛所需的迭代次数 满足:
其中 是闭环系统的谱半径。
5.3 不收敛的情况
以下情况可能不收敛(需要无限步):
- 系统有不稳定模态且不能控
- 约束集无界
- 特征值在单位圆上(临界稳定)
六、MAS 作为终端集
6.1 终端集选择
MAS 可直接用作 MPC 的终端集:
6.2 优势
| 优势 | 说明 |
|---|---|
| 最大化可行域 | 是最大的控制不变集 |
| 保证递归可行性 | 状态一旦进入 就永不离开 |
| 保证稳定性 | 配合 可证明稳定性 |
6.3 实际应用
实际中常使用近似 MAS:
- 计算 ( 有限)作为 的内近似
- 减少计算复杂度
- 保守性略增但可接受
七、示例:二阶系统 MAS 计算
7.1 系统参数
7.2 迭代结果
| 多面体不等式数 | 说明 | |
|---|---|---|
| 0 | 4 | 初始 |
| 1 | 8 | 一步能控集 |
| 2 | 12 | 二步能控集 |
| 5 | 20 | 接近收敛 |
| 10 | 24 | 收敛 |
7.3 最终 MAS
收敛后得到 ,有 24 个面(不等式约束)。
八、总结
| 概念 | 说明 |
|---|---|
| 控制不变集 | s.t. |
| MAS | 最大的控制不变集 |
| 迭代算法 | |
| 收敛 | 有限步收敛(能稳 + 有界约束) |
| 应用 | 用作 MPC 终端集 |
相关内容
- 终端集设计见 02-终端不等式约束与终端集 Xf
- 可行域见 02-硬约束与可行域几何特性
- 递归可行性见 03-递归可行性的初步概念
更新记录
| 日期 | 内容 |
|---|---|
| 2026-04-10 | 初始版本 |