亚马逊AWS官方博客

预测性维护在工业物联网的应用

质量问题是工业企业的重大影响因素,如果无法确定质量问题的根本原因,就需要花费过多的时间和精力来纠正这些问题,可能会降低产量或造成高昂的产品召回。另外识别潜在的故障,延长设备使用寿命从而提高安全性并进一步优化供应链是预测性故障重要的方向。

 

几乎可以肯定的是,预测性维护将在未来愈发凸显其在工业物联网中的重要作用:

  1. 纵向来看,预测性维护对于节约企业生产成本、提高效益有显著作用,预计会有20%的效益增加;
  2. 横向来看,行业竞争激烈,引入预测性维护技术可以有效提高企业竞争力;
  3. 从战略角度评估,预测性维护代表着工业服务化和未来商业模式转变的历史选择。

再进一步深入聚焦分析领域,这些预测维护分析供应商集中聚焦于4个主要类别:基础分析、数据工程、通用数据科学和预测维护定制分析,具体可分为9种类型:

 

基础分析

1.数据可视化:用于创建仪表板、图形等的软件,如Tableau、Sisense。

2.分析库:统计和数学软件包,可用于建立预测维护模型/软件,如Tensorflow、SciPy。

数据工程

3.大数据自动化:用于数据采集/数据录入过程自动化的服务/产品,如Infoworks、Xtracta等。

4.数据工程:数据处理过程的服务/产品,例如Data Engineers。

通用数据科学

5.统计分析:用于复杂统计分析的软件,如Statsoft、Vitria。

6.数据挖掘:对已有大型数据库的数据进行挖掘,以生成新信息的软件,如Rapidminer、Knime等。

7.机器学习:专门为机器学习应用程序开发的软件。如Avora、Shogun。

预测维护定制分析

8.预测分析:基于机器数据进行预测维护的服务/产品,如Falconry,Senseye。

9.异常检测:实时检测异常的服务/产品,如Splunk、Numentra。

 

针对于基础分析、数据工程、数据科学,AWS提供了很多工具和方法,如下图所示,这次我们本文的重点是预测性维护,主要是给您提供如何结合边缘计算、AWS IoT、机器学习等技术与工业场景的思路和方法。

 

场景描述

在本篇博客中,我们将通过在工业钻孔机设备上安装传感器,收集钻头压力,马达和主轴转速数据,并将数据发送到云端存储、分析、展示,以对设备运行状态和钻孔质量等做分析监控,并且基于机器学习算法进行预测性分析。

预测性分析主要方法是分析马达转速过快或过慢,和钻孔时间过长,进行潜在的钻孔质量异常预测。

我们通过连接控制设备的PLC,获取数据,分析数据并创建机器学习模型来预测钻孔机异常。我们会将模型部署到边缘端,在边缘端做预测。本场景可以帮助操作员避免故障及提高产品质量。整体来讲, 场景覆盖了大数据、机器学习的主要步骤和如何基于AWS进行端到端的系统实现。

 

物理架构

场景模拟了真实工业物理场景,以下是现实中的钻孔机,通过左上侧的IoT Gateway将钻孔机的马达速度、钻头压力、钻孔转速和工作状态收集到PLC设备,AWS IoT Greengrass(AWS Greengrass)部署在IoT Gateway内的硬件上并与PLC设备相连。AWS Greengrass通过可接收OPC-UA数据的AWS Lambda模块将PLC的钻孔数据收集起来,并在经过预处理传到云端AWS IoT Core,进而使这些数据能够在云端进行存储和分析。另外AWS Greengrass还部署了一个可以预测钻孔质量的AWS Lambda函数,在钻孔结束后可以实时预测出本次钻孔的质量好坏。

 

场景技术架构

整个过程的架构大致如下分三个大的部分

一,工业设备,设备通过PLC/OPC-UA Server 将设备相关信息传输至AWS Greengrass网关设备。

