您怎么知道一臺機器是否在正常運行?問題的回答是:通過利用深度學習來檢測工業機器的常規振動數據中的異常情況。異常檢測有很多用途,而尤其在預測性維護中特別有用。
這個深度學習的例子講的是基于雙向長短期記憶網絡(biLSTM)的自動編碼器。雖然這個詞很拗口,但它僅表示訓練網絡來重構“正常”數據。這樣,當我們給算法提供一些看起來不同的數據時,重構錯誤會提示您機器可能需要維護。當您所擁有的數據均為“正?!睌祿r,自動編碼器不失是一個很好的嘗試方法。
數據集有兩部分:維護前的數據和維護后的數據。從邏輯上講,我們可以假定維護后的數據是“正常”的(當我們有一個稱職的維護團隊的情況下?。?。但是我們對維護前的數據并不確定。
以下顯示了兩個相互疊加在一起的數據樣本。
與其在原始信號上進行訓練,不如提取特征區分訓練前后的數據,這往往幫助更大。使用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') ];
自動編碼器是這樣工作的:在正常數據上訓練網絡。如果您把正常的數據傳給它,就能很好地重構它。如果您把一些不正常的數據傳給它,就無法重構它,并且您會從重構錯誤中看到提示。
在每個通道的排名前四的特征上訓練網絡—僅根據正常(維護后)數據。
通過挑選合適的重構誤差閾值,算法能以相當高的準確率識別出異常情況。而我們有一些已知為異常的測試數據,可以明確地測試算法的準確率。
預測類別 |
-
機械
+關注
關注
8文章
1592瀏覽量
40642 -
檢測
+關注
關注
5文章
4498瀏覽量
91556
發布評論請先 登錄
相關推薦
評論