第2章:危害分析与风险评估(HARA)

各位工程师朋友,咱们今天聊聊HARA。说实话,这是功能安全里最核心、也最容易被轻视的一步。我见过不少项目,前期HARA做得马虎,后期改得想哭。你想想看,连风险都没搞清楚,后面的安全措施怎么定?

2.1 HARA方法论:从场景到等级

HARA的全称是Hazard Analysis and Risk Assessment。说白了,就是回答三个问题:

  • 车在什么情况下会出问题?(运行场景)
  • 出问题后会怎样?(危害事件)
  • 这个危害有多严重?(ASIL等级)

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

  1. 场景定义 – 搞清楚车辆在什么环境、什么工况下运行
  2. 危害识别 – 找出系统失效后可能导致的危险
  3. 风险评估 – 评估S、E、C三个参数
  4. ASIL定级 – 根据ISO 26262表格确定安全等级

嗯,这里要注意:HARA不是一次性工作。随着项目深入,你会发现有些场景之前没考虑到。我建议至少做两轮迭代。

核心原则:HARA的输出质量,直接决定了整个功能安全开发的成败。别想着走捷径,该花的功夫一分都不能省。

HARA四步法流程 ① 场景定义 运行场景、环境、工况 ② 危害识别 失效模式→危害事件 ③ 风险评估 S、E、C参数评估 ④ ASIL 等级确定 关键输出 • 危害事件清单(Hazard Event List) • 每个危害事件的S、E、C参数 • 对应的ASIL等级(QM / A / B / C / D)

2.2 转向系统运行场景定义

场景定义是HARA的起点。很多新手容易犯一个错误:场景定义得太笼统。比如只说「车辆在高速行驶」,这远远不够。

我个人习惯把场景拆成三个维度:

维度 具体内容 转向系统示例
环境条件 天气、光照、路面状况 雨天湿滑路面、夜间无照明、冰雪路面
车辆状态 车速、转向角、负载 高速120km/h、低速泊车、满载爬坡
驾驶员行为 操作意图、注意力状态 紧急避让、正常变道、分心驾驶

避坑指南:我曾经在一个项目中,只考虑了干燥路面场景。结果冬季测试时,转向助力在冰雪路面出现异常,差点出事故。从那以后,我要求团队必须覆盖至少5种典型路面条件。

对于转向系统,我建议重点关注以下场景:

  • 高速直线行驶 – 转向突然卡死或助力丢失
  • 弯道行驶 – 转向过度或不足
  • 泊车工况 – 低速大角度转向
  • 紧急避让 – 快速转向响应
  • 特殊路面 – 冰雪、颠簸、涉水

2.3 危害事件识别

危害事件识别,就是回答「系统失效后,会发生什么危险?」。这里有个关键点:要区分「失效」和「危害」

举个例子:

  • 失效:转向助力电机突然断电
  • 危害:驾驶员需要施加更大的力才能转动方向盘,可能导致车辆偏离车道

嗯,这里要注意:同一个失效,在不同场景下可能产生不同的危害事件。比如助力丢失:

  • 高速场景 → 车辆偏离车道,碰撞风险
  • 低速泊车 → 驾驶员费力,但风险较低

所以,危害事件必须绑定场景。我习惯用「场景 + 失效 + 后果」的格式来描述:

示例:「车辆在高速(120km/h)直线行驶时,转向助力突然丢失,导致驾驶员无法及时修正方向,车辆偏离车道,可能与其他车辆或护栏发生碰撞。」

2.4 严重度(S)、暴露率(E)、可控性(C)评估

这三个参数是ASIL定级的基础。咱们一个一个说。

2.4.1 严重度(Severity, S)

严重度衡量的是「如果危害发生,人员受伤的严重程度」。ISO 26262定义了S0~S3四个等级:

等级 描述 转向系统示例
S0 无伤害 转向轻微抖动,不影响驾驶
S1 轻伤(可恢复) 转向偏重,驾驶员需费力操作
S2 重伤(可能危及生命) 转向突然卡死,导致碰撞
S3 致命伤害 转向完全失控,高速碰撞

我个人经验:转向系统的严重度评估,要特别关注「二次伤害」。比如转向失效导致车辆冲入对向车道,可能引发连环碰撞,这时候S等级就要往上调。

2.4.2 暴露率(Exposure, E)

暴露率衡量的是「驾驶员在多大频率下会处于这个危险场景」。E0~E4五个等级:

等级 描述 转向系统示例
E0 几乎不可能 车辆在赛道上进行极限漂移
E1 很少发生(<1%的驾驶时间) 冰雪路面高速行驶
E2 偶尔发生(1%~10%) 夜间雨天行驶
E3 经常发生(10%~50%) 城市道路正常行驶
E4 几乎总是(>50%) 高速公路直线行驶

注意:暴露率评估不能拍脑袋。我建议参考实际路测数据或行业统计数据。比如「高速行驶」这个场景,对于经常跑高速的用户,E等级可能达到E4;但对于只在市区开车的用户,可能只有E2。

2.4.3 可控性(Controllability, C)

可控性衡量的是「驾驶员或其他人员能否避免危害」。C0~C3四个等级:

等级 描述 转向系统示例
C0 完全可控 转向轻微偏重,驾驶员轻松应对
C1 简单可控 转向助力丢失,但驾驶员能用力控制
C2 一般可控 转向突然卡死,需要紧急反应
C3 难以控制 转向完全失控,驾驶员无法干预

嗯,这里有个坑:可控性评估不能只看「理论上的可能性」。我记得有个项目,工程师认为「转向卡死后驾驶员可以刹车减速」,所以给了C1。但实际测试发现,在高速上突然卡死,大多数驾驶员的第一反应是猛打方向盘,而不是刹车。所以最后我们改成了C2。

2.5 ASIL等级确定

有了S、E、C三个参数,就可以查ISO 26262的表格来确定ASIL等级了。表格长这样:

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

举个例子:

  • 场景:高速行驶(E4),转向助力丢失导致偏离车道(S2),驾驶员需要紧急反应(C2)
  • 查表:S2 + E4 + C2 → ASIL B

重要提醒:ASIL等级不是越高越好。ASIL D意味着最严格的安全要求,开发成本也最高。合理的做法是:在满足安全目标的前提下,尽量选择较低的ASIL等级。我见过有些团队为了「保险」,把所有危害都定成ASIL D,结果项目预算直接翻倍。

2.6 实战经验总结

最后,分享几个我在项目中踩过的坑:

  • 场景遗漏:有一次我们漏掉了「车辆满载+上坡+转向」的场景,结果测试时发现转向助力不足。从那以后,我要求团队必须列出至少20个典型场景。
  • S/E/C评估过于乐观:工程师容易低估风险。我建议让不同角色(系统、软件、测试)独立评估,然后取最高值。
  • 忽略组合危害:转向失效+制动失效同时发生,虽然概率低,但后果极其严重。对于这种组合危害,建议单独分析。

好了,HARA的内容就讲到这里。记住一句话:HARA做得越细,后面的路越好走。


专注资料整理