女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

MBD的Simulink使用技巧:Simulink代碼生成的基本概念(1)

冬至子 ? 來源:autoMBD ? 作者:autoMBD ? 2023-07-13 15:11 ? 次閱讀

2 Simulink代碼生成的基本概念

2.1 代碼生成工具

MATLAB/Simulink中一共提供三個代碼生成的工具:

  • MATLAB Coder
  • Simulink Coder
  • Embedded Coder

從名字能看出來,MATLAB Coder用于m腳本生成C/C++代碼;而Simulink Coder用于模型、Stateflow等生成C/C++代碼;而 Embedded Coder是上述兩者的集成,同時擴展了在嵌入式開發中必不可少的特性

也正是Embedded Coder提供了針對MATLAB Coder和Simulink Coder的配置選項和代碼優化選項,從而 精細控制生成代碼的函數、數據和接口 。這可以提高代碼的執行效率和可讀性,利于代碼的集成。

所以文章介紹的以Embedded Coder為主。

關于這三個代碼生成工具的更多介紹,可以查看資源庫中的“臨時資源分享”文件夾下的 tA21 。資源庫的獲取可以在《autoMBD原創技術文章合集》中找到。

2.2 Simulink生成應用代碼

MathWorks官方一直強調,使用 Simulink生成應用代碼(Application Code) ,而不是其他代碼(雖然利用硬件支持包可以生成底層驅動等代碼)。

何為應用代碼?簡單的可以認為應用代碼是執行算法的程序,可以參考開源項目AMBD-MC中的FOC核心算法模型:

圖片

FOC核心算法模型 - From autoMBD

在MBD代碼生成中,它應該部分或全部具有以下接口:

  • 一個被主程序調用的接口(必須);
  • 與其他模塊交換數據的接口;
  • 與底層I/O驅動交換數據的接口;
  • 數據的記錄接口(即log,用于調試);
  • 軟件庫調用接口。

上圖中的FOC核心算法模型中,包含了上述的前三種接口。這些接口用于代碼集成時的函數調用、數據交換、代碼調試等(代碼集成的過程可以參考《文章合集》第十七篇)。

2.3 有接口的模型如何仿真

如上圖FOC核心算法模型所示,該模型有很多Input和Output接口,這些接口表明對該模型仿真需要接收外部數據,同時需要將運算結果輸出到外部。

這種模型的仿真有兩種方式:

  • 模型引用(Model Reference)
  • 數據導入/導出(Data Import/Export)

模型引用 ,即使用Simulink模型庫中的Model或Subsystem Reference模塊來實現數據的輸入和輸出,這意味著需要額外的一個上層模型(Top Model)來提供輸入數據和接受輸出數據。 善用模型引用可以提高模型算法開發的獨立性、重用性 ,在《文章合集》第十六篇中,實現PIL測試就是使用的這個方法。

這兩個模塊位于下圖所示的位置:

圖片

模型引用模塊 - From autoMBD

特別注意,Model和Subsystem Refence模塊都能實現模型引用,但它們是有區別的:

  • Subsystem Refence引用的是子系統模型,而Model引用的是普通模型;
  • Model模塊可以用于PIL和SIL測試,而Subsystem Refence不行;
  • 它們在生成代碼的處理方式有區別,Subsystem Refence在生成代碼時,與模型中的子系統沒有區別,但Model不能當作模型中的子系統,它是一個獨立的模型。

而使用數據導入/導出的方式不需要新建Top模型,但需要準備 具有時間序列格式的輸入數據 ,將其導入到MATLAB工作區中;而輸出數據會直接生成在MATLAB工作區中。

時間序列數據如下圖所示:

圖片

時間序列數據 - From autoMBD

創建時間序列數據可以使用如下語句:

ts = timeseries(rand(5,1));

將模型與MATLAB工作區的時間序列數據連接在一起的方法如下圖所示。在Input框中輸入變量名即可連接輸入;圖中下面的選項可以配置Output輸出數據的格式,仿真完成后輸出數據會保存在MATLAB工作區。

圖片

Data Import/Export - From autoMBD

2.4 模型生成代碼的基本要求

一個模型要能生成嵌入式代碼,至少需要滿足以下兩個要求:

  • Simulink求解器設置為定步長;
  • 選擇代碼生成的系統目標文件ert.tlc。

設置模型求解器的步長的方法如下圖所示。求解器的其他配置可以保持默認,也可以根據實際需求修改。

圖片

設置求解器定步長 - From autoMBD

系統目標文件ert.tlc描述了模型如何生成代碼完整方法和流程,由MathWorks開發,可以在MATLAB的安裝目錄中找到該文件。

但該文件只是模型生成代碼的一部分,它的背后隱藏了大量關于模型生成代碼的細節。完整的ert.tlc文件用戶是不可見的。

選擇代碼生成的系統目標文件ert.tlc的方法如下圖所示。

圖片

設置代碼生成目標文件**ert.tlc - From autoMBD

