3. 危害分析与风险评估(HARA)
各位好,欢迎来到第三章。这一章我们聊HARA——危害分析与风险评估。说实话,HARA是整个功能安全开发的基石。你后面做的所有安全机制、测试用例,追根溯源都来自这里。如果HARA做偏了,那整个项目就像盖楼打歪了地基,后面再折腾也白搭。
我个人习惯把HARA看作一个「找茬」的过程。你不是在证明系统有多安全,而是在拼命想:它到底会怎么出问题?出问题后会多严重?
3.1 HARA方法论:三步走
HARA不是玄学,ISO 26262给了很清晰的流程。我把它拆成三步:
- 场景分析:车在什么情况下运行?
- 危害识别:系统故障会导致什么危险?
- 风险评定:这个危险有多大概率发生?后果多严重?
嗯,这里要注意。很多人一上来就直奔「危害识别」,跳过了场景分析。我曾经在一个项目里吃过这个亏——团队直接列了一堆故障模式,结果评审时发现有一半的场景根本不合理,比如「车辆静止时方向盘自动转向」。你想想看,车停着,转向有啥危害?
核心原则: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前看一眼,不容易漏步骤。
3.5 常见误区与避坑
做HARA这么多年,我踩过不少坑。挑几个典型的说说:
- 误区一:把故障当危害。故障是「传感器坏了」,危害是「车辆非预期转向」。危害是对人的伤害,不是对零件的伤害。
- 误区二:忽略组合场景。比如「高速+弯道+雨雪+夜间」,四个因素叠加,风险指数级上升。但很多人只考虑单一场景。
- 误区三:C值(可控性)给得太乐观。我曾经犯过这个错——觉得「驾驶员肯定能反应过来」。但实际测试发现,在高速上突然转向失效,普通驾驶员平均反应时间超过2秒,车已经偏了一个车道。
重要提醒:HARA文档不是写一次就完事的。项目推进过程中,架构变了、场景变了,HARA要跟着更新。我见过最惨的一个项目,HARA是两年前写的,产品都量产了,才发现有个危害根本没覆盖到。那叫一个酸爽。