二,边缘计算和推理,AWS Greengrass是将云端IoT的功能扩展到本地设备的软件。AWS Greengrass 通过AWS Lambda处理 OPC-UA消息,并将消息聚合处理后使用不同的topic发送至AWS IoT core同时 在AWS Greengrass中还部署了一套机器学习模型将预测的结果发往云端AWS IoT Core。

三,云端分析训练,AWS IoT Core 会处理边缘设备发送的数据,通过rule engine将消息进一步过滤并发给Amazon Elasticsearch Service(Amazon ES),然后通过Kibana展现。通过DeepLearning Amazon EC2对这些数据进行训练后将模型存放在Amazon Simple Storage Service(Amazon S3)中,这些训练后的模型会通过AWS Greengrass部署在边缘设备中。架构如下:

 

我们可以看到,这里涉及到的服务比较多,对于数据采集和处理这一部分不是本篇重点,我们通过架构可以看到,整个处理流程如下所示,也是围绕这6大部分进行的,在本次侧重于4到6的部分,也就是训练并部署模型到边缘端、基于模型进行预测推理、分析与展现。

 

模型训练

通常预测性维护在机器学习中分为,时间序列预测与时间序列异常检测。

时间序列是指在一定时间内按时间顺序测量的某变量的取值序列。

时间序列异常检测(Outlier detection),又称为离群点检测,是找出与预期对象的行为差异较大的对象的一个检测过程。这些被检测出的对象被称为异常点或者离群点。

时间序列预测是为了预测将来某个时间点的目标值,而时间序列异常检测是判断当前时间点的目标值是否为可能的异常。

在本篇中,我们通过钻孔机的钻头压力,马达和主轴转速等数据来做异常检测。

预测性维护在不同的业务场景中有多样的算法可供选择。例如,用户如果需要知道一个时间窗口(例如,30分钟)内设备是否会出现故障,可以构建一个分类算法,预测设备在指定时间窗口内“是”“否”会发生故障(二分类)或者出现什么类型的故障(多分类)。或者,用户需要在成百上千个正在运行的设备中找到数据异常的设备,进而对于这些设备进行针对性检测与维护,可以使用无监督的聚类异常值检测算法(如k-means)。再如,用户需要预测设备在特定的时间序列下会出现故障,可以构建回归算法或时间序列算法(如RNN, LSTM, DeepAR),预测设备未来的运行指标,然后通过统计算法设定合理的运行指标波动范围,从而预测设备会发生故障的时间点;或是构建时间序列异常检测算法(如IForest以及RandomCutForest)判断当前时间点的目标值是否为可能的异常。同时,也有用户通过强化学习算法模拟实际的生产场景,从而预测设备未来的行为与可能出现的故障类型。

在AWS全托管机器学习平台上,我们有各种内置算法来帮助用户快速构建针对不同业务需求的预测性维护算法。同时,我们也可以非常方便地在Amazon SageMaker平台上导入自定义算法进行预测性维护。在本次试验中,我们通过钻孔机的钻头压力,马达和主轴转速等数据构建MLP模型做二分类(异常和非异常)来做异常检测。

 

本篇中我们用的是利用模型来得到预测结果。使用的是包含3个全连接层的神经网络架构neural network (NN) architecture。根据钻取数据的特性,这个网络能够对给定的数据集的异常做出准确的预测。具体实现我们可以看一下部分代码的截图,完整代码在参考链接中:

 

另外一点我们要对sensor的数据做一些特征工程的工作,比如数值内的数据是正常运行的状态,反之是异常的状态。部分代码截图:


模型部署

这一步是分成两部分,一部分是我们将Jupyter notebook中的训练好的模型导出至Amazon S3对象存储中。第二部分是将存储到Amazon S3的模型推到具有AWS Greengrass的边缘设备中,并利用AWS Greengrass ML inference来实现边缘推理。

一:保存模型至Amazon S3

