劉 宇 劉永超 /
(上海飛機設計研究院,上海201210)
航電系統(tǒng)安全性分析工具設計與研究
劉 宇 劉永超 /
(上海飛機設計研究院,上海201210)
隨著航電系統(tǒng)綜合化程度的不斷提高,傳統(tǒng)的安全性分析方法過于依賴工程經驗,難以保證失效模式的完備性。同時在系統(tǒng)迭代設計的過程中,由于系統(tǒng)的復雜性,會導致安全性分析工作量過大,增加了時間及經濟成本。針對上述問題,設計了一種自動化安全性分析工具,基于SysML描述語言建立安全性數據模型,采用路徑追溯的方法完成故障樹自動建模,并對生成的故障樹進行共模分析和區(qū)域安全性分析。以某系統(tǒng)為例的實驗結果表明,該工具能夠實現故障樹自動建模與分析,提高了安全性分析的效率和完備性。
航空電子系統(tǒng);故障樹;系統(tǒng)建模語言;安全性分析
航空電子系統(tǒng)結構經歷了從最初的分立式航電系統(tǒng)、聯合式航電系統(tǒng)到綜合式航電系統(tǒng)的發(fā)展歷程[1]。目前航空電子的發(fā)展以第三代為主,采用更少的、更加集中的處理單元取代了數量眾多的獨立處理器和外場可更換單元(LRU),在新一代民機上具有減少重量、節(jié)約維修費用、減少資源配置、提高資源效能、降低機組人員工作負載等重要的作用[2]。綜合化在帶來上述收益的同時,也增加了系統(tǒng)復雜性,如功能融合、硬件逐漸由軟件替代、系統(tǒng)與飛行員的交互增加,使得系統(tǒng)故障在綜合過程中的傳播和不確定性對系統(tǒng)安全性產生很大的影響。傳統(tǒng)的安全性分析方法(如FTA,FMEA)[3]主要依賴于工程經驗,并且與系統(tǒng)設計不是同步進行的,隨著系統(tǒng)復雜程度的提高,很難列舉出系統(tǒng)所有的失效模式和影響,同時由于系統(tǒng)設計的迭代,很難保證安全性需求能及時地反饋到系統(tǒng)設計中。上述問題的根本原因在于系統(tǒng)設計與安全性分析數據不能統(tǒng)一表示,使得系統(tǒng)設計不能展示其安全性屬性,安全性分析結果不能直接反饋到系統(tǒng)設計模型中[4]。
針對上述問題,需要對系統(tǒng)設計和安全性分析采用一致的形式化模型,并基于這個模型實現自動化安全性分析。本文基于SysML描述語言[5]的系統(tǒng)架構數據模型 ,研究依附于系統(tǒng)架構數據模型的安全性數據模型描述方法;接著,利用模型驅動安全性分析的思想,研究自動化故障樹分析方法和自動化安全隔離要求檢查方法;最后基于自動化分析方法,設計了快速安全性分析工具,并通過實驗驗證了該工具的有效性。
SysML是UML在系統(tǒng)工程應用領域的擴展,能對系統(tǒng)工程的各種問題建模,并有效支持需求說明、系統(tǒng)結構設計、功能行為和分配。
本文通過對基于SysML描述語言的系統(tǒng)架構數據模型添加安全性屬性來建立安全性數據模型。為了能實現自動化的安全性分析,需要定義出故障樹分析和安全隔離分析所需的數據,如表1所示。

表1 安全性分析數據要求
其中架構相關的屬性(如表1中1~5項)在架構建模中已定義,安全性數據(表1中6~9項)在架構建模時未獨立建立模型,需對其進行進一步描述。本文采用標簽值來描述分析所需的安全性數據模型,并通過斷言(Assertion)描述輸出異常態(tài)與輸入流之間的關系,增加的標簽值如表2所示。

