機載軟件的安全性是一個永不過時的話題,通常我們都會從系統架構、故障保護、冗余備份等技術層面來考慮這個問題,但是當面對民用航空特別是大型民用飛機嚴格的適航性要求時,僅僅擁有技術上的保障是遠遠不夠的。我們需要換個角度來思考設計方法、設計流程、設計工具以及設計管理等方面的問題。我們有能力設計出優秀的系統和算法,但是如果設計過程不可靠或者即使是可靠的我們卻無法證明,我們研制的飛機在國際市場的競爭中會受到極大的挑戰。
基于模型設計(Model Based Design,簡稱MBD)是開發復雜控制系統和嵌入式系統的有效途徑。邁斯沃克(MathWorks)公司為MBD提供了完整的MATLAB/Simulink工具鏈,在眾多行業特別是航空航天領域已經得到了廣泛的應用,在飛行控制系統、發動機控制系統以及機載航電系統的設計中,已被霍尼韋爾和貝爾直升機等航空企業所采用。
在最新發布的DO-178C標準中,MBD以附件DO-331的形式出現,對MBD相關的目標和輸出都進行了詳細的定義,可以從適航標準的發展看到MBD必然成為機載軟件設計的行業趨勢,采用MBD對于機載軟件的適航取證也是最為有效的。
MBD設計思想
MBD總體講是一種設計思想或者設計方法,具體講就是MBD的流程、工具與平臺。顧名思義,MBD的核心是模型,也就是我們通常所說的Simulink模型,圍繞模型,MBD思想中包括以下四個關鍵要素:可執行的需求描述、仿真環境下的設計、由模型自動生成的代碼和貫穿始終持續性的驗證。
MBD關鍵要素
看似非常簡單的四句話,但每一個要素都深刻反映著對傳統設計流程的改進。在MBD中,傳遞信息的載體已經不僅僅是文檔,而是可以圖形化表述并且產生運行結果的模型;設計過程不再是靜態的或者依賴于眾多硬件環境的方式,而是可以通過仿真快速設計和修改的多輪次迭代設計過程;模型可以自動生成更加標準化的源代碼,使設計師從繁瑣的手寫編碼中解脫出來;驗證不再需要等到編碼完成之后的系統集成時,而是在模型設計階段就開始早期的驗證,將設計缺陷發現并解決于早期,有助于系統設計質量的提高和成本的降低。
需要特別說明的一點,大家有時會認為MBD僅僅是設計層面的事情,對于軟件的實現和驗證似乎還涉及不到,這主要是由于大家對MATLAB/Simulink的認識還停留在仿真工具的層面造成的。從上述的四個關鍵點不難看出,我們所講的MBD,不僅僅局限于基本的設計范疇,已經擴展到實施甚至驗證的范疇。也就是說完整的MATLAB/Simulink工具鏈不僅僅是仿真工具,而是涵蓋了建模、仿真、代碼生成、驗證與確認、項目管理、文檔管理、工具定制和適航認證等多種功能的全流程綜合性系統設計平臺。
國內機載軟件研制存在問題
國內飛機設計單位大多仍在沿用傳統的軟件設計流程,雖然越來越多的單位正在積極嘗試MBD流程,但總體來講仍然處于MBD能力建設的初級階段,對于MATLAB/Simulink工具鏈的應用還處于從算法仿真向自動代碼生成和模型早期驗證的過渡階段。工具的應用需要與流程有效集成才能發揮其最大的效用,傳統的設計流程過于粗放,采用MBD需要重新構建詳細的可執行流程,并配合相應的工具集成與定制,這是機載軟件研制過程改進中的重點和難點。
對于傳統設計流程的改進目前存在以下具體問題:對應DO-178B要求,傳統設計流程多項驗證環節缺失,想要實現全部環節需要巨大的工作量。如若采用MBD流程,設計單位需要提高工程師的能力,如需求定義能力、建模能力、代碼生成能力等;需要改變部門間的工作接口,由傳統的文檔交互變為模型交互,所有部門將圍繞共同的模型開展工作;需要重新定義不同工程師的工作重心,如控制工程師的工作將從單純的需求定義和算法設計擴展延伸到代碼的生成和模型驗證,而軟件工程師的工作將重點關注在軟件架構、代碼生成工具配置及代碼的生成、底層軟件開發以及系統集成等。
當前國內飛機設計單位型號多、任務緊、人員少的客觀現實造成流程改進的優先級不高,從而進展緩慢。但是值得一提的是,越來越多的單位已經意識到了MBD的必要性,并且已經開始了積極的嘗試。
MBD確保設計符合適航標準
MBD可以從流程、工具和平臺三個層面來考慮,流程是靈魂,工具是骨骼,平臺是軀干,三者融為一體才能發揮最大的效用。首先需要建立基于模型的設計開發和驗證流程,然后選用合適的工具輔助流程的實現,最后進行工具和流程的集成從而構建組織統一的工作平臺。
MBD設計技術路線
總體流程
相比傳統的控制系統開發流程,MBD流程在完整性上得到很大的提升,包含了設計環節、實施環節、驗證環節等,解決了傳統設計流程中需求理解差異、早期驗證困難、代碼編寫耗時等問題。
設計環節基于高層需求進行模型的設計,在模型設計過程中可以不斷通過仿真檢驗設計結果從而反復迭代優化設計。模型所代替的就是傳統設計流程中詳細設計文檔。實施環節通過自動生成代碼實現從設計(Design)到實施(Implementation)的過渡。這樣極大地簡化傳統設計流程中多次建模的重復勞動,使工程師可以更加專注于各自的專業。驗證環節是貫穿于項目始終的,這在傳統設計流程中是很難實現的,特別是在模型設計階段,就可以開展針對設計的基于需求的功能性測試,以及模型的覆蓋率測試,而且早期驗證的測試用例可以在代碼驗證階段得到重用。驗證環節最為重要的是完整性,在這個環節中每一個驗證活動都會對應DO-178B中的具體條款,保證符合標準的前提下滿足系統的安全性要求。
MBD符合DO-178B/C流程
(注:粗實線代表設計環節;細實線代表實施環節;虛線代表驗證環節)
工具平臺
工具的價值在于實現工作流程,減少手工勞動,提高工作效率,工具應用的基礎是流程的存在。對應MBD符合DO-178B/C的流程,MATLAB/Simulink完整的工具鏈在每個環節都有相應的工具輔助實現這個流程,并且產生DO-178B/C要求的各類輸出結果。
MATLAB/Simulink本身也是一個開放的工具開發環境,提供了各類工具以及其它外部工具(如DOORS、LDRA、SVN等)的接口。在MATLAB/Simulink的平臺下,結合用戶定義的詳細流程,可以方便的將各類設計、仿真、開發和驗證工具集成在一起,也可以定制開發相關的自動化腳本、規范檢查項以及標準報告模版等,構建統一的MBD工作平臺。
MBD符合DO-178B/CMATLAB/Simulink工具平臺
(注:SLVNV代表工具Simulink Verification and Validation)
微流程
這是相對于總體流程來講的,也是國內飛機設計單位最容易忽視的部分。我們每個管理者和工程師都可以很容易的描述出軟件開發的“V”流程,對于MBD的總體流程也比較容易理解,但是工程師真正坐在電腦前開始工作時卻往往會陷入無從下手的境地,從哪里獲取需求,創建模型有什么要求,完成設計后需要提交什么內容、提交到哪里,提交前需要做那些檢查,發現了問題有誰來更改、在那個版本更改等等這些具體的問題都需要通過微流程定義出來。
微流程可以理解為可執行的流程,對于項目中各個角色(如項目經理、開發工程師、驗證工程師等)各個環節(如模型設計、模型驗證、問題追蹤等)的具體操作,使用的工具和配置,以及每個環節的輸入輸出都有明確的定義,所有項目成員都是在統一的微流程指導下進行工作,這對于項目團隊的協作至關重要,也是真正實現MBD的關鍵所在。
-
嵌入式系統
+關注
關注
41文章
3570瀏覽量
129252 -
自動化
+關注
關注
29文章
5519瀏覽量
79122 -
模型
+關注
關注
1文章
3178瀏覽量
48730
發布評論請先 登錄
相關推薦
評論