3. ASIL等级确定:ASIL定义、危害分析与风险评估(HARA)、严重度(S)、暴露概率(E)、可控性(C)参数
好,咱们进入功能安全里最核心、也最需要经验的一步——ASIL等级确定。
说白了,ASIL就是给每个风险贴个标签,告诉你这个风险有多严重,需要花多大力气去防。我见过不少团队,一上来就拍脑袋说“这个功能必须ASIL D”,结果成本爆炸,最后还得回头重新做HARA。嗯,咱们今天就把这事捋清楚。
3.1 ASIL到底是什么?
ASIL,全称Automotive Safety Integrity Level,汽车安全完整性等级。它不是个抽象概念,而是ISO 26262里用来量化风险、分配开发要求的核心工具。
ASIL分四个等级:A、B、C、D。D最高,A最低。还有一个特殊的——QM(Quality Management),意思是风险低到不需要功能安全流程,普通质量管理就够了。
| ASIL等级 | 风险程度 | 典型应用场景 |
|---|---|---|
| QM | 几乎无安全影响 | 车窗升降(非防夹)、车内氛围灯 |
| ASIL A | 轻度伤害 | 后雾灯故障、低速提示音失效 |
| ASIL B | 中度伤害 | 雨刮器失控、自动大灯误切换 |
| ASIL C | 严重伤害(可能危及生命) | 制动辅助系统部分失效、转向助力突然消失 |
| ASIL D | 致命伤害(大概率死亡) | 制动主缸失效、转向完全失控、安全气囊误爆 |
3.2 危害分析与风险评估(HARA)——ASIL的基石
HARA,全称Hazard Analysis and Risk Assessment。这是整个功能安全活动的起点,也是决定ASIL等级的唯一依据。
HARA的核心思路很简单:先想清楚系统会出什么故障,再评估这个故障会带来多严重的后果。
HARA的三大步骤
- 功能定义与场景分析——搞清楚系统在什么场景下工作。比如自适应巡航,是在高速上、城市拥堵、还是雨雪天气?
- 危害识别——找出功能失效后会导致什么危害。比如“加速踏板卡滞导致非预期加速”。
- 风险评估——用S、E、C三个参数给每个危害打分,最终确定ASIL等级。
关键点:HARA必须基于实际使用场景,不能只做纸上谈兵。我曾经评审过一个项目,他们把“自动驾驶系统在隧道内失效”作为场景,但暴露概率E给的是E4(极高)。我当场就问:“你们这个车是天天跑隧道吗?”最后改成了E2。场景不真实,HARA就是废纸。
3.3 三个核心参数:S、E、C
ASIL等级由三个参数共同决定:严重度(Severity, S)、暴露概率(Exposure, E)、可控性(Controllability, C)。
3.3.1 严重度(S)——伤害有多重?
S评估的是一旦危害发生,对人员造成的伤害程度。分S0、S1、S2、S3四个等级。
| 等级 | 伤害描述 | 举例 |
|---|---|---|
| S0 | 无伤害 | 仪表盘显示错误,但不影响驾驶 |
| S1 | 轻度至中度伤害(可治疗) | 轻微碰撞导致擦伤、扭伤 |
| S2 | 严重伤害(可能危及生命,但可存活) | 骨折、内出血、需要住院治疗 |
| S3 | 致命伤害(大概率死亡) | 高速碰撞导致颅脑损伤、多器官衰竭 |
3.3.2 暴露概率(E)——这个场景多常见?
E评估的是危害场景发生的频率。分E0到E4五个等级。
| 等级 | 暴露频率 | 举例 |
|---|---|---|
| E0 | 几乎不可能 | 车辆在火星上行驶 |
| E1 | 非常低(每年几次) | 在结冰路面行驶(南方地区) |
| E2 | 低(每月几次) | 在雨雪天气行驶 |
| E3 | 中等(每周几次) | 在高速公路上行驶 |
| E4 | 高(几乎每次驾驶) | 在城市道路行驶、倒车 |
这里有个坑——E评估的是“场景暴露”,不是“故障暴露”。比如“制动助力失效”这个危害,场景是“驾驶员需要紧急制动”。那E评估的是“驾驶员需要紧急制动”这个场景有多常见,而不是“制动助力失效”这个故障有多常见。我见过有人搞混,把E打得很低,结果评审被驳回。
3.3.3 可控性(C)——驾驶员能救回来吗?
C评估的是危害发生后,驾驶员或其他人员能否通过及时反应避免伤害。分C0到C3四个等级。
| 等级 | 可控性描述 | 举例 |
|---|---|---|
| C0 | 完全可控 | 空调出风口风向错误,驾驶员随手调一下 |
| C1 | 简单可控(>99%的驾驶员能应对) | 转向灯失效,驾驶员可以手动打手势 |
| C2 | 一般可控(>90%的驾驶员能应对) | 加速踏板轻微卡滞,驾驶员能及时松开 |
| C3 | 难以控制(<90%的驾驶员能应对) | 制动踏板突然踩空、转向完全锁死 |
3.4 ASIL等级确定:S、E、C的组合
有了S、E、C三个参数,就可以查表确定ASIL等级了。ISO 26262-3:2018 Table B.1给出了完整的组合矩阵。
具体组合规则如下(简化版):
- S0 → 无论E和C是多少,都是QM(无安全影响)
- S1 + E1 + C1 → QM
- S1 + E2 + C1 → ASIL A
- S1 + E3 + C1 → ASIL B
- S2 + E2 + C2 → ASIL B
- S2 + E3 + C2 → ASIL C
- S3 + E3 + C2 → ASIL C
- S3 + E4 + C3 → ASIL D
实战经验:我曾经做一个线控制动系统的HARA,有一个危害是“制动踏板位置传感器失效导致制动助力消失”。S是S3(高速追尾死亡),E是E3(每周都会遇到需要紧急制动的情况),C是C2(普通驾驶员需要1-2秒反应,但90%以上能应对)。查表结果是ASIL C。但客户坚持要ASIL D,理由是“制动系统必须最高等级”。我给他们算了一笔账:ASIL D的开发成本是ASIL C的2-3倍,而且需要额外的硬件冗余。最后他们接受了ASIL C,但要求增加一个监控机制。你看,HARA不是拍脑袋,是算出来的。
3.5 常见误区与避坑指南
做HARA这么多年,我总结了一些常见坑,分享给大家:
误区一:把故障频率当成暴露概率
E评估的是场景,不是故障。比如“安全气囊误爆”,场景是“车辆正常行驶”,E是E4。但安全气囊误爆这个故障本身概率很低,那是可靠性的事,不是HARA的事。
误区二:用“有冗余”来降低S
S只看伤害本身,不看系统有没有冗余。比如制动失效,即使你有双回路,最坏情况还是S3。冗余是用来降低C(可控性)的,不是降低S的。
避坑指南:我曾经在评审一个项目时,团队把“转向助力失效”的C打成了C1,理由是“驾驶员可以用力打方向”。我反问:“如果是在高速上以120km/h行驶,突然助力消失,普通驾驶员能控制住吗?”最后改成了C2。记住,C评估的是普通驾驶员,不是大力士。
3.6 小结
ASIL等级确定,说白了就是三个数字的游戏——S、E、C。但每个数字背后,都需要大量的场景分析、数据支撑和工程判断。
我个人习惯是:先做场景穷举,再做参数评估,最后查表定级。不要跳步,不要拍脑袋。HARA做得好,后面的开发就顺;HARA做得糙,后面全是坑。
嗯,这一章就到这。记住:ASIL不是目标,而是手段。我们的目标是——让车更安全。