4. 危害分析与风险评估(HARA):HAZOP方法、运行场景定义、危害事件识别、严重度(S)、暴露率(E)、可控性(C)评级
好,咱们进入HARA环节。这是功能安全里最核心、也最考验经验的一步。说白了,HARA就是回答三个问题:什么东西会坏?坏了会怎样?我们能不能接受?
我个人习惯把HARA比作「给系统做体检」。你想想看,体检不是光查一个指标,得全面评估。HARA也一样,它要覆盖所有可能的故障场景。我在项目中遇到过不少团队,HARA做得太粗糙,结果后期发现漏了关键危害,那叫一个痛苦。
4.1 HAZOP方法:结构化地找茬
HAZOP,全称是 Hazard and Operability Study。这方法最早是化工行业用的,后来被功能安全领域借用了。它的核心思路是:用引导词 + 参数,系统性地找出偏差。
举个例子:
- 引导词:无、多、少、相反、部分、过早、过晚
- 参数:电压、电流、温度、压力、速度、扭矩
组合起来就是「无电压」、「多电流」、「相反方向」等等。每个组合都问一句:如果发生这种情况,会怎样?
HAZOP的输出是一张表,通常包含:
| 引导词 | 参数 | 偏差 | 可能原因 | 后果 | 现有防护 |
|---|---|---|---|---|---|
| 无 | 制动压力 | 无制动压力 | 液压管路破裂 | 车辆无法制动 | 制动踏板行程传感器 |
| 多 | 电机扭矩 | 电机扭矩过大 | 电流传感器漂移 | 车辆非预期加速 | 扭矩监控模块 |
4.2 运行场景定义:别在实验室里想当然
危害不是凭空产生的,它一定发生在某个场景里。你想想看,同样是「刹车失灵」,在高速公路上和在地下车库里,后果能一样吗?
所以,定义运行场景是HARA的前置工作。我个人习惯把场景分成三类:
- 正常运行场景:高速巡航、城市拥堵、倒车入库、红绿灯起步
- 特殊运行场景:雨雪天气、夜间行驶、山路弯道、施工路段
- 故障运行场景:传感器失效、通信中断、电源波动、软件跑飞
4.3 危害事件识别:把偏差变成事故
有了HAZOP的偏差,再套上运行场景,就能得到危害事件。危害事件 = 偏差 + 场景 + 后果。
举个例子:
- 偏差:无制动压力
- 场景:车辆以120km/h在高速公路上行驶
- 后果:车辆无法减速,追尾前车,可能导致人员伤亡
这就是一个完整的危害事件。
识别危害事件时,我建议用「如果...那么...」的句式来推演:
- 如果转向助力突然消失,那么在高速弯道上,驾驶员可能无法控制方向,车辆偏离车道
- 如果电池热管理系统失效,那么在高温环境下充电,电池可能热失控,引发火灾
4.4 严重度(S)评级:后果有多严重?
严重度,就是衡量危害事件对人员造成的伤害程度。ISO 26262把S分为四级:
| 等级 | 描述 | 示例 |
|---|---|---|
| S0 | 无伤害 | 轻微不适,无需医疗 |
| S1 | 轻伤 | 擦伤、扭伤,可自行处理 |
| S2 | 重伤 | 骨折、内出血,需住院治疗 |
| S3 | 致命伤 | 死亡、永久性残疾 |
评级时要注意:看最坏情况,但别太极端。比如刹车失灵,最坏情况当然是车毁人亡,但如果你考虑的场景是「车辆刚起步,速度5km/h」,那S可能只有S1。所以,场景定义直接影响S评级。
4.5 暴露率(E)评级:发生的概率有多大?
暴露率,指的是人员处于危害场景中的频率。注意,不是故障发生的概率,而是场景本身出现的概率。
E也分四级:
| 等级 | 描述 | 示例 |
|---|---|---|
| E0 | 几乎不暴露 | 每年少于1次 |
| E1 | 很少暴露 | 每年几次 |
| E2 | 偶尔暴露 | 每月几次 |
| E3 | 频繁暴露 | 几乎每次驾驶都会遇到 |
举个例子:
- 「高速公路上行驶」—— 对经常跑高速的人来说,E3;对只在市区开的人来说,可能E1
- 「暴雨天行驶」—— 在南方梅雨季节,E2;在干旱地区,可能E0
4.6 可控性(C)评级:人能控制住吗?
可控性,就是当危害发生时,驾驶员或其他人员能否通过及时反应来避免伤害。
C同样分四级:
| 等级 | 描述 | 示例 |
|---|---|---|
| C0 | 完全可控 | 轻微报警,驾驶员可轻松应对 |
| C1 | 简单可控 | 多数驾驶员能在正常反应时间内控制 |
| C2 | 一般可控 | 部分驾驶员可能无法控制,但经验丰富的可以 |
| C3 | 难以控制 | 即使专业驾驶员也难以避免伤害 |
评级时,我通常会问自己一个问题:如果是我坐在驾驶座上,突然遇到这个情况,我能反应过来吗?
比如:
- 「刹车踏板变硬」—— 有经验的驾驶员可能知道用力踩,C1
- 「方向盘突然锁死」—— 几乎没人能反应过来,C3
- 「仪表盘报警灯亮起」—— 多数人会减速靠边,C0或C1
4.7 综合评级:从S、E、C到ASIL
有了S、E、C的评级,就可以查表得到ASIL等级了。ISO 26262给出了一个矩阵:
| S | E | C1 | C2 | C3 |
|---|---|---|---|---|
| S1 | E1 | QM | QM | QM |
| S1 | E2 | QM | QM | ASIL A |
| S1 | E3 | QM | ASIL A | ASIL B |
| S2 | E1 | QM | QM | ASIL A |
| S2 | E2 | QM | ASIL A | ASIL B |
| S2 | E3 | ASIL A | ASIL B | ASIL C |
| S3 | E1 | QM | ASIL A | ASIL B |
| S3 | E2 | ASIL A | ASIL B | ASIL C |
| S3 | E3 | ASIL B | ASIL C | ASIL D |
举个例子:
- 如果S=3, E=3, C=3 → ASIL D(最高等级)
- 如果S=1, E=1, C=1 → QM(无需功能安全措施)
好了,HARA的核心内容就这些。记住,HARA不是一次性的工作,随着系统设计深入,你可能会发现新的危害,或者原来的评级需要调整。保持迭代,别怕改。