基于模型的設計(Model-based Design,以下簡稱MBD)是一種圍繞模型展開的項目開發方法,指對開發對象或者項目產品進行精確建模,項目的需求分析、功能設計、系統框架、代碼生成、測試驗證等開發環節都在模型的基礎上展開。本文將討論如何應用MBD實現汽車ECU軟件的自主開發。
01.整車廠當下困境
整車廠對發動機控制的研究和原型設計從未停歇,但從未開發過產品化的大型ECU嵌入式控制系統和軟件。
在傳統的開發方式中,由于缺少對目標對象的建模,每一次項目推進都嚴重依賴于上階段開發工作的完成情況,一旦前期設計存在缺陷,就會導致較高的后期修改與完善成本。此外,如果某項需求發生變化,開發團隊就不得不重新編碼和構建整個系統,從而導致項目延遲數日乃至數周。
除了流程上存在缺陷,傳統開發沒有中心模型,對前期的系統框架設計依賴度極高,需要擁有十分豐富開發經驗的工程師提前布局。
在當前激烈的競爭環境下,汽車行業正在加速產業和技術更迭,整車廠對大型ECU嵌入式控制系統和軟件的需求迫在眉睫,而使用傳統的開發方式需要招聘、培訓工程師來進行開發和測試工作,耗時較久,無法在計劃時間內投入生產。MBD無疑是整車廠的最優選,但如何選擇一套應用MBD、以模型為核心,且能處理從需求、設計、代碼生成到測試的開發工具則成了難題。
02.如何應用MBD
汽車工程師團隊在著手開發基于MBD的乘用車ECU軟件時,首先需要根據系統需求構建架構模型,隨后才能從中衍生設計出所需的仿真模型。
此類高級低保真度模型包含將要在ECU和被控對象(指發動機及其工作環境)中運行的控制軟件。由于MBD的核心模型及基礎應用形式為“模型控制器+執行器模型”,因此步驟上,團隊首先需要通過在各類場景下進行高級模型仿真來執行初始系統和集成測試,用以驗證模型是否正確表示了系統及系統是否對輸入信號做出了預期內的適當響應;驗證完成后,團隊需要向模型中增加細節,并對照技術規范不斷測試和驗證系統級行為。如果系統規模過于龐大、結構也較為復雜,團隊可安排工程師獨立開發和測試各組件,但組件仍需在全系統仿真中頻繁測試。
在針對系統及其工作環境建立起詳細模型后,理想狀態下,團隊可基于控制算法模型自動生成代碼來進行軟件測試和驗證。在硬件在環測試完成后,便可將所生成的代碼下載至生產硬件,以便在實際車輛中進行測試。
03.ModelCoder
由迪捷軟件自主研發的建模仿真與代碼生成軟件ModelCoder,便是完全以模型為核心、能夠完美解決整車廠當前難題的國產軟件。汽車工程師團隊可利用ModelCoder開發和建立發動機控制算法模型,完成大量基于模型的設計和驗證,并自動生成可信的ECU產品代碼,實現汽車ECU軟件的設計、開發、測試及驗證。