張習習, 顧幸生
(華東理工大學化工過程先進控制和優(yōu)化技術(shù)教育部重點實驗室,上海 200237)
電機是一種重要的旋轉(zhuǎn)機械設備,廣泛應用于工業(yè)生產(chǎn)過程中的各個領域,而滾動軸承是電機的最重要部件之一,起著支撐主軸、傳遞力矩的作用,且易損壞[1]。根據(jù)統(tǒng)計,旋轉(zhuǎn)機械中約有 30%的故障是由軸承損傷引起[2],因此,對電機軸承進行故障診斷具有重要意義。
目前常用的故障診斷方法主要有基于模式識別的方法、基于神經(jīng)網(wǎng)絡的方法以及基于專家系統(tǒng)的方法。隨著人工智能技術(shù)的發(fā)展,基于人工智能融合技術(shù)的故障診斷方法成為一個研究熱點[3-4]。各種智能診斷理論和方法的集成和融合,如小波分析與神經(jīng)網(wǎng)絡的集成、模糊系統(tǒng)與神經(jīng)網(wǎng)絡的集成以及進化計算與神經(jīng)網(wǎng)絡融合等,較好地構(gòu)建了故障征兆與故障類別之間的映射關(guān)系,有效地實現(xiàn)了機械設備的故障診斷[5-7]。Wang 等[8]利用短時傅里葉變換對電機不同故障下的振動信號進行處理,得到振動信號的時頻圖,然后利用卷積神經(jīng)網(wǎng)絡(CNN)提取特征,較好地表示出了振動信號和軸承狀況的映射關(guān)系。李嫄源等[9]結(jié)合振動信號的時域與小波包能量特征,使表征振動信號的特征具有較好的可靠性和敏感性,并采用粒子群算法(PSO)對支持向量機(SVM)的懲罰參數(shù)和徑向基核函數(shù)參數(shù)進行尋優(yōu),對電機軸承的外圈故障、內(nèi)圈故障和滾珠故障均有較好的識別效果。
概率神經(jīng)網(wǎng)絡(Probabilistic Neural Networks,PNN)[10]的主要思想是將貝葉斯決策理論引入傳統(tǒng)神經(jīng)網(wǎng)絡,網(wǎng)絡結(jié)構(gòu)按照貝葉斯判別函數(shù)來設置,以實現(xiàn)錯誤分類的期望風險最小。與傳統(tǒng)的BP、RBF神經(jīng)網(wǎng)絡比較,PNN 具有網(wǎng)絡訓練過程簡單、訓練速度快、準確率更高、對噪聲容忍性高等特點[11],但也有兩個主要的不足:首先是對訓練樣本的代表性要求較高;其次是網(wǎng)絡參數(shù)σ 的選取直接影響PNN的性能。對此,本文提出了一種改進的集成學習概率神經(jīng)網(wǎng)絡方法(ASPNN)。首先利用正弦余弦優(yōu)化算法(SCA)[12]對PNN 的平滑因子σ 進行優(yōu)化,以確定最優(yōu)參數(shù);然后將優(yōu)化后的PNN 作為弱分類器,利用集成學習AdaBoost 方法[13]構(gòu)建PNN 的集成學習模型;最后將該模型應用于電機軸承故障分類中,實驗結(jié)果表明了該方法的有效性。
概率神經(jīng)網(wǎng)絡是一種基于統(tǒng)計原理的人工神經(jīng)網(wǎng)絡,是以Parzen 窗口函數(shù)為激活函數(shù)的一種前饋網(wǎng)絡模型[14-15]。PNN 包含4 層網(wǎng)絡結(jié)構(gòu),分別為輸入層、隱含層、求和層和輸出層,如圖1 所示。
PNN 的第1 層為輸入層,通常用來接收訓練樣本,并將輸入數(shù)據(jù)傳遞至第2 層。輸入層的神經(jīng)元個數(shù)通常是確定的,其個數(shù)與輸入樣本的維度相同。第2 層是隱含層,也稱為徑向基層。該層的每個神經(jīng)元節(jié)點擁有一個中心,接收輸入層的輸入之后,計算輸入向量和中心的距離,得到一個標量值。隱含層的神經(jīng)元數(shù)目等于輸入的訓練樣本個數(shù)。第3 層是求和層,與隱含層神經(jīng)元不是全連接。事實上,PNN 的隱含層代表著訓練樣本,并且這些訓練樣本的類別是已知的,而求和層的神經(jīng)元只與屬于同一類別的神經(jīng)元相連,并對同一類別隱含層神經(jīng)元的輸出加權(quán)平均。求和層神經(jīng)元的數(shù)目與樣本類別數(shù)目相同。第4 層是輸出層,輸出求和層中的最大值,其對應的類別即最終輸出類別。
平滑因子σ 是PNN 中最重要的超參數(shù)之一,選擇合適的平滑因子是保證網(wǎng)絡具備高識別率的必要條件。通常,在訓練之前需要通過經(jīng)驗或者嘗試的方法進行人為設定,并且對于所有類別,σ 取值是相同的,即 σ1=σ2=···=σ ,不能將概率特性完整地表示出來,從而降低了PNN 的識別精度[16],因此,選擇更加合適的平滑因子是PNN 研究的重點。
SCA 是一種全新的啟發(fā)式優(yōu)化算法,具有結(jié)構(gòu)簡單、容易實現(xiàn)、兼顧全局搜索與局部搜索、收斂速度快等特點。SCA 算法的主要步驟如下:
其中: r1為線性遞減函數(shù); a 為常數(shù), a =2;T 為最大迭代次數(shù); r2是 [ 0,2π] 的隨機數(shù); r3是 [ - 2,2] 的隨機數(shù); r4是 [ -1,1] 的隨機數(shù)。
參數(shù) r1決定了下一次迭代的移動方向是向當前解和目標解之外的區(qū)域移動,還是向當前解和目標解之間的區(qū)域移動; r2決定了正弦和余弦值的大小,即代表著靠近或遠離目標解的距離; r3是為當前最優(yōu)解所賦予的隨機權(quán)值,目的是加強 ( r3>1) 或減弱(r3<1) 所定義的距離對目標解的影響; r4決定了下一次迭代是按照正弦還是余弦的方式進行,兩者機會均等。
圖2 只示出了二維搜索空間的搜索方式,應當注意的是,它可以擴展到更高維度的搜索空間。正弦余弦函數(shù)的循環(huán)模式允許一個解在其他解的周圍被重新復位,這能保證在兩個解之間的空間進行搜索。對于搜索空間,解應該能夠同時搜索到它們相關(guān)的目標點之間的空間外側(cè),通過改變正弦余弦函數(shù)的幅值大小來實現(xiàn),如圖3 所示。
圖 1 概率神經(jīng)網(wǎng)絡結(jié)構(gòu)圖Fig. 1 Structure diagram of probabilistic neural network
圖 2 r1 對搜索區(qū)域的影響Fig. 2 Influence of r1 on the search area
圖 3 幅值為2 的正弦余弦函數(shù)Fig. 3 Sine and cosine of magnitude 2
圖 4 SCA 的搜索方式Fig. 4 Search method of SCA
圖4 示出了SCA 的搜索方式??梢钥闯觯斦矣嘞液瘮?shù)的幅值范圍在[-2,-1]和[1, 2]時,SCA 進行全局搜索;當正弦余弦函數(shù)的幅值范圍在[-1,1]時,SCA 進行局部搜索。隨著迭代次數(shù)的增加(假設迭代100 次),正弦余弦函數(shù)的幅值范圍變化如圖5 所示。
AdaBoost 算法是根據(jù)在線分配算法提出的經(jīng)過調(diào)整的Boosting 算法,它能夠?qū)未螌W習得到的基分類器的錯誤率進行自適應調(diào)整。它的自適應性在于上一個弱分類器錯分的樣本會得到加強(權(quán)重增大),正確分類的樣本會被減弱(權(quán)重減?。17]。每次迭代加入一個新的弱分類器,直到達到預定誤差或達到預定的迭代次數(shù),則終止訓練。
圖 5 正弦余弦函數(shù)的幅值隨迭代次數(shù)的變化Fig. 5 Amplitudes of sine and cosine change function with iteration numbers
AdaBoost 算法的主要步驟如下[13]:
(1)初始化樣本權(quán)重向量:
其中: n 為訓練樣本數(shù); w1i為第1 次迭代時第 i 個訓練樣本的權(quán)重初始化為 1 /n 。
(2)給所有訓練樣本加權(quán),并利用弱分類器進行訓練,得到弱分類器的誤差率:
其中: ym(xl) 是當前弱分類器的預測結(jié)果; yl是真實結(jié)果; I (case) 表示當case 為真時, I (case)=1 ,否則I(case)=0 ; wml為第 m 個弱分類器的第 l 個測試樣本。由式(4)可知,當前弱分類器誤差率是當前弱分類器在訓練集上被 ym(x) 錯分樣本的權(quán)重之和。
(3)計算當前弱分類器的權(quán)重:
對于二分類問題,分類器權(quán)重按照式(5)進行計算,對于多分類問題,則按照式(6)進行計算,其中N 表示類別數(shù)目。
式中: Zm為歸一化因子,其主要作用是讓所有訓練樣本權(quán)值之和為1,使得權(quán)重向量是一個概率化向量,定義如下:
可以看出,被弱回歸模型預測錯誤的樣本權(quán)值增大,而被正確預測樣本的權(quán)值減小。通過這樣的方式,AdaBoost 算法提高了較難預測的樣本“地位”。經(jīng)過不斷迭代的方式,AdaBoost 方法能“聚焦于”那些較難分的樣本上。
(5)組合所有弱分類器,得到最終強分類器:
首先,利用SCA 對PNN 的平滑因子σ 進行優(yōu)化。為同一類別內(nèi)的樣本設置相同的平滑因子,不同類別間的樣本設置不同的平滑因子,如圖6 所示。將優(yōu)化后的PNN(SPNN)作為弱分類器,利用AdaBoost集成學習方法構(gòu)建強分類器,得到改進后的PNN 模型(ASPNN)。
圖 6 平滑因子的自適應調(diào)整Fig. 6 Adaptive adjustment of smoothing factor
如圖7 所示,從左到右依次進行迭代,并更新訓練樣本權(quán)重。 S PNN1,S PNN2,···,S PNNM為每一次迭代的SPNN 弱分類器,迭代次數(shù)為M。為進一步提高分類準確率,本文提出對應概率加權(quán)求和的方式求得最終輸出,即利用每一個弱分類器的權(quán)重作為系數(shù),將所有分類器的輸出概率進行加權(quán)求和,并輸出最大值作為最終輸出。
圖 7 ASPNN 的原理圖Fig. 7 Schematic of ASPNN
ASPNN 算法的主要步驟如下:
(1)初始化平滑因子。對同一類別隱含層神經(jīng)元初始化相同的平滑因子 σi, i 表示第 i 類別,總類別數(shù)為N。設置SCA 算法的參數(shù),包括迭代次數(shù)、搜索區(qū)間、種群規(guī)模等。并按照式(3)初始化所有訓練樣本的權(quán)重。
(2)將平滑因子賦予PNN,并進行訓練,適應度函數(shù)如式(11)所示。
其中: yp(i) 表示第 i 個樣本的預測值; y (i) 表示實際值; m 為樣本總數(shù);適應度函數(shù)即為訓練樣本錯分的個數(shù)與訓練樣本總個數(shù)的比值。
(3)如果適應度函數(shù)小于預先設定的閾值δ,或者到達迭代次數(shù),則停止迭代,得到優(yōu)化模型SPNN 作為集成學習的弱分類器。
(4)設置AdaBoost 算法參數(shù),即參與訓練的樣本占全體訓練樣本的比例 p 、迭代次數(shù)M、訓練樣本數(shù) n 等。
(5)根據(jù)式(4)進行訓練,得到當前分類器的誤差率,并根據(jù)誤差率由式(5)或式(6)計算當前分類器權(quán)重。應當注意的是,本文在訓練過程中采用有放回采樣的方式選取訓練樣本。每一次訓練選取全體訓練樣本的85%進行訓練,預測所有訓練樣本,根據(jù)預測結(jié)果計算分類器權(quán)重,并更新全體訓練樣本權(quán)重。
(6)用當前弱分類器預測測試集,得到樣本屬于每一類別的概率,并將分類器權(quán)重作為系數(shù)對輸出概率進行加權(quán)并保存。然后根據(jù)分類器權(quán)重更新樣本權(quán)重,并進行下一次迭代。
(7)將所有分類器的加權(quán)概率對應相加,輸出最大值作為當前預測樣本的預測結(jié)果。
文獻[18]證明了只要弱分類器算法的準確性略好于隨機猜測,便可保證AdaBoost 算法是收斂的,同時,它也證明了AdaBoost 集成學習模型具有良好的泛化能力。而本文所采用的弱分類器是SPNN,實驗表明SPNN 對電機軸承已經(jīng)具有很好的故障分類效果,因此其識別率遠高于隨機猜測,故本文的ASPNN 算法理論上是收斂的。
本文實驗所用數(shù)據(jù)來自于凱斯西儲大學軸承數(shù)據(jù)庫(Case Western Reserve University, CWRU)。被測試軸承通過電火花加工工藝設置了單點故障,故障直徑包含0.178、0.356、0.533、0.711 mm 這4 種尺寸。選取驅(qū)動端振動信號作為實驗數(shù)據(jù),包括軸承在4種不同狀態(tài)下采集到的振動信號,分別為正常狀態(tài)(Normal, NOR)、滾珠故障狀態(tài)(Ball Fault, BF)、外圈故障狀態(tài)(Outer Race Fault, ORF)(只包含前3 種故障直徑)以及內(nèi)圈故障狀態(tài)(Inner Race Fault, IRF),每種狀態(tài)下采集到的信號根據(jù)故障直徑和負載的不同而不同,負載大小分別為0、746、1 492、2 238 W。
文獻[19]提出了改進的經(jīng)驗模態(tài)分解方法。首先利用改進的經(jīng)驗模態(tài)分解方法對軸承的振動信號進行分解,得到一系列本征模態(tài)函數(shù)(Intrinsic Mode Function,IMF),然后計算前6 個高頻IMF 分量的改進排列熵(Modified Permutation Entropy,MPE)的值作為特征量,進而實現(xiàn)對電機軸承振動信號的特征提取。
如表1 和表2 所示,實驗包含4 種負載狀態(tài),每種負載下包含4 種軸承狀態(tài),分別為正常狀態(tài)、內(nèi)圈故障、外圈故障和滾珠故障,所得特征為6 維特征向量。此外,每種負載下包含360 組訓練樣本和216 組測試樣本。由于數(shù)據(jù)量較大,在負載為0 的情況下,針對每種軸承狀態(tài)列出一組數(shù)據(jù)如表2 所示。
在本文的故障分類研究過程中,首先需要對故障類型進行分類,即分為正常狀態(tài)、內(nèi)圈故障狀態(tài)、外圈故障狀態(tài)和滾珠故障狀態(tài)。在識別出故障類型的基礎上,再對故障程度(故障直徑)進行分類。
首先研究人為設定平滑因子對基本PNN 性能的影響。經(jīng)過多次嘗試發(fā)現(xiàn),當 σ <0.10 時,PNN 具有 較 好 的 性 能;當 σ >0.10 時,PNN 的 識 別 率 在0.5 上下波動,效果較差。為進一步尋找更優(yōu)秀的平滑因子,本文按照遍歷的方式依次選取平滑因子,從0.001 到0.10,步長為0.001,如圖8 所示。
由圖8 可以看出,在進行故障類型識別時,PNN 的性能會隨著平滑因子的增大而出現(xiàn)先上升后下降的趨勢。尤其是當 σ <0.01 時效果更好,因此在SPNN 和ASPNN 中,設定 σ 的搜索區(qū)間為[0,0.10],種群大小為40,迭代次數(shù)為100 次。另外,在ASPNN算法中,設定弱分類器的個數(shù)為50 個。
圖9 示出了ASPNN 訓練結(jié)果中其中一個弱分類器經(jīng)過SCA 優(yōu)化后得到的最優(yōu) σ 值,可以看出對應4 種類型(軸承的4 種狀態(tài))訓練樣本,分別優(yōu)化出了不同的 σ 值,并且它們的范圍均小于0.01。
表 1 實驗數(shù)據(jù)Table 1 Experimental data
表 2 部分特征值Table 2 Partial feature vector
圖 8 不同負載下平滑因子對PNN 性能的影響Fig. 8 Effect of smoothing factor on PNN performance under different loads
圖 9 平滑因子優(yōu)化結(jié)果Fig. 9 Optimization results of smoothing factor
圖 10 負載為0 時的錯分率下降曲線Fig. 10 Error rate drop curve when the load is 0
圖10 示出了ASPNN 算法訓練過程中錯分率的下降曲線,可以看出SCA 算法在10 次迭代以內(nèi)便搜索到了最優(yōu)解,進一步說明了SCA 具有準確率高、收斂速度快的優(yōu)點。
圖11 示出了ASPNN 在不同負載下的故障類型識別結(jié)果。可以看出,ASPNN 能夠很好地對故障類型進行分類。
圖 11 ASPNN 故障類型識別結(jié)果Fig. 11 Fault type identification results for ASPNN
表 3 不同方法的故障類型識別結(jié)果Table 3 Fault type identification results of different methods
表3 列出了PNN、SPNN、ASPNN 和多分類SVM 這4 種算法的測試樣本識別結(jié)果。基本PNN算法中,本文人為將 σ 設定為0.01。SPNN 和ASPNN均運行10 次, σ 的搜索區(qū)間為[0,0.1]。而多分類SVM 是利用libsvm 工具包實現(xiàn)的,并采取一對一(One-Versus-One, OVO)投票的方式進行多分類??梢钥闯觯珹SPNN 比PNN、SPNN 具有更好的自適應性和更高的識別準確率。而對于多分類SVM來說,在負載為2 238 W 時,其準確率略高于ASPNN,但在其他負載狀態(tài)下,其識別率均低于ASPNN。
在對滾動軸承進行故障診斷研究時,不僅要識別出故障的具體類型,還要識別出在已知故障類型的基礎上,軸承發(fā)生故障的具體程度。因此,在識別出故障類型的基礎上,需要進一步對故障程度進行分類。
如表4 所示,當負載為0 時,存在3 種故障直徑,其中內(nèi)圈故障和滾珠故障均包含120 個訓練樣本和72 個測試樣本,它們包含4 種故障程度,即故障直徑分為別0.178、0.356、0.533、0.711 mm,而外圈故障包含90 個訓練樣本和54 個測試樣本,只包含前3 種故障狀態(tài)。由于篇幅原因,本文只列出了負載為0 時的實驗數(shù)據(jù)情況,其他負載時的數(shù)據(jù)情況與表4 相同。
在故障程度識別中,SPNN 和ASPNN 的超參數(shù)設置與故障類型識別時一致,同時平滑因子搜索區(qū)間設置為[0,0.1]。由于篇幅原因,圖12 只列出了負載為0 時,ASPNN 對于外圈故障程度的識別結(jié)果。所有負載下的故障程度識別率如表5 所示。
由表5 可以看出,在故障程度分類中,PNN 及其改進算法的識別效果要優(yōu)于SVM,并且SPNN 模型和ASPNN 模型在故障程度識別中均表現(xiàn)出了優(yōu)越的性能。由于SPNN 對同一組訓練樣本和測試樣本將得到固定的測試結(jié)果,因此ASPNN 的泛化能力更強于SPNN。在較難分類的一些樣本上,ASPNN 表現(xiàn)出了更好的識別效果,進一步證明了本文所提出的ASPNN 算法的有效性和優(yōu)越性。
表 4 負載為0 時的實驗數(shù)據(jù)Table 4 Experimental data when the load is 0
圖 12 負載為0 時的故障程度識別結(jié)果Fig. 12 Fault degree recognition results when the load is 0
表 5 不同負載下的故障程度識別率Table 5 Identification rate of fault degree under different loads
(1)正弦余弦算法(SCA)是近兩年提出的一種新型的元啟發(fā)式算法,它是一種建立在正弦余弦函數(shù)上的自組織和群智能基礎上的數(shù)值優(yōu)化計算方法,具有搜索精度高、收斂速度快、不易陷入局部最優(yōu)等優(yōu)點。
(2)AdaBoost 是一種Boosting 集成學習方法。它會賦予每個訓練樣本一個權(quán)重,并在訓練過程中更新這些權(quán)重。對錯分的樣本將增大其權(quán)重;對正確分類的樣本將減小其權(quán)重。通過這樣的訓練方式,算法將更加關(guān)注那些錯分的樣本,并將多種弱分類器模型組合起來,進一步提高了分類器的準確度。
(3)針對概率神經(jīng)網(wǎng)絡平滑因子需要通過人為不斷嘗試設定的缺點,提出了基于SCA 的平滑因子自適應模型(SPNN),并將其作為集成學習AdaBoost 的弱分類器進行加強學習。提出了基于SCA 和AdaBoost的改進概率神經(jīng)網(wǎng)絡模型(ASPNN),并將該模型應用于電機軸承的故障診斷中。實驗結(jié)果表明,ASPNN分類模型可以進一步提高電機軸承故障診斷的準確率。
(4)利用ASPNN 方法對測試集進行分類時,測試集樣本的個數(shù)約864,而對全體測試樣本進行分類所花費的時間為1 s 以內(nèi)。本文所用數(shù)據(jù)采樣頻率為12 kHz,而每個樣本包括2 500 個數(shù)據(jù)點,即采集一個樣本需要約0.21 s,而對一個樣本進行分類幾乎是瞬間完成的。因此,理論上ASPNN 能夠進行實時故障診斷,但由于實驗條件有限,該方法在實際生產(chǎn)過程中的實時診斷能力需在以后的工作中進一步研究。