☰
故障树分析FTA如何驱动设备预测性维护落地
2026/10/6 8:51:06 网站建设 项目流程

凌晨一点四十,电话把我从床上拽了起来。离心泵轴承保持架碎裂,泵轴抱死,整条产线停了三个多小时。泵体打开时,滚珠散了一地。第二天翻SCADA曲线,才发现振动值从一个月前就一路爬升,从3.2mm/s涨到5.8mm/s,早越过了ISO 10816的报警区,轴承座温度也跟着起来了,可当时没人把这条趋势和“轴承快不行了”联系在一起。

类似场景在工厂里每天都在重演。设备很少是“瞬间坏掉”的,绝大多数失效都有前兆,核心问题在于——怎么把这些前兆翻译成一句能直接拍板的结论:这台设备还能撑多久?该什么时候停机?该换哪些零件?这正是设备预测性维护要解决的事。而故障树分析(Fault Tree Analysis,FTA),这个在可靠性工程里被用了很多年的老方法,恰恰能在搭建预测性维护模型时提供一张别人替代不了的“因果地图”。下面这些内容,是我反复用这套思路做实际落地项目的经验总结,不一定高深,但每一步都是在产线上验证过的。

1. 先想明白:故障树和设备健康监测为什么要凑在一起

1.1 三种维护模式的账,算到最后都是时间和钱的权衡

工厂设备维护大体分三种。事后维修最简单,坏了再修,看似省了日常投入,实际是把风险全押在“运气”上。我见过一家食品厂的包装产线减速机损坏,备件从外地调货,停机三天,光是产线停摆的损失就是维修费用的好几倍。定期维护比事后维修聪明一点,按固定周期换油、换轴承、做保养,但问题也很明显:很多零件状态明明还很好,却因为“到时间了”被迫换掉,这是过度维护;同时又有一些设备根本撑不到下一个保养周期,在两次保养之间就出了幺蛾子,这是欠维护。一过一欠,全是成本。

预测性维护的思路完全不同——连续监测设备的状态数据,通过状态的变化趋势判断故障风险,在故障真正发生之前安排检修。它不追求“永远不坏”,而是追求“在已知风险下,把维修安排在损失最小的那个时间点”。这句话听起来很理想,但做起来有个绕不过去的坎:你怎么知道当前的振动、温度、电流这些数据,到底意味着设备离故障还有多远?单纯看一个数值有没有超阈值,往往会漏掉大量早期信号。这时候,故障树分析的价值就出来了。

1.2 故障树不是来替代算法的,是来告诉算法“该看什么”的

现在一说预测性维护,很多人第一反应就是机器学习、深度学习。数据驱动方法确实能干活,但有个天生的短板:黑箱。模型告诉你“这台设备异常”,却说不清是轴承、密封还是电机出了问题,更说不清为什么异常。而且这类模型通常需要大量带标签的故障样本,现实里绝大多数设备根本没机会积累那么多故障数据。

故障树分析走的是另一条路。它不靠大量样本,靠的是工程师对设备失效机理的理解。FTA从最不希望发生的顶事件出发,比如“离心泵非计划停机”,一层一层往下拆,拆到最基本的失效原因,中间用逻辑门表达组合关系。整个分析过程完全透明,每一条路径都有明确的物理含义。

我把这套思路用在预测性维护模型里,定位是这样的:FTA负责画地图——告诉你设备有哪些失效路径、哪些底层原因组合起来会导致顶事件;状态监测负责报位置——告诉你每个底层原因现在的严重程度到了哪一步。静态的因果结构和动态的状态数据一结合,模型就“活”了。它不仅能预测“什么时候可能坏”,还能解释“为什么可能要坏”,这对维护决策来说太重要了。

1.3 这套思路适合什么设备、什么场景

FTA做预测性维护不是万能的,选错对象很容易白费力气。我自己的经验是,最合适的是那些结构相对固定、故障模式清晰、在关键工艺环节里不可替代的设备。典型的就是旋转机械:离心泵、风机、压缩机、电机、减速机,还有液压系统和关键工艺阀门。这类设备有成熟的失效机理知识,轴承、密封、齿轮、绕组这些部件的故障特征在行业里有大量经验数据可以借鉴。

