汪 欣,毛東興,李曉東
(1.同濟大學 聲學研究所,上海200092;2.中國科學院 上海高等研究院,上海201210;3.中國科學院 聲學研究所,北京100190)
電機作為一種電能轉換的電磁裝置,在各行各業都有相關的應用。針對電機的故障診斷,目前已有不少研究,按信號采集的手段大致可分為3類:基于電流信號的電機故障診斷;基于振動信號的電機故障診斷;基于聲信號的電機故障診斷等。
基于電流信號的電機故障診斷方法是一種常見的診斷手段[1-3]。但基于電流信號的故障診斷法只能對有限的電氣故障(比如斷棒、短路轉子、定子線圈等)進行分析。基于振動信號的電機故障診斷方法是目前主流的故障診斷方法,學界普遍采用振動信號分析法實現對電機故障狀態的有效識別[4-7]。但振動信號的采集需要將加速度傳感器安裝在電機上,這種接觸式檢測往往受測試條件和測試環境限制,具有一定的局限性。相比而言,基于聲信號的電機故障診斷手段屬于非接觸式測量,能夠在一些無法使用加速度傳感器的場合使用[8-10]。
電機故障診斷的核心算法主要由特征提取和模式識別組成。傳統的特征提取算法包括傅里葉變換、小波變換、經驗模式分解以及信號統計學特征等;傳統的模式識別算法包括BP 神經網絡、支持向量機(SVM)、貝葉斯分類器等。傳統的故障診斷方法的優點在于,特征提取方法簡單易行,但對人工參與的要求比較高、依賴人工提取和領域內的專家知識,需要人工對不同的應用環境進行特征提取和算法選擇,具有一定的主觀性[11]。
近年來,隨著深度學習算法的不斷發展,基于深度學習方法的故障診斷技術應用研究已經興起。文獻[6]提出一種基于稀疏自編碼器的電機故障診斷方法,利用電機信號的Hilbert包絡譜作為輸入,實現對電機故障的有效分類。文獻[7]將時域信號轉變為二維信號后利用二維卷積神經網絡對電機振動信號進行了故障分析。文獻[12]通過長短時記憶網絡(LSTM)對軸承的運行狀態進行了分類診斷。
卷積神經網絡(CNN)是近年發展起來的一種典型的深度學習方法,其最大的優勢在于無需人工選取特征,已經在計算機視覺、自然語言處理等領域取得了廣泛的應用。本文設計出一種新型一維卷積神經網絡(1D-CNN)結構,提出了一種基于聲信號和1D-CNN的電機故障診斷算法。該算法省去了傳統算法手動提取特征的過程,無需對原始數據進行預處理,將原始數據直接送入1D-CNN 網絡,通過1DCNN 網絡強大的特征提取能力,利用1D-CNN 網絡中交替的卷積層和池化層自動提取出隱藏在原始數據中的非線性特征,并結合全連接層完成自適應特征學習,最終實現對電機故障聲信號的準確分類。
典型的CNN 網絡通常包括輸入層、卷積層、池化層、完全連接層和輸出層[13]。
CNN的輸入層可處理多維數據,預先對輸入數據進行標準化處理,能夠提高算法的運行效率和學習性能。
卷積層對上一層的輸出進行卷積運算,并采用非線性激活函數構造輸出特征。激活函數的目的是將原本線性不可分割的多維特征映射到另一個空間中,從而增強特征的線性可分離性。卷積運算的數學模型為[14]

其中:Kil表示第l層的第i個濾波器權重,bli表示第l層的第i個濾波器網絡偏置,xl(j)表示第l層的第j個局部輸入,yil+1(j)表示第l+1層第i幀中第j個神經元的輸入。
運用激活函數對每個卷積中輸出的logits值進行非線性變換。本文采用ReLU函數。當輸入值大于0時,ReLU函數的導數值始終為1,從而克服了梯度彌散問題。ReLU的公式如下:

