3. 危害分析与风险评估(HARA):场景定义、危害识别、ASIL等级确定

好,咱们进入安全气囊系统功能安全落地的核心环节——HARA。说实话,很多工程师觉得HARA就是走个过场,填几张表就完事了。但我做了这么多年项目,可以负责任地告诉你:HARA做得粗,后面全是坑。

HARA说白了就三件事:搞清楚车在什么情况下会出问题、识别出这些问题的危害有多大、最后给每个危害定个安全等级(ASIL)。咱们一个一个来拆解。

3.1 场景定义:你得知道车在干嘛

场景定义是HARA的第一步。很多人一上来就写“车辆行驶中”,这太笼统了。我习惯把场景拆成三个维度:

  • 运行模式:车辆是点火、行驶、还是熄火?
  • 环境条件:白天还是黑夜?晴天还是雨雪?
  • 人员状态:驾驶员是否系了安全带?座椅上有没有儿童?

举个例子,安全气囊误爆这个危害。你想想看,如果车停在车库,人不在车上,误爆了最多坏个内饰。但如果车在高速上行驶,副驾坐着人,这时候误爆——嗯,后果就严重了。

我个人习惯的做法:先列一个场景矩阵。横轴是运行模式,纵轴是环境条件,交叉点就是我们要分析的场景。这样不会漏,也方便后续评审。

3.2 危害识别:别放过任何一个“万一”

危害识别,就是找出系统失效后可能导致的伤害。这里要注意,我们关注的是对人的伤害,不是对车的伤害。

安全气囊系统常见的危害有哪些?我列几个典型的:

危害类型 具体描述 典型场景
误爆 非预期展开气囊 正常行驶中突然弹出
不爆 需要展开时未展开 碰撞发生后无反应
延迟展开 展开时机过晚 碰撞后0.5秒才弹出
展开力过大 气囊充气压力超标 对儿童造成二次伤害

我在项目中遇到过最头疼的,是“误爆”和“不爆”同时存在的情况。你想想看,一个故障可能导致两种完全相反的危害,这时候ASIL等级怎么定?后面会讲到。

一个小技巧:做危害识别时,拉上系统工程师、硬件工程师、甚至测试工程师一起头脑风暴。一个人想容易有盲区,人多视角广。

3.3 ASIL等级确定:S/E/C三参数

ASIL等级是HARA的最终输出。它由三个参数决定:S(Severity,严重度)E(Exposure,暴露概率)C(Controllability,可控性)。每个参数分4个等级(0-3),组合后得到QM、ASIL A、B、C、D。

3.3.1 S(严重度):伤有多重?

S参数评估的是如果危害发生,对人员造成的伤害程度。ISO 26262给了明确的定义:

  • S0:无伤害
  • S1:轻伤(比如擦伤、淤青)
  • S2:重伤但可存活(比如骨折)
  • S3:致命或危及生命

安全气囊误爆,如果发生在高速行驶中,驾驶员可能因惊吓导致车辆失控,这妥妥的S3。但如果只是低速倒车时误爆,可能只是吓一跳,S1就够了。

注意:S等级的评估要基于最坏情况。我曾经见过一个项目,工程师把误爆的S评为S1,理由是“驾驶员反应快能控制住”。但评审时被安全专家怼了——你凭什么假设驾驶员反应快?最坏情况是驾驶员惊慌失措,车辆失控撞向护栏。所以,别太乐观。

3.3.2 E(暴露概率):这事儿常见吗?

E参数评估的是场景发生的概率。注意,不是危害发生的概率,而是场景本身出现的概率。

  • E0:几乎不可能
  • E1:很少发生(比如每年几次)
  • E2:偶尔发生(比如每月几次)
  • E3:频繁发生(比如每天都会遇到)

举个例子,“车辆在高速上以120km/h行驶”这个场景,对于经常跑高速的车主来说,E3没跑。但“车辆在冰雪路面上以80km/h行驶”,对于南方用户可能只有E1。

这里有个坑:E参数是基于目标市场的。同一款车卖到北欧和卖到东南亚,E值可能完全不同。我建议在项目初期就明确目标市场,否则后面评审会扯皮。

3.3.3 C(可控性):人能躲开吗?

C参数评估的是驾驶员或其他人员能否通过及时反应来避免伤害

  • C0:完全可控
  • C1:简单可控(比如有足够时间反应)
  • C2:一般可控(需要一定技巧或经验)
  • C3:难以控制或不可控

安全气囊误爆,驾驶员几乎无法控制——气囊已经弹出来了,你还能把它塞回去?所以C3。但如果是“气囊展开力过大”这种危害,如果驾驶员能通过调整坐姿来减轻伤害,可能降到C2。

关键点:C参数评估的是“人”的能力,不是“系统”的能力。别把“系统有冗余设计所以可控”这种逻辑带进来。我们评估的是:如果系统失效了,人能不能靠自己补救。

3.4 ASIL等级组合:一张表搞定

有了S、E、C三个参数,查表就能得到ASIL等级。ISO 26262 Part 3里有个标准矩阵,我直接贴出来:

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

举个例子:安全气囊误爆,S3(致命)、E3(高速行驶很常见)、C3(不可控),查表得到ASIL D。这也是为什么安全气囊系统通常要求ASIL D的原因。

3.5 避坑指南:我踩过的几个雷

最后分享几个实战中容易犯的错误:

  • 场景定义太粗:只写“行驶中”是不够的。要细化到车速、路况、乘员状态。否则后面做安全分析时,你会发现很多场景覆盖不到。
  • S/E/C参数互相影响:比如高速行驶(E3)时误爆,严重度S3;但低速行驶(E1)时误爆,可能只有S1。同一个危害在不同场景下,ASIL等级可能不同。我建议按最坏场景定级。
  • 忽略组合危害:安全气囊不爆,同时安全带预紧器也失效——这种组合危害的ASIL等级可能更高。HARA时要考虑单一故障,但也要留个心眼看看组合情况。

我的个人建议:HARA文档不是写一次就完事的。随着项目推进,你会发现新的场景、新的危害。保持文档的迭代更新,别等到最后评审才发现漏了关键场景。

好了,HARA这部分就讲到这里。下一章咱们聊聊安全目标(Safety Goal)的制定——说白了,就是把HARA的结果转化成具体的安全要求。到时候见。