黃 亮 劉君強 張振良 張 曦
(南京航空航天大學民航學院 南京 211106)
發動機故障診斷相關研究分為基于知識規則相關研究的診斷[1-3]、基于物理模型的診斷[4-5]和基于數據驅動的人工智能算法診斷[6-7]三類,在基于數據驅動的人工智能算法診斷研究中由于人工神經網絡可以自適應逼近復雜函數的優點,成為故障診斷領域所廣泛采用的算法.用人工神經網絡進行故障檢測的可靠性與網絡的訓練算法以及網絡類型有著緊密的聯系.現有故障檢測相關研究中采用了如下的人工神經網絡:學習向量化(learning vector quantization,LVQ)網絡[8]、反向傳播(back-propagation,BP)網絡[9]、Elman神經網絡[10]、概率神經網絡[11]等.目前研究中所使用的這些神經網絡大多都是結構較簡單的淺層網絡,訓練過程中特別容易產生局部最優解.此外,這類網絡由于結構簡單,學習能力不強,泛化性差,容易導致故障檢測不準確.
隨著計算機性能與智能學習算法領域的不斷發展與創新,科學家們提出了與傳統“淺層”學習方法相對應的“深度學習”方法.深度學習方法主要指的就是具有多隱藏的神經網絡,利用各種算法來訓練擬合樣本,充分挖掘樣本特征,使分類的結果更可靠.深度學習以其強大的特征學習能力,在圖片識別與分類、語音識別、自動駕駛等諸多領域快速發展[12-14].深度學習技術中主要使用的網絡有:DBN網絡、多層反饋循環網絡、稀疏自動編碼器等.而深度學習中的DBN網絡,以其強大的基于概率生成的樣本特征學習能力在故障診斷相關領域使用的越來越頻繁.為了從受可變運行條件和背景噪聲影響的振動信號中檢測故障,Shao等[15]提出了一種新的優化DBN網絡用于軸承故障診斷,該優化后的DBN網絡具有更高的穩定性與分類精度.車暢暢等[16]用深度信念網絡求出航空發動機故障分類置信度,然后對多次故障分類結果進行決策融合.
上述研究豐富了航空發動機故障診斷的研究,但卻沒有考慮到航空發動機監測數據存在的過擬合、維數災難等問題.由于航空發動機監測參數多且長期運行在復雜多變的高溫高壓環境中,參數監測值之間會存在著相關性.針對數據的過擬合、維數災難和淺層神經網絡診斷精度不高等問題,文中提出了基于KPCA分析和深度信念網絡的發動機故障檢測方法,其中KPCA分析方法能有效減少樣本數據維度,有效消除數據間的非線性關聯.把經KPCA分析提取后的航空發動機監測數據以及對應的故障類型輸入到DBN網絡模型中,充分學習提取出樣本特征.
由于各種因素的影響,傳感器監測數據會出現誤差,并且存在誤差的數據會使最終的模型訓練和模型診斷的準確性降低.統計平滑法是建立在數理統計基礎上的一種平滑方法,用該方法可以減少測量的誤差.
統計平滑法的定義為
(1)

在一組原始數據集中,與其他點存在較大程度差異的點記作為離群點.由于離群點與其他點存在顯著區別,其中可能會包含有重要的信息,所以我們不對離群點進行平滑處理.
將N個監測數據按照測量時間先后順序進行排列,構成一個符合正態分布的隨機數據集.

由于發動機傳感器監測參數之間單位不同,為了消除各個參數不同量綱的影響,需要對經平滑法處理后的數據進行歸一化處理,歸一化公式為
(2)

