工业机械异常检测

描述

您怎么知道一台机器是否在正常运行?问题的回答是:通过利用深度学习来检测工业机器的常规振动数据中的异常情况。异常检测有很多用途,而尤其在预测性维护中特别有用。

这个深度学习的例子讲的是基于双向长短期记忆网络(biLSTM)的自动编码器。虽然这个词很拗口,但它仅表示训练网络来重构“正常”数据。这样,当我们给算法提供一些看起来不同的数据时,重构错误会提示您机器可能需要维护。当您所拥有的数据均为“正常”数据时,自动编码器不失是一个很好的尝试方法。

数据集有两部分:维护前的数据和维护后的数据。从逻辑上讲,我们可以假定维护后的数据是“正常”的(当我们有一个称职的维护团队的情况下!)。但是我们对维护前的数据并不确定。

                                               检测

以下显示了两个相互叠加在一起的数据样本。

检测

与其在原始信号上进行训练,不如提取特征区分训练前后的数据,这往往帮助更大。使用Diagnostic Feature Designer应用程序,一次性从所有数据中自动提取特征并对其排序。然后,这个应用程序可以自动创建一个函数generateFeatures,以编程方式重做所有这些工作。

 

trainFeatures = generateFeatures(trainData);

这就是那个基于biLSTM的自动编码器。

featureDimension = 1;

 

% Define biLSTM network layers

layers = [ sequenceInputLayer(featureDimension, 'Name', 'in')

bilstmLayer(16, 'Name', 'bilstm1')

reluLayer('Name', 'relu1')

bilstmLayer(32, 'Name', 'bilstm2')

reluLayer('Name', 'relu2')

bilstmLayer(16, 'Name', 'bilstm3')

reluLayer('Name', 'relu3')

fullyConnectedLayer(featureDimension, 'Name', 'fc')

regressionLayer('Name', 'out') ];

 

自动编码器是这样工作的:在正常数据上训练网络。如果您把正常的数据传给它,就能很好地重构它。如果您把一些不正常的数据传给它,就无法重构它,并且您会从重构错误中看到提示。

在每个通道的排名前四的特征上训练网络—仅根据正常(维护后)数据。

通过挑选合适的重构误差阈值,算法能以相当高的准确率识别出异常情况。而我们有一些已知为异常的测试数据,可以明确地测试算法的准确率。

 

预测类别



检测

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分