高慶生, 劉曉波, 梁 珊
(南昌航空大學 航空制造工程學院,南昌 330063)
滾動軸承廣泛應(yīng)用于旋轉(zhuǎn)機械當中,由于其啟動靈活、滾動摩擦阻力小、機械效率高等特點,使其對旋轉(zhuǎn)機械的工作性能產(chǎn)生越來越重要的影響,但極易受到損壞,從而導(dǎo)致各類事故頻發(fā),造成重大人員傷亡和經(jīng)濟損失。并且滾動軸承多在強噪聲背景下工作,致使其微弱的故障特征被埋沒在噪聲中難以提取[1],給滾動軸承的故障診斷增加了難度,因此,如何研究出更高效的滾動軸承故障診斷方法成為了當前亟待解決的問題。
國內(nèi)外學者針對時域[2-3]、頻域[4-5]、時頻域[6-9]的診斷方法也做了許多研究。但是,所有的故障診斷都離不開故障特征提取這個過程,故障特征提取是滾動軸承故障診斷的關(guān)鍵環(huán)節(jié)。而深度學習在信號特征提取方面表現(xiàn)非常突出,在故障診斷當中的應(yīng)用也越來越廣泛。Tamilselvan 等[10]首次提出將深度信念網(wǎng)絡(luò)(DBN)應(yīng)用于旋轉(zhuǎn)機械轉(zhuǎn)子系統(tǒng)故障診斷領(lǐng)域,并在國內(nèi)外引起了廣泛關(guān)注。Haidong Shao 等[11]則在此基礎(chǔ)上,提出一種混合DBN 模型,即將粒子群優(yōu)化算法(PSO)與DBN 相結(jié)合,提高了旋轉(zhuǎn)機械故障特征提取的準確度;同時,Shao 等[12]首次在軸承故障診斷中運用了集合深度自動編碼器。Haidong Shao 等[13]則提出了一種連續(xù)深度信念網(wǎng)絡(luò)(CDBN)新方法,并在故障診斷中取得了非常好的效果。深度信念網(wǎng)絡(luò)雖然在故障診斷效果方面要比傳統(tǒng)的故障診斷模型要好,但是深度信念網(wǎng)絡(luò)層數(shù)的不確定性而引起的故障診斷精度不高的問題依然沒有得到有效解決。
基于上述分析,提出一種基于動態(tài)增添算法的DBN 滾動軸承故障診斷方法,其主要思想是:首先通過動態(tài)增添算法確定隱含層層數(shù),通過逐層遞減原則,設(shè)置模型的隱含層神經(jīng)元節(jié)點數(shù)目,保持深度信念網(wǎng)絡(luò)最簡結(jié)構(gòu)的同時,并滿足精度要求,且在提取信號特征的同時使信息更加簡化和方便分類,最終實現(xiàn)滾動軸承故障的有效診斷。
為了提高故障診斷精度,可以通過動態(tài)增添法確定合適的網(wǎng)絡(luò)隱含層層數(shù),首先計算輸出結(jié)果的均方誤差如下:
式中:E為均方誤差,n為樣本容量,x為網(wǎng)絡(luò)輸出層的總節(jié)點個數(shù),y為理論情況下的輸出值,a(x)為實際情況下的輸出值。當進入反向傳播訓練時,DBN 的學習次數(shù)達到指定數(shù)量時就會計算一次E,同時也會計算一次均方誤差下降率γ,其計算表達式如下:
式中:T0代表隱含層迭代時每次遞增次數(shù),E(T?T0)是迭代T?T0次時的均方誤差,E(T)是迭代T次時的均方誤差,動態(tài)增添法理論即以E與γ為監(jiān)測參數(shù),當E與γ均達不到指定條件,則在原有基礎(chǔ)上增加一個隱層層數(shù),重復(fù)此迭代過程,直至達到指定要求??偨Y(jié)如下:
式中:nR為隱含層層數(shù),γ1與γ2分別為迭代T?T0與T次時的均方誤差下降率,γg與γm為根據(jù)需求設(shè)置的最慢與最快誤差下降率閾值。
基于動態(tài)增添算法的DBN 能以較快誤差下降速度達到目標精度,并且可以針對樣本類型來自適應(yīng)優(yōu)化本身結(jié)構(gòu),不僅提高了學習效率,而且也改善了容易導(dǎo)致局部最優(yōu)的不足。
對DBN 的隱含層層數(shù)優(yōu)化之后,神經(jīng)元節(jié)點的合理選取成為DBN 模型訓練的關(guān)鍵點。神經(jīng)元節(jié)點數(shù)過低和過高,會導(dǎo)致網(wǎng)絡(luò)擬合效果較差或者過擬合的問題,最終影響到故障診斷效果,實際應(yīng)用中常選用數(shù)量較少的神經(jīng)元節(jié)點構(gòu)建DBN模型。
對于一致型的DBN 模型來說,其故障診斷的精度較高,但學習速度比較低,研究發(fā)現(xiàn),DBN 模型隱含層神經(jīng)元節(jié)點如果采用逐層遞減的方式則能提升網(wǎng)絡(luò)學習速度,并且取得很高的故障診斷精度,反之,則會導(dǎo)致故障診斷穩(wěn)定性下降。因此,選擇構(gòu)建DBN 模型的方法為:首先根據(jù)較小值原則,在起始隱含層采用數(shù)量較少的神經(jīng)元節(jié)點,然后再根據(jù)逐層遞減的方式依此降低神經(jīng)元節(jié)點數(shù)目。
針對模型不同隱含層神經(jīng)元的設(shè)置數(shù)目,可由如下的近似表達式計算:式中:Z為神經(jīng)元節(jié)點數(shù)目,nR為隱含層層數(shù),q為一個可調(diào)節(jié)參數(shù),其取值范圍為[?20,20],可根據(jù)實驗結(jié)果不斷調(diào)整。圖1 流程圖為基于動態(tài)增添法的DBN 訓練過程,其中batch 為數(shù)據(jù)批次,m為樣本組數(shù),迭代次數(shù)大于100 時轉(zhuǎn)入有監(jiān)督算法,通過動態(tài)增添法確定隱含層層數(shù)。
圖1 基于動態(tài)增添法DBN 訓練流程圖
實驗采用美國凱斯西儲大學軸承數(shù)據(jù)中心的數(shù)據(jù)集[14],實驗平臺如圖2 所示,為了模擬實際故障情況,該實驗在軸承各表面加工出了不同大小的故障點。并將傳感器安裝在3 個不同位置,包括電機殼體驅(qū)動端、風扇端及電機支撐底盤,最終獲取7 種不同的工況類型組成實驗樣本。
圖2 美國凱西斯西儲大學滾動軸承實驗平臺
在數(shù)據(jù)集中選取故障直徑為0.007 英寸的單點故障樣本和正常樣本為例,根據(jù)其時域頻域幅值圖,分析在故障類型不同的情況下,滾動軸承故障的振動特性,并以此來對數(shù)據(jù)樣本進行分組。
由圖3 可知:在時域方面,不同故障類型對應(yīng)的沖擊幅值有很大差異,且故障沖擊密集度也不一樣;在頻域方面,不同故障類型對應(yīng)的故障特征頻率范圍也有很大差異,比如:軸承正常狀態(tài)下時,其頻率主要分布在1 kHz 以下,少部分分布在1~2 kHz 之間,說明正常狀態(tài)下的滾動軸承其主要頻率集中在低頻段;軸承處在故障狀態(tài)下時,其頻率主要分布在2.5~4 kHz 之間,少部分分布在高頻段和低頻段。說明在故障類型不同的情況下,滾動軸承故障的振動特征都有很大不同,據(jù)此可以判斷滾動軸承是否產(chǎn)生故障,但存在不能準確定位故障位置的問題,而DBN 模型在故障特征識別方面更有優(yōu)勢,因此,可以利用DBN模型對故障進行識別。
圖3 原始振動信號幅值圖
為了提高故障診斷的精度,訓練樣本的數(shù)量需要得到保證,因此,本實驗將安裝在三個不同位置的傳感器所采集的信號組成了樣本數(shù)據(jù),因為同種故障類型范圍內(nèi),其振動特性幾乎相近,且反映到提取出來的特征頻率中同樣保持一致,因此,可以將其添加到相同故障類型下DBN 的訓練樣本集中。設(shè)置實驗電機轉(zhuǎn)速為1797 r/min,采樣頻率為12 kHz,不同故障類型各采樣122 000 次左右,軸承轉(zhuǎn)一圈共采集的樣本點數(shù)為:
為了減少數(shù)據(jù)誤差和信息漏采情況,保證采集數(shù)據(jù)的信息完整性,將每組樣本設(shè)置為512 個采集點,在對故障信號處理與計算之時,需要去掉首尾兩端的數(shù)據(jù),也就是采用綜合狀態(tài)比較穩(wěn)定的數(shù)據(jù),并根據(jù)單組數(shù)據(jù)再進行截斷分組處理。并用一個7 維數(shù)組標簽標記樣本的類別屬性,分類情況如表1 所示。
表1 樣本分組及標記情況
DE 表示傳感器放置在驅(qū)動端; FE 在風扇端;BA 在支撐底盤位置。正常軸承在DE 處采集的樣本組數(shù)為400,是故障狀態(tài)組數(shù)的兩倍,且由于正常狀態(tài)下的振動信號比較簡單且沒有干擾成分,因此只需要在DE 處采集的信號即可。最后將采集的樣本根據(jù)類別進行分配,即訓練樣本與測試樣本兩類,分配比例為3∶1,樣本的類別標簽則表示DBN 模型的理想輸出結(jié)果,利用DBN 模型提高故障診斷精度的主要思想就是不斷縮小DBN 模型輸出結(jié)果與標簽的差異。
訓練DBN 之前需要初始化參數(shù),初始化方式如下:
式中,m和n分別為受限玻爾茲曼機(RBM)的輸入、輸出層神經(jīng)元數(shù)目,rand(wm,n)用于生成均值為1 方差為0.01 正態(tài)分布,無監(jiān)督RBM 訓練階段及誤差反向傳播階段學習率均設(shè)置為10%,由最長的樣本長度及故障類型的數(shù)目可知RBM 輸入、輸出層的節(jié)點數(shù)分別為512 點和7 點,RBM 隱含層節(jié)點按照式(4)設(shè)置,并將可視層與隱含層偏置設(shè)置為0。
由于樣本數(shù)目比較多,同時為了精簡計算,選擇對數(shù)據(jù)分批處理,將初始化后的DBN 參數(shù)導(dǎo)入到RBM 中進行訓練,并結(jié)合CD-k(k= 1)算法和激活函數(shù)求取RBM 隱層輸出,最終達到最大RBM 訓練次數(shù)要求,最大訓練次數(shù)為可設(shè)置的初始參數(shù)。
針對RBM 的訓練目的是為了提取相關(guān)特征,并根據(jù)輸出層進行預(yù)測和分類,。因此,輸入數(shù)據(jù)x經(jīng)過DBN 進行相關(guān)處理之后,可以根據(jù)提取的特征信息對相應(yīng)輸出值進行預(yù)測,從而判斷x對應(yīng)真實類別的可能性。而均方誤差可以表明這種預(yù)測值與真實值的接近程度,因此,可以根據(jù)計算出的均方誤差是否在設(shè)定精度范圍內(nèi)來判斷是否滿足精度要求,如果不在范圍內(nèi),則根據(jù)動態(tài)增添算法增加深度信念網(wǎng)絡(luò)層數(shù),將上一個RBM 的輸出重新作為輸入,繼續(xù)導(dǎo)入到RBM 中進行學習,重復(fù)這個過程,直到誤差在設(shè)定范圍之內(nèi),此時完成了對DBN 模型的初步構(gòu)建任務(wù),最后根據(jù)有監(jiān)督算法優(yōu)化該模型。
DBN 訓練過程結(jié)束之后,最終輸出如圖4 所示的DBN 結(jié)構(gòu)對應(yīng)的訓練均方誤差曲線,由圖4可知:在迭代初期階段,均方誤差快速下降,雖然中后期階段,均方誤差曲線開始平緩下降,但當?shù)?00 次時,已經(jīng)接近目標精度,迭代到155 次時達到最佳效果,此時均方差約為0.000 36,確定的隱含層層數(shù)為3 層,證明了基于動態(tài)增添法的DBN模型具有較高的故障診斷效率和診斷精度。
圖4 DBN 模型訓練樣本均方誤差曲線
為了更加直觀說明DBN 在故障分離方面的優(yōu)勢,根據(jù)上述實驗數(shù)據(jù)構(gòu)造新的網(wǎng)絡(luò)模型,并設(shè)置最大迭代次數(shù)為100 次,重復(fù)上述實驗訓練過程。模型經(jīng)過訓練后,針對訓練樣本及測試樣本輸出DBN 模型故障診斷結(jié)果,最終得到如圖5 所示的分類錯誤率曲線,且分類錯誤率的計算公式為:
圖5 訓練集與測試集故障診斷結(jié)果對比圖
式中,N為樣本總數(shù),DBN 根據(jù)輸入的數(shù)據(jù)樣本獲取對應(yīng)的預(yù)測值,如果預(yù)測值與真實值(標簽值)不相等,則代表分類錯誤。
由圖5 診斷結(jié)果可知:從首次迭代開始,訓練集與測試集分類錯誤率均在10%以上,且測試集錯誤率相對訓練集要高很多;隨著迭代次數(shù)的增加,分類錯誤率開始快速下降;當?shù)螖?shù)到達20 時,曲線開始平緩下降,迭代次數(shù)到達90 次時,訓練集錯誤率為2.5%,而測試集為8.6%,均低于10%,證明了DBN 模型在故障分離方面效果較好。而之所以訓練集的分類效果更好,是由于DBN 模型在訓練過程中使用的是訓練集樣本,對這些數(shù)據(jù)比較“熟悉”。
為了驗證基于動態(tài)增添法確定隱含層深度的優(yōu)勢,將不同隱含層深度的DBN 模型故障分類情況進行對比,其數(shù)據(jù)來源于訓練集樣本,并獲取DBN 模型優(yōu)化程度最高時的分類正確率曲線,結(jié)果如圖6 所示。
圖6 不同深度DBN 模型的故障分類正確率曲線
首先說明圖中DBN(2)表示模型有2 層隱含層,其余類似,由圖6 可知:3 種不同深度的模型診斷過程有所不同,在迭代起點,3 種模型分類正確率差異很大,DBN(2)分類準確率明顯低于另外2 個模型。開始迭代之后,3 種模型分類正確率均迅速上升,但DBN(4)上升速度最快。當?shù)?0 次之后,曲線開始平緩上升并趨于穩(wěn)定,但DBN(4)分類正確率最高。
通過對比上述結(jié)果可知,DBN(4)故障分類分離能力最強,DBN(2)相對最弱,說明增加隱含層可以提高故障診斷正確率。但對比DBN(2)到DBN(3)以及DBN(3)到DBN(4)之間的增幅可知,前者分類正確率的增加幅度比較大,說明在一定程度之后,增加隱層來提高診斷正確率的效果會越來越差。且隨著隱層的不斷增加會使DBN 結(jié)構(gòu)復(fù)雜化,給模型的優(yōu)化帶來了難度,且容易導(dǎo)致在迭代初期產(chǎn)生振蕩現(xiàn)象,綜合以上分析可知,DBN(3)的綜合性能相對較好。
為具體表現(xiàn)3 種模型在測試集中對不同故障類型的分類識別能力,從七種故障類型測試樣本中各選取50 組數(shù)據(jù)組成驗證集N1,將驗證集N1輸入到DBN 模型中測試,并對最終輸出結(jié)果進行可視化處理。處理結(jié)果如圖7、圖8、圖9 所示,圖中散落的紅色標記個數(shù)代表DBN 模型針對每種工況分類錯誤的數(shù)目。
由圖7、圖8 與圖9 可知:3 種DBN 模型針對驗證集N1錯分個數(shù)分別為35、28、40,表明3 種DBN 模型均存在錯分現(xiàn)象,且可計算出DBN(3)平均分類正確率最高,其正確率為92%,其次為DBN(2)的90%以及DBN(4)的88.6%,對比可知DBN(3)分類能力相對最強,DBN(4)最弱。再次驗證DBN(3)對比另外兩種模型在故障分離方面的優(yōu)勢。
圖7 DBN(2)模型針對N1 的故障診斷結(jié)果
圖8 DBN(3)模型針對N1 的故障診斷結(jié)果
圖9 DBN(4)模型針對N1 的故障診斷結(jié)果
通過以上分析可知:為了提高故障診斷精度,可以適當增加隱含層,但到一定程度之后其帶來的效果并不明顯,且還會導(dǎo)致模型結(jié)構(gòu)更加復(fù)雜,優(yōu)化困難。本文采用動態(tài)增添法來確定隱含層層數(shù),不僅能夠在保持最佳精度的條件下尋找到最簡網(wǎng)絡(luò)結(jié)構(gòu),而且能適應(yīng)在不同樣本集中的故障診斷,獲得很好的診斷效果,因此,本文所提方法對基于DBN 模型進行故障診斷具有一定意義。
提出一種基于動態(tài)增添算法的DBN 診斷方法。首先通過動態(tài)增添算法確定DBN 模型隱含層層數(shù),然后按照逐層遞減原則設(shè)置模型的隱含層神經(jīng)元節(jié)點數(shù)目,實現(xiàn)了信息的壓縮簡化和便于分類;以滾動軸承數(shù)據(jù)樣本為研究對象,將大量訓練樣本分組導(dǎo)入到DBN 模型中,得出DBN 模型訓練樣本均方誤差曲線,通過對該曲線進行分析,證明了基于動態(tài)增添法的DBN 模型能提高故障診斷的精度和效率;通過對比不同深度的DBN 模型的故障分類正確率曲線,證明本文所提方法所確定的隱含層深度具有較好的綜合性能,在簡化網(wǎng)絡(luò)結(jié)構(gòu)的同時故障診斷精度較高,對不同樣本集的故障診斷中均能獲得較好的診斷效果。