工厂老师傅的“听音辨位”要失业了吗?—— 我如何用 NASA 的算法给液压泵做了个 AI 医生

0 阅读4分钟

一个真实的痛点

上个月去朋友的液压件厂,车间里一台 Parker PVP 柱塞泵突然异响。老师傅拿听棒听了半天,判断是“柱塞磨损,再撑两天没问题”。结果第二天半夜,泵直接抱死,整条产线停了 3 小时,损失十几万。

我问:“不是有振动传感器吗?”他说:“有是有,但那玩意儿一天到晚报警,谁分得清是真故障还是负载大了?”

那一刻我决定,要把我在航空发动机预测性维护项目里学到的算法,移植到液压泵上。

从 CMAPSS 到液压泵:算法迁移的挑战

做过工业 AI 的朋友都知道 CMAPSS——NASA 发布的涡扇发动机退化数据集。我基于它打磨了一套 BDLSTM + 注意力机制的模型,能根据传感器时序数据预测剩余寿命,误差在 10% 以内。

但液压泵和航空发动机不一样:

  • 发动机在天上飞,工况稳定;液压泵在车间里负载忽大忽小。
  • 发动机有 21 个虚拟传感器;我的液压泵只有压力、三轴振动、温度、三相电流这 8 个真实信号。

我做了三件事让模型“落了地”:

  1. 把老师傅的经验变成“手工特征” :振动超过 4.5mm/s 是警告、电流超过 110A 是超载——把这些物理阈值编码成数字,喂给模型当“小抄”。
  2. 同时训练三个模型互相监督:BDLSTM 打底,Transformer 抓长周期趋势,TCN 负责快速推理。
  3. 给预测结果加上“置信区间” :不光告诉你还剩多少天,还告诉你“最坏情况还剩多少天”。

系统架构一览

text

传感器层 → 数据采集与存储层 → AI模型推理层 → 可视化与交互层

技术栈:Python (paho-mqtt) + PyTorch (LSTM, Transformer, TCN) + Flask + ECharts。

模型对比:为什么用三个模型而不是一个?

特性BDLSTMTransformerTCN
核心机制双向LSTM+注意力多头自注意力膨胀因果卷积
长距离依赖中等极强
可解释性注意力权重自注意力矩阵可直接可视化较难解释
适用场景小样本快速验证复杂退化模式边缘端部署

三个模型同时运行、互相验证。如果三个模型预测值接近,可信度更高;如果分歧很大,系统会提示人工介入。

核心亮点:Transformer 注意力可视化

Transformer 的自注意力机制天然生成一个 30×30 的注意力矩阵,表示每个时间步对其他时间步的“关注程度”。我修改了模型前向传播,提取最后一层自注意力矩阵,经过平均和压缩后返回前端,用 ECharts 热力图渲染。

X 轴是 T-30 到 T-1(表示过去 30 个周期),Y 轴是注意力权重值,颜色越红表示模型越关注该时刻。

当压力脉动突增或振动跳变时,对应的柱子会“烧红”——这相当于 AI 在告诉你:“我是因为看到了这个异常,才判断它要坏的。”彻底告别“黑盒”猜谜。

不确定性量化:MC Dropout 置信区间

推理时保持 Dropout 开启,执行 30 次前向传播,计算均值和标准差,输出 95% 置信区间(均值 ± 2σ)。置信区间越窄,预测越可信;置信区间越宽,不确定性越高,需谨慎对待。

这套系统对工厂意味着什么?

  • 减少非计划停机:提前 1~2 周预警,留出采购备件和安排维修的时间。
  • 降低误报率:多模型互相验证 + 物理阈值约束,不再因为负载波动乱报警。
  • 知识沉淀:老师傅的经验被编码进模型,即使人员流动,AI 依然记得“什么情况该修”。
  • 远程运维:部署在云服务器上,老板在手机浏览器就能看到泵的状态。

写在最后:AI 会替代老师傅,还是成为最好的帮手?

目前这套系统跑在腾讯云服务器上,用的还是模拟数据。下一步我准备购买相关传感器把它部署到朋友工厂的真实泵上,收集几个月的数据再迭代一版。

我倾向于后者——AI 不会替代老师傅,而是把他几十年的经验“数字化”并放大。一个老师傅最多同时盯几台设备,但 AI 可以同时盯几百台。

你怎么看?欢迎在评论区讨论。 gitee.com/crazyzxl204…