4、危害分析与风险评估(HARA):HARA方法论、危害识别、场景分析、风险分类与ASIL等级确定

好,咱们进入功能安全落地最核心的一步——HARA

说实话,很多团队做功能安全,最后卡住的地方就是HARA。要么是危害识别不全,要么是ASIL等级定得过高或过低。我个人习惯是把HARA看作一次「系统级体检」——你得先知道哪里可能出问题,再判断问题有多严重。

4.1 HARA方法论:从「拍脑袋」到「结构化」

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

  • 什么东西会坏?(危害识别)
  • 在什么情况下坏?(场景分析)
  • 坏了后果多严重?(风险分类与ASIL定级)

我在项目中遇到过一种情况:团队花了两周做HARA,结果评审时发现一半的危害场景都是重复的。为什么?因为没有用结构化的方法论。我建议采用「自上而下+自下而上」的双向分析法:

  • 自上而下:从系统功能出发,推导可能的失效行为
  • 自下而上:从具体组件故障出发,反推对系统的影响
我的小技巧:先画一张系统功能框图,把每个功能的输入输出标清楚。然后对着每个箭头问自己:「如果这个信号丢了/错了/晚了,会发生什么?」——这样基本不会漏。

4.2 危害识别:别漏掉「隐形杀手」

危害识别是HARA的基础。你想想看,如果连危害都没找全,后面的ASIL定级再准也没用。

常见的危害类型包括:

  • 功能失效:该刹车时不刹车
  • 功能误触发:不该刹车时突然刹车
  • 功能降级:刹车力度不够
  • 时序问题:刹车信号来得太晚

嗯,这里要注意:危害 ≠ 故障。危害是系统层面的、可能对人员造成伤害的事件。比如「刹车失灵」是危害,但「刹车踏板传感器断线」是故障。HARA关注的是前者。

我曾经踩过的坑:有一次做EPS(电动助力转向)的HARA,我只考虑了「转向助力消失」这个危害。结果评审专家问我:「如果转向助力突然变得很大呢?」——那其实是另一种危害:非预期的转向助力增加。从那以后,我每次做危害识别都会专门列一个「反向危害」清单。

4.3 场景分析:把危害放到「真实世界」里看

同一个危害,在不同场景下风险等级完全不同。举个例子:

  • 「刹车失灵」发生在高速公路上 vs 停车场里,后果天差地别
  • 「转向助力消失」发生在弯道上 vs 直道上,风险等级也不同

我建议用「场景矩阵」来系统化分析:

场景维度 典型取值 说明
车速 0-30 km/h / 30-80 km/h / >80 km/h 车速越高,后果越严重
道路类型 直道 / 弯道 / 坡道 / 交叉口 弯道和交叉口风险更高
环境条件 白天 / 夜晚 / 雨雪 / 雾天 能见度低时风险增加
交通密度 空旷 / 稀疏 / 密集 / 拥堵 车越多,碰撞概率越大
驾驶员状态 正常 / 分心 / 疲劳 驾驶员反应时间影响可控性

我个人习惯是每个危害至少覆盖3-5个典型场景。太少会漏掉高风险场景,太多又会让分析变得臃肿。

4.4 风险分类与ASIL等级确定

终于到了大家最关心的部分——ASIL定级。ISO 26262定义了三个参数:

  • S(Severity):严重度,分S0-S3
  • E(Exposure):暴露概率,分E0-E4
  • C(Controllability):可控性,分C0-C3

ASIL等级 = S × E × C 的组合结果。具体查表:

S E C ASIL
S3 E4 C3 ASIL D
S3 E3 C2 ASIL C
S2 E4 C2 ASIL B
S1 E3 C1 ASIL A
S0 / E0 / C0 任意组合 QM

这里有个容易混淆的点:ASIL D ≠ 四个A加起来。ASIL D是最高等级,要求最严格的安全机制。我见过有人把ASIL D理解成「四个ASIL A的冗余」,这是不对的。

实战经验:定ASIL等级时,最容易出现「过度定级」的问题。比如一个场景下S=3、E=2、C=2,查表是ASIL B。但有人觉得「S都3了,怎么也得给个C吧?」——千万别这么干。ASIL等级是三个参数的综合结果,不是只看严重度。定高了,开发成本翻倍;定低了,安全风险增加。

4.5 避坑指南:HARA常见问题

最后,分享几个我亲身踩过的坑:

  • 场景不够具体:别写「高速行驶」,要写「车速120km/h、夜间、雨天、弯道」——越具体越好
  • 忽略组合危害:两个独立危害同时发生怎么办?比如「刹车失灵+转向卡死」——虽然概率低,但后果可能是灾难性的
  • ASIL分解滥用:别为了降低开发成本,把ASIL D随意分解成两个ASIL B。分解必须有合理的架构依据
  • 文档与实现脱节:HARA做完了,但后续的安全需求、安全机制设计完全没参考HARA结果——这是最常见的「两张皮」问题

我记得有一次评审,对方问我:「你这个HARA里写的场景,在实车上真的会发生吗?」——这个问题问得好。从那以后,我每次做完HARA都会找系统工程师和测试工程师一起过一遍,确认每个场景的「真实性」。

好了,HARA这部分就讲到这里。下一章咱们聊聊安全目标与安全状态——怎么把HARA的结果转化成具体的安全需求。