第九讲:CBF 控制屏障函数

CBF(Control Barrier Function)是安全约束的实时守门人:它在控制指令进入执行器的最后一道关口进行最小修正,在数学上保证状态永远不离开安全集——而不是希望控制器学会不犯错。

符号含义
C\mathcal{C}安全集,C={xh(x)0}\mathcal{C} = \{x \mid h(x) \geq 0\}
h:RnRh: \mathbb{R}^n \to \mathbb{R}屏障函数(Barrier Function)
f(x),g(x)f(x), g(x)控制仿射系统:x˙=f(x)+g(x)u\dot{x} = f(x) + g(x)u
Lfh,LghL_f h, L_g hhhffgg 的李导数
α()\alpha(\cdot)扩展 K\mathcal{K} 类函数(单调递增,α(0)=0\alpha(0)=0
uu^*CBF-QP 输出的安全修正控制量
unomu_{\text{nom}}标称控制量(来自上层规划)

前言:理论发展沿革

Lyapunov 在 1892 年的博士论文中建立了稳定性理论的基石:如果能找到一个正定函数 V(x)V(x) 使 V˙0\dot{V} \leq 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,xRn,  uU\dot{x} = f(x) + g(x)\,u, \quad x \in \mathbb{R}^n,\; u \in \mathcal{U}

安全集 C\mathcal{C} 由屏障函数 hh 的超水平集定义:

C={xRnh(x)0},C={xh(x)=0}\mathcal{C} = \{x \in \mathbb{R}^n \mid h(x) \geq 0\}, \quad \partial\mathcal{C} = \{x \mid h(x) = 0\}

直观上:h(x)>0h(x) > 0 意味着在安全区域内部,h(x)=0h(x) = 0 是边界,h(x)<0h(x) < 0 是危险区域。

目标:设计控制律 u(x)u(x),使 C\mathcal{C}前向不变集——即初始状态 x(0)Cx(0) \in \mathcal{C} 蕴含 x(t)Cx(t) \in \mathcal{C} 对所有 t0t \geq 0 成立。


2 Control Barrier Function 定义

定义(CBF,Ames et al. 2017):光滑函数 h:RnRh: \mathbb{R}^n \to \mathbb{R} 是系统 x˙=f(x)+g(x)u\dot{x} = f(x) + g(x)u 的控制屏障函数,如果存在扩展 K\mathcal{K} 类函数 α\alpha,使得:

supuU[Lfh(x)+Lgh(x)u]α(h(x)),xC\sup_{u \in \mathcal{U}}\,\bigl[L_f h(x) + L_g h(x)\,u\bigr] \geq -\alpha(h(x)), \quad \forall x \in \mathcal{C}

其中李导数为:

Lfh(x)=h(x)f(x),Lgh(x)=h(x)g(x)L_f h(x) = \nabla h(x)^\top f(x), \quad L_g h(x) = \nabla h(x)^\top g(x)

定理(前向不变性):若 hh 是 CBF,则任意满足

Lfh(x)+Lgh(x)uα(h(x))L_f h(x) + L_g h(x)\,u \geq -\alpha(h(x))

的控制律 u(x)u(x) 都能保证 C\mathcal{C} 的前向不变性。

对线性 α(s)=γs\alpha(s) = \gamma sγ>0\gamma > 0),条件简化为:

h˙(x,u)=Lfh+Lghuγh(x)\dot{h}(x, u) = L_f h + L_g h\cdot u \geq -\gamma\, h(x)

这是工程中最常用的形式:当 hh 接近 0(靠近边界)时,约束要求 h˙\dot{h} 不能过于负,从而”阻止”状态穿越边界。


3 CBF-QP 安全过滤器

给定标称控制量 unomu_{\text{nom}}(来自轨迹规划、强化学习或人工操控),CBF-QP 求解:

u=argminuRm  uunom2u^* = \arg\min_{u \in \mathbb{R}^m} \;\|u - u_{\text{nom}}\|^2

s.t.Lfh(x)+Lgh(x)uγh(x)\text{s.t.} \quad L_f h(x) + L_g h(x)\,u \geq -\gamma\, h(x)

这是一个凸 QP 问题,当 Lgh(x)0L_g h(x) \neq 0 时必有唯一解:

u=unom+max(0,  LfhLghunomγh)Lgh2  (Lgh)u^* = u_{\text{nom}} + \frac{\max\bigl(0,\; -L_f h - L_g h\cdot u_{\text{nom}} - \gamma h\bigr)}{\|L_g h\|^2}\; (L_g h)^\top

unomu_{\text{nom}} 已经满足约束时,u=unomu^* = u_{\text{nom}}(零修正);只有在即将违反安全约束时才介入,且修正量最小。

多约束(多个障碍物、多个安全属性)通过叠加多个 CBF 约束实现:

s.t.Lfhi+Lghiuγihi,i=1,,M\text{s.t.} \quad L_f h_i + L_g h_i\cdot u \geq -\gamma_i\, h_i, \quad i = 1, \ldots, 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 规模极小(通常 m6m \leq 6 维),求解时间 <0.1< 0.1 ms,完全满足 1 ms 周期约束。

4.2 EvidencePack 中的 CBF 证据

每次执行任务后,脊髓层记录 CBF 激活情况:

CBF_log={(tk,  hi(x(tk)),  u(tk)unom(tk))}k=1N\text{CBF\_log} = \{(t_k,\; h_i(x(t_k)),\; \|u^*(t_k) - u_{\text{nom}}(t_k)\|)\}_{k=1}^{N}

EvidencePack 包含 CBF 激活率统计:

ηCBF=#{k:u(tk)unom(tk)}N\eta_{\text{CBF}} = \frac{\#\{k : u^*(t_k) \neq u_{\text{nom}}(t_k)\}}{N}

ηCBF\eta_{\text{CBF}} 过高(例如 >30%> 30\%)意味着 Brain 层规划质量低劣——系统虽然安全,但在”硬撑”,应上报触发重规划。

4.3 屏障函数的工程化选取

对 EICPS 中的架空线路运检场景,常见屏障函数:

安全约束屏障函数 h(x)h(x)
与障碍物距离 dmin\geq d_{\min}h=ppobs2dmin2h = \|p - p_{\text{obs}}\|^2 - d_{\min}^2
工作空间边界h=(qmaxq)(qqmin)h = (q_{\max} - q)(q - q_{\min})
电场安全距离h=re(p)rminh = r_e(p) - r_{\min}(电场模型导出)
负载力矩上限h=τmaxτ(q,q˙,u)h = \tau_{\max} - \|\tau(q, \dot{q}, u)\|

5 与其他模块的数学联系

相关模块联系方式
STL(第八讲)STL G[0,T](h>0)\mathbf{G}_{[0,T]}(h > 0) 在事后验证 CBF 是否全程维持了 h0h \geq 0
EKF(第十一讲)CBF-QP 使用 EKF 提供的状态估计 x^\hat{x} 计算 h(x^)h(\hat{x}) 和李导数
Flow-Jump(第三讲)当所有 CBF 约束的 hi<0h_i < 0 时,系统进入 Jump 集 DD,触发紧急制动
李群 SE(3)(第五讲)三维空间障碍物的 hh 在 SE(3) 上定义,梯度计算需要 Adjoint 映射

Notebook

Open In Colab

本讲配套 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.