李英順,闞宏達,王德彪,劉海洋
(1.大連理工大學(xué) 控制科學(xué)與工程學(xué)院,遼寧 大連 116000;2.沈陽順義科技有限公司,遼寧 沈陽 110000)
坦克是陸軍主要武器裝備[1],其火控系統(tǒng)先進與否直接決定著裝甲裝備的戰(zhàn)場打擊能力?;鹂赜嬎銠C及傳感器分系統(tǒng)作為坦克火控系統(tǒng)的中樞分系統(tǒng),連接觀瞄子系統(tǒng)、炮控子系統(tǒng)等各個子系統(tǒng)的源信號,火控計算機的運行狀態(tài)直接影響到坦克的作戰(zhàn)效率[2-3]。因此,對火控計算機的狀態(tài)評估和故障診斷在坦克的故障預(yù)測與健康管理技術(shù)中顯得愈加重要。
隨著動態(tài)系統(tǒng)故障模式愈加復(fù)雜,基于物理模型的故障診斷方法由于模型的局限性使得對故障類型多樣性的泛化能力不強,基于知識的故障診斷方法很大程度上依賴于人工經(jīng)驗和知識庫的完善程度[4],目前基于數(shù)據(jù)驅(qū)動的故障診斷方法在各個領(lǐng)域得到迅速的發(fā)展。在小樣本、非線性以及高維數(shù)據(jù)處理方面有著特有優(yōu)勢的支持向量機目前已經(jīng)被應(yīng)用到化工、電力、裝備鑒定以及油液檢測等各個領(lǐng)域的故障診斷[5-8]。在支持向量機(Support Vector Machine,SVM)中,核函數(shù)參數(shù)和懲罰因子是影響分類模型準確性的關(guān)鍵參數(shù)。文獻[9]和[10]中分別提出應(yīng)用粒子群優(yōu)化算法和遺傳優(yōu)化算法參數(shù)尋優(yōu)的支持向量機對滾動軸承做故障診斷,但粒子群優(yōu)化算法和遺傳優(yōu)化算法都存在易陷入局部最優(yōu)的問題。2017年Mirjalili等提出了一種新的元啟發(fā)式算法即鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA),其優(yōu)勢在于可以更高效、更穩(wěn)定地進行全局優(yōu)化[11]。針對故障診斷中數(shù)據(jù)維度過多影響故障診斷速度的問題,數(shù)據(jù)降維與特征提取是一項重要的預(yù)處理工作,主成分分析作為一種使用普遍的特征提取算法被廣泛應(yīng)用于圖像識別、故障診斷、文本分類等領(lǐng)域[12-14],核主元分析(Kernel Principal Component Analysis,KPCA)則是主成分分析的非線性擴展,文獻[15]將KPCA算法用于化工過程的過程監(jiān)控。
在上述研究基礎(chǔ)上,筆者提出了一種基于KPCA-WOA-SVM的火控系統(tǒng)故障診斷方法,首先利用KPCA算法進行數(shù)據(jù)降維,再通過WOA優(yōu)化的SVM故障診斷模型進行故障分類,相比于以往基于專家經(jīng)驗的人工故障診斷方法,提高了故障診斷的準確率和效率。
KPCA算法的思想是利用少數(shù)變量反映全部變量的大部分信息,并且這些少數(shù)變量所含的信息線性不相關(guān)[16]。
1)原理推導(dǎo):假設(shè)對原始數(shù)據(jù)序列xk,k=1,2,…,n,進行非線性映射φ:R→F,可得到φ(xk),k=1,2,…,n,從而建立協(xié)方差矩陣,同時為求解該矩陣,引入核矩陣K,
(1)
K=XXT.
(2)
2)主元選取:設(shè)協(xié)方差矩陣的特征值分別為λ1≥λ2≥…≥λn≥0,特征值稱為主元,對應(yīng)的特征向量稱為主成分,累計貢獻度定義為所選順序特征值與總特征值的比值:
(3)
式中,φp表示前p個主元的貢獻度之和,代表前p個分量在所有分量中所占的比重,一般情況下,累計貢獻度的閾值在80%~95%之間。
WOA是一種元啟發(fā)式算法,其思想是通過模仿座頭鯨的捕食行為進行參數(shù)尋優(yōu),與其他優(yōu)化算法相比,具有泛化性能好、全局優(yōu)化、參數(shù)少的優(yōu)點。
1)環(huán)繞式圍捕:當(dāng)獵物被座頭鯨發(fā)現(xiàn)時,座頭鯨圍困獵物的數(shù)學(xué)模型為
D=|F·X*(t)-X(t)|,
(4)
X(t+1)=X*(t)-A×D,
(5)
A=2a·r-a,
(6)
F=2r,
(7)
式中:X*表示當(dāng)前鯨魚個體最優(yōu)位置;t表示迭代次數(shù);A和F表示相關(guān)系數(shù)向量;r表示取值范圍從0到1的隨機向量;a表示在整個迭代過程中從2線性減少到0的規(guī)律值。
2)狩獵攻擊:當(dāng)鯨魚以螺旋運動向獵物發(fā)起攻擊時,位置更新的數(shù)學(xué)模型為
X(t+1)=D′·eel·cos(2πl(wèi))+X*(t),
(8)
D′=|X*(t)-X(t)|,
(9)
式中:D′表示鯨魚和獵物之間的距離;e為一個常數(shù);l為一個[-1,1]隨機數(shù)。同時鯨魚在游向獵物時還要縮小包圍圈,在這種模型下,假設(shè)分別有50%的概率選擇收縮包圍和螺旋上升,其數(shù)學(xué)模型為
(10)
(11)
(12)
SVM是機器學(xué)習(xí)中一種代表性的分類算法,處理線性可分及非線性不可分的數(shù)據(jù)中都具有良好的分類表現(xiàn)[17]。為求解非線性問題,SVM引入了核函數(shù)k(x,z),其中徑向基函數(shù)能將原始數(shù)據(jù)映射到高維空間中,表達式為
(13)
引入核函數(shù)后,SVM的分類決策函數(shù)為
(14)
針對投影到高維空間后某些樣本點依然存在不可分的問題,在分類模型中引入松弛變量ξi進行優(yōu)化調(diào)整,同時對損失部分引入懲罰因子C,引入松弛變量ξi與懲罰因子C后得到的新模型為
(15)
將其轉(zhuǎn)換為對偶問題
(16)
式中:ai和aj表示拉格朗日乘子;yi和yj表示訓(xùn)練樣本類別,yi和yj∈{-1,1};懲罰因子C用來衡量學(xué)習(xí)機器的復(fù)雜程度:如果C取值過大,易出現(xiàn)過擬合現(xiàn)象,SVM模型會趨于復(fù)雜,運行時間加長,運算效率下降;如果C取值太小,數(shù)據(jù)樣本的擬合程度降低,SVM模型則易出現(xiàn)欠擬合現(xiàn)象。
坦克火控系統(tǒng)各部件結(jié)構(gòu)復(fù)雜,參數(shù)眾多,同時各個參數(shù)間的關(guān)聯(lián)錯綜復(fù)雜、彼此相互影響,因此,需要對原始測量參數(shù)進行特征提取和數(shù)據(jù)降維。首先,取不同狀態(tài)下待測部件各引腳測得的信號值作為健康狀態(tài)評估的性能參數(shù),采用核主元分析計算主元,并依據(jù)累計貢獻度的閾值選取主元進行數(shù)據(jù)降維。然后,取降維后的特征數(shù)據(jù)作為支持向量機的訓(xùn)練樣本輸入,同時使用鯨魚優(yōu)化算法尋求最優(yōu)參數(shù),建立故障診斷模型。
由于現(xiàn)代特種車輛都集成了高度自動化設(shè)備,直接使用特種車輛的全部性能參數(shù)會造成對故障診斷的不便,更多的性能參數(shù)增加診斷難度和診斷時間,因此,在進行特種車輛故障診斷前對特種車輛所有性能參數(shù)進行特征參數(shù)提取是非常有必要的。筆者采用KPCA降維方法,將一組具有相關(guān)性的高維變量轉(zhuǎn)化為另外一組互不相關(guān)的新的低維變量,去除整個變量中的相關(guān)性,盡可能多地保留原變量中的有用信息。算法流程圖如圖1所示。
步驟1將原始數(shù)據(jù)歸一化到[0,1]區(qū)間,使不同類別數(shù)據(jù)具有相同的度量尺度。
步驟2計算訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)對應(yīng)核矩陣K與Ktest。
步驟3根據(jù)式(1)對協(xié)方差矩陣數(shù)學(xué)變換,應(yīng)用核技巧計算特征值和特征向量。
步驟4依據(jù)累計貢獻率的閾值選取對應(yīng)主元,并根據(jù)選取的主元完成訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的特征提取。
在野外復(fù)雜的環(huán)境與條件下,隨著坦克使用次數(shù)和使用時間的增加,坦克火控系統(tǒng)各子部件的服役性能具有一定的生命周期,超出期限可能會發(fā)生一定的故障。支持向量機可以依據(jù)采樣的正常樣本數(shù)據(jù)和故障樣本數(shù)據(jù),建立合適的故障診斷模型,由于核參數(shù)σ和懲罰因子C對模型的建立有決定性的影響,對于C和σ的選取,筆者采用鯨魚優(yōu)化算法,故障診斷流程如圖2所示。
步驟1相關(guān)參數(shù)初始化。初始化鯨魚的群體大小、最大迭代次數(shù)、X*(t)維數(shù)等,其中X*(t)={σ,C}。
步驟2適應(yīng)度計算。將當(dāng)前X*向量作為C,σ參數(shù),從而建立SVM 模型,將當(dāng)前模型下5折交叉驗證的準確率的相反數(shù)作為鯨魚優(yōu)化算法的適應(yīng)度函數(shù)值,找到適應(yīng)度值最小的鯨魚個體,將其位置存在X*中。
步驟3位置更新。如果|A|<1,按照式(10)更新X*;如果|A|>1,按照式(12)更新X*。
步驟4位置評估。根據(jù)步驟3更新的最新鯨魚個體位置再次計算適應(yīng)度值,將當(dāng)前適應(yīng)度值與最小適應(yīng)度值對比。如果小于最優(yōu)適應(yīng)度值,將此鯨魚位置作為X*;如果大于最優(yōu)適應(yīng)度值,則返回步驟3循環(huán)計算。
步驟5循環(huán)終止。判斷循環(huán)次數(shù)是否達到最大迭代次數(shù),若是,停止循環(huán),返回X*的向量即為支持向量機的最優(yōu)參數(shù)C和σ;若不是,則返回步驟2繼續(xù)尋優(yōu)。
步驟6建立故障診斷模型。將上述優(yōu)化得到的最優(yōu)參數(shù)C和σ與經(jīng)過KPCA降維處理后的訓(xùn)練數(shù)據(jù)輸入到SVM中建立故障診斷模型,而后輸入數(shù)據(jù)進行故障診斷。
以火控系統(tǒng)中火控計算機及傳感器分系統(tǒng)的電源模塊為驗證對象。電源模塊的信號主要包括:經(jīng)由5 A保險絲供電的26 V主電源、經(jīng)由濾波器給火控計算機電源板供電和連接觀瞄系統(tǒng)的26 V分電源、以及電源板生成的電壓值分別為+15 V和-15 V的電壓信號。實驗選取了+15 V、-15 V、分電源26 V、主電源26 V在各自引腳測得的13個端口的信號值作為電源模塊的13個性能,如表1所示。
表1 數(shù)據(jù)源引腳信號表
原始數(shù)據(jù)中正常狀態(tài)和故障狀態(tài)下共計250組數(shù)據(jù),共分為5類,其中正常狀態(tài)50組數(shù)據(jù),標簽類別標識為1;+15 V電源故障50組數(shù)據(jù),標簽類別標識為2;-15 V電源故障50組數(shù)據(jù),標簽類別標識為3;26 V分電源故障50組數(shù)據(jù),標簽類別標識為4;26 V主電源故障50組數(shù)據(jù),標簽類別標識為5,如表2所示。
表2 原始數(shù)據(jù)分類表
選取上述5類訓(xùn)練樣本共計125組數(shù)據(jù),根據(jù)KPCA建立協(xié)方差矩陣,計算矩陣特征值與特征向量并依據(jù)特征值計算貢獻度與累計貢獻度。累計貢獻度對應(yīng)的Pareto圖如圖3所示,由于貢獻度的大小代表所選取的特征值與特征向量攜帶全部數(shù)據(jù)信息的比例,正常情況下累計貢獻度的取值范圍為80%~95%。
設(shè)定累計貢獻度分別為40%、60%、70%、80%、85%、90%、95%,而后分別將經(jīng)特征提取后的數(shù)據(jù)輸入到支持向量機中,參數(shù)尋優(yōu)均使用5折交叉驗證和網(wǎng)絡(luò)搜索的方法,實際累計貢獻度和測試樣本準確率以及選取的順序主元如表3所示,其中1~2表示選取前兩個主元,其他同理。
表3 累計貢獻度對比表
根據(jù)表3可知,在相同條件下,累計貢獻度在給定范圍內(nèi),當(dāng)設(shè)定值為0.8時,測試樣本的分類準確度為94.4%,達到最大值,對應(yīng)選取的順序主元為1-5,數(shù)據(jù)維度也相對較少?;诖?設(shè)定累計貢獻度為0.8,原始的電源模塊數(shù)據(jù)經(jīng)過特征提取后由原來的13維降到5維,便于后續(xù)的故障診斷分析。
選取上述中經(jīng)過KPCA降維后的125組訓(xùn)練樣本建立SVM故障診斷模型,對于懲罰因子C以及核參數(shù)σ的選擇采用鯨魚優(yōu)化算法,設(shè)定鯨魚優(yōu)化算法的最大迭代次數(shù)為100,種群數(shù)目為20。同時為比較該優(yōu)化算法的性能優(yōu)劣,另選取粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)、遺傳算法(Genetic Algorithm,GA)兩種元啟發(fā)式優(yōu)化算法,設(shè)定相同的初始條件。3種元啟發(fā)式優(yōu)化算法的迭代過程如圖4所示,從圖中可以看出,WOA優(yōu)化算法的最佳適應(yīng)度為96.8%,在第4次迭代即可達到最優(yōu)值;GA優(yōu)化算法的最佳適應(yīng)度為95.2%,在第28次迭代到最優(yōu)值,但是在第2次迭代和第21次迭代易陷入局部最優(yōu);PSO優(yōu)化算法的最佳適應(yīng)度為96%,在第44次迭代達到最優(yōu)值,但是在第2次迭代易陷入局部最優(yōu)。對比GA與PSO優(yōu)化算法,WOA優(yōu)化算法不容易陷入局部最優(yōu),更加穩(wěn)定且能夠較快達到最佳適應(yīng)度值。
經(jīng)過KPCA降維后的125組測試樣本輸入到已建立的故障診斷模型中,故障診斷結(jié)果如圖5所示。從圖5中可以看出,WOA-SVM模型故障分類準確度為95.2%,程序整體運行時間為4.36 s;GA-SVM模型故障分類準確度為93.6%,程序整體運行時間為5.91 s;PSO-SVM模型故障分類準確度為93.6%,程序整體運行時間為9.15 s。
考慮到誤差因素,分別對每種算法進行了10次故障預(yù)測實驗,以其均值作為最終的故障診斷結(jié)果,相比GA-SVM與PSO-SVM故障診斷模型,WOA-SVM故障診斷模型的訓(xùn)練分類準確率與測試分類準確率都可以達到等同或更高的分類水平,同時在運行時間上有著相當(dāng)?shù)膬?yōu)勢,如表4所示。
表4 SVM模型故障診斷結(jié)果對比表
火控系統(tǒng)的故障診斷與狀態(tài)評估是一項復(fù)雜的系統(tǒng)工程,針對多維度運行狀態(tài)數(shù)據(jù),KPCA算法可以降低數(shù)據(jù)維度,提高支持向量機故障診斷的效率,WOA可以對SVM的參數(shù)全局優(yōu)化,更加快速、穩(wěn)定地尋找最優(yōu)解,同時SVM可以有效地處理多分類問題。筆者以電源模塊為例,所提出的基于KPCA-WOA-SVM的故障診斷方法可以做到快速、準確診斷,同時也為火控系統(tǒng)其他模塊的故障診斷提供了借鑒。