劉恒暢, 姚德臣, 楊建偉, 張 驕
(1. 北京建筑大學 機電與車輛工程學院,北京 100044;2. 北京建筑大學 城市軌道交通車輛服役性能保障北京市重點實驗室,北京 100044;3. 北京市地鐵運營有限公司,北京 100044)
目前旋轉機械被廣泛應用在工廠、飛行器和地面載具,旋轉機械的運行狀態決定了工程系統的可靠性和安全性,滾動軸承作為旋轉機械設備中的重要部件,一旦發生故障會造成嚴重的經濟損失,甚至人員傷亡,滾動軸承故障也是導致機械設備故障的常見原因之一[1]。因此,對于滾動軸承健康狀態的監測和診斷極為重要。
在滾動軸承故障診斷中,通常包括:①采集設備振動信號;②對信號進行預處理;③提取信號中有用的特征信息;④建立模型對軸承運行狀態進行診斷。但是由于實際旋轉機械設備運行時,采集到的振動信號通常包含各種類型混合噪聲,如何從信號中提取代表軸承狀態的特征信息,辨別不同故障類型和故障程度成為傳統軸承故障診斷研究中不可避免的問題[2]。
近幾年,深度學習技術的快速發展改變了傳統故障診斷方法。深度學習解決了從混合振動信號中提取特征信息的難題,避免了復雜的人工特征提取。較為常用的深度學習方法包括[3]:遷移學習、長短時記憶網絡(long short-term memory, LSTM)、深度殘差網絡(ResNet)。這些方法都能達到較好的診斷精度,但是它們有著同樣的問題:模型占據存儲空間較大,預測時間長,計算速度慢。這些問題導致深度學習在故障診斷領域的實際應用中較少。
卷積神經網絡(convolutional neural network, CNN)是目前深度學習應用最廣泛的網絡,自從2012年的AlexNet網絡提出后,各類CNN模型成為視覺識別競賽中的優勝者,被證明在圖像分類、視覺識別任務中有著優異的性能[4]。相對于傳統的淺層神經網絡,CNN模型由于卷積層的存在具有權值共享、局部連接等特點,減少了模型的參數量,提高了模型的泛化性,解決了淺層模型在層數加深后經常出現的過擬合問題[5]。Lu等[6]提出將振動信號進行歸一化后轉換為振動圖像,再利用CNN模型對圖像進行分類。李恒等提出先對振動信號進行短時傅里葉變換得到包含時域和頻域的特征圖,在Le-Net5網絡的基礎上,建立診斷模型,將特征圖作為模型輸入對軸承運行狀態進行診斷[7]。上述方法都能有效診斷軸承運行狀態,但是多數研究主要專注于對模型精度的研究,并沒有考慮模型預測時間,模型尺寸等問題。
傳統CNN模型雖然在各類圖像數據集上都表現良好,但是在提高模型精度的同時,模型深度也在加深。例如常見的深度殘差網絡,層數達到了152層,對運行設備要求較高。為了能夠降低模型對設備的內存要求,提高模型在實際應用的預測速度。近年提出了輕量化模型的概念,輕量化模型通過卷積核分解,奇異值分解等方法減少網絡參數,提高網絡計算速度。常見的輕量化模型包括:SqueezeNet、Xception、MobileNet、ShuffleNet。以上四種模型通過不同方式壓縮模型參數,實現網絡輕量化。輕量化網絡在ImageNet數據集進行試驗時,相對于傳統CNN模型計算量和參數量都減少了一個數量級,網絡精度損失則極少[8]。
試驗中利用一維振動信號重構為二維矩陣的思想,將矩陣保存為灰度圖作為診斷模型的輸入,使用多分支深度可分離卷積神經網絡,對滾動軸承故障類型和故障程度進行分類,借助權重剪枝技術對模型進行優化,縮小模型尺寸(診斷模型占運行設備的存儲空間大小),相對于傳統深度學習方法提高了診斷效率。
本文提出的基于多分支深度可分離卷積神經網絡的滾動軸承故障診斷方法,利用CNN模型圖像分類的功能對軸承故障種類和程度進行診斷。首先需要將采集到的一維振動信號進行標準化,并轉換為二維矩陣,將矩陣以灰度圖形式保存得到特征樣本,分為訓練集、驗證集和測試集;然后在MBDS-CNN(multi branch depth separable convolutional neural network)模型的基礎上建立故障診斷模型;將訓練集作為模型的輸入,對模型進行訓練,通過驗證集觀察模型在訓練過程中診斷精度和損失函數值(loss)的變化,最后將測試集輸入到訓練好的模型中,對模型性能進行評估獲取適合滾動軸承故障診斷的最佳網絡架構和超參數。圖1為故障診斷方法流程圖,圖中epoch代表訓練集數據的一次遍歷。

