4. 危害分类与ASIL等级确定:严重度(S)、暴露概率(E)、可控性(C)评估、ASIL等级计算与分解

好,咱们进入HARA最核心的一步——给危害定级。说白了,就是回答三个问题:这危害有多疼?多久碰上一次?出了事司机能救回来吗?这三个问题的答案,直接决定了你的ASIL等级。

我个人习惯,在做这一步之前,先把所有危害事件列个表。然后一个一个过,千万别跳步。我见过有人凭感觉给S、E、C打分,结果项目后期发现ASIL定高了,成本爆炸;或者定低了,安全目标不达标,那才叫一个头疼。

4.1 严重度(Severity, S)评估

严重度,就是看危害发生后,对人员造成的伤害程度。ISO 26262分了四个等级:S0、S1、S2、S3。

等级 描述 典型场景
S0 无伤害 轻微刮擦,无人受伤
S1 轻伤(可治疗,无生命危险) 低速追尾,颈部轻微扭伤
S2 重伤(有生命危险,但可存活) 高速碰撞,骨折或内出血
S3 致命伤(危及生命或死亡) 高速正面碰撞,严重颅脑损伤

评估时,你得考虑最坏情况。但注意,不是无限放大。比如一个刹车失灵,在高速上可能S3,但在停车场可能只有S1。我们取的是合理可预见的场景

我的经验: 评估S时,多拉上系统工程师和碰撞安全工程师一起讨论。我自己一个人闭门造车,容易把S估高。有一次,我把一个转向失效估成了S3,后来碰撞专家说“这车速下,撞护栏最多S2”,才改过来。

4.2 暴露概率(Exposure, E)评估

暴露概率,就是问:这个危害场景,在车辆正常生命周期里,出现的频率有多高? 注意,不是问故障发生的概率,而是问场景本身出现的概率。

比如“高速公路上以120km/h行驶”这个场景,对于经常跑高速的车,E就高;对于只在市区开的车,E就低。ISO 26262也分了四个等级:E0、E1、E2、E3、E4。

等级 描述 典型场景
E0 几乎不可能 车辆在月球上行驶
E1 非常低(<1%的驾驶时间) 在结冰路面上行驶(南方地区)
E2 低(1%~10%的驾驶时间) 在雨雪天气行驶
E3 中等(10%~50%的驾驶时间) 在城市拥堵路段行驶
E4 高(>50%的驾驶时间) 在干燥柏油路上以60km/h行驶

这里有个坑,我踩过。有一次评估“车辆在隧道内行驶时大灯失效”,我把E估成了E2。后来一查统计数据,隧道行驶时间占比其实很低,应该给E1。所以,尽量用数据说话,别拍脑袋。

注意: E评估的是场景暴露,不是故障暴露。故障可能一年才发生一次,但场景可能每天都有。别搞混了。

4.3 可控性(Controllability, C)评估

可控性,就是问:当危害发生时,驾驶员或其他人员,有多大能力避免伤害? 说白了,就是“救场”的难度。

ISO 26262分了四个等级:C0、C1、C2、C3。

等级 描述 典型场景
C0 完全可控 空调不制冷,驾驶员可以开窗
C1 简单可控(>99%的驾驶员能应对) 刹车轻微变软,驾驶员提前预判
C2 一般可控(>90%的驾驶员能应对) 转向助力突然消失,但还能用力转动
C3 难以控制(<90%的驾驶员能应对) 刹车完全失效,或方向盘锁死

评估C时,我建议你把自己代入驾驶员角色。想象一下:你正以100km/h巡航,突然某个功能失效,你慌不慌?你有几秒钟反应?操作复杂吗?

我曾经评估过一个“自动紧急制动(AEB)误触发”的危害。当时我觉得C2就够了,毕竟驾驶员可以踩油门解除。但后来测试发现,误触发时驾驶员第一反应是踩刹车,反而加重了危险。最后改成了C3。所以,别高估人的反应能力

4.4 ASIL等级计算

有了S、E、C,查表就能得到ASIL等级。ISO 26262给了一张标准表:

S E C ASIL
S1 E1 C1 QM
S1 E2 C2 ASIL A
S2 E2 C2 ASIL B
S2 E3 C3 ASIL C
S3 E3 C3 ASIL D
(注:其他组合可查ISO 26262-3:2018 Table 1)

举个例子:一个危害的S=2(重伤),E=3(中等暴露),C=2(一般可控),查表得ASIL B。就这么简单。

但注意,如果S、E、C中有一个是0,那整个就是QM(质量管理),不需要按功能安全开发。比如S0,不管E和C多高,都是QM。因为根本不会伤人。

核心原则: ASIL等级越高,开发要求越严格。ASIL D要求最严,QM最松。别为了省事故意把等级定低,那是拿人命开玩笑。

4.5 ASIL分解(ASIL Decomposition)

有时候,一个功能被分配了很高的ASIL等级(比如ASIL D),开发成本太高。这时候,我们可以用ASIL分解来“降级”。

ASIL分解的核心思想是:把一个高ASIL的安全目标,分解到多个独立元素上,每个元素承担一部分。 只要这些元素相互独立,且满足相应的安全要求,整体就能达到原来的安全等级。

举个例子:一个ASIL D的刹车功能,可以分解成两个ASIL C的子系统。只要这两个子系统是独立的(比如一个用液压,一个用电子),且各自满足ASIL C的开发要求,那整体就满足ASIL D。

分解规则如下:

  • ASIL D 可以分解为:ASIL C + ASIL C,或 ASIL B + ASIL B,或 ASIL D + QM(但QM部分要足够简单)
  • ASIL C 可以分解为:ASIL B + ASIL B,或 ASIL C + QM
  • ASIL B 可以分解为:ASIL A + ASIL A,或 ASIL B + QM
  • ASIL A 可以分解为:ASIL A + QM

注意,分解后的元素之间必须相互独立。不能有共因失效(比如共用同一个电源、同一个传感器)。否则分解无效。

我的建议: 别滥用分解。我见过一个项目,把ASIL D分解成了四个ASIL A,结果四个子系统之间耦合严重,最后测试时发现一个失效全崩了。分解的前提是真正的独立性,不是纸面上的。

嗯,到这里,危害分类和ASIL确定就讲完了。总结一下:

  1. S评估:看伤害有多重,取合理最坏情况。
  2. E评估:看场景多常见,用数据说话。
  3. C评估:看驾驶员多难救场,别高估人。
  4. ASIL计算:查表,简单直接。
  5. ASIL分解:降级开发成本,但必须保证独立性。

下一章,咱们会讲如何根据ASIL等级,制定安全目标。到时候见。