表2 安全性數據模型描述
2.1 自動化故障樹生成方法
2.1.1 自動化故障樹生成原理
自動化故障樹生成原理如圖1所示。在構建SysML系統(tǒng)架構模型的同時建立安全性數據模型,并基于這兩種模型導出的XML文件,進行解析,自動生成故障樹,并根據需要選擇分析結果進行顯示,以支持故障樹分析。
在利用SysML模型數據自動生成故障樹時,第一步是將層次化結構展開,得到平面化的系統(tǒng)架構模型;其次,查找終端對象的失效模式,確定其為頂事件,并將其與其他對象的失效事件相連;然后利用路徑追溯的方法查找故障來源,根據與其他對象的數據流關系得到失效原因的可能組合,依此自動建立頂事件故障樹。基于SysML的航電系統(tǒng)架構模型數據自動生成故障樹的過程,只是按需查找失效原因,只關心與頂事件相關的其他失效事件。
基于上述自動生成故障樹基本思想,構建故障樹的過程就可以理解為將SysML結構轉化為故障樹結構的過程。在故障樹建模時,首先需要將安全性數據模型注入到SysML模型中,注入的過程就是基于這兩個模型,確定元素的故障模式、故障概率以及故障轉移方式。其中,故障模式分為喪失(Loss)和錯誤(Error)兩大類。最后,將注入的結果整理成故障樹的形式即可完成故障樹建模。
本文所述方法采用的是路徑追溯的故障樹建模方法,即從終端對象的故障模式開始,根據數據傳播的路徑逆推可能造成這種故障的原因,由此完成注入的過程。故障樹建模的基本單元可以描述為:對于某模塊,其功能故障原因必為其本身故障或數據流輸入故障,則有對如圖2所示的SysML基本單元,建立如圖3所示的故障樹基本單元。
2.1.2 自動化故障樹生成算法
基于自動化故障樹生成原理,故障樹生成算法如下:
步驟1,如果系統(tǒng)架構模型為層次模型,將其展開,使得模型中不包含可以被繼續(xù)劃分為其他元素的元素。
步驟2,確定故障樹頂事件:查看Package元素中的相關描述,根據失效模式標簽LossOfFunction和MalFunction確定頂事件。
步驟3,針對LossOfFunction,做如下操作:
1)對于某對象A,構造如圖4所示的故障樹基本單元。其輸出喪失由或門連接,故障原因為A本身喪失,即所對應的A功能喪失(如果已定義了LossOfFunction),以及A的輸入喪失。
2)對于某對象A的輸入喪失,若其數據流只來源于對象B,則該事件由或門連接,并且其中一個故障原因是B喪失,另一個原因是B輸入喪失。
3)對于某對象A的輸入喪失,若其數據流來源于多個對象,查看A與其他對象數據流關系,查找對個對象對喪失模式的表達式,將其映射為故障樹;如果不能找到相應的表達式,則默認這幾個對象是冗余備份的關系,用與門連接它們的輸出喪失事件。
4)對于沒有數據流來源的對象A,用A本身喪失代替A的輸入喪失和A的輸出喪失。
步驟4:針對MalFuntion的操作與步驟3類似,只是當某元素的數據流來源于多個元素時,如果不能找到相應的Assertion表達式,則用或門連接它們的輸出喪失事件,因為即使是冗余備份關系,任意一個輸入模塊錯誤均會導致該模塊發(fā)生錯誤。
2.2 自動化故障樹分析方法
本文在故障獨立假設前提下完成了故障樹建立,為了保證該假設成立,除了對故障樹進行基本的定性及定量分析,還需要對其進行共模分析和區(qū)域安全性分析。
2.2.1 故障樹分析
本文通過開源故障樹分析工具XFTA進行故障樹分析,將生成的故障樹文件轉化為符合OPENPSA標準的xml文件,然后將該xml文件作為XFTA的輸入,調用XFTA計算算法,計算每個中間事件的最小割集和概率,同時求出結構重要度、概率重要度和關鍵重要度。
2.2.2 共模分析
自動化共模檢查是為了支持共模分析,進一步分成最小割集、共模檢查單和共模事件檢查三個部分。
1)最小割集
基于故障樹割集計算算法,可以計算出某一個中間事件的割集,因此可以通過選擇故障樹中的某一個中間事件,將最小割集和一階最小割集通過可視界面顯示出來。
2)共模檢查單
基于ARP4761中對于共模源的分類,將共模分析檢查單和記錄表通過可視界面顯示出來,用于檢查兩個硬件類事件的共模源和錯誤,以支持自動化共模分析。
3)共模事件檢查
基于生成的故障樹結果,可以給出一個“與”門事件下不同分支中重復出現的相同硬件底事件,并通過可視化界面顯示出來,結合最小割集以及共模檢查單實現自動化共模分析。
2.2.3 區(qū)域安全性分析
自動化安全隔離檢查的目的是為了支持區(qū)域安全性分析,主要包括交集檢查、危險區(qū)域檢查和隔離距離檢查三個部分。
1)交集檢查
交集檢查是用于判斷故障樹中兩個硬件基本事件是否存在重疊區(qū)域。基于故障樹生成結果,識別出硬件類型的基本事件,并結合安全性數據模型中的位置和體積信息,生成兩個基本事件的立體模型,通過兩個立體模型的空間位置,判斷這兩個硬件類型的基本事件是否存在重疊區(qū)域。
2)危險區(qū)域檢查
危險區(qū)域檢查是用于判斷故障樹中同一“與”門下的兩個硬件類型的割集事件是否落入同一個危險區(qū)域。基于故障樹生成結果,識別出同一“與”門下的兩個硬件類型的割集事件,并結合安全性數據模型中的位置和體積信息,生成兩個基本事件的立體模型,然后基于人工輸入危險區(qū)域信息(位置和邊長),生成危險區(qū)域立體模型,通過兩個割集事件立體模型的空間位置對于危險區(qū)域立體模型的空間位置,判斷這兩個硬件類型的割集事件是否落入定義的同一危險區(qū)域。
3)隔離距離檢查
隔離距離檢查是用于判斷故障樹中同一“與”門下的兩個硬件類型的割集事件是否滿足距離要求。基于故障樹生成結果,識別出同一“與”門下的兩個硬件類型的割集事件,并結合安全性數據模型中的位置和體積信息,生成兩個基本事件的立體模型,計算兩個割集事件立體模型空間位置之間的距離,然后基于人工輸入距離要求信息,判斷這兩個硬件類型的割集事件是否滿足指定距離要求。
3.1 自動化安全性分析工具軟件架構
自動化安全性分析工具架構如圖5示,基于EA架構模型XML文件,實現自動化安全性分析。
3.2 系統(tǒng)架構分析模塊
系統(tǒng)架構分析模塊的功能是從EA架構模型的XML格式文件中提取信息,轉化成“EANode”類,如表3所示,由故障樹建模模塊直接利用建立故障樹。該模塊利用Linq到XML的編程接口來分析EA架構模型的XML文件。

