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

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

3天內不再提示

Simulink自動生成代碼現階段的學習筆記

汽車ECU開發 ? 來源:汽車ECU開發 ? 2024-04-17 10:56 ? 次閱讀

在車載控制器的軟件開發中,simulink的身影幾乎隨處可見,主要是在控制算法和控制邏輯的實現。平時看同事點點點就生成代碼了,看起來很簡單,但是實際操作起來確各種磕磕絆絆。

下面記錄了一下步驟作為現階段的學習筆記吧。

一、建立任務

Matlab的版本為R2014。下圖是一個簡單的模型,其中Signal為模型輸入接口變量,Act為模型輸出接口變量,每個Task中的內容均一樣。

c072df3a-f090-11ee-a297-92fbcf53809c.png

c08d4366-f090-11ee-a297-92fbcf53809c.png

接口配置需要注意其數據類型和Storage Class,兩者影響生成代碼中的變量的聲明。在Storage type qualifier中可以加入其他的限定符。

這里將Signal全部設定為Double類型的Imported Entern類型,將Act全部設定為Exported Global類型。

c09b4ac4-f090-11ee-a297-92fbcf53809c.png

二、環境配置

Simlink模型窗口中選擇Simulation | Modele Configuration Parameters命令,彈出如下圖所示的參數設置對話框。在左邊的目錄樹中我們關心的項有Solver,Hardware Implementation,Code Generation.

1. Sover 配置

Type選項需要配置成定步長。步長時間和任務調度周期一致。仿真終止時間設置為inf。其他參數為默認。

c0ab4f96-f090-11ee-a297-92fbcf53809c.png

2. Hardware配置

根據自己的開發環境,選擇相應的目標板。

c0bf4d2a-f090-11ee-a297-92fbcf53809c.png

3. Code Generation配置

第一頁勾選Generate code only,其它為默認。

在Reprot中勾選生成報告和自動打開報告。

將Interface中data exchange的勾去掉,并將Interface設置為None。配置完畢后點Apply和OK。

c0e9133a-f090-11ee-a297-92fbcf53809c.png

c0ffa01e-f090-11ee-a297-92fbcf53809c.png

三、代碼生成

在模型界面Bulid Modle即可自動生成代碼。由于我們勾選了報告生成,代碼生成完畢后會自動彈出報告。

c1248bcc-f090-11ee-a297-92fbcf53809c.png

其中ModelFiles和DataFiles中的5個文件就是和我們模型結構緊密相關的文件。其它的也是運行必須的Mabltab數據類型聲明文件。一并拷貝到我們的工程環境編譯即可。

四、封裝成函數及優先級設置

打開Demo_1.h和Demo_1_Pricat.h可以看到我們定義的輸出變量和出入變量。

c13f3eea-f090-11ee-a297-92fbcf53809c.png

c153bdde-f090-11ee-a297-92fbcf53809c.png

生成代碼時除了我們的任務函數外,Matlab自動生成了初始化的和終止函數。

c169d330-f090-11ee-a297-92fbcf53809c.png

我們在模型中我們定義了三個Task,但如果不另外配置,生成代碼時默認只生成一個函數。如果需要打包到獨立的函數和文件中,需要做如下配置。

在Task模塊上點右鍵,選擇Block Parameters,勾選treat as acomic unit.

c17d446a-f090-11ee-a297-92fbcf53809c.png

c1923794-f090-11ee-a297-92fbcf53809c.png

在Code Generation一欄,設置任務的重入屬性,函數名,文件名信息。

右鍵選擇Block Properties,在Priority一欄中設置Task優先級ID,該值越小,則任務的執行次序越靠前。

c1a79eb8-f090-11ee-a297-92fbcf53809c.png

這里我將Task1~3的優先級分別設置為2,1,3。

以下是自動生成代碼后的任務順序。生成了Task的.c和.h文件。任務執行順序也按照優先級順序執行。

c1cf21cc-f090-11ee-a297-92fbcf53809c.png

審核編輯:黃飛

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

    關注

    112

    文章

    15333

    瀏覽量

    172279
  • Simulink
    +關注

    關注

    22

    文章

    513

    瀏覽量

    61688
  • 代碼
    +關注

    關注

    30

    文章

    4569

    瀏覽量

    67048

原文標題:Simulink自動生成代碼筆記

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于模型設計的HDL代碼自動生成技術綜述

    手動編寫HDL代碼的效率、優勢,介紹了幾種HDL代碼自動生成方法和工具,總結了基于Matlab/Simulink的HDL
    發表于 06-08 09:29

    視頻教程-基于Simulink的FPGA代碼自動生成技術-Matlab 精選資料推薦

    基于Simulink的FPGA代碼自動生成技術
    發表于 07-20 06:40

    Simulink模型生成代碼

    本文首先通過一個簡單的Simulink模型生成代碼,然后將代碼copy到一個STM32工程中去編譯軟件。最后將軟件下載到STM32F407中,通過串口輸出
    發表于 08-11 07:56

    SIMULINK下的STM32F4的自動代碼是如何生成

    SIMULINK下的STM32F4的自動代碼生成Author:zhou ...
    發表于 08-12 07:34

    simulink自動生成C代碼

    項目需求,最近剛開始學習simulink自動生成C代碼,通過Keil編譯并下載到STM32F103單片機,因為剛開始
    發表于 08-17 07:17

    如何利用Simulink自動生成可以在STM32單片機運行的代碼?

    如何利用Simulink自動生成可以在STM32單片機運行的代碼?
    發表于 11-19 06:41

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

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

    Simulink 自動代碼生成原理分享

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

    快速原型中SIMULINK模型的代碼自動生成

    快速原型仿真是實時仿真的一種,它處于產品研發的算法設計階段與具體實現階段之間,是產品研制過程中一個重要環節。本文介紹了在快速原型系統中如何利用MATLAB/SIMULINK代碼
    發表于 04-17 22:16 ?69次下載

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

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

    Simulink生成嵌入式代碼學習筆記(一)

    Simulink,這次筆記不涉及S-Function以及Stateflow,詳情見更新2.建模學習嘛,當然是從最簡單的開始啦?。ㄖ饕呛茫?..
    發表于 10-20 22:05 ?3次下載
    <b class='flag-5'>Simulink</b><b class='flag-5'>生成</b>嵌入式<b class='flag-5'>代碼</b>的<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>(一)

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

    MATLAB/Simulink中一共提供三個代碼生成的工具
    的頭像 發表于 07-13 15:11 ?1554次閱讀
    MBD的<b class='flag-5'>Simulink</b>使用技巧:<b class='flag-5'>Simulink</b><b class='flag-5'>代碼</b><b class='flag-5'>生成</b>的基本概念(1)

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

    上一篇文章中提到,生成嵌入式代碼,必須選擇定步長求解器。實際中,生成嵌入式代碼幾乎不會使用Simulink模型庫中的連續模型,往往需要通過最
    的頭像 發表于 07-13 15:13 ?3289次閱讀
    MBD的<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 ?1171次閱讀
    利用<b class='flag-5'>Simulink</b><b class='flag-5'>自動</b><b class='flag-5'>生成</b>STM32串口<b class='flag-5'>代碼</b>

    simulink自動生成ROS代碼

    當我們用simulink完成控制程序的搭建后,我們期望下一次可以直接對ROS進行控制,而不是每次都需要啟動matlab和simulink,因此我們可以使用simulink代碼
    的頭像 發表于 11-15 17:53 ?409次閱讀
    <b class='flag-5'>simulink</b><b class='flag-5'>自動</b><b class='flag-5'>生成</b>ROS<b class='flag-5'>代碼</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>