李時(shí)奇,趙東標(biāo),申珂楠,豐嬴政
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
智能故障診斷是未來(lái)飛機(jī)液壓系統(tǒng)故障診斷發(fā)展的趨勢(shì)之一[1-2]。國(guó)內(nèi)通常采用小波包分解或者信息熵等方法對(duì)復(fù)雜的液壓系統(tǒng)壓力信號(hào)進(jìn)行特征提取,然后輸入BP神經(jīng)網(wǎng)絡(luò)或者支持向量機(jī)等學(xué)習(xí)器進(jìn)行故障診斷分類[3-5]。這些特征提取的方法對(duì)人的經(jīng)驗(yàn)要求比較高:不具備通用性;對(duì)于多傳感器壓力信號(hào)難以有效融合;單一模型有較大過(guò)擬合風(fēng)險(xiǎn)。
針對(duì)上述問題,提出了一種卷積神經(jīng)網(wǎng)絡(luò)(CNN)特征提取加多模型融合的故障診斷方法。使用一維多通道CNN可以直接接收多傳感器一維壓力時(shí)間序列,從而實(shí)現(xiàn)多傳感器融合。選取少量數(shù)據(jù)對(duì)CNN進(jìn)行有監(jiān)督訓(xùn)練提取特征。再用提取出的特征訓(xùn)練如線性多分類、決策樹、支持向量分類、k鄰近等學(xué)習(xí)器分別對(duì)其進(jìn)行故障診斷。最后使用Stacking技術(shù)對(duì)這些模型進(jìn)行融合。使用Amesim軟件對(duì)典型飛機(jī)液壓系統(tǒng)建模并進(jìn)行故障仿真,驗(yàn)證了算法效果。結(jié)果表明,本文算法在準(zhǔn)確率和訓(xùn)練用時(shí)上更優(yōu)。
由于飛機(jī)液壓系統(tǒng)的壓力信號(hào)是一維時(shí)間序列曲線,而且不同位置的多個(gè)傳感器可以采集多條曲線,為同時(shí)將多個(gè)傳感器的一維時(shí)間序列輸入CNN,采用一維多通道CNN。網(wǎng)絡(luò)中的所有卷積層、池化層均使用一維結(jié)構(gòu)。
設(shè)Hl為第l層的輸入特征圖,S為卷積操作的結(jié)果,Hl+1為卷積層的輸出特征圖,K為卷積核,i代表特征圖上的索引,p代表卷積核上索引,c為通道的索引,Hl(∶,c)為通道c的特征圖,b為偏移量,f(x)為激活函數(shù),則一維多通道卷積公式如下[6]:
S(i)=∑c∑pHl(i+p,c)K(p)
(1)
Hl+1=f(S+b)
(2)
池化操作分為最大池化和均值池化。設(shè)第l層為池化層,k為池化窗口的大小,p代表池化窗口上的索引。最大池化和均值池化操作公式分別為式(3)和式(4):
(3)
(4)
對(duì)數(shù)幾率回歸(logistic regression, LR)是一種用線性回歸模型的預(yù)測(cè)結(jié)果去逼近真實(shí)標(biāo)記的對(duì)數(shù)幾率,雖然名字是“回歸”,實(shí)際上是一種分類算法。設(shè)x為輸入向量,y為輸出標(biāo)記,w和b為待學(xué)習(xí)的權(quán)重和偏置。公式如下:
(5)
當(dāng)y>0.5時(shí)預(yù)測(cè)為正類,y<0.5時(shí)預(yù)測(cè)為反類,y=0.5時(shí)可以隨機(jī)預(yù)測(cè)。通過(guò)OvO(One vs. One)或者OvR(One vs. Rest)等拆分策略可以推廣到多分類[7]。
決策樹通過(guò)樹型結(jié)構(gòu)對(duì)樣本進(jìn)行學(xué)習(xí)。樹的節(jié)點(diǎn)代表某個(gè)屬性,該節(jié)點(diǎn)下的路徑代表屬性的不同取值。每個(gè)葉節(jié)點(diǎn)代表某個(gè)類。隨機(jī)森林(random forest, RF)[8]是多個(gè)決策樹通過(guò)bagging策略集成的, RF能引入隨機(jī)性,有效減少過(guò)擬合。
支持向量機(jī)(support vector machine, SVM)通過(guò)尋找一個(gè)超平面劃分兩類樣本,離超平面最近的幾個(gè)訓(xùn)練樣本稱為“支持向量”,兩個(gè)不同類別的支持向量到超平面距離和稱為“間隔”,支持向量機(jī)算法試圖找到間隔最大的超平面來(lái)劃分不同類[9]。SVM同樣可以使用拆分策略推廣到多分類。
k鄰近算法(k- nearest neighbor,KNN)的訓(xùn)練過(guò)程就是保存訓(xùn)練集所有數(shù)據(jù)。當(dāng)新的樣本輸入時(shí),計(jì)算訓(xùn)練集中距離它最近的k個(gè)樣本,根據(jù)這k個(gè)樣本的類別來(lái)決定新樣本的類別[10]。
圖1為算法流程示意圖。首先對(duì)典型飛機(jī)液壓系統(tǒng)進(jìn)行Amesim建模,通過(guò)改變某些部件參數(shù)來(lái)模擬飛機(jī)液壓系統(tǒng)的常見故障。采集不同故障狀態(tài)以及正常狀態(tài)的壓力信號(hào),進(jìn)行歸一化處理并通過(guò)劃窗重采樣進(jìn)行數(shù)據(jù)集增強(qiáng)。將訓(xùn)練集分為A和B兩個(gè)子集。用A集數(shù)據(jù)對(duì)CNN進(jìn)行有監(jiān)督訓(xùn)練。再將數(shù)據(jù)集B輸入訓(xùn)練好的CNN,提取中間層的特征,將中間提取出的特征輸入其他學(xué)習(xí)器進(jìn)行訓(xùn)練。之后將多個(gè)學(xué)習(xí)器的結(jié)果用Stacking融合技術(shù)融合。最后將測(cè)試集輸入訓(xùn)練好的模型,驗(yàn)證算法效果。
圖1 算法流程示意圖
CNN各個(gè)層的結(jié)構(gòu)如表1所示。CNN可以接受一維多通道數(shù)據(jù),可將不同飛機(jī)液壓系統(tǒng)中不同傳感器獲取到的一維壓力時(shí)間序列輸入CNN。表中filter指卷積核(又叫濾波器)或者池化濾波器。filter大小1100指窗口大小為100的卷積核在特征圖上滑動(dòng),步長(zhǎng)指的是filter在特征圖上滑動(dòng)步長(zhǎng)。
表1 CNN各層參數(shù)
用A集監(jiān)督訓(xùn)練CNN,目的是讓CNN的每一層獲得不錯(cuò)的權(quán)重從而使網(wǎng)絡(luò)具備提取抽象特征能力。將B集輸入到訓(xùn)練好的網(wǎng)絡(luò),提取全連接層2尺寸為128的特征。此時(shí)向量的總數(shù)據(jù)維度從1 800降到了128,此時(shí)的特征已經(jīng)過(guò)濾掉一些無(wú)效信息并提取到有用的抽象特征,能極大地加快訓(xùn)練速度,簡(jiǎn)化訓(xùn)練難度,提高訓(xùn)練準(zhǔn)確率。
Stacking模型融合技術(shù)[11]是一種兩級(jí)的模型融合技術(shù),將初級(jí)學(xué)習(xí)器學(xué)習(xí)到的分類結(jié)果作為次級(jí)學(xué)習(xí)器的輸入,再進(jìn)行一次學(xué)習(xí)。
Stacking模型融合技術(shù)示意圖如圖2、圖3所示。首先需要每個(gè)學(xué)習(xí)器使用k折交叉驗(yàn)證(圖中k=5)。將原訓(xùn)練集分為k折,用k-1折訓(xùn)練,預(yù)測(cè)剩下的1折,預(yù)測(cè)結(jié)果作為次級(jí)學(xué)習(xí)器的輸入,重復(fù)k次,每次用不同的折劃分。對(duì)于測(cè)試集,將k次的結(jié)果取平均值。用不同初級(jí)學(xué)習(xí)器重復(fù)相同操作,最終次級(jí)學(xué)習(xí)器的輸入特征為n個(gè)初級(jí)學(xué)習(xí)器的預(yù)測(cè)結(jié)果(圖中n=4)。用次級(jí)學(xué)習(xí)器對(duì)新生成的訓(xùn)練集進(jìn)行訓(xùn)練,預(yù)測(cè)新測(cè)試集,得到最終結(jié)果。
圖2 Stacking融合每個(gè)學(xué)習(xí)器訓(xùn)練步驟
圖3 Stacking融合多學(xué)習(xí)器融合步驟
由于不同學(xué)習(xí)器的學(xué)習(xí)原理有所差異,通過(guò)融合可以互相彌補(bǔ)不足,提高總準(zhǔn)確率的同時(shí)減少過(guò)擬合的風(fēng)險(xiǎn)。
圖4為典型飛機(jī)液壓系統(tǒng)Amesim模型。為簡(jiǎn)化模型,只保留液壓系統(tǒng)核心部件以及一個(gè)用于故障診斷的作動(dòng)器,其余作動(dòng)器均用“液壓用戶”代替。
圖4 典型飛機(jī)液壓系統(tǒng) Amesim模型
表2為Amesim模型中各元件參數(shù)以及含義[12]。
表2 飛機(jī)液壓系統(tǒng)Amesim模型參數(shù)
系統(tǒng)故障模擬方法如下:通過(guò)在泵兩端并聯(lián)溢流閥模擬泵泄漏;改變油濾等效孔徑參數(shù)模擬油濾堵塞;改變液壓油中氣體含量模擬液壓油污染;用伺服閥和作動(dòng)器直接串聯(lián)溢流閥模擬伺服閥堵塞;改變作動(dòng)器內(nèi)泄漏參數(shù)模擬作動(dòng)器內(nèi)泄漏。5種故障狀況加上正常情況共6種類別,類別標(biāo)號(hào)和類別編碼如表3所示。
表3 故障類別表
取仿真時(shí)長(zhǎng)為18s,提取圖4中A、B、C 3處的壓力信號(hào)進(jìn)行故障診斷。設(shè)采樣周期為0.01s,取長(zhǎng)度為6s的曲線用于故障診斷。將6s的窗口在18s的曲線上滑動(dòng)取點(diǎn)來(lái)增強(qiáng)數(shù)據(jù)集。通過(guò)在正?;蛘吖收戏秶鷥?nèi)微調(diào)參數(shù)多次仿真可以增加數(shù)據(jù)量。最終每個(gè)樣本含3條(A、B、C 3個(gè)位置)6s的曲線,即原始輸入特征的尺寸為16003。
圖5為液壓油污染情況以及正常情況下泵出口壓力曲線對(duì)比圖。由圖可知液壓油氣體含量上升導(dǎo)致的污染會(huì)使壓力曲線滯后。
圖5 故障與正常情況壓力曲線對(duì)比圖
若用在A集上訓(xùn)練的CNN直接預(yù)測(cè)B集的故障診斷結(jié)果,準(zhǔn)確率僅為84.3%,這是因?yàn)锳集只占總數(shù)據(jù)集的很少一部分,但是足夠提取出有效的特征用于下一步訓(xùn)練。
圖6為A集大小對(duì)CNN訓(xùn)練時(shí)間以及最終準(zhǔn)確率的影響。圖7為從CNN不同中間層提取的特征對(duì)后續(xù)訓(xùn)練時(shí)間以及最終準(zhǔn)確率的影響。由圖可知,為使準(zhǔn)確率高的同時(shí)訓(xùn)練時(shí)間盡可能少, A集大小取20%,提取CNN中間層的卷連接層2作為特征進(jìn)行下一步訓(xùn)練。
圖6 A集占比對(duì)結(jié)果的影響
圖7 CNN不同層特征訓(xùn)練結(jié)果
表4為各學(xué)習(xí)器用CNN提取到的特征進(jìn)行訓(xùn)練(表中i)與直接用原始輸入壓力曲線訓(xùn)練(表中ii)的對(duì)比。由表可知,經(jīng)過(guò)CNN提取到的特征能極大加快訓(xùn)練速度,提高故障診斷的準(zhǔn)確率,降低模型大小。
表4 用特征與用原始數(shù)據(jù)訓(xùn)練對(duì)比
表5為用不同次級(jí)學(xué)習(xí)器進(jìn)行Stacking融合的比較
以及和直接用簡(jiǎn)單投票法融合的準(zhǔn)確率比較??梢钥吹?,使用LR作為次級(jí)學(xué)習(xí)器準(zhǔn)確率最高。
表5 不同模型融合方法比較
圖8為Stacking模型融合后與各個(gè)模型的對(duì)比。由圖可知,融合后的模型比所有原模型的準(zhǔn)確率都要高。
圖8 Stacking模型融合與各個(gè)模型對(duì)比圖
表6為CNN特征提取加Stacking模型融合與直接用CNN訓(xùn)練全部數(shù)據(jù)集進(jìn)行故障診斷的對(duì)比。由表可知,在準(zhǔn)確率方面多模型融合略高,在訓(xùn)練耗時(shí)上多模型融合更少,但是所占的空間更大。
表6 兩種方法效果對(duì)比
本文采用CNN特征提取加Stacking多模型融合技術(shù)對(duì)飛機(jī)液壓系統(tǒng)進(jìn)行了故障診斷。使用Amesim軟件對(duì)典型飛機(jī)液壓系統(tǒng)建模并進(jìn)行故障仿真來(lái)驗(yàn)證算法效果,結(jié)果如下:
1)使用少量數(shù)據(jù)監(jiān)督訓(xùn)練CNN也能提取出不錯(cuò)的中間特征,用提取出的特征訓(xùn)練比用原始輸入信號(hào)訓(xùn)練在各方面都有較大提升。
2)Stacking多模型融合準(zhǔn)確率高于各個(gè)單一模型。
3)相比于直接用CNN訓(xùn)練全部數(shù)據(jù)集進(jìn)行故障診斷,CNN特征提取加多模型融合訓(xùn)練速度明顯更快,準(zhǔn)確率也有少量提升。