表3 EANode類屬性描述
3.3 故障樹建模模塊
故障樹建模模塊的功能是將系統(tǒng)架構分析模塊提取出來的“EANode”類屬性轉化為故障樹結構的“TreeNode”類屬性,“TreeNode”類屬性定義如表4所示。在轉化過程中,通過分析“EANode”類屬性中各個對象之間的相關關系,產生故障樹結構數據,同時提取出概率計算需要的信息。

表4 TreeNode類屬性描述
3.4 故障樹圖形模型與用戶接口模塊
故障樹圖形模型與用戶接口模塊主要實現以下兩個功能:
1) 故障樹的圖形表達。根據故障樹建模模塊建立的故障樹,采用標準故障樹圖形符號將故障樹表示并顯示出來。
2) 用戶接口。主要包括三個部分:(1) 用戶可以手動對故障樹進行修改和編輯;(2) 用戶可以通過點擊圖形和標簽選擇顯示故障樹計算的結果;(3) 用戶可以通過輸入安全性要求,獲得安全性要求檢查結果。
故障樹的圖形表達是通過將“TreeNode”類屬性與“Northwoods.go,Northwoods.Xml,Northwoods.go.Layout”類庫進行關聯后實現故障樹的顯示。
故障樹計算結果的輸出功能通過結果文件的讀取操作實現,并直接顯示在故障樹圖形界面中。
3.5 故障樹計算模塊
故障樹計算模塊主要基于XFTA開源引擎實現故障樹概率計算,通過調用XFTA開源故障樹分析軟件來計算故障樹頂事件的概率。XFTA是故障樹評估引擎,包含計算概率、割集等的高效算法。其中,“深度優(yōu)先調用”功能用于獲得故障樹的各中間事件概率值和最小割集。
3.6 安全性分析模塊
安全性分析模塊根據故障樹計算模塊的結果,進行共模和安全隔離要求的檢查,并通過列表形式顯示出來。
1)ErrorList:列出了故障樹模型結構中的錯誤,例如或門必須有兩個或多于兩個子節(jié)點;
2)IntersecCheck:列出了故障樹中所有基本事件實體之間存在兩兩交互的情況;
3)MiniCutSet:根據選中的頂事件或中間事件,列出該事件的所有最小割集;
4)1-MiniCutSet:根據選中的頂事件或中間事件,列出該事件的所有一階最小割集;
5)CMAChecklist:列出同一與門下的割集事件,通過檢查單方式記錄兩兩事件之間的共模檢查結果及需求,從方案與設計、制造、安裝/綜合與試驗、操作、維修、測試、校準、環(huán)境八個方面進行檢查,每個檢查結果包括N/A(不適用)、待分析、派生緩解需求、獨立自明性四個方面;
6)CMEventList:列出同一與門下不同分支中重復出現的基本事件;
7)HazardAreaCheck:在屬性區(qū)“Zones”標簽下定義危險區(qū)域,包括中心坐標、長、寬、高,再重新計算,則會列出同一與門下割集事件實體是否落入該定義區(qū)域中;
8)DistanceHazard:列出同一與門下割集事件的某一層級實體距離定義的危險區(qū)域的距離;
9)SeparationCheck:列出同一與門下割集事件的某一層級實體之間距離。
為了驗證所設計的安全性分析工具的有效性,針對如圖6所示的系統(tǒng)EA模型,采用上述工具進行故障樹自動建模與分析。
4.1 故障樹建模
在自動化安全性分析工具中生成該EA模型的XML文件,并導入。安全性分析工具經過后臺計算,將XML文件直接轉化為故障樹,如圖7所示。
4.2 故障樹分析結果
針對每一個模型,工具會生成一個“Loss”類型和一個“Error”類型失效狀態(tài)的故障樹,分別顯示在兩個標簽中,同時在右側的“概要區(qū)”中顯示整個故障樹的情況,如圖7示。在顯示的故障樹中,同時也在頂事件、中間事件和基本事件名稱下方顯示了失效概率。
共模和安全隔離要求檢查結果如下:
1)ErrorList結果
在本例中不存在模型錯誤,因此ErrorList為空,如圖8所示。
2)IntersecCheck結果
在本例中,“Loss”類型的故障樹中檢查出6個存在交集情況的結果,如圖9所示,包括了包含(前2個)和交集(后4個)兩個類型。
3)MiniCutset結果
選擇“Loss”類型故障樹的頂事件,檢查出21個最小割集結果,如圖10所示,包括了1個一階割集、5個二階割集、14個三階割集和1個四階割集,并給出了該割集的失效概率以及對頂事件失效概率的貢獻(Contribution)。
4)1-MiniCutset結果
根據3)的結果,“Loss”類型故障樹的頂事件只有一個割集,如圖11所示。
5)CMAChecklist結果
根據3)的結果,列出同一與門下的割集事件兩兩事件,如圖12所示,針對每兩個事件進行共模檢查和記錄,評估是否需要派生需求。
6)CMEventList結果
在本例中不存在事件在同一與門下不同分支中重復出現,因此CMEventList為空,如圖13所示。

