3、危害分析与风险评估(HARA):HAZOP、FMEA、FTA方法在汽车与工业领域的应用

好,咱们进入正题。这一章聊的是HARA,也就是危害分析与风险评估。说实话,这是整个功能安全流程里最「虚」也最「实」的一步。虚在它全是分析、推理、拍脑袋(当然是有依据的拍),实在它直接决定了你后续安全目标的等级——ASIL还是SIL,全靠这一步定调。

我见过不少团队,上来就闷头写代码、画板子,结果到了认证阶段,审核员问一句「你这个ASIL B是怎么来的?」当场就懵了。嗯,HARA没做透,后面全是补窟窿。所以这一章,咱们把HAZOP、FMEA、FTA这三板斧掰开揉碎了讲。

3.1 HAZOP:从「如果...会怎样」开始

HAZOP,全称是Hazard and Operability Study。这玩意儿最早是化工行业搞出来的,后来被IEC 61508和ISO 26262都收了进去。说白了,它就是一种结构化的头脑风暴。

我个人习惯,做HAZOP之前先拉一张表。表头长这样:

引导词 偏差 可能原因 后果 现有防护 建议措施
信号丢失 传感器断线 控制器无输入 看门狗定时器 增加冗余传感器
信号超量程 电源干扰 误触发执行器 软件限幅 增加硬件滤波
信号提前 时钟漂移 时序错乱 同步机制 增加时间戳校验

引导词就那么几个:无、多、少、早、晚、反向、部分、伴随。每个引导词对应一个偏差。你想想看,一个刹车信号「无」了会怎样?「多」了会怎样?「早」了会怎样?就这么一个个过。

我的小技巧: 做HAZOP时,别光盯着「正常情况」。我习惯问团队一个问题——「最蠢的操作员会怎么搞坏这个系统?」往往能挖出意想不到的偏差。

3.2 FMEA:把「可能出问题的地方」全列出来

FMEA,Failure Mode and Effects Analysis。这玩意儿比HAZOP更细,它是针对每个组件、每个功能去分析失效模式。ISO 26262里特别强调要搞「功能FMEA」和「硬件FMEA」。

我在一个汽车项目里遇到过这么个事:一个油门踏板的传感器,FMEA分析时只考虑了「信号丢失」和「信号超量程」。结果呢?实际路试时发现,传感器在高温下输出会缓慢漂移——既没丢失也没超量程,但就是不准。这就是FMEA没做透的典型。

所以做FMEA,我建议按这个套路来:

  1. 列出所有功能——比如「采集踏板位置」
  2. 列出所有失效模式——开路、短路、漂移、卡滞、间歇性故障
  3. 分析每个失效的后果——对系统、对车辆、对人
  4. 评估严重度(S)、发生度(O)、探测度(D)——然后算RPN
  5. 定措施——降低S、O或D
重点: FMEA不是做一次就完事的。我习惯在每次设计变更后都重新跑一遍FMEA。别嫌烦,你省掉的这一步,可能就是你流片回来发现bug的那一步。

3.3 FTA:从「顶事件」往下挖

FTA,Fault Tree Analysis。这玩意儿跟FMEA正好反过来——FMEA是从下往上推,FTA是从上往下挖。顶事件就是「系统失效」,然后一层层问「什么原因会导致这个失效?」

举个例子,顶事件是「刹车失效」。那下一层可能是「制动液泄漏」或「电子控制单元失效」。再往下,「制动液泄漏」可能是「管路破裂」或「密封圈老化」。就这么一直挖到基本事件。

FTA的好处是,它能帮你算概率。每个基本事件给个失效率,然后通过逻辑门(与门、或门)往上算,就能知道顶事件发生的概率。这在IEC 61508里算SIL等级时特别有用。

// 一个简单的FTA逻辑示例(伪代码)
顶事件: 刹车失效
  或门:
    - 制动液泄漏
      或门:
        - 管路破裂 (λ=1e-6/h)
        - 密封圈老化 (λ=1e-7/h)
    - ECU失效
      与门:
        - 主芯片失效 (λ=1e-8/h)
        - 冗余芯片失效 (λ=1e-8/h)
// 与门意味着两个同时发生才失效,概率更低
注意: FTA的坑在于「遗漏」。我曾经在一个项目里,FTA做了三层就停了,结果审核员问「你考虑过电源纹波导致的逻辑翻转吗?」当场哑口无言。所以FTA一定要做到「基本事件不能再分解」为止。

3.4 三种方法怎么选?

很多新手会问:我到底该用HAZOP、FMEA还是FTA?我的回答是:全用,但各有侧重。

  • HAZOP——适合系统级、概念阶段。快速扫一遍,找出大方向上的危害。
  • FMEA——适合详细设计阶段。每个组件、每个功能都过一遍,不漏细节。
  • FTA——适合定量分析阶段。算概率、定等级、找薄弱环节。

我个人的项目流程是这样的:先搞一轮HAZOP,定出安全目标。然后针对每个安全目标,做FMEA,找出所有可能的失效模式。最后挑几个关键的失效模式,用FTA做定量分析,算算概率够不够。

你想想看,如果HAZOP漏了一个危害,那后面的FMEA和FTA做得再漂亮,也是白搭。所以第一步一定要扎实。

3.5 避坑指南

做了十几年功能安全,我踩过的坑不少。挑几个典型的说说:

  • 「分析」和「测试」混为一谈。 我曾经见过一个团队,FMEA里写「通过测试验证」。这不是分析,这是偷懒。FMEA要写的是「设计上怎么预防」,不是「测试能不能发现」。
  • 忽略共因失效。 两个冗余传感器,如果用的是同一批次的元件,那一个坏了另一个大概率也快坏了。FTA里一定要考虑共因失效因子。
  • RPN阈值拍脑袋。 很多公司定RPN大于100就要采取措施。但100怎么来的?没人说得清。我建议根据项目实际情况定,别照搬。
最后说一句: HARA不是一次性的工作。设计变了、需求变了、甚至标准更新了,都要回头看看HARA需不需要更新。我习惯在每个里程碑节点都安排一次HARA评审,哪怕只是走个过场,也能发现不少问题。

好了,这一章就到这。下一章咱们聊安全目标的分解和ASIL的分配,那才是真正开始「落地」的时候。