戰 欣,劉卓婭
(珠海科技學院, 廣東 珠海 519041)
一直以來液壓系統的故障診斷問題都是工程技術人員的重點研究對象。液壓系統包含許多回路,系統由許多元件組成,元件之間存在時空耦合關系。因此,液壓系統在運行過程中發生故障的概率較高,故障模式具有隱蔽性、隨機性和復合性等特點[1]。例如組件之間的泄漏,摩擦變化,流體特性變化,傳感器問題和供應壓力變化,這些都會導致系統性能下降。如果未及時檢測到這些故障,將導致完全的系統故障[2]。這將造成人員生命和財產損失。
于喜金等利用BPNN對VMD方法處理后的液壓管路信號進行故障診斷,診斷準確率達99.32%[3]。Zhao等[4]采用反向傳播神經網絡算法對液壓系統進行故障診斷。Helwig等[5]運用人工神經網絡和支持向量機算法解決液壓系統故障診斷問題,最好故障診斷準確率平均值為82.6%。Peng等[6]利用DBA最近質心和隨機森林時間序列方法對與本文中液壓系統相同的數據集進行故障診斷,故障診斷準確率最高為95.11%。
綜合對比上述故障診斷算法,本研究中建立了基于PSO-SES-BPNN的故障診斷優化算法,考慮MBGD對BPNN算法性能影響機理,采用SES對MBGD進行改進;由于各種神經網絡算法的超參數問題一直是困擾研究人員的難題[7],本文中利用PSO對SES-BPNN算法的主要超參數進行了優化,同時以故障診斷準確率為評價指標尋找最優超參數取值組,最終確定了最優液壓系統故障診斷模型。
液壓系統實驗平臺數據來源于UCI上的公共數據集。液壓系統由2部分組成。
圖1(a)為主工作回路,圖1(b)為輔助冷卻-過濾回路。這2個部分通過油箱連接,系統有14個用于測量過程值的傳感器:壓力傳感器PS1~PS6,流量傳感器FS1和FS2,電機功率傳感器EPS1,振動傳感器VS1,溫度傳感器TS1~TS4。

圖1 液壓系統原理圖Fig.1 Schematic diagram of hydraulic system
本研究處理了14個傳感器數據和3個人工參數數據:Efficiency factor、Virtual cooling efficiency、Virtual cooling power,并將上述17個參數直接作為特征。
1) 同頻處理
這17個參數的采樣頻率有3種,分別是100、10、1 Hz,具體取決于基礎物理值的動態。為了方便數據分析,將17個參數都轉換成采樣頻率為10 Hz的數據集。轉換方法為:100 Hz轉換成10 Hz:從采樣周期的第一個數據開始,每10個數據求平均值構成新數據集;1 Hz轉換成10 Hz:以TS1為例,TS1t為原數據集數據值,TS1ti為轉換后新數據集數據值。
TS1t0=TS1t
(1)
(2)
2) 歸一化處理
由于傳感器類型和物理量不同,樣品的大小處于不同的水平。眾所周知,比較不同量級的數據是毫無意義的。該液壓系統17個參數的類型和物理量不同,因此樣本的大小處于不同的級別。因此,對17個參數做數值歸一化處理。歸一化區間為[0,1],歸一化為
(3)
式中:x為原始數據;xmax為原始數據的最大值;xmin為原始數據的最小值;x′為原始數據的歸一化生成值。
液壓系統的結構非常復雜,并具有多種類型的故障[5]。故障說明見表1所示。
表1中的液壓系統有4種可能發生故障的元件,每種元件又有不同程度的故障狀態,例如:泵有弱泄漏和嚴重泄漏2種故障狀態。液壓系統也可能處于同時幾個不同元件出現了不同程度的故障狀態。為了驗證各種液壓系統故障診斷模型在不同復雜程度故障問題時的故障診斷性能,將數據集整理成單故障元件、雙故障元件、3個故障元件、4個故障元件等4大類15個數據集。其中故障類型最簡單的數據集中只有2種故障和無故障共3種狀態,為三分類問題;其中故障類型最復雜的數據集共有各種故障和無故障狀態共144種。

表1 液壓系統的故障元件、模擬故障條件和故障級別Table 1 Fault component,simulated fault condition and fault level of hydraulic system
BPNN算法信息處理分為前向傳播和誤差的反向傳播2個過程[8],如圖2所示。BPNN算法的分類準確率取決于誤差反向傳播過程中,算法對權值和閾值的修正[9]。正是通過這個反向傳播修正過程,使BPNN算法的分類結果與真值更接近[10]。

