劉東川, 鄧艾東, 趙 敏, 卞文彬, 許 猛
(東南大學 能源與環境學院 火電機組振動國家工程研究中心, 南京 210096)
隨著旋轉機械向著大型化、高速化和自動化的發展,其安全運行受到了廣泛的關注。但是經過長時間的運行,旋轉機械不可避免會出現故障、損壞等情況,造成嚴重的安全問題和經濟損失問題。因此,實現旋轉機械故障診斷是機械制造行業一直以來研究的重點[1-3]。
目前基于數據驅動方式,收集歷史數據建立故障診斷模型是旋轉機械故障診斷研究的一種重要方法[4]。其中較為常見的故障診斷模型有支持向量機、邏輯回歸、樸素貝葉斯等。但這些傳統模型框架過于簡單,泛化能力較弱,限制了其故障診斷性能的提升[5]。深度神經網絡由于其具有逐層處理機制以及表征學習能力,往往能實現比淺層機器學習更優良的診斷效果,其在旋轉機械故障診斷中得到了廣泛的應用。然而,深度神經網絡的訓練過程過度依賴人工干預,在超參數的設置上也極為繁瑣,訓練起來耗時嚴重[6]。
為實現高效的旋轉機械故障診斷且減少超參數的設置,Zhou等[7]提出了一種全新的決策樹集成方法——深度森林。深度森林由多粒度掃描和級聯森林兩個部分組成。其中多粒度掃描環節實現對輸入數據的特征提取功能,級聯森林則通過逐層處理的方式實現對輸入數據的表征學習功能。
在深度森林的多粒度掃描環節中,通過滑動窗口對原始輸入信號進行特征提取時,有可能將一些干擾信號的權重放大且忽視特征之間彼此存在的聯系,影響最終診斷結果[8]。其次,在級聯森林中,高維變換特征向量在與低維增強特征向量拼接時,巨大的維度差異引發特征淹沒現象,造成級聯森林診斷準確率下降的問題,降低了深度森林的診斷性能[9-10]。
為了避免級聯森林診斷準確率下降等問題,同時保留深度森林的優勢,本文在多粒度掃描級聯的地方增加一個stacking模型融合層,利用stacking層的多個初級學習器對輸入特征進行整體分析得到另一組維度更低但表征能力更強特征向量。之后將通過多粒度掃描和stacking層得到的特征向量輸入到級聯森林中診斷,得到最終的診斷結果。在試驗分析中將本文所提方法與原始的深度森林以及其他故障診斷模型進行了對比,驗證了本文所提的改進深度森林故障診斷模型的可行性與有效性。本方法可為旋轉機械的故障診斷提供一條新的路徑。
深度森林可分為多粒度掃描環節和級聯森林環節。其中多粒度掃描環節采用滑動窗口掃描原始特征以增強樣本多樣性;而級聯森林環節實現對輸入數據的逐層處理達到表征學習的目的[11]。
滑動窗口用于掃描輸入特征,如圖1所示。假設有a維原始特征,使用的窗口大小為b,對于序列數據,將通過滑動一個特征的窗口來生成b維特征向量,總共生成(a-b+1)維特征向量。從正/負訓練樣本中提取的所有特征向量都被視為正/負實例,然后將其用于生成類向量,從相同大小的窗口中提取的實例用于訓練隨機森林和完全隨機森林,然后生成類向量并將其作為變換后的特征串接。假設有c類,使用b維窗口,然后每個隨機森林生成(a-b+1)個c維類向量,得到對應于a維原始特征向量的2·c·(a-b+1)維變換特征向量,見圖1。

圖1 多粒度掃描Fig.1 Multi granularity scanning
深度神經網絡中的表征學習主要依賴于原始特征的逐層處理。受這種識別的啟發,深度森林采用了一種級聯結構,如圖2所示,在這種結構中,級聯的每一級接收由其前一級處理的特征信息,并將其處理結果輸出到下一級。每個層次是決策樹森林的集合,即集合的集合。

