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。我们取的是合理可预见的场景。
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。所以,尽量用数据说话,别拍脑袋。
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。因为根本不会伤人。
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确定就讲完了。总结一下:
- S评估:看伤害有多重,取合理最坏情况。
- E评估:看场景多常见,用数据说话。
- C评估:看驾驶员多难救场,别高估人。
- ASIL计算:查表,简单直接。
- ASIL分解:降级开发成本,但必须保证独立性。
下一章,咱们会讲如何根据ASIL等级,制定安全目标。到时候见。