陳虹潞,黃向華
(南京航空航天大學能源與動力學院,南京210016)
現(xiàn)代航空發(fā)動機數(shù)字控制系統(tǒng)主要由傳感器、執(zhí)行機構及電子控制器等組成[1],其中,傳感器和執(zhí)行機構組件繁雜,容易發(fā)生故障,是控制系統(tǒng)中十分重要又脆弱的環(huán)節(jié),因此必須對傳感器和執(zhí)行機構進行實時故障診斷,從而采取必要的容錯控制措施以保障發(fā)動機工作性能不受影響。
故障診斷方法主要有3種:基于模型的、基于人工智能的和基于數(shù)據(jù)驅動的方法?;谀P偷墓收显\斷方法從1977年被Spang等[2]提出,目前已較為成熟。在NASA和MTU合作進行的關于先進智能發(fā)動機傳感器和執(zhí)行器性能要求的研究中所提出的未來智能發(fā)動機發(fā)展的可行技術中,就包括用于提高發(fā)動機的氣路部件性能和延長發(fā)動機的在役壽命的通過基于模型的控制和監(jiān)控技術[3]?;谀P偷姆椒☉冒l(fā)動機部件級模型作為機載模型,通過擴展卡爾曼濾波器(Extended Kalman Filter,EKF)自適應跟蹤發(fā)動機感測信號的輸出,在發(fā)動機發(fā)生故障時,EKF的信號估計值偏離發(fā)動機實際信號值產生殘差,通過計算對殘差進行分析即可診斷發(fā)動機的故障類型[4]。
近年來人工智能算法興起,不少學者將BP神經網(wǎng)絡、徑向基網(wǎng)絡、自聯(lián)想網(wǎng)絡、支持向量機等算法應用于故障診斷中[5-8],其中基于梯度訓練的神經網(wǎng)絡算法泛化能力較差,易陷入局部最優(yōu);而支持向量機參數(shù)選擇復雜,訓練速度慢,不適于故障診斷的工程應用。Huang等[9]提出的極限學習機(Extreme Learning Machine,ELM)算法是1種新型前向神經網(wǎng)絡算法,無需迭代,學習速度快、精度高且易于調參;隨著核函數(shù)的引入,ELM獲得了更高精度[10]。Wong等[11]提出具有深度學習網(wǎng)絡結構的多層核極限學習機(Multilayer Kernel Extreme Learning Machine,ML-KELM);逄珊等[12]將其應用于航空發(fā)動機的氣路部件故障診斷中,獲得了更優(yōu)的診斷精度。但深度學習結構通過多層網(wǎng)絡逐層進行輸入數(shù)據(jù)的特征提取,計算耗時嚴重,對需要高實時性的發(fā)動機故障診斷來說是不容忽視的缺陷。
針對深度核極限學習機的訓練時間過長的不足,本文將Deng等[13]提出的核極限學習機的簡約方法與深度學習網(wǎng)絡結構結合,提出簡約的深度核極限學習機(Reduced Deep Kernel Extreme Learning Machine,RDK-ELM)。該算法利用隨機支持向量縮短算法訓練時間,并保留深度學習網(wǎng)絡結構的高精度優(yōu)點,對EKF產生的殘差數(shù)據(jù)進行模式識別分類,實現(xiàn)航空發(fā)動機控制系統(tǒng)傳感器與執(zhí)行器的故障診斷。
極限學習機是Huang等提出的1種新的單隱層前向神經網(wǎng)絡的快速學習方法。在ELM算法中,給定訓練樣本:{(xi,ti)∈Rd,ti∈R,其中,N 為樣本數(shù)量,d為維數(shù),m為輸出節(jié)點數(shù),對于如本文所述的故障診斷分類問題,m為類別數(shù)。單隱層前向神經網(wǎng)絡的ELM輸出函數(shù)為
式中:L 為隱藏節(jié)點的數(shù)目;β=[βi,…,βL]T,為輸出權重向量;h(·)為激活函數(shù);ai為隱藏節(jié)點的權重;bi為隱藏節(jié)點的偏差。
式(1)寫成矩陣形式為
輸出權值β可通過尋找給定系統(tǒng)的最小二乘解獲得,即求解式(2)的最小范數(shù)的最小二乘解為
式中:C為正則化系數(shù)。
如果激活函數(shù)h(·)是1個隱函數(shù),則可以對ELM算法應用Mercer條件,并引入核矩陣[10]
即對任意每2個訓練樣本之間求核函數(shù)
將式(6)、(7)與式(5)代入式(1)中,可以得到核形式的輸出函數(shù)
這樣就得到了核極限學習機KELM。
多層核極限學習機ML-KELM是將核方法引入到多層極限學習機的1種算法。多層極限學習機[14](Multilayer Extreme Learning Machine,ML-ELM)與深度置信網(wǎng)絡(Deep Belief Net-work,DBN)相似,DBN是由多個受限玻爾茲曼機[15](Restricted Boltzmann Machaine,RBM)疊加而成,逐層提取特征獲得更抽象的概念。ML-ELM由多個極限學習機自編碼器(ELM Auto-Encoder,ELM-AE)疊加而成,但相比于 DBN,ML-ELM不需要對網(wǎng)絡權值進行整體微調,且無需迭代,因此訓練速度較DBN有顯著提高。
ML-KELM由多個核極限學習機自編碼器(Kernel Extreme Learning Machine Auto-Encoder,KELM-AE)構成,KELM-AE 的結構如圖1所示。
文獻[11]中給出了ML-KELM的詳細推導過程。類似于式(7)的核函數(shù)映射計算,KELM-AE的輸入矩陣x(i)通過核函數(shù)κ(i)(xk,xj)被映射為核矩陣Ω(i),核函數(shù)可以選用RBF核函數(shù)中,σi為核參數(shù)。計算得到核矩陣后,輸入向量的特征提取可以表示為
式中:g(·)為激活函數(shù),與式(1)中的 h(·)都是激活函數(shù),可從多種激活函數(shù)類型中根據(jù)實際情況與實際問題自定義選取,在不同的算法中可以不相同。
在ML-KELM的訓練過程中,輸入數(shù)據(jù)由多層KELM-AE逐層進行特征提取,每層的和X(i)都可由式(11)、(12)計算得到。最終得到的數(shù)據(jù)特征Xfinal作為1個KELM分類器的輸入來計算最終的分類結果,KELM分類器的模型為
式中:Ωfinal為由Xfinal計算得到的核矩陣,則βfinal為
簡約核極限學習機(Reduced Kernel Extreme Learning Machine,RKELM)是在KELM的基礎上,從輸入樣本中隨機選擇部分樣本作為支持向量進行計算,在保持較高精度的同時大幅提高了訓練速度。
對給定的N個訓練樣本?={(xi,ti)∈Rd,ti∈,給定支持向量數(shù)目S,則支持向量XS={xi|xi∈為
式中:ΩN×S=K(X,XS),為簡約的核矩陣。
式(9)在求取核矩陣時,是對每個輸入向量都進行核函數(shù)計算,而此處簡約的核矩陣僅對S個支持向量進行核函數(shù)計算,計算量大大簡化。β=[β1,β2,…,βS]是輸出權重矩陣
在ML-KELM的計算中,每層KELM-AE的特征提取都是對全部輸入數(shù)據(jù)計算核矩陣,雖然可以保證高精度,但付出了高耗時的代價。對此,本文提出簡約的深度核極限學習機(Reduced Deep Kernel Learning Machine,RDK-ELM),每層特征提取由RKELM-AE完成。對于第i層RKELM-AE,編碼器從輸入數(shù)據(jù)X(i)中隨機選擇 L(i)個支持向量,根據(jù)式(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]。所以通過合理選擇各層支持向量的數(shù)量,可以得到訓練時間短、分類精度高的RDK-ELM算法。
為驗證本文提出的RDK-ELM算法在速度與精度上的性能,首先將其與基本ELM、KELM、RKELM以及基于深度學習結構的ML-KELM算法在4個典型UCI分類數(shù)據(jù)集上進行綜合比較。4個UCI數(shù)據(jù)集樣本的相關參數(shù)見表3。
表3 UCI分類數(shù)據(jù)集的數(shù)據(jù)
研究采用的計算機配置為:Core i5-8250U,內存8G。算法驗證的軟件平臺為:Matlab R2016b。
算法參數(shù)設置:所有算法的激活函數(shù)均設置為Sigmoid函數(shù),核函數(shù)均設置為RBF核函數(shù)。試驗驗證發(fā)現(xiàn),ML-KELM和RDK-ELM算法均在隱含層為2層時精度最好,故層數(shù)均設置為3。正則化因子C和核參數(shù)σ的取值在10-7~107范圍內經過試驗選取最優(yōu)設置。具體每種算法的正則化因子、核參數(shù)、支持向量數(shù)的設置見表4~8。
表4 ELM算法的隱含節(jié)點數(shù)設置
表5 KELM算法的參數(shù)設置
表6 RKELM算法的參數(shù)設置
表7 ML-KELM算法的參數(shù)設置
表8 RDK-ELM算法的參數(shù)設置
5種算法在4個UCI分類數(shù)據(jù)集上的性能結果見表9~11。由于ELM算法需要隨機生成權重與偏差,RKELM和RDK-ELM算法需要隨機選擇支持向量,其運算結果具有不確定性,因此這3種算法的性能參數(shù)是取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算法的分類正確率在全部數(shù)據(jù)集中都是最高的,說明基于深度學習網(wǎng)絡結構的KELM算法具有較好的泛化性能和分類能力。本文所提出的RDK-ELM算法的正確率與KELM算法的差距非常小,且樣本數(shù)據(jù)越大,差距越小,可以說二者的分類能力幾乎持平。
但從訓練速度方面而言,RDK-ELM算法的訓練速度明顯比KELM算法的更快。在5種算法中RKELM算法的訓練速度最快,但精度不如RDK-ELM算法的;而ML-KELM雖然精度非常高,訓練速度卻最慢,對工程應用來說是不可回避的缺陷。
RDK-ELM算法通過深度學習網(wǎng)絡結構,在RKELM算法的基礎上獲得了更好的泛化性能與分類能力,同時比KELM和ML-KELM算法具有更快的訓練速度。在這4個UCI分類數(shù)據(jù)集上的試驗表明,本文提出的RDK-ELM算法是同時具有較好的精度與速度的算法,可用于航空發(fā)動機控制系統(tǒng)中的傳感器與執(zhí)行器的故障診斷。
為驗證RDK-ELM算法在航空發(fā)動機控制系統(tǒng)故障診斷中的性能,本文以某型渦扇發(fā)動機為研究對象,采集數(shù)據(jù)樣本進行故障診斷仿真試驗。
實際的航空發(fā)動機傳感器與執(zhí)行器的故障數(shù)據(jù)是非常難獲得的。為了進行故障診斷的仿真試驗,采用文獻[16]中的方法,利用某型渦扇發(fā)動機部件級模型模擬發(fā)動機的故障,通過自適應機載模型產生EKF殘差,采集故障狀態(tài)下的EKF殘差數(shù)據(jù),作為訓練樣本和測試樣本數(shù)據(jù)集。
本文主要研究發(fā)動機傳感器和執(zhí)行器的故障診斷,但實際情況中也可能發(fā)生氣路部件的故障,為驗證算法區(qū)分控制系統(tǒng)故障與氣路部件故障的能力,選取高壓壓氣機(High Pressure Compressor,HPC)和高壓渦輪(High Pressure Turbine,HPT)2個氣路部件的故障進行研究。選取的傳感器有:低壓轉子轉速傳感器(Nl),高壓轉子轉速傳感器(Nh),高壓壓氣機出口壓力傳感器(P3);選取的執(zhí)行器為主燃油閥Wf。研究假設傳感器與執(zhí)行器最多只有2個同時發(fā)生故障,則有12種故障模式,6種單故障研究樣本見表12,6種雙故障研究樣本見表13。表中“F”表示該部件發(fā)生故障,“-”表示無故障。
對于實際應用于發(fā)動機的故障診斷算法來說,發(fā)動機的飛行高度、馬赫數(shù)及其工作狀態(tài)會影響發(fā)動機感測信號的值,是非常重要的影響因素。但研究表明,發(fā)動機的狀態(tài)對于故障診斷算法的可行性研究影響不大,在額定和最大工作狀態(tài)下,由算法得到的性能結果相同[16],因此本文僅選擇在發(fā)動機高度H=0,飛行馬赫數(shù)Ma=0,最大工作狀態(tài)下進行數(shù)字仿真試驗驗證算法的可行性。
表12 單故障研究樣本
表13 雙故障研究樣本
發(fā)動機傳感器、執(zhí)行器、氣路部件的故障程度根據(jù)文獻 [4]所給定的數(shù)值注入發(fā)動機模型進行模擬。Nl、Nh傳感器的故障偏置范圍為-0.5%~-2.5%,P3傳感器的故障偏置范圍為-2%~-10%,Wf執(zhí)行器的故障偏置范圍為-1%~-8%,HPC和HPT的故障偏置范圍為-1%~-5%。故障偏置數(shù)值通過隨機數(shù)的方式在上述范圍內產生,注入模型仿真來生成故障EKF殘差數(shù)據(jù)樣本。
為避免類不平衡的問題,對于表12中1~6的單故障情況,每種情況采集200個樣本,對于表13中7~12的雙故障情況,每種情況采集400個樣本。則共有1200個單故障樣本,2400個雙故障樣本,總計3600個樣本。選取其中的80%作為訓練樣本,其余20%為測試樣本。即訓練樣本數(shù)2880,測試樣本數(shù)720。
由于9個EKF殘差數(shù)據(jù)中有轉速、壓強、溫度,各參數(shù)單位不一致且數(shù)量級相差較大,會影響算法進行故障診斷的精度,因此對EKF殘差數(shù)據(jù)進行歸一化處理
為驗證RDK-ELM算法在故障診斷中精度與速度的綜合優(yōu)勢,將ELM、KELM、RKELM、ML-KELM和RDK-ELM算法應用于發(fā)動機控制系統(tǒng)故障仿真數(shù)據(jù)的診斷分類中進行比較分析。
算法參數(shù)設置:所有算法的激活函數(shù)均設置為Sigmoid函數(shù),核函數(shù)均設置為RBF核函數(shù)。ML-KELM和RDK-ELM算法均在隱含層為2層時精度最好,故層數(shù)均設置為3。正則化因子C和核參數(shù)σ的取值在10-7×107范圍內經過試驗選取最優(yōu)設置。ELM算法的隱含層節(jié)點設置為200;KELM算法的 σ=10,C=105;RKELM 算 法 σ=1,C=103,L=200;ML-KELM 算法 3 層核參數(shù)選擇為 σ=[10,104,103],正則化因子 C=[102,10-1,10];RDK-ELM 算法 3 層核參 數(shù) 選 擇 為 σ= [102,102,104], 正 則 化 因 子 C=[10,1,104], 支 持 向 量 L=[200,200,300]。 ELM、RKELM、RDK-ELM算法的運行結果是取100次運行結果的平均數(shù),KELM和ML-KELM算法只運行1次。結果見表14。
表14 各算法進行故障診斷的性能結果
從表中可見,ML-KELM算法精度最高,RKELM算法速度最快,RDK-ELM和KELM算法精度基本持平,但RDK-ELM比KELM算法的訓練時間縮短了1/4。可見,利用深度學習結構結合核方法,可以提高算法的泛化性能與分類能力,在樣本數(shù)量大、類別多的情況下精度更高;應用簡約方法則明顯改善了單純核方法的時間性能。RDK-ELM算法將2種優(yōu)點結合起來,得到優(yōu)越的綜合性能。
RDK-ELM算法可以調整的參數(shù)有網(wǎng)絡深度(隱含層層數(shù))、每層核參數(shù)和正則化因子、每層支持向量數(shù)目。
(1)網(wǎng)絡深度。雖然深度學習網(wǎng)絡結構是通過逐層對輸入數(shù)據(jù)提取特征來獲得更高精度的,但本文對UCI分類數(shù)據(jù)集及發(fā)動機故障數(shù)據(jù)的試驗表明,并不是層數(shù)越多精度越高,精度在隱含層層數(shù)為2時的精度最高,層數(shù)再高精度反而降低。此外,網(wǎng)絡深度直接影響訓練時長。因此將隱含層層數(shù)設置為2層具有最穩(wěn)定的精度和可接受的速度。
(2)核參數(shù)和正則化因子。核參數(shù)σ和正則化因子C是在10-7~107范圍內按10的倍數(shù)選取的,這2個參數(shù)對算法的精度有非常大的影響[11]。目前對機器學習算法的參數(shù)中,這2個參數(shù)的選取通常根據(jù)經驗選擇。通過試驗調參,可以得到令人滿意的精度。
(3)支持向量的數(shù)量。RDK-ELM算法選取的支持向量越多,精度越高,訓練時間也越長。當支持向量為全部樣本時,RDK-ELM與ML-KELM算法等效[13]。而在試驗中,支持向量達到一定數(shù)目時,精度的提高就不明顯了,而同時速度則明顯降低。為了獲得精度和速度的綜合優(yōu)勢,支持向量的數(shù)目需要選取1個合適數(shù)值。在目前基于支持向量的算法的研究中,對支持向量數(shù)目的選取均沒有理論上的方法,一般根據(jù)經驗和試驗選取。本文的算法是先取輸入向量樣本數(shù)目的1/10,然后以此為基準增加或減少支持向量的數(shù)目,以達到訓練速度和訓練精度的綜合最優(yōu)為止。
(1)將RKELM算法與深度學習網(wǎng)絡結構各自的優(yōu)點結合,提出RDK-ELM算法。
(2)對UCI分類數(shù)據(jù)集和發(fā)動機故障仿真數(shù)據(jù)進行試驗,驗證了RDK-ELM算法在精度與速度上的綜合優(yōu)勢。
(3)RDK-ELM算法可調參數(shù)較多,需要針對具體情形進行參數(shù)調整,通過試驗驗證以獲得最佳性能。