圖2 級聯森林Fig.2 Cascade forest
級聯森林的每一層都包含很多隨機森林,而每一個隨機森林又由若干決策樹組成。給定一個實例,每個隨機森林里的決策樹將產生一個類向量的結果,然后將所有決策樹中的類向量取平均值,即可得到隨機森林的輸出結果。然后將隨機森林輸出的類向量拼接在一起并與多粒度掃描后的特征向量串聯起來輸入下一級級聯。假設有3個類,那么4個隨機森林中的每一個都將產生一個三維類向量。因此,下一級級聯將在原來的特征向量基礎上額外接收12個增強特征。
為了實現對分類器準確性的提升,一種更為強大的集成學習策略便是應用學習法,即通過不同學習器之間的結合堆疊,而stacking算法是學習法的典型代表。
若stacking算法包含4個初級分類器學習器
M={M1,M2,M3,M4}
(1)
式中,Mi,1≤i≤4為第i個初級分類器
具體的試驗步驟如下。
步驟1將訓練樣本一共分為4份即訓練樣本1,2,3,4。
X=X1∪X2∪X3∪X4
(2)
式中:X為訓練樣本;Xi為第i個訓練樣本。
步驟2保留訓練樣本X1,X2,X3訓練,將訓練樣本X4作為驗證集,并記錄下M1訓練樣本X4的預測結果A11。
步驟3利用樣本X1,X2,X3對測試數據預測,得到M1對于測試數據的預測結果B11。
步驟4分別將訓練樣本X2,X3,X4作為驗證集數據,重復上面步驟2、步驟3,得到4組不同的訓練樣本的預測數值和測試數據的預測數值。將4組訓練樣本拼接起來得到新的訓練數據A1,將4組測試數據的預測結果取平均得到新的測試數據B1。
A1=Agregate(A11,A12,,A13,,A14)
(3)
B1=Average(B11,B12,B13,B14)
(4)
式中:A1為通過k-折得到的新的訓練數據;A1i為M1對樣本Xi的預測結果;B1為通過k-折得到的新的測試數據;B1i為Xi作為訓練集,M1對測試數據預測的結果。
步驟5利用剩余其他模型,重復步驟2~步驟4,分別得到新的訓練數據和測試數據。
A=Agregate(A1,A2,A3,A4)
(5)
B=Average(B1,B2,B3,B4)
(6)
式中:A為通過初級分類器得到的新的訓練數據;B為通過初級分類器得到的新的測試數據。
步驟6利用訓練數據A對次級分類器進行訓練,并對測試數據B進行預測,得到最終的預測結果。

圖3 stacking集成學習總體過程Fig.3 Overall process of stacking integrated learning
本文在原有的深度森林上添加stacking算法,實現了一種改進深度森林的故障診斷模型。
本文將stacking算法與多粒度掃描結合使用,得到一種基于stacking算法的改進深度森林模型,如圖4所示。基于stacking算法的深度森林模型將多粒度掃描與stacking層級聯在一起,將輸入的原始特征向量通過stacking層和多粒度掃描處理得到兩種不同新的特征向量,并將得到的新特征向量輸入到級聯森林。將級聯森林的性能在k-折交叉驗證的驗證集上進行評估,取級聯森林在所有k-折交叉驗證的驗證集上的準確率作為整體診斷精度,如果級聯森林下一級的準確率與上一級相比沒有增益,則驗證性能收斂,訓練過程將終止。

圖4 改進深度森林結構Fig.4 Improved deep forest structure
基于改進深度森林模型的故障診斷方法如圖5所示,大致可以分為以下4個步驟。

圖5 基于改進深度森林模型的故障診斷流程圖Fig.5 Flow chart of fault diagnosis based on improved deep forest model
步驟1多粒度掃描環節。將輸入的原始信號放入多粒度掃描環節,利用滑動窗口截取數據,然后將截取到的數據送入隨機森林和完全隨機森林處理。之后將隨機森林處理后的概率進行拼接,得到高維度特征向量。
步驟2stacking層處理。利用k-折交叉驗證將輸入的原始輸入信號拆分,得到測試集、訓練集和驗證集。然后利用stacking層中的初級學習器對數據進行處理并將結果拼接在一起,得到維度更低且表征能力更強的特征數據。
步驟3級聯森林處理。將通過多粒度掃描得到的特征向量輸入級聯森林的第一級進行決策,之后將級聯森林第一級的決策結果與通過stacking層得到的特征向量拼接輸入到第二層。將第二層的決策結果再與多粒度掃描環節得到的特征向量拼接輸入到下一層,以此類推。
步驟4收斂性判斷。此時將級聯森林得到的增強特征向量先進行平均處理,并選取其中概率最大的類別。此時,便可得到每一層級聯森林對于測試集的診斷概率,并與上一層級聯森林的診斷結果進行對比。如果診斷結果相差很大,則說明級聯森林未收斂,重復步驟2~步驟4。如果診斷結果相差不大說明級聯森林收斂,將結束訓練過程,并輸出診斷精度。
為了驗證本文所提方法的可行性,本文采用凱斯西儲大學軸承數據集和千鵬公司齒輪箱數據集進行測試。
為了驗證本文所提的改進深度森林故障診斷方法的可行性,本文選取現下5種主流的故障診斷模型與本文所提方法進行對比。本文選取的故障診斷模型分別為支持向量機(support vector machine,SVM),核函數選用高斯核;隨機森林(random forest,RF),樹的深度為11,數量為400,k近鄰算法(k-nearest neighbor,KNN),距離計算選擇歐拉距離;自適應增強算法(adaptive boosting,AdaBoost),學習率為0.1,學習器數目為400;高斯樸素貝葉斯分類器(Gaussian naive Bayes,GaussianNB),拉普拉斯平滑系數取1。
4.2.1 試驗條件
試驗平臺如圖6所示,待檢測的軸承有3種分別是支撐著電動機的轉軸,驅動端軸承為SKF6205和風扇端軸承為SKF6203。試驗設置采樣頻率為12 kHz,并且有4種試驗工況:1 797 r/min/0,1 772 r/min/0.745 7 kW, 1 750 r/min/1.491 4 kW,1 730 r/min/2.237 1 kW,“1 730 r/min/2.237 1 kW”含義為轉速1 730 r/min,電機所加負載為2.237 1 kW,試驗選擇0負責工況下的數據。故障類型分3類:滾動體故障(B)、外圈故障(OR)、內圈故障(IR),每種故障類型包含3種故障尺寸:0.007 in,0.014 in和0.021 in(1 in=0.025 4 m)。因此可以將軸承狀態分為9種故障狀態和一種正常狀態。

