聊设备维护这事儿,这几年最绕不开的命题就是AI、预测性维护和测试自动化。很多制造业的朋友一听到“预测性维护的未来”就觉得遥远,觉得那是大厂才玩得起的实验项目。实际上,过去三年我参与过的几套设备健康管理系统,从注塑机到数控机床都有,整体的技术框架基本已经稳定了。测试自动化在其中的作用,远比“跑几个回归脚本”要深得多——数据管道要自动校验,模型要持续验证,告警规则要回归测试,整条链路缺了自动化根本跑不动。
这篇文章想把这些年我自己在实际落地过程中踩过的坑、验证过的思路、以及真正有用的实施路径拆开讲一遍。适合正在做工业数据化、设备运维平台、或者打算把AI模型接入维护流程的团队参考。别指望看完全套paper内容,但至少能帮你少走几段弯路,搞清楚哪些模块必须先做,哪些坑可以提前避掉。
1. 测试自动化与预测性维护:为什么这两件事越来越绑在一起
1.1 维护模式的升级,本质是决策权的转移
传统车间里的维护策略基本就两种。一种是坏了再修,设备停机了才发现问题,然后急急忙忙找备件、找维修工,生产计划全部打乱。另一种是定期保养,不管设备状态好坏,到时间就换油、换轴承、做校准。定期保养比坏了再修强,但浪费问题特别明显——很多部件状态还很好就被换掉了,同时也挡不住两次保养之间突然出故障。
预测性维护想要解决的就是这个尴尬地带:通过连续采集设备运行数据,用模型判断设备的健康状态,在真正失效之前找到故障前兆,然后安排精准维修。这套逻辑要想成立,有一个前提——数据必须真实、连续、可用,而且模型给出的判断必须能稳定复现。如果今天跑出来的结果和明天跑出来的结果割裂开,那没人敢把设备安全交给系统。
这就给了测试自动化一个非常自然的切入点。设备端的传感器数据有没有正常上报?上传频率和网关配置是不是对的?模型服务接口的返回结果是不是稳定的?告警触发之后,工单和通知有没有按规则流转?这些问题全部可以用自动化测试的手段持续验证。换句话说,AI负责“预测”,测试自动化负责“保证预测系统本身不出错”。
1.2 测试自动化的角色,不是辅助,是基础设施
很多人一听到“测试自动化”就默认是软件测试领域的东西,跑到工业设备维护这边有点水土不服。我在实际项目里的体会是,测试自动化在预测性维护中的角色更像“数据质量守门员”和“模型发布安全网”。
先说数据质量。预测性维护模型的输入是传感器时序数据,比如振动加速度、温度、电流、压力、转速。这些数据只要有一个环节采集异常,模型看到的设备状态就跟实际完全不一样。例如振动传感器定期标定过后,量程变了但采集程序没同步更新,数据全部偏大,模型可能会把正常设备误判成故障。如果能在数据管道入口写一套自动化校验规则,定期检查数值范围、缺失率、频率分布,大量类似的低级问题都能被挡在外面。
再说模型发布。模型不会只训练一次就完事,随着工况变化、季节变化、设备老化,模型需要不断更新迭代。每次模型更新都带风险,可能新模型在老数据上表现很好,但对近期新出现的工况模式反应异常。测试自动化在这里要形成一个标准的模型验证流水线——历史数据回放、新旧模型对比、灰度验证、告警准确率回归,全套流程自动化跑完才能进入生产环境。这套东西如果靠人工一个个跑,不仅效率低,而且容易漏环节。
2. 整体架构与方案选型:先搭骨架再谈AI算法
2.1 数据采集层:传感器点位怎么布,数据怎么聚
预测性维护的第一公里永远是数据采集,但这一公里并不像想象中那么顺利。设备种类不同,能采集的数据也完全不同。加工中心可能会有内置的伺服电流和主轴负载参数,泵和风机往往需要外接振动和温度传感器,大型电机旁边还有电流互感器和绝缘在线监测。
我在项目里习惯把数据源分成三类:设备控制器自带数据、外接传感器数据、维护台账与工单数据。控制器自带数据最容易拿,通过OPC UA或者Modbus协议从PLC里读出来,不用额外动硬件。外接传感器数据更贴近故障本质,尤其是振动信号,但对安装位置和采样频率要求很高,采样率不够时根本捕捉不到轴承早期损伤的冲击特征。台账和工单数据看似不关键,却承担着“标签”的重任——设备什么时候换过件、什么时候报过修,这些记录是标注训练数据集的重要信息。
这三类数据要汇总到一个统一的数据管道里。采集端最常见的方案是边缘网关,设备现场跑一个轻量程序,把不同类型的数据转成统一格式,然后按固定周期推到中心端的时序数据库。时序数据库的选型建议优先考虑写性能好、压缩率高的产品,如果团队运算资源有限,选一个成熟开源的就行,核心指标是单机写入吞吐量能不能扛住现场所有设备的汇总数据量。
2.2 AI模型分层:异常检测、故障分类、寿命预测各干各的活
模型选型是很多人最爱聊的部分,但同时也是最容易跑偏的部分。一上来就想做个“什么都能预测的大模型”,往往死得最快。比较务实的做法是把预测性维护任务拆成三个层次,分别处理。
第一层是异常检测,解决“设备现在状态正不正常”的问题。输入是近期一段时间的传感器数据,输出是异常分数。这一类模型可以不依赖历史故障标签,用重构误差类算法或者孤立森林就能跑起来,甚至简单到用滑动窗口的均值方差突变检测也能顶住一部分场景。第二层是故障分类,解决“如果异常了,是哪类故障”的问题。需要一些带标签的故障样本,用监督学习训练分类器。标签来源可能是历史维修记录,也可能是人工标记的振动频谱特征。第三层是剩余寿命预测,解决“还能撑多久”的问题,通常用回归模型拟合劣化曲线。这个最难,因为需要大量完整生命周期数据,很多设备还没跑完一个生命周期系统就已经换过两轮了。
在项目初期,我强烈建议先做好第一层,也就是异常检测模型,配合可视化和告警规则,让现场人员先感受到系统“有点用”。等积累了足够多的故障记录,再逐步上分类和寿命预测。一上来就全链路铺开,光数据标注这一件事就能把项目拖垮。
2.3 测试自动化嵌入的位置:从数据埋点到模型部署的完整闭环
测试自动化在这套架构里不是独立的一块,它应该贯穿从数据埋点到模型上线的每个环节。
最底层是数据管道测试,验证采集程序有没有按预期的频率上报数据,有没有丢失字段,时序数据在写入数据库之后能不能被正确查询。第二层是数据质量测试,检查数值范围、变化率、缺失率是否合理,发现异常数据要及时告警并触发数据修复流程。第三层是模型服务测试,验证模型的输入输出格式、接口响应时间、并发性能,确保模型服务能被告警系统稳定调用。第四层是业务流测试,模拟一条从“异常分数超过阈值”到“生成维护工单”再到“通知维修工程师”的完整链路,任何一个环节卡住都能在自动化测试里暴露出来。
这四层测试对应到工程实现上,就是一套持续集成流水线。数据管道代码有变更时自动跑第一层和第二层,模型训练完提交时自动跑第三层和第四层。真正常态运行的预测性维护平台,最花时间的往往不是调模型参数,反而是把这些自动化测试用例维护好。
3. 核心实现环节:从数据收集到模型落地的完整实操路径
3.1 数据收集的脏活:时间对齐、缺失值、传感器漂移
别指望设备数据像互联网日志一样干净。工厂现场的时序数据问题非常多,第一是时间不同步,PLC时间、传感器网关时间、数据中心时间经常有偏差,跨系统关联数据的时候错位几百毫秒就能让特征计算完全变味。第二是缺失值,网络抖动会导致一部分数据包丢失,如果恰好丢在故障发生前几秒,模型就可能失去关键信息。第三是传感器漂移,加速度计用久了零点会偏移,温度探头老化后响应变慢,这些问题不解决,后面所有分析都是在沙子上盖楼。
我的处理习惯是,数据管道入口统一做时间标准化,全部转为UTC时间戳,并在写入时序库之前进行完整性检查。缺失率超标的通道直接标记为“该通道数据不可信”,宁可少一个特征也不要让糟糕数据混进模型。传感器漂移问题则靠周期性的校准记录和统计监控来发现,比如某个传感器的数值长期稳定在一个偏移位置,或者方差突变,这些都是漂移的典型信号。校准记录要跟数据放一起,这样模型做特征时才能知道某个时间段的数据发生了尺度变化。
3.2 特征工程与标签问题:成败都在看不见的地方
模型的输入不是原始数据,而是特征。处理振动数据时常用到的特征是时域统计量,比如均方根值、峰值因子、峭度;处理电流和功率数据时,常用的特征包括有效值、波动率、谐波分量;处理温度数据则更关心变化趋势,比如一小时内温度升高的斜率。选择哪些特征,取决于故障类型和传感器类型,没有放之四海而皆准的组合。
标签问题是整个预测性维护项目中最难绕过的坎。设备多数时间处于正常工作状态,故障状态数据稀少且经常没有准确的时间点标注。维修工单上写“更换轴承”,但到底是哪一天轴承开始劣化的?完全不知道。所以我在项目里会先花很大精力做事件对齐:把工单记录、回料记录、传感器异常波动时间点串起来,人工推断故障起始时间。这个过程又臭又长,但做得好不好直接决定后面模型能学到什么。
如果故障样本实在太少,就得考虑用无监督或者半监督策略。异常检测模型不需要历史故障标签,只要正常数据足够多,就可以刻画设备的正常行为边界。等异常样本积累到几百条,再回头给异常检测模型输出做聚类,看看能否形成不同的故障簇,再决定要不要做细粒度分类。
3.3 模型训练与验证:数据切分、回测与阈值选取
预测性维护的模型验证跟普通机器学习模型有一点关键差异——数据具有时间顺序,不能直接随机切分训练集和测试集。如果随机切分,模型会看未来数据去预测过去,测试结果虚高得没有意义。正确做法是按时间顺序切分,前60%到70%的数据用来训练,后30%到40%的数据用来回测,模拟“模型训练完再上台”的真实场景。
阈值选取也是实操中的难点。异常检测模型输出的是一个连续分数,设置多少分触发告警,直接影响误报率和漏报率。阈值定得低,设备稍有波动就告警,现场人员会很快麻木甚至关停告警;阈值定得高,故障穿过去没人知道,系统形同虚设。我一般的做法是先拿历史上真实的故障时间段去回测,看模型在那段时间的分数分布,再根据可接受的误报频次来反推阈值。比如要求每月每台设备最多误报两次,就得很粗略地把阈值调到对应的分位水平,然后上线后再根据真实反馈微调。
整个训练和验证流程都要做成自动化流水线。新数据进来,自动触发特征计算、模型增量训练、回测评估、阈值校准,最后生成一份报告,交给工程师看一眼就可以决定是否发布。切忌在笔记本上手动跑模型,然后复制权重文件上线,那种做法一两次还行,时间久了绝对会出大乱子。
4. 常见问题与排查实录:这些年踩过的坑
4.1 误报率太高,现场人员直接把系统关掉
这是预测性维护项目退场率最高的原因,没有之一。我见过不止一个项目,AI系统上线第一周就报了几百条告警,设备工程师跑来一看,大部分都是没问题的,于是把通知关掉,项目宣告失败。
误报高的根源通常是三个。第一是数据质量问题,传感器噪声大、接线松动导致间歇性跳变,模型会把噪声当异常。第二是工况覆盖不全,设备正常运行时的负载范围很宽,变量组合特别多,模型没见过某些正常工况就会误判。第三是阈值设置太激进,为了不漏过故障,把触发线调得过低。
排查这类问题我有一套固定流程。首先查看误报时刻的原始波形或原始数据,排除接线松动、通讯毛刺等因素。其次把误报时间点的特征统计出来,跟正常工况的历史分布对比,看看是不是出现了新工况,如果是,就要重新收集正常数据扩充模型边界。最后再调整阈值和告警确认机制,比如连续N个周期异常才触发告警,或者要求异常分数和持续时间都达标才推工单。这种“双重确认”机制能挡掉大量随机尖峰噪声。
4.2 标签缺失,故障样本不够用怎么办
工业现场经常碰到的问题是,设备确实坏过几次,但既没有详细的传感器数据记录,也没有精确的故障时间点。设备历史维护记录写得模棱两可,比如“保养中发现异响,更换皮带”,这种记录很难当成监督标签。
我的办法是先做粗粒度的三段式标注:正常运行段、劣化起始段、故障发生段。不需要精确到每一个采样点,只需要大概圈出某个周之后设备开始偏离正常状态。然后让异常检测模型先跑无监督,把异常分数曲线拉出来,人工检查曲线上的明显抬升点,再结合维修记录来修正标注。这种做法效率不错,虽然会有噪音,但工业场景下带有噪音的粗标签比完全没标签强很多。
另外要充分利用设备自身的运行状态码。很多设备控制器本身有报警代码或故障代码,这些代码虽然不能直接反映机械部件的早期劣化,但能提供一个弱标签。例如某类报警代码经常伴随着特定轴承故障出现,那就可以把这些报警代码的时间点作为弱标签,去训练分类模型,效果通常也能接受。
4.3 测试用例与真实场景脱节,自动化验证形同虚设
有些团队搞了自动化测试,测试覆盖率看着也不低,但模型出问题时测试却完全没拦住。问题就出在造的测试数据太假,都是构造出来的理想值,跟现场真实波形完全不在一个分布上。
正确的做法是从生产环境抽真实历史数据来构造回归测试集。把过去三个月的数据存成样本快照,每次模型更新时就用这份快照回归一遍,确保新模型在已知历史场景上的表现不比旧模型差。这个数据快照要定期更新,让新的工况模式不断进入回归范围。
另外,故障注入测试特别重要。我在测试里专门准备了一批“模拟故障样本”,把真实的故障信号叠加到正常波形上,验证模型是不是真的能检出。没有这种故障注入,你根本无法确认模型是在工作还是在碰运气。准备好这一套故障样本库之后,每次模型迭代都必须跑一遍,相当于模型的“体检考试”。
5. 投入产出与推行策略:别让技术项目死在组织协同上
5.1 先算账:预测性维护到底值多少钱
预算审批时最烦听到的一句话是“AI能给公司省多少钱”。预测性维护的收益很难直接归因,但也不是算不清楚,关键是怎么框定范围。我习惯把收益拆成三块:非计划停机损失减少、备件库存成本降低、运维人效提升。
非计划停机损失是最直观的。以一条机加工生产线为例,设备平均无故障时间大约200小时,每次故障停机平均4小时,每小时产线利润按数千元算,一次非计划停机就要损失近万元。如果预测性维护能提前预警,把非计划停机转为计划性维护,至少能减少一半的紧急抢修时间,这个账非常容易算清楚。
备件库存是容易被忽略的一块。传统预防性维护为了保证设备可用性,会大量备库存,一个轴承备十套,结果很多套在仓库里过期或者型号淘汰。预测性维护可以在故障前两到三周预判到具体失效部件,采购只需提前准备,库存周转率能大幅优化。把这三种收益加起来,如果一条产线有几十台关键设备,一年省下来几十万的量级很正常,系统的软硬件和人力投入,一年到两年基本能回本。
5.2 团队怎么搭:不是招一堆算法工程师就行
预测性维护涉及的角色比很多人想的多。至少需要四类人:懂设备工艺的工程师、做数据采集和管道开发的数据工程师、做模型训练和部署的算法工程师、以及负责运维和告警处置的现场人员。这四类人缺一不可。
我见过最典型的失败配置,是一个算法团队包揽所有事,设备工程师只等在手机上看告警。算法人员不了解设备原理,建模时选了一堆没物理意义的特征,设备工程师看不懂模型输出,自然不敢根据模型结论去拆设备维修。比较好的做法是每个关键流程节点都由对应角色把关,尤其是特征工程环节,必须有设备工程师深度参与,告诉他轴承磨损在振动信号上的表现特征是什么,电流异常和保护IO动作的关系是什么,这些经验知识比数据本身更值钱。
现场人员的抵触情绪也需要提前管理。要让老师傅觉得新系统是给他们帮忙的工具,而不是用来考核他们的“电子监工”。我习惯把告警页面设计成工单助手的形式,系统给出建议部件和参考处理方法,维修人员仍然可以自行判断,系统只是助理。这样推行阻力会小非常多。
5.3 灰度落地:先试点一台设备,别一上来就全厂铺开
预测性维护项目特别不适合“大干快上”。我一贯的建议是先选一台故障历史清晰、数据质量较好、业务影响适中的设备做试点。哪怕这一台设备撑不起什么大模型,也能把流程走通,问题暴露完全。
试点阶段的目标不是准确率高,而是把从数据采集、模型训练、告警通知、工单派发到维修反馈的闭环跑通。这一圈跑下来,你才会发现哪些环节是以前根本没想到的。比如夜班告警谁来响应,调度系统怎么对接,工单反馈怎么自动录入数据库,这些流程问题模型不关心,但每个都能让项目卡壳。
试点跑顺之后,再复制到同类型设备,形成模板化部署。不要试图统一所有设备到一套模型,不同工艺段的设备特征差异很大,硬塞进同一个模型只会让效果全面下滑。分设备类型做模型包,让每一类设备都有自己专属的异常检测边界,这种策略的效果和可维护性都最好。
6. 写在最后的几点体会
做预测性维护这几年,我最大的感受是,AI模型反而是整个项目里最容易被替换的环节,真正的护城河是干净可靠的数据管道和稳定的自动化测试体系。曾经有个项目,前期花了快三个月整理数据、搭测试框架,建模只花了两周,但后期模型每次迭代都能平稳上线,几乎没有回滚过。反而是另一个项目,模型调得很花哨,数据管道没人管,结果上线第二周就出现数据断流,模型天天在拿废弃数据“裸奔”。
另外分享一个特别实用的习惯:从项目一开始就给每条数据打上产线、设备型号、采集通道、治理版本的元数据标签。这个看似很烦的细节,后期做数据分析、模型回测、问题追踪时,能省下无数沟通和排查时间。数据治理听起来不如算法性感,但所有稳定的工业AI系统都是靠这些笨功夫堆出来的。
预测性维护的未来方向,现在还远远没到终局。边缘计算让更多模型推理能放到现场级设备里,数字孪生把物理设备的状态投射到虚拟空间做仿真测试,这些方向都值得关注。真把这一行做好做扎实,需要的不是追热点,而是把每一个数据采集点、每一段测试用例、每一条告警规则都打磨到位。希望这篇内容能给正在做同样事情的团队一些参考,少踩几个坑就是赚到。