在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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是上述兩者的集成,同時擴展了在嵌入式開發(fā)中必不可少的特性

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

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

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

2.2 Simulink生成應用代碼

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

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

圖片

FOC核心算法模型 - From autoMBD

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

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

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

2.3 有接口的模型如何仿真

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

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

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

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

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

圖片

模型引用模塊 - From autoMBD

特別注意,Model和Subsystem Refence模塊都能實現(xiàn)模型引用,但它們是有區(qū)別的:

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

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

時間序列數(shù)據(jù)如下圖所示:

圖片

時間序列數(shù)據(jù) - From autoMBD

創(chuàng)建時間序列數(shù)據(jù)可以使用如下語句:

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

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

圖片

Data Import/Export - From autoMBD

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

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

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

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

圖片

設置求解器定步長 - From autoMBD

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

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

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

圖片

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

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

圖片

不同類型的系統(tǒng)目標文件 - From autoMBD

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式系統(tǒng)

    關注

    41

    文章

    3624

    瀏覽量

    129749
  • MATLAB仿真
    +關注

    關注

    4

    文章

    176

    瀏覽量

    19997
  • MBD
    MBD
    +關注

    關注

    0

    文章

    25

    瀏覽量

    9017
  • simulink仿真
    +關注

    關注

    0

    文章

    75

    瀏覽量

    8611
  • FOC算法
    +關注

    關注

    1

    文章

    18

    瀏覽量

    9717
收藏 人收藏

    評論

    相關推薦

    CCS打開simulink生成的dsp代碼

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

    Simulink模型生成代碼

    有一定的STM32開發(fā)調(diào)試經(jīng)驗和Simulink代碼生成經(jīng)驗。關于Simulink代碼生成可以參
    發(fā)表于 08-11 07:56

    simulink自動生成C代碼

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

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

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

    手把手教你SIMULINK代碼生成

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

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

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

    怎樣使用stm32+simulink進行MBD的開發(fā)呢

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

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

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

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

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

    Simulink 自動代碼生成原理分享

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

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

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

    軟件集成:Simulink與STM32聯(lián)合開發(fā)

    有一定的STM32開發(fā)調(diào)試經(jīng)驗和Simulink代碼生成經(jīng)驗。關于Simulink代碼生成可以參
    發(fā)表于 12-24 19:13 ?15次下載
    軟件集成:<b class='flag-5'>Simulink</b>與STM32聯(lián)合開發(fā)

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

    上一篇文章中提到,生成嵌入式代碼,必須選擇定步長求解器。實際中,生成嵌入式代碼幾乎不會使用Simulink模型庫中的連續(xù)模型,往往需要通過最
    的頭像 發(fā)表于 07-13 15:13 ?5709次閱讀
    <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中編譯后直接下載到主芯片,實現(xiàn)串口通訊的功能。
    的頭像 發(fā)表于 10-25 17:04 ?1915次閱讀
    利用<b class='flag-5'>Simulink</b>自動<b class='flag-5'>生成</b>STM32串口<b class='flag-5'>代碼</b>

    simulink自動生成ROS代碼

    當我們用simulink完成控制程序的搭建后,我們期望下一次可以直接對ROS進行控制,而不是每次都需要啟動matlab和simulink,因此我們可以使用simulink代碼
    的頭像 發(fā)表于 11-15 17:53 ?913次閱讀
    <b class='flag-5'>simulink</b>自動<b class='flag-5'>生成</b>ROS<b class='flag-5'>代碼</b>
    主站蜘蛛池模板: 91破处视频 | 起碰成人免费公开网视频 | 综合网自拍| 4455亚洲| 欧美mv日韩mv国产mv网站 | 亚洲一二三区在线观看 | 九色福利 | 在线免费看视频 | 亚洲欧美日韩动漫 | 最近2018年中文字幕在线 | 人人爱天天操 | 综合婷婷丁香 | 亚洲一区在线观看视频 | 免费一区二区三区 | 久久久久九九精品影院 | 五月婷婷激情网 | 欧美无遮挡一区二区三区 | 久久伊人影视 | 婷婷丁香色 | 成人免费淫片95视频观看网站 | 欧美日韩国产网站 | 成熟妇女毛耸耸性视频 | 精品国产一区二区三区成人 | 一级aaa毛片| 99精品国产高清自在线看超 | 7777sq国产精品 | 国产精品福利午夜在线观看 | 丁香婷婷社区 | 7086bt伙计 福利一区 | 涩涩涩综合在线亚洲第一 | 亚洲色图日韩 | 国产成人精品一区二区仙踪林 | 日本免费在线 | 国产一区二区三区在线观看影院 | 永久免费看黄 | 制服丝袜中文字幕第一页 | 理论片午午伦夜理片影院99 | 午夜撸 | 久久免费国产 | 男女交性视频播放视频视频 | 四虎新地址4hu 你懂的 |