圖13 CMEventList結果
7)HazardAreaCheck結果
在進行危險區(qū)域檢查前,需要先定義一個危險區(qū)域,在本例中定義了一個區(qū)域1,如圖14所示,中心位置為(0,0,0),長寬高分別為1111、1111和1111的立方體區(qū)域。定義完危險區(qū)域后,進行重新計算,則會在“HazardAreaCheck”標簽下顯示,如圖15所示,共有38條,每條的“Cutsets”一列列出了同一與門下處于同一危險區(qū)域的所有割集,“Detail”一列說明了這些割集事件同處于哪一個危險區(qū)域中,“LRUs”一列歸納了這些割集同屬于哪些LRU。
8)DistanceHazard結果
在HazardAreaCheck結果基礎上,列出了所有處于同一危險區(qū)域的LRU事件,并給出了它們距離定義危險區(qū)域的距離,如圖16所示。
9)SeparationCheck結果
根據3)的結果,列出了同一與門下LRU級割集事件,并計算出兩兩之間的距離,給出各個LRU所處的矩形區(qū)域是否存在交叉的檢查結果,如圖17所示。
1) 本文設計的故障樹自動建模方法相比傳統(tǒng)手工建樹方法效率更高。
2) 本文設計的自動化安全性分析方法與傳統(tǒng)方法相比保證了安全性分析與系統(tǒng)設計的同步。
因此無論是從用時長短還是在有效性上,該工具采用的方法都優(yōu)于傳統(tǒng)手工建樹方法。
[1] Vesely W E, Goldberg F F, Roberts N H, et al. Fault tree handbook[R]. Washington DC: Nuclear Regulatory Commission, 1981.
[2] Wang G. Integration technology for avionics system[C]//2012 IEEE/AIAA 31st Digital Avionics Systems Conference. IEEE, 2012:7C6-1-7C6-9.
[3] Li Xiangming, Wu Xuejun. A software design method based on fault-tree analysis[J]. Ordnance Industry Automation, 2011, 30(8): 85-91.
[4] 谷青范, 王國慶,等. 基于模型驅動的航電系統(tǒng)安全性分析技術研究[J]. 計算機科學, 2015, 42(3): 124-127.
[5] Kyle Hampson. Technical Evaluation of the Systems Modeling Language (SysML)[J]. Procedia Computer Science, 2015, 44(1): 403-412.
Design and Research on Safety Analysis Tool for Avionics System
LIU Yu LIU Yongchao
(Shanghai Aircraft Design and Research Institute, Shanghai 201210,China)
With the continuous improvement of avionics system, the traditional method of safety analysis is difficult to guarantee the completeness of failure mode as it is too dependent on engineering experience. And in the process of system iterative design, due to the complexity of the system, the workload of safety analysis is too large, which increases the time and cost. Aiming at the above problems, an automated safety analysis tool was designed, the safety data model was established based on SysML, automatic fault tree was built by using route tracing method, and the common mode analysis and zone safety analysis were carried out on the generated fault tree. The experimental results of a system show that the tool can realize the automatic modeling and analysis of the fault tree and improve the efficiency and competeness of the safety analysis.
avionics system; fault tree; systems modeling language; safety analysis
10.19416/j.cnki.1674-9804.2017.03.002
劉宇男,碩士,助理工程師。主要研究方向:航電綜合試驗。Tel: 021-20864858,E-mail: liuyuchn@sina.com
V243
:A
劉永超男,研究員。主要研究方向:航電系統(tǒng)綜合設計與集成驗證。Tel: 021-20864760,E-mail: liuyongchao@comac.cc