3、故障树分析(FTA):从一颗螺丝钉的断裂说起

各位工程师朋友,咱们今天聊聊故障树分析。说实话,这玩意儿我用了十几年,每次项目评审时都离不开它。FTA 说白了就是一套「追根溯源」的方法——从顶层的故障现象,一层层往下挖,直到找到最根本的原因。

我记得刚入行那会儿,带我的老工程师跟我说:「小张,你记住,一个系统出问题,往往不是单一原因造成的。你得学会用树状图把各种可能性串起来。」这句话我一直记到现在。

3.1 故障树基本符号:你得先认识这些「积木」

建树之前,咱们得先搞清楚用什么符号。我习惯把故障树符号分成三类:事件符号、逻辑门符号和转移符号。下面这张表是我自己整理的,你直接拿去用。

符号类别 符号名称 图形示意 含义说明
事件符号 顶事件 矩形 系统最不希望发生的故障,比如「发动机熄火」
事件符号 中间事件 矩形 需要进一步往下分析的事件
事件符号 底事件 圆形 最基本的故障原因,不再往下分解
事件符号 未展开事件 菱形 暂时不展开或信息不足的事件
逻辑门符号 与门 圆弧底+多条输入 所有输入事件同时发生,输出才发生
逻辑门符号 或门 尖底+多条输入 任意一个输入事件发生,输出就发生
转移符号 转入/转出 三角形 用于跨页连接,避免树太大
我的小习惯: 画故障树时,我一般先用矩形框把顶事件写下来,然后问自己三个问题——「这个故障的直接原因是什么?」「这些原因之间是什么关系?」「还有没有遗漏?」。问完这三个问题,树的基本骨架就有了。

3.2 建树方法:别急着画,先理清逻辑

建树这事儿,看着简单,做起来容易翻车。我曾经带过一个新人,他画了一棵故障树,顶事件是「服务器宕机」,下面直接连了十几个底事件,全是「电源故障」「硬盘损坏」「内存错误」…… 我说你这不对,这些原因之间是什么关系?是「与」还是「或」?他愣住了。

建树的核心步骤,我总结为四步:

  1. 定义顶事件:明确你要分析的系统级故障。注意,顶事件必须具体、可测量。比如「电池续航不足4小时」就比「电池不好用」强得多。
  2. 逐层分解:从顶事件出发,问「直接原因是什么」。每一层只分解到直接原因,不要跳级。
  3. 确定逻辑关系:判断子事件之间是「与」还是「或」。这里有个坑——很多人习惯把所有原因都画成「或门」,觉得「只要有一个发生就行」。但实际项目中,很多故障需要多个条件同时满足才会触发。
  4. 终止条件:当事件无法再分解,或者分解到可更换的元器件级别时,就停止。底事件必须是可检测、可维修的。
避坑指南: 我曾经在一个电源模块的FTA中,把「电容老化」和「温度过高」用「与门」连接,结果最小割集分析出来全是单点故障。后来才发现,这两个事件其实是「或门」关系——任何一个发生都会导致输出异常。嗯,这个错误让我多花了三天重新分析。

3.3 定性分析:找最小割集,揪出「致命组合」

定性分析的核心,就是找最小割集。什么叫最小割集?说白了,就是「导致顶事件发生的最少底事件组合」。你想想看,如果某个故障只需要一个底事件就能触发,那这个底事件就是单点故障,必须重点防范。

我举个例子。假设一个简单的故障树:

  • 顶事件:T(系统失效)
  • 中间事件:A(电源故障)、B(控制逻辑故障)
  • 底事件:X1(保险丝熔断)、X2(稳压器损坏)、X3(MCU死机)、X4(看门狗失效)
  • 逻辑关系:T = A 或 B;A = X1 与 X2;B = X3 或 X4

那么,最小割集就是:{X1, X2}、{X3}、{X4}。看到了吗?{X3}和{X4}都是单点故障,意味着只要MCU死机或者看门狗失效,系统就挂了。而{X1, X2}需要两个同时发生,风险相对低一些。

重点: 最小割集的数量越少,说明系统越脆弱。如果某个最小割集只包含一个底事件,那这个底事件就是你的「命门」。我在做汽车电子项目时,每次FTA分析完,第一件事就是找单点故障,然后加冗余或者降额设计。

3.4 定量分析:算顶事件概率,别被数字骗了

定量分析,就是给每个底事件赋一个发生概率,然后算出顶事件的发生概率。公式其实不复杂:

  • 与门:P(输出) = P(输入1) × P(输入2) × ...
  • 或门:P(输出) = 1 - (1 - P(输入1)) × (1 - P(输入2)) × ...

但这里有个大坑——底事件的概率数据从哪来?我见过不少工程师,随便从网上找个MTBF数据就往上套,结果算出来的顶事件概率跟实际差了十倍不止。

我个人建议,底事件概率最好来自:

  1. 历史故障数据:你们公司自己的维修记录,这是最靠谱的。
  2. 加速寿命试验:通过试验推算出失效率。
  3. 行业标准:比如MIL-HDBK-217F、IEC 62380等,但要注意使用条件。

举个例子,假设底事件X1(保险丝熔断)的概率是0.001,X2(稳压器损坏)的概率是0.002,那么「与门」输出A的概率就是0.001 × 0.002 = 2×10⁻⁶。而底事件X3(MCU死机)的概率是0.01,X4(看门狗失效)的概率是0.005,那么「或门」输出B的概率就是1 - (1-0.01)×(1-0.005) ≈ 0.01495。

最后,顶事件T的概率 = P(A) + P(B) - P(A)×P(B) ≈ 2×10⁻⁶ + 0.01495 - 2×10⁻⁶×0.01495 ≈ 0.01495。你看,顶事件概率几乎被B事件主导了。这说明什么?说明系统的主要风险在控制逻辑部分,而不是电源部分。

我的经验: 定量分析的结果,我从来不会当成绝对真理。它更像一个「风险排序工具」——告诉你哪些地方最脆弱,应该优先投入资源。我曾经算过一个项目,顶事件概率是10⁻⁵,但实际现场故障率是10⁻³。后来发现,是底事件的概率数据太乐观了。从那以后,我每次都会在报告里加一句:「本分析结果仅供参考,实际概率请以试验数据为准。」

3.5 知识体系总览

下面这张图是我用SVG画的,把FTA的核心逻辑串起来了。你一看就明白:从顶事件出发,经过逻辑门分解到底事件,然后通过定性分析找最小割集,再通过定量分析算概率。

故障树分析(FTA)知识体系 顶事件 逻辑门(与/或) 中间事件 底事件 定性分析(最小割集) 定量分析(顶事件概率)

好了,FTA 的核心内容就这些。记住,故障树不是画完就完事的,它是个动态工具。项目进行到不同阶段,底事件的概率数据会变,最小割集也会变。我建议你每半年更新一次故障树,尤其是当有新的故障模式出现时。


公众号:蓝海资料掘金营,微信deep3321