软约束与松弛变量引入
一、硬约束的局限性
1.1 不可行问题
硬约束要求所有约束必须严格满足:
但在以下情况下,问题可能不可行:
| 原因 | 说明 |
|---|---|
| 初始状态不可行 | |
| 扰动/噪声 | 外部扰动将状态推出可行域 |
| 模型失配 | 实际系统响应与预测不符 |
| 约束过紧 | 状态/输入约束范围过小 |
1.2 后果
不可行意味着:
- QP 问题无解
- MPC 控制器无法计算控制律
- 系统可能”失控”
二、软约束的基本思想
2.1 约束松弛
软约束 (Soft Constraints):允许约束在一定范围内被违反,但对违反量施加惩罚。
数学表达:
其中 是松弛变量,表示约束违反量。
2.2 代价函数修正
在原代价函数基础上添加松弛变量的惩罚:
或
其中 是惩罚系数。
三、松弛变量的引入方法
3.1 状态约束松弛
原状态约束:
引入松弛变量 :
3.2 输入约束松弛
原输入约束:
引入松弛变量 :
3.3 终端约束松弛
终端约束通常需要保持为硬约束(保证稳定性),但也可松弛:
四、惩罚系数的选择
4.1 二次惩罚
特点:
- 光滑,便于优化
- 小 violations 被”容忍”
- 需要较大的 才能近似硬约束
4.2 惩罚(精确惩罚)
特点:
- 精确惩罚性质:当 足够大时,最优解自动满足原约束
- 适合 MPC(见下文)
4.3 无限惩罚(理论极限)
五、精确惩罚函数理论
5.1 主定理
定理(精确惩罚):考虑约束优化问题
其 精确惩罚问题:
其中 。
结论:存在有限阈值 ,使得对于所有 ,精确惩罚问题的最优解等于原问题的最优解。
5.2 在 MPC 中的应用
在 MPC 中使用 惩罚:
- 当 足够大时,最优解自动满足原约束(若原问题可行)
- 当原问题不可行时,求解”最小违反”的解
5.3 的下界估计
其中 是原问题的最优 Lagrange 乘子。
六、软约束 QP 形式
6.1 原问题
6.2 松弛问题
引入松弛变量 :
6.3 标准 QP 形式
定义增广变量 :
其中:
七、约束优先级
7.1 多级优先级
不同约束可能有不同的重要程度:
| 优先级 | 约束类型 | 处理方式 |
|---|---|---|
| 最高 | 输入硬约束(执行器限制) | 保持硬约束 |
| 中等 | 状态硬约束(安全限制) | 软约束,大 |
| 低 | 性能约束(跟踪误差) | 软约束,小 |
7.2 加权惩罚
其中 反映第 个约束的重要性。
八、示例:状态约束松弛
8.1 原约束
8.2 松弛形式
8.3 惩罚项
8.4 数值示例
若最优解为 ,,:
- 约束违反量:
- 惩罚代价:
当 时,,解趋近硬约束。
九、总结
| 概念 | 说明 |
|---|---|
| 软约束 | 允许违反但有惩罚的约束 |
| 松弛变量 | ,表示违反量 |
| 惩罚 | 精确惩罚, 足够大时等价硬约束 |
| 惩罚 | 光滑惩罚,适合优化 |
| 约束优先级 | 不同约束设置不同 |
相关内容
- 硬约束见 02-硬约束与可行域几何特性
- QP 建模见 01-二次规划 QP 问题建模
- 可行性见 03-递归可行性的初步概念
更新记录
| 日期 | 内容 |
|---|---|
| 2026-04-10 | 初始版本 |