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

好,咱们进入第二章。HARA,全称是 Hazard Analysis and Risk Assessment。这名字听着挺唬人,说白了就是一件事:找出车子可能出什么危险,然后评估这个危险有多严重

我个人习惯把HARA看作是功能安全的地基。地基没打好,后面ASIL等级、安全目标全是空中楼阁。我在项目里见过不少团队,急着写安全需求,HARA草草了事,结果后期评审时被安全审计师问得哑口无言。嗯,那场面挺尴尬的。

2.1 HARA的目的

HARA到底要干嘛?三个核心目的:

  • 识别危害:找出系统故障后,可能对人造成伤害的场景
  • 评估风险:判断这个危害发生的概率和严重程度
  • 确定ASIL等级:给每个危害定一个安全等级(A、B、C、D)

你想想看,如果不做HARA,你怎么知道哪个功能需要最高安全等级?总不能所有功能都按ASIL D做吧?那成本谁也扛不住。

核心观点:HARA不是走流程,而是真正理解你的系统在真实世界中会怎么失效。

2.2 危害识别方法

危害识别,我常用的方法有几种。这里给大家列一下:

方法 适用场景 我的经验
头脑风暴 项目早期,团队讨论 别让领导先发言,否则大家都不敢说
检查表法 有历史数据时 我习惯把之前项目的危害清单拿出来对照
FMEA 详细设计阶段 适合分析具体组件,但HARA阶段用得太细反而浪费时间
HAZOP 复杂系统 引导词法,比如「压力过高」「温度过低」

我个人最常用的是头脑风暴+检查表的组合。先让大家放开想,再用检查表查漏补缺。我曾经在一个项目中,团队 brainstorm 了半天没发现某个危害,结果检查表里一条「电池过热」直接点醒了大家。

小技巧:危害识别时,多问「如果...会怎样?」。比如:如果刹车信号丢失会怎样?如果传感器输出卡在最大值会怎样?

2.3 运行场景分析

危害不是凭空产生的,它一定发生在某个场景里。运行场景分析,就是要把这些场景找出来。

场景分析要考虑哪些维度?我一般分三类:

  • 驾驶场景:高速、城市、乡村、停车场、隧道...
  • 环境条件:白天/黑夜、雨/雪/雾、路面湿滑/干燥
  • 车辆状态:静止、低速、高速、转弯、倒车

举个例子。同样是「转向助力失效」这个危害:

  • 在高速上发生 → 危险程度极高
  • 在停车场低速挪车 → 基本没风险

你看,同一个危害,场景不同,风险天差地别。所以ISO 26262要求我们必须结合场景来评估

注意:场景分析不要只考虑「正常情况」。我见过一个项目,只分析了晴天干燥路面,结果在雨雪天测试时出了大问题。极端场景一定要覆盖。

2.4 危害分类与严重度评估

找到危害和场景后,下一步就是定级。ISO 26262用三个参数来评估:

  • S(Severity):严重度,伤害有多重
  • E(Exposure):暴露概率,这个场景出现的频率
  • C(Controllability):可控性,驾驶员能不能避开危险

三个参数组合,最终得出ASIL等级。具体怎么组合?看下表:

S E C ASIL
S1(轻伤) E1(极低) C1(可控) QM
S2(重伤) E2(低) C2(一般) ASIL A/B
S3(致命) E3(中) C3(难控) ASIL C/D
S3(致命) E4(高) C3(难控) ASIL D

这里有个坑,我提醒一下大家。严重度S的评估,一定要基于真实伤害。不是你觉得「这个故障挺严重的」就给S3,而是要看:这个故障会不会导致人员死亡?

我曾经在一个项目中,团队给「空调失效」评了S2。我说等等,空调失效会导致人死亡吗?不会。那最多是S1,甚至QM。别把舒适性问题和安全性问题混为一谈。

总结一下:HARA做得好不好,直接决定了后续所有安全工作的质量。我建议每个项目至少做两轮HARA:第一轮快速扫描,第二轮详细分析。别想着一步到位,那是不可能的。

好了,第二章就到这里。下一章咱们聊聊怎么从HARA结果导出安全目标,那才是真正开始设计安全机制的时候。