第三章 故障树的构建方法

各位工程师朋友,大家好。今天我们来聊聊故障树构建的具体方法。说实话,我见过不少同行,理论背得滚瓜烂熟,一到实际建树就抓瞎。为什么?因为建树不是画图,它是个逻辑推理的过程。我个人习惯把建树比作破案——你得从事故现场(顶事件)一步步倒推,找到真凶(底事件)。

3.1 建树前的准备工作

别急着动笔。我年轻时犯过这毛病,拿到系统就开画,结果画到一半发现逻辑不通,全得重来。准备工作做扎实,后面能省一半时间。

第一步:明确分析目标

你得清楚自己为什么要建这棵树。是为了找设计缺陷?还是为了做安全评估?目标不同,树的深度和广度都不一样。举个例子,同样是汽车刹车系统,如果目标是分析「制动失效」,那树可能只建到零部件级;如果目标是分析「制动距离超标」,那还得考虑路面条件、轮胎磨损这些因素。

第二步:收集系统资料

我建议至少准备三样东西:

  • 系统原理图——搞清楚信号怎么流、能量怎么传
  • 功能框图——明白每个模块干什么活
  • 故障模式清单——知道每个部件可能怎么坏

有一次我帮某车企做FTA,对方只给了个原理图,我硬着头皮建完树,结果评审时发现漏了两个关键传感器。嗯,从那以后我学乖了,资料不全坚决不动手。

第三步:定义顶事件

顶事件就是你要分析的那个「坏结果」。注意,顶事件必须:

  • 可观测——比如「刹车失灵」能测出来,「刹车感觉不好」就不行
  • 有明确边界——别把「整车故障」当顶事件,那太大了
  • 单一性——一次只分析一个故障模式

我的经验:顶事件定义得越精准,后面建树越顺畅。我见过有人把「系统失效」当顶事件,结果树建了五层就卡住了——因为「失效」这个词太模糊,没法往下分解。

3.2 建树的基本原则

这些原则不是我编的,是踩坑踩出来的。你想想看,如果建树没有规矩,每个人按自己想法来,那评审时还不吵翻天?

原则一:逻辑门要准确

这是最基础的,也是最容易出错的。我经常看到有人把「或门」画成「与门」,或者反过来。记住一句话:

  • 与门——所有条件同时发生,结果才发生(缺一不可)
  • 或门——任何一个条件发生,结果就发生(一触即发)

原则二:不遗漏、不冗余

建树时,每个中间事件往下分解,要保证「完全覆盖」——也就是说,所有可能导致该事件的原因都得列出来。但同时,别把无关的原因塞进来。我有个习惯:每分解一层,就问自己一句「还有没有别的可能?」

原则三:分解到可处理为止

什么叫「可处理」?就是底事件要么有历史故障数据,要么能通过测试验证。别分解到「宇宙射线导致芯片翻转」这种程度——除非你真有数据支持。

注意:我曾经遇到一个项目,团队把故障树建到了「焊点疲劳」级别,结果发现根本没有焊点的失效率数据。最后只能把树往回缩,白费了三天功夫。所以,建树前先问问自己:这些底事件,我能拿到数据吗?

3.3 演绎法建树步骤

演绎法,说白了就是「从顶往下推」。我个人觉得这是最符合直觉的方法。具体分五步:

  1. 确定顶事件——前面说过了,不再重复
  2. 分析直接原因——问自己「顶事件是怎么发生的?」列出所有可能
  3. 用逻辑门连接——判断这些原因之间是「与」还是「或」的关系
  4. 逐层分解——对每个中间事件重复步骤2和3,直到底事件
  5. 检查完整性——回头看看有没有遗漏,逻辑门对不对

这里有个小技巧:每分解一层,就在纸上画一个「小树」,然后拼起来。别想着一步到位画完整棵树,那容易乱。

避坑指南:我曾经在分解到第三层时,发现有两个分支的逻辑关系搞反了。原因是当时太着急,没仔细看「与门」和「或门」的定义。后来我养成了一个习惯:每画完一层,就口头复述一遍逻辑关系。比如「只有A和B同时发生,C才会发生」——如果念着不顺,那八成是画错了。

3.4 建树实例:汽车刹车系统

光说不练假把式。咱们拿汽车刹车系统来走一遍流程。这个例子我用了很多年,因为它足够简单,但又包含了FTA的核心要素。

系统描述:

一个典型的液压刹车系统,包括:刹车踏板、制动主缸、制动管路、制动分泵、刹车片、刹车盘。驾驶员踩下踏板,主缸产生液压,通过管路传到分泵,推动刹车片夹紧刹车盘。

顶事件:「刹车失效」(车辆无法有效减速)

直接原因分析:

刹车失效,要么是「制动力不足」,要么是「制动响应延迟」。这两个原因用「或门」连接——任何一个发生,顶事件就发生。

逐层分解:

  • 制动力不足的原因:
    • 刹车片磨损(底事件)
    • 液压系统泄漏(中间事件)→ 进一步分解为:管路破裂、密封圈失效(底事件)
    • 制动液不足(底事件)
  • 制动响应延迟的原因:
    • 制动管路中有空气(底事件)
    • 制动主缸故障(中间事件)→ 进一步分解为:主缸活塞卡滞、主缸密封失效(底事件)

你看,这样一层层推下来,整棵树的逻辑就清晰了。每个底事件都是可以测试或统计的——比如「刹车片磨损」有磨损极限值,「管路破裂」可以通过压力测试发现。

我的体会:建树不是一次性的工作。我做完初版后,通常会找两三个同事一起过一遍。有时候你觉得理所当然的逻辑,别人一眼就能看出漏洞。比如上面这个例子,我最初漏掉了「制动液不足」这个底事件——是搞维修的同事提醒我的,他说「刹车油漏光了,踩到底都没用」。嗯,这就是经验的价值。

下面这张图是我用SVG画的刹车系统故障树框架,你可以对照着看,理解起来会更直观。

刹车失效 ≥1 制动力不足 制动响应延迟 ≥1 ≥1 刹车片磨损 液压系统泄漏 制动液不足 管路中有空气 制动主缸故障 & 管路破裂 密封圈失效 ≥1 主缸活塞卡滞 主缸密封失效 图例: 顶事件 中间事件 底事件 或门(≥1) 与门(&)

这张图只展示了故障树的核心框架,实际项目中树会更深、更广。比如「液压系统泄漏」下面还可以继续分解——管路破裂的原因可能是「腐蚀」、「机械损伤」或「材料缺陷」。但建树有个原则:分解到你能拿到数据为止。如果「管路腐蚀」有历史故障率数据,那就继续分解;如果没有,停在「管路破裂」就够了。

好了,关于故障树的构建方法,今天就聊到这儿。记住,建树是个手艺活,多练几次就熟了。下次咱们聊聊故障树的定性分析——怎么从树里找出关键故障模式。

专注资料整理