4. HARA实践:严重度(S)评估、暴露率(E)评估、可控性(C)评估、ASIL等级确定

好,咱们进入HARA最核心的实操环节。前面你识别了危害事件,现在要给它“打分”——定出S、E、C三个参数,最后合成ASIL等级。

这一步我见过太多人翻车。有人把S估得过高,导致ASIL等级虚高,成本爆炸;有人把E估得过低,结果安全目标覆盖不足,后期整改欲哭无泪。说白了,HARA不是纯数学题,它需要工程判断力。

核心原则: S、E、C的评估必须基于“车辆在运行场景中的真实状态”,而不是“最坏情况”或“理想情况”。

4.1 严重度(S)评估:看伤害有多重

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

等级 描述 典型场景
S0 无伤害 轻微刮擦,无人受伤
S1 轻伤(可治疗) 低速追尾,颈部轻微扭伤
S2 重伤(需住院) 中等速度碰撞,骨折
S3 致命伤 高速碰撞,或涉及弱势道路使用者

我个人习惯,评估S时先问三个问题:

  • 碰撞速度范围是多少? 城市工况(0-30km/h)和高速工况(80-120km/h)的S完全不同。
  • 碰撞对象是谁? 撞墙和撞行人,S差一个等级很正常。
  • 有没有二次伤害风险? 比如车辆起火、翻滚、坠崖,这些会直接拉高S。
我的经验: 我在做EPS(电动助力转向)项目时,评估“非预期转向”这个危害。一开始团队给了S3,理由是“高速失控会死人”。但我让他们把场景细化:是城市低速变道?还是高速巡航?最后发现,大部分场景下速度低于60km/h,且驾驶员有足够反应时间,最终定在S2。别一上来就S3,那会让后续设计很难做。

4.2 暴露率(E)评估:看发生的概率

暴露率,指的是“车辆处于可能发生危害的场景中的概率”。注意,不是危害发生的概率,而是场景出现的概率。

等级 描述 典型场景
E0 几乎不可能 车辆在月球上行驶
E1 非常低 每年几次
E2 低 每月几次
E3 中等 每周几次
E4 高 几乎每次驾驶

评估E的时候,我建议你拿真实运营数据说话。比如:

  • 这个场景在用户日常驾驶中出现的频率是多少?
  • 有没有季节性因素?比如冰雪路面,北方冬天E值就高。
  • 有没有地域性差异?欧洲窄路和北美宽路,E值不一样。
避坑指南: 我曾经见过一个团队,把“车辆在高速上以120km/h行驶时制动失效”的E估成E2。但实际统计数据显示,高速行驶占总驾驶时间的30%以上,制动系统失效虽然罕见,但场景暴露率极高。正确的做法是:先评估场景暴露率(高速行驶),再评估故障本身。最终E应该定在E3或E4。

4.3 可控性(C)评估:看驾驶员能不能救回来

可控性,就是当危害事件发生时,驾驶员或相关人员(比如行人、其他车辆)有没有能力避免伤害。

等级 描述 典型场景
C0 完全可控 轻微加速抖动,驾驶员轻松应对
C1 简单可控 大部分驾驶员能应对,少数需要帮助
C2 一般可控 经验丰富的驾驶员能应对,新手可能失控
C3 难以控制 即使专业驾驶员也难以避免伤害

评估C时,我通常会做一个小实验:让不同驾驶水平的同事在模拟器上体验这个故障场景。如果80%以上的人能在2秒内做出正确反应,C可以定在C1或C2。如果大部分人需要3秒以上,或者根本不知道怎么做,那就是C3。

关键点: 可控性评估要考虑“人的极限”。比如,突然的转向力矩输入,普通人根本来不及反应,C直接给C3。但如果是缓慢的制动衰退,驾驶员有足够时间感知并采取行动,C可以给C1。

4.4 ASIL等级确定:三合一

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

S E C1 C2 C3
S1 E1 QM QM QM
S1 E2 QM QM ASIL A
S1 E3 QM ASIL A ASIL B
S1 E4 ASIL A ASIL B ASIL B
S2 E1 QM QM ASIL A
S2 E2 QM ASIL A ASIL B
S2 E3 ASIL A ASIL B ASIL C
S2 E4 ASIL B ASIL C ASIL C
S3 E1 ASIL A ASIL B ASIL B
S3 E2 ASIL B ASIL B ASIL C
S3 E3 ASIL B ASIL C ASIL D
S3 E4 ASIL C ASIL D ASIL D

举个例子:你评估一个“非预期加速”的危害。

  • S:城市工况,速度低,可能撞到前车,但致命概率低 → S2
  • E:城市驾驶每天都会遇到,暴露率极高 → E4
  • C:大部分驾驶员能迅速踩刹车,但新手可能慌乱 → C2

查表:S2+E4+C2 = ASIL C。嗯,这个等级不低,需要做很多安全机制。

我的习惯: 每次查完表,我都会反问自己一句:“这个结果合理吗?”如果感觉ASIL等级和实际风险感知差距很大,我会重新审视S、E、C的评估依据。有时候是场景定义太宽泛,有时候是忽略了某些缓解因素。HARA不是一次性的,它需要迭代。

4.5 HARA评估流程图

下面这张图,是我自己总结的HARA评估流程,帮你把整个逻辑串起来:

HARA评估流程图 HARA评估流程图 危害识别 场景定义 严重度(S)评估 暴露率(E)评估 可控性(C)评估 ASIL等级确定 安全目标定义 说明:S、E、C评估需要并行进行,但最终查表确定ASIL等级时, 三个参数必须来自同一个危害事件和同一个运行场景。

4.6 常见错误与避坑

最后,我总结几个HARA实践中的常见错误,你遇到了可以少走弯路:

  • 错误一:S、E、C评估相互影响。 比如,你觉得“这个场景暴露率高,所以严重度也应该高”——这是错的。S和E是独立的,不能互相补偿。
  • 错误二:忽略场景细化。 同一个危害,在不同场景下S、E、C可能完全不同。比如“制动失效”在高速和低速下,S差两个等级。
  • 错误三:过度依赖专家判断。 我见过一个项目,所有评估都是架构师一个人拍脑袋定的。结果审核时被质疑,不得不返工。最好让系统、软件、硬件、测试、安全工程师一起评审。
  • 错误四:忘记记录假设。 评估时你肯定做了很多假设,比如“假设驾驶员注意力集中”、“假设天气良好”。这些假设必须记录在HARA报告中,否则后续设计变更时,没人知道当初为什么这么定。
我曾经踩过的坑: 有一次评估“自动紧急制动(AEB)误触发”的危害。团队给了S2、E3、C2,查表得ASIL B。但后来发现,我们忽略了“误触发发生在高速且后方有车”的场景。那个场景下,S可以到S3,C到C3,ASIL直接跳到D。所以,HARA一定要覆盖所有合理的场景组合,别偷懒。

好了,HARA的S、E、C评估和ASIL确定,核心就是这些。记住:评估不是目的,目的是为后续的安全目标定义和功能安全设计提供准确的输入。你评估得越扎实,后面的路就越顺。