程渠超,劉 湲
(上海電機學院電氣學院,上海 201306)
滾動軸承是電機設(shè)備中重要的基礎(chǔ)元件,已廣泛應(yīng)用于很多工業(yè)系統(tǒng)。滾動軸承在使用過程中會產(chǎn)生磨損、剝落或點蝕等故障,進而影響機械設(shè)備的正常運行。因此,高精度的軸承故障診斷系統(tǒng)對保障機械設(shè)備的穩(wěn)定運行有著重要的意義[1-2]。
近年來,深度學習不斷發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)被逐漸應(yīng)用于軸承故障診斷。Sun等[3]利用基于降噪稀疏自編碼器的深度神經(jīng)網(wǎng)絡(luò),診斷軸承與電機的故障,該算法的故障診斷正確率高于含有兩個隱含層的BP神經(jīng)網(wǎng)絡(luò),可達到97.61%的識別率。Chen等[4]提出了一種基于CNN的數(shù)據(jù)特征表示方法,以實現(xiàn)魯棒顯著的軸承故障特征表示,減少信息丟失,結(jié)合CNN模型減少時間維度上的學習計算需求,提供了一種在工作條件波動和環(huán)境噪聲下保持穩(wěn)定的診斷方法。Xia等[5]利用CNN模型完成傳感器特征合成,以實現(xiàn)更可靠的診斷準確性,診斷模型通過考慮來自多個傳感器原始數(shù)據(jù)的時間和空間信息,由端到端實現(xiàn)原始信號中代表性特征的自動提取。張寧等[6]提出了一種改進的魚群算法,利用其全局尋優(yōu)能力優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,形成一套基于改進魚群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的故障診斷方法。周陳林等[7]針對現(xiàn)有滾動軸承故障診斷模型中人工選取特征的不確定性,診斷模型不具有針對性的難題,提出了一種改進型CNN故障診斷方法,但在CNN分類器模型的構(gòu)建中,涉及到特別多的超參數(shù),很難選取最優(yōu)參數(shù)得到最優(yōu)解。為此,本文基于精英反向?qū)W習(Opposition-based Learning,OBL)改進麻雀算法(Sparrow Search Algorithm,SSA)優(yōu)化CNN,以實現(xiàn)超參數(shù)優(yōu)化,建立了一種通過改進SSA優(yōu)化CNN的軸承類型故障診斷方案。
SSA是一種模仿麻雀捕獵與反捕獵動作的新型智能優(yōu)化算法,種群成員包括發(fā)現(xiàn)者、跟隨者和偵察者[8]。種群中適應(yīng)度較好的發(fā)現(xiàn)者將會在搜尋過程中最先收集到食物;有一部分跟隨者始終監(jiān)視發(fā)現(xiàn)者,若有跟隨者發(fā)現(xiàn)種群中有麻雀已經(jīng)找到更好的食物,這部分跟隨者會立即去爭奪食物;若負責偵察的麻雀一直處在當前的最優(yōu)預(yù)測位置上,那么只需逃離到當前區(qū)域周圍的某個地方;若偵察的麻雀并不處在當前最優(yōu)預(yù)測位置上,則尋找當前最優(yōu)預(yù)測區(qū)域周圍的地方停靠。
OBL[9-10]方法采用雙向評估原則,每次迭代中不僅評價本次迭代候選解,還對該候選解處于相反方向的解進行評估,并在當前解和反向解之間選擇評估最優(yōu)的解為下一代候選解。相關(guān)研究表明,運用反向解參與訓練,會使當前解接近全局最優(yōu)解的概率多出一半以上。因此,在智能算法的訓練中加入OBL會極大提高算法找到全局最優(yōu)解的可能性。
定義1反向解。假設(shè)在[a,b]上存在數(shù)x,則x的反向解定義x′=a+b-x。在Z維空間上擴展反向解的基本定義,設(shè)f=(x1,x2,…,x3)為Z維空間中的一個點,其中xi∈[ai,bi],i=1,2,…,Z,則其反向點f′=(x′1,x′2,…,x′Z),其中x′i=ai+bi-xi。
定義2精英反向解[11]。在當前的種群中取一部分普通個體的極值解

視為當前種群的精英個體,則其反向解定義為

式中:δ為區(qū)間[0,1]上的隨機值;XEi,j∈[adj,b dj],adj、bdj為動態(tài)邊界的下界和上界,動態(tài)邊界的設(shè)置解決了難以保存搜索經(jīng)驗的問題,有助于減少算法的尋優(yōu)時間。
若XE′i,j超過邊界,利用隨機生成的方式將其重置,重置方程為