1.3.1核主成分分析方法介紹
由于航空發動機監測參數多且長期運行在復雜多變的高溫高壓環境中,參數監測值之間會存在著非線性相關性.為消除數據之間的非線性關聯性,降低數據維度,提出KPCA分析法.KPCA方法關鍵在于利用非線性映射函數把具有關聯性的數據集映射到了高維特征空間中,然后再進行傳統主成分分析,并用核矩陣替代高維特征空間中內積矩陣.
1.3.2核函數介紹
設函數φ(·)是把存在關聯性的低維監測數據映射到高維特征空間中的非線性函數,低維特征空間中的向量xi經過函數φ(·)映射后的向量為φ(xι).若在低維空間中存在函數k(·)符合如下要求k(xi,xj)=φ(xi)T·φ(xj),則稱該函數k(·)為核函數.如果高維空間中的矩陣K=XTX滿足式(3),即矩陣K中的元素φ(xi)T·φ(xj)均使用核函數表示,則稱矩陣K為核矩陣.
(3)
式中:k(·)為核函數;Φ為映射到高維空間中的樣本矩陣;n表示樣本個數.
由于不知道函數φ(·)具體形式是什么,在對高維特征空間中的數據進行主成分提取時,通過核矩陣來替換高維特征空間中的內積矩陣,只需要對K進行分析.目前主要使用以下五種核函數:
1) 線性核函數
(4)
2) 高斯核函數
(5)
3) 多項式核函數
(6)
4) 拉普拉斯核函數
(7)
5) Sigmoid型核函數
(8)
式中:σ,β和θ為函數表達式中的參數;d為冪指數.
1.3.3核主元計算
根據文獻[17],能夠把核主成分的提取轉變成計算核矩陣特征值及其特征向量相關的問題.核主成分分析計算流程如下
1) 對觀測參數x=[x1,x2,…,xm]′進行n次的監測,監測得到的樣本矩陣為X∈Rn×m.通過分析選擇符合要求的核函數,并根據核函數和樣本矩陣求得對應的核矩陣K
(9)
2) 將核主元分析是在假設向量φ(xi)為0均值的前提條件下進行的,由于函數φ(·)的具體表現形式沒有給出,因此,不能對核矩陣直接進行中心化處理.通過以下公式中心化矩陣K.
(10)


4) 求Φ的核主元向量ti:
(11)
式中:Φ為映射到高維空間后的樣本矩陣.
5) 計算方差貢獻率和累計貢獻率.
(12)
式中:λi為主元i的方差;ξi為主元i的方差貢獻率;ηk為k個主元累計方差貢獻率.
深度信念網絡(deep belief nets,DBN)一般是由多于一個的無監督的受限玻爾茲曼機(restricted boltzmann machines, RBM)和最后一層有監督的BP神經網絡組成.
2.1.1能量函數和概率分布
RBM模型是基于能量的模型,一個RBM的能量可以定義如下.
(13)
式中:vi,hj為顯層中輸入值與隱層中輸出值;wij為可見層與隱藏層的連接權值;ai為可見層的偏置,bj為隱藏層的偏置.
由能量函數得到v,h的聯合概率分布為
(14)

由式(14)可知,v,h的邊緣概率分布P(v|θ),P(h|θ)為
(15)
(16)
隱層和顯層節點被激活(即狀態為1)的概率為

由于RBM 具有層內神經元之間無連接的特點,因此當已知某層神經元的狀態時,則另外一層中的神經元狀態分布相互獨立,即
(19)
(20)
2.1.2RBM的訓練
RBM具體的訓練步驟如下.
步驟1根據樣本數據,設定RBM中顯層和隱層有nv和nh個神經元.設定有關參數wij、ai與bj初始值,設定相應學習率、RBM循環重構誤差err以及循環迭代的最大值.
步驟2將訓練樣本輸入到可見層v,利用式(17)計算出隱層中所有節點被激活的概率P(hj=1|v),使用吉布斯采樣法抽取一個隨機數,假如該隨機數小于該節點被激活的概率,則激活該節點,否則不激活.
步驟3利用式(18)求得所有顯層中節點被激活的概率,用吉布斯采樣法抽取一個隨機數,假如該隨機數小于該節點被激活的概率,則激活該節點,否則不激活.
步驟4將求得的vk與初始v進行比較,計算RBM的循環重構誤差err=‖vk-v‖,當誤差小于預先設定的誤差值時,把hk作為下一層RBM的顯層繼續訓練.如果重構誤差大于設定的允許重構誤差值時則重復步驟2,3,達到設置的最大迭代次數的時候停止當前RBM的訓練,繼續下一層訓練.
循環迭代時,使用以下公式更新連接權值以及偏置
Wk=Wk-1+η(P(hk-1|vk-1)vk-1-P(hk|vk)vk)
(21)
bk←bk-1+η(vk-1-vk)
(22)
ck←ck-1+η(hk-1-hk)
(23)
式中:vk和hk為進行第k次迭代時顯層及隱層偏置;Wk為進行第k次循環迭代時的權值.
DBN是由多個無監督的RBM和一層有監督的BP神經網絡組成.訓練完全部RBM后,最后還需根據BP算法,結合最后的樣本標簽微調整體DBN的相關參數.
DBN的具體訓練過程如下
步驟1把數據依次輸入第一個RBM的顯層中,利用2.1.2步驟訓練RBM,通過貪婪逐層學習,逐步地完成所有RBM的學習訓練.
步驟2在DBN 的頂層設置一個神經網絡來完成分類,使用反向傳播算法,結合有標簽的樣本對整體DBN網絡進行參數的微調.
基于KPCA分析的深度信念網絡模型見圖1.

