陳虹潞,黃向華
(南京航空航天大學能源與動力學院,南京210016)
現代航空發動機數字控制系統主要由傳感器、執行機構及電子控制器等組成[1],其中,傳感器和執行機構組件繁雜,容易發生故障,是控制系統中十分重要又脆弱的環節,因此必須對傳感器和執行機構進行實時故障診斷,從而采取必要的容錯控制措施以保障發動機工作性能不受影響。
故障診斷方法主要有3種:基于模型的、基于人工智能的和基于數據驅動的方法。基于模型的故障診斷方法從1977年被Spang等[2]提出,目前已較為成熟。在NASA和MTU合作進行的關于先進智能發動機傳感器和執行器性能要求的研究中所提出的未來智能發動機發展的可行技術中,就包括用于提高發動機的氣路部件性能和延長發動機的在役壽命的通過基于模型的控制和監控技術[3]?;谀P偷姆椒☉冒l動機部件級模型作為機載模型,通過擴展卡爾曼濾波器(Extended Kalman Filter,EKF)自適應跟蹤發動機感測信號的輸出,在發動機發生故障時,EKF的信號估計值偏離發動機實際信號值產生殘差,通過計算對殘差進行分析即可診斷發動機的故障類型[4]。
近年來人工智能算法興起,不少學者將BP神經網絡、徑向基網絡、自聯想網絡、支持向量機等算法應用于故障診斷中[5-8],其中基于梯度訓練的神經網絡算法泛化能力較差,易陷入局部最優;而支持向量機參數選擇復雜,訓練速度慢,不適于故障診斷的工程應用。Huang等[9]提出的極限學習機(Extreme Learning Machine,ELM)算法是1種新型前向神經網絡算法,無需迭代,學習速度快、精度高且易于調參;隨著核函數的引入,ELM獲得了更高精度[10]。Wong等[11]提出具有深度學習網絡結構的多層核極限學習機(Multilayer Kernel Extreme Learning Machine,ML-KELM);逄珊等[12]將其應用于航空發動機的氣路部件故障診斷中,獲得了更優的診斷精度。但深度學習結構通過多層網絡逐層進行輸入數據的特征提取,計算耗時嚴重,對需要高實時性的發動機故障診斷來說是不容忽視的缺陷。
針對深度核極限學習機的訓練時間過長的不足,本文將Deng等[13]提出的核極限學習機的簡約方法與深度學習網絡結構結合,提出簡約的深度核極限學習機(Reduced Deep Kernel Extreme Learning Machine,RDK-ELM)。該算法利用隨機支持向量縮短算法訓練時間,并保留深度學習網絡結構的高精度優點,對EKF產生的殘差數據進行模式識別分類,實現航空發動機控制系統傳感器與執行器的故障診斷。
極限學習機是Huang等提出的1種新的單隱層前向神經網絡的快速學習方法。在ELM算法中,給定訓練樣本:{(xi,ti)∈Rd,ti∈R,其中,N 為樣本數量,d為維數,m為輸出節點數,對于如本文所述的故障診斷分類問題,m為類別數。單隱層前向神經網絡的ELM輸出函數為

式中:L 為隱藏節點的數目;β=[βi,…,βL]T,為輸出權重向量;h(·)為激活函數;ai為隱藏節點的權重;bi為隱藏節點的偏差。
式(1)寫成矩陣形式為


輸出權值β可通過尋找給定系統的最小二乘解獲得,即求解式(2)的最小范數的最小二乘解為

式中:C為正則化系數。
如果激活函數h(·)是1個隱函數,則可以對ELM算法應用Mercer條件,并引入核矩陣[10]

即對任意每2個訓練樣本之間求核函數

將式(6)、(7)與式(5)代入式(1)中,可以得到核形式的輸出函數
這樣就得到了核極限學習機KELM。
多層核極限學習機ML-KELM是將核方法引入到多層極限學習機的1種算法。多層極限學習機[14](Multilayer Extreme Learning Machine,ML-ELM)與深度置信網絡(Deep Belief Net-work,DBN)相似,DBN是由多個受限玻爾茲曼機[15](Restricted Boltzmann Machaine,RBM)疊加而成,逐層提取特征獲得更抽象的概念。ML-ELM由多個極限學習機自編碼器(ELM Auto-Encoder,ELM-AE)疊加而成,但相比于 DBN,ML-ELM不需要對網絡權值進行整體微調,且無需迭代,因此訓練速度較DBN有顯著提高。
ML-KELM由多個核極限學習機自編碼器(Kernel Extreme Learning Machine Auto-Encoder,KELM-AE)構成,KELM-AE 的結構如圖1所示。
文獻[11]中給出了ML-KELM的詳細推導過程。類似于式(7)的核函數映射計算,KELM-AE的輸入矩陣x(i)通過核函數κ(i)(xk,xj)被映射為核矩陣Ω(i),核函數可以選用RBF核函數中,σi為核參數。計算得到核矩陣后,輸入向量的特征提取可以表示為


式中:g(·)為激活函數,與式(1)中的 h(·)都是激活函數,可從多種激活函數類型中根據實際情況與實際問題自定義選取,在不同的算法中可以不相同。
在ML-KELM的訓練過程中,輸入數據由多層KELM-AE逐層進行特征提取,每層的和X(i)都可由式(11)、(12)計算得到。最終得到的數據特征Xfinal作為1個KELM分類器的輸入來計算最終的分類結果,KELM分類器的模型為

式中:Ωfinal為由Xfinal計算得到的核矩陣,則βfinal為

簡約核極限學習機(Reduced Kernel Extreme Learning Machine,RKELM)是在KELM的基礎上,從輸入樣本中隨機選擇部分樣本作為支持向量進行計算,在保持較高精度的同時大幅提高了訓練速度。
對給定的N個訓練樣本?={(xi,ti)∈Rd,ti∈,給定支持向量數目S,則支持向量XS={xi|xi∈為

式中:ΩN×S=K(X,XS),為簡約的核矩陣。
式(9)在求取核矩陣時,是對每個輸入向量都進行核函數計算,而此處簡約的核矩陣僅對S個支持向量進行核函數計算,計算量大大簡化。β=[β1,β2,…,βS]是輸出權重矩陣

在ML-KELM的計算中,每層KELM-AE的特征提取都是對全部輸入數據計算核矩陣,雖然可以保證高精度,但付出了高耗時的代價。對此,本文提出簡約的深度核極限學習機(Reduced Deep Kernel Learning Machine,RDK-ELM),每層特征提取由RKELM-AE完成。對于第i層RKELM-AE,編碼器從輸入數據X(i)中隨機選擇 L(i)個支持向量,根據式(16)、(17)計算變換矩陣,逐層完成特征提取,最后通過1個RKELM分類器計算出分類結果。RKELM-AE算法的計算過程見表1,RDK-ELM算法的計算過程見表2。

表1 RKELM-AE算法的計算過程

表2 RDK-ELM算法的計算過程
相比于ML-KELM算法,RDK-ELM算法中每層RKELM-AE都選擇部分樣本作為支持向量,當支持向量為全部樣本時,RDK-ELM算法與ML-KELM算法等效[13]。所以通過合理選擇各層支持向量的數量,可以得到訓練時間短、分類精度高的RDK-ELM算法。
為驗證本文提出的RDK-ELM算法在速度與精度上的性能,首先將其與基本ELM、KELM、RKELM以及基于深度學習結構的ML-KELM算法在4個典型UCI分類數據集上進行綜合比較。4個UCI數據集樣本的相關參數見表3。

表3 UCI分類數據集的數據
研究采用的計算機配置為:Core i5-8250U,內存8G。算法驗證的軟件平臺為:Matlab R2016b。
算法參數設置:所有算法的激活函數均設置為Sigmoid函數,核函數均設置為RBF核函數。試驗驗證發現,ML-KELM和RDK-ELM算法均在隱含層為2層時精度最好,故層數均設置為3。正則化因子C和核參數σ的取值在10-7~107范圍內經過試驗選取最優設置。具體每種算法的正則化因子、核參數、支持向量數的設置見表4~8。

表4 ELM算法的隱含節點數設置

表5 KELM算法的參數設置

表6 RKELM算法的參數設置

表7 ML-KELM算法的參數設置

表8 RDK-ELM算法的參數設置
5種算法在4個UCI分類數據集上的性能結果見表9~11。由于ELM算法需要隨機生成權重與偏差,RKELM和RDK-ELM算法需要隨機選擇支持向量,其運算結果具有不確定性,因此這3種算法的性能參數是取100次運算的平均值,KELM和ML-KELM則是1次的運算結果。表中,Tr.time為Training time的縮寫,表示訓練時間,s;Ts.rate為Testing rate的縮寫,表示測試分類正確率。

表9 ELM與KELM的訓練時間與分類正確率

表10 RKELM與ML-KELM的訓練時間與分類正確率

表11 RDK-ELM的訓練時間與分類正確率
從表中可見,ML-KELM算法的分類正確率在全部數據集中都是最高的,說明基于深度學習網絡結構的KELM算法具有較好的泛化性能和分類能力。本文所提出的RDK-ELM算法的正確率與KELM算法的差距非常小,且樣本數據越大,差距越小,可以說二者的分類能力幾乎持平。
但從訓練速度方面而言,RDK-ELM算法的訓練速度明顯比KELM算法的更快。在5種算法中RKELM算法的訓練速度最快,但精度不如RDK-ELM算法的;而ML-KELM雖然精度非常高,訓練速度卻最慢,對工程應用來說是不可回避的缺陷。
RDK-ELM算法通過深度學習網絡結構,在RKELM算法的基礎上獲得了更好的泛化性能與分類能力,同時比KELM和ML-KELM算法具有更快的訓練速度。在這4個UCI分類數據集上的試驗表明,本文提出的RDK-ELM算法是同時具有較好的精度與速度的算法,可用于航空發動機控制系統中的傳感器與執行器的故障診斷。
為驗證RDK-ELM算法在航空發動機控制系統故障診斷中的性能,本文以某型渦扇發動機為研究對象,采集數據樣本進行故障診斷仿真試驗。
實際的航空發動機傳感器與執行器的故障數據是非常難獲得的。為了進行故障診斷的仿真試驗,采用文獻[16]中的方法,利用某型渦扇發動機部件級模型模擬發動機的故障,通過自適應機載模型產生EKF殘差,采集故障狀態下的EKF殘差數據,作為訓練樣本和測試樣本數據集。
本文主要研究發動機傳感器和執行器的故障診斷,但實際情況中也可能發生氣路部件的故障,為驗證算法區分控制系統故障與氣路部件故障的能力,選取高壓壓氣機(High Pressure Compressor,HPC)和高壓渦輪(High Pressure Turbine,HPT)2個氣路部件的故障進行研究。選取的傳感器有:低壓轉子轉速傳感器(Nl),高壓轉子轉速傳感器(Nh),高壓壓氣機出口壓力傳感器(P3);選取的執行器為主燃油閥Wf。研究假設傳感器與執行器最多只有2個同時發生故障,則有12種故障模式,6種單故障研究樣本見表12,6種雙故障研究樣本見表13。表中“F”表示該部件發生故障,“-”表示無故障。
對于實際應用于發動機的故障診斷算法來說,發動機的飛行高度、馬赫數及其工作狀態會影響發動機感測信號的值,是非常重要的影響因素。但研究表明,發動機的狀態對于故障診斷算法的可行性研究影響不大,在額定和最大工作狀態下,由算法得到的性能結果相同[16],因此本文僅選擇在發動機高度H=0,飛行馬赫數Ma=0,最大工作狀態下進行數字仿真試驗驗證算法的可行性。

表12 單故障研究樣本

表13 雙故障研究樣本
發動機傳感器、執行器、氣路部件的故障程度根據文獻 [4]所給定的數值注入發動機模型進行模擬。Nl、Nh傳感器的故障偏置范圍為-0.5%~-2.5%,P3傳感器的故障偏置范圍為-2%~-10%,Wf執行器的故障偏置范圍為-1%~-8%,HPC和HPT的故障偏置范圍為-1%~-5%。故障偏置數值通過隨機數的方式在上述范圍內產生,注入模型仿真來生成故障EKF殘差數據樣本。
為避免類不平衡的問題,對于表12中1~6的單故障情況,每種情況采集200個樣本,對于表13中7~12的雙故障情況,每種情況采集400個樣本。則共有1200個單故障樣本,2400個雙故障樣本,總計3600個樣本。選取其中的80%作為訓練樣本,其余20%為測試樣本。即訓練樣本數2880,測試樣本數720。
由于9個EKF殘差數據中有轉速、壓強、溫度,各參數單位不一致且數量級相差較大,會影響算法進行故障診斷的精度,因此對EKF殘差數據進行歸一化處理

為驗證RDK-ELM算法在故障診斷中精度與速度的綜合優勢,將ELM、KELM、RKELM、ML-KELM和RDK-ELM算法應用于發動機控制系統故障仿真數據的診斷分類中進行比較分析。
算法參數設置:所有算法的激活函數均設置為Sigmoid函數,核函數均設置為RBF核函數。ML-KELM和RDK-ELM算法均在隱含層為2層時精度最好,故層數均設置為3。正則化因子C和核參數σ的取值在10-7×107范圍內經過試驗選取最優設置。ELM算法的隱含層節點設置為200;KELM算法的 σ=10,C=105;RKELM 算 法 σ=1,C=103,L=200;ML-KELM 算法 3 層核參數選擇為 σ=[10,104,103],正則化因子 C=[102,10-1,10];RDK-ELM 算法 3 層核參 數 選 擇 為 σ= [102,102,104], 正 則 化 因 子 C=[10,1,104], 支 持 向 量 L=[200,200,300]。 ELM、RKELM、RDK-ELM算法的運行結果是取100次運行結果的平均數,KELM和ML-KELM算法只運行1次。結果見表14。

表14 各算法進行故障診斷的性能結果
從表中可見,ML-KELM算法精度最高,RKELM算法速度最快,RDK-ELM和KELM算法精度基本持平,但RDK-ELM比KELM算法的訓練時間縮短了1/4。可見,利用深度學習結構結合核方法,可以提高算法的泛化性能與分類能力,在樣本數量大、類別多的情況下精度更高;應用簡約方法則明顯改善了單純核方法的時間性能。RDK-ELM算法將2種優點結合起來,得到優越的綜合性能。
RDK-ELM算法可以調整的參數有網絡深度(隱含層層數)、每層核參數和正則化因子、每層支持向量數目。
(1)網絡深度。雖然深度學習網絡結構是通過逐層對輸入數據提取特征來獲得更高精度的,但本文對UCI分類數據集及發動機故障數據的試驗表明,并不是層數越多精度越高,精度在隱含層層數為2時的精度最高,層數再高精度反而降低。此外,網絡深度直接影響訓練時長。因此將隱含層層數設置為2層具有最穩定的精度和可接受的速度。
(2)核參數和正則化因子。核參數σ和正則化因子C是在10-7~107范圍內按10的倍數選取的,這2個參數對算法的精度有非常大的影響[11]。目前對機器學習算法的參數中,這2個參數的選取通常根據經驗選擇。通過試驗調參,可以得到令人滿意的精度。
(3)支持向量的數量。RDK-ELM算法選取的支持向量越多,精度越高,訓練時間也越長。當支持向量為全部樣本時,RDK-ELM與ML-KELM算法等效[13]。而在試驗中,支持向量達到一定數目時,精度的提高就不明顯了,而同時速度則明顯降低。為了獲得精度和速度的綜合優勢,支持向量的數目需要選取1個合適數值。在目前基于支持向量的算法的研究中,對支持向量數目的選取均沒有理論上的方法,一般根據經驗和試驗選取。本文的算法是先取輸入向量樣本數目的1/10,然后以此為基準增加或減少支持向量的數目,以達到訓練速度和訓練精度的綜合最優為止。
(1)將RKELM算法與深度學習網絡結構各自的優點結合,提出RDK-ELM算法。
(2)對UCI分類數據集和發動機故障仿真數據進行試驗,驗證了RDK-ELM算法在精度與速度上的綜合優勢。
(3)RDK-ELM算法可調參數較多,需要針對具體情形進行參數調整,通過試驗驗證以獲得最佳性能。