2. 危害分析与风险评估(HARA)
好,咱们进入正题。HARA,全称是 Hazard Analysis and Risk Assessment。说白了,就是回答三个问题:电池包会出什么幺蛾子?后果有多严重?我们该怎么防?
我在做第一个量产项目时,对HARA的理解还很肤浅。觉得不就是列个清单嘛。结果评审时被安全专家问得哑口无言——「你这个危害场景定义不完整,ASIL等级给错了」。嗯,从那以后,我再也不敢小看这一步了。
2.1 HARA方法论:从FMEA到ISO26262的进化
很多工程师会问:HARA和FMEA有什么区别?
我个人的理解是这样的:FMEA关注的是「功能失效」,而HARA关注的是「危害事件」。举个例子——
- FMEA思维:电压采样芯片坏了,导致电压读数错误。
- HARA思维:电压读数错误,导致BMS误判电池状态,进而引发过充,最终电池热失控,车辆起火。
看到了吗?HARA要把链条走到「对人的伤害」才算完。这是ISO26262的核心思想——一切以安全为目标,而不是以功能为目标。
HARA的三大步骤:
- 危害识别:找出系统级的所有潜在危害
- 风险场景定义:描述危害发生的具体情境
- ASIL等级确定:根据严重度、暴露率、可控性打分
你想想看,如果连危害都没识别全,后面的安全措施就是空中楼阁。所以HARA做得好不好,直接决定了整个功能安全项目的成败。
2.2 BMS系统级危害识别:从电池特性出发
BMS的独特之处在于——它管理的不是普通电子设备,而是高能量密度的化学体。锂电池一旦失控,后果是灾难性的。
我在项目中总结了一套BMS危害清单,分享给你参考:
| 危害类别 | 具体危害 | 触发条件示例 |
|---|---|---|
| 电气危害 | 过充、过放、短路、反接 | 充电器故障、采样失效、继电器粘连 |
| 热危害 | 热失控、低温析锂、高温老化 | 冷却系统失效、大电流持续放电 |
| 机械危害 | 挤压、穿刺、振动导致内部短路 | 碰撞事故、电池包结构疲劳 |
| 通信危害 | CAN总线错误、指令误判、时序错乱 | 电磁干扰、软件bug、网络拥堵 |
| 功能危害 | SOC/SOH估算错误、均衡失效 | 算法收敛慢、传感器漂移 |
这里有个坑,我必须要提醒你——不要只盯着「电池本身」的危害。BMS和整车其他系统的交互,同样可能引发安全问题。比如BMS错误地发送了「允许放电」信号给VCU,而实际上电池已经过放了。这种跨系统的危害,很容易被遗漏。
避坑指南:我曾经在一个项目中,只分析了电池包内部的危害,忽略了BMS与OBC(车载充电机)的交互场景。结果在系统集成测试时,发现OBC在BMS发出「停止充电」指令后,仍然持续输出电流。这个场景在HARA阶段完全没有被识别,导致后期不得不紧急补做安全分析,浪费了大量时间。
2.3 风险场景定义:把危害「演」出来
危害识别出来后,下一步是定义风险场景。我个人习惯用「5W1H」法来结构化描述:
- What:什么危害?——过充
- Where:发生在哪里?——快充桩充电时
- When:什么时候发生?——电池SOC已到90%,仍在以大电流充电
- Who:谁受影响?——车内乘客、充电操作人员
- Why:为什么会发生?——BMS电压采样故障,误判SOC为50%
- How:如何发展?——持续过充→电池温度升高→热失控→起火
举个例子,一个完整的风险场景描述应该是这样的:
风险场景示例:
车辆在公共快充站进行直流充电,BMS的电压采样芯片因老化导致测量偏差(实际电压4.25V,采样显示4.15V)。BMS基于错误数据判断电池未满,持续请求充电桩输出大电流。电池进入过充状态,内部压力升高,安全阀开启,电解液泄漏。若此时有外部火源或短路,将引发火灾,对周围人员造成严重伤害。
为什么要写得这么详细?因为后面的ASIL等级评定,完全依赖于这个场景描述。场景越具体,评分越准确。
2.4 ASIL等级确定:S、E、C三要素
ASIL,全称 Automotive Safety Integrity Level,分为A、B、C、D四个等级,D最高,A最低。还有一个QM(Quality Management),表示不需要功能安全措施,常规质量管理即可。
确定ASIL等级,需要评估三个维度:
| 维度 | 英文 | 含义 | 等级 |
|---|---|---|---|
| 严重度 | Severity (S) | 伤害的严重程度 | S0~S3 |
| 暴露率 | Exposure (E) | 风险场景发生的概率 | E0~E4 |
| 可控性 | Controllability (C) | 驾驶员或其他人避免伤害的能力 | C0~C3 |
评分规则很简单:S × E × C → ASIL。具体查表:
| S | E | C | ASIL |
|---|---|---|---|
| S3 | E4 | C3 | ASIL D |
| S3 | E3 | C2 | ASIL C |
| S2 | E3 | C2 | ASIL B |
| S1 | E2 | C1 | ASIL A |
| 其他组合 | 查ISO26262-3表1 | QM或ASIL A~D | |
这里有个常见的误区——很多人觉得「过充」肯定是最严重的,直接给S3。但实际项目中,严重度要看具体的伤害后果。如果电池包有完善的热失控防护(比如防火隔热层、泄压阀),即使过充也不一定会伤到人,那S等级就可以适当降低。
我的经验:在确定ASIL等级时,一定要拉上系统工程师、硬件工程师、软件工程师一起评审。一个人打分容易偏主观。我记得有个项目,我自认为某个危害的暴露率是E2,结果生产同事说「这个故障模式在产线上每100台就有1台出现」,直接改成了E3。你看,不同视角的信息差,会影响最终的安全等级。
2.5 实战案例:过充危害的HARA全过程
咱们拿「过充」这个经典危害,走一遍完整的HARA流程:
Step 1:危害识别
- 危害名称:电池过充
- 危害描述:电池电压超过安全上限,导致内部化学反应失控
Step 2:风险场景定义
- 车辆状态:静止充电(快充桩)
- 环境条件:夏季高温,环境温度40°C
- 故障模式:BMS电压采样通道1故障,输出值偏低5%
- 系统行为:BMS误判SOC为60%(实际已90%),继续请求大电流充电
- 最终后果:电池过充→热失控→起火→车内人员无法及时逃生→严重烧伤或死亡
Step 3:ASIL等级评定
- S(严重度):S3(生命危险或致命伤害)
- E(暴露率):E4(每次充电都会暴露在此风险下,高频场景)
- C(可控性):C3(车内人员无法控制,充电过程中通常不在车内,且无法干预BMS行为)
- 查表结果:S3 × E4 × C3 = ASIL D
结论:过充危害的ASIL等级为D。这意味着后续所有安全措施——从硬件冗余设计、软件监控架构、到诊断覆盖率要求,都必须满足ASIL D的标准。
你可能会问:那是不是所有BMS功能都要做到ASIL D?当然不是。比如SOC估算误差导致的续航里程不准,这个危害最多是S1(不舒适),ASIL等级可能只有A甚至QM。所以不要一刀切,要具体场景具体分析。
2.6 常见问题与避坑指南
最后,分享几个我在项目中踩过的坑:
坑1:危害识别不完整
我曾经只分析了「正常使用」场景,忽略了「维修保养」场景。结果在售后环节,维修人员误操作导致高压触电。这个危害在HARA阶段完全没有被覆盖,后来被客户审计时列为严重不符合项。
坑2:ASIL等级给得太高
有些团队为了「保险」,把所有危害都定成ASIL D。这会导致开发成本飙升,而且不必要的安全措施反而可能引入新的风险。记住:ASIL等级不是越高越好,而是越准越好。
坑3:忽略多故障组合
ISO26262要求考虑「单一故障」场景,但实际项目中,多个独立故障同时发生的概率虽然低,但并非不可能。比如电压采样故障 + 温度采样故障 + 继电器卡死,三个故障同时发生,后果可能是灾难性的。我建议在HARA阶段至少做一次「双点故障」的敏感性分析。
好了,HARA这部分就讲到这里。记住一句话:HARA做得好,功能安全就成功了一半。下一章咱们聊聊「安全目标定义」,看看怎么把HARA的结果转化成具体的安全要求。