4. 安全目标与安全状态:安全目标的制定、安全状态的分类、容错时间间隔
好,咱们进入第四讲。这一讲的内容,说白了就是回答三个问题:系统要保什么?保不住的时候怎么办?以及,必须在多快的时间内做出反应?
我刚开始做功能安全那会儿,总觉得安全目标就是写几个“不能失效”的句子。后来被审核老师怼了几次,才明白这里面的门道有多深。咱们一个一个来拆。
4.1 安全目标的制定
安全目标,英文叫 Safety Goal,简称 SG。它是从危害分析和风险评估(HARA)里直接导出来的。你想想看,HARA 里我们识别出了危害事件,比如“方向盘打左,车轮却往右转”,那对应的安全目标就是——“防止方向盘与车轮转向方向相反”。
制定安全目标,我个人习惯遵循几个原则:
- 每个危害事件至少对应一个安全目标。一个危害可能对应多个目标,但一个目标不能覆盖所有危害。
- 安全目标要可验证。不能写“系统要足够安全”这种废话。要写“当车速大于 30 km/h 时,方向盘转角与车轮转角偏差不超过 ±5°”。
- 安全目标要分配 ASIL 等级。HARA 里评出来的 ASIL A/B/C/D,直接贴到安全目标上。
核心要点:安全目标是“最高层级的安全需求”。它不关心你用什么芯片、什么算法,只关心“系统不能做什么坏事”。
举个例子,我在一个线控转向项目里,遇到过这样一个安全目标:
SG-01:防止非预期的转向角度变化
- ASIL:C
- 描述:当驾驶员未操作方向盘时,前轮转向角度变化不得超过 ±1°
- 容错时间间隔:≤ 100 ms
你看,这个目标就很清晰。它告诉开发团队:你必须在 100 毫秒内检测到故障,并且把系统拉回安全状态。
4.2 安全状态的分类
安全状态,就是系统出了故障之后,我们希望它进入的一个“不出事”的状态。线控转向系统比较特殊,因为它没有机械备份(至少全冗余线控没有),所以安全状态的设计很讲究。
我一般把安全状态分成三类:
| 分类 | 描述 | 典型场景 |
|---|---|---|
| 正常安全状态 | 系统功能完全正常,无故障 | 车辆启动自检通过 |
| 降级安全状态 | 部分功能受限,但核心安全功能保留 | 主控制器失效,切换到冗余控制器 |
| 紧急安全状态 | 系统主动干预,确保车辆进入最小风险状态 | 双控制器都失效,系统自动减速并靠边停车 |
嗯,这里要注意:降级状态不是永久状态。我曾经见过一个项目,降级之后就不管了,结果驾驶员在高速上开着降级模式跑了 200 公里……这其实是不符合功能安全要求的。降级状态必须有一个时间限制,超时后要进入紧急安全状态。
避坑指南:我曾经犯过一个错误——把“系统断电”当作安全状态。后来发现,线控转向系统一旦断电,方向盘会锁死,这比故障本身更危险!所以,安全状态一定要结合整车场景来定义,不能想当然。
对于线控转向,我个人推荐的安全状态优先级是这样的:
- 维持当前转向角度(如果故障时车辆在直行,就保持直行)
- 切换到冗余通道(如果主通道失效)
- 主动减速并靠边停车(如果所有转向功能都丢失)
4.3 容错时间间隔
容错时间间隔,英文叫 Fault Tolerant Time Interval,简称 FTTI。这个概念很多人理解偏了。它不是说“故障发生后多久系统会坏”,而是说“从故障发生到系统进入安全状态,所允许的最大时间”。
你想想看,如果转向系统在高速上突然失效,你希望它在 10 秒内恢复?还是 100 毫秒内?答案很明显。FTTI 就是用来约束这个时间的。
FTTI 的分解,我习惯用这张图来表示:
说白了,FTTI 就是你的“救命时间窗口”。在这个窗口内,你必须完成两件事:发现故障和做出反应。
实战经验:我在一个项目中,FTTI 要求是 100 ms。结果我们的故障检测用了 80 ms,故障反应用了 30 ms,加起来 110 ms,超了!后来我们优化了检测算法,把 FDT 压到了 50 ms,才勉强达标。所以,设计时一定要留余量,别卡着极限值做。
对于线控转向系统,典型的 FTTI 值可以参考下表:
| 危害场景 | ASIL 等级 | 典型 FTTI |
|---|---|---|
| 非预期转向(高速) | ASIL D | ≤ 50 ms |
| 转向卡滞(中低速) | ASIL C | ≤ 100 ms |
| 转向助力丢失 | ASIL B | ≤ 200 ms |
| 传感器漂移(非安全关键) | ASIL A | ≤ 500 ms |
嗯,最后再啰嗦一句:FTTI 不是拍脑袋定的。它需要结合车辆动力学仿真、驾驶员反应时间、系统响应能力来综合确定。我见过有人直接抄竞品的 FTTI,结果自己的硬件跑不到那么快,最后审核没过,整个项目返工。所以,一定要实事求是。
好了,这一讲的内容就到这里。安全目标、安全状态、容错时间间隔,这三个概念是功能安全设计的基石。搞懂了它们,后面的安全架构设计才能有的放矢。