為進一步提高麻雀計算種群的復雜性,加速計算的收斂速度,防止計算過早進入局部最優(yōu)值[12],本文在初始種群和每次種群迭代中,引入精英OBL機制。具體執(zhí)行步驟如下:
步驟1種群初始化;
步驟2計算適應(yīng)度值并排序;
步驟3生成反向種群,根據(jù)adj、bdj計算得到個體的搜索邊界,生成精英反向解;
步驟4在當前種群和生成的反向群體中,選擇具有較好適應(yīng)性的個體成為新的群體,并初始化捕食者與加入者的比例,更新麻雀位置;
步驟5計算適應(yīng)度值并更新麻雀位置;
步驟6獲取精英麻雀,求取動態(tài)邊界,利用精英OBL策略更新精英麻雀;
步驟7重新計算適應(yīng)度值并更新麻雀位置;
步驟8檢測停止要求是否滿足,不滿足,重復執(zhí)行步驟2~7,達到則退出,執(zhí)行結(jié)束。
為驗證改進SSA算法的有效性,使用Sphere測試函數(shù)進行驗證,函數(shù)有唯一一個全局最小值,由d個定義域相同的自變量取最小值時求平方和得到,驗證結(jié)果如圖1、圖2所示。可見精英OBL改進SSA(EOSSA)的適應(yīng)度進化曲線相比SSA,收斂速度提高了近1倍,驗證了該優(yōu)化算法的有效性。

圖1 SSA

圖2 EOSSA
CNN是在深度學習中有著較好影響力的經(jīng)典多層神經(jīng)網(wǎng)絡(luò)模型,主要分為濾波層和分類層。濾波層由卷積層、池化層和激活層構(gòu)成,而分類層大多直接由全連接形成。CNN的層級分布,決定了CNN具有較多的超參數(shù),所謂超參數(shù)優(yōu)化或調(diào)整問題就是在網(wǎng)絡(luò)模型中選取一個最優(yōu)化超參數(shù)搭配的問題。對于給定的問題,很難了解超參數(shù)的最佳組合方案,但用以往的經(jīng)驗法復制在其他問題上使用的值,或者通過反復試驗尋找最佳值都會耗費大量的實驗成本和時間,而且可能得到的并不是最優(yōu)解。因此,本文給出了基于精英OBL改進SSA優(yōu)化CNN(EOSSA-CNN),而EOSSA-CNN的實質(zhì)是利用改進SSA較快的收斂速率以及精確的全局尋優(yōu)能力,將CNN的超參數(shù)調(diào)整到最優(yōu)解附近,從而達到減少模型構(gòu)造時間,提高預(yù)測準確性的目的。EOSSA-CNN流程如圖3所示。

圖3 EOSSA-CNN流程
本文使用的實驗測試數(shù)據(jù),全部取自美國凱斯西儲大學(CWRU)滾動軸承數(shù)據(jù)中心,該滾動軸承數(shù)據(jù)集是全球認可的標準滾動軸承故障診斷數(shù)據(jù)集,因此本文的所有實驗均采用CWRU軸承數(shù)據(jù)[13-14]。
以型號SKF6205的驅(qū)動端深溝球軸承為主要測試對象,用電火花加工出軸承的單點磨損[15],系統(tǒng)采樣頻率為12 kHz。所有軸承共包括4種,分為正常樣品、滾動體磨損樣品、內(nèi)圈磨損樣品與外圈磨損樣品,磨損直徑共包括0.177 8 mm、0.355 6 mm和0.533 4 mm等3個尺寸。綜上所述,共計1種正常狀態(tài)和9種損傷狀態(tài)。
本次實驗一共準備了4個數(shù)據(jù)集,分別是0 kW、0.745 7 kW、1.491 4 kW和2.237 1 kW等4種負載狀態(tài)下的數(shù)據(jù)集。每個數(shù)據(jù)集包括8 800個訓練樣本與350個測試樣本,其中測試樣本之間沒有重疊部分,且對訓練樣本采用數(shù)據(jù)集增強技術(shù)。為了便于輸入到CNN中進行訓練,對每段信號x均做了歸一化處理,歸一化處理公式為

實驗使用的深度學習框架為Google公司的Tensorflow,計算機配置為CPU i5 6200U,4 GB內(nèi)存。利用Python在Tensorflow環(huán)境下搭建本文的CNN模型。首先根據(jù)一維CNN在軸承故障診斷中的一般應(yīng)用[16],確定卷積層數(shù)為2,對應(yīng)的池化層數(shù)也為2,然后確定需優(yōu)化的參數(shù)及范圍,如表1所示。將處理后的數(shù)據(jù)樣本輸入EOSSA-CNN,利用EOSSA算法優(yōu)秀的尋優(yōu)能力和收斂速度,得到優(yōu)化后的超參數(shù)。