圖6 凱斯西儲大學試驗平臺Fig.6 Case Western Reserve University experimental platform
4.2.2 數據說明及模型參數選擇
在凱斯西儲大學的數據集上,本文一共設置6 000個樣本,10種健康狀態,具體如表1所示。

表1 數據集匯總Tab.1 Summary of datasets
其中原始數據集中的每一組數據由1 200個振動數據組成,本文利用Tsfresh庫將此1 200個振動數據的全部特征進行提取,并轉換為787維數據。針對振動信號的時間序列數據本文提取出一系列常用的特征,例如:最值、均方根、峭度、波形因子等。幾種比較常見的時間序列特征計算公式,如表2所示。

表2 時域特征計算公式Tab.2 Time domain characteristic calculation formula
在凱斯西儲大學軸承數據集中多粒度掃描環節選取的滑動窗口長度為40,在多粒度掃描中隨機森林數目為2,級聯森林中每一層包含兩個隨機森林和兩個完全隨機森林,而原始的深度森林模型和改進深度森林模型的具體參數均為上述值。其中隨機森林中樹的深度為11,數量為400。
而在改進深度森林的stacking層中,所選模型分別為隨機森林、Lightgbm、XGBoost、邏輯回歸。其中隨機森林的參數選擇跟4.1節一致;Lightgbm學習率為0.03,學習器數目為50;XGBoost學習率為0.05,學習器數目為600;邏輯回歸中分類閾值為0.5。
4.2.4 與其他故障診斷模型對比
不同模型在凱斯西儲大學數據集下的分類準確性和訓練時長,如表3所示。其中DF(deep forest)是傳統深度森林模型,S-DF(stacking-deep forest)是本文所提改進后的模型。

表3 0.8訓練-總數據比例下不同診斷方法對比Tab.3 Comparison of different diagnostic methods under 0.8 training-total data ratio
在凱斯西儲大學軸承數據集的故障診斷中,現下主流的故障診斷模型如AdaBoost和KNN算法診斷準確率較低,均低于90%,而 SVM、RF和GaussianNB表現相對良好,診斷準確率均達到了95%以上。傳統的深度森林模型因為只考慮部分特征而忽視特征之間的關聯性[12-15],導致其診斷精度相對較低,僅有90.25%。本文所提的基于stacking算法的改進深度森林模型,實現了99.59%的診斷準確性,在原始深度森林基礎之上提升了9.34%,大幅提升深度森林的診斷準確性。另外,本文所提改方法的診斷性能也要優于其他主流模型,印證本文所提方法的可行性。
在診斷時間上,因為傳統故障診斷模型框架結構簡單,運算量較少,訓練時間要相對較短。而本文所提方法由于增添了網絡結構使訓練工作量加大,導致訓練時間稍長,但總體上訓練時間相差不多。
4.2.5 診斷結果分析
深度森林和改進深度森林在凱斯西儲大學軸承數據集的準確率情況,如圖7所示。圖7中:predict為模型預測的健康狀態類別;而true為實際數據的健康狀態;“0~9”為10種不同的健康狀態類別。由圖7可知,基于stacking算法改進的深度森林故障診斷方法在每一種健康狀態的診斷上都要優于傳統的深度森林故障診斷模型,故障診斷性能更為優秀。

