樊茜 何雨昂 劉海山 宋茜 焦震



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