0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊MBD開(kāi)發(fā)流程

冬至配餃子 ? 來(lái)源:autoMBD ? 作者:autoMBD ? 2023-07-13 09:20 ? 次閱讀

作為一個(gè)小的知識(shí)拓展,這里先給出常見(jiàn)的開(kāi)發(fā)流程(或稱為開(kāi)發(fā)方法,Development Methodologies):

  • 瀑布流方法(Waterfall)
  • V型方法(V-model)
  • 迭代式開(kāi)發(fā)(Iterative and incremental development, IID)
  • 螺旋開(kāi)發(fā)(Spiral)
  • 敏捷開(kāi)發(fā)(Scrum)
  • 極限編程(Extreme programming, XP)

據(jù)我的了解,很多互聯(lián)網(wǎng)大廠使用的就是敏捷開(kāi)發(fā),敏捷開(kāi)發(fā)現(xiàn)在在國(guó)內(nèi)也越來(lái)越火熱。當(dāng)然非管理崗位,很少會(huì)了解這些開(kāi)發(fā)方法的細(xì)節(jié),有興趣的讀者可以去學(xué)習(xí)一下。

從本質(zhì)上來(lái)講,MBD可以使用所有的這些流程來(lái)開(kāi)展工作。但實(shí)際中,V型開(kāi)發(fā)流程用的最多。簡(jiǎn)單的檢索一下,我們就能得到很多V型開(kāi)發(fā)流程,就像下面這樣的:

圖片

V型開(kāi)發(fā)流程 - From Internet

有一個(gè)問(wèn)題可能很少有人去考慮過(guò),那就是介紹MBD的時(shí)候,為什么大家都不約而同的選擇了“V型”?雖然沒(méi)有很嚴(yán)謹(jǐn)?shù)夭樽C過(guò),但有一個(gè)較為可靠的解釋是,V型開(kāi)發(fā)流程是來(lái)源于ISO26262的4、5、6部分,分別對(duì)應(yīng)系統(tǒng)層、軟件層和硬件層,見(jiàn)下圖:

圖片

Overview of the ISO 26262 series of standards - From ISO26262

“V型”其實(shí)是相對(duì)于更加傳統(tǒng)的瀑布方法(Waterfall Methodology)而言的,MBD也可以使用瀑布方法來(lái)開(kāi)展,瀑布方法一般長(zhǎng)這樣:

圖片

The waterfall methodology in MBD - From MathWorks

但是瀑布流程并不符合MBD的開(kāi)發(fā)思想,MBD有一個(gè)很重要的特征,那就是以模型為中心,反復(fù)驗(yàn)證、測(cè)試和迭代,這一過(guò)程在瀑布流程中是難以實(shí)現(xiàn)的。*(MBD的這一特征和敏捷開(kāi)發(fā)有點(diǎn)相似了,感興趣的讀者可以去了解一下) *

2 V型開(kāi)發(fā)流程

MBD的V型流程形式有很多種,包括先后順序不同,執(zhí)行內(nèi)容不同等等。這種形式差異是正常的,實(shí)際項(xiàng)目開(kāi)發(fā)中,擁有的資源和開(kāi)發(fā)目標(biāo)都不相同,是需要這種合理的調(diào)整和取舍。我認(rèn)為ST的這張V型圖能較好的描述MBD的開(kāi)發(fā)流程:

圖片

V-model with MBD - From ST

MBD V型流程的核心要素有以下幾點(diǎn):

**1. **需求定義

—— Requirements & Specifications

  • 項(xiàng)目開(kāi)始的第1個(gè)階段是需求定義,需求定義要求詳細(xì)、具體,每一項(xiàng)需要有明確的驗(yàn)證和測(cè)試方法。同時(shí)需求定義還要求可記錄,可追蹤,所以要求和模型建立硬聯(lián)系,即每一項(xiàng)需求有對(duì)應(yīng)的模型來(lái)實(shí)現(xiàn)。要實(shí)現(xiàn)需求的追蹤管理,就需要借助工具了(例如MathWorks的Simulink Requirements工具)。

**2. **系統(tǒng)架構(gòu)設(shè)計(jì)

—— System & Architecture Design

**3. **組件設(shè)計(jì)

—— Components Design

  • 上述第2、3點(diǎn)即分層級(jí)的建模過(guò)程,在這個(gè)階段實(shí)現(xiàn)相應(yīng)的算法,或者狀態(tài)機(jī),或者其他函數(shù)API。這個(gè)階段還可以實(shí)施的是MIL(Model In the Loop),即沒(méi)有生成代碼之前驗(yàn)證模型的有效性。
  • 如果有足夠的資源,還可以在代碼生成之前進(jìn)行RCP(Rapid Control Prototyping)。RCP使用的是原型控制器(非最終形態(tài)的產(chǎn)品),一般情況下原型機(jī)的性能會(huì)高于落地的產(chǎn)品,所以它的驗(yàn)證能力有限,比不上HIL(Hardware In the Loop)。