其中:yil+1(j)表示卷積運算的輸出值,而ali+1(j)表示yil+1(j)的激活值。
池化層通過數據降采樣將大矩陣向下采樣為小矩陣,從而減少了計算并防止了過擬合。最大池化的公式如下:

其中:qli(t)表示第l層處第i個特征中的第t個神經元的值,t∈[(j-1)W+1,jW],W表示池化區域的寬度,Pil+1(j)表示第l+1層第i個特征中的第j個神經元的值。
全連接層可以在卷積層或池化層整合差異化的局部信息,實現全局優化。全連接層的公式如下[15]:

其中:Wiltj表示第l層第i個特征中第t個神經元和第l+1層的第j個神經元之間的權重,zl+1(j)表示第l+1層的第j個神經元的logits值,blj表示網絡偏置,ali(t)為第l層處第i個特征中的第t個神經元的輸出值,f(·)表示激活函數ReLU。
輸出層通常使用Softmax 分類器輸出分類標簽。Softmax 分類器是常見的線性分類器,是對logistic regression 分類器的推廣。Softmax 分類器的公式如下:

其中:zo(j)表示輸出層的第j個神經元的輸出值,M表示類別的總數。
根據CNN神經網絡的基本原理,針對電機不同狀態聲信號的識別應用問題,本文設計出一種新型1D-CNN 結構,具體如圖1所示。該卷積網絡包含3個卷積層、3個池化層、1個全連接層以及1個Softmax層。信號通過第一個卷積層后,變為一組特征圖,再經過最大值池化進行降采樣。這樣通過多層卷積和池化,將最后一個池化層的特征與全連接層相連,傳遞給softmax層。
本文實驗中使用的新型1D-CNN結構參數如表1所示。該結構共有3層卷積與池化層,第1層卷積核大小為64*1,第2層卷積核大小為32*1,第3層卷積核大小為16*1,Softmax層有4個輸出,對應實驗電機的4種狀態。

圖1 新型1D-CNN結構

表1 新型1D-CNN結構參數
空調電機是一種常見的重要的電機類型,在運行的過程中出現故障,不僅會產生噪聲污染,而且會影響空調整機的正常使用。
目前的空調電機出廠檢驗都是依靠人工聽檢來分辨故障電機的故障類型,剔除故障電機,具有很大的局限性,檢測速度較慢,容易造成檢測誤差。針對這一問題,本文搭建了空調電機故障診斷實驗平臺,采用基于聲信號和1D-CNN的電機故障診斷算法,對一組故障空調電機開展分類實驗。
本實驗中所使用的故障電機均為空調外機的風扇電機。根據廠商憑借人工經驗檢測提供的檢測報告,這組實驗電機狀態共有4種,分別為:正常、軸承故障、摩擦故障和松動故障。
首先,搭建不同故障狀態下的聲信號采集實驗平臺,如圖2所示。實驗平臺包括一個BK4189測試傳聲器、一臺BK3160數據采集系統和一臺用于后處理的便攜式計算機。

圖2 電機故障實驗平臺
根據實驗平臺采集到的4種狀態的電機聲信號時域波形如圖3所示,采樣率為32 768 Hz。

圖3 4種狀態的電機聲信號時域波形圖
然后制作電機故障樣本數據集。每2 048 點為一個樣本分組,每種狀態的電機包含3 000組樣本,并添加標簽類別,構成如表2所示的電機故障樣本數據集。

表2 電機故障樣本數據集
首先對1D-CNN算法的準確率隨迭代次數的變化進行分析。準確率是指對于給定的測試數據集,被分類器正確分類的樣本數與總樣本數之比。通過計算準確率可以直觀地體現分類算法的性能。
運用1D-CNN算法對表2中的數據集進行處理,計算出每次迭代后得到的對應準確率值,最后繪制出100次迭代的準確率曲線,如圖4所示。