表1 待優(yōu)化超參數(shù)及范圍
學習率過大導致無法收斂,過小導致收斂慢;批量樣本數(shù)過大導致訓練速度慢,過小導致收斂不穩(wěn)定;迭代次數(shù)是指整個訓練集輸入神經(jīng)網(wǎng)絡(luò)進行訓練的次數(shù),當測試錯誤率和訓練錯誤率相差較小時,可認為當前迭代次數(shù)合適;采用比較小的卷積核時可能無法表示其特征,若采用較大的卷積核則會導致復雜度增加,故選取合適的卷積核大小和數(shù)量、全連接層節(jié)點數(shù)對算法的運行效率非常重要。
以1.491 4 kW負載狀況下的滾動軸承故障數(shù)據(jù)為例,改進后SSA在第4層迭代時趨于最優(yōu)適應(yīng)度值,對應(yīng)的最優(yōu)預(yù)測學習率為0.001 83,批量樣本數(shù)為129,訓練次數(shù)為20,第1層卷積核大小為33,第1層卷積核數(shù)量為13,第2層卷積核大小為24,第2層卷積核數(shù)量為6,最優(yōu)預(yù)測的全連接層節(jié)點數(shù)為41。
利用優(yōu)化后的超參數(shù)進行CNN的建模,最后經(jīng)過分類和訓練得到實驗結(jié)果。為了檢驗本文方案的有效性,選用BP神經(jīng)網(wǎng)絡(luò)、支持向量機(SVM)及未優(yōu)化的CNN進行對照實驗,3種方法都是機器學習中較多應(yīng)用于故障診斷且效果較好的網(wǎng)絡(luò)模型。
BP神經(jīng)網(wǎng)絡(luò)是一種具有多維函數(shù)映射能力和復雜模式分類能力的神經(jīng)網(wǎng)絡(luò)模型[16]。本文對神經(jīng)網(wǎng)絡(luò)隱含層和輸出層神經(jīng)元信息的傳輸函數(shù)方法,訓練次數(shù)定為500,訓練目標定為0.000 1,學習速率定為0.01,其他值均為默認[17];SVM是一種效果顯著的分類器,用以解決多分類問題。本文將SVM的懲罰參數(shù)C設(shè)為1,內(nèi)核類型設(shè)置為‘rbf’,其他值均為默認。
CNN的參數(shù)設(shè)置基于以往經(jīng)驗,將學習率設(shè)定為0.001,迭代次數(shù)設(shè)定為10,批量樣本數(shù)設(shè)定為64,第1層卷積核大小設(shè)定為3,第1層卷積核數(shù)量設(shè)定為8,第2層卷積核大小設(shè)定為3,第2層卷積核數(shù)量設(shè)定為16,全連接層節(jié)點個數(shù)設(shè)定為50,其他值均為默認。以0 kW負載狀態(tài)下的滾動軸承故障數(shù)據(jù)為例,訓練后結(jié)果如圖4所示。

圖4 BP、SVM、CNN、EOSSA-CNN準確率
由圖4可知,BP神經(jīng)網(wǎng)絡(luò)的最高準確率為70.6%,平均準確率為62.3%;SVM的最高準確率為81.1%,平均準確率為76.4%;未優(yōu)化過的CNN最高準確率為95.1%,平均準確率為93.8%;而優(yōu)化后的EOSSA-CNN,最高準確率為99.6%,平均準確率為99.0%。
選取準確率在90%以上的兩種算法進行詳細對比,如圖5、圖6所示。

圖5 CNN準確率曲線

圖6 EOSSA-CNN準確率曲線
由圖5、圖6可知,EOSSA-CNN相比未優(yōu)化的CNN在收斂速度和準確率上有很大的提升,EOSSACNN平均每次迭代時間為6.83 s,CNN平均每次迭代時間為6.34 s,兩者在時間上并沒有明顯差異。由于選取的CNN參數(shù)設(shè)置是基于前人經(jīng)驗,而EOSSACNN的超參數(shù)皆為SSA得到的,節(jié)省了在調(diào)節(jié)參數(shù)上的時間,提高了故障診斷效率,可以體現(xiàn)出EOSSACNN在滾動軸承故障診斷方面的優(yōu)越性。
為進一步分析每一類模型分類的具體效果及誤差情況,運用混淆矩陣對每一類數(shù)據(jù)進行錯誤分類統(tǒng)計,以0.745 7 kW負載狀態(tài)下的滾動軸承故障數(shù)據(jù)為例,結(jié)果如圖7~圖10所示。

圖7 BP神經(jīng)網(wǎng)絡(luò)混淆矩陣

圖8 SVM混淆矩陣

圖9 CNN混淆矩陣

圖10 EOSSA-CNN混淆矩陣
由圖7~圖10可知,EOSSA-CNN預(yù)測值和實際值誤差明顯低于其他3種方法,準確率相對較高。實驗和比較的結(jié)果顯示,EOSSA-CNN方法在較大程度上提升了對滾動軸承故障診斷的準確率和分類效率,具有良好的工程使用價值。
本文針對滾動軸承的故障診斷問題,提出了一種基于改進SSA優(yōu)化CNN的故障診斷方法,用改進后的SSA計算CNN的最優(yōu)超參數(shù),進行CNN的搭建。通過對比BP神經(jīng)網(wǎng)絡(luò)、SVM、CNN和EOSSA-CNN等4種模型的最高準確率和平均準確率,以及診斷模型實際值與預(yù)測值分類情況,驗證了EOSSA-CNN預(yù)測效果較好,可以有效判斷軸承的故障類型。但在訓練時間上相比傳統(tǒng)CNN并沒有明顯提高,今后可以針對這一問題進一步展開優(yōu)化研究。