圖1 診斷方法流程圖Fig.1 Flow chart of diagnosis method
試驗使用多分類交叉熵(categorical cross entropy)作為損失函數,可以準確描述實際輸出概率分布與期望分布的距離,損失函數值越小,實際分布與期望分布的差異越小。損失函數公式為
(1)
原始振動數據為一維時間序列信號,而CNN模型的輸入數據要求是二維矩陣。為了將一維時間序列轉換成二維數據矩陣,試驗基于時間序列信號,隨機選取R個采集點作為轉換起始點,連續取樣Q個采集點,將Q個采集點轉換為N個行向量li,將li進行歸一化,每個行向量具有M個采集點。對于N個行向量所構成的M*N二維矩陣P為一個圖像樣本[9]。R決定了最終得到的圖像樣本數量,M和N的大小決定圖像樣本的尺寸,試驗中M和N取32,Q取1 024。式(3)是li歸一化公式,其中max取1,min取0。圖2為數據轉化示意圖。為了提高圖像樣本在文中的視覺效果,圖3為振動圖像樣本。
P=[l1,l2,…,lN]T
(2)
(3)

圖2 振動信號生成圖像樣本Fig.2 Image sample generated by vibration signal

圖3 振動圖像樣本Fig.3 Vibration image sample
傳統CNN模型通過卷積層提取圖像中的特征,隨著卷積層數量的增加,能夠抽取到的高階特征也越多,網絡的能力也更加優越[10]。但是層數的增加也使得模型效率降低,對運行硬件的要求也大幅提高。
Xception提出使用深度可分離卷積(depthwise separable convolution)代替傳統卷積操作,深度可分離卷積包括兩個層:①對每個輸入通道使用一個卷積核稱為深度卷積(depthwise convolution, DW);②使用一個1×1的卷積合并DW的輸出稱為逐點卷積(pointwise convolution, PW)[11-12]。
在標準卷積層,假設輸入特征圖尺寸為Ni*Ni,通道數為M,卷積核大小為Nf*Nf,卷積核數量為K。則卷積層的計算量為
Ni*Ni*M*K*Nf*Nf
(4)
標準卷積操作包括兩個步驟:通過卷積核過濾特征和合并特征產生新的高級特征。深度可分離卷積則將標準卷積的兩個步驟分隔開執行,即DW和PW。如圖4所示。

圖4 標準卷積與深度可分離卷積Fig.4 Classic convolution and depthwise separable convolution
深度可分離卷積計算量為
Ni*Ni*M*Nf*Nf+K*M*Ni*Ni
(5)
對標準卷積和深度可分離卷積的計算量進行比較
(6)
式中:K為通道數量通常大于1;Nf為卷積核尺寸,常用尺寸包括3×3,5×5,7×7,因此式(5)的值小于1,深度可分離卷積比標準卷積的計算量少。
由于CNN模型通常具有過參數的特性,使得模型在直接部署時會出現計算成本和內存占用高的問題。因此需要對模型進行權重剪枝,提高網絡的效率[13]。
在訓練過程中,權重剪枝通過將權重矩陣中最接近0的權重置為0,刪除了相對應的神經元連接,減少了模型的浮點運算,提高了模型的稀疏度。隨著模型稀疏度的上升,壓縮后的模型體積大幅縮小。圖5顯示了權重剪枝的過程。

