精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

聊聊MBD開發流程

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

作為一個小的知識拓展,這里先給出常見的開發流程(或稱為開發方法,Development Methodologies):

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

據我的了解,很多互聯網大廠使用的就是敏捷開發,敏捷開發現在在國內也越來越火熱。當然非管理崗位,很少會了解這些開發方法的細節,有興趣的讀者可以去學習一下。

從本質上來講,MBD可以使用所有的這些流程來開展工作。但實際中,V型開發流程用的最多。簡單的檢索一下,我們就能得到很多V型開發流程,就像下面這樣的:

圖片

V型開發流程 - From Internet

有一個問題可能很少有人去考慮過,那就是介紹MBD的時候,為什么大家都不約而同的選擇了“V型”?雖然沒有很嚴謹地查證過,但有一個較為可靠的解釋是,V型開發流程是來源于ISO26262的4、5、6部分,分別對應系統層、軟件層和硬件層,見下圖:

圖片

Overview of the ISO 26262 series of standards - From ISO26262

“V型”其實是相對于更加傳統的瀑布方法(Waterfall Methodology)而言的,MBD也可以使用瀑布方法來開展,瀑布方法一般長這樣:

圖片

The waterfall methodology in MBD - From MathWorks

但是瀑布流程并不符合MBD的開發思想,MBD有一個很重要的特征,那就是以模型為中心,反復驗證、測試和迭代,這一過程在瀑布流程中是難以實現的。*(MBD的這一特征和敏捷開發有點相似了,感興趣的讀者可以去了解一下) *

2 V型開發流程

MBD的V型流程形式有很多種,包括先后順序不同,執行內容不同等等。這種形式差異是正常的,實際項目開發中,擁有的資源和開發目標都不相同,是需要這種合理的調整和取舍。我認為ST的這張V型圖能較好的描述MBD的開發流程:

圖片

V-model with MBD - From ST

MBD V型流程的核心要素有以下幾點:

**1. **需求定義

—— Requirements & Specifications

  • 項目開始的第1個階段是需求定義,需求定義要求詳細、具體,每一項需要有明確的驗證和測試方法。同時需求定義還要求可記錄,可追蹤,所以要求和模型建立硬聯系,即每一項需求有對應的模型來實現。要實現需求的追蹤管理,就需要借助工具了(例如MathWorks的Simulink Requirements工具)。

**2. **系統架構設計

—— System & Architecture Design

**3. **組件設計

—— Components Design

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

**4. **自動代碼生成

—— Code Generation

**5. **代碼測試和驗證

—— Code Verification & Validation

  • 第4、5點是代碼的生成和驗證,Verification和Validation的中文都可以翻譯成驗證,但它們的著重點不同:Verification是過程,Validation是結果,表示是否有效。具體地,Verification就是SIL(Simulation In the Loop)和PIL(Processor In the Loop);Validation就是SIL和PIL的驗證報告。
  • 如果算法中需要用到定點數,那么在SIL和PIL之前需要對模型進行定點化。一般來說PIL的驗證能力能覆蓋SIL,如果控制系統不復雜,可以只進行PIL。

**6. **系統集成測試

—— Integration Testing

  • 第6點的系統集成測試即HIL(Hardware In the Loop)測試,關于HIL,以后再開新的文章具體談一談。

**7. **驗收測試

—— Acceptance Testing

  • 最后,HIL測試通過以后,就可以給客戶驗收了。

關于V型開發流程中會使用到的一些工具和工具鏈,后續會專門文章介紹。

3 MBD的模型迭代

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

這時就能體現出MBD相比于手寫代碼的巨大優勢。因為MBD是圍繞模型展開的,所以修復遺漏和錯誤也是通過模型修改來實現的。由于模型的圖形化和結構化,使得能很方便、直觀地進行需求更新和算法修改,而不用一行一行的檢查代碼。越是項目規模大,越能體現這種優勢。

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

  • 代碼生成前——建模階段;
  • 代碼生成后——驗證階段。

那么MBD模型的迭代是如下進行的:

圖片

MBD模型迭代 - From autoMBD

從上圖可以看到,算法迭代和需求的更新都是是圍繞著模型展開的,而將需求定義、建模和測試驗證串聯起來的是需求追蹤。這樣就在模型和需求之間打通了回路,形成了良好的反饋糾錯和正向促進。

4 資源更新

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    15896

    瀏覽量

    175422
  • 狀態機
    +關注

    關注

    2

    文章

    489

    瀏覽量

    27395
  • MBD
    MBD
    +關注

    關注

    0

    文章

    24

    瀏覽量

    8867
  • RCP
    RCP
    +關注

    關注

    0

    文章

    23

    瀏覽量

    9010
  • PIL
    PIL
    +關注

    關注

    0

    文章

    19

    瀏覽量

    8566
收藏 人收藏

    評論

    相關推薦

    MBD(基于模型設計)講義 全英文

    一個關于MBD的講義,不過是全英文的,主要是國內做這個方面的太少,資料都較少
    發表于 07-07 18:01

    基于模型的設計(MBD)的深入討論

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

    MBD設計模式

    機器人開發設計MBD設計模式(機器人開發,控制系統開發)掌握基于模型設計的六軸機械臂控制系統的開發方法掌握六軸機械臂的知識和控制器的軟硬件實
    發表于 06-28 12:29

    使用MBD進行stm32開發

    MBD學習之路1——使用MBD進行stm32開發準備工作準備工作
    發表于 08-17 07:55

    基于MBD的嵌入式系統設計

    【STM32F407+matlab+STM32CubeMX】基于MBD的嵌入式系統實現基于STM32CubeMX和HAL的嵌入式系統編程通過圖形化配置和自動生成初始化C代碼的方式,大大降低了嵌入式
    發表于 08-17 07:08

    MBD有哪幾種設計模式?

    MBD有哪幾種設計模式?
    發表于 10-13 06:35

    怎樣使用stm32+simulink進行MBD開發

    怎樣使用stm32+simulink進行MBD開發呢?有哪些實驗步驟呢?
    發表于 11-18 06:05

    如何在stm32芯片上去實現MBD設計呢

    如何在stm32芯片上去實現MBD設計呢?求解答
    發表于 11-19 06:03

    如何在MBD中實現DAC?

    我正在使用 NXP S32k148 工具箱,我想在我想使用數模轉換器(即 DAC)的地方構建模型。那么我可以在這里使用哪個工具箱?或者如何在 MBD 中實現 DAC(數模轉換器)。
    發表于 04-07 12:50

    如何在s32k mbd中使用計時器?

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

    基于MBD測試

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

    FPGA的詳細開發流程

    ??FPGA 的詳細開發流程就是利用 EDA 開發工具對 FPGA 芯片進行開發的過程,所以 FPGA 芯片開發
    的頭像 發表于 07-04 14:37 ?4617次閱讀
    FPGA的詳細<b class='flag-5'>開發</b><b class='flag-5'>流程</b>

    初識MBDMBD模型管理

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

    MBD的界限和范圍

    基于模型的設計(Model-Based Design,MBD)是一種圍繞模型來展開的項目開發方法,其開發理念越來越受到關注。
    的頭像 發表于 07-13 14:38 ?1222次閱讀
    <b class='flag-5'>MBD</b>的界限和范圍

    SOLIDWORKS 2024新功能——MBD

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