唐 顏,徐天蒙,周 偉,王改堂,蔡睿潔
(西安現(xiàn)代控制技術(shù)研究所,西安 710065)
彈載計算機作為彈上的控制中心,其硬件性能是決定武器系統(tǒng)運行狀態(tài)的重要因素[1],因此需要對其硬件性能進行充分鑒定。
目前的鑒定方式中,彈載計算機的檢測狀態(tài)通過總線接口以十六進制數(shù)據(jù)形式輸出,形成對應(yīng)文本文件[2],測試人員對數(shù)據(jù)逐一分析判定是否存在異常。然而,文本文件中數(shù)據(jù)規(guī)模大,若要充分鑒定硬件性能,就面臨著巨大的數(shù)據(jù)分析,采用現(xiàn)有的人工分析方式耗時長且容易出現(xiàn)疏漏。
神經(jīng)網(wǎng)絡(luò)可用來對數(shù)據(jù)進行故障分類,但目前基于神經(jīng)網(wǎng)絡(luò)的分類方式多以單一特征量作為故障提取依據(jù);而彈載計算機的每幀檢測數(shù)據(jù)含有多個故障特征量,因此傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)方式難以直接進行分類。
針對上述問題,提出一種基于概率神經(jīng)網(wǎng)絡(luò)PNN的彈載計算機故障診斷方法。該方法可將每個文件的存儲數(shù)據(jù)由矩陣形式簡化為向量,以此作為數(shù)據(jù)輸入的特征向量;然后采用特定編碼方案,對所有特征量進行映射,得到與之對應(yīng)的唯一編碼輸出,形成故障編碼集;同時采用PNN對編碼集的輸入輸出進行模型訓(xùn)練,實現(xiàn)多故障特征量、大容量數(shù)據(jù)輸入下的故障分類,仿真結(jié)果驗證了該方法的可行性及有效性。
檢測結(jié)果中的數(shù)據(jù)幀由幀頭、測試項1結(jié)果、測試項2結(jié)果、…、測試項n結(jié)果、校驗和構(gòu)成。對于每一數(shù)據(jù)幀而言,將其測試結(jié)果以A表示:
Ai=[Ai1,Ai2,Ai3,…,Ain]
(1)
式中:n為檢測項數(shù)量;Ain為第i幀數(shù)據(jù)第n項檢測結(jié)果,取值為0(正常)或1(異常)??偣瞞幀數(shù)據(jù)則構(gòu)成一個故障輸入矩陣A:
(2)
式中,每列數(shù)據(jù)為同一檢測項的不同時刻的故障檢測結(jié)果,若按測試類別進行分類,則矩陣A又可表示為:
A=[X1,X2,…,Xn]
(3)
其中:
Xi=[A1i,A2i,…,Ami]T,i=1,2,…,n
(4)
接下來求取向量Xi的模Mi:
(5)
若Mi不等于0,則代表向量Xi中存在非零值,即第i類測試項存在異常,將Mi置1(i=1,2,…,n),按此方式,求出所有測試項對應(yīng)的模Mi,構(gòu)成新的向量:
B=[M1,M2,…,Mn]
(6)
由此,輸入數(shù)據(jù)由m×n矩陣A轉(zhuǎn)換為n維向量B,以此作為數(shù)據(jù)的特征向量,簡化數(shù)據(jù)分析規(guī)模。
若彈載計算機檢測項數(shù)量為n,每個檢測項包含正常和異常兩種情況,則共有2n種結(jié)果,當(dāng)所有檢測項均正常時,彈載計算機才算是檢測正常,剩下2n-1種測試情況均視為故障。
結(jié)合1.1節(jié)分析可知,由n項檢測數(shù)據(jù)構(gòu)成的故障輸入矩陣A,可轉(zhuǎn)換成n維向量B,作為檢測數(shù)據(jù)的特征向量。為了將特征向量B映射至2n-1種故障結(jié)果組成的故障空間,需求取故障編碼函數(shù)f,使每一種特征向量B的取值都與相應(yīng)的故障結(jié)果r一一對應(yīng),三者之間滿足關(guān)系式如下:
r=f(B)
(7)
由于向量B的組成元素為0或1,因此若將向量B中的元素組合視為二進制數(shù)據(jù)的高低位,則存在唯一的十進制數(shù)值與之相對應(yīng)。
如表1所示,確定故障特征向量B以后,可采用二進制轉(zhuǎn)十進制方式得到唯一數(shù)值,用來表示與之對應(yīng)的故障輸出結(jié)果r,實現(xiàn)故障輸入到輸出之間的映射。因此,故障編碼函數(shù)f表達式為:
4.3 詞匯密度與“個性風(fēng)格詞匯”之計算。詞匯密度計算方中,實詞是指名詞、動詞、形容詞和副詞四類。根據(jù)Biber(2000:62),計算公式是:詞匯密度=實詞數(shù)÷總詞數(shù)×100%。Ure指出,詞匯密度可以作為區(qū)別語體正式程度的一個指標(biāo),某文本的詞匯密度越高,則該文本的語體越接近正式端;反之,若該文本詞匯密度低,則可以說明,該文本越靠近非正式端,越接近自然口語。據(jù)Ure(1971:443-452)的研究,口語的詞匯密度大概通常低于40%,而在書面語里,詞匯密度通常要超過40%。
表1 故障編碼用例
f=M1×2n-1+M2×2n-2+M3×2n-3+…+Mn-1×2+Mn
(8)
通過式(8)即可得到故障輸入與故障輸出種類的映射關(guān)系,進而形成彈載計算機故障輸入輸出數(shù)據(jù)集,再利用概率神經(jīng)網(wǎng)絡(luò)對上述樣本進行模型訓(xùn)練,實現(xiàn)彈載計算機故障診斷。
PNN是徑向基網(wǎng)絡(luò)的一個分支,由輸入層、模式層、求和層、輸出層構(gòu)成,具體結(jié)構(gòu)如圖1[3]。
圖1 PNN結(jié)構(gòu)圖
如圖1所示,輸入層由n個神經(jīng)元構(gòu)成,其個數(shù)為輸入向量的維數(shù),輸入層計算輸入向量與所有訓(xùn)練樣本向量之間的距離。m個作為隱神經(jīng)元構(gòu)成模式層,該層采樣高斯函數(shù)作為激活函數(shù),計算測試樣本與訓(xùn)練樣本中的每一個樣本的高斯函數(shù)的取值,計算公式為[4]:
(9)
式中:σi為平滑系數(shù);Xi為訓(xùn)練樣本;Z為待訓(xùn)練的輸入樣本。
求和層的神經(jīng)元個數(shù)與總的類別數(shù)量一致,求取相同類別測試樣本對應(yīng)的模式層節(jié)點輸出之和:
(10)
式中:j為樣本種類,取值為1到m的整數(shù);n為輸入特征向量的維度;訓(xùn)練樣本中故障類型為j的樣本有tj個;i為故障類型j的樣本排列數(shù)值[5]。
輸出層輸出求和層神經(jīng)元中后驗概率最大者:
Y=max(Sj)
(11)
I=[B1,B2,…,Bm]T
(12)
式中m為輸入樣本個數(shù)。
若檢測項數(shù)量為n,則PNN故障模型輸出向量為Y=[1,2,3,…,2n-1]T。整個故障診斷流程如圖2所示。
圖2 彈載計算機故障診斷流程
現(xiàn)選取某型彈載計算機的環(huán)境試驗測試數(shù)據(jù)為樣本,對文中提出的測試方法進行檢驗,數(shù)據(jù)中檢測項包含F(xiàn)lash檢測結(jié)果、IO初始狀態(tài)、舵反饋1 AD采集精度、舵反饋2 AD采集精度、舵反饋3 AD采集精度、舵反饋4 AD采集精度共6項內(nèi)容。為了保證測試的準(zhǔn)確性,選取常溫、低溫、高溫、沖擊振動、低溫貯存、高溫貯存等多個環(huán)境條件下的試驗數(shù)據(jù)作為訓(xùn)練樣本,且覆蓋所有故障類型,現(xiàn)將上述條件各選取50個樣本,總共300組數(shù)據(jù),將其中250組作為訓(xùn)練組,剩下50組作為測試組,求出PNN的故障輸入矩陣I及故障模型輸出向量Y后進行模型訓(xùn)練。
采用Matlab中的newpnn函數(shù)創(chuàng)建PNN,對前文所述方法進行仿真驗證,將徑向基函數(shù)的分布密度θ分別設(shè)為0.3,0.5,0.8,1.0對分類結(jié)果進行驗證。
圖3~圖6為不同θ數(shù)值下,PNN對50組測試樣本的實際分類結(jié)果與預(yù)期分類結(jié)果的對比圖。其分類準(zhǔn)確率如表2所示。
圖3 θ=0.3故障分類結(jié)果
圖4 θ=0.5故障分類結(jié)果
圖5 θ=0.8故障分類結(jié)果
圖6 θ=1.0故障分類結(jié)果
表2 PNN分類結(jié)果統(tǒng)計
從表2可知,θ越大,分類準(zhǔn)確率越低,θ為0.3和0.5時,分類結(jié)果的準(zhǔn)確率均為100%,均可滿足對測試集樣本故障分類的要求。但是參數(shù)θ的大小對網(wǎng)絡(luò)逼近精度同樣有很大影響[6],θ越小,逼近的過程就越粗糙;θ越大,逼近過程就比較平滑[7]。因此θ取值為0.5時既可滿足故障分類的準(zhǔn)確率,也可確保逼近過程的平滑度。
提出了一種基于PNN網(wǎng)絡(luò)的故障診斷方法。該方法將測試數(shù)據(jù)由復(fù)雜的m×n矩陣轉(zhuǎn)化為n維向量,簡化了輸入數(shù)據(jù)的分析規(guī)模;通過二進制到十進制之間的數(shù)據(jù)轉(zhuǎn)換確立了故障輸入與輸出之間的唯一映射關(guān)系;最后利用PNN網(wǎng)絡(luò)實現(xiàn)了多故障特征量下的故障分類。仿真結(jié)果驗證了該方法的可行性和有效性,可以實現(xiàn)對彈載計算機的故障分類,且準(zhǔn)確率滿足要求。