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