圖4 1D-CNN算法準確率曲線圖
由圖可見,隨著迭代次數的增加,1D-CNN算法的準確率呈上升趨勢。經過100次迭代后,準確率可以達到98%以上。
接下來對1D-CNN算法性能進行可視化分析。t-分布領域嵌入算法(t-distributed Stochastic Neighbor Embedding,t-SNE)是一種集降維與可視化于一體的技術,它將數據點之間的高維歐氏距離轉化為表示相似度的條件概率。該可視化算法將高維數據映射到低維數據之后,高維空間中彼此分離的點在低維空間中保持不變。在學習收斂之后,t-SNE能夠將數據集投影到二維或三維空間。
為了探究本文提出的1D-CNN算法的內在機制,利用t-SNE可視化算法對實驗空調電機聲信號經過卷積層后的特征進行了二維分布可視化分析,如圖5所示。
圖5(a)表明,電機故障聲信號數據集的時域原始數據幾乎不能分開;圖5(b)表明,經過1層卷積后的特征表達依舊沒有完全分開,但特征分布已經呈現區分趨勢;圖5(c)表明,經過2層卷積后得到的特征表達已經可以慢慢分開;圖5(d)表明,經過3層卷積后得到的特征表達已經完全分開,各自聚集在相應的區域。由圖5可視化結果可以看出,1D-CNN算法能夠很好地對電機故障信號進行分類。

圖5 空調電機數據集樣本的可視化結果
本文選取了FFT-BP[4]、SVM、FFT-SAE[6]等算法與1D-CNN算法進行比較。FFT-BP、SVM、FFT-SAE這3種算法分別是經典算法和深度學習算法中的常用算法。其中,FFT-BP算法是將聲信號經FFT變換后的特征輸入BP 網絡進行分類,SVM算法是對聲信號的時頻域統計特征進行SVM分類,都屬于經典算法;FFT-SAE算法是將聲信號經FFT 變換后的特征送入SAE 網絡進行分類,屬于一種深度學習方法。
為比較這4種算法的性能,分別將這4種算法用于處理表2中的空調電機故障樣本數據集,計算出各自的電機故障識別準確率。可以發現,采用FFTBP算法對時域聲信號進行FFT 變換,通過BP算法進行100次迭代,可以得到80.8%的準確率;SVM通過對時域聲信號的多種統計特征進行計算,并輸入SVM 分類器,可以得到90.2 %的準確率;FFT-SAE算法對時域聲信號進行FFT 變換,并將經FFT 變換結果送入SAE 網絡,通過100次迭代可以得到94.6%的準確率;本文提出的1D-CNN算法通過100次迭代則可以得到98.9%的準確率。以上準確率均為通過十折驗證法得到的平均值。FFT-BP、SVM、FFT-SAE等算法與1D-CNN算法的準確率對比如表3所示。

表3 1D-CNN算法與其他算法準確率對比表
由表3可看出,運用不同的算法對空調電機故障聲信號數據集進行分類,本文提出的1D-CNN算法,作為一種新型結構深度學習算法,其準確率明顯優于FFT-BP、SVM等經典算法,也優于FFT-SAE深度學習算法。
本研究針對電機故障診斷的需求,提出了一種基于聲信號和1D-CNN的電機故障診斷算法,并以一組空調故障電機作為實驗對象展開研究,驗證了1D-CNN算法在電機故障分類識別領域的有效性。本研究的主要貢獻有:
(1)設計了一種新型的一維卷積神經網絡結構(1D-CNN),提出了一種基于聲信號和1D-CNN的電機故障診斷算法,該算法可以自動地對時域聲信號數據進行特征提取并分類。
(2)運用t-SNE可視化算法,對1D-CNN算法的性能進行了可視化分析,探究了1D-CNN算法的內在機制。
(3)將1D-CNN算法與FFT-BP、SVM 及FFTSAE 等算法的準確率結果相比較,驗證了1D-CNN算法作為一種新型結構深度學習算法,具有更高的準確率。
(4)采用所提出的基于聲信號和1D-CNN的電機故障診斷方法,有望實現對電機進行大批量非接觸式的故障檢測,提升故障電機檢測效率和準確率。