预测性维护怎么玩之MATLAB篇


编辑导语: 之前写过两篇预测性维护的文章,总体来讲,反响还可以(做害羞状),看来爱学习的好青年还是很多嘛。 也有小伙伴在知乎上留言,提到了MATLAB也有关于预测性维护的解决方案。因此,最近翻了一下MAT…

之前写过两篇预测性维护的文章,总体来讲,反响还可以(做害羞状),看来爱学习的好青年还是很多嘛。

也有小伙伴在知乎上留言,提到了MATLAB也有关于预测性维护的解决方案。因此,最近翻了一下MATLAB的相关资料,重点看了白皮书《Overcoming Four Common Obstacles to Predictive Maintenance with MATLAB and Simulink》,《Predictive Maintenance with MATLAB》。读下来还是有收获的,尤其是第一篇,其中提到的几个困难也确实是目前工业现场做预测性维护的常见难点。尽管没有用MATLAB的产品实际操作过,但是,毕竟他山之石可以攻玉,今天就再做一次知识的搬运工兼翻译,把第一篇文档中的观点和方法摘录如下,和大家共同学习一下。

预测性维护常见的四个困难及解决办法

困难一:没有足够的数据建立预测性维护系统(模型)

我们这里所研究的预测性维护是指通过机器学习的技术,利用大量的设备相关数据,建立预测模型,因此,数据是否充足是关键因素。但是,大多数工业现场恰恰在数据方面有很大的短板,包括种类、数量和质量等。

MATLAB提出以下几种解决办法:

  • 仔细查看数据源列表。也就是说,如果数据不够,那么就尝试着从其他各种领域、渠道获取更多的数据,比如企业内部其他的部门,或者是供应链上下游的合作伙伴。总之,就是要开动脑筋、挖空心思地想哪里还能搞点有用的数据出来。
  • 改变数据的获取方式。我们的现场虽然有很多监控系统,但是这些系统往往在不发生故障时,就不记录任何数据。或者,虽然记录数据,但是记录的不多、不充分,例如,仅仅记录了一个时间戳和数值。可以尝试改变这些系统数据记录的选项配置,来进一步记录更多的数据。
  • 使用仿真工具来生成数据。使用仿真工具生成测试数据,并将该数据与可用于构建和验证预测性维护算法的传感器数据相结合。

困难二:缺少用于构建准确模型所需的故障数据

工业现场的现实情况是,如果设备维护过于频繁,可能就没有故障发生,也就没有故障数据了。或者是系统太关键,绝对不能允许其出现故障,那么基本上也不会有故障数据。(故障数据为什么这么重要,请查看《预测性维护怎么玩之科普篇》

MATLAB提出以下几种解决办法:

  • 通过模拟仿真来生成故障数据。为了防止故障数据的缺乏成为预测性维护的致命障碍,可以使用Simulink等工具模拟故障数据,并学习如何从可用的操作数据识别警告信号。熟悉设备机理的工程师能够用模拟工具生成样本失效数据。FMEA也能够用于判断哪些故障能够被模拟。总结一下就是,熟悉设备机理的工程师+模拟工具+FMEA等工具来解决没有故障数据的问题。
  • 深入了解已经获取的数据。故障数据可能没有获得,但是,运行数据能够显示出机器效能下降的趋势。通过PCA等统计方法来降维,以发现海量过程数据汇总的规律。

困难三:我们理解这些故障发生的机理,但是我们没办法预测它们

前文提到,我们所研究的预测性维护是要应用机器学习技术的,而现场工程师大多对此不太熟悉,面对机器学习相对陡峭的学习曲线,往往会望而生畏。MATALAB在这方面提供方法论和工具。详见下文:

  • 定义目标。基于固定的目标才能评价算法是否合适。这一点在很多机器学习培训课程中都有提到,必须要在建模之初就确定好模型评价的指标,而且单一的指标要比多指标更容易实现。
  • 从小处开始。应该从最熟悉机理模型的设备开始,用一些简单的算法,如线性拟合或者逻辑回归作为起点,找一个显著标识值,然后再调整、不断迭代。这一点也是机器学习教程中经常提到的,先快速建立模型,不要想的太多、太复杂,然后再不断调整,快速迭代。
  • 通过数据的验证来增强对于模型的信心。当预测性维护的算法开始显示比较好的结果时,可以在上生产系统之前用实时和历史数据来验证模型,通过验证模型来增强信心。

困难四:我们不知道如何去做预测性维护

与困难三类似,机器学习技术在工业现场的应用还处于尝试阶段,对于这类项目的投资还是有风险的。因此,MATLAB提出了完整的预测性维护工作流程,供大家参考。具体就不解释了,感兴趣的朋友可以直接看《预测性维护怎么玩之科普篇》

一点疑惑

前文提到,对于工业现场数据的缺乏,可以“利用仿真工具来生成数据”。这种方式确实是我之前没有想到过的,我也没有尝试过,因此心中是有一点疑惑的。结合之前在学习培训中学到的内容,和大家共同探讨一下。

近期在参加一个机器学习方面的培训,其中也提到了,如果训练集中的数据比较缺乏,无法真实反映实际所关心的问题,比如,训练车载语音识别系统的场景中,可能目前并没有那么多的训练数据,那么我们可以模拟这些数据,通过合成一些车内噪声的音频与安静环境下的音频来模拟出汽车行驶过程中的语音训练材料。以下是引用的原文翻译:

但是,这样做数据的模拟、合成是有其自身的问题的。比如说,在安静的背景下记录1万小时的数据,并且其中有一个小时伴随着汽车噪声,我们可以尝试将这一个小时的汽车噪声反复循环1万次 目的是叠加这1万个小时在安静背景的音频数据上。如果我们这样做,人耳听起来会觉得不错,但是这里有可能会使学习算法对这一小时的汽车噪声造成过拟合。

所以,用MATLAB的仿真工具模拟的数据会和实际情况有多大的误差,或者说,是否会出现“虽然模拟出了很多故障数据,但是其实只是一小部分数据的不断重复”。这就不得而知了,只能亲手试一下才行了。

结语

虽然MATLAB的这些方法谈不上非常的结构化,也未必能在国内的现场有很强的适用性,但是,毕竟为我们提供了一些备选的、可以进行尝试的方法。因此,还是希望能够在大家开展预测性维护项目的时候有所帮助,尤其是通过仿真工具生成数据这种方式,如果有条件,还是有必要尝试一下的。

相关阅读:

《预测性维护怎么玩之科普篇》

《预测性维护怎么玩之实践篇》

MATLAB预测性维护资料获取方式:

关注公众号,回复“matlab”,即获取MATLAB预测性维护的相关资料。


最近更新于 2022-05-14 猿小六2021-10-20 发布, 已阅 1230 次。