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 等级计算矩阵 ASIL 等级计算矩阵(S × E × C) S / E C1 C2 C3 S1 QM QM ASIL A QM ASIL A ASIL B S2 QM ASIL A ASIL B ASIL A ASIL B ASIL C S3 ASIL A ASIL B ASIL C ASIL B ASIL C ASIL D QM ASIL A ASIL B ASIL C ASIL D ⚠ 使用说明: 1. 先确定 S 行,再找 E 行,最后看 C 列。 2. 交叉点即为 ASIL 等级(QM 表示仅需质量管理,无需功能安全)。 3. 如果 S=0 或 E=0 或 C=0,则 ASIL 自动为 QM。
核心规则:ASIL 等级从低到高依次为 QM → A → B → C → D。ASIL D 是最高安全等级,要求最严格。QM 表示「质量管理即可」,不需要按功能安全流程开发。

4.3 实战评估步骤

光看矩阵还不够,你得知道怎么用。我一般按下面五步走:

  1. 识别危害事件——列出所有可能的系统失效场景
  2. 评估严重度 S——判断失效后对人员的伤害程度
  3. 评估暴露概率 E——判断该场景发生的频率
  4. 评估可控性 C——判断驾驶员或系统能否避免伤害
  5. 查表确定 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 之后,你才知道要用多严格的安全措施。下一层就是安全目标的分解,咱们后面再聊。