(a) 深度森林

(b) 改進深度森林圖7 凱斯西儲大學軸承數據集下準確率混淆矩陣Fig.7 Accuracy confusion matrix under Case Western Reserve University bearing data set
通過t-sne可視化顯示原始輸入數據和兩個模型的輸出情況,如圖8所示。由圖8可知,本文所提改進模型較原始深度森林模型分類情況更佳,分類更精準。


圖8 可視化顯示Fig.8 Visual display
在診斷準確率上面本文所提方法較傳統深度森林提升幅度較大,到最終收斂本文所提方法提升了9.34%的準確率,對傳統深度森林的診斷性能優化明顯,如圖9所示。與此同時,本文所提方法收斂速度較快,大約在4~5次迭代達到收斂,充分體現本文所提方法對傳統深度森林診斷效率的提升。

圖9 凱斯西儲大學軸承數據集下準確率隨迭代次數變化Fig.9 The accuracy of Case Western Reserve University bearing data set changes with the number of iterations
4.2.6 抗噪試驗
為了進一步驗證本文所提方法的可行性,本文在原始數據集中加入-2 dB和-10 dB兩種噪聲信號,觀察幾種模型在這兩個噪聲數據集下的診斷準確率的變化,其中訓練-總數據比例為0.8。
幾種故障診斷模型在添加噪聲信號后,診斷準確率大部分都有所降低,尤其在添加-10 dB噪聲信號后下降的趨勢更為明顯,如表4所示。但本文所提方法在添加-2 dB和-10 dB噪聲下仍然有99.33%和90.92%的診斷精度,遠遠高于其他模型,展現更優良的抗噪性能。并且在同一數據集下,本文所提方法的診斷精度更高,能更好的適用于一些對于診斷性能要求更高的工程項目。以上充分印證了本文所提方法的可行性與優越性。

表4 兩個噪聲數據集下不同診斷方法對比Tab.4 Comparison of different diagnostic methods under two noisy datasets
4.3.1 試驗條件
此工況下的數據來源于千鵬公司的齒輪箱數據集,試驗臺由變速驅動電機、軸承、齒輪箱、軸、偏重轉盤等組成,如圖10所示。通過調節配重、調節部分的安裝位置以及組件的有機組合快速模擬各種故障。系統的機械部分還包括被測部件:有缺陷的軸承(外圈缺陷、內圈缺陷、滾珠缺陷);3只備件齒輪;旋轉圓盤的配重塊(在圓盤圓周邊緣每隔10°開一螺孔,用于固定和調平衡用的配重塊);加速度傳感器;速度傳感器。

圖10 千鵬公司試驗臺Fig.10 Qianpeng Company test bench
4.3.2 數據說明和模型參數選擇
在本試驗中,一共包含9個特征分別是:轉速,輸入軸X方向位移,輸入軸Y方向位移,輸出軸Y方向位移,輸入軸電機側軸承Y加速度,輸出軸電機側軸承Y加速度,輸入軸負載側軸承Y加速度,輸出軸負載側軸承Y加速度,輸出軸負載側軸承X加速度,輸出軸負載側軸承X磁電式速度。健康狀態包括正常和5類故障狀態,其中這5類故障狀態包含大齒輪故障、小齒輪故障、以及二者的混合故障,具體情況如表5所示。

表5 數據集匯總Tab.5 Summary of datasets
本文將在輸入軸電機側軸承、輸出軸電機側軸承等處傳感器測得的數據直接輸入試驗模型中進行訓練。在千鵬公司齒輪箱數據集中,本文一共設置20 000組數據,6種健康狀態即6種分類標簽,每一個樣本的特征長度為9,其中訓練-總數據比例為0.8。
在千鵬公司齒輪箱數據集中多粒度掃描環節選取的滑動窗口長度為6,剩余模型參數選擇與4.2.3節中保持一致。
4.3.3 與其他故障診斷模型對比
在千鵬公司數據中,由于數據集包含的特征數量較少,且齒輪箱故障具有多種類混合故障的特點同時本文將多個傳感器采集到的數據直接輸入到模型中訓練,去除了特征提取環節,不可避免的給故障診斷帶來了難度。因此,本文選擇的對照故障診斷模型SVM、RF、AdaBoost、KNN、GaussianNB在此數據集下的故障診斷準確率只有89.7%,82.35%,79.42%,83.45%和90.05%。但在此工況下本文所提方法有98.05%的診斷準確率比傳統的深度森林診斷模型97.80%的診斷準確率高出0.25%,且診斷性能要遠遠優于上述其他模型。
各個模型的診斷時間相對長短情況與凱斯西儲大學軸承數據集相似。同時因為輸入的特征數目和需要分類的健康狀態較少,所有模型診斷時間都相對凱斯西儲大學軸承數據集的診斷時間要少很多。千鵬公司數據下不同診斷方法對比,如表6所示。

