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 致命伤害(大概率死亡) 制动主缸失效、转向完全失控、安全气囊误爆
我的经验:别把ASIL D当成“荣誉勋章”。我见过一个项目,把雨刮器控制器定成ASIL D,结果开发成本翻了3倍,最后评审时发现暴露概率极低,降到了ASIL B。白花冤枉钱。

3.2 危害分析与风险评估(HARA)——ASIL的基石

HARA,全称Hazard Analysis and Risk Assessment。这是整个功能安全活动的起点,也是决定ASIL等级的唯一依据。

HARA的核心思路很简单:先想清楚系统会出什么故障,再评估这个故障会带来多严重的后果。

HARA的三大步骤

  1. 功能定义与场景分析——搞清楚系统在什么场景下工作。比如自适应巡航,是在高速上、城市拥堵、还是雨雪天气?
  2. 危害识别——找出功能失效后会导致什么危害。比如“加速踏板卡滞导致非预期加速”。
  3. 风险评估——用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 致命伤害(大概率死亡) 高速碰撞导致颅脑损伤、多器官衰竭
注意:S评估的是最坏情况,但不是“最离谱的情况”。比如制动失效,最坏情况是高速追尾导致死亡,那就是S3。你不能说“驾驶员可以拉手刹”来降低S,那是可控性C的事。S只看伤害本身。

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%的驾驶员能应对) 制动踏板突然踩空、转向完全锁死
我的习惯:评估C时,我通常会假设一个“普通驾驶员”——不是赛车手,也不是新手,就是普通人。如果这个普通人需要超过2秒才能反应过来,那C至少是C2。如果反应时间超过5秒,基本就是C3了。

3.4 ASIL等级确定:S、E、C的组合

有了S、E、C三个参数,就可以查表确定ASIL等级了。ISO 26262-3:2018 Table B.1给出了完整的组合矩阵。

ASIL等级确定流程 危害识别 场景分析 风险评估 严重度 S S0 ~ S3 暴露概率 E E0 ~ E4 可控性 C C0 ~ C3 S × E × C 组合查表 ISO 26262-3 Table B.1 ASIL等级 QM / A / B / C / D ASIL = f(S, E, C) — 三个参数缺一不可,任何一个参数变化都会影响最终等级

具体组合规则如下(简化版):

  • 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不是目标,而是手段。我们的目标是——让车更安全。