1 初識(shí)MBD
基于模型的設(shè)計(jì)( Model-Based Design,MBD )是一種圍繞模型搭建展開的一種項(xiàng)目開發(fā)方法。這種方法可以避免繁瑣的代碼編寫和調(diào)試過(guò)程,可以極大的提高項(xiàng)目開發(fā)效率。并且從模型的角度入門汽車電子,對(duì)新手來(lái)說(shuō)更加友好,學(xué)習(xí)容易,上手非???。
在網(wǎng)絡(luò)中檢索MBD相關(guān)信息,有很多相關(guān)的技術(shù)博客和帖子,但有很多老工程師并不看好MBD。在實(shí)際中,也是大公司大項(xiàng)目用得多,小公司或者小項(xiàng)目很少使用MBD開發(fā)方法。MBD應(yīng)用最為廣泛的領(lǐng)域應(yīng)屬汽車電子領(lǐng)域了,有很多相關(guān)的產(chǎn)品和工具鏈,以后會(huì)單獨(dú)講講MBD的相關(guān)產(chǎn)品和公司。
還有一種很有意思的現(xiàn)象,那就是有的工程師使用的是MBD開發(fā)方法的一部分,比如使用HIL( Hardware In the Loop )進(jìn)行項(xiàng)目功能測(cè)試,但代碼編寫和調(diào)試依然是人工編寫。當(dāng)然,嚴(yán)格來(lái)說(shuō)HIL是可以從MBD獨(dú)立出來(lái)的,使用HIL不意味著就一定是MBD。
還有一種較為常見的開發(fā)方式,叫做快速開發(fā)原型( Rapid Control Prototyping,RCP )。RCP和MBD剛好相反,HIL是將控制對(duì)象進(jìn)行建模,下載到實(shí)時(shí)操作系統(tǒng)中,控制器使用的是實(shí)際的控制器(HIL測(cè)試后會(huì)成為產(chǎn)品的控制器);而RCP開發(fā)過(guò)程中,控制器是原型控制器,控制對(duì)象一般是實(shí)際受控對(duì)象(也可以是仿真對(duì)象),原型控制器和最終的產(chǎn)品是兩個(gè)東西,所以RCP只能用于驗(yàn)證軟件算法,達(dá)不到產(chǎn)品級(jí)的驗(yàn)證。
提到HIL,就不免聯(lián)系到SIL( Simulation In the Loop )、PIL( Processor In the Loop )和MIL( Model In the Loop ),這三種在環(huán)測(cè)試就和MBD有較強(qiáng)的聯(lián)系了。如果在項(xiàng)目中使用到了這四種測(cè)試方法(包括HIL)中的一種或多種,同時(shí)還使用到代碼自動(dòng)生成(Code Generation),那么就可以認(rèn)為使用的是MBD。當(dāng)然,嚴(yán)格的來(lái)說(shuō),MBD的內(nèi)容非常豐富,這里指的是很簡(jiǎn)單的概念。
具體而言,這四種在環(huán)測(cè)試的作用和實(shí)際應(yīng)用情況如下:
- SIL:該測(cè)試用于確定自動(dòng)生成的代碼是否能夠正常工作,如果目標(biāo)代碼需要進(jìn)行定點(diǎn)處理,SIL將起到非常重要的作用。此外我,生成的代碼甚至有的還能保證滿足功能安全要求(例如ISO26262)。如果是只涉及到浮點(diǎn)運(yùn)算,SIL和PIL的作用顯得很近似,這種情況下就沒有單獨(dú)進(jìn)行SIL的必要了;
- PIL:該測(cè)試用于確定處理器是否能夠滿足算力要求和數(shù)據(jù)精度,但實(shí)際項(xiàng)目中,前期的芯片選型階段就會(huì)充分考慮算力和精度,而且一些經(jīng)驗(yàn)也能判斷出處理器算力和精度是否滿足要求;
- MIL:該測(cè)試用于確定算法的可行性,實(shí)際上算法不可行也就沒有項(xiàng)目的確立,MIL最大的作用還是梳理項(xiàng)目的開發(fā)框架,是系統(tǒng)層面上的設(shè)計(jì)工作,還可以對(duì)不熟悉的領(lǐng)域或者相關(guān)知識(shí)進(jìn)行學(xué)習(xí);
- HIL:該測(cè)試用于確定控制器是否能正常工程,控制對(duì)象一般是仿真模型,但是是跑在實(shí)時(shí)操作系統(tǒng)中的。如果受控對(duì)象并不復(fù)雜,也可以用真實(shí)的受控對(duì)象進(jìn)行HIL測(cè)試。
2 MBD模型管理
這里引用一下MathWorks在Managing Model-Based Design一文中的一張圖片來(lái)說(shuō)明MBD是怎么運(yùn)作的:
MBD是怎么運(yùn)作的
如果有了解過(guò)的人,可能更多看到的是V型開發(fā)流程,關(guān)于V型開發(fā)流程以后細(xì)講,這里主要在更高層面上講一講MBD是怎么運(yùn)作的。
使用MBD方法開展項(xiàng)目開發(fā),主要流程包含以下三點(diǎn):
- 輸入:MBD的輸入是需求(requirements or Specifications)和已有的或公開的研究成果(Research);
- 模型迭代:這是MBD的核心,也是高效實(shí)現(xiàn)MBD的關(guān)鍵,模型迭代就涉及到上述的MIL、SIL、PIL、HIL和RCP,這些都不是必須的,根據(jù)項(xiàng)目的實(shí)際情況進(jìn)行相應(yīng)的測(cè)試即可;
- 輸出:即自動(dòng)生成的代碼、模型報(bào)告、測(cè)試報(bào)告,以及驗(yàn)證報(bào)告。
MBD有一個(gè)很顯著的特點(diǎn)就是,可記錄、可追蹤的文本記錄,因此需要專門的工具,例如Simulink Requirements工具(也有其他的一些第三方工具)。模型是基于需求創(chuàng)建,每一個(gè)需求都有對(duì)應(yīng)的模型。同時(shí)在模型迭代中,都會(huì)生成相應(yīng)的模型報(bào)告或者測(cè)試報(bào)告。因?yàn)樗械倪@些工作都是圍繞模型展開的,所以被稱為基于模型的設(shè)計(jì)。
以上這三點(diǎn)都包含了很豐富的內(nèi)容,這里沒有講的很深入,因?yàn)槿绻皇俏淖置枋龅脑挘瑫?huì)很抽象。以后會(huì)結(jié)合實(shí)例,具體細(xì)致地講各個(gè)環(huán)節(jié)應(yīng)該做的工作。
實(shí)際上,從我的觀點(diǎn)來(lái)看,MBD更像是一種項(xiàng)目管理方法,并不是開發(fā)方法。我們管理的對(duì)象是模型,對(duì)模型進(jìn)行迭代和測(cè)試。而類似Simulink Requirements這樣的工具也是一個(gè)管理工具。而在MBD之下,就是具體的開發(fā)方法了,即上述的MIL、HIL等。對(duì)工程師而言,更多使用到的是開發(fā)方法,所以提到MBD就和MIL、HIL這些等價(jià)起來(lái)。很多團(tuán)隊(duì)在實(shí)施MBD的時(shí)候,就不關(guān)心模型管理的問題,只是使用MIL、HIL等開發(fā)方法,這就可能導(dǎo)致最終的效果并沒有很好,所以也就有老工程師不看好MBD。
-
控制器
+關(guān)注
關(guān)注
112文章
16465瀏覽量
179615 -
汽車電子
+關(guān)注
關(guān)注
3029文章
8030瀏覽量
167885 -
MBD
+關(guān)注
關(guān)注
0文章
25瀏覽量
9020 -
RCP
+關(guān)注
關(guān)注
0文章
26瀏覽量
9073 -
simulink仿真
+關(guān)注
關(guān)注
0文章
75瀏覽量
8617
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
MBD(基于模型設(shè)計(jì))講義 全英文
基于模型的設(shè)計(jì)(MBD)的深入討論
MBD設(shè)計(jì)模式
使用MBD進(jìn)行stm32開發(fā)
如何在MBD中實(shí)現(xiàn)DAC?
如何在s32k mbd中使用計(jì)時(shí)器?
基于MBD測(cè)試
![基于<b class='flag-5'>MBD</b>測(cè)試](https://file.elecfans.com/web1/M00/CB/84/o4YBAF-STZeAGaYnAAAOA99dDHI864.png)
MBD的界限和范圍
![<b class='flag-5'>MBD</b>的界限和范圍](https://file1.elecfans.com/web2/M00/8C/9E/wKgaomSvUFCAUTVDAACOaKQqvp4286.jpg)
構(gòu)建MBD仿真模型和狀態(tài)機(jī)
![構(gòu)建<b class='flag-5'>MBD</b>仿真<b class='flag-5'>模型</b>和狀態(tài)機(jī)](https://file1.elecfans.com/web2/M00/8C/C2/wKgaomSxA_-AfSD3AAJ-BUg-JtM087.jpg)
SOLIDWORKS 2024新功能——MBD
![SOLIDWORKS 2024新功能——<b class='flag-5'>MBD</b>](https://file1.elecfans.com//web2/M00/BF/70/wKgZomW8lf6ATIUtAAOZdYK_Pi4711.png)
評(píng)論