樊茜 何雨昂 劉海山 宋茜 焦震
摘要
針對航天型號伺服系統(tǒng)中的伺服飛控軟件測試項(xiàng)多,故障診斷測試時間較長的問題,提出一種基于動態(tài)故障樹的伺服飛控軟件故障診斷方法。動態(tài)故障樹完整展示了導(dǎo)致被測軟件失效的邏輯錯誤,自上而下的分析軟件故障模式,選擇最少的測試點(diǎn)進(jìn)行故障定位,在保證較高故障診斷率的前提下,降低測試時間,提高故障診斷效率和軟件質(zhì)量。
【關(guān)鍵詞】動態(tài)故障樹 故障診斷 伺服飛控軟件
1 引言
在航天型號產(chǎn)品不斷增多的大背景下,航天嵌入式系統(tǒng)由過去的軟硬件協(xié)同完成基本功能,向“硬件軟件化”的趨勢發(fā)展,許多重要的功能由軟件實(shí)現(xiàn)。在導(dǎo)彈與火箭的伺服系統(tǒng)中,伺服飛控軟件的主要功能為接收控制系統(tǒng)的姿態(tài)指令,采集伺服機(jī)構(gòu)各傳感器信號,通過高速運(yùn)算精確控制噴管或空氣舵的擺角,軟件產(chǎn)品質(zhì)量直接影響甚至決定整個伺服系統(tǒng)的質(zhì)量。
伺服飛控軟件具有多指令、多總線、強(qiáng)實(shí)時等特點(diǎn),導(dǎo)致其測試項(xiàng)多,測試不方便且測試時間較長等難題。為保證飛控軟件的研制進(jìn)度,進(jìn)行故障診斷時需高效快速。如果故障定位不準(zhǔn)確,將潛在故障遺漏在產(chǎn)品中,則會嚴(yán)重影響軟件質(zhì)量。為了解決以上問題,本文將動態(tài)故障樹模型引入到軟件故障診斷的過程中,利用故障樹對軟件故障進(jìn)行分析。在保證較高故障檢查率的前提下,獲得最小測試集,縮短了故障診斷時間。
2 伺服飛控軟件的結(jié)構(gòu)組成
伺服飛控軟件一般由總線指令解析模塊、本地時鐘管理模塊、初始化模塊、軟件復(fù)位模塊、總線接口和模擬采集接口等組成。其中,總線指令解析功能主要完成總線與控制系統(tǒng)通信,接收姿態(tài)指令和返回遙測數(shù)據(jù)等功能。本地時鐘管理實(shí)現(xiàn)閉環(huán)運(yùn)算,精確控制伺服機(jī)構(gòu)的擺角,如圖1所示。
從以上分析看出,伺服飛控軟件具有多測試項(xiàng)、測試時間長等問題,傳統(tǒng)的測試方法所需的故障診斷時間遠(yuǎn)遠(yuǎn)超出了項(xiàng)目研制進(jìn)度允許的最大時間,需研究快速高效的故障診斷方法。
3 基于動態(tài)故障樹的伺服飛控軟件故障診斷方法
3.1 故障樹的知識表示與推理方法
3.1.1 靜態(tài)故障樹
軟件故障樹分析是指通過系統(tǒng)的演繹推算,檢查出可能導(dǎo)致系統(tǒng)失效的基礎(chǔ)原因,計(jì)算引發(fā)故障的所有組合模式,統(tǒng)計(jì)各底事件對整個系統(tǒng)的頂事件發(fā)生的影響程度,以及預(yù)測故障發(fā)生的概率等。
如果故障樹的某些底事件同時發(fā)生時,會觸發(fā)故障樹的頂事件,則稱這些底事件所組成的集合為這棵故障樹的割集。對于故障樹的任意一個割集,假如去掉其中任意的一個底事件不再觸發(fā)頂事件,則這個割集稱為這棵故障樹的最小割集。下面簡要介紹靜態(tài)故障樹最小割集計(jì)算方法,為論文動態(tài)故障樹模型的引出和分析提供鋪墊。
3.1.2 動態(tài)故障樹
靜態(tài)故障樹的邏輯門均為靜態(tài)邏輯門,當(dāng)系統(tǒng)的元素之間存在順序相關(guān)性,或者具有冷熱備件的情況,單純的靜態(tài)邏輯門已經(jīng)不能滿足分析的需求,因此引入了動態(tài)邏輯門的概念,可以表征系統(tǒng)的一些動態(tài)特性,比如時序關(guān)系、依賴關(guān)系。具有一個或一個以上動態(tài)邏輯門的故障樹稱為動態(tài)故障樹。
常用的動態(tài)邏輯門有優(yōu)先與門,順序門,冷備件門,熱備件門,功能相關(guān)門等。搭建伺服飛控軟件的動態(tài)故障樹主要用到優(yōu)先與門、順序門。這表明伺服飛控軟件時序要求高,時序邏輯復(fù)雜。
(1)優(yōu)先與門。優(yōu)先與門指定了與門中的基本事件的發(fā)生順序,是在與門的基礎(chǔ)上擴(kuò)展的動態(tài)邏輯門。假設(shè)如圖3,優(yōu)先與門具有兩個基本事件A和B,并定義了它們之間的發(fā)生順序?yàn)橄華后B。則只有當(dāng)先發(fā)生A且后發(fā)生B時系統(tǒng)才會故障,先發(fā)生B且后發(fā)生時A不會導(dǎo)致系統(tǒng)故障。同時A事件和B事件兩個中只發(fā)生一個或者都不發(fā)生,不會導(dǎo)致頂事件發(fā)生。
(2)順序門?!绊樞蜷T”與優(yōu)先與門類似,都表示基本事件的時序性,順序們可以由幾個優(yōu)先與門組合而成,如圖4。順序門指定基本事件按照一定的順序發(fā)生,即從左到右的順序,只有當(dāng)左邊的事件都先于右邊的事件發(fā)生,而且所有事件都發(fā)生時,其頂事件才會發(fā)生。在這個過程中,即使有一個事件不按照順序發(fā)生,事件就永遠(yuǎn)進(jìn)入不了頂事件。
3.2 故障診斷方法設(shè)計(jì)
基于動態(tài)故障樹的故障診斷方法,按照系統(tǒng)故障分析、動態(tài)故障樹生成、最小測試集求解的步驟對軟件進(jìn)行分解與分析。軟件故障診斷方法流程圖如圖5所示,頂事件的選取是分析的基礎(chǔ),是系統(tǒng)中關(guān)鍵功能可能出現(xiàn)的故障,是中間事件及底事件故障樹形成的主要元素。故障樹的形成過程就是列舉故障原因,分清故障間關(guān)系。最終系統(tǒng)分析與最小測試集求解是整個流程的目的。
軟件故障樹把被分析軟件當(dāng)作一個整體,可以很好的展示導(dǎo)致系統(tǒng)失效的邏輯錯誤,采用自上而下流程分析軟件系統(tǒng)故障模式。軟件故障樹結(jié)構(gòu)類似一個倒立的樹,樹的輸入輸出是故障結(jié)果與故障原因的邏輯因果關(guān)系。通過故障樹的演繹推算,檢查出可能導(dǎo)致系統(tǒng)失效的基礎(chǔ)原因,進(jìn)而找到系統(tǒng)的脆弱環(huán)節(jié),指導(dǎo)系統(tǒng)設(shè)計(jì)改進(jìn)。在開發(fā)早期,使用軟件故障樹方法確定需要重點(diǎn)設(shè)計(jì)的環(huán)節(jié)。在軟件研制階段后期,通過故障樹最小割集求解,完成快速故障診斷及定位工作。
基于以上原則,本文選取了伺服飛控軟件的總線指令解析模塊進(jìn)行仿真試驗(yàn),以驗(yàn)證本文方法的有效性。
4 仿真實(shí)驗(yàn)
仿真實(shí)驗(yàn)選取某型號伺服飛控軟件的總線指令解析模塊,利用故障注入的方法進(jìn)行仿真,并記錄傳統(tǒng)的專家代碼審查故障診斷時間和基于動態(tài)故障樹的故障診斷時間,對比兩種方法的優(yōu)勢和劣勢。
某型號伺服飛控軟件的總線指令解析模塊組成如圖6。
從圖6可以看出,該軟件的總線指令解析模塊由總線初始化、指令響應(yīng)等單元組成。該模塊的功能點(diǎn)多,測試點(diǎn)多,且該系統(tǒng)為伺服飛控軟件核心功能,直接影響整個系統(tǒng)的功能完備性。對軟件進(jìn)行故障注入,對比兩種診斷方式的診斷結(jié)果。如表1所示。
由于傳統(tǒng)專家代碼審查需對總線指令解析模塊的全部17個函數(shù),即17個測試點(diǎn)進(jìn)行查閱,傳統(tǒng)方法的故障診斷率依賴專家經(jīng)驗(yàn),所以使用傳統(tǒng)方法故障診斷時間長,診斷率有可能出現(xiàn)偏差。而本文方法通過構(gòu)造總線指令解析模塊的故障樹,分析出完整的故障情況,再求得該樹最小割集,得到最小測試集為9個。本文方法所需測試點(diǎn)的數(shù)目減少了大約50%,在縮短了故障診斷時間的同時,保證了高故障診斷率,實(shí)驗(yàn)結(jié)果表明本文方法有效可行。
參考文獻(xiàn)
[1]沈作軍.載人航天故障統(tǒng)計(jì)分析及其安全要求系統(tǒng)研究[J].中國航天,1997(11):21-24.
[2]龍兵,宋立輝,荊武興,姜興渭,李志.航天器故障診斷技術(shù)回顧與展望[J].北京:導(dǎo)彈與航天運(yùn)載技術(shù),2003.
[3]劉小明.基于故障樹和神經(jīng)網(wǎng)絡(luò)的運(yùn)載火箭故障診斷關(guān)鍵技術(shù)研究[J].電子科技大學(xué)碩士學(xué)位論文,2010.