跳转至

线控安全与验证:冗余、接管与测试

本页关注"线控系统在故障和边界场景下如何保持安全",涵盖冗余架构、功能安全、验证方法与交付标准。


1. 功能安全基础(ISO 26262)

1.1 线控系统的安全目标

典型线控系统安全目标(Safety Goal):

功能 安全目标示例 ASIL
线控转向 不得发生非预期大角度转向(> 2°/s 非指令) ASIL-D
AEB 制动 不得发生制动响应失败(危险条件下) ASIL-D
线控驱动 不得发生非预期加速(踏板未踩但速度升高) ASIL-C/D
电子驻车 不得在坡道停车时意外释放 ASIL-B/C

1.2 ASIL 分解

对于复杂系统,通常通过独立冗余路径实现 ASIL 分解:

ASIL-D 安全目标
    │
    ├─ 路径 A(ASIL-B):主 ECU,感知路径 A
    │
    └─ 路径 B(ASIL-B):监控 ECU,感知路径 B(独立)

条件:路径 A 和路径 B 独立(不共享单点故障)
结果:ASIL-B(D) ≡ ASIL-D

2. 冗余架构设计

2.1 电源冗余

L3+ 场景的线控系统对电源冗余有明确要求:

主电源(12V/48V 系统)
    │
    ├─ 功率转换器 A → 线控转向 ECU 主路
    └─ 功率转换器 B → 线控转向 ECU 备路

冗余要求:
  - 主电源失效后,备用电源在 < 20 ms 内接管
  - 备用电源容量满足执行 MRC(30 秒级制动停车)的需求
  - 两路电源在物理上独立(不同保险丝/继电器)

典型冗余电源方案:

方案 说明 切换时间
主电池 + 超级电容 主断后电容维持短时供电 < 5 ms
双 DC-DC + 主备切换 两套降压模块,继电器切换 < 20 ms
48V + 12V 双网络 高压主驱动,低压冗余控制 取决于拓扑

2.2 ECU 冗余

架构 原理 切换时间 适用场景
Active-Active(双活) 两路 ECU 同时运行,互相比较输出 < 5 ms ASIL-D,线控转向
Active-Standby(主备) 主路运行,备路热备跟踪主路状态 10–50 ms ASIL-B/C,部分 ASIL-D
Lockstep Core 同一 ECU 内两个 CPU 核锁步执行 0(同步) 单 ECU 内部冗余

Active-Active 双活架构:

传感器输入 → ECU A → 输出 A → ┐
                               比较器 → 一致:执行
传感器输入 → ECU B → 输出 B → ┘         不一致:故障处理

两路输出差异超过阈值时,系统自动识别故障路并切换到正常路输出。

2.3 通信冗余

线控系统的关键通信链路需要冗余:

推荐配置:
  主通道:CAN FD(500 kbps–8 Mbps,CRC + 计数器)
  备通道:以太网 或 第二路 CAN(独立物理通道)

帧级保护:
  CRC:检测通信数据错误
  计数器(Rolling Counter):检测丢帧和重放
  超时检测:连续 N 帧无接收 → 触发故障
  心跳:每 10 ms 发送心跳帧,超时触发降级

3. 降级策略

3.1 降级等级定义

等级 状态 典型触发条件 车辆行为
Level 0 正常自动驾驶 全功能运行
Level 1 功能受限 单传感器故障、单 ECU 降级 限速 60 km/h,禁止自动变道
Level 2 请求接管(TOR) 主路故障,备路可维持短时 发出 TOR,倒计时接管
Level 3 MRC 执行 驾驶员未接管,系统无法维持 减速→靠边→停车→上报

3.2 降级状态机

# 降级状态机伪代码
class SafetyStateMachine:
    def update(self, system_health):
        if system_health.critical_fault:
            self.trigger_mrc()
        elif system_health.major_fault:
            if self.tor_issued and self.tor_timeout:
                self.trigger_mrc()
            else:
                self.issue_tor()
        elif system_health.minor_fault:
            self.apply_restriction(
                max_speed=60,
                allow_lane_change=False
            )
        else:
            self.normal_operation()

4. 驾驶员接管(TOR)设计

4.1 接管时间预算

TOR(Takeover Request)应在场景风险允许的时间窗口内完成:

场景 最小接管时间窗口 说明
高速(120 km/h) ≥ 10 s 制动距离长,需要更多时间
城区(50 km/h) ≥ 5 s 障碍物距离近
泊车(5 km/h) ≥ 2 s 低速,可立即接管

