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 公里……这其实是不符合功能安全要求的。降级状态必须有一个时间限制,超时后要进入紧急安全状态。

避坑指南:我曾经犯过一个错误——把“系统断电”当作安全状态。后来发现,线控转向系统一旦断电,方向盘会锁死,这比故障本身更危险!所以,安全状态一定要结合整车场景来定义,不能想当然。

对于线控转向,我个人推荐的安全状态优先级是这样的:

  1. 维持当前转向角度(如果故障时车辆在直行,就保持直行)
  2. 切换到冗余通道(如果主通道失效)
  3. 主动减速并靠边停车(如果所有转向功能都丢失)

4.3 容错时间间隔

容错时间间隔,英文叫 Fault Tolerant Time Interval,简称 FTTI。这个概念很多人理解偏了。它不是说“故障发生后多久系统会坏”,而是说“从故障发生到系统进入安全状态,所允许的最大时间”

你想想看,如果转向系统在高速上突然失效,你希望它在 10 秒内恢复?还是 100 毫秒内?答案很明显。FTTI 就是用来约束这个时间的。

FTTI 的分解,我习惯用这张图来表示:

故障发生 故障检测 进入安全状态 故障检测时间 (FDT) 故障反应时间 (FRT) 容错时间间隔 (FTTI) FTTI = 故障检测时间 (FDT) + 故障反应时间 (FRT) FDT:从故障发生到系统检测到故障的时间 FRT:从检测到故障到系统进入安全状态的时间

说白了,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,结果自己的硬件跑不到那么快,最后审核没过,整个项目返工。所以,一定要实事求是。


好了,这一讲的内容就到这里。安全目标、安全状态、容错时间间隔,这三个概念是功能安全设计的基石。搞懂了它们,后面的安全架构设计才能有的放矢。

专注资料整理