圖2 BPNN算法原理圖Fig.2 Schematic diagram of BPNN algorithm
BPNN算法反向傳播的常用算法是梯度下降法,感知機權重的改進公式如式(4)所示,但該算法經常遇到鞍點問題,這將會導致BPNN算法陷入局部最優,而無法跳出[11]。隨機梯度下降法和Mini批量梯度下降法遇到鞍點時大多數情況都可以使BPNN算法跳出鞍點,但這2種方法又都會帶來新問題:每次梯度的方向不確定,可能需要很長時間才接近最小值點,而且不會收斂。在梯度的方向不確定問題上,MBGD法表現更好些。
(4)


BPNN算法與其他眾多深度學習算法一樣都有較多超參數,例如隱藏層有幾層?每個隱藏層有多少個感知機?每個感知機的權重和閥值是多少?學習率是多少?選擇哪種激活函數等。這些超參數的取值都對BPNN算法的分類準確性起著關鍵性的作用[12-13]。其中,感知機的權重和閥值可以由反向傳播的算法解決。
SES的原理是將本期觀察值和本期預測值賦予不同的權重,并求和得到下一期預測值的方法,預測公式如式(5)所示。SES一般用在時間序列的預測問題,該方法將被預測變量在時間軸上前后值之間的影響關系引入預測公式。該算法的特點是被預測變量在時間軸上的每一點的值對后面的所有點的值都有影響,由于平滑系數的迭代關系,時間軸上距離越遠的點彼此影響越小。
Ft+1=βYt+(1-β)Ft
(5)
式中:Ft+1為t+1期的指數平滑趨勢預測值;Ft為t期的指數平滑趨勢預測值;Yt為t期實際觀察值;β為平滑系數。
(6)
(7)
(8)

1) 梯度下降法的鞍點問題主要是局部最優后面多點梯度g都為零,導致BPNN算法無法跳出局部最優,把局部最優誤判斷為全局最優。SES改進的MBGD算法計算的梯度不可能連續為零,因為引入的歷史梯度值是在變的。
2) 隨機梯度下降法一輪迭代只用一條隨機選取的數據,因此,每次更新可能并不會按照正確的方向進行,參數更新具有高方差,從而導致損失函數會發生劇烈波動。MBGD算法為解決該問題,增加了一輪迭代隨機選取的數據的數量,問題有所改善,但每次梯度的方向不確定性依然存在,可能需要很長時間才能接近全局最優值。BPNN是連續迭代優化的,所以每次反向傳播對每個感知機的權重和閥值進行修正對下一輪的反向傳播一定是有影響的,SES通過引入梯度g的所有歷史值,平滑了每輪反向傳播梯度g的波動。
PSO算法是通過模擬鳥群覓食行為而發展起來的一種基于群體協作的隨機搜索算法[14]。將優化問題的搜索空間類比于鳥類的飛行空間,將每只鳥抽象為一個無質量、無體積的粒子,用以表征問題的可行解,優化問題所要搜索到的最優解則等同于鳥類尋找的食物源。文獻[15-16]中分別利用PSO優化SVM、ANN和AdaBoost算法的超參數,算法的決策質量都有一定程度的提升。
在本文中涉及的優化問題中,若SES-BPNN算法多個需要優化的超參數的一組取值為一個粒子,優化過程所要搜索到的最優解則是SES-BPNN算法模型對液壓系統故障診斷的最高準確率。
為獲取液壓系統故障診斷問題中的最佳取值,本文中利用PSO求取SES-BPNN算法的超參數,優化后的超參數即為所求最佳值。PSO對SES-BPNN算法超參數的優化流程如圖3所示。其中,gbest_parameter為全局最優粒子的參數值,pbest_parameters為局部最優粒子的參數值,best_ fitness為全局最優適應度函數值,fitness_value為每個粒子的最優適應度函數值,particle swarm為當前全部粒子的所有參數值。

圖3 PSO-SES-BPNN算法流程圖Fig.3 Flow chart of PSO-SES-BPNN algorithm
根據粒子群算法機理,SES-BPNN算法需要優化的超參數的一組取值為一個粒子,優化過程所要搜索到的最優解則是液壓系統故障診斷準確率的最高值。為了確保粒子在值域空間分布的廣度,粒子群取值30個粒子,初始化時30個粒子對應的超參數均為隨機取值。粒子的每輪優化都會根據全局最優和局部最優調整運動方向和運動距離。PSO共進行20輪粒子優化,全局最優粒子會被保存下來。
1) 確定超參數優化對象
綜合考慮SES-BPNN算法的各超參數對算法性能影響的程度,確定超參數優化對象,見表2所示。

表2 PSO-SES-BPNN算法的超參數取值范圍Table 2 Value range of hyperparameters of PSO-SES-BPNN algorithm
2) 不同模型診斷過程
考慮采用相同算法解決不同的分類問題時最優模型的差別性,其本質是模型之間的參數不同,比如BPNN算法模型的隱藏層數量不同、各個隱藏層的感知機數量不同、學習率不同、激活函數不同等。一般情況下研究人員訓練算法模型初始階段要么隨機賦值,要么使用Python語言自帶庫的參數默認值。因此,本文中所建立的液壓系統故障診斷模型的超參數選取了Python語言自帶sklearn庫中MLPClassifier的參數默認值。PSO優化的SES-BPNN算法除了表2中需要優化的超參數,也選取了MLPClassifier的參數默認值。診斷過程如圖4所示。

