3、危害分析与风险评估(HARA):HARA的目的与流程

说到功能安全,HARA 绝对是绕不开的核心环节。我个人习惯把它比作「安全工作的地基」——地基没打好,后面盖多高的楼都悬。

HARA 的全称是 Hazard Analysis and Risk Assessment。说白了,就是回答三个问题:

  • 系统可能会出什么危险?
  • 这些危险在什么场景下发生?
  • 风险有多大,该定多高的安全等级?

嗯,咱们一个一个来看。

3.1 HARA 的目的

HARA 的目的其实很单纯:识别出所有合理的危害事件,并给每个事件分配一个 ASIL 等级。这个 ASIL 等级会直接决定后续开发中你要做多少安全工作。

我在项目中遇到过一件事:有个同事觉得某个危害「不太可能发生」,就草草给了个 QM(无安全要求)。结果客户评审时直接打回,说「你凭什么说它不可能?」——你看,HARA 不是拍脑袋,每一步都要有依据。

核心目的总结:

  • 识别系统层面的危害
  • 分析危害发生的场景
  • 评估风险等级(S、E、C)
  • 确定 ASIL 等级
  • 输出安全目标

3.2 HARA 的流程

HARA 的流程,我一般分四步走。你想想看,其实跟医生看病有点像:先问诊(识别危害),再分析病因(情景分析),然后判断严重程度(风险评估),最后开处方(定 ASIL)。

第一步:危害识别

这一步的目标是找出系统所有可能的危害。常用的方法有:

  • 头脑风暴:拉上系统、软件、硬件、测试的人一起聊
  • 检查表法:基于过往项目的经验清单
  • HAZOP 分析:用引导词(如「无」、「多」、「少」、「反向」)来系统性地找偏差

举个例子,一个电子转向系统,可能的危害包括:

  • 非预期的转向助力丢失
  • 转向角度输出错误
  • 转向卡滞

我曾经在一个项目中,大家 brainstorm 了半天只找出 5 个危害。后来用了 HAZOP 引导词,一下子翻倍到 12 个。嗯,工具还是得用对。

第二步:情景分析

危害本身不可怕,可怕的是危害发生在特定场景下。比如「刹车失灵」在空旷路段和高速公路上,风险完全不一样。

情景分析要回答:

  • 这个危害在什么驾驶场景下发生?
  • 驾驶员有没有可能干预?
  • 周围环境(天气、路况)如何?

我建议每个危害至少分析 2-3 个典型场景。别贪多,但也不能漏掉关键场景。

第三步:风险等级评估(S、E、C 参数)

这是 HARA 最核心的定量部分。ISO 26262 定义了三个参数:

参数 全称 含义 等级
S Severity 危害的严重度 S0~S3
E Exposure 场景的暴露概率 E0~E4
C Controllability 驾驶员的可控性 C0~C3

S(Severity)严重度:

  • S0:无伤害
  • S1:轻伤(可自行处理)
  • S2:重伤(需住院,但无生命危险)
  • S3:致命或危及生命

E(Exposure)暴露概率:

  • E0:几乎不可能
  • E1:很少发生(每年几次)
  • E2:偶尔发生(每月几次)
  • E3:经常发生(每周几次)
  • E4:几乎每次驾驶都会遇到

C(Controllability)可控性:

  • C0:完全可控
  • C1:简单可控(大多数驾驶员能应对)
  • C2:一般可控(部分驾驶员可能无法应对)
  • C3:难以控制(几乎无法避免伤害)

我的小技巧: 评估 E 值时,别光凭感觉。我习惯先列一个「典型驾驶场景清单」,比如城市拥堵、高速巡航、夜间行驶、雨天湿滑等,然后看每个场景的占比。这样评估出来的 E 值更有说服力。

第四步:ASIL 等级的确定

有了 S、E、C 三个值,就可以查表确定 ASIL 等级了。ISO 26262 给出了一个矩阵:

S E C1 C2 C3
S1 E1 QM QM QM
S1 E2 QM QM ASIL A
S1 E3 QM ASIL A ASIL B
S1 E4 ASIL A ASIL B ASIL B
S2 E1 QM QM ASIL A
S2 E2 QM ASIL A ASIL B
S2 E3 ASIL A ASIL B ASIL C
S2 E4 ASIL B ASIL C ASIL C
S3 E1 ASIL A ASIL B ASIL B
S3 E2 ASIL B ASIL C ASIL D
S3 E3 ASIL B ASIL C ASIL D
S3 E4 ASIL C ASIL D ASIL D

举个例子:

  • 如果 S=3(致命)、E=3(经常发生)、C=2(一般可控),查表得 ASIL D
  • 如果 S=1(轻伤)、E=2(偶尔)、C=1(简单可控),查表得 QM

注意: 我曾经见过有人把 S、E、C 三个值加起来取平均来定 ASIL——这是错的!ASIL 必须严格查表,不能自己发明公式。另外,ASIL D 是最高的安全等级,要求最严格,成本也最高。所以别动不动就给 ASIL D,要实事求是。

3.3 避坑指南

做 HARA 这么多年,我踩过不少坑。分享几个给你:

  • 别漏掉「合理可预见的误用」:比如驾驶员误操作、儿童乱按按钮。这些不是故障,但也是危害场景。
  • 别把「功能失效」和「危害」混为一谈:功能失效是原因,危害是结果。比如「传感器失效」不是危害,「非预期加速」才是。
  • 别一个人闷头做:HARA 一定要多角色评审。我建议至少拉上系统工程师、测试工程师、安全工程师三个人一起过一遍。

嗯,HARA 的内容差不多就这些。记住一句话:HARA 不是一次性的工作,而是迭代的。随着设计深入,你可能会发现新的危害,或者原来的评估需要调整。保持更新,别让 HARA 变成一纸空文。