基于改进工作流的故障预测系统设计

2022-09-15 05:12杨继聪周伟王林琳
机床与液压 2022年13期
关键词:组件建模预测

杨继聪,周伟,王林琳

(湖北工业大学机械工程学院,湖北武汉 430068)

0 前言

2019年3月,一架客机波音737Max因传感器故障引起飞机失控,导致了机毁人亡的悲剧。同年4月,甘肃某风电场在进行维护保养时,风电机组发生倒塌事故,造成重大人员伤亡和巨额财产损失。这些由于设备故障而引起的重大事故,时刻提醒着人们对装备健康进行状态监测和故障预测极为重要。

彭飞和张尧基于物联网和数据驱动对交通轨道轴承进行了故障诊断。刘冰冰等提出了一种基于随机森林的故障预警模型,对风电变频器进行了研究。郇双宇等针对混合动力铲运机的故障预测,提出了一种把最小二乘支持向量机和隐马尔科夫模型相结合改进的故障预测方法。黄新波等提出了一种基于时间序列和支持向量机的预测模型,对变压器进行了故障预测。滕伟等人提出了一种改进粒子滤波的方法,对重型燃气轮机的跳机故障进行了预测。

上述研究都是针对单一装备使用特定算法进行故障预测,其中最大的限制是缺乏合适的用户界面来根据不同的设备自定义设计合适的实验模型,暴露出模型构建难、复用性差等问题。

相对于单一算法进行故障预测,机器学习算法更加全面。张星星等将机器学习应用于对滚动轴承进行故障分类和诊断。针对实验建模难和参数配置繁琐的问题,将实验步骤可视化显得十分重要。赵玲玲等提出了一种基于Spark的可视化流程式机器学习方法。

本文作者提出一种不需要修改源代码,根据具体的业务需求来自定义算法模型的系统架构。将工作流技术进行改进,应用于故障预测实验。将实验的每一个步骤抽象成一个组件,通过将组件以可视化的方式、拖拉拽的形式来进行算法建模,导入数据源调整某些初始参数就能够适应用户需求的变化。该系统已成功应用于国内某铸造车间表干炉设备的故障预测。

1 工作流技术

工作流是在将输出结果呈现给用户之前如何处理和格式化输入数据的说明。工作流提供了一种直观的能力,可以从算法概念跃进到物理机器上实际实现,又不会失去对需要完成事务的控制,提供了决定“如何”执行的自由。工作流可以抽象为具有任务节点(即活动)和流程(即任务节点之间的转换)的网络。黄达毅讨论了基于工作流应用程序的优势,如灵活性、集成性和可重用性。所有工作流管理系统都具有以下特征:

(1)使用建模工具或语言将应用程序从复杂的过程定义中分离出来;

(2)有一个核心引擎,可以自动驱动有向无环图形(DAG),而无需用户考虑其复杂性;

(3)具有可扩展的接口。

本文作者在传统工作流的基础上提出了锚点的概念,通过锚点来对工作流输入输出数据的个数和类型进行定义,严格控制任务节点之间数据传递的规范和输入输出锚点之间对应关系以保证工作流的顺利执行。不同的角色在系统中有不同的责任,开发人员致力于开发一个可扩展的框架,包括故障预测实验建模和工作流流程调度。部署工程师专注于利用组件组合管理进行实验建模,并设置组件参数。用户可以自定义实验模型或对已有模型进行调参。

2 系统架构设计

由于故障预测系统的复杂性,很难在单一模型中讨论所有信息,因此提出用实验模型库、资源库和工具库3个库组成系统模型。对系统进行形式化定义并对系统的运行流程进行描述。系统架构如图1所示。

图1 系统架构

2.1 实验模型库

实验模型库是该系统最重要的库。每一个故障预测实验都可以配置全局属性,每一个实验对应一个实验流程定义,所有不同的流程定义组成了故障预测的实验模型库。每一个实验流程定义都由一系列组件和描述它们之间逻辑关系的有向弧所组成。一个故障预测实验流程定义是由一个DAG来描述的,DAG还包括一些典型的逻辑节点,如分叉/连接逻辑。

对于每一个组件,有4种描述:属性定义、行为脚本、资源映射和锚点。

(1)属性定义。每个活动的属性定义分为静态和非静态的。前者是指在实验流程中不会改变的属性,在系统中,这类属性被定义为特征值、目标值等;后者是指那些在运行时值会动态改变的属性,这类属性被定义为实际开始时间、完成时间和执行状态等。

(2)行为脚本指组件被调用后产生的活动。提供一些资源(如数据预处理和算法资源)具体操作的入口,通过shell、sql、python等脚本来对相应的资源进行操作。

(3)资源映射指流程中每个活动的资源分配。资源映射在连接实验模型库和工具库中起着重要的作用。资源映射为计划和调度提供了资源访问的方法,这种映射是访问数据源、算法和评估等资源的桥梁。这些资源模型将在资源库中讨论。

