2、危害分析与风险评估(HARA):HARA方法论、运行场景定义、危害识别、风险评估与ASIL等级确定

好,咱们进入正题。HARA,全称 Hazard Analysis and Risk Assessment,中文叫危害分析与风险评估。这玩意儿是功能安全里最核心、也是最容易翻车的一步。我见过太多项目,前期HARA做得马马虎虎,后期改得死去活来。说白了,HARA就是回答三个问题:

  • 车会不会出事儿?(危害识别)
  • 出事儿有多严重?(风险评估)
  • 我们得做到多安全?(ASIL等级)

嗯,咱们一个一个来拆解。

2.1 HARA方法论:别把它当成填表游戏

很多人觉得HARA就是拉个Excel表格,填几个参数就完事儿了。我告诉你,千万别这么干。HARA的本质是系统性的推理,不是填空题。

我个人习惯把HARA分成四个步骤:

  1. 场景定义:车在什么情况下会出问题?
  2. 危害识别:系统失效会导致什么危险?
  3. 风险评估:这个危险发生的概率和严重程度如何?
  4. ASIL定级:根据风险,确定安全等级。

你想想看,如果场景都没想清楚,后面的危害识别就是瞎蒙。我在项目中遇到过,有人把“车辆正常行驶”当成唯一场景,结果漏掉了“倒车入库”、“高速超车”这些关键场景。最后评审时被安全审计师怼得哑口无言。

我的小技巧: 做HARA之前,先拉上系统工程师、测试工程师,甚至产品经理,一起开个“场景脑暴会”。别一个人闷头写,容易漏。

2.2 运行场景定义:把“可能出事”变成“具体怎么出事”

运行场景,说白了就是描述“车在什么状态下,遇到了什么情况”。ISO 26262里要求我们考虑:

  • 车辆状态:行驶中、静止、停车、充电、维修模式?
  • 环境条件:白天/黑夜、晴天/雨天/雪天、隧道/高架/普通路面?
  • 驾驶员行为:正常驾驶、分心、疲劳、误操作?
  • 其他交通参与者:行人、自行车、其他车辆、动物?

举个例子,咱们分析一个“电子助力转向系统(EPS)”。你不能只说“转向失效”。你得说:

场景A: 车辆以60km/h在城市快速路行驶,天气晴朗,驾驶员准备变道。此时EPS突然失去助力,方向盘变得很重。驾驶员需要用力才能转动方向盘。

场景B: 车辆在停车场低速倒车入库,地面湿滑。EPS突然输出一个错误的转向角度,导致车辆撞向旁边的车辆。

你看,同一个“转向失效”,在不同场景下,后果完全不一样。场景A可能只是驾驶员费力,场景B可能直接导致碰撞。所以,场景定义越具体,后面的风险评估越准确

注意: 场景不是越多越好。我曾经见过一个项目,定义了200多个场景,结果大部分都是重复的。关键是覆盖所有合理可预见的误用。比如,驾驶员一边开车一边喝水,这算合理误用;但驾驶员一边开车一边玩杂技,这就不算。

2.3 危害识别:找到那个“万一”

危害识别,就是找出系统失效后,会对人造成什么伤害。记住,我们关注的是对人的伤害,不是对车的伤害。车坏了可以修,人受伤了可不行。

常见的危害类型包括:

  • 人身伤害:碰撞、碾压、电击、烧伤
  • 健康损害:有毒气体泄漏、电磁辐射
  • 财产损失:车辆损坏、公共设施损坏(这个一般不算功能安全的核心,但也要考虑)

我习惯用“HAZOP”的思路来做危害识别。就是对着系统功能,一个个问:

  • 如果这个功能不执行,会怎样?
  • 如果这个功能执行错误,会怎样?
  • 如果这个功能在不该执行的时候执行,会怎样?

举个例子,对于“自动紧急制动(AEB)”系统:

功能 失效模式 危害
自动紧急制动 不执行(需要刹车时没刹车) 车辆追尾,导致乘员受伤
自动紧急制动 执行错误(刹车力度过大或过小) 车辆失控或制动距离过长,导致碰撞
自动紧急制动 误触发(不需要刹车时突然刹车) 后车追尾,或乘员因急刹受伤

嗯,这里要注意,危害识别一定要具体到“伤害”层面。比如“车辆追尾”不是危害,“乘员颈部受伤”才是危害。我们最终要评估的是“乘员颈部受伤”的严重程度。

2.4 风险评估与ASIL等级确定:三个参数定生死

风险评估,ISO 26262给了我们三个参数:

  • S(Severity):严重度。伤害有多重?轻伤、重伤、致命?
  • E(Exposure):暴露概率。这个场景发生的频率高不高?
  • C(Controllability):可控性。驾驶员或其他人员能避免伤害吗?

ASIL等级就是由S、E、C三个参数组合决定的。等级从低到高分别是:QM、ASIL A、ASIL B、ASIL C、ASIL D。QM就是质量管理,不需要额外功能安全措施。ASIL D是最严格的,比如刹车、转向这类系统。

我给大家一个快速参考表:

参数 等级 说明
S(严重度) S0 无伤害
S1 轻伤(可恢复)
S2 重伤(可能危及生命,但可存活)
S3 致命(危及生命,存活概率低)
E(暴露概率) E0 几乎不可能
E1 非常低(每年几次)
E2 低(每月几次)
E3 中等(每周几次)
E4 高(几乎每次驾驶都会遇到)
C(可控性) C0 完全可控
C1 简单可控(大多数驾驶员能应对)
C2 一般可控(部分驾驶员能应对)
C3 难以控制(大多数驾驶员无法应对)

然后,根据S、E、C的组合,查表得到ASIL等级。这个表在ISO 26262-3的附录里有,我就不贴了。我给大家一个简化版的判断逻辑:

  • S3 + E4 + C3 → 几乎肯定是 ASIL D
  • S2 + E3 + C2 → 可能是 ASIL BASIL C
  • S1 + E2 + C1 → 大概率是 QMASIL A
避坑指南: 我曾经犯过一个错误,就是把“暴露概率”和“故障概率”搞混了。E评估的是场景发生的概率,不是系统失效的概率。比如“车辆在高速上行驶”这个场景,E值很高(E4),但系统失效的概率可能很低。这两个是独立的,别混为一谈。

2.5 实战案例:一个简单的HARA示例

咱们拿“车窗防夹功能”来练练手。假设这是一个电动车窗,有防夹功能。

场景定义: 车辆静止,后排儿童在玩耍。驾驶员在驾驶位,未注意到后排情况。儿童将头伸出车窗,此时驾驶员按下车窗上升按钮。

危害识别: 如果防夹功能失效,车窗会继续上升,夹住儿童的颈部,导致窒息或严重伤害。

风险评估:

  • S(严重度):S3(致命伤害,窒息)
  • E(暴露概率):E2(儿童乘车场景,每月几次)
  • C(可控性):C2(驾驶员可能无法及时观察到,儿童也无法自救)

ASIL等级: 查表,S3+E2+C2 → ASIL B

你看,一个看似简单的车窗,因为涉及儿童安全,也需要ASIL B等级。所以,别小看任何一个功能。

我的经验: 做HARA时,一定要把最坏情况考虑进去。比如上面这个例子,最坏情况就是儿童窒息。虽然概率低,但一旦发生就是灾难。功能安全的核心就是“预防灾难”,而不是“降低概率”。

好了,这一章的内容就到这里。HARA是功能安全的基石,花再多时间都值得。下一章,咱们聊聊如何把ASIL等级分解到具体的技术安全需求上。到时候见。