第三章 危害分析与风险评估(HARA)
好,咱们进入第三章。这一章可以说是功能安全设计的「地基」。
你想想看,如果连系统可能出什么危险都不清楚,后面的安全措施又从何谈起?HARA,说白了就是给逆变器做一次「全面体检」,找出所有可能伤人的隐患。
3.1 HARA方法论:从标准到实战
HARA的全称是Hazard Analysis and Risk Assessment。ISO 26262里把它定义为功能安全开发的起点。我个人习惯把它拆成三步走:
- 场景分析:系统在什么情况下运行?
- 危害识别:哪些故障会导致危险?
- 风险评估:这个危险有多严重?发生的概率多大?
嗯,这里要注意一点。很多新手容易把HARA和FMEA搞混。我简单解释一下:FMEA是「自下而上」的,从元器件失效往上推;而HARA是「自上而下」的,从整车级别的危险往下找原因。
核心原则:HARA关注的是「危害事件」,不是「故障模式」。举个例子——「逆变器输出过压」是故障模式,而「过压导致电机失控、车辆撞墙」才是危害事件。
3.2 逆变器特定危害识别
做逆变器HARA,我总结了几个「重灾区」。这些是我在项目中反复踩过的坑:
3.2.1 电气危害
- 高压触电:直流母线电压高达400V-800V,绝缘失效就是人命关天的事。
- 电弧闪络:IGBT短路时产生的电弧,温度能到几千度。
- 电容残留电荷:断电后母线电容还存着高压电,维修人员可能被电到。
3.2.2 功能危害
- 非预期加速:扭矩指令错误,车子突然窜出去。
- 动力丢失:高速行驶中突然没动力,后车追尾风险。
- 再生制动失效:能量回收系统故障,刹车距离变长。
3.2.3 热危害
- IGBT过热:散热系统失效,模块烧毁甚至起火。
- 电机过热退磁:永磁体在高温下永久性损坏。
我的经验:有一次做项目,我们只关注了电气危害,忽略了「软件跑飞导致PWM全开」这种场景。结果台架测试时IGBT直接炸了。从那以后,我要求团队必须把「软件异常行为」也列入危害清单。
3.3 风险降低措施
识别出危害之后,就要给每个危害定「安全目标」。安全目标说白了就是:这个危险最多能容忍到什么程度?
ISO 26262用三个参数来量化风险:
| 参数 | 全称 | 含义 | 等级范围 |
|---|---|---|---|
| S | Severity | 伤害严重度 | S0~S3 |
| E | Exposure | 暴露概率 | E0~E4 |
| C | Controllability | 可控性 | C0~C3 |
三个参数组合起来,就得到ASIL等级(A、B、C、D)。D是最严格的,比如安全气囊;A是最宽松的,比如雨刮器。
举个例子:逆变器「非预期加速」这个危害——
- S:如果撞到行人,可能是S3(致命伤)
- E:城市道路行驶,E4(高暴露)
- C:驾驶员能否及时刹车?一般认为是C2(部分可控)
查表得到ASIL C或D。这意味着你需要非常严格的安全机制。
3.4 风险降低措施实战
确定了ASIL等级,就要设计对应的安全机制。我习惯把措施分成三个层次:
3.4.1 系统级措施
- 冗余设计:双MCU架构,主控失效时备份接管。
- 安全状态:检测到故障后,系统进入「安全关断」状态。
- 降级模式:部分故障下限制功率输出,而不是直接停机。
3.4.2 硬件级措施
- 看门狗:监控MCU是否跑飞。
- 电压/电流监测:实时检测是否超出安全范围。
- 温度保护:NTC热敏电阻+硬件比较器,超温直接关断。
3.4.3 软件级措施
- 数据校验:CRC校验关键变量,防止内存篡改。
- 执行时间监控:每个任务必须在规定时间内完成。
- 逻辑自检:上电时执行CPU自检、RAM测试。
避坑指南:我曾经在一个项目里只做了软件层面的过流保护,结果硬件上IGBT短路时,软件根本来不及响应。后来我学乖了——硬件保护必须独立于软件,用比较器+硬件锁存器实现「硬关断」。
3.5 实战案例:一个完整的HARA示例
咱们拿「逆变器输出缺相」来走一遍完整流程:
- 危害描述:电机缺相运行,产生剧烈抖动和过热。
- 场景:车辆在高速公路上以120km/h巡航。
- 风险评估:
- S2(严重伤害,可能失控撞车)
- E3(中等暴露,缺相可能发生在任何行驶中)
- C2(驾驶员可能通过松油门减速,但需要反应时间)
- ASIL等级:B
- 安全目标:检测到缺相后,在100ms内将扭矩降为0。
- 安全机制:
- 软件:每10ms检查三相电流是否平衡。
- 硬件:相电流传感器故障时,硬件输出故障信号。
- 系统:进入安全状态后,点亮仪表盘故障灯。
小技巧:做HARA时,我建议用表格把每个危害的S、E、C、ASIL、安全目标、安全机制都列出来。这样评审时一目了然,也方便后续做功能安全测试。
好了,这一章的内容就到这儿。HARA做得好不好,直接决定了后面所有安全设计的方向。我见过太多项目因为HARA漏项,导致后期返工甚至召回。所以,别嫌麻烦,把每个场景都过一遍。
下一章咱们聊聊「软件架构设计」,看看怎么把安全目标落实到代码层面。