(4)锚点镶嵌在组件上下两端,用于连接有向弧,作为组件的输入和输出接口。每个组件除了根据DAG有向图顺序执行外,还存在数据传输。上一个组件向下一个组件传递数据,用输出锚点表示,镶嵌在组件的下端;下一个组件接收上一个组件传递的数据,用输入锚点表示,镶嵌在组件的上端。锚点的数量决定了组件可输入输出数据集的个数,锚点的类型决定了组件可输入输出数据集的内容形式。

2.2 资源库

故障预测系统资源管理是一个真正复杂的过程。资源库总体上可分为以下几种:

(1)数据源资源。储存故障预测实验所需数据,通过自定义创建表生成数据源资源,可分为3个步骤:①创建表,分为可视化和sql命令创建(类似于数据库可视化工具Navicat);②导入数据,选择文件导入数据,支持.txt和.csv的文件格式;③生成数据源资源,导入数据成功匹配对应表字段类型和字段个数即可成功生成数据源资源。

(2)数据预处理资源。提供一些对数据进行处理的方法,处理后输出目标数据。真实场景中的数据往往是混乱和杂乱无章的(数据缺失、重复、值为空等),对挖掘出数据中的有效信息造成了困扰,因此需要采取一些数据处理方法提高数据的质量。目前系统提供了类型转换、拆分、归一化、缺失值填充、标准化等方法。

(3)算法资源。通过shell、sql、python等脚本可选择性调用不同的算法库。这些算法库包含了二分类、多分类、聚类、回归等常见算法,通过输入符合算法模型要求的数据后可成功运行。以多分类中的逻辑回归多分类算法为例,输入目标数据源,对它进行字段设置,如选择特征列、标签列,配置完成即可运行,最后输出预测结果。

(4)评估资源。提供对实验模型输出的预测结果表进行评估的方法。有二分类评估、回归模型评估、聚类模型评估、混淆矩阵及多分类评估等方法。涉及到的评价指标如表1所示,涉及的曲线有ROC-AUC曲线、PRC曲线和KS曲线等。

表1 评价指标

表1中:为异常样本数;为正常样本数;为被正确检测为异常的样本数;被正确检测为正常样本数;被错误检测为异常的样本数;被错误检测为正常的样本数;为观察到的符合比例;为由随机产生的符合比例。

(5)实验模型资源。每一个实验模型都会进行保存。每份资源有部署状态和非部署状态两种,在部署状态下,可通过远程调用接口来进行故障预测实验训练;在非部署状态下可对实验模型进行调参优化。

(6)模板资源提供了一些SQL和算法脚本的基本使用模板,以及针对组件锚点与有向弧之间一一对应动态模板的定义。

2.3 工具库

工具库提供了整个系统完美运行所需要的工具。这些工具的功能如下:

(1)实验建模是一个可以直观绘制出DAG模型的可视化建模工具,这个工具使得实验建模更容易理解。通过图形元素组成真实的实验过程,如串行过程、并行过程和复杂过程。表2所示为实验建模管理中的主要图形元素。表3所示为不同实验流程结构的不同建模过程。

(2)流程调度是一个软件程序。它包含DAG模型的调度信息,例如何时开始执行给定的流程步骤以及要使用的资源,根据资源映射和当前的实际能力提供准确的资源。然而,关于调度器如何使用现有算法的问题不在文中讨论范围之内。

(3)引擎是工作流领域的核心部分,它驱动实验模型执行的整个过程。通过ECA机制,可以在实验模型执行过程中实现数据收集和状态反馈的功能。

表2 图形元素

表3 各流程结构建模过程

2.4 形式化定义

实验模型、资源和工具是组成此系统的基本元素,也是系统运作流程中数据的载体。为更清楚地描述系统整体架构,对整个系统做如下定义:

定义1:系统框架定义

架构F=(Models,Resources,Tools)其中:

(1)Modles={modle|modle=(Element,Transit),=1,2,…,}是所有故障预测实验模型的集合;Element={element∈element∪element∪element∪element,,=1,2,…,}是所有组件的集合;Transit={transit|=1,2,…,}是所有有向弧的集合;

(2)Resources={resource|=1,2,…,}是系统提供所有资源的集合;

(3)Tools={tool|=1,2,…,}是系统提供所有工具的集合。

定义2:数据对象定义

(1)组件Desp(element)={ID,Name,Property,Resource_id,Anchors,Script,Status},即每一个组件都具有独一无二的ID、名称、属性、资源、锚点、执行脚本、当前状态;

(2)锚点Desp(anchor)={ID,Type,Data},即每一个锚点都具有独一无二的ID、类型、接口数据。

