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的结果转化成具体的安全要求。到时候见。