本文的要点:了解预测性维护系统(PMS),监控未来的系统故障并提前安排维护计划讨论如何为系统预测性维护建立机器学习模型了解机器学习处理步骤等选择模型并使用自动编码器去除传感器噪声了解如何训练机器学习模型并在WSO2复杂事件处理器产品中运行模型应用示例使用NASA发动机故障数据集上的回归模型来预测剩余使用寿命(RUL)我们在日常生活中依赖许多系统和机器。我们开车、乘电梯或坐飞机。涡轮机发电,医院里的机器让我们活着。这些系统失败了。有些故障只是给人们的生活带来不便,而另一些则可能是生死攸关的。当风险很高时,我们会对系统进行例行维护。例如,汽车每隔几个月保养一次,而飞机每天保养一次。但是,正如我们在本文后面讨论的那样,这些方法会导致资源浪费。预测性维护预测故障并采取措施修复、更换系统,甚至在故障发生时进行计划。它可以带来显着的成本节约、高可预测性和增强的系统可用性。预测性维护有两种形式来节省资金:避免或最大限度地减少停机时间。它可以避免不满意的客户停机,节省资金,有时甚至可以挽救生命。优化定期维护操作。要了解这一点,让我们看看出租车公司。如果一辆出租车抛锚了,公司需要安抚不满的顾客并派出新车,而出租车和司机都将在维修期间闲置。失败比看起来要昂贵得多。处理这个问题的一种方法是消极的,在不可靠的组件失效之前更换它们。例如,执行例行维护操作,例如更换机油或轮胎。虽然定期维护总比失败好,但我们会在系统真正需要它之前进行维护。因此,这不是一个完美的解决方案。例如,每3,000英里更换一次机油并不一定意味着您有效地使用了机油。如果我们能更准确地预测故障,出租车可以在不换油的情况下行驶数百英里。预测性维护避免了这两种极端情况,并最大限度地利用了资源。它将检测异常和故障模式,并发出预警。这些警报可以激励人们更有效地维护这些组件。在本文中,我们将探讨如何构建用于预测性维护的机器学习模型。下一章讨论机器学习技术,然后讨论示例中的NASA数据集。第4章和第5章讨论了如何训练机器学习模型。“使用WSO2CEP运行模型”一章介绍了如何将模型应用于实际数据流。用于预测性维护的机器学习技术为了进行预测性维护,首先,我们在系统中添加传感器以监控和收集系统运行的数据。预测性维护所需的数据是时间序列数据。数据包括时间戳、在该时间戳处收集的传感器读数以及设备编号。预测性维护的目的是在时间“t”时,使用截至该时间的数据来预测设备在不久的将来是否会发生故障。预测性维护可以通过以下两种方法之一来实现:分类方法——预测在接下来的n个步骤中是否可能发生故障。回归法——预测下一次故障发生前的剩余时间。我们称之为剩余使用寿命(RUL)。前一种方法只能提供一个布尔值表示的答案,但可以从很少的数据中获得很高的准确性。后一种方法可以提供有关何时发生故障的更多信息,但也需要更多数据。我们将在NASA发动机故障数据集上尝试这两种方法。涡轮风扇发动机退化数据集涡轮风扇发动机是美国宇航局太空探索局使用的现代汽油涡轮发动机。NASA生成了以下数据集来预测运行一段时间后的涡轮风扇发动机故障。该数据集可以从PCoE数据集中获得。该数据集包括每个引擎的时间序列。所有发动机都是同一种型号,但每台发动机在制造过程中的初始磨损程度和差异程度是不同的,用户是不知道的。可以使用三种可选配置来改变每个引擎的性能。每台发动机都有21个传感器,用于收集发动机运行时与发动机状态相关的测量值。收集的数据中存在一些传感器噪声。渐渐地,每台发动机都会有一些不足之处,这可以从传感器读数中发现。时间序列在故障发生之前的某个时间结束。这些数据包括发动机单元编号、时间戳、三种配置以及来自21个传感器的读数。下面的图1和图2显示了数据的一个子集。图1:数据子集图2:数据子集的前几列本实验的目的是预测下一次故障发生的时间。使用回归预测剩余使用寿命(RUL)预测RUL的目标是减少实际RUL值与预测RUL值之间的误差。我们使用均方根误差作为衡量标准,因为它会严重惩罚大误差,迫使算法预测结果接近实际RUL。阶段1:下面的流水线描述了预测过程。作为第一阶段,我们在管道中运行几个重要步骤,以大致了解什么是可行的。我们不是运行特征工程,而是在原始数据上运行算法。第1阶段:选择模型下面的图3显示了用于预测性维护的模型选择管道。这里只使用深色流水线步骤。图3:用于模型选择的预测性维护管道我们使用了来自scikitlearn和H2O的许多回归算法。关于深度学习,我们在H2O中使用了深度学习算法,既可以用于分类应用,也可以用于回归应用。该算法基于多层结构的前馈神经网络,利用反向传播的随机梯度下降法对神经网络进行训练。下面的图4显示了结果。该模型可以产生25-35的均方根误差,即RUL将有大约25-35个时间步长的误差。图4:模型选择的均方根误差在接下来的几个步骤中,我们将重点关注深度学习模型。第2阶段:使用自动编码器去除传感器噪声下面的图5显示了具有去噪功能的预测性维护管道。这里只使用深色流水线步骤。图5:用于模型选择的预测性维护管道通常,传感器读数包含噪声。软件附带的自述文件证实了这一点。因此,我们使用自动编码器来去除噪声。自编码器是一种简单的神经网络,使用相同的数据集作为网络的输入和输出来训练模型,并且网络的参数数量小于数据集的维度。这与主成分分析(PCA)(http://setosa.io/ev/principal-component-analysis/)非常相似,其中数据表示为其主要维度。这个过程减少了噪音,因为它的维度比传统数据高得多。我们使用具有三个隐藏层的H2O自动编码器和以下标准来去除噪声。去除噪声后,均方根误差减少了2。表1:去除噪声前后的均方根误差阶段3:特征工程下面的图6显示了用于预测性维护的特征工程流水线。这里只使用深色步骤。图6:用于模型选择的预测性维护管道在此步骤中,我们尝试了许多功能并保留最具预测性的功能子集。我们使用的数据集是时间序列数据集,因此传感器读数是自相关的。因此,时间“t”的预测很可能受到“t”之前的某个时间窗口的影响。我们使用的大部分功能都基于这些时间窗口。在第III节中,我们讨论了包含来自21个传感器的读数的数据集。可以在随数据集提供的自述文件中找到更多详细信息。经过一些实验,我们只使用了传感器2、3、4、6、7、8、9、11、12、13、14、15、17、20和21。对于每个选定的传感器,我们使用以下方法生成特征方法:滑动标准差(窗口大小为5)、滑动k-最近均值(窗口大小为5)和窗口内概率分布(窗口大小为10)。我们尝试了某些其他功能但最终没有使用它们,包括:滑动平均、自相关、直方图、滑动熵和滑动加权平均。这些特征将均方根误差减少了1。表2:特征选择前后的均方根误差阶段4:使用网格搜索优化超参数图7显示了具有超参数优化的预测性维护管道。这里只使用深色流水线步骤。图7:用于模型选择的预测性维护管道超参数控制算法的行为特征。在最后一步中,我们优化了以下超参数:迭代次数、分布、激活函数和隐藏层数。可以在H2O文档中找到每个参数的详细说明。我们使用网格搜索来寻找最佳参数,结果如下表所示。表3:不同超参数下的均方根误差正如结果描述的那样,超参数优化将均方根误差降低了3。在残差直方图中(图8),可以看到误差收敛到“0”。早期和晚期预测的频率都被最小化了。图8:用于模型选择的预测性维护管道构建模型以预测接下来N个步骤中的故障在这种方法中,我们将预测一台机器在接下来的30个周期内是否会发生故障,而不是预测其剩余寿命的长度。我们将故障状态视为正(P),将非故障状态视为正常(N)。我们使用相同的特征工程和去噪过程运行深度学习分类模型。图9显示了结果。混淆矩阵图9:模型选择准确性的预测性维护管道描述了正确预测的测试数据列的比例。它给出了正确预测的测试用例数与测试用例总数的比率。如果类的分布不平衡,那么仅考虑准确性可能会产生误导。在数据集中,当同一类被过度代表时,就会出现不平衡的类分布。在这种情况下,某些模型可能具有较高的准确性但预测性能较差。为了避免这个问题,我们使用精确率和召回率作为指标。召回率是正确预测的正类数与所有实际为正类的数据数的比值。精度定义为模型预测正类的能力。它是正确预测的正类数与所有预测为正类的数据数的比值。F1分数用于衡量测试的准确性。精度和召回率都用于计算该分数。关于准确率、召回率、准确率和F1score,最佳值接近1,训练好的模型表现良好。使用WSO2CEP运行模型我们在处理存储在磁盘上的数据的同时批量构建模型。但是,为了使用该模型,我们需要在运行时为模型提供可用数据。对数据的处理称为“流处理”。我们使用流处理引擎WSO2CEP来应用该模型。我们使用H2O来构建模型。H2O可以将模型导出为两种格式之一:POJO(普通Java对象)或MOJO(优化模型对象)。前者需要编译,后者可以直接使用。我们在CEP中使用了MOJO模型。为了评估模型,我们使用了WSO2CEP中的扩展。WSO2使用类似SQL的查询语言来处理数据流中的数据。如图10所示,一个复杂的事件处理系统接收事件流数据并使用类似SQL的查询对其进行评估。例如,给定的查询可以计算stockQuotes流的一分钟滑动窗口,将其与Tweets流的一分钟窗口连接起来,然后将事件发送到PredictedStockQuotes流。图10:用于模型选择的预测性维护管道下面显示了使用CEP评估模型的示例查询。fromdata_input#h2opojo:predict('ccpp/DRF_model_python_1479702792496_1')selectT,V,AP,RH,predictioninsertintodata_output下面的图11显示了整个管道,包括训练步骤和评估步骤。图11:用于模型选择的预测性维护管道此查询获取发送到“数据输入”流的事件并应用机器学习模型。应用机器学习模型涉及以下步骤:使用“第3阶段:特征工程”部分中描述的预处理步骤对事件数据进行预处理并生成特征集使用生成的特征集评估机器学习模型。返回结果结论预测性维护的主要目的是预测设备何时可能发生故障。然后采取相关措施来防止这些故障。预测性维护系统(PMS)可监控未来的故障并提前安排维护。这些可以降低一些成本。减少维护频率。尽量减少维护某个设备所花费的时间,更好地利用时间。最大限度地减少维护成本。本文探讨了使用不同的回归和分类算法进行预测性维护的不同方法。此外,本文展示了调整这些模型的分步技术。我们的最终解决方案在预测剩余使用寿命时的RMSE值为18.77,在预测N(30)步内可能发生的故障时的准确率为94%。
