3. 危害分析与风险评估(HARA)

各位好,欢迎来到第三章。这一章我们聊HARA——危害分析与风险评估。说实话,HARA是整个功能安全开发的基石。你后面做的所有安全机制、测试用例,追根溯源都来自这里。如果HARA做偏了,那整个项目就像盖楼打歪了地基,后面再折腾也白搭。

我个人习惯把HARA看作一个「找茬」的过程。你不是在证明系统有多安全,而是在拼命想:它到底会怎么出问题?出问题后会多严重?

3.1 HARA方法论:三步走

HARA不是玄学,ISO 26262给了很清晰的流程。我把它拆成三步:

  1. 场景分析:车在什么情况下运行?
  2. 危害识别:系统故障会导致什么危险?
  3. 风险评定:这个危险有多大概率发生?后果多严重?

嗯,这里要注意。很多人一上来就直奔「危害识别」,跳过了场景分析。我曾经在一个项目里吃过这个亏——团队直接列了一堆故障模式,结果评审时发现有一半的场景根本不合理,比如「车辆静止时方向盘自动转向」。你想想看,车停着,转向有啥危害?

核心原则:HARA必须基于整车运行场景,不能脱离实际。

3.2 转向系统典型危害识别

线控转向和传统转向不一样。传统转向有机械连杆,方向盘和车轮是硬连接。线控转向呢?中间只有电信号。一旦信号断了、错了、延迟了,后果可能很严重。

我整理了一份线控转向的典型危害清单,供你参考:

危害编号 危害描述 触发场景
H-01 非预期转向(方向盘未动,车轮自己转) 高速巡航、变道
H-02 转向丧失(方向盘转动,车轮无响应) 弯道、紧急避障
H-03 转向反向(左打方向,车轮往右转) 任何行驶场景
H-04 转向卡滞(方向盘卡在某个角度) 低速泊车、高速直行
H-05 力反馈异常(方向盘突然变轻或变重) 任何行驶场景

你看,H-03「转向反向」是最危险的。我记得有一次做FMEA评审,一个同事说:「反向转向的概率极低,传感器冗余设计已经覆盖了。」我当时反问了一句:「那如果两个传感器同时被同一个原因干扰呢?」全场安静了。这就是共因失效,后面我们会专门讲。

避坑指南:我曾经见过一个项目,把「转向丧失」的ASIL等级定低了,理由是「有冗余电机」。但评审时发现,冗余电机共用了一条电源线。一条线断了,两个电机都完蛋。所以,冗余不等于安全,要看独立性。

3.3 风险等级评定:ASIL的由来

风险等级评定,说白了就是给每个危害打个分。ISO 26262用三个参数:

  • S(Severity):严重度。人受伤有多重?
  • E(Exposure):暴露概率。这个场景出现的频率?
  • C(Controllability):可控性。驾驶员能救回来吗?

三个参数组合,查表得到ASIL等级:A、B、C、D,或者QM(质量管理)。

我直接给个线控转向的评定示例:

危害 S E C ASIL
非预期转向(高速) S3(生命危险) E4(高频) C3(难以控制) ASIL D
转向丧失(低速泊车) S1(轻伤) E3(中等) C1(容易控制) QM
力反馈异常 S2(重伤) E4(高频) C2(一般可控) ASIL B

你可能会问:为什么「转向丧失」在低速泊车时只是QM?因为车速低,驾驶员可以刹车,危害很小。但同样的故障放到高速弯道,可能就是ASIL D。所以,同一个故障,在不同场景下,ASIL等级可能完全不同。

个人经验:我建议在做HARA时,把场景写具体。不要只写「高速行驶」,要写「高速行驶、弯道、雨天、能见度低」。场景越具体,评定越准确。我曾经见过一个项目,场景写得太笼统,结果评审时大家吵了一个小时,最后发现是场景定义不清的问题。

3.4 HARA核心流程SVG

下面这张图是我自己画的HARA流程,你可以把它贴在工位上。每次做HARA前看一眼,不容易漏步骤。

HARA核心流程图 HARA核心流程 系统定义 场景分析 危害识别 风险评定(S/E/C) ASIL等级输出 关键输入 • 功能架构 • 运行场景 • 故障模式库 • 驾驶员行为

3.5 常见误区与避坑

做HARA这么多年,我踩过不少坑。挑几个典型的说说:

  • 误区一:把故障当危害。故障是「传感器坏了」,危害是「车辆非预期转向」。危害是对人的伤害,不是对零件的伤害。
  • 误区二:忽略组合场景。比如「高速+弯道+雨雪+夜间」,四个因素叠加,风险指数级上升。但很多人只考虑单一场景。
  • 误区三:C值(可控性)给得太乐观。我曾经犯过这个错——觉得「驾驶员肯定能反应过来」。但实际测试发现,在高速上突然转向失效,普通驾驶员平均反应时间超过2秒,车已经偏了一个车道。

重要提醒:HARA文档不是写一次就完事的。项目推进过程中,架构变了、场景变了,HARA要跟着更新。我见过最惨的一个项目,HARA是两年前写的,产品都量产了,才发现有个危害根本没覆盖到。那叫一个酸爽。