为什么用 CBF 而不是纯 MPC 做实时安全?

这个问题有一个前提需要先澄清:EICPS 在 Spine 层同时使用了 MPC 和 CBF,它们分工不同。MPC 通过滚动时域控制(STL-RHC)在线优化 STL 鲁棒度;CBF 作为最后一道安全屏障,在 1kHz 周期内实时保证系统状态不逸出安全集。真正的问题是:为什么最后一道安全屏障必须是 CBF,而不能是 MPC?

根本原因:计算复杂度

MPC 需要在每个控制周期内求解一个预测时域内的优化问题,计算量随预测步数线性增长。在 1Hz 的 Brain 层,这是可以接受的;在 1kHz 的 Spine 层,每个控制周期只有 1ms,标准 MPC 的计算量超出了这个预算。

CBF 的 QP 只有两个决策变量(当前控制输入的修正量),求解时间在微秒级,是目前已知的唯一能在 1kHz 下给出硬实时安全保证的方法。

CBF 的关键数学性质:前向不变性

定义安全集 C={x:h(x)0}\mathcal{C} = \{x : h(x) \geq 0\},CBF 控制律通过强制:

h˙(x)+α(h(x))0\dot{h}(x) + \alpha(h(x)) \geq 0

保证只要初始状态 x0Cx_0 \in \mathcal{C},系统在全时域内状态始终满足 h(x(t))0h(x(t)) \geq 0

这个保证是确定性的,不依赖预测视域的长短,不依赖模型的准确性(在一定扰动范围内),也不依赖 Brain 层 AI 的正确性。MPC 的安全保证是”在预测视域内渐近满足”,当视域有限时,无法给出全局时域的保证。

两者结合的设计逻辑

  • MPC(STL-RHC):有预见性地优化轨迹,让系统在整个任务周期内保持 STL 规约满足。它看得远,但算得慢。
  • CBF:无论 MPC 的优化结果如何,物理安全边界不能被突破。它反应快,但无预见性。

这是规划层安全执行层安全的分工,不是替代关系。如果 MPC 因为模型不准确产生了一个不安全的参考轨迹,CBF 在执行时会修正控制输入,保证实际轨迹不越界——这就是”脊髓反射弧”的工程实现。

实时安全监控(CBF) · 安全约束验证(STL) · 数学讲义第九讲:CBF