1 初識MBD
基于模型的設計( Model-Based Design,MBD )是一種圍繞模型搭建展開的一種項目開發方法。這種方法可以避免繁瑣的代碼編寫和調試過程,可以極大的提高項目開發效率。并且從模型的角度入門汽車電子,對新手來說更加友好,學習容易,上手非常快。
在網絡中檢索MBD相關信息,有很多相關的技術博客和帖子,但有很多老工程師并不看好MBD。在實際中,也是大公司大項目用得多,小公司或者小項目很少使用MBD開發方法。MBD應用最為廣泛的領域應屬汽車電子領域了,有很多相關的產品和工具鏈,以后會單獨講講MBD的相關產品和公司。
還有一種很有意思的現象,那就是有的工程師使用的是MBD開發方法的一部分,比如使用HIL( Hardware In the Loop )進行項目功能測試,但代碼編寫和調試依然是人工編寫。當然,嚴格來說HIL是可以從MBD獨立出來的,使用HIL不意味著就一定是MBD。
還有一種較為常見的開發方式,叫做快速開發原型( Rapid Control Prototyping,RCP )。RCP和MBD剛好相反,HIL是將控制對象進行建模,下載到實時操作系統中,控制器使用的是實際的控制器(HIL測試后會成為產品的控制器);而RCP開發過程中,控制器是原型控制器,控制對象一般是實際受控對象(也可以是仿真對象),原型控制器和最終的產品是兩個東西,所以RCP只能用于驗證軟件算法,達不到產品級的驗證。
提到HIL,就不免聯系到SIL( Simulation In the Loop )、PIL( Processor In the Loop )和MIL( Model In the Loop ),這三種在環測試就和MBD有較強的聯系了。如果在項目中使用到了這四種測試方法(包括HIL)中的一種或多種,同時還使用到代碼自動生成(Code Generation),那么就可以認為使用的是MBD。當然,嚴格的來說,MBD的內容非常豐富,這里指的是很簡單的概念。
具體而言,這四種在環測試的作用和實際應用情況如下:
- SIL:該測試用于確定自動生成的代碼是否能夠正常工作,如果目標代碼需要進行定點處理,SIL將起到非常重要的作用。此外我,生成的代碼甚至有的還能保證滿足功能安全要求(例如ISO26262)。如果是只涉及到浮點運算,SIL和PIL的作用顯得很近似,這種情況下就沒有單獨進行SIL的必要了;
- PIL:該測試用于確定處理器是否能夠滿足算力要求和數據精度,但實際項目中,前期的芯片選型階段就會充分考慮算力和精度,而且一些經驗也能判斷出處理器算力和精度是否滿足要求;
- MIL:該測試用于確定算法的可行性,實際上算法不可行也就沒有項目的確立,MIL最大的作用還是梳理項目的開發框架,是系統層面上的設計工作,還可以對不熟悉的領域或者相關知識進行學習;
- HIL:該測試用于確定控制器是否能正常工程,控制對象一般是仿真模型,但是是跑在實時操作系統中的。如果受控對象并不復雜,也可以用真實的受控對象進行HIL測試。
2 MBD模型管理
這里引用一下MathWorks在Managing Model-Based Design一文中的一張圖片來說明MBD是怎么運作的:
MBD是怎么運作的
如果有了解過的人,可能更多看到的是V型開發流程,關于V型開發流程以后細講,這里主要在更高層面上講一講MBD是怎么運作的。
使用MBD方法開展項目開發,主要流程包含以下三點:
- 輸入:MBD的輸入是需求(requirements or Specifications)和已有的或公開的研究成果(Research);
- 模型迭代:這是MBD的核心,也是高效實現MBD的關鍵,模型迭代就涉及到上述的MIL、SIL、PIL、HIL和RCP,這些都不是必須的,根據項目的實際情況進行相應的測試即可;
- 輸出:即自動生成的代碼、模型報告、測試報告,以及驗證報告。
MBD有一個很顯著的特點就是,可記錄、可追蹤的文本記錄,因此需要專門的工具,例如Simulink Requirements工具(也有其他的一些第三方工具)。模型是基于需求創建,每一個需求都有對應的模型。同時在模型迭代中,都會生成相應的模型報告或者測試報告。因為所有的這些工作都是圍繞模型展開的,所以被稱為基于模型的設計。
以上這三點都包含了很豐富的內容,這里沒有講的很深入,因為如果只是文字描述的話,會很抽象。以后會結合實例,具體細致地講各個環節應該做的工作。
實際上,從我的觀點來看,MBD更像是一種項目管理方法,并不是開發方法。我們管理的對象是模型,對模型進行迭代和測試。而類似Simulink Requirements這樣的工具也是一個管理工具。而在MBD之下,就是具體的開發方法了,即上述的MIL、HIL等。對工程師而言,更多使用到的是開發方法,所以提到MBD就和MIL、HIL這些等價起來。很多團隊在實施MBD的時候,就不關心模型管理的問題,只是使用MIL、HIL等開發方法,這就可能導致最終的效果并沒有很好,所以也就有老工程師不看好MBD。
-
控制器
+關注
關注
114文章
16832瀏覽量
182195 -
汽車電子
+關注
關注
3034文章
8200瀏覽量
169028 -
MBD
+關注
關注
0文章
26瀏覽量
9118 -
RCP
+關注
關注
0文章
26瀏覽量
9173 -
simulink仿真
+關注
關注
0文章
75瀏覽量
8693
發布評論請先 登錄
相關推薦
基于模型的設計(MBD)的深入討論
MBD設計模式
如何在MBD中實現DAC?
基于MBD測試

評論