这里您需要注意的是无论使用含有notebook的Amazon EC2实例还是AWS Cloud9都需要它们有写入Amazon S3的权限和AWS SDK。部分实现代码如下,我们可以看到压缩model为DrillingPrediction.model.tar.gz并上传到Amazon S3的指定目录下。

 

二:Amazon S3的模型推到边缘设备AWS Greengrass

部署预测AWS Lambda函数到边缘侧做实时预测,添加预测AWS Lambda到AWS Greengrass组中,打开DrillGateway的配置界面,选择Lambdas,并点击添加Add Lambda,该Lambda函数为推理的后端逻辑。Lambda的源代码可以参考最后的参考链接。

例如后面我们将利用AWS Greengrass创建Machine Learning 资源,然后import刚刚训练好的模型。

# Model Directory – adjust this to load it from the Greengrass ML Resource

modelDirectory = “/trained_model/”

# Model Filenames

filePrefix=”Drill-AnomalyClassifier”

paramFile = filePrefix + “-0000” + “.params”

structureFile = filePrefix + “-symbol.json”

normalizationFile = filePrefix + “-normalization.json”

 

预测推理

打开云端AWS IoT服务在测试界面 订阅主题“data/prediction”,可以看到如下预测结果,其中一个字段为“Prediction”就是实时预测的结果:

 

分析展现

将设备生成的数据从AWS IoT发送到Amazon Elasticsearch Service(Amazon ES)可以实现多种分析和监控用例,例如使用Kibana近乎实时地可视化设备运行指标,利用AWS Greengrass预测结果实时掌握设备的潜在故障趋势等。

下面将从配置Amazon ES域开始,以存储和索引设备生成的数据。然后,配置AWS IoT规则,以将数据路由到Amazon ES域。最后,使用Kibana近乎实时地显示数据。

定义曲线的Y轴和X轴,定义完成后,点击右上角的蓝色三角符号,就可以在右边看到相应的曲线图了,如下图所示。

 

配置和设计Kibana报表,可以实时地可视化展示所预测的潜在故障趋势图。报表设计可以参考另外一个博客,最后附有连接。

 

 

总结

预测性维护分析可以捕获工业设备的状态,在它们影响生产之前识别潜在的故障,从而延长设备使用寿命、提高工人安全性并进一步优化供应链。使用 AWS IoT,您可以持续监控和推断设备状态、运行状况和性能,从而实时检测问题。我们会在接下来的一篇博客中详细介绍解决方案的实施的具体步骤。

 

参考链接

AWS官方博客:https://aws.amazon.com/cn/blogs/china/deploy-an-end-to-end-iot-application/

AWS工业IoT:https://aws.amazon.com/cn/iot/solutions/industrial-iot/

物联网智库:https://mp.weixin.qq.com/s/1GmGLlBU_jNWf3x0pCgUFQ

训练代码连接:https://awsiiotmlblog.s3.cn-north-1.amazonaws.com.cn/DrillingAnalytics.ipynb

AWS Lambda代码连接:https://awsiiotmlblog.s3.cn-north-1.amazonaws.com.cn/IIoTWSBJS-LQ-PredictAnomalies10086zip.zip

AWS IoT Greengrass:https://docs.amazonaws.cn/greengrass/latest/developerguide/what-is-gg.html

 

本篇作者

李强

AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,在物联网和微软的技术栈有着广泛的设计和实践经验。在加入AWS之前,曾在东芝中国负责系统开发和运维工作,在微软中国负责中小企业的技术咨询和方案设计工作。

祁骥

AWS中国解决方案架构师,专注于研究和推广针对初创企业的云计算解决方案。曾供职于埃森哲,野村综研等IT咨询公司,在电商,供应链管理,数字化营销等方面拥有丰富系统架构经验。也曾加入IT咨询初创企业,致力于帮助中小企业实现数字化运营。目前侧重于大数据整合方案及人工智能相关领域的研究。