不适合的对象也有两类。一类是故障模式还不明确的新研发装置,你对它的失效路径都没摸清,硬画故障树只能靠猜;另一类是完全没有数据基础的设备,连基本的电流、温度都没有采集通道,短期又补不上传感器,那FTA画得再漂亮也没东西往里面填。所以落地之前先做一遍摸底:设备台账齐不齐?有没有维修记录?DCS、PLC或者SCADA里能不能拿到历史数据?这三个条件至少满足两个,项目才值得启动。

2. 故障树分析的本质:把“设备坏了”拆成一张能看懂、能计算的逻辑图

2.1 顶事件、中间事件、底事件:三个层次怎么划分

故障树分析的第一步,是定义清楚三个层次的事件。这不只是术语问题,直接决定你后面模型怎么搭。

顶事件就是整棵树的根,也是你最不希望发生、最想预测的那个故障。对离心泵项目来说就是“离心泵无法正常输送介质”,或者直接写成“离心泵非计划停机”。顶事件不能定得太散,比如“设备故障”就太宽泛,没法往下拆;也不能定得太窄,比如“轴承滚珠碎了”,这只是底事件级别的东西,撑不起一棵树。

中间事件是顶事件和底事件之间的过渡层,代表某类失效模式已经出现。比如“轴承组件失效”“机械密封泄漏”“驱动电机异常”,这些都是中间事件。底事件则是最基本的失效起因,拆到这一步就不再往下拆了,比如“润滑脂干涸”“密封面磨损”“电源缺相”。

划分的硬标准其实很朴素:拆到能对应一个可监测的物理量,或者能对应一个可执行的维护动作,就停。倒过来想这件事,如果底事件既没有对应传感器可测,也没有对应维护手段可做,那它就不应该出现在你的故障树里,因为这样的分支对预测和维护都没有贡献。

2.2 或门和与门:故障树的两块基本砖

故障树逻辑关系看着复杂,核心就两种:或门(OR)和与门(AND)。

或门的意思是:只要下面任何一个事件发生,上面的事件就必然发生。举个生活里的例子,房间灯不亮,要么是灯丝烧了,要么是停电了,要么是开关坏了——任何一个成立,灯就不亮,这就是或门逻辑。设备里大量失效关系都是或门,比如轴承失效,润滑干涸会导致,疲劳剥落也会导致,长期不对中过载还会导致,谁先到谁触发。故障树里或门概率计算用并集,公式是 P(A∪B) = P(A) + P(B) - P(A∩B),如果底事件相互独立,可以简化成 1 - (1-P(A))(1-P(B))。

与门的意思是:下面所有事件同时发生,上面的事件才会发生。这常见于冗余系统,比如双回路供电,只有两路同时断电,驱动电机才会失电停机。与门的概率是交集,独立事件下 P(A∩B) = P(A) × P(B)。与门在设备故障树里出现得比或门少,但一旦出现,往往对应最关键的安全保护逻辑,计算时要注意别当成或门处理。

2.3 一个能落地的例子:离心泵故障树怎么搭

拿最常见的离心泵举个例子。简化成三个中间事件分支,每个分支继续往下拆底事件。结构大致是这样的:

顶事件:离心泵无法正常输送介质(或门) ├─ 中间事件M1:轴承组件失效(或门) │ ├─ 底事件B1:润滑脂干涸 │ ├─ 底事件B2:轴承疲劳剥落 │ └─ 底事件B3:长期不对中过载 ├─ 中间事件M2:机械密封泄漏(或门) │ ├─ 底事件B4:密封面磨损 │ └─ 底事件B5:安装压缩量不当 └─ 中间事件M3:驱动电机异常(或门) ├─ 底事件B6:绕组过热 ├─ 底事件B7:电流异常升高 └─ 底事件B8:电源缺相

这三个中间事件和顶事件之间是或门关系——轴承坏了、密封漏了、电机不转了,任何一个出问题,泵都别想正常干活。实际项目里当然比这复杂,比如“轴承组件失效”下面可能还要分滚动体磨损、保持架断裂、内外圈滚道点蚀等;机械密封也常和“泵抽空干转”“密封冲洗液中断”等运行工况扯上关系。我的建议是:第一版故障树不用追求穷尽,先把主要失效路径抓出来,跑了三个月数据,发现哪些路径没被覆盖再补。

2.4 概率计算基础:从底往顶逐级算

故障树搭建完成之后,预测性维护需要给每个底事件一个“当前发生概率”。这个概率怎么来,后面专门讲,这里先讲树的概率计算逻辑。

