第九讲:CBF 控制屏障函数
CBF(Control Barrier Function)是安全约束的实时守门人:它在控制指令进入执行器的最后一道关口进行最小修正,在数学上保证状态永远不离开安全集——而不是希望控制器学会不犯错。
| 符号 | 含义 |
|---|
| C | 安全集,C={x∣h(x)≥0} |
| h:Rn→R | 屏障函数(Barrier Function) |
| f(x),g(x) | 控制仿射系统:x˙=f(x)+g(x)u |
| Lfh,Lgh | h 对 f、g 的李导数 |
| α(⋅) | 扩展 K 类函数(单调递增,α(0)=0) |
| u∗ | CBF-QP 输出的安全修正控制量 |
| unom | 标称控制量(来自上层规划) |
前言:理论发展沿革
Lyapunov 在 1892 年的博士论文中建立了稳定性理论的基石:如果能找到一个正定函数 V(x) 使 V˙≤0,系统就稳定。然而 Lyapunov 函数描述的是”状态趋向原点”,而工程师更关心的另一个问题长期缺乏对等工具:“状态如何被约束在某个安全集内”?
2000 年代初,Prajna 与 Jadbabaie 提出屏障证书(Barrier Certificates),用于验证系统轨迹不穿越危险集——这是 CBF 的理论前身。关键突破发生在 2017 年:Aaron Ames 等人将屏障函数与二次规划(QP)结合,提出CBF-QP:以标称控制量为优化目标,以 CBF 约束为可行域边界,在每个控制周期求解一个小型 QP,输出满足安全约束的最小修正控制量。
CBF-QP 的革命性在于三点:求解速度极快(毫秒级,可嵌入实时控制环);提供前向不变性的数学证明,而非统计保证;以及可与任意标称控制器无缝组合(不侵入规划层)。此后 CBF 在自动驾驶安全控制器、机械臂碰撞防护和多智能体协同中迅速普及。
在 EICPS 框架中,CBF 是脊髓层安全反射弧的数学核心:Φ 投影门在每毫秒对 Brain 层下发的控制量执行 CBF-QP 过滤,确保物理安全不依赖 AI 决策的正确性。
1 控制仿射系统与安全集
考虑控制仿射系统:
x˙=f(x)+g(x)u,x∈Rn,u∈U
安全集 C 由屏障函数 h 的超水平集定义:
C={x∈Rn∣h(x)≥0},∂C={x∣h(x)=0}
直观上:h(x)>0 意味着在安全区域内部,h(x)=0 是边界,h(x)<0 是危险区域。
目标:设计控制律 u(x),使 C 是前向不变集——即初始状态 x(0)∈C 蕴含 x(t)∈C 对所有 t≥0 成立。
2 Control Barrier Function 定义
定义(CBF,Ames et al. 2017):光滑函数 h:Rn→R 是系统 x˙=f(x)+g(x)u 的控制屏障函数,如果存在扩展 K 类函数 α,使得:
supu∈U[Lfh(x)+Lgh(x)u]≥−α(h(x)),∀x∈C
其中李导数为:
Lfh(x)=∇h(x)⊤f(x),Lgh(x)=∇h(x)⊤g(x)
定理(前向不变性):若 h 是 CBF,则任意满足
Lfh(x)+Lgh(x)u≥−α(h(x))
的控制律 u(x) 都能保证 C 的前向不变性。
对线性 α(s)=γs(γ>0),条件简化为:
h˙(x,u)=Lfh+Lgh⋅u≥−γh(x)
这是工程中最常用的形式:当 h 接近 0(靠近边界)时,约束要求 h˙ 不能过于负,从而”阻止”状态穿越边界。
3 CBF-QP 安全过滤器
给定标称控制量 unom(来自轨迹规划、强化学习或人工操控),CBF-QP 求解:
u∗=argminu∈Rm∥u−unom∥2
s.t.Lfh(x)+Lgh(x)u≥−γh(x)
这是一个凸 QP 问题,当 Lgh(x)=0 时必有唯一解:
u∗=unom+∥Lgh∥2max(0,−Lfh−Lgh⋅unom−γh)(Lgh)⊤
当 unom 已经满足约束时,u∗=unom(零修正);只有在即将违反安全约束时才介入,且修正量最小。
多约束(多个障碍物、多个安全属性)通过叠加多个 CBF 约束实现:
s.t.Lfhi+Lghi⋅u≥−γihi,i=1,…,M
4 CBF 在 EICPS 中的工程化
4.1 Φ 投影门:脊髓层安全反射弧
Brain 层每次规划周期(约 1 s)输出 ActionPlan,下发到脊髓层执行。脊髓层每 1 ms 执行一次控制循环,在将控制量发送给驱动器前,经过 Φ 投影门:
Brain 层输出:u_nom (1 Hz)
↓
Φ 投影门(1 kHz,每毫秒):
计算 L_f h(x̂) 和 L_g h(x̂) ← 使用 EKF 状态估计 x̂
if L_f h + L_g h·u_nom + γ·h ≥ 0:
u* = u_nom # 标称控制满足约束,直接执行
else:
u* = CBF-QP(u_nom) # QP 修正,保证安全
↓
驱动器执行 u*(物理层)
关键设计:CBF-QP 的 QP 规模极小(通常 m≤6 维),求解时间 <0.1 ms,完全满足 1 ms 周期约束。
4.2 EvidencePack 中的 CBF 证据
每次执行任务后,脊髓层记录 CBF 激活情况:
CBF_log={(tk,hi(x(tk)),∥u∗(tk)−unom(tk)∥)}k=1N
EvidencePack 包含 CBF 激活率统计:
ηCBF=N#{k:u∗(tk)=unom(tk)}
ηCBF 过高(例如 >30%)意味着 Brain 层规划质量低劣——系统虽然安全,但在”硬撑”,应上报触发重规划。
4.3 屏障函数的工程化选取
对 EICPS 中的架空线路运检场景,常见屏障函数:
| 安全约束 | 屏障函数 h(x) |
|---|
| 与障碍物距离 ≥dmin | h=∥p−pobs∥2−dmin2 |
| 工作空间边界 | h=(qmax−q)(q−qmin) |
| 电场安全距离 | h=re(p)−rmin(电场模型导出) |
| 负载力矩上限 | h=τmax−∥τ(q,q˙,u)∥ |
5 与其他模块的数学联系
| 相关模块 | 联系方式 |
|---|
| STL(第八讲) | STL G[0,T](h>0) 在事后验证 CBF 是否全程维持了 h≥0 |
| EKF(第十一讲) | CBF-QP 使用 EKF 提供的状态估计 x^ 计算 h(x^) 和李导数 |
| Flow-Jump(第三讲) | 当所有 CBF 约束的 hi<0 时,系统进入 Jump 集 D,触发紧急制动 |
| 李群 SE(3)(第五讲) | 三维空间障碍物的 h 在 SE(3) 上定义,梯度计算需要 Adjoint 映射 |
Notebook
本讲配套 Colab Notebook 包含:①CBF 安全集可视化(2D/3D);②CBF-QP 求解演示(含 QP 解析解验证);③脊髓安全反射弧仿真(标称控制 + CBF 修正对比);④多约束 CBF 激活率分析。
延伸阅读
- Ames, A.D. et al. (2017). Control Barrier Functions: Theory and Applications. ECC.
- Prajna, S. & Jadbabaie, A. (2004). Safety Verification of Hybrid Systems Using Barrier Certificates. HSCC.
- Xu, X. et al. (2015). Robustness of Control Barrier Functions for Safety Critical Control. IFAC.