UN R157(自动车道保持系统)要求:系统在发出 TOR 后至少给驾驶员 10 秒接管时间(高速场景)。

4.2 多模态提示

TOR 提示必须引起驾驶员充分注意,推荐三模态组合:

模态 方式 持续时间
视觉 仪表盘/HUD 红色警告,指示方向盘 持续到接管完成
听觉 警报音(85 dB 以上,不可被静音) 持续直到接管
触觉 方向盘振动(80–120 Hz) 脉冲式,间隔 500 ms

5. 验证闭环

5.1 SIL(软件在环)测试

在仿真环境中验证控制策略和状态机边界:

测试对象:ECU 软件(编译为 x86 可执行文件)
测试环境:PC 端仿真(MATLAB/Simulink, dSPACE TargetLink)
覆盖场景:
  ├─ 正常工况(全速度范围跟踪精度)
  ├─ 故障注入(传感器失效、通信丢帧、ECU 重启)
  ├─ 边界条件(极限加速度、极限转角)
  └─ 状态机完整性(所有状态转移路径)

5.2 HIL(硬件在环)测试

真实 ECU 连接到模拟车辆和环境:

┌─────────────────────────────────────────────────┐
│              HIL 测试台                          │
│                                                 │
│  真实 EPS ECU ─── CAN 总线 ─── 实时仿真器       │
│  真实 EHB ECU ─── CAN 总线 ─│   (dSPACE/ETAS)  │
│  传感器模拟器 ───────────────│   模拟车辆动力学  │
│                              │   模拟路面/故障   │
└─────────────────────────────────────────────────┘

HIL 关键测试项:

测试项 描述 通过标准
故障注入 注入传感器失效、总线丢帧 在 FTTI 内检测并降级
电源扰动 主电源瞬断 50 ms 备电正常接管,无意外输出
极限转角 连续施加最大转角指令 无过流/过热,软限位正常
长时间运行 全负荷运行 8 小时 无积累性故障

5.3 台架测试

在真实车辆底盘台架上验证机械和控制性能:

测试项 测试方法 通过标准
转向响应时延 阶跃指令,测量实际转角响应 延迟 < 100 ms(90% 目标值)
制动建压时间 AEB 信号到目标压力时间 < 150 ms(0→100 bar)
坡道起步 10% 坡度,松制动→踩油门 后溜 < 5 cm
低附着制动 模拟冰面(μ = 0.1)全力制动 ABS 正常介入,无车轮锁死

5.4 道路测试

场景 关注重点
急刹(60 → 0 km/h) 制动距离,无偏转,驾驶感受
紧急转向(避障) 转向响应速度,无超调
低附着路面(湿滑、积雪) ABS/ESC 联动,稳定性
坡道(15% 坡度) 坡道起步和停车,无后溜
长时高速巡航(120 km/h×3h) 热稳定性,连续控制精度

6. 标定与回归

6.1 标定项目

标定项 标定时机 工具
转向零位(Steering Offset) 出厂 + 换件 驱动程序标定命令
制动响应曲线(Brake Gain) 出厂 + 季节性 台架测量
坡度传感器校准 出厂 精密坡度仪
踏板传感器电压范围 出厂 标定软件

6.2 OTA 更新后回归清单

每次 ECU 固件或控制参数 OTA 更新后必须验证:

  • [ ] 制动响应曲线与基线对比(< 5% 偏差)
  • [ ] 转向零位未漂移(< 0.5°)
  • [ ] 低速跟停平顺性指标(jerk P95 无上升)
  • [ ] 故障码无新增(DTC 清零后测试一定里程)
  • [ ] 故障切换逻辑(模拟传感器失效,验证降级路径)

7. 交付前检查清单

  • [ ] 单点故障场景是否全部覆盖并满足安全要求?
  • [ ] 组合故障场景(双路同时失效)是否有明确处置方案?
  • [ ] MRC 策略是否可执行(不依赖失效模块)?
  • [ ] 是否具备全链路日志(感知→规划→控制→执行)?
  • [ ] 版本化标定是否完成(出厂标定记录归档)?
  • [ ] OTA 回滚机制是否经过验证(回滚后标定是否自动恢复)?
  • [ ] 极端天气(-40°C 冷启动)下的功能是否经过台架验证?