计算方向永远是从最底层往上逐级推进。每一个逻辑门都是一个计算节点:或门节点用 1 - ∏(1-Pi),与门节点用 ∏Pi。有一个经验值得记住:顶事件概率不可能低于任何一个关键的严重底事件概率,因为或门结构下,一个底事件发生了,整条分支就触发了。这也是为什么故障树能帮我们区分“高风险设备”和“低风险设备”——看顶事件概率接近哪个底事件的概率,就能反推最脆弱的环节在哪里。

3. 让故障树“活”起来:从静态因果图到动态监测参数

3.1 底事件怎么映射到可监测的物理量

故障树画得再好,还只是静态的因果关系图。要让它具备预测能力,必须把每一个底事件对接到一个能实时采到的物理量上。这一步是整个模型搭建里最需要工程经验的地方。我常用的对应关系大概是这样的:

底事件监测参数推荐传感器采样方式
轴承润滑脂干涸轴承座温度、振动高频分量PT100温度变送器、压电式加速度计温度连续、振动间歇
轴承疲劳剥落振动包络值、冲击脉冲、油液颗粒数加速度计、在线颗粒计数器连续或高频巡检
联轴器不对中径向振动1倍频、轴向振动加速度计连续监测
入口过滤器堵塞进出口压差、流量压力变送器、流量计连续监测
电机绕组过热定子温度、三相电流PT100、电流互感器连续监测
密封面磨损密封腔温度、微量泄漏检测温度变送器、泄漏传感器连续监测

这里有个容易被忽视的点:一个底事件通常需要多个参数交叉印证。比如“轴承润滑脂干涸”,温度升高是一个信号,但负载变化也会导致温度升高,所以最好同时看振动高频分量有没有一起涨,两个信号同步恶化,判断才靠谱。单一参数报警很容易误报,这是后面专门要聊的坑。

3.2 阈值怎么定:不能只拍脑袋抄厂商推荐值

很多设备厂家会给出振动、温度的建议值,比如“振动不得超过4.5mm/s”。这个值能不能直接用?我的经验是:只能当参考,不能当标准。厂商给的值是基于大量同类设备的统计,没有考虑你自己这台设备的安装基础、管道应力、运行工况。同一台泵,在额定流量下振动是2mm/s,在偏离工况点运行时可能到4mm/s,但设备本身没任何故障。

正确做法是用设备自己当参照系。新设备或者确认健康状态下连续采集9到12个月数据,把正常运行窗口的特征值分布统计出来。取95%分位数作为“关注阈值”,取99%分位数作为“报警阈值”,这是统计过程控制里常用的做法。再进阶一点,不要直接用瞬时值做判断,用滑动窗口的移动平均,窗口长度我一般取30分钟到2小时,这能滤掉启停冲击、瞬时干扰这些噪声。

另外,趋势比绝对阈值更重要。振动值从2.2mm/s涨到2.8mm/s,绝对数值还在“正常区”,但连续30天单调爬升,这个趋势本身就是强烈预警信号。反向的案例我也遇到过:一台风机振动一直在6mm/s上下徘徊,按阈值早该报警了,可是稳定运行了三年没出任何事,因为它的基础本身偏软,振动就是高。所以阈值负责“当前状态分级”,趋势负责“状态变化预警”,两个维度要并行使用。

3.3 底事件概率的“实时化”:把监测值变成故障概率

底事件概率不能干等历史故障数据来拟合——很多设备根本没坏过,哪来的故障概率?实际操作中我用的是工程化的映射方法:把某个底事件对应的关键参数值,通过一个分段线性函数转换成0到1之间的概率值。

比如离心泵的“轴承疲劳剥落”用轴承座振动速度RMS来映射。假设这台泵正常运行基线是2.0mm/s,关注阈值4.5mm/s报警阈值7.1mm/s,可以这样设定:当前值小于等于基线值1.5倍时,底事件概率取0.05;达到报警阈值时取0.95;中间线性插值;超过报警阈值直接取0.99。这个概率不是严格统计意义上的“故障概率”,它更像一个“风险置信度”,但对于维护决策来说足够用,而且逻辑透明,维护工程师看得懂、愿意信。

如果想要更精细,也可以用威布尔分布对设备的磨损退化过程建模,利用历史失效数据拟合形状参数和尺度参数,把当前运行时长和历史特征路径代入,算出真正的剩余寿命分布。这样做准确度更高,但对数据质量要求也高。我的建议是:项目早期用分段线性映射,积累了一年以上的故障记录后再考虑切换威布尔模型,别在数据不足的时候硬上。