圖1 基于KPCA和DBN的網絡模型
根據航空公司的發動機故障診斷的經驗,文中選取七個主要的發動機監測參數分別為作為表征發動機健康狀況的關鍵參數,選取的參數及其描述見表1.
選取了實際運行過程中2中典型的發動機故障,表2為選取的各運行狀態下的數據.
首先,使用1.1的統計平滑法和1.2的數據歸一化方法來預處理樣本數據.然后,使用KPCA方法來減少預處理后數據的維度.分析結果見表3.

表1 關鍵參數

表2 樣本數

表3 核主成分分析結果
由表3可知,可以保留主元1和主元2,因為它們的累計貢獻率達到了99.523 4%,已經具備了極大部分的樣本信息,并根據式(11)計算主元1和2的主元向量.
3.2.1深度信念網絡參數的設置
在DBN輸入節點與輸出節點數已知的前提下,經過多次改變隱藏層層數和隱層節點數,進行訓練和調試,最終確定網絡結構為[2 4 4 3].選取的2個主元向量作為網絡的輸入,隱藏層設置為2層,每層包含4個神經元,輸出層有3個神經元,對應于發動機的運行狀態種類數,各運行狀態編碼見表4.

表4 運行狀態的編碼
3.2.2訓練結果及訓練過程
對DBN的訓練主要是為了使最后網絡的輸出結果與訓練樣本的標簽盡可能一致,讓訓練后的網絡能具備對數據的分類能力,根據3.2.1的DBN網絡相關參數的設置,將學習誤差置為0.01,循環迭代的閾值置為1 200.圖2為DBN網絡循環迭代中的誤差.

圖2 迭代誤差
由圖2中的誤差曲線可知,起始誤差在0.12左右,隨著迭代的不斷進行,訓練誤差快速下降,且下降速度由快到慢,最后誤差擬合值趨于0.062.
使用獨立于訓練樣本的320個測試樣本來測試最終DBN網絡的預測分類性能,并且得到的性能測試結果見表5.

表5 測試結果
由表5可知,最終的DBN網絡對正常狀態下的發動機識別正確率最高,為96%,對風扇故障的識別率最低,為85%.
為了測試文中提出的KPCA+DBN故障檢測方法與其它方法的優劣性,在相同環境下將文中方法與BP算法、DBN算法以及KPCA+BP算法作對比.比對四種方法故障檢測的準確率和訓練運行時間,比對結果見表6.

表6 四種算法的性能對比
由表6可知,文中所采用的基于KPCA+DBN組合方法的正確率為 92.6%,比其它三種算法略高.主要原因是通過KPCA算法降低了輸入數據的維度,降低了數據間的過耦合性,同時深層神經網絡比淺層神經網絡具有更好的逼近復雜函數的能力,能夠使故障檢測的準確性更高.
從花費時間來看,基于核主成分分析的深度信念網絡會比基于核主成分分析的BP網絡多花費了約12 s的時間,但是比單純的深度信念網絡少花費了約11 s時間.主要是因為DBN網絡的結構復雜,相應的訓練時間則更長.經KPCA降維后的數據,由于輸入節點更少,則比單純的深度信念網絡的學習時間更少.
KPCA分析法能有效減少樣本數據的維數,消除數據之間的非線性關聯,而DBN網絡是基于概率充分學習樣本的特征,KPCA+DBN組合方法用于故障檢測的有效性高于傳統淺層BP 網絡方法,但學習所花時間比較長.