**4. **自動(dòng)代碼生成

—— Code Generation

**5. **代碼測(cè)試和驗(yàn)證

—— Code Verification & Validation

  • 第4、5點(diǎn)是代碼的生成和驗(yàn)證,Verification和Validation的中文都可以翻譯成驗(yàn)證,但它們的著重點(diǎn)不同:Verification是過(guò)程,Validation是結(jié)果,表示是否有效。具體地,Verification就是SIL(Simulation In the Loop)和PIL(Processor In the Loop);Validation就是SIL和PIL的驗(yàn)證報(bào)告。
  • 如果算法中需要用到定點(diǎn)數(shù),那么在SIL和PIL之前需要對(duì)模型進(jìn)行定點(diǎn)化。一般來(lái)說(shuō)PIL的驗(yàn)證能力能覆蓋SIL,如果控制系統(tǒng)不復(fù)雜,可以只進(jìn)行PIL。

**6. **系統(tǒng)集成測(cè)試

—— Integration Testing

  • 第6點(diǎn)的系統(tǒng)集成測(cè)試即HIL(Hardware In the Loop)測(cè)試,關(guān)于HIL,以后再開(kāi)新的文章具體談一談。

**7. **驗(yàn)收測(cè)試

—— Acceptance Testing

  • 最后,HIL測(cè)試通過(guò)以后,就可以給客戶驗(yàn)收了。

關(guān)于V型開(kāi)發(fā)流程中會(huì)使用到的一些工具和工具鏈,后續(xù)會(huì)專門文章介紹。

3 MBD的模型迭代

如果一帆風(fēng)順的話,上述V流程只走一遍就可以了。但往往事與愿違,在項(xiàng)目前期很難考慮得非常周全,前期的需求有遺漏或者錯(cuò)誤,就需要及時(shí)修正,我們知道越在后期,修改前期錯(cuò)誤的成本就越大。

這時(shí)就能體現(xiàn)出MBD相比于手寫代碼的巨大優(yōu)勢(shì)。因?yàn)镸BD是圍繞模型展開(kāi)的,所以修復(fù)遺漏和錯(cuò)誤也是通過(guò)模型修改來(lái)實(shí)現(xiàn)的。由于模型的圖形化和結(jié)構(gòu)化,使得能很方便、直觀地進(jìn)行需求更新和算法修改,而不用一行一行的檢查代碼。越是項(xiàng)目規(guī)模大,越能體現(xiàn)這種優(yōu)勢(shì)。

為了更好的說(shuō)明MBD的模型迭代,這里把V型流程分為兩個(gè)階段:

  • 代碼生成前——建模階段;
  • 代碼生成后——驗(yàn)證階段。

那么MBD模型的迭代是如下進(jìn)行的:

圖片

MBD模型迭代 - From autoMBD

從上圖可以看到,算法迭代和需求的更新都是是圍繞著模型展開(kāi)的,而將需求定義、建模和測(cè)試驗(yàn)證串聯(lián)起來(lái)的是需求追蹤。這樣就在模型和需求之間打通了回路,形成了良好的反饋糾錯(cuò)和正向促進(jìn)。

4 資源更新