4. 模型搭建实操:从数据采集到维护工单的一条完整链路

4.1 数据采集层的关键决策:传感器、采样率、测点位置

模型的上限是由传感器数据质量决定的。采集层有四件事必须做对。

传感器选型上,振动优先选压电式加速度计,频率范围要覆盖设备的故障特征频率;温度用PT100或热电偶,测轴承座温度时安装面要平整;电流用电流互感器,注意量程匹配。采样率有个规矩:最高分析频率的2.56倍。比如你想分析到10kHz,采样率至少要25.6kHz。在线连续采集成本高,实际项目里很多是采用周期性巡检方案,每天固定时段采集10秒波形,也够用。

测点位置是另一个容易被忽略的细节。振动测点离轴承承载区越近越好,优先放在轴承座正上方或承载方向的水平位置,千万别装在薄壁钣金罩、塑料护罩上,那测出来的基本是罩子共振。我见过一个项目,把传感器安装在轴承座外侧的装饰罩上,出来的波形包络全是假的,后来换了位置数据才正常。

还有一件基础但必须做的事:所有传感器数据统一时间戳。振动、温度、电流来自不同系统,如果不做时间对齐,后面做多参数关联分析时会有大麻烦。

4.2 特征提取:别把所有原始波形都喂给模型

采集到的原始波形不能直接进模型,要先提特征。时域里常用这几个:RMS值反映总体能量水平,峰峰值反映冲击强度,峭度是峭度系数,正常轴承峭度接近3,出现点蚀剥落后峭度会明显上升,波峰因子则对早期故障比较敏感。

频域特征对应不同的故障模式。滚动轴承早期故障的特征频率会在高频段产生冲击,需要通过包络解调提取包络谱,看特征频率及其谐波、边频带;不对中问题看1倍频和2倍频的幅值比;松动问题经常伴随高次谐波。我习惯为每台设备维护一个“特征向量库”,每个底事件对应一组特征,每次采集后只更新特征向量,不保留全部原始波形。这样数据量可控,模型计算也轻。

数据清洗这一环节特别重要。启停机阶段的振动、电流数据不能用,传感器断线产生的死值、毛刺必须剔除。我有一个默认原则:只用设备在“稳态工况”下采集的数据来计算底事件概率。稳态怎么判断?可以看电流和转速,连续几分钟内波动不超过设定范围就认为是稳态。

4.3 从底事件概率一路算到顶事件概率:一个完整例子

把前面几节串起来走一遍完整的计算流程。假设现在采集到的数据经过特征提取和映射,得到离心泵各底事件的当前概率如下:

B1润滑脂干涸:0.30;B2轴承疲劳剥落:0.15;B3长期不对中过载:0.10。M1是或门,那么M1 = 1 - (1-0.30)(1-0.15)(1-0.10) = 1 - 0.7 × 0.85 × 0.9 = 0.4645。

M2分支只有两个底事件,B4密封面磨损0.20,B5安装压缩量不当0.05,M2 = 1 - (1-0.20)(1-0.05) = 1 - 0.8 × 0.95 = 0.24。

M3分支,B6绕组过热0.10,B7电流异常升高0.08,B8电源缺相0.02,M3 = 1 - 0.9 × 0.92 × 0.98 = 0.1886。

顶事件E = 1 - (1-M1)(1-M2)(1-M3) = 1 - 0.5355 × 0.76 × 0.8114 ≈ 0.6697。

顶事件概率约等于0.67,对应预警分级里“橙色预警”区间,意味着这台泵目前处于较高风险状态。同时看分支贡献:M1分支概率0.4645明显高于M2和M3,而M1内部B1贡献最大。诊断结论自然就出来了——最可能的故障路径是轴承润滑不良主导,建议优先检查润滑脂状态,安排加脂或更换润滑方案。这种“算完概率直接出诊断方向”的能力,就是FTA相比纯数据驱动模型最大的优势。

4.4 健康度评分和预警分级:最终输出必须是可执行的维护动作

概率算完了,最后一步是把它翻译成维护动作。我做了一张简单清晰的分级表:

等级顶事件概率区间健康度评分维护动作
绿色(正常)< 0.2080-100维持定期巡检,不改变现有策略
黄色(关注)0.20 - 0.5060-79提高监测频率,纳入检修计划,分析趋势方向
橙色(预警)0.50 - 0.8040-59准备备件,确定检修窗口,排查最可能故障路径
红色(严重)> 0.80< 40立即停机检修,禁止带病运行

