2. 危害分析与风险评估(HARA)

HARA,全称是 Hazard Analysis and Risk Assessment。说白了,就是回答三个问题:系统会不会出危险?出了危险有多严重?我们能不能控制住?

我刚开始做功能安全那会儿,总觉得HARA就是个走流程的文档工作。直到有一次,我负责的一个ADAS项目,因为低估了某个场景的暴露概率,差点导致ASIL等级定低了。嗯,从那以后,我再也不敢小看这个环节了。

2.1 HARA方法论:从场景到风险

HARA的核心思路,其实不复杂。你想想看,一个系统要出事故,得满足三个条件:

  • 有危险事件发生(比如刹车失灵)
  • 有人暴露在这个危险中(比如驾驶员正在路上开)
  • 驾驶员来不及或无法控制(比如反应时间不够)

所以HARA的流程,就是把这些场景一个个拎出来分析。我个人习惯按以下步骤走:

  1. 功能定义:先搞清楚系统到底要干什么。比如“自动紧急制动(AEB)系统”。
  2. 场景识别:列出所有可能的运行场景。高速、城市、雨天、夜晚……
  3. 危害识别:功能失效会带来什么危害?比如“该刹车时没刹车”。
  4. 风险评估:评估严重度(S)、暴露度(E)、可控度(C)。
  5. ASIL定级:根据S、E、C查表,确定安全等级。

核心原则:HARA不是一次性的工作。项目过程中如果功能变了、场景变了,一定要回头重新评估。我见过太多项目因为“懒得改”而埋下隐患。

下面这张图,是我自己总结的HARA核心逻辑。你看一眼,基本就明白整个框架了。

HARA核心逻辑框架 功能定义 系统要做什么? 场景识别 什么情况下会出事? 危害识别 失效导致什么后果? 风险评估 (S/E/C) 严重度 / 暴露度 / 可控度 ASIL定级 A/B/C/D / QM 功能变更时需重新评估

2.2 严重度(S)评估:后果有多严重?

严重度,就是衡量危险事件对人员造成的伤害程度。ISO 26262把它分成了4个等级:

S等级 描述 典型场景举例
S0 无伤害 轻微刮擦,无人受伤
S1 轻伤(可治疗) 碰撞导致轻微擦伤、扭伤
S2 重伤(需住院) 骨折、内出血,但无生命危险
S3 致命伤 高速碰撞导致死亡或永久性残疾

我的经验:评估严重度时,别只看最坏情况。比如AEB失效,最坏可能是高速追尾致死(S3)。但如果你只考虑低速泊车场景,可能只有S1。所以一定要结合具体场景来评估。

2.3 暴露度(E)评估:发生的概率有多大?

暴露度,指的是危险事件发生的概率。注意,不是失效的概率,而是场景出现的概率

举个例子:AEB在高速上失效,和AEB在停车场失效,暴露度完全不同。高速场景每天可能遇到,停车场场景每周才几次。

E等级 描述 典型场景举例
E0 几乎不可能 车辆被陨石击中
E1 很少发生 每年一次或更少
E2 偶尔发生 每月几次
E3 频繁发生 几乎每次驾驶都会遇到
E4 持续存在 整个驾驶过程中都存在

避坑指南:我曾经犯过一个错误——把“失效概率”当成了“暴露概率”。这是两码事!暴露度只关心场景出现的频率,跟系统本身可不可靠没关系。比如“雨天行驶”这个场景,暴露度是E3,但系统在雨天失效的概率是另一回事。

2.4 可控度(C)评估:驾驶员能救回来吗?

可控度,就是当危险发生时,驾驶员或其他人员有没有能力避免伤害。说白了,就是“能不能刹得住、躲得开”。

C等级 描述 典型场景举例
C0 完全可控 仪表盘灯光失效,驾驶员可以靠感觉驾驶
C1 简单可控 转向助力失效,但驾驶员仍可手动转向
C2 一般可控 刹车助力失效,驾驶员需用力踩刹车
C3 难以控制 刹车完全失效,驾驶员无法减速

这里有个关键点:可控度评估的是“普通驾驶员”的能力,不是专业赛车手。你想想看,一个普通司机在高速上突然刹车失灵,他能做什么?基本什么都做不了。所以C3的判定要谨慎。

2.5 ASIL等级确定:三要素的最终组合

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

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

关键解读

  • QM:Quality Management,即按常规质量管理即可,无需额外安全措施。
  • ASIL A → D:安全等级递增,D是最严格的。
  • 同一个危害,在不同场景下可能得到不同的ASIL等级。取最高等级作为最终要求。

举个例子:AEB系统在高速上失效(S3, E3, C3)→ ASIL D。但在停车场失效(S1, E2, C2)→ QM。那最终AEB系统就要按ASIL D来开发。为什么?因为高速场景的风险太高了,必须覆盖。

我的建议:做HARA时,别急着定等级。先把所有场景列全了,再逐个评估。我习惯用Excel表格把每个场景的S、E、C都记下来,最后统一查表。这样不容易漏掉某个高风险场景。

好了,HARA的核心内容就这些。记住一句话:HARA不是走过场,它是整个功能安全工作的地基。地基没打好,后面盖的楼再漂亮也是危楼。


公众号:蓝海资料掘金营,微信deep3321