資源中更新了ISO26262的英文文檔(2018版part 1~12)和中文文檔(2011版),聊天界面點(diǎn)擊MBD->資源即可獲得。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175372
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    489

    瀏覽量

    27394
  • MBD
    MBD
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    8867
  • RCP
    RCP
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    9010
  • PIL
    PIL
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    8566
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MBD(基于模型設(shè)計(jì))講義 全英文

    一個(gè)關(guān)于MBD的講義,不過(guò)是全英文的,主要是國(guó)內(nèi)做這個(gè)方面的太少,資料都較少
    發(fā)表于 07-07 18:01

    基于模型的設(shè)計(jì)(MBD)的深入討論

    討論1:2016-6-14-基于模型的設(shè)計(jì)(MBD)_討論1主要論述了MBD的自動(dòng)生成代碼的可用性,以及自動(dòng)生成代買與手寫代碼的效率討論2:2016-6-14-基于模型的設(shè)計(jì)(MBD)_討論2深入介紹了基于模型的設(shè)計(jì)(
    發(fā)表于 06-14 18:30

    MBD設(shè)計(jì)模式

    機(jī)器人開(kāi)發(fā)設(shè)計(jì)MBD設(shè)計(jì)模式(機(jī)器人開(kāi)發(fā),控制系統(tǒng)開(kāi)發(fā))掌握基于模型設(shè)計(jì)的六軸機(jī)械臂控制系統(tǒng)的開(kāi)發(fā)方法掌握六軸機(jī)械臂的知識(shí)和控制器的軟硬件實(shí)
    發(fā)表于 06-28 12:29

    使用MBD進(jìn)行stm32開(kāi)發(fā)

    MBD學(xué)習(xí)之路1——使用MBD進(jìn)行stm32開(kāi)發(fā)準(zhǔn)備工作準(zhǔn)備工作
    發(fā)表于 08-17 07:55

    基于MBD的嵌入式系統(tǒng)設(shè)計(jì)

    【STM32F407+matlab+STM32CubeMX】基于MBD的嵌入式系統(tǒng)實(shí)現(xiàn)基于STM32CubeMX和HAL的嵌入式系統(tǒng)編程通過(guò)圖形化配置和自動(dòng)生成初始化C代碼的方式,大大降低了嵌入式
    發(fā)表于 08-17 07:08

    MBD有哪幾種設(shè)計(jì)模式?

    MBD有哪幾種設(shè)計(jì)模式?
    發(fā)表于 10-13 06:35

    怎樣使用stm32+simulink進(jìn)行MBD開(kāi)發(fā)

    怎樣使用stm32+simulink進(jìn)行MBD開(kāi)發(fā)呢?有哪些實(shí)驗(yàn)步驟呢?
    發(fā)表于 11-18 06:05

    如何在stm32芯片上去實(shí)現(xiàn)MBD設(shè)計(jì)呢

    如何在stm32芯片上去實(shí)現(xiàn)MBD設(shè)計(jì)呢?求解答
    發(fā)表于 11-19 06:03

    如何在MBD中實(shí)現(xiàn)DAC?

    我正在使用 NXP S32k148 工具箱,我想在我想使用數(shù)模轉(zhuǎn)換器(即 DAC)的地方構(gòu)建模型。那么我可以在這里使用哪個(gè)工具箱?或者如何在 MBD 中實(shí)現(xiàn) DAC(數(shù)模轉(zhuǎn)換器)。
    發(fā)表于 04-07 12:50

    如何在s32k mbd中使用計(jì)時(shí)器?

    我想在 s32k mbd 中使用計(jì)時(shí)器,我必須在其中計(jì)算將軸原始值轉(zhuǎn)換為陀螺儀角度的時(shí)間。我如何在 mbd 中使用它?
    發(fā)表于 04-10 09:39

    基于MBD測(cè)試

    趁著還沒(méi)發(fā)霉,把以前的知識(shí)在總結(jié)總結(jié)。本篇是基于MBD測(cè)試系列文章的第一篇,也不知道能寫多少,且寫且看吧。 01概述 在基于模型(MBD開(kāi)發(fā)的軟件 中經(jīng)常會(huì)涉及到MIL/SIL/PIL和HIL測(cè)試
    的頭像 發(fā)表于 10-23 11:25 ?2766次閱讀
    基于<b class='flag-5'>MBD</b>測(cè)試

    FPGA的詳細(xì)開(kāi)發(fā)流程

    ??FPGA 的詳細(xì)開(kāi)發(fā)流程就是利用 EDA 開(kāi)發(fā)工具對(duì) FPGA 芯片進(jìn)行開(kāi)發(fā)的過(guò)程,所以 FPGA 芯片開(kāi)發(fā)
    的頭像 發(fā)表于 07-04 14:37 ?4607次閱讀
    FPGA的詳細(xì)<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>流程</b>

    初識(shí)MBDMBD模型管理

    基于模型的設(shè)計(jì)( **Model-Based Design,MBD** )是一種圍繞模型搭建展開(kāi)的一種項(xiàng)目開(kāi)發(fā)方法。
    的頭像 發(fā)表于 07-13 09:16 ?1777次閱讀
    初識(shí)<b class='flag-5'>MBD</b>及<b class='flag-5'>MBD</b>模型管理

    MBD的界限和范圍

    基于模型的設(shè)計(jì)(Model-Based Design,MBD)是一種圍繞模型來(lái)展開(kāi)的項(xiàng)目開(kāi)發(fā)方法,其開(kāi)發(fā)理念越來(lái)越受到關(guān)注。
    的頭像 發(fā)表于 07-13 14:38 ?1219次閱讀
    <b class='flag-5'>MBD</b>的界限和范圍

    SOLIDWORKS 2024新功能——MBD

    SOLIDWORKS MBD是大家比較熟悉的解決方案了,在2024版本MBD的功能也做了很棒的提升。下面由眾聯(lián)億誠(chéng)為大家簡(jiǎn)單介紹一下。
    的頭像 發(fā)表于 02-02 15:13 ?541次閱讀
    SOLIDWORKS 2024新功能——<b class='flag-5'>MBD</b>