王保勤
潞安化工集團五里堠煤業(yè)公司 山西潞安 032600
礦井提升機是礦山企業(yè)的主要提升設備,是連接礦井上下的“咽喉”,一旦其發(fā)生故障,不但影響礦山的日常生產,甚至危及工作人員的生命安全。據統(tǒng)計,由提升系統(tǒng)故障所造成的安全事故約占煤礦安全事故的 1/3[1],因此對提升機的狀態(tài)監(jiān)測、故障診斷與預測具有重要意義。隨著我國工業(yè)化步伐的加快,機器設備也越來越復雜,需要監(jiān)測的數據也越來越多,通過專家知識來進行特征提取的傳統(tǒng)故障診斷方法已遠遠不能滿足現在的發(fā)展。得益于當代計算機技術的快速發(fā)展以及信息化與工業(yè)化的融合,機器學習、大數據、物聯網等技術得到不斷發(fā)展,其中能夠從海量數據中自主挖掘數據內在特性的機器學習方式受到越來越多的關注。如何將這些技術應用于礦井提升機的故障診斷中,也引起大家越來越多的關注[2]。
一維卷積神經網絡 (One-dimensional Convolutional Neural Networks,1DCNN) 作為深度學習的經典算法,具有局部感知和參數共享兩個特點,能夠有效降低網絡模型的復雜度,減少權值的數量,使得卷積核對輸入的空間局部模式具有最強的響應。T.Ince 等人提出一種具有自適應設計的一維 CNN 用于電動機狀態(tài)監(jiān)測[3],Sun W J 等人提出了一種用于感應電動機故障診斷的卷積判別特征學習方法[4],Xia M 等人提出了一種基于CNN的旋轉機械故障診斷方法[5]。這些研究都有效驗證了利用卷積神經網絡對電動機軸承故障診斷具有較高的準確率與魯棒性。
然而卷積神經網絡一般是處理二維數據,而電動機軸承原始振動信號是一維數據,因此筆者提出了一種利用一維卷積神經網絡的電動機軸承故障診斷模型,直接將原始振動信號作為輸入信號來進行端到端的故障診斷。這樣能夠有效避免因為人工信號處理以及特征提取所帶來的誤差,提高故障診斷的準確率。
一維卷積神經網絡是一類包含卷積計算且具有深度結構的前饋神經網絡。它與普通神經網絡的區(qū)別在于,一維卷積神經網絡包含了濾波級與分類級,濾波級用于提取信號特征,分類級用于對濾波級所提取的特征信號進行分類,兩級網絡共同作用。一維卷積神經網絡主要由輸入層、卷積層、池化層和分類器構成,其中分類器由全連接的多層感知機構成。1DCNN 模型[6]如圖 1 所示。
圖1 一維卷積神經網絡模型Fig.1 Model of one-dimensional convolutional neural network
激活函數用于將非線性引入神經網絡,它會將值縮小到較小的范圍。常見的激活函數有 Sigmoid、Tanh 以及 ReLU,前 2 種激活函數的函數曲線較為平滑,利于求導,但是當輸入值較大時,它們的導數值都趨近于零,并且隨著神經網絡層數的增加都會出現梯度彌散,甚至無法訓練的情況;ReLU 函數能夠在一定程度上解決梯度彌散的問題,因此采用 ReLU 函數作為激活函數。
ReLU 激活函數
一維卷積神經網絡的關鍵在于其卷積運算,在卷積層中使用一維數組作為卷積核,通過多個卷積核對上一層輸出的特征矢量進行卷積后加上偏置,然后經過非線性激活函數便可得到下一層的激活值其表達式為
式中:為第l層的輸出;為上一層 (l-1 層)的輸出,也是當前層l的輸入;f為激活函數 ReLU 函數;∑為遍歷輸入特征映射;為神經元的卷積核;為網絡偏置。
不含激活函數的卷積運算流程如圖 2 所示。
圖2 卷積運算流程Fig.2 Process flow of convolution algorithm
池化層進行的是降采樣操作,主要目的是減少神經網絡的參數。池化方法主要有 2 種,最大值池化和平均值池化。最大值池化是輸出池化窗口中的最大值,平均值池化是將池化窗口中值的平均值作為輸出。在最大值池化中,能夠獲取位置的無關特征,因此筆者采用的降采樣操作是最大值池化。其公式為
式中:為第l層的第i個神經元的輸出值;為第(l-1) 層第i個特征矢量中神經元的值;sscale為池化區(qū)域的尺度;sstride為池化區(qū)域的步長。
全連接層則是利用卷積層和池化層所提取的特征來進行分類。當輸入數據經過多個卷積層和池化層交替?zhèn)鞑ズ?,全連接層會對所提取到的特征進行分類,該層能夠將上一層輸出的矩陣降為 1×n維矩陣,最終通過 Softmax 激活函數輸出該樣本被分為n類中某一類的概率[7]。
基于一維卷積神經網絡的提升機軸承故障診斷算法流程如圖 3 所示,具體步驟為:首先,將采集到的軸承振動信號數據集劃分訓練集和測試集;然后,將訓練集的信號樣本提前做好對應標簽 (每一種故障信號對應一個故障標簽),輸入到 1DCNN 進行模型訓練;最后,將測試集數據輸入到模型中從而得到標簽分類的準確率[8]。
圖3 1DCNN 故障診斷流程Fig.3 Process flow of fault diagnosis based on onedimensional convolutional neural network
筆者采用美國凱斯西儲大學軸承數據中心公開的滾動軸承故障振動數據集[9],系統(tǒng)的采樣頻率為 12 kHz,電動機轉速為 1 730 r/min,試驗對象為驅動端軸承。該試驗將故障類型分為 10 種,具體如表 1 所列。
表1 故障類型數據集Tab.1 Data set of various fault types
電動機在不同狀態(tài)時有不同的特征,故障診斷的依據就是根據這些不同的特征值來進行分類,圖 4 所示為不同狀態(tài)時振動信號的時域圖。
圖4 不同狀態(tài)時振動信號的時域圖Fig.4 Time domain diagram of vibration signal in various states
為了進一步增強一維卷積神經網絡的泛化能力,需要大量的數據來對模型進行訓練,然而在當前軸承故障診斷領域并沒有足夠的訓練樣本,因而筆者采用滑動數據窗口采樣技術對數據集進行擴增,如圖 5 所示。
圖5 滑動數據窗口采樣Fig.5 Sliding data window sampling
假設數據集中數據總長度N=120 000,每次訓練樣本長度n=2 000,偏移量m=500,根據公式x=可以算出,每種故障狀態(tài)數據能夠制作 236 組訓練樣本,一共能夠獲得 2 360 組試驗數據,相比之前的 200 組試驗數據擴增加了 11.8 倍。數據擴增能夠很好地滿足一維卷積神經網絡的數據訓練要求。
本試驗采用的語言為是 Python 語言,框架為Google 公司的 TensorFlow 深度學習框架,開發(fā)工具為 Pycharm。試驗選取 4 種載荷狀態(tài),每種載荷狀態(tài)包含 10 種故障類型,每種故障類型包含 2 048 個訓練樣本,訓練數據分為 70% 訓練集和 30% 測試集,其中訓練集、測試集樣本均采用數據增強技術。利用搭建好的網絡對 4 種載荷狀態(tài)進行訓練,訓練時算法的學習率設置為 0.001,訓練輪次為 12 次。不同試驗方案的驗證結果如圖 6~ 8 所示。
圖6 4 種載荷狀態(tài)下訓練輪次與準確率和損失率的關系曲線Fig.6 Relationship curve of training rounds with accuracy ratio and loss ratio in four load states
圖7 4 種載荷狀態(tài)下平均準確率與損失率曲線Fig.7 Curves of average accuracy ratio and loss ratio in four load states
圖8 不同方法下訓練輪次與準確率的關系曲線Fig.8 Relationship curve between training rounds and accuracy ratio with various methods
由圖 6~ 8 可知,訓練集在經過一維卷積神經網絡的 12 次迭代之后,準確率能夠達到 98% 以上,其中對載荷為 0、2、3 hp 狀態(tài)下的診斷準確率高達 99%以上。在測試集中,平均準確率也都在 96% 以上。相較于傳統(tǒng)的 BP-NN 方法,采用 1DCNN 方法的準確率明顯提高,可見該算法具有較高的故障診斷識別率。
筆者提出了基于一維卷積神經網絡的提升機軸承故障診斷方法,采用凱斯西儲大學軸承數據中心采集的軸承振動信號數據,利用了滑動數據窗口采樣技術來對數據集進行擴增,通過試驗驗證了該方案對軸承故障診斷的準確率達到了 96% 以上,說明一維卷積神經網絡在對軸承故障診斷中具有較強的診斷能力。同時,這一試驗結果為之后的一維卷積神經網絡在軸承故障診斷的應用提供了參考。