4. ASIL等级确定:严重度(S)、暴露概率(E)、可控性(C)的评估与ASIL计算
好,咱们进入正题。ASIL 等级怎么来的?说白了,就是三个维度的打分组合:严重度(Severity, S)、暴露概率(Exposure, E)、可控性(Controllability, C)。ISO 26262 把这套方法叫「危害分析与风险评估」(HARA),而 ASIL 就是 HARA 的输出结果。
我刚开始做功能安全时,总觉得这三个参数很抽象。后来在项目里摔过几次跟头,才真正理解——S、E、C 不是数学题,而是工程判断。你想想看,同一个危害,在不同场景下,这三个值可能完全不同。
4.1 三个维度的定义与分级
先看官方怎么定义的。我习惯用一张表把三个维度的等级说清楚,这样对照着看,不容易乱。
| 维度 | 等级 | 描述 | 典型场景举例 |
|---|---|---|---|
| S(严重度) | S0 | 无伤害 | 系统降级但无安全影响 |
| S1 | 轻伤(可恢复) | 碰撞后轻微擦伤 | |
| S2 | 重伤(可能危及生命) | 骨折、内出血 | |
| S3 | 致命伤 | 高速碰撞导致死亡 | |
| E(暴露概率) | E0 | 几乎不可能 | 车辆在核事故区域行驶 |
| E1 | 非常低(<1% 运行时间) | 一年一次爆胎 | |
| E2 | 低(1%~10%) | 每月一次急刹车 | |
| E3 | 中等(10%~50%) | 每周一次变道 | |
| E4 | 高(>50%) | 每次驾驶都使用的功能 | |
| C(可控性) | C0 | 完全可控 | 驾驶员能轻松应对 |
| C1 | 简单可控 | 95% 以上驾驶员能控制 | |
| C2 | 一般可控 | 85%~95% 驾驶员能控制 | |
| C3 | 难以控制 | <85% 驾驶员能控制 |
我的经验:E 值最容易引起争议。我建议用「运行时间占比」来量化,而不是「事件发生次数」。比如「自动泊车功能」的暴露概率,要看它占整车运行时间的比例,而不是一年用几次。
4.2 ASIL 等级计算矩阵
有了 S、E、C 三个值,怎么合成 ASIL?ISO 26262 给了一张查表矩阵。我直接把它画出来,你一看就明白。
核心规则:ASIL 等级从低到高依次为 QM → A → B → C → D。ASIL D 是最高安全等级,要求最严格。QM 表示「质量管理即可」,不需要按功能安全流程开发。
4.3 实战评估步骤
光看矩阵还不够,你得知道怎么用。我一般按下面五步走:
- 识别危害事件——列出所有可能的系统失效场景
- 评估严重度 S——判断失效后对人员的伤害程度
- 评估暴露概率 E——判断该场景发生的频率
- 评估可控性 C——判断驾驶员或系统能否避免伤害
- 查表确定 ASIL——用 S×E×C 矩阵得到最终等级
我曾经踩过的坑:有一次评估「转向助力失效」,我给了 S2、E3、C2,查表得到 ASIL B。但后来发现,在高速公路上这个场景的 C 值应该降到 C3(难以控制),最终 ASIL 变成了 C。所以记住——同一个危害在不同运行场景下,S、E、C 可能完全不同。一定要按「最坏情况」来评估。
4.4 一个完整的评估案例
咱们拿「制动助力失效」来走一遍完整流程。这个案例我做过好几次,比较典型。
| 评估项 | 分析内容 | 等级 |
|---|---|---|
| 危害描述 | 制动助力系统失效,驾驶员需要更大的力踩制动踏板 | — |
| 运行场景 | 城市道路,车速 50 km/h,前方有车辆突然减速 | — |
| S 评估 | 如果无法及时制动,可能发生追尾,导致乘员受伤甚至死亡 | S3 |
| E 评估 | 制动助力系统在每次驾驶中都会使用,暴露概率 >50% | E4 |
| C 评估 | 大部分驾驶员在失去助力后仍能用力踩下制动,但反应时间增加;约 90% 驾驶员能控制 | C2 |
| 查表结果 | S3 × E4 × C2 → 查矩阵得到 | ASIL D |
我个人的习惯:做完评估后,我会把 S、E、C 的「评估依据」写清楚,附在 HARA 报告里。这样以后审核时,别人能看懂你的判断逻辑,而不是只看一个数字。
4.5 常见误区与避坑指南
- 误区一:把「系统失效概率」当成「暴露概率」
暴露概率 E 指的是「场景发生的概率」,不是「系统失效的概率」。这两个概念完全不同。 - 误区二:低估可控性 C
有些工程师觉得「驾驶员总能反应过来」,但实际数据表明,在突发情况下,人的反应时间会显著增加。我建议参考 ISO 26262 的 C 值定义,不要凭感觉。 - 误区三:忽略组合场景
一个危害可能出现在多个场景中。比如「转向失效」在低速泊车时可能只是 S1,但在高速变道时可能是 S3。这时候要取最严重的场景作为最终 ASIL。
我曾经犯过的错:在一个 ADAS 项目中,我把「自动紧急制动(AEB)失效」的 E 值给了 E3,理由是「AEB 不是每次驾驶都用」。后来安全审核专家指出:AEB 虽然不常用,但它的失效模式在「需要 AEB 介入」的场景下才暴露,而这个场景的暴露概率应该单独评估。最后我们重新做了场景分解,E 值改成了 E2,ASIL 从 D 降到了 C。这个教训让我学会了——E 值一定要绑定到「失效被暴露的场景」,而不是功能本身的使用频率。
4.6 小结
ASIL 等级确定,说白了就是三个数字的工程判断。S 看伤害有多重,E 看场景有多常见,C 看人能不能救回来。三个数字一组合,ASIL 就出来了。
但别忘了——ASIL 不是终点,而是起点。确定了 ASIL 之后,你才知道要用多严格的安全措施。下一层就是安全目标的分解,咱们后面再聊。