这里有一句话是花了很多代价才得来的:报警本身不产生价值,报警之后能快速定位故障方向、给出处置建议,才产生价值。所以每次橙色以上预警,模型除了给出概率,还要自动输出一张“最可能故障路径清单”,把贡献最大的底事件从大到小排列,这是FTA天然就支持的。维护团队拿到之后,可以直接先查润滑、再查对中,不用把整台设备拆了找原因。

5. 落地之后才会遇到的坑:误报、数据缺失和模型持续更新

5.1 误报降不下去?先检查这三件事

预警次数过多,维护团队很快就不当回事了,项目辛辛苦苦做的模型也会被质疑。根据我的经验,误报高发的原因有三个。

第一,阈值没有按工况分段。设备在不同负载、不同转速下,振动和电流的正常范围差异很大,拿全工况统一阈值去卡,自然误报多。解决办法是按工况聚类,把转速区间和负载区间分段,每段单独统计阈值。

第二,传感器安装不规范。磁座吸附不牢、胶粘层老化、线缆晃动,都会产生大量伪信号。我曾经排查一台风机频繁误报的问题,查了一个月,最后发现是室外传感器低温漂移导致零点漂移,加装恒温补偿就好了。所以传感器本身要定期做现场标定和安装状态检查。

第三,单变量报警太敏感。振动稍高一点就报警,没有看温度、电流是否有同步变化。稳妥的做法是采用“报警确认机制”:同一个异常连续三次采样都成立,才确认为真报警。或者引入多变量关联判断,比如振动和温度必须同时超限才升级预警。

5.2 设备根本没坏过、没有故障样本,模型怎么起步

这是预测性维护项目最常见的死循环:没有故障数据导致模型没法训练,模型不出效果导致领导怀疑,项目就停摆了。破局办法其实就在FTA本身的特性里。

第一,FTA是机理模型,它不依赖历史故障样本就能建立完整的因果框架。第二,模型里的概率映射参数,可以先用设备正常运行数据去校准,这一步不需要故障样本。第三,特征模式验证可以借用行业公共数据集,比如轴承PHM挑战赛数据集、IEEE IMS轴承加速寿命实验数据,用它们来确认包络解调等特征提取方法的有效性。第四,给模型设定“先报警、后验证”的机制。第一次真实的轴承故障就是最好的训练样本,模型被验证一次,可信度就上一个台阶。我做过的一个项目,前面半年一条真实故障都没有,团队差点放弃,结果第七个月连续捕捉到三次轴承早期故障信号,准确率一下子立住了。

5.3 故障树和概率映射参数都要跟着维修记录迭代

故障树不是建完就能一劳永逸的,必须和维修记录形成闭环。每次设备检修后,维修团队填写的实际故障原因,要和故障树预测的最可能路径做对比。偏差大的路径,要么是底事件划分不合理,要么是漏掉了某些失效模式,要回头修订故障树结构。

概率映射参数也不能一成不变。设备的运行工况可能变化,润滑油品换了,轴承型号改了,甚至工艺参数调整了,都会影响特征值和故障概率的关系。我的习惯是每季度或每半年,用过去一段时间的运行数据和维修记录重新计算一遍阈值和映射参数,确保模型不漂移。

设备做过大修或改造之后,更要重新评估整棵故障树。比如泵原来用滚动轴承,后来改造成滑动轴承,那原先“轴承疲劳剥落”这个底事件可能就不再适用了,要换成“轴瓦磨损”“油膜失稳”这类新路径。模型跟着设备走,才能一直保持有效。

最后说一点我自己的体会。一个预测性维护项目能不能落地,技术模型大概只占一半,另一半是维护团队信不信你算出来的那个概率。我见过太多团队一上来就上机器学习甚至深度学习,把项目做成了科研课题,最后模型精度再高也没人敢用。反而是先用故障树扎扎实实把设备的失效逻辑理顺,让机械工程师、电气工程师、运维班长都能指着同一棵树讨论问题,模型才真正在车间里扎下了根。如果你不确定该不该给某台设备加传感器,先建一棵粗糙的故障树,把所有底事件列出来,再去看哪些底事件“无感不可知”——加传感器的优先级,自然就从树里长出来了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询