(3)有向弧Desp(transit)={ID,Anchor_start_id,Anchor_end_id,},即每一个有向弧都具有独一无二的ID、起始锚点、终止锚点;

(4)资源Desp(resource)={ID,Name,Type,Script,Params},即每一个资源都具有独一无二的ID、名称、类型、脚本、参数。

2.5 运行流程

通过阐述实验模型从构建到完成部署的过程来说明故障预测系统的运行流程,并对其中的步骤进行描述。系统运行流程如图2所示。

图2 系统运行流程

3 实验验证

3.1 样本选择

本文作者基于国内某发动机制造厂商的铸造车间进行研究。通过长时间观察和了解,发现该铸造车间设备的正常运行是通过维修人员定时检修或故障后维修的方式保证的,这种传统的维修方式造成了大量人力和物力的浪费。在如今智能化的大环境下,有必要建立一个故障预测系统去提高该车间在设备维护方面的水平。

表干炉设备是通过循环风机将燃烧室中的热气送入炉内,再对运行在锟道上的浸涂砂芯进行射流烘干的。一般反映表干炉设备是否能正常工作的参数有4个,如表4所示。

表4 影响参数

从现场了解到,该车间会根据这4个因素,按照某些评估方法对表干炉设备每周进行1次健康状态评估,并会给该设备的健康状态进行等级划分,如表5所示。结合在该车间现场采集表干炉设备的历史数据,从中选取近3年数据作为训练样本(150组进行健康状态评估过的数据)。

表5 设备健康等级

3.2 实验建模分析

表干炉设备的故障预测实验建模分为以下几个步骤:(1)通过导入文本数据的方式导入表干炉数据源,使原始数据成为单一的数据源组件,拖到画布中进行实验建模;(2)健康等级转换组件调用数据预处理资源中类型转换方法,使用SQL脚本对原始数据进行类型转换,将健康等级转换为数字表示;(3)特征值归一化组件调用数据预处理资源中的归一化方法选择训练特征列(此处的特征列为表4中的4个参数)进行归一化处理;(4)训练拆分组件调用数据预处理资源中的拆分方法对处理后的数据按0.8的比例来拆分为训练数据和预测数据,训练数据作为回归算法训练锚点输入,预测数据输出到故障预测组件的第2个输入锚点;(5)回归算法训练组件属性定义选择训练特征列和目标列,调用算法资源中的逻辑回归多分类方法对拆分后的训练数据进行回归训练,将训练结果输入故障预测组件第1个输入锚点;(6)故障预测组件调用算法资源中的预测资源,字段设置选择特征列,将结果输入到预测结果评估组件调用评估资源即可进行预测结果评估,设置原分类结果列和预测分类结果列后点击模型运行,运行成功与否组件右边会有状态展现,成功即可查看预测结果。系统界面如图3所示。

图3 系统界面

表6所示为预测结果(此处仅展现了10条数据),每一条数据由其原结果和进行预测后的评价属性值组成(输出结果、输出分数、输出详细)。表6中清晰、直观地给出了预测结果。

表6 预测结果

模型评估报告分为混淆矩阵、比例矩阵、统计信息、总览四部分,分别如图4、图5、表7、表8所示。总览通过精度、Kappa系数和宏平均(MacroAveraged)对所有类别进行总体分析,而统计信息是对每个类别分别进行指标分析。混淆矩阵和比例矩阵通过矩阵图像来反映分类结果的精准。由表8所示的模型评估报告总览可以看到精确率达到了93.33%,验证了该模型故障预测的可行性。

图4 混淆矩阵 图5 比例矩阵

表7 统计信息

表8 模型评估报告总览

将该模型进行部署,通过Postman调用生成的接口进行测试,输入生成的Token和需要预测的数据:

[{″main_tmpt″:213,″:3.5,″air_volume″:34}]

得到如下形式的预测结果:[{″ifhealth″:3}]。

4 结论

本文作者采用基于改进工作流的可视化建模思想设计构建了故障预测系统。系统整个架构分为3个模块,对实验模型库进行了介绍,重点对组件的组成进行了详细描述,提出了锚点的概念;对系统的资源做出了介绍,将系统的资源划分为几个部分以降低复杂度,对每一部分的资源进行了详细描述;介绍工具库,着重对可视化建模的图形结构和流程形式进行了讨论;对系统进行形式化定义,描述系统的数据资源与模块的相互作用关系,并对系统的运行流程进行了详细描述。通过对表干炉设备进行故障预测实验及分析,证实了该系统架构设计的可行性。

猜你喜欢
组件建模预测
选修2—2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
物理建模在教与学实践中的应用
在经历中发现在探究中建模
创建Vue组件npm包实战分析
光伏组件热斑对发电性能的影响
智能机械臂
思维建模在连续型随机变量中的应用
求距求值方程建模
《福彩3D中奖公式》:提前一月预测号码的惊人技巧!