安全關鍵系統(Safety-Critical System,SCS)是指由於某些行為或組合行為能夠引發整體系統失效,繼而導致財物損失、人員受傷等嚴重影響的系統,諸多安全關鍵領域如航空航天、核電系統、醫療裝置、交通運輸等領域的系統都屬於安全關鍵系統,而這些系統中大部分核心功能是由軟體實現的。
當前正處於“工業4.0”與“中國製造2025”的時代,隨著時代發展程序不斷加速,軟體功能也越來越強大、複雜性越來越高。近幾十年來,由軟體失效導致安全關鍵系統失效進而引發重大事故的情況屢見不鮮:
-
1996年,NASA發射Ariane5運載火箭在發射37秒後就被迫自行引爆,原因為控制飛行的軟體發生了故障:在64位浮點數跳至16位浮點數的過程中發生了整數溢位問題。本次事故造成了高達25億美元的經濟損失。
-
2009年,空客公司的A330-200型客機測速儀結冰,其飛控軟體仍提供了錯誤的攀升訊號。由於軟體未設定飛機的高度上限,最終導致飛機墜毀,祖上228名機組人員及乘客無一生還,其中包含9名中國乘客。
-
2018年10月以及2019年3月波音公司的兩起737Max飛機先後墜毀的事件導致了包括機組人員在內的346人死亡,中美歐等多個國家將該飛機列為禁飛機型,波音公司因此遭受了上億美元的損失。透過後續的事故調查,主要原因在於不完善的軟體設計和不合格的適航審查。
如何進一步提高機載軟體安全性,一直是航空航天領域重要的研究方向。
機載軟體安全性是指透過軟體驗證減少機載軟體生命週期內的錯誤,直到軟體錯誤在可控範圍內,進而保證軟體在使用過程中不具備引發系統危害的能力。軟體安全性分析是指對特定飛行危害發生的所有途徑和因素進行分析建模,得到危害場景的模型進行分析,識別機載軟體中可能造成嚴重後果的潛在危害,同時確定消除或降低危害的方法。
機載軟體的安全性需從兩個方面思考:
-
開展軟體安全性分析及驗證工作:從系統的安全性分析出發獲得系統安全需求,識別其中由軟體導致的危險,從而獲取軟體的安全規約,用於對軟體進行形式化驗證,保證軟體設計的正確性。
-
開展機載軟體的適航目標符合性驗證工作:將適航認證標準與軟體實現的功能相結合,確定軟體的安全等級,分配相應的適航目標,在軟體開發過程證明軟體滿足相應的適航目標來確保軟體的安全性。
飛控系統作為飛機機載系統的核心,是安全關鍵關聯度最高的機載系統軟體之一。飛控系統包括紛繁複雜的飛行控制軟體,主要完成飛行感測器資料處理、飛行姿態控制和餘度管理任務,對保證飛機安全性和可靠性起著關鍵作用,但是現實中與飛控軟體相關的研發測試過程依舊舉步維艱。其主要原因是硬體裝置研發成本高且週期長,並且軟體程式研發和測試過程嚴重依賴於實體硬體,同時也缺乏有效的除錯手段,無法快速、高效、準確地定位問題,導致軟體研發陷入冗長的週期迴圈中。為應對飛控系統軟體(特別是多核和多節點的複雜系統)的開發測試困境,模擬模擬技術應運而生。
數字化與工業相結合誕生了數字孿生技術。應用數字孿生技術搭建一套虛實同步的飛控系統,建立感測器、樣機與模擬模型同步執行的方式方法,即可將飛控機的邏輯控制模式應用在虛擬模型中,解決複雜嵌入式系統的硬體平臺在成本、可用性、可控性、可除錯性、可檢測性、容錯檢錯測試等方面的問題。
天目全數字實時模擬軟體SkyEye是基於視覺化建模的硬體行為級模擬平臺。基於SkyEye搭建的虛擬飛控機板卡可實現飛控軟體程式燒錄及執行功能,虛擬飛控機與硬體實物測試效果一致,滿足飛控軟體功能和效能要求,同時具備“軟體在環”技術驗證效果。專案還可與Keil、FMU環境整合模擬,進行計算週期精度驗證與控制資料解算驗證,解決飛控領域的安全關鍵問題。