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的三大步骤:

  1. 危害识别:找出系统级的所有潜在危害
  2. 风险场景定义:描述危害发生的具体情境
  3. 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的结果转化成具体的安全要求。