在训练预测性维护演算法时,在真正机台上建立所需的故障条件通常很昂贵,或有时根本无法做到。对于这类情况的解决方式之一,是利用从真正在运作中的机台取得的现场资料来调整一个实体的3D模型,并建立数位分身用来设计能够布署于真实设备的控制器的预测性维护侦测演算法。
工业设备损坏所导致的损失,除了替换设备的花费之外,最大费用还来自于强制停机所衍生的问题,一条生产线的停摆可能造成每分钟几千美元的损失。以固定周期执行例行性的维护虽然可预防意外停机,不过并不能保证完全不会发生设备损坏。
因此,如果让机器可以自动辨识其中某个零件即将故障,甚至知道哪一个零件需要更换的话,便能有效地减少意外停机的情形。计画性的维护保养,并不是以固定的间隔时间进行维护,而是只在需要的时候才执行,因此预测性维护(predictive maintenance)的目标:即在于利用感测器资料来预测机台何时需要保养,以避免发生停机。
任何一种预测性维护演算法的开发核心关键—都在感测器资料上,因其可用来训练故障侦测的分类演算法。在前处理(preprocessing)的阶段,从感测器资料中撷取出有意义的特征,并利用这些特征训练一个预测性维护的机器学习演算法,接着,这个演算法被汇出至Simulink等模拟软体来进行验证,之后再经过转码,以程式码布署到机器的控制单元。
不过,要从实体设备取得现场特定故障条件的资料,不是随时都可以做得的,允许现场瑕疵情况的发生,可能导致灾难性的故障并且造成设备破坏。而刻意地在可控制的环境下产生故障,也可能非常耗费时间、金钱,或者难以执行。
解决上述挑战的一种方式是建立一个设备的数位分身(digital twin),并透过模拟来产生各种故障条件的感测器资料,这个方法让工程师可以产生所有预测性维护工作流程中所需要的感测器资料,包含测试所有可能发生的故障条件组合和各种严重程度的故障。
本文将讨论如何利用MATLAB、Simulink和Simscape来设计一个三缸泵(triplex pump)的预测性维护演算法(图1)。首先,我们利用Simscape为实际泵浦建立一个数位分身,并调校出完全符合的度量资料;然后再利用MATLAB的机器学习来建立预测性维护的演算法,该演算法只需要出口泵压(outlet pump pressure)就可以辨认是否有某一个零件,或一整组零件即将发生故障。
建立数位分身
三缸泵内含三个由曲柄轴(crankshaft)驱动的活塞(plungers)(图2)。
![图2 : 三缸泵图示以及体积流量(volumetric flow rate)图表。](/art/2019/08/151440050680/p2S.JPG)
图2 : 三缸泵图示以及体积流量(volumetric flow rate)图表。 |
|
这些活塞经过特殊的配置,使得有一个气室(chamber)会一直处于排放的状态,让流动更为顺畅,并减少压力变化,因此较单一活塞泵更能降低物质形变。常见的故障情况,包含泵浦曲柄轴轴承磨损、活塞的密封处出现泄漏,以及入口阻塞等等情形。
泵浦CAD模型通常可以从制造商之处取得,Simulink能汇入CAD模型,汇入之后,在其中我们可建立一个泵浦机构模型并进行3D多体机构模拟,为了建立系统的动态行为模型,泵浦需要与液压和电气元件补偿。
建立数位分身时需要用到一些参数。像是口径(bore)、冲程(stroke)、轴径(shaft diameter)等等参数,这些可以从制造商的产品资料表找到,但其他资料可能已遗失或仅在某些特定范围可得。在这个范例,我们需要会让输送流体至出口的三个止回阀(check valves)开启或关闭的偏高与偏低的压力值,因为精确的压力值的收集取决于所输送流体的温度,我们手上还没有这样的压力值资料。
图3中的图表显示以粗略的估计值来模拟泵浦的结果(蓝色线条)与现场资料(红色线条)并不完全相符。蓝色线条在某些范围程度与实际量测的曲线相似,但在相异的部分有着很明显的差距。
我们利用Simulink设计最佳化模组(Simulink Design Optimization)来自动调整参数值,让模型能够自动产生符合量测资料的结果。从Simscape中的Check Valve Outlet block可以找到被选用来进行最佳化的参数(图4)。 Simulink设计最佳化模组选择参数值、执行模拟、并计算模拟与量测曲线之间的差异。
从结果看起来,新的参数值已被挑选出来,并且用来执行新的模拟。接着,计算参数值的梯度(gradient)来判断哪个方向的参数需要再调整。在这个范例中,只有两个参数需要调整,因此很快地就可以达到聚合。对于需要调整更多参数的更为复杂的情境,使用可以加快调整过程的功能就显得十分重要。
建立预测模型
现在,我们已经有了泵浦的数位分身。下一步是要把故障零件的行为加入模型中。
有几种不同的方法可把故障行为加入模型中。许多Simulink模块内建有常见故障行为的下拉式选单,像是短路或开路等,只需要改变参数值就可以建立像是摩擦或衰退效果的模型。
在这个范例考虑到三种故障类型:轴承磨损造成的摩擦力增加、入口阻塞造成的流通范围减少、活塞的密封泄漏。前面两种故障需要调整模块参数。而若要建立泄漏模型,我们会需要加入一个液压系统的路径。
如图5所示,所选择的故障条件可以透过使用者介面或MATLAB指令来开启或关闭。在这里示范的模型,所有故障条件均透过MATLAB指令来开关。如此一来,可以利用程式脚本来自动完成这整个流程。
![图5 : 建立三缸泵的泄漏模型。可以利用泵浦模块对话框(上)或程式指令(下)来变更参数。](/art/2019/08/151440050680/p5S.JPG)
图5 : 建立三缸泵的泄漏模型。可以利用泵浦模块对话框(上)或程式指令(下)来变更参数。 |
|
在图6上半部所显示的泵浦模拟,启用了两种故障行为:入口阻塞与活塞3的密封泄漏。这些故障以红色圆圈来标示。图6下方的图表为出口压力值的模拟结果,蓝色为连续曲线,黄色为杂讯的取样。由于我们需要尽可能以实际资料来训练故障侦测演算法,所以透过模拟产生的资料必须包含杂讯的量化效果。
![图6 : 上:泵浦入囗阻塞与密封泄漏的示意图。下:出囗压力模拟(蓝色)与杂讯取样(黄色)结果。](/art/2019/08/151440050680/p6S.JPG)
图6 : 上:泵浦入囗阻塞与密封泄漏的示意图。下:出囗压力模拟(蓝色)与杂讯取样(黄色)结果。 |
|
图6的绿色方框内代表出口压力值的正常范围。图中针状的部分显然不在正常范围之内,表示出现了故障。单从这张图可以让工程师或操作人员知道泵浦出现问题,但还是无法准确判断发生了什么样的故障。
我们为这一个数位分身建立了大约200种情境,为的是要使用模拟来产生泵浦在所有可能的故障条件组合下的压力值。每一个情境必须经过无数次的模拟来作为感测器的量化效果。由于这种方法必须进行数千次的模拟,我们希望可以加快资料产生的过程。
其中一个典型的方法是把模拟分配到多核心机器上可利用的排程,或者在数台机器或电脑丛集上同时平行执行。视问题的复杂程度、时间限制、资源等条件,可以透过MATLAB平行运算工具箱(Parallel Computing Toolbox)和平行运算伺服器(MATLAB Parallel Server)的支援来进行平行运算方法。
另外一种方法是利用Simulink的Fast Restart功能,这项功能利用了许多系统在所有状态稳定之前,都需要经过一段时间来设置的这项特性。
有了Fast Restart,这部分的测式只需经过一次的模拟。随后所有的模拟将会从系统达到稳定状态的时候开始。在现在这个范例,设置时间占了单一测试所需的模拟时间的70%(图7)。结果,藉由Fast Restart的使用可以节省大约三分之二的模拟时间。由于Fast Restart可以从MATLAB指令及脚本来配置,非常适合使用于训练流程的自动化。
![图7 : 使用Simulink的Fast Restart功能来缩短模拟时间。](/art/2019/08/151440050680/p7S.JPG)
图7 : 使用Simulink的Fast Restart功能来缩短模拟时间。 |
|
下一步是要利用模拟结果来撷取机器学习演算法的训练资料。预测性维护工具箱(Predictive Maintenance Toolbox)提供了几种选项来撷取训练资料,我们在这里关注的讯号属于周期性讯号,因此,看起来适合使用快速傅立叶变换(fast Fourier transform,FFT)。如同图8所呈现的结果,有几个属于个别故障,以及故障组合的强度不同且完全分离的针状图形。机器学习演算法对于这种类型的资料可以掌握地很好。
每一种故障情境的FFT结果,皆被撷取到一个包含了插入的故障加上观察到的讯号频率及强度的表格。因此,相对来说需要考量的参数数目比较少。
现在,训练故障侦测演算法所需要的资料都已经准备好,即可把资料汇入统计与机器学习工具箱(Statistics and Machine Learning Toolbox),我们将使用一个产生出来资料的子集来验证经过训练的演算法。
接下来,我们在统计与机器学习工具箱内将训练过程的结果视觉化,这些图表的呈现可以帮助我们比较不同演算法的优缺点,并判断是否还需要额外的训练资料。我们选择了准确性最高的演算法来从量测资料判断泵浦是否发生故障。我们将该演算法汇入数位分身,并利用为了验证所储存的七种测试案例来进行验证(图9)。
如同最终结果显示,这个分类演算法能够安全地侦测到所有七种情境,并且已准备好可转档布署到控制单元上了。
这项工作流程被应用在真实世界中,常见的有工业设备,它在世界各地多样化的环境条件下运作,例如这些设备可能经常需要变更:可能是换了新的密封垫或闸阀供应商,或者泵浦可能需在各种流体或者每天的温度范围都不同的环境下运作。这些因素将影响到感测器量测到的压力值,也有可能让故障侦测演算法变得不可靠或什至无法使用。因此设备被采用于新的市场时,让演算法具备依新的条件快速更新的能力便显得相当重要。
我们这里所讨论的工作流程都可以透过MATLAB程式进行自动化,而且大部分的工作都可以重复利用。唯一需要重复进行的步骤,是撷取可比泵浦在现场需面对的条件下资料。
随着最新且更有智慧的互联网连结性的发展,使得机器制造商更有可能为客户提供支援临时设定的设备、透过远距方式在真正的实地条件下收集资料、训练故障侦测演算法、并接着远距重新把演算法布署至机器,这将开启全新的客户支援机会,包含针对已在特定现场条件下使用一段时间的设备的故障侦测再训练,这些从无数机台收获而来的了解将造福客户及供应商。
(本文由钛思科技提供;作者Steve Miller任职于MathWorks公司)