圖5 權重剪枝Fig.5 Weight pruning
為了驗證所提方法的泛化性和抗噪性,在兩個軸承數據集上進行了試驗,通過在數據集中加入白噪聲信號獲取具有不同信噪比的帶噪信號。式(6)為信噪比(signal noise ratio, SNR)的計算公式。Psignal為信號的有效功率,Pnoise為噪聲的有效功率。
(7)
數據集1——由美國西儲大學公布的軸承數據構成,試驗采用轉速為1 730 r/min時驅動端加速度傳感器采集到的振動數據,采樣頻率為12 kHz,使用SKF 6205-2RS深溝球軸承[14]。使用的軸承數據共計10類,正常狀態以及內圈、外圈和滾動體故障,故障直徑分別為0.18 mm,0.36 mm,0.54 mm。總共建立了6個帶噪數據集,信噪比在-6~10 dB,每個帶噪數據集包含15 000個樣本的訓練集、1 000個樣本的驗證集、10個包含1 000個樣本的測試集。
數據集2——為了驗證本文所提算法的有效性,設計軸承故障試驗臺進行驗證。試驗臺如圖6所示,由驅動電機、聯軸器、齒輪箱和磁粉制動器等組成。在試驗臺整個運行過程中,采集振動加速度信號,采樣頻率為12 kHz,轉速為1 200 r/min,包含6種軸承狀態:正常、內圈故障、外圈故障、滾動體的輕度故障、中度故障、重度故障。試驗用的軸承型號為ER16K。建立了6個帶噪數據集,信噪比在-2~8 dB,每個帶噪數據集包含12 000個樣本的訓練集、600個樣本的驗證集、10個包含600個樣本的測試集。
試驗在Tensorflow的框架下開發,使用AMD的R5-2600x CPU(主頻3.6 GHz),NVIDIA RTX2080ti顯卡,主機上安裝了CUDA 10.0,Cudnn7.6對顯卡運算進行加速。
為了提高數據分類的準確性,數據集中的標簽必須全部轉換成數字,所以試驗中使用獨熱編碼(one-hot)制作標簽,獨熱編碼即將不同類別的標簽轉換為二進制向量,向量維數即故障類別數,在向量中只有一位是1,其余全是0[15]。表1是標簽編碼表。

圖6 軸承故障模擬試驗臺Fig.6 Bearing failure simulation test bench

表1 標簽編碼表Tab.1 Label coding table
MBDS-CNN使用了1個卷積核3×3的普通卷積,9個深度可分離卷積,1個全局平均池化層和一個全連接層,為了提高模型的表達能力,避免隨著層數的加深出現“梯度消失”的情況,MBDS-CNN使用了多分支結構。圖7為MBDS-CNN的結構,圖中s為卷積步長,c為過濾器數量。

圖7 模型結構圖Fig.7 Model structure diagram
模型中參數更新的速度由學習率決定,學習率過大,會導致每次更新參數時步長過大,模型無法收斂至極優值,學習率過小,雖然能保證收斂性,但是會降低模型收斂的效率。
為了避免以上所述問題導致模型無法達到最佳性能運行的情況。試驗中使用自適應學習率,提高模型優化速度,學習率初始值設置為0.001,在訓練過程中,每個epoch結束后,在驗證集上評估當前模型loss和精度,每隔一個epoch檢測loss值的變化,小于0.000 1時,學習率進行衰減,衰減公式為
lr*=lr*0.1
(8)
為了進一步加快模型的收斂速度,模型使用RMSprop算法對使用損失函數進行優化,避免了優化過程中幅度過大的問題。
研究采用了MobileNet、Vgg16、LeNet5、ResNet和AlexNet模型作為對比組試驗,使用相同的數據集與所提方法進行比較。在10個測試集上對模型效果進行評估,計算出模型的平均精度和標準差。
表2為MBDS-CNN模型與對比試驗在數據集1(無白噪聲)上的平均精度、標準差、預測時間和模型尺寸。可以看出在無白噪聲的情況下各模型都具有良好的診斷效果,MBDS-CNN在精度上并無優勢,但是在預測時間和模型尺寸上,MBDS-CNN模型具有卓越的性能。與同為輕量化模型的MobileNet相比,MBDS-CNN的模型尺寸僅為MobileNet的5.2%,預測時間也比MobileNet快了0.22 s。

表2 數據集1(無白噪聲)上不同模型試驗效果Tab.2 Experimental results of different models on dataset 1 (without white noise)
為了驗證MBDS-CNN模型的魯棒性,在數據集1上加入了不同強度的噪聲,表3和表4分別顯示了各模型在多種噪聲環境下的平均診斷精度和標準差。
由表3和表4可以看出,在數據集1 的信噪比在5~10 dB時,各模型診斷效果基本相同,但是當信噪比低于0時,對比試驗模型出現診斷錯誤的現象,尤其當信噪比在-6 dB時,只有MBDS-CNN的診斷精度依然保持在90%以上。這是因為在信噪比較低的情況下,故障特征信息容易被噪聲信號淹沒,MBDS-CNN的多分支結構保證了其可以提取更豐富的特征,融合不同分支上提取的故障特征信息。

表3 數據集1上不同模型的平均診斷精度Tab.3 Average accuracy of different models on dataset 1