點擊“Browse”可以看到很多不同類型的系統目標文件(如下圖所示),這些目標文件適用于不同的應用場景。對應嵌入式開發,選擇ert.tlc即可(ert的全稱為Embedded Real Time)。

圖片

不同類型的系統目標文件 - From autoMBD

滿足定步長和系統目標文件的條件,模型就能生成嵌入式代碼了。

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

    關注

    41

    文章

    3664

    瀏覽量

    130847
  • MATLAB仿真
    +關注

    關注

    4

    文章

    176

    瀏覽量

    20277
  • MBD
    MBD
    +關注

    關注

    0

    文章

    26

    瀏覽量

    9139
  • simulink仿真
    +關注

    關注

    0

    文章

    75

    瀏覽量

    8720
  • FOC算法
    +關注

    關注

    1

    文章

    22

    瀏覽量

    9829
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    CCS打開simulink生成的dsp代碼

    simulink生成DSP代碼,并成功下載到板子上后,用CCS選中生成代碼文件確卻不能打開,這是為什么?
    發表于 10-29 18:33

    Simulink模型生成代碼

    有一定的STM32開發調試經驗和Simulink代碼生成經驗。關于Simulink代碼生成可以參
    發表于 08-11 07:56

    simulink自動生成C代碼

    ,也希望可以和更多的人交流simulink/STM32CubeMX聯合生成STM32串口發送代碼,Keil編譯下載到單片機,發送給上位機顯示1.在CubeMX里設置好相關參數后,在si
    發表于 08-17 07:17

    通過一個簡單的Simulink模型生成代碼

    本文首先通過一個簡單的Simulink模型生成代碼,然后將代碼copy到一個Arduino路徑中去編譯軟件。最后將軟件下載到Arduino Uno中,通過串口輸出
    發表于 08-18 06:22

    手把手教你SIMULINK代碼生成

    FrancisZhao:專欄文章列表以及一些說明?zhuanlan.zhihu.comFrancisZhao:手把手教你代碼生成(下):SIMULINK代碼
    發表于 08-18 06:03

    Simulink模型架構的設計資料分享

    更多精彩干貨分享,請關注我的個人微信公眾號:MBD開發者星球;?1、na_0006: Guidelines for mixed use of Simulink and StateflowID
    發表于 11-11 06:52

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

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

    請問simulink代碼如何生成2020a?

    請問simulink代碼如何生成2020a?
    發表于 11-22 06:38

    基于Simulink代碼生成過程是怎樣的?

    基于Simulink代碼生成過程是怎樣的?
    發表于 02-18 07:46

    Simulink 自動代碼生成原理分享

    多出來一些目標系統可以選擇。自定義目標系統是為了讓Simulink生成代碼能根據用戶的需要,與底層驅動做集成。我們首先需要了解Simulink目標編譯的流程,如下圖,
    發表于 05-31 11:19

    MathWorks推出新款代碼生成工具Simulink

      MathWorks 今日宣布 Simulink 代碼生成工具箱已通過 Embedded Coder 嵌入到 Freescale 的新款 Motor Control Development Toolbox 中。該工具箱包括
    發表于 04-26 08:39 ?1406次閱讀

    軟件集成:Simulink與STM32聯合開發

    有一定的STM32開發調試經驗和Simulink代碼生成經驗。關于Simulink代碼生成可以參
    發表于 12-24 19:13 ?15次下載
    軟件集成:<b class='flag-5'>Simulink</b>與STM32聯合開發

    MBDSimulink使用技巧:詳解代碼生成中的模型與代碼(2)

    上一篇文章中提到,生成嵌入式代碼,必須選擇定步長求解器。實際中,生成嵌入式代碼幾乎不會使用Simulink模型庫中的連續模型,往往需要通過最
    的頭像 發表于 07-13 15:13 ?6610次閱讀
    <b class='flag-5'>MBD</b>的<b class='flag-5'>Simulink</b>使用技巧:詳解<b class='flag-5'>代碼</b><b class='flag-5'>生成</b>中的模型與<b class='flag-5'>代碼</b>(2)

    利用Simulink自動生成STM32串口代碼

    功能:利用Simulink自動生成STM32串口代碼,在Keil中編譯后直接下載到主芯片,實現串口通訊的功能。
    的頭像 發表于 10-25 17:04 ?2268次閱讀
    利用<b class='flag-5'>Simulink</b>自動<b class='flag-5'>生成</b>STM32串口<b class='flag-5'>代碼</b>

    simulink自動生成ROS代碼

    當我們用simulink完成控制程序的搭建后,我們期望下一次可以直接對ROS進行控制,而不是每次都需要啟動matlab和simulink,因此我們可以使用simulink代碼
    的頭像 發表于 11-15 17:53 ?1091次閱讀
    <b class='flag-5'>simulink</b>自動<b class='flag-5'>生成</b>ROS<b class='flag-5'>代碼</b>