胡磊, 柳楊, 郭卿超, 時雨, 馬春燕, 張建東, 張濤
1.沈陽飛機(jī)設(shè)計研究所總體氣動部, 遼寧 沈陽 110034; 2.沈陽飛機(jī)設(shè)計研究所綜合航電部, 遼寧 沈陽110034;3.西北工業(yè)大學(xué)軟件學(xué)院, 陜西 西安 710072; 4.西北工業(yè)大學(xué)電子信息學(xué)院, 陜西 西安 710072
AFDX(avionics full duplex switched ethernet)作為目前大型飛機(jī)的主干通信網(wǎng)絡(luò),其安全性尤為重要。近年來,故障檢測和診斷技術(shù)在機(jī)載通信設(shè)備中已有應(yīng)用,但AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷方法大多在機(jī)上無法快速搭建網(wǎng)絡(luò)驗證環(huán)境,更難以實現(xiàn)飛行狀態(tài)下實時監(jiān)控,并且需要專門的檢測工具,而且診斷工具價格昂貴。本文研究如何在機(jī)上已有環(huán)境下對AFDX網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)進(jìn)行實時監(jiān)控,同時結(jié)合故障檢測和診斷技術(shù),提供更加可靠的故障報警依據(jù),以此降低AFDX網(wǎng)絡(luò)設(shè)備管理的人力成本、時間成本和維護(hù)成本。本文貢獻(xiàn)如下:
1) 給出故障和故障類型的定義,為每類故障類型設(shè)計合理的故障特征參數(shù)標(biāo)識故障類型,并給出檢測結(jié)果和故障特征參數(shù)的關(guān)聯(lián)關(guān)系;
2) 針對檢測中的數(shù)據(jù)采集環(huán)節(jié)設(shè)計一級篩選二級緩存的數(shù)據(jù)存儲管理方法。改進(jìn)了傳統(tǒng)的基于被動式采集故障診斷方法,并進(jìn)行分析驗證;
3) 研制了一套針對AFDX網(wǎng)絡(luò)設(shè)備異常狀態(tài)監(jiān)控的工具,覆蓋每類故障的驗證范圍,并進(jìn)行相應(yīng)的實驗驗證。
目前常見的故障診斷方法主要有以下5種:
1) 基于解析模型的方法,其思想是利用檢測到的信息與解析模型得到的先驗信息做殘差分析再獲取故障診斷的結(jié)果[1]。目前仍有許多故障診斷研究使用解析模型中的狀態(tài)估計法[2]、參數(shù)估計法[3]以及等價空間法[4]等;
2) 基于數(shù)據(jù)驅(qū)動診斷方法,其通過采樣數(shù)據(jù)進(jìn)行建模[5]?;跀?shù)據(jù)驅(qū)動的診斷方法常用的有3種。第一種是基于信號處理的方法[6],該類方法通過監(jiān)測可測信號的輸入和輸出,分析振幅、相位、方差等特征值的變化,進(jìn)而診斷出系統(tǒng)中的故障[7]。第二種是基于統(tǒng)計分析的方法[8]。第三種是基于機(jī)器學(xué)習(xí)的方法[9];
3) 基于知識的檢測方法,根據(jù)先驗知識,建立所有故障事件的推理模型進(jìn)行故障診斷[10],領(lǐng)域知識包括專家系統(tǒng)、故障樹等。
4) 基于數(shù)據(jù)挖掘的方法能夠在大量的網(wǎng)絡(luò)流量數(shù)據(jù)中找到潛在的相關(guān)參數(shù)之間的關(guān)系[11],從而檢測異常;
5) 基于網(wǎng)絡(luò)演算的方法常用于網(wǎng)絡(luò)性能診斷[12],其原理基于非線性代數(shù)確定性排隊理論以及最小加代數(shù)和最大加代數(shù)的計算,能夠?qū)崟r評估設(shè)備的性能狀況[13]。但由于網(wǎng)絡(luò)演算能夠?qū)?jié)點(diǎn)的性能進(jìn)行實時分析,該方法也可以運(yùn)用于網(wǎng)絡(luò)故障診斷中[14]。
目前,國內(nèi)外的一些科研團(tuán)隊和科技公司開發(fā)了相應(yīng)故障診斷系統(tǒng)和方案平臺,部分產(chǎn)品已進(jìn)入市場,具有非常大的應(yīng)用價值。例如,由惠普公司的OpenView系統(tǒng)所提供的故障診斷服務(wù)[15],通過輪詢實現(xiàn)網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)控制,并以此做出故障告警[16];Cabletron公司的Spectrum網(wǎng)絡(luò)系統(tǒng),提出了基于案例推理的故障診斷方法[17],檢查不同的網(wǎng)絡(luò)對象和事件,歸納出同一本質(zhì)或故障[18]。SMARTS公司提供的產(chǎn)品InCharge是基于編碼本的診斷方法[19]。美國IBM公司開發(fā)的TivoliNetView是通過對設(shè)備進(jìn)行性能輪詢和狀態(tài)輪詢進(jìn)行診斷,但容易導(dǎo)致故障響應(yīng)的延遲,且不能找出相關(guān)故障的內(nèi)在聯(lián)系[20]。北京游龍網(wǎng)網(wǎng)絡(luò)科技有限公司研發(fā)的SiteView NNM是基于SNMP[21]的網(wǎng)絡(luò)設(shè)備管理軟件,它可以管理所有主流廠商的各種設(shè)備,能夠?qū)崟r獲取網(wǎng)絡(luò)設(shè)備的信息[22]。
近年來,雖說故障檢測和診斷技術(shù)在機(jī)載通信設(shè)備中已有應(yīng)用,但目前為止,AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷方法大多在機(jī)上無法快速搭建網(wǎng)絡(luò)驗證環(huán)境,更難以實現(xiàn)飛行狀態(tài)下實時監(jiān)控,并且需要專門的檢測工具,而且診斷工具價格昂貴。王竹清等[23]設(shè)計了一種采用并聯(lián)方法進(jìn)行數(shù)據(jù)采集監(jiān)控的方法,通過監(jiān)控設(shè)備、數(shù)據(jù)匯聚設(shè)備和數(shù)據(jù)分析設(shè)備完成網(wǎng)絡(luò)監(jiān)控,故障的診斷全部集中到數(shù)據(jù)分析設(shè)備中,提取網(wǎng)絡(luò)設(shè)備中所有通信數(shù)據(jù)進(jìn)行分析,該方式存在較大延時且占用大量帶寬。景文君等[24]借鑒航電系統(tǒng)向機(jī)載維護(hù)系統(tǒng)實時上報健康狀態(tài)并對啟動自檢命令做出響應(yīng)的機(jī)制,通過FIDO軟件對機(jī)載軟件進(jìn)行監(jiān)控并實時獲取維護(hù)數(shù)據(jù)。中國電子科技集團(tuán)公司通過機(jī)內(nèi)測試和自動測試裝備聯(lián)合進(jìn)行故障診斷[25],當(dāng)設(shè)備發(fā)生故障時,需要根據(jù)機(jī)內(nèi)測試的報告,將異常部件取出,采用自動測試裝備繼續(xù)檢測[26],這種離線方法的診斷效率低、成本高、時間長,且機(jī)內(nèi)測試自檢覆蓋面不夠,機(jī)載設(shè)備的大部分故障不能檢測,存在虛警的問題[27]。
本文研究面向AFDX網(wǎng)絡(luò)層面的故障監(jiān)控和診斷,應(yīng)用智能化的故障診斷方法和監(jiān)控機(jī)制,解決當(dāng)前機(jī)載網(wǎng)絡(luò)監(jiān)控難以保障實時性、額外的檢測設(shè)備昂貴等復(fù)雜問題,設(shè)計并實現(xiàn)了AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷工具,用于對機(jī)載網(wǎng)絡(luò)的運(yùn)行狀態(tài)、健康狀態(tài)進(jìn)行實時的監(jiān)控、管理和維護(hù)。
本文將AFDX網(wǎng)絡(luò)設(shè)備常見故障進(jìn)行分類,給出5類故障類型的定義,并在此基礎(chǔ)上,總結(jié)分析了共計23種故障及其故障特性。
定義1關(guān)鍵器件故障 該類故障指在網(wǎng)絡(luò)設(shè)備中處于管理控制或通信地位的元器件發(fā)生損壞,關(guān)鍵器件共11種,主要包括RTC、FLASH、CPU、SDRAM、DPRAM、硬件端口狀態(tài)、PCI總線,針對交換機(jī)額外選取管腳編程、默認(rèn)應(yīng)用程序及配置表、交換機(jī)芯片、引導(dǎo)代碼。
定義2物理層故障 該類故障是指網(wǎng)絡(luò)設(shè)備本身的接口故障和連接交換機(jī)的物理鏈路故障。當(dāng)接收端接收數(shù)據(jù)幀時出現(xiàn)以下3種情況時指示物理層故障:①字節(jié)非對齊;②CRC錯誤;③接收到相同的數(shù)據(jù)幀。
定義3VL鏈路層故障 該類故障是指VL鏈路層中提供的虛擬鏈路技術(shù)、流量整形模塊、完整性檢查模塊、冗余管理模塊和發(fā)送接收控制模塊功能失效,導(dǎo)致VL虛擬鏈路層無法或錯誤提供服務(wù),無法保障AFDX網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)拇_定性和可靠性。
定義4UDP/IP層故障 該類故障是指UDP/IP網(wǎng)絡(luò)協(xié)議的配置或操作錯誤、IP分片功能失效等。
本文定義的物理層故障、VL虛擬鏈路層故障、UDP/IP層故障類型的具體故障特性如表1所示。
表1 物理層、VL虛擬鏈路層、UDP/IP層故障類型標(biāo)識
表2 BIT檢測項及檢測方法
定義5設(shè)備性能故障 該類故障是指網(wǎng)絡(luò)設(shè)備高負(fù)載狀態(tài)導(dǎo)致存儲和處理數(shù)據(jù)的能力不足、速率下降,進(jìn)而導(dǎo)致網(wǎng)絡(luò)擁塞、數(shù)據(jù)丟包問題。本文探究網(wǎng)絡(luò)設(shè)備性能故障的指標(biāo)包括CPU利用率、內(nèi)存占用率、帶寬的利用率以及緩沖區(qū)滿標(biāo)識。
本節(jié)通過被動式采集方式對關(guān)鍵元器件、通信過程以及設(shè)備性能進(jìn)行狀態(tài)檢測,獲取當(dāng)前設(shè)備的運(yùn)行狀態(tài)數(shù)據(jù),設(shè)計合理的數(shù)據(jù)存儲管理方案保存獲取的數(shù)據(jù),并根據(jù)數(shù)據(jù)解析定義指示故障類型的特征參數(shù)。
2.2.1 網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)檢測
本文選取PBIT對關(guān)鍵器件的狀態(tài)進(jìn)行測試。PBIT是BIT的一種,在設(shè)備的工作過程中周期性地進(jìn)行檢測。執(zhí)行測試項時,根據(jù)測試結(jié)果將對應(yīng)的位清零或置1。表 2是BIT檢測項及檢測方法的描述,其中0表示檢測結(jié)果正常,1表示出現(xiàn)故障。
2.2.2 通信過程的狀態(tài)檢測
在AFDX網(wǎng)絡(luò)中,與底層關(guān)鍵器件的故障不同,物理層、VL虛擬鏈路層、UDP/IP層構(gòu)成網(wǎng)絡(luò)協(xié)議、流量整形、緩沖管理、分組調(diào)度等通信網(wǎng)絡(luò)運(yùn)行規(guī)則,捕獲并存儲網(wǎng)絡(luò)設(shè)備運(yùn)行過程中實際發(fā)送和接收的原始通信數(shù)據(jù),通過有效的協(xié)議分析可以反映數(shù)據(jù)在各層傳輸?shù)耐ㄐ胚^程。對其進(jìn)行有效性的統(tǒng)計可觀測網(wǎng)絡(luò)的錯誤,完成網(wǎng)絡(luò)故障的類型確認(rèn)。針對2.1節(jié)所述的故障類型,結(jié)合狀態(tài)檢測的方法,本文將關(guān)鍵器件故障的故障特征參數(shù)用0和1表示,0表示當(dāng)前檢測結(jié)果為正常,1表示當(dāng)前檢測結(jié)果為故障。
2.2.3 網(wǎng)絡(luò)性能狀態(tài)檢測
網(wǎng)絡(luò)中某一時刻的CPU利用率、內(nèi)存占用率、帶寬利用率并不能直接反映網(wǎng)絡(luò)中某一段時間的網(wǎng)絡(luò)性能,因此,為體現(xiàn)設(shè)備當(dāng)前的負(fù)載狀況需要對一段時間內(nèi)的性能數(shù)據(jù)進(jìn)行采樣處理。網(wǎng)絡(luò)狀態(tài)檢測程序?qū)υO(shè)備該段時間內(nèi)的網(wǎng)絡(luò)性能參數(shù)進(jìn)行抽樣統(tǒng)計之后,才可以得到網(wǎng)絡(luò)在本段時間內(nèi)的性能。
本文設(shè)計了基于多鏈路分組技術(shù)的網(wǎng)絡(luò)演算算法,用于驗證機(jī)載網(wǎng)絡(luò)的實時性和確定性。但網(wǎng)絡(luò)演算的方法并不能明確表明故障的具體問題,因此本文將其運(yùn)用于異常分析中,提出了一種綜合診斷的方法。
2.3.1 設(shè)備通信異常診斷方法相關(guān)定義及描述
本文基于網(wǎng)絡(luò)演算理論建立了針對設(shè)備通信異常的診斷方法。首先,將AFDX網(wǎng)絡(luò)抽象為有向圖G=(V,E)進(jìn)行建模。其中,V={v}為網(wǎng)絡(luò)中的設(shè)備集,包括AFDX網(wǎng)絡(luò)中的端系統(tǒng)和交換機(jī)。E={eij|vi,vj∈V}為設(shè)備vi指向設(shè)備vj的弧,其中vi稱為弧尾,vj為弧頭。則弧vi→vj表示vi到vj存在數(shù)據(jù)流。將[0,t]時間內(nèi)的總數(shù)據(jù)量表示為Rij(t),則弧尾vi在時間[0,t]內(nèi)的輸入過程記為Ri,in(t),計算過程表達(dá)為
(1)
式中:Ni,in為發(fā)送數(shù)據(jù)到弧尾vi的設(shè)備集,即Ni,in={vi|eij∈E}。
(1)式中,輸入過程的數(shù)據(jù)量由設(shè)備集Ni,in發(fā)送數(shù)據(jù)到vi的所有數(shù)據(jù)量求和得到。同理,當(dāng)vi作為弧頭時,在時間[0,t]內(nèi)的輸出過程記為
(2)
式中:Ni,out為接收來自弧頭vi數(shù)據(jù)的設(shè)備集,即Ni,out={vj|eji∈E}。
(2)式中,與輸入過程相反,輸出過程的數(shù)據(jù)量由vi發(fā)送數(shù)據(jù)到設(shè)備集Ni,out的所有數(shù)據(jù)量求和得到。
服務(wù)曲線是對網(wǎng)絡(luò)設(shè)備的服務(wù)能力進(jìn)行描述,從而對流的輸入、輸出行為進(jìn)行限制和描述[28]。
定義1服務(wù)曲線S(t)
若設(shè)備的輸入過程為Rin(t),設(shè)備的輸出過程為Rout(t),則當(dāng)存在函數(shù)S(t)滿足Rout(t)≥(Rin?S)(t)時,稱S(t)為設(shè)備的服務(wù)曲線。其中,當(dāng)設(shè)備vi正常工作時,為數(shù)據(jù)流提供的服務(wù)曲線函數(shù)為[24]
Si(t)=max(0,r(t-τ))
(3)
式中:Si(t)為設(shè)備vi的服務(wù)曲線函數(shù);r為設(shè)備服務(wù)的最低速率;τ為設(shè)備開始服務(wù)的最大時延。
(3)式中,服務(wù)曲線Si(t)表示設(shè)備服務(wù)能力的下界。
不同設(shè)備(端系統(tǒng)或交換機(jī))的性能等參數(shù)不同,可能導(dǎo)致網(wǎng)絡(luò)設(shè)備的服務(wù)曲線形態(tài)有所變化,但不影響對其異常情況的分析。
2.3.2 設(shè)備通信異常類型及診斷算法
通過上述定義及描述,設(shè)備正常服務(wù)時輸入、輸出過程滿足為Rout(t)≥Rin(t)?S(t),發(fā)送的數(shù)據(jù)總量不超過接收的數(shù)據(jù)總量,即Rout(t)≤Rin(t)。設(shè)備正常服務(wù)時對于數(shù)據(jù)積壓也有限制,當(dāng)數(shù)據(jù)積壓過大時,設(shè)備性能下降不在正常服務(wù)狀態(tài)范疇。因此需滿足在設(shè)備正常服務(wù)的任一時間段內(nèi)輸入的累計數(shù)據(jù)量不大于最低服務(wù)速率下服務(wù)的數(shù)據(jù)量總和,表示為在時間(s,s+t]內(nèi)有
(4)
且輸入過程Rin(t)是嚴(yán)格單調(diào)遞增的,即
?s,t>0,Rin(s+t)-Rin(s)>0
(5)
基于公式(5),設(shè)備服務(wù)正常時的輸入輸出過程如圖1所示。
圖1 設(shè)備服務(wù)正常時的輸入輸出過程
圖1中,輸入過程與輸出過程基本吻合。此時,設(shè)備通信異常診斷問題轉(zhuǎn)化為判斷檢測設(shè)備vi的輸入過程Rin(t)和輸出過程Rout(t),即當(dāng)在時刻t不滿足公式(4)時,則設(shè)備vi在[0,t]內(nèi)存在異常。
在設(shè)備通信的異常診斷中,將非正常工作狀態(tài)分為以下3種異常情況:無服務(wù)、服務(wù)減慢、錯誤服務(wù),診斷以上3種異常的算法時間復(fù)雜度均為O(1)。
1) 無服務(wù)通信異常類型分析
無服務(wù)指設(shè)備不再對數(shù)據(jù)流提供服務(wù),不再向網(wǎng)絡(luò)系統(tǒng)中發(fā)送數(shù)據(jù)。此時對任意形式的輸入過程和任意積壓,在無服務(wù)(s,s+t]期間,均有
Ri,out(s+t)-Ri,out(s)=0
(6)
同時,在無服務(wù)期間不保存接收的數(shù)據(jù)。若時刻s+t恢復(fù)服務(wù)則對s+t后接收的數(shù)據(jù)服務(wù)。設(shè)備無服務(wù)時的輸入輸出過程如圖2所示。
圖2 設(shè)備無服務(wù)時的輸入輸出過程
在時間段的中段,輸出過程數(shù)據(jù)量停止增加且保持到該時間段結(jié)束,表明設(shè)備發(fā)生無服務(wù)異常,此時的判定條件為:若在時刻s出現(xiàn)Rout(s)<(Rin?S)(s)且Rout(s+t)-Rout(s)=0判定設(shè)備在時刻s無服務(wù),若在時間(s+τ,s+t]不滿足Rout(t)≥Rin(t)?S(t)則判定設(shè)備在時間(s,s+t]內(nèi)無服務(wù)。
2) 服務(wù)減慢通信異常類型分析
服務(wù)減慢指設(shè)備為數(shù)據(jù)量服務(wù)的速率遠(yuǎn)小于數(shù)據(jù)輸入速率。此時對任意形式的輸入過程和積壓,在服務(wù)減慢(s,s+t]期間,存在r0>0滿足
(7)
發(fā)生設(shè)備服務(wù)減慢時的輸入輸出過程如圖3所示。
圖3 設(shè)備服務(wù)減慢時的輸入輸出過程
3) 錯誤服務(wù)通信異常類型分析
錯誤服務(wù)指設(shè)備大量發(fā)送與輸入過程無關(guān)的數(shù)據(jù)。此時對任意形式的輸入過程和積壓,在錯誤服務(wù)(s,s+t]期間,存在
(8)
發(fā)生設(shè)備錯誤服務(wù)時的輸入輸出過程如圖4所示。
圖4 設(shè)備錯誤服務(wù)時的輸入輸出過程
設(shè)備輸入輸出過程都是通過數(shù)據(jù)包的形式,因此,為了建立連續(xù)的輸入輸出過程模型,本文設(shè)置了一個采樣周期,該采樣周期遠(yuǎn)大于連續(xù)發(fā)送2條消息的時間間隔,且采樣周期保持不變。因此,離散的輸入輸出過程可以被視為連續(xù)的,不影響檢測結(jié)果。
基于上述3種通信異常類型分析,本文使用type值表示設(shè)備狀態(tài),其中,0為正常,1為無服務(wù),2為服務(wù)減慢,3為錯誤服務(wù)。設(shè)備通信異常類型診斷算法如Algorithm 1所示。
Algorithm 1. Node communication abnormal diagnosis
Input:Rin——the input process after sampling
Rout——the output process after sampling
δt——sampling period
tdelay——after the sample delay
Output:type
1.llowbound←0;
2.t←0;
3. type←0;
4.llowbound←min(llowbound+rδt,Rin[t-tdelay]);
5. if (llowbound>Rout[t]andRout[t]==Rout[t-1]) then
6. type←1;
7. else if (llowbound>Rout[t]andRout[t]>Rout[t-1]) then
8. type←2;
9. else if (Rout[t]>Rin[t]) then
10. type←3;
11. end if
Algorithm 1中,輸入過程Rin和輸出過程Rout均為采樣后的結(jié)果,δt為采樣周期,delay為采樣后的延遲。首先,初始化下界、時間、狀態(tài)為0。由于當(dāng)前type類型碼為0,通過公式(9)更新下界。
llowbound=min(llowbound+rδt,Rin[t-tdelay])
(9)
式中:llowbound為累積數(shù)據(jù)下界/bit;r為設(shè)備服務(wù)的最低速率。
若更新后的下界大于當(dāng)前時刻t的輸出過程且當(dāng)前時刻t的輸出過程與前一時刻t-1的輸出過程相等,則判定狀態(tài)為1,即設(shè)備服務(wù)停止。若更新后的下界大于當(dāng)前時刻t的輸出過程且當(dāng)前時刻t的輸出過程大于前一時刻t-1的輸出過程,則判定狀態(tài)為2,即設(shè)備服務(wù)緩慢。當(dāng)輸出過程大于輸入過程時,更新type類型碼為3,即認(rèn)為此時發(fā)生設(shè)備錯誤服務(wù)。若均不滿足上述情況,認(rèn)為當(dāng)前設(shè)備通信狀態(tài)正常。
2.3.3 異?;謴?fù)的診斷算法
由于部分干擾而產(chǎn)生的偶發(fā)異常對于設(shè)備來說不必進(jìn)行維護(hù)和處理,通過檢測出設(shè)備從異常恢復(fù)正常狀態(tài)的時間,對比發(fā)生異常的時間可獲悉偶發(fā)的異?,F(xiàn)象。
在判定設(shè)備通信產(chǎn)生異常后,進(jìn)入后續(xù)的異常恢復(fù)檢測過程,首先在時刻s對輸入過程和輸出過程進(jìn)行初始化:
(10)
在設(shè)備異常服務(wù)恢復(fù)的診斷中,分為以下3種異常情況:設(shè)備無服務(wù)恢復(fù)、設(shè)備服務(wù)減慢恢復(fù)、設(shè)備錯誤服務(wù),診斷以上3種異常的算法時間復(fù)雜度均為O(1)。
1) 設(shè)備無服務(wù)恢復(fù)算法
設(shè)備從無服務(wù)到恢復(fù)正常的判定條件為:s時刻處于服務(wù)停止?fàn)顟B(tài),若?t>0,Rout(s+t)-Rout(s)>0時,表明設(shè)備已開始發(fā)送數(shù)據(jù),判定設(shè)備在時刻s+t恢復(fù)正常,若在時間(s+τ,s+t]滿足?a∈(s+τ,s+t],Rout(s+t)-Rout(s)>0,表明設(shè)備恢復(fù)服務(wù),則判定設(shè)備在時間(s,s+t]內(nèi)恢復(fù)正常。Algorithm 1判定后,此時,type類型碼為1,根據(jù)Algorithm 2進(jìn)行恢復(fù)正常狀態(tài)診斷。
Algorithm 2. Node service stopped
Input:Rin——the input process after sampling
Rout——the output process after sampling
Output:type
1.llowbound←0;
2.t←0;
3. type←1;
4. if (Rout[t]>Rout[t-1]) then
5.Rin←Rin-Rin[t];
6.Rout←Rout-Rout[t];
7.llowbound←0;
8. end if
Algorithm 2中,輸入過程Rin和輸出過程Rout均為采樣后的結(jié)果,在1~3行,對下界、時間、狀態(tài)分別初始化。當(dāng)時刻t的輸出過程大于前一時刻t-1的輸出過程時,分別更新輸入過程、輸出過程和下界。如5~7行所示。
2) 設(shè)備服務(wù)減慢恢復(fù)算法
設(shè)備從服務(wù)減緩到恢復(fù)正常的判定條件為:s時刻處于服務(wù)緩慢狀態(tài),若?t>0,Rout(s+t)-Rout(s)>rt時,表明設(shè)備發(fā)送速率增加,則判定設(shè)備在時刻s+t已恢復(fù)正常,輸出過程滿足?a∈(s,s+τ],b-a,Rout(b)-Rout(a)>r(b-a)。此時執(zhí)行恢復(fù)算法如Algorithm 3所示。
Algorithm 3. Slow node service
Input:Rin——the input process after sampling
Rout——the output process after sampling
δt——sampling period
tdelay——after the sample delay
T0——after sampling normal continuous upper bound
Output:type
1.llowbound←0;
2.t←0;
3.tcon←0;
4. type←2;
5.llowbound←min(llowbound+rδt,Rin[t-tdelay]);
6. if (Rout[t]-Rout[t-1]>r×tdelay) then
7. type←1;
8. end if
9. if (llowbound 10. if (tcon≥T0) then 11. type←0; 12.tcon←0; 13. else 14.tcon←tcon+1; 15. end if 16. else 17.tcon←0 18. end if Algorithm 3中,δt為采樣周期,delay為采樣后的延遲。初始化正常持續(xù)時間為0,狀態(tài)為2,如第3~4行所示。接下來通過公式(11)更新下界。 llowbound=min(llowbound+rδt,Rin[t-tdelay]) (11) 式中:llowbound為累積數(shù)據(jù)下界/bit;r為設(shè)備服務(wù)的最低速率;δt為采樣后周期;tdelay為采樣后的時延。 如第6行所示,若當(dāng)前輸出過程與前一時刻輸出過程的差大于設(shè)備服務(wù)的最低速率與采樣后時延的乘積,則更新type類型碼為1。若下界小于當(dāng)前輸出過程且正常持續(xù)時間大于正常持續(xù)時間上界,更新type類型碼和正常持續(xù)時間為0。若下界小于當(dāng)前輸出過程而正常持續(xù)時間小于等于正常持續(xù)時間上界,將正常持續(xù)時間加1。否則,正常持續(xù)時間繼續(xù)保持為0。 3) 設(shè)備錯誤服務(wù)恢復(fù)算法 設(shè)備從錯誤服務(wù)狀態(tài)到恢復(fù)到正常服務(wù)狀態(tài)應(yīng)滿足:在時刻s初始化,若?t>0使得初始化后的輸入輸出過程在 (s,s+t]內(nèi)滿足Rout(t)≤Rin(t)時,表明設(shè)備發(fā)送的數(shù)據(jù)小于接收的數(shù)據(jù),從時刻s后由錯誤服務(wù)狀態(tài)恢復(fù)為正常服務(wù)狀態(tài)。具體過程如Algorithm 4所示。 Algorithm 4. Node error output Input:Rin——the input process after sampling Rout——the output process after sampling δt——sampling period tdelay——after the sample delay T0——after sampling normal continuous upper bound Output:type 1.llowbound←0; 2.t←0; 3.tcon←0; 4. type←3; 5. if (tcon==0) then 8.llowbound←0; 9.tcon←0; 10. end if 11. if (tcon>0) then 12.llowbound←min(llowbound+rδt, 14. if (tcon≥T0) then 17. type←0; 18.tcon←0; 19. end if 20. end if 21. end if Algorithm 4中,前3行與算法3一致,初始化下界、時間、正常持續(xù)時間為0,狀態(tài)為3。若正常持續(xù)狀態(tài)為0,則更新輸入輸出過程。并將下界、正常持續(xù)時間重新賦值為0。若正常持續(xù)時間大于0,通過公式(11)更新下界。在t時刻,若初始化后的輸入過程小于輸出過程,且正常持續(xù)時間不小于采樣后正常持續(xù)時間上界,則使用初始化后的輸入輸出過程更新輸入輸出過程。同時,置type類型碼和正常持續(xù)時間為0。 2.3.5 基于通信數(shù)據(jù)的異常診斷流程 網(wǎng)絡(luò)故障診斷不僅僅是檢測網(wǎng)絡(luò)連通與否、當(dāng)前設(shè)備是否通信異常,而需要用更為具體的標(biāo)準(zhǔn)去衡量和判別當(dāng)前網(wǎng)絡(luò)的故障問題。在網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)檢測中已完成數(shù)據(jù)幀的捕獲和存儲,而設(shè)備通信異常診斷提供通信異常的時間點(diǎn),因此故障類型分析就是提取該時間點(diǎn)前后存儲的歷史數(shù)據(jù)幀,對數(shù)據(jù)幀進(jìn)行校驗,通過統(tǒng)計相應(yīng)特征參數(shù)反映當(dāng)前網(wǎng)絡(luò)的具體故障問題。本文提出的基于通信數(shù)據(jù)的異常診斷流程如圖5所示。 圖5 IP頭部校驗和特征參數(shù)統(tǒng)計 故障診斷實驗分為發(fā)生異常診斷階段和異?;謴?fù)的診斷階段。故障診斷流程如圖6所示。首先根據(jù)設(shè)備的輸入輸出過程建立設(shè)備通信異常診斷,分析設(shè)備是否發(fā)生異常以及何時發(fā)生異常,當(dāng)發(fā)生異常時通過查詢歷史的通信數(shù)據(jù)診斷出具體的故障類型。當(dāng)發(fā)生異常后才進(jìn)入異常恢復(fù)診斷流程,重置輸入輸出過程,根據(jù)異常類型進(jìn)行相應(yīng)的異?;謴?fù)檢測,當(dāng)診斷為異?;謴?fù)后可停止故障類型分析過程,降低資源消耗。 圖6 故障診斷流程 3.2.1 狀態(tài)檢測測試用例設(shè)計 狀態(tài)檢測測試用例主要測試對注入的關(guān)鍵器件故障、通信過程故障、設(shè)備性能故障能否準(zhǔn)確進(jìn)行檢測,具體測試用例集如下: 狀態(tài)檢測測試用例集的標(biāo)識為NMDF-Test-01,模塊名稱為狀態(tài)檢測。 測試項分別為:①檢測器件功能;②獲取設(shè)備性能參數(shù);③數(shù)據(jù)幀捕獲;④更新故障參數(shù)。 測試輸入為系統(tǒng)控制句柄(包括初始化結(jié)果和系統(tǒng)狀態(tài)等信息)。 針對該類用例集合的測試步驟為:①輸入系統(tǒng)控制句柄;②調(diào)用狀態(tài)檢測主接口,依次啟動器件檢測線程、數(shù)據(jù)幀捕獲檢測線程和獲取設(shè)備性能參數(shù)的線程;③更改系統(tǒng)狀態(tài)為激活狀態(tài);④注入硬件端口故障、FLASH故障、VL錯誤的數(shù)據(jù)幀、MAC源地址錯誤的數(shù)據(jù)幀;⑤根據(jù)檢測結(jié)果,更新故障參數(shù)。 期望的測試結(jié)果為:①系統(tǒng)狀態(tài)為未激活時,狀態(tài)檢測線程掛起,不執(zhí)行檢測操作;②未注入故障之前,所有故障參數(shù)均為0;③注入故障之后硬件端口故障參數(shù)、FLASH故障參數(shù)計數(shù)均為1,緩沖區(qū)中tail的值+2。 3.2.2 故障診斷測試用例設(shè)計 故障診斷測試用例主要測試能否診斷發(fā)生異常以及異?;謴?fù),并能在發(fā)生異常時進(jìn)行故障類型的分析。具體測試用例集如下: 故障診斷測試用例集的標(biāo)識為NMFD-Test-02,模塊名稱為故障診斷。 測試項分別為:①加載診斷策略;②異常類型診斷;③異常恢復(fù)診斷;④數(shù)據(jù)幀解析和特征參數(shù)統(tǒng)計;⑤診斷結(jié)果生成。 測試輸入為系統(tǒng)控制句柄、故障參數(shù)。 針對該類用例集的測試步驟為:①輸入系統(tǒng)控制句柄和故障參數(shù);②將系統(tǒng)狀態(tài)改為策略加載狀態(tài);③調(diào)用故障診斷主接口,開啟異常診斷線程;④將系統(tǒng)狀態(tài)改為激活狀態(tài);⑤依次注入設(shè)備無服務(wù)異常、減緩服務(wù)異常、錯誤服務(wù)異常,并同時注入VL錯誤和MAC源地址錯誤的數(shù)據(jù)幀。 期望的測試結(jié)果為:①系統(tǒng)狀態(tài)為策略加載狀態(tài)時,故障診斷線程掛起,不執(zhí)行診斷操作;②系統(tǒng)狀態(tài)為激活狀態(tài)時,開始異常診斷,檢測到異常發(fā)生的時間,并生成診斷結(jié)果;③故障類型分析正確執(zhí)行;④診斷結(jié)果與累計的故障特征參數(shù)與實際注入的故障相符;⑤成功檢測到異?;謴?fù)的時間,并停止故障類型分析。 為保證AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷工具可以在機(jī)載軟件系統(tǒng)上正常運(yùn)行,本文從實時性、并發(fā)性等方面對工具進(jìn)行非功能性測試,以確保工具自身滿足機(jī)載軟件的要求。 1) 實時性測試 實時性是機(jī)載軟件質(zhì)量的重要評價指標(biāo),本文通過“程序插樁”來計算各功能的運(yùn)行時間。本文插樁主要記錄程序運(yùn)行時刻,具體測試方案及結(jié)果如表3所示。 2) 并發(fā)性測試 AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷工具包含多進(jìn)程和多線程,本文通過模擬運(yùn)行時情況來測試工具的并發(fā)性,具體測試方案及結(jié)果如表4所示。 表4 并發(fā)性測試 本文是根據(jù)機(jī)載故障診斷的局限性以及AFDX網(wǎng)絡(luò)故障診斷的復(fù)雜性等問題,結(jié)合實際的項目需求,研究了AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷技術(shù)方案,并設(shè)計實現(xiàn)了AFDX網(wǎng)絡(luò)設(shè)備監(jiān)控診斷工具,可以很大程度上拓寬機(jī)載維護(hù)的范圍,能在網(wǎng)絡(luò)層面上進(jìn)行監(jiān)控,降低虛警概率,提高了診斷效率,能夠?qū)崿F(xiàn)對AFDX網(wǎng)絡(luò)的實時監(jiān)控和診斷。3 實驗驗證
3.1 網(wǎng)絡(luò)設(shè)備故障診斷實驗流程
3.2 網(wǎng)絡(luò)設(shè)備故障診斷測試用例設(shè)計
3.3 實驗結(jié)果
4 結(jié) 論