表4 模型診斷精度的標準差(數據集1)Tab.4 Standard deviation of model diagnosis accuracy(dataset 1)
圖8通過t-SNE算法[16]顯示了數據集1信噪比為-6 dB時,各模型的預測結果。使用阿拉伯數字0~9表示軸承的健康狀態??梢钥闯鰣D8(a) MBDS-CNN的分類效果明顯強于其他模型。
表5為MBDS-CNN模型與對比試驗在數據集2(無白噪聲)上的平均精度、標準差、預測時間和模型尺寸。與數據集1上各模型的表現相同,在無白噪聲的情況下,各模型都具有良好的診斷效果。
表6和表7顯示了在數據集2上不同模型的平均診斷精度??梢钥闯鯩BDS-CNN在數據集2上依然具有良好的抗噪性。與在數據集1上的表現相似,對比模型在信噪比為0時,出現診斷精度損失的現象。MBDS-CNN在信噪比為-2 dB時,診斷精度下降,但是其診斷效果依然為各模型中最佳的。
試驗結果顯示MBDS-CNN在數據集1信噪比為-6 dB,數據集2信噪比為-2 dB時,能夠更好的觀測出模型在抗噪性上的優越性。圖9為不同模型在低信噪比數據集上訓練時loss值優化的過程(因AlexNet在低信噪比情況下,模型未收斂,所以圖中未顯示)。

圖8 數據集1(SNR=-6 dB)上不同模型預測分布Fig.8 Prediction distribution of different models on dataset 1 (SNR=-6 dB)

表5 數據集2(無白噪聲)上不同模型試驗效果Tab.5 Experimental results of different models on dataset 2 (without white noise)

表6 數據集2上不同模型的平均精度Tab.6 Average accuracy of different models on dataset 2

表7 模型診斷精度的標準差(數據集2)Tab.7 Standard deviation of model diagnosis accuracy (dataset 2)

圖9 不同模型在低信噪比數據集上的訓練過程Fig.9 Training process of different models on low SNR dataset
由圖9可以看出在兩個數據集上,MBDS-CNN的收斂速度和收斂效果都是最佳的。部分模型雖然在收斂效果上與MBDS-CNN相似,但是卻出現了過擬合現象,導致模型在測試集上的診斷效果較差,如圖9(a)中的MobileNet與圖9(b)中的Le-Net5。
為了進一步觀測各模型對不同故障類型的診斷效果,利用混淆矩陣對各模型在數據集2(SNR=0)上的分類結果進行可視化。如圖10所示,除圖最右列和最底行的方塊,對角線的方塊顯示了診斷正確的樣本數量,其他方塊顯示了診斷錯誤的樣本數量,方塊中的百分比代表了當前塊樣本數量占總體樣本數量的比例。矩陣右下角的方塊顯示了模型的精度。最右列的方塊代表了輸出類的精度,最后一行代表了召回率。
由圖10可以看出MBDS-CNN對不同故障類型都具有良好的診斷效果。其余模型會出現對某一故障類型診斷效果差的現象,例如Vgg16模型無法有效的對滾動體重度故障和外圈故障進行診斷,診斷精度僅為84%和86%。ResNet模型對多數故障類型都能精準分類,但是在診斷外圈故障時也出現了診斷錯誤的現象,對外圈故障的診斷精度僅為83%。

圖10 數據集2(SNR=0)上分類結果可視化Fig.10 Visualization of classification results on dataset 2 (SNR=0)
從以上試驗結果可以看出常見的CNN模型在信噪比高的情況下具有良好的診斷效果,但是在噪聲增強的情況下,診斷精度會出現較大的損失。另一方面,經典CNN模型具有模型尺寸大,預測時間長的缺點。MBDS-CNN使用深度可分離卷積和多分枝結構在縮減模型尺寸的同時,保證了模型的診斷精度,可以在噪聲環境下對不同故障類型和故障程度進行分類。
本文針對基于傳統CNN的故障診斷方法具有模型尺寸大,診斷速度低,難以區分不同故障程度的缺點。提出基于多分支深度可分離卷積神經網絡的軸承故障診斷方法。通過本文試驗,驗證了:
(1) 將振動信號轉換為灰度圖作為MBDS-CNN模型的輸入,能夠很好的發揮CNN在圖像分類上的優勢。
(2) 使用深度可分離卷積和權重剪枝技術可以大幅壓縮模型尺寸,另一方面,多分支結構保證了模型壓縮后的診斷精度。
(3) MBDS-CNN相對于傳統CNN模型,具有更好的抗噪性,更快的診斷速度和更小的模型尺寸。
試驗結果表明本文提出的基于多分支深度可分離卷積神經網絡的滾動軸承故障診斷方法能較好地辨識軸承不同故障類型以及故障程度,為深度學習在故障診斷領域的應用提供了新的思路。