表6 千鵬公司數據下不同診斷方法對比Tab.6 Comparison of different diagnostic methods under the data of Qianpeng Company
4.3.4 診斷結果分析
深度森林和改進深度森林在千鵬公司齒輪箱數據集的準確率情況,如圖11所示。圖11中:predict為模型預測的健康狀態類別;而true則為實際數據的健康狀態;“0~5”為6種不同的健康狀態類別。

(a) 深度森林

(b) 改進深度森林圖11 千鵬公司齒輪箱數據集下準確率混淆矩陣Fig.11 Accuracy confusion matrix under the gearbox data set of Qianpeng Company
本文所提方法和傳統的深度森林故障診斷模型在千鵬公司數據上的準確率混淆矩陣大致相同,但在第1類、第2類健康狀態診斷中,兩種模型卻出現了誤分類情況,具體分析如下:第一類健康狀態是大齒輪點蝕;而第二類健康狀態是大齒輪點蝕+小齒輪磨損的混合故障狀態,這兩種故障在一些特征的變化上面相似,在故障分類上造成干擾。
但本文所提方法在原有深度森林基礎上添加了stacking層對數據進行處理,不僅保存了原有深度森林模型的優勢,還結合stacking層多個初級學習器的優點,實現了在細微處更好的診斷效果,如圖12所示。

(a) 原始深度森林輸出

(b) 改進深度森林輸出圖12 可視化顯示Fig.12 Visual display
本文所提方法在準確率上面有所提升,同時本文所提方法與原始深度森林收斂速度均較快在第4、第5次迭代循環中達到收斂,印證本文所提方法對原始深度森林診斷效率的提升,如圖13所示。

圖13 千鵬公司齒輪箱數據集下準確率隨迭代次數變化Fig.13 The accuracy of the gearbox data set of Qianpeng Company varies with the number of iterations
在凱斯西儲大學軸承數據集中,因為只存在單一振動點特征,直接輸入模型進行訓練得到的效果并不理想。為了縮小源域和目標域之間的分布差異,得到高維空間各單視角特征集,本文在凱斯西儲大學軸承數據集中采用特征提取方法。而在千鵬公司齒輪箱數據集中,因為輸入特征數目滿足分類診斷任務,再進行特征提取工作會加大時間成本。盡管模型準確率會有所提升,但訓練時間過長成本過高,故在千鵬公司齒輪箱數據集中不采用特征提取工作,如表7所示。

表7 千鵬公司數據下引入特征提取后模型性能對比Tab.7 The model performance comparison after feature extraction is introduced under Qianpeng Companydata
由于采用特征提取方法,得到的特征數目眾多,其中的特征信息存在冗余現象。如果僅利用多粒度掃描對部分特征分析轉化特征向量會造成誤診現象。而本文所提方法結合stacking算法,綜合考慮所有特征避免信息冗余弊端,實現更好的診斷性能,從而使深度森林更適應特征數目過多的情況。因此,本文所提方法能在凱斯西儲大學軸承數據集上診斷性能提升更為明顯。
針對原始深度森林模型在多粒度掃描環節中可能會忽視輸入特征彼此之間的聯系造成診斷準確率下降的問題,本文提出了一種將stacking集成學習方法與多粒度掃描結合的改進深度森林方法,并用于旋轉機械故障診斷,通過傳動系統故障數據集對該方法進行了驗證。
(1) 通過采用凱斯西儲大學軸承數據集故障診斷比較試驗,本文所提方法有99.59%和98.05%的診斷精度,診斷性能明顯優于AdaBoost、SVM、KNN、GaussianNB等常用模型,且大幅提高了深度森林模型的診斷性能,為基于數據驅動的旋轉機械故障診斷方法提供了一條新的路徑。
(2) 在處理通過多粒度掃描和stacking層得到的特征數據時,在級聯森林中只應用了隨機森林和完全隨機森林,使用的模型過于單一,在某些情況下可能無法精準的對故障進行診斷,還須對級聯森林的缺陷做進一步優化。