1 什么是基于模型的設計
基于模型的設計(Model-Based Design,MBD)是一種圍繞模型來展開的項目開發方法,其開發理念越來越受到關注。
雖然,人的想象力是無窮的,但肉眼可見的模型往往更能讓人理解和接受。
簡單的說,MBD就是對 項目的開發對象或目標產品進行精確建模 ,項目的需求分析、功能設計、系統框架設計、代碼生成、產品測試驗證等開發環節,甚至項目流程管理、項目迭代開發管理、自動化文檔管理等管理環節, 部分或全部在所建模型的基礎上展開的一種開發方式 。
在MBD開發中,模型是最終產品的高度數字化具現,而最終產品的主要組件或功能都基于搭建的模型進行設計和開發。
基于模型的設計
作為對比,傳統的開發方法是線性展開的。由于傳統的開發中沒有對開發對象進行建模,不能形成一個中心點,項目的每一次推進,必須保證前面階段的開發工作已經驗收完成。這種情況下,前期的設計缺陷如果沒能及時發現,到了項目后期,其修復成本就會非常高。
傳統線性開發
此外,傳統的開發方法由于沒有中心模型,非常依賴前期的頂層設計和系統框架設計,這是抽象、不具體的任務,需要依賴以往的經驗。
而MBD的具象化可不僅僅體現在產品形態上,產品的代碼、產品的測試都是可以直接由模型生成和實現的,方便實現產品功能迭代。模型的具象化和可視化能大大提高開發者的效率。
2 MBD的界限和范圍
對于初學者,弄清楚MBD的界限和范圍(Scope)是有意義的,即要知道MBD能做什么,哪些不是MBD覆蓋的內容。
Tips :在項目中,Scope一詞常用來描述一個事物能做什么,不能做什么,那些內容是屬于它的,那些內容不屬于它。但在中文語境沒有一個含義接近的詞語,因此這里的“界限和范圍”使用的是Scope的直譯。
從大的范圍來說,MBD本質上屬于嵌入式開發領域,但它不適用于所有的嵌入式項目。MBD適用于具有 控制器 (Controller)和 執行器 (Actuator)的嵌入式電控裝置。
這些應用中一般具有特定的算法、信號處理、控制執行、通訊等組成要素。例如無人機、電機控制、電池管理系統、機器人等。如下圖所示:
MBD的界限和范圍
Tips :不適合MBD的應用包括各種穿戴設備、影音設備等,因為它們并不適合建模,MBD也不適合桌面端的軟件開發。
MBD支持的嵌入式軟件開發,包括DSP、MCU、FPGA等不同的芯片。
由于作者能力有限,接觸最多的是在MCU上的MBD開發,文章介紹的也以這種為主。不過不同芯片的MBD本質是相同的,它們更多的體現在工具鏈的使用是不同的。
MBD的核心——模型——便是對控制器和執行器進行的建模,有時候還包括執行器的運行環境,所建的模型可以稱為 控制器模型 、 執行器模型 (被控對象模型)和 環境模型 。
控制器、執行器和運行環境之間,以及所建模型和被建模的實際對象之間的界限和范圍,也需要有清晰的定義。
2.1 控制器、執行器和運行環境的界限
首先要弄清楚控制器和執行器的界限在哪里。
我認為可以 以MCU為界限 :在MCU中的所有操作都應屬于控制器模型;在MCU以外的所有數字電路、功率電路、機械結構、電機等都應屬于執行器模型。建模時可按照這個界限對控制器和執行器分別建模。
以基于MBD的電機控制開發為例,控制器模型包含ADC采樣、信號處理、FOC算法等,執行器包含電源、逆變器、電機等。
控制器模型和執行器模型的作用是不一樣的:前者搭建的是算法模型、軟件框架模型等,它屬于軟件,可以生成代碼。后者則是實際對象的數學模型(電機、整流電路、機械結構等),用于算法、功能的測試,是控制器的控制對象。
控制器模型和算法模型通過傳感器信號和控制信號連接起來,如下圖所示:
控制器模型和執行器模型
控制器模型和執行器模型是相輔相成的,如果執行器增加、減少或改變了功能,控制器也會發生相應的改變。
相反,如果控制器中的算法得到了優化,也可以改進執行器的設計(例如改進電路、傳感器的布置等)。
環境模型即執行器運行時所在的環境,是開發者不能控制的客觀因素和變量。
一般情況下都可以不用考慮,但在一些特定的應用中,環境會影響控制器和執行器的設計,這時候就需要考慮搭建環境模型。
例如無人機,它的執行器包括電機、螺旋槳等,但環境因素也是影響飛控算法的重要因素,搭建模型時就需要考慮對環境建模。
2.2 模型和實際對象的界限
其次要把握好仿真模型和實際對象之間的界限和范圍。實際對象是具體的,仿真模型則是實際對象的數學描述
控制器模型越準確,模型生成的代碼在真正的MCU中運行時就越符合設計目標;執行器模型越準確,就可以對控制器算法、功能等進行更加全面的驗證和測試。所以模型的準確性影響著MBD的實際效果。
但MBD不需要模型和實際對象保持完全一致,也不可能實現完全一致,模型所能覆蓋的范圍是實際對象的子集。
模型可以省略一些不重要的因素,保留核心功能、最能體現實際對象的特征進行建模 。這樣做是有意義的,它可以保證項目功能的開發以外,還能節約建模的時間。
例如,很多時候控制器模型中的ADC采樣會被忽略,直接使用執行器模型返回的數據;在執行器模型中,往往也會采用簡化的電機模型。
這種簡化不會影響算法實現、軟件框架或執行器的功能設計。
-
控制器
+關注
關注
112文章
16203瀏覽量
177402 -
電池管理系統
+關注
關注
41文章
497瀏覽量
33302 -
信號處理器
+關注
關注
1文章
251瀏覽量
25252 -
MBD
+關注
關注
0文章
24瀏覽量
8940 -
FOC算法
+關注
關注
1文章
16瀏覽量
9656
發布評論請先 登錄
相關推薦
評論