预测安全滤波器 (Predictive Safety Filter, PSF)
一、PSF 概述
1.1 目的与应用场景
预测安全滤波器 (PSF) 的目的是对已有的控制输入 (来自任意控制器,如 RL、PID、MPC 等)进行修正,计算新的控制输入 ,使得被控系统在未来一段时间内始终满足:
- 状态约束
- 输入约束
- 最终收敛到安全终端集
应用场景:
- 强化学习控制器的安全保护
- 学习基于 MPC 的安全层
- 任意控制器与安全性的解耦设计
1.2 与 MPC 的本质区别
| 特性 | MPC | PSF |
|---|---|---|
| 目标 | 优化性能指标 | 保证安全性 |
| 代价函数 | 状态/输入跟踪误差 | 最小化控制修正 |
| 终端代价 | 需要(保证稳定性) | 不需要(只需可行性) |
| 保证 | 稳定性 + 约束满足 | 仅约束满足 |
核心区别
PSF 不保证被控系统的稳定性,只保证状态量处于安全约束内。
二、标准线性模型 PSF
2.1 优化问题
标准线性系统 PSF 的优化问题:
其中:
- 是来自外部控制器的期望控制量
- 是控制修正的权重矩阵
- 是安全终端集
2.2 安全终端集定义
定义(安全终端集): 具有如下性质:
存在控制律 和正不变集 ,使得:
物理意义:一旦状态进入 ,存在控制律使其永远留在 内。
2.3 控制律实施逻辑
每次求解优化问题时:
情况 1:有可行解
- 令
- 记录当前时刻
- 储存 个最优控制序列
情况 2:无可行解
- 若 :使用储存序列的剩余部分
- 若 :使用终端控制律
graph TD A[求解优化问题] --> B{有可行解?} B -->|是 | C[u_S = u*_{0|k}] B -->|否 | D{k - k̄ ≤ N-1?} D -->|是 | E[u_S = u*_{k-k̄|k̄}] D -->|否 | F[u_S = u_f x] C --> G[更新 k̄ = k] E --> H[实施控制] F --> H G --> H
三、线性误差模型 PSF
3.1 受扰系统模型
真实系统(有扰动):
标称系统:
3.2 误差动态
定义误差:
实际控制律:
误差动态方程:
3.3 误差不变集
误差不变集 满足:
显式公式:
3.4 约束紧缩
为保证实际系统满足约束,需对标称系统施加紧缩约束:
3.5 优化问题
线性误差模型 PSF 优化问题:
3.6 控制律实施逻辑
与标准 PSF 类似:
情况 1:有可行解
- 令
- 记录
- 储存标称控制序列
情况 2:无可行解
- 若 :
- 若 :
四、PSF 与 Tube MPC 的对比
| 方面 | Tube MPC | PSF |
|---|---|---|
| 目的 | 跟踪参考信号 + 鲁棒性 | 安全性保护 |
| 优化目标 | 跟踪性能 | 最小化控制修正 |
| 终端约束 | 需要稳定性保证 | 只需可行性保证 |
| 控制律 | 标称 MPC + 反馈校正 | 外部控制器 + 安全滤波 |
| 应用场景 | 鲁棒跟踪控制 | 安全关键系统 |
五、设计建议
5.1 终端集设计
方法 1:基于 LQR 的终端集
- 求解 DARE 得 和
- 计算最大不变集
- 取
方法 2:椭球终端集
通过 SDP 优化最大化体积。
5.2 权重选择
| 权重 | 影响 |
|---|---|
| 增大 | 更保守,更少修正 |
| 减小 | 更激进,允许更多修正 |
5.3 预测时域选择
原则: 应足够大,使得从任意可行状态能在 步内到达 。
六、数值示例
6.1 系统参数
约束:
6.2 终端集计算
使用 LQR 增益 ,计算得:
6.3 仿真场景
场景:外部控制器 试图违反约束
| 时刻 | 修正量 | ||
|---|---|---|---|
| 1.5 | 1.0 | 0.5 | |
| 1.2 | 0.8 | 0.4 | |
| 0.5 | 0.5 | 0.0 |
观察:
- PSF 在可能违反约束时进行修正
- 当 安全时不干预
七、总结
| 概念 | 说明 |
|---|---|
| PSF 目的 | 对任意控制器输出进行安全过滤 |
| 优化目标 | |
| 终端集 | 是安全不变集 |
| 实施逻辑 | 有解用最优解,无解用储存序列/终端控制律 |
| 与 Tube MPC 关系 | 误差动态和约束紧缩类似 |
相关内容
Tube MPC 见01-有界扰动下的状态管概念 约束紧缩见02-标称系统约束紧缩原理 不变集计算见02-终端不等式约束与终端集 Xf
更新记录
| 日期 | 内容 |
|---|---|
| 2026-04-10 | 初始版本 |