Fail-Operational 架构 — 单故障下不中断的系统设计
本质与导读
本质:当"关停 = 出事故"时,系统不能 fail-safe — 必须 fail-operational(单故障下继续工作直到达到 Minimum Risk Condition)。Fail-Op 的核心代价是 ×2 或 ×3 硬件冗余;选 Active-Passive / Active-Active / 2oo3 三种模式取决于"切换 glitch 容忍度 + 性能需求 + 成本预算"。ASIL 不决定要不要 Fail-Op,Hazard 决定——EPS 是 ASIL D 但 Fail-Safe(司机机械接管),L3 ADAS 是 ASIL D 必须 Fail-Op(司机注意力已转移)。
1. 何时必须 Fail-Op
判断准则不在 ASIL,而在 "是否存在安全态"。三种策略对比:
| 策略 | 前提 | Voting | 通道 | 典型 |
|---|---|---|---|---|
| Fail-Safe | 存在安全态(可关停) | 1oo1 + 诊断 | 单通道 | EPS / Airbag / STO |
| Fail-Degraded | 关停危险但可降级 | 1oo1 + 多档 | 单通道 | Limp-home / BMS 限功率 |
| Fail-Operational | 关停即事故 | 1oo2D / 2oo3 | 双/三通道 | Steer-by-wire / L3 ADAS |
口诀:故障检出后系统进入的状态 → 是否还在 Safety Goal 容忍范围内 → 在 → Fail-Safe / Fail-Degraded;不在 → 必须 Fail-Op。
经典反直觉案例:
- 传统 EPS 是 ASIL D 但 Fail-Safe——失助力后司机用机械力转方向盘(汽油 EPS 还有液压备份)。
- L4 自动驾驶哪怕 ASIL B 也必须 Fail-Op——司机注意力已转移,即使有警告也来不及 100 ms 接管。
- L3 ADAS 必须 Fail-Op——L3 允许司机眼睛离开路面 10 s,handover 需要 10 s 量级,这段时间系统必须自己撑住。
2. 三种 Fail-Op 架构
具体的 Fail-Op 实现有 3 种主流模式,各自适合不同的硬件容忍度和性能需求。
2.1 Active-Passive(Hot-Standby)
主 ECU A 正常输出,备 ECU B 同步运行但不输出。A 故障 → 切到 B。
- 优点:B 平时无故障应力,B 输出路径可独立测试;切换无 voting 复杂度。
- 缺点:切换瞬间输出可能 glitch(10-100 ms);B 平时浪费 50 % 资源。
- 应用:L3 ADAS Plan ECU、传统 brake-by-wire 应急路径。
关键设计点:B 必须完全同步状态(state-sync),否则切过去后控制律要重新初始化,glitch 加重。Hot-Standby 通过持续状态镜像把 B 保持在"和 A 完全一致"的内部状态,切换只是改变输出 mux,不重启计算。
2.2 Active-Active(双路并行)
两 ECU 同时输出 50 %,合起来 100 %。任一故障,健康路升到 100 %。
- 优点:无切换 glitch(只是降功率);两路始终同步;在线全测。
- 缺点:需要执行器原生支持双路驱动(双绕组电机、双 inverter、双液压)。
- 应用:EPS 6 相双 inverter PMSM、Steer-by-wire、Brake-by-wire 双路。
Active-Active 是车规 fail-op 最优雅的方案——单故障只意味着"性能减半",而不是"切换风险"。但代价是执行器层面就要双路,不能事后加。
3. Steer-by-Wire 完整拓扑案例
Steer-by-Wire(SbW)是 Fail-Op 工程最严格的案例:没有机械连接到前轮,任何单故障都不能让转向丢失。
SbW 的冗余层级要从源头一路覆盖到执行器:
| 层 | 冗余设计 | 单故障表现 |
|---|---|---|
| 电源 | 双电池(主 + 隔离备) | 主电池失,备电池撑 ≥ 10 s |
| 通信 | 双 CAN-FD(独立物理层) | 一条总线断,另一条接管 |
| 控制 ECU | 双前轴 ECU + 交叉监视 | 一 ECU 故障,另一接 100 % |
| 执行 | 双绕组 PMSM 电机 | 一绕组烧,另绕组 50 % torque |
| 传感 | 双 sensor(方向盘 + 角度) | sensor 单点失,plausibility 检测 |
关键约束:任何单故障下,至少 50 % 转向能力 维持 10 s 以上,司机收到 HMI 警告 + 车速限到 50 km/h 进入 MRC(靠边停)。
为何不要求 100 %?因为单故障下 active-active 降到 50 % 是 Fail-Op 的本质——不是恢复完全功能,是"足够安全地到达 MRC"。OEM 通常给 "降级 limp-home" 5-15 min 容许时间。
4. L3+ ADAS E/E 多域冗余
L3 ADAS 的 Fail-Op 不只是某一子系统冗余,是 Sense / Plan / Act 三层都各自冗余 + 电源双路。
L3 与 L2 的本质差别是 接管假设:
- L2 — 司机眼睛在路上;单故障 → 司机 100 ms 内接管;系统可以 Fail-Safe
- L3 — 司机注意力可转移;单故障 → 系统继续自动驾驶 ≤ 10 s 直到 MRC 完成;必须 Fail-Op
L3 ADAS 关键架构决策:
| 子系统 | 策略 | 原因 |
|---|---|---|
| Plan ECU | Fail-Op(A + B Fallback) | 失去 planning = 失去方向 → 必须续 |
| EPS | Fail-Op(双 inverter) | 失去转向 = 不可控 |
| Brake | Fail-Op(双路 + 液压回退) | 失去刹车 = 撞 |
| HMI(handover) | Fail-Op(独立 ECU + 独立电源) | 警告失败 = 司机不知道接管 |
| 主驱(motor torque) | Fail-Safe 3PO | 关停安全(车滑行减速),不必 Fail-Op |
| 电源 | 双路(主 + 备 isolation) | 失去电源 = 全失 |
注意主驱 motor torque 是 Fail-Safe 不是 Fail-Op——这是车规 fail-op 设计的一个微妙点。主驱的安全态是"无 torque"(3PO 短路态滑行),L3 ADAS 即使失主驱也能用 brake + steer 把车停下。所以主驱不需要双 inverter 做 Fail-Op,SoP 成本砍掉约 5000 RMB。
5. 切换时序预算
Active-Passive 架构的切换时序是 3 阶段:Detection → Switchover → Recovery,总和必须 < FTTI。
| 阶段 | 典型时长 | 主要耗时 | 缩短手段 |
|---|---|---|---|
| tdet Detection | 20-50 ms | 心跳间隔 + 滤波 | 心跳缩到 5 ms(代价:总线负载 ↑) |
| tsw Switchover | 30-50 ms | B 唤醒 + 状态同步 + 命令切 | Hot-Standby(B 始终保持同步状态) |
| trec Recovery | 50-200 ms | B 输出 ramp + 控制律稳定 | Active-Active(B 已在输出) |
计算举例:FTTI = 200 ms,需留 25 % margin → 总切换 ≤ 150 ms。tdet 30 + tsw 40 + trec 80 = 150 ms 刚好。若 FTTI 缩到 100 ms,Active-Passive 设计困难,必须改 Active-Active 或 2oo3。
输出 glitch 风险:tsw 窗口期 A 已停 B 未起,EPS torque 归零 = 司机突然失助力。所以切换必须 ramp-down + ramp-up 协调——A 渐降,B 渐升,中间总和保持 100 %。
6. Fail-Op 与 ISO 26262 的耦合点
Fail-Op 在 ISO 26262 流程中影响多个 Part:
| Part | Fail-Op 相关产出 |
|---|---|
| Part 3 HARA | 识别"无安全态"的 Hazard,触发 Fail-Op 需求 |
| Part 3 FSC | 写明每个 Safety Goal 的"Safe State 是 ON or OFF" |
| Part 4 系统 | 选 Active-Passive / Active-Active / 2oo3 + 切换时序预算 |
| Part 5 硬件 | FMEDA 单故障下 B 路径独立性证明 + SPFM |
| Part 6 软件 | Handover 状态机 + ramp 控制律 + state-sync |
| Part 9 DFA | A 和 B 共因失效(共享电源 / 总线 / 时钟)分析 |
最容易出问题的是 Part 9 DFA:工程组喜欢说"A 和 B 是独立 ECU",但忘了它们共享同一根 CAN-FD 总线,或共享 12 V 电源。DFA 必须穷举共因失效路径并证明已隔离;评估员严格的项目要求 A 和 B 走物理上分离的线束 + 不同电源域。
7. 常见误区
Fail-Op 的常见误区集中在"以为做了冗余就是 Fail-Op",忽略隔离和共因。下面 5 条是评估员常拿来推翻设计的点。
- 冗余 ≠ Fail-Op。"A 和 B 都在,B 顶上"只是冗余;Fail-Op 需要满足"切换时间 < FTTI"+ "B 独立性证明"+ "DFA 通过"+ "在线全测"。
- B 平时不输出 = 不能在线测。Hot-Standby 容易陷入"B 早就坏了,故障后才发现"——必须给 B 设计 in-flight self-check(周期切到主路验证)。
- 共享电源 / 总线 = 共因。A + B 接同一根 12 V 是 DFA 重大违规;必须独立电池 + isolation diode 或独立 DC/DC。
- Voter 是 Single Point。2oo3 的 Voter 自身故障 = 系统失效。Voter 必须 ASIL D + 自检,或用 Hardware-Comparator 双 Voter 互监。
- Fail-Op 不等于 100 % 功能保留。单故障后系统通常只到 50 % 功能(Active-Active)或有 glitch(Active-Passive);"Fail-Op" 的目标是"足够安全到达 MRC",不是"完全没事"。
深入 L3 量产实战(Mercede…
深入 L3 量产实战(Mercedes / Honda / Tesla 三家拓扑对比)+ 3 种内部模式(Doer-Checker / Primary-Secondary / 2oo3 SCP)+ 6 相双绕组 PMSM 30° 偏移 + Brake-by-Wire DREHB 3 层级联 + L3 vs L4 MRC 状态机 + 5 类隐藏共因 → Fail-Operational Architecture 深度
核心要点
- Hazard 决定 Fail-Op 不是 ASIL 决定。问"系统失效后有没有安全态" → 没有 → Fail-Op。
- 三种架构:Active-Passive(切换 glitch)、Active-Active(性能减半)、2oo3(航空,车规罕见)。
- L3 / L4 ADAS 必须 Fail-Op——司机注意力已转移,没法 100 ms 接管。
- MRC = Minimum Risk Condition——失效后系统应自主到达的最终状态(靠边停)。
- 切换时序 3 阶段:Detection + Switchover + Recovery ≤ FTTI(留 25 % margin)。
- 多域冗余:Sense / Plan / Act 各自双路 + 电源双路(L3 ADAS)。
- Steer-by-wire 是 Fail-Op 工程最严格案例:双电池 + 双总线 + 双 ECU + 双绕组。
- 主驱 motor torque 是 Fail-Safe 不是 Fail-Op(L3+ ADAS 也是),因为无 torque = 安全态。
- DFA 必须证 A/B 独立——共享电源 / 总线 = 共因,严重违规。
- Voter 是 Single Point——2oo3 必须给 Voter 加自检或双 Voter。
Cross-references
- ← 索引
- topic-functional-safety — 功能安全 hub(§6.5 Fail-Op 概览)
- topic-voting-redundancy — 1oo2D / 2oo3 投票详解
- topic-iec-61800-5-2-stopping — STO 等 Fail-Safe 案例
- topic-asil-d-case-studies — ASIL D 完整案例
- topic-hv-inverter-iso26262-concept — HSS/LSS/3PO 主驱 Fail-Safe
- topic-iso26262-part9-asil-analyses — DFA 独立性论证
- topic-iso26262-part4-system — 系统层架构选型
- topic-iso21448-sotif — L3+ 性能不足边界
- topic-mcu-sbc-asil-d-integration — 单通道 ASIL D 基础