3. 危害分析与风险评估(HARA)
大家好,我是老张。今天咱们聊聊HARA——危害分析与风险评估。这玩意儿在功能安全里,说白了就是「找茬」和「算账」。
你想想看,一个系统安不安全,不是拍脑袋说了算的。你得先找出所有可能出问题的地方,再评估这些问题到底有多严重。HARA就是干这个的。
核心观点:HARA不是走过场,它是整个功能安全生命周期的基础。基础打不好,后面全是空中楼阁。
3.1 HARA的目的与流程
HARA的目的其实就三个:
- 识别危害——找出系统在什么情况下会出问题
- 评估风险——判断这些问题的严重程度
- 确定安全目标——为后续设计提供依据
我在项目中遇到过不少团队,上来就急着写代码,结果做到一半发现安全目标没定,回头补HARA,那叫一个痛苦。嗯,这里要注意,HARA一定要在项目早期做。
HARA的标准流程,我习惯分成五步走:
- 功能定义——搞清楚系统到底要干什么
- 危害识别——用各种方法找出潜在危害
- 情景分析——考虑实际使用场景
- 风险等级评估——确定SIL/ASIL等级
- 安全目标定义——明确要达成什么安全状态
下面这张图,是我自己总结的HARA核心流程,你一看就明白了:
3.2 危害识别方法
危害识别的方法有很多,但最常用的就两个:HAZOP和FMEA。我个人的经验是,这两个方法各有千秋,得看场景选。
3.2.1 HAZOP(危险与可操作性分析)
HAZOP,全称是Hazard and Operability Study。这玩意儿最早是化工行业用的,后来被功能安全领域借鉴过来。
它的核心思路是:用「引导词」来触发思考。比如「没有」、「更多」、「更少」、「相反」等等。
举个例子,你设计一个刹车系统:
- 引导词「没有」——刹车没有响应,会怎样?
- 引导词「更多」——刹车力度过大,会怎样?
- 引导词「相反」——踩刹车反而加速,会怎样?
我曾经在一个ADAS项目中,用HAZOP分析自动紧急制动功能。引导词「部分」触发了思考:如果刹车只施加了一半的力,会发生什么?结果发现了一个严重的潜在危害——系统可能无法在预期距离内刹停。嗯,这个发现直接影响了后续的ASIL等级确定。
小技巧:做HAZOP时,别只盯着「正常情况」。多想想「边界情况」和「异常组合」。我习惯把引导词贴在白板上,一个一个过,不遗漏。
3.2.2 FMEA(失效模式与影响分析)
FMEA,Failure Mode and Effects Analysis。这玩意儿更接地气,很多工程师都熟悉。
它的思路是:针对每个组件或功能,列出所有可能的失效模式,然后分析这些失效会带来什么影响。
FMEA的典型表格长这样:
| 功能/组件 | 失效模式 | 失效原因 | 失效影响 | 严重度(S) | 频度(O) | 探测度(D) | RPN |
|---|---|---|---|---|---|---|---|
| 制动踏板传感器 | 信号丢失 | 线路断路 | 制动无响应 | 9 | 3 | 4 | 108 |
| 制动踏板传感器 | 信号漂移 | 温度影响 | 制动响应延迟 | 7 | 5 | 6 | 210 |
| 制动执行器 | 卡滞 | 机械磨损 | 制动无法释放 | 8 | 2 | 3 | 48 |
RPN = S × O × D,数值越高,风险越大。但说实话,我见过不少团队把RPN当成「绝对真理」,其实它更多是个参考。真正决定安全等级的,还是后面要讲的ASIL评估。
注意:FMEA和HAZOP不是二选一的关系。我建议两个都用。HAZOP负责「找场景」,FMEA负责「抠细节」。双管齐下,才能把危害挖干净。
3.3 风险等级评估
危害找到了,接下来就是「算账」——评估风险等级。这里有两个体系:SIL(安全完整性等级)和ASIL(汽车安全完整性等级)。
SIL是IEC 61508里的概念,ASIL是ISO 26262里的概念。说白了,ASIL是SIL在汽车行业的「定制版」。
3.3.1 SIL等级确定
SIL等级由三个参数决定:
- 后果严重度(C)——出事了有多严重?
- 暴露频率(F)——危险场景出现的频率?
- 规避可能性(P)——人能躲开吗?
这三个参数组合,查表就能得到SIL等级。从SIL 1到SIL 4,要求越来越严格。
举个例子:
- C = 严重伤害(比如骨折)
- F = 频繁暴露(每天都会遇到)
- P = 几乎无法规避
查表得到SIL 3。这意味着你需要非常严格的安全措施。
3.3.2 ASIL等级确定
ASIL是汽车行业的「升级版」。它用三个维度来评估:
| 参数 | 含义 | 等级 |
|---|---|---|
| 严重度(S) | 对人员伤害的严重程度 | S0(无伤害)~ S3(致命) |
| 暴露概率(E) | 危险场景出现的频率 | E0(几乎不)~ E4(非常高) |
| 可控性(C) | 驾驶员能否控制局面 | C0(完全可控)~ C3(不可控) |
三个参数组合,得到ASIL等级:
- ASIL A——最低要求
- ASIL B——中等要求
- ASIL C——较高要求
- ASIL D——最高要求
- QM——质量管理即可,无需功能安全
我记得有一次做转向系统评估,参数组合是S2+E3+C2,查表得到ASIL C。当时团队觉得「C级够了」,但我坚持做了更详细的分析,发现有一个场景下可控性其实是C3,最终升到了ASIL D。这个决定后来被证明是对的——测试中确实发现了那个场景下的安全隐患。
关键提醒:ASIL等级不是「越高越好」。ASIL D意味着极高的开发成本和验证要求。合理评估,找到「够用」的等级,才是工程智慧。
3.4 避坑指南
做了这么多年HARA,我踩过不少坑。分享几个给你:
- 别漏了「组合失效」——单个失效可能不严重,但两个同时发生就麻烦了。我曾经漏掉过「传感器故障+驾驶员分心」的组合,差点出事。
- 别忽视「使用场景」——同一个功能,在高速和市区,风险等级可能完全不同。一定要考虑实际场景。
- 别把HARA当「一次性工作」——系统设计变了,HARA就要跟着更新。我见过一个项目,HARA做完就扔一边,结果后期改设计,安全目标全对不上。
好了,HARA的核心内容就这些。记住,它不是为了「交差」,而是为了「保命」。认真做,后面会省很多事。
公众号:蓝海资料掘金营,微信deep3321