圖4 診斷過程框圖Fig.4 Flow chart of analysis
為證明優化模型的有效性,本文中采用了與文獻[4-6]中的數據,利用BPNN、SES-BPNN和PSO-SES-BPNN等3種算法對15種不同故障復雜度數據集進行訓練和測試。對比3種算法模型的故障診斷性能,并將最優模型的故障診斷準確率與同數據源的文獻研究成果進行比較。BPNN、SES-BPNN和PSO-SES-BPNN等3種算法的實驗結果如表3和表4所示。

表3 最優故障診斷模型參數值Table 3 Parameter values of optimal fault diagnosis model

表4 3種算法測試結果統計Table 4 Statistics of test results of three algorithms

續表(表4)
表3為針對144種故障狀態的數據集訓練得到的PSO-SES-BPNN算法的最優故障診斷模型參數。
表4為BPNN、SES-BPNN和PSO-SES-BPNN等3種算法對15種不同故障復雜度數據集的訓練模型的統計結果,其對比結果如圖5所示。

圖5 3種算法測試結果對比圖Fig.5 Comparison diagram of test results of three algorithms
由上述3種算法的實驗結果可以看出,在相同的超參數,相同的數據集,相同的迭代次數,SES-BPNN算法模型對不同復雜度的15個故障數據集的診斷準確率都高于BPNN算法模型,表明了在不同復雜度的故障診斷問題中SES-BPNN算法都先于BPNN算法找到更優秀的模型。而且,2種算法的差別只在SES對BPNN算法反向傳播中MBGD算法的改進。因此,可判斷SES對MBGD算法的每次梯度的方向不確定問題的改善是有效的,算法的收斂性更好。根據表4的實驗結果,PSO-SES-BPNN算法模型的故障診斷準確率遠高于未優化超參數的SES-BPNN算法模型,可以得知,在15種不同故障復雜度數據集的故障診斷訓練過程中PSO都為SES-BPNN算法找到了較優的超參數取值,確定了較適合的故障診斷模型。
同時表4中的實驗結果表明,針對17個特征變量,相同的算法模型在診斷不同的液壓元件故障問題時性能表現差別較大。如SES-BPNN算法診斷冷卻器故障問題的準確率是0.793 2,診斷泵故障問題的準確率是0.739 4,說明冷卻器不同程度的故障在17個特征變量上產生的數值變化較顯著,更容易被模型診斷出來。因此,在引入PSO優化SES-BPNN算法時,冷卻器故障診斷問題找到了非常好的故障診斷模型,其故障診斷準確率高達0.998 7。但有時又不完全符合上面的規律,如BPNN算法模型和SES-BPNN算法模型表現較差的泵故障診斷問題,在引入PSO優化SES-BPNN算法時,反倒找到了比蓄能器故障診斷模型更優的模型。上述2種現象說明,判斷不同元件不同程度的故障在17個特征變量上產生的數值變化是否顯著,還要以BPNN算法模型和SES-BPNN算法模型的診斷結果為準。其根本原因在于上述2個模型的訓練過程沒有引入隨機因子,而PSO-SES-BPNN算法模型訓練過程則不同,優化超參數的初始值就完全是隨機的,如果第一步就找到了較優的超參數,那么之后訓練出更加優質的故障診斷模型的概率必然會大大提高。
由于本文中采用了與文獻[4-6]中相同的實驗數據,結果對比見表5—表7。

表5 與文獻[4]中的結果對比Table 5 Comparison with the results in the literature [4]

表6 與文獻[5]中的結果對比Table 6 Comparison with the results in the literature [5]

表7 與文獻[6]中的結果對比Table 7 Comparison with the results in the literature [6]
由對比結果可知,本文中建立的模型診斷準確率比文獻[4]中的BPNN算法高24.5%,較文獻[5]中的ANN算法平均高15%,遠高于文獻[6]中的NC-DBA算法診斷準確率,表明模型性能優勢顯著,更加有利于提高故障診斷效率。
針對液壓系統復雜多變的故障問題,本研究以反向傳播神經網絡算法為基礎,以優化模型超參數為手段,建立了提高液壓系統的故障診斷準確率的有效模型,結論如下:
1) SES對MBGD算法的鞍點和每次梯度的方向不確定問題的改善是有效的,算法的收斂性更好。
2) PSO可以為SES-BPNN算法找到優質的超參數取值,與同類型研究相比,優化后的SES-BPNN算法的故障診斷模型對各種不同復雜度的故障數據集的平均故障診斷準確率可達98%,診斷性能大幅提升。