RM新时代网站-首页

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

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

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

Simulink自動生成代碼現(xiàn)階段的學(xué)習(xí)筆記

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

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

下面記錄了一下步驟作為現(xiàn)階段的學(xué)習(xí)筆記吧。

一、建立任務(wù)

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

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

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

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

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

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

二、環(huán)境配置

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

1. Sover 配置

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

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

2. Hardware配置

根據(jù)自己的開發(fā)環(huán)境,選擇相應(yīng)的目標板。

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

3. Code Generation配置

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

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

將Interface中data exchange的勾去掉,并將Interface設(shè)置為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個文件就是和我們模型結(jié)構(gòu)緊密相關(guān)的文件。其它的也是運行必須的Mabltab數(shù)據(jù)類型聲明文件。一并拷貝到我們的工程環(huán)境編譯即可。

四、封裝成函數(shù)及優(yōu)先級設(shè)置

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

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

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

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

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

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

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

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

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

在Code Generation一欄,設(shè)置任務(wù)的重入屬性,函數(shù)名,文件名信息。

右鍵選擇Block Properties,在Priority一欄中設(shè)置Task優(yōu)先級ID,該值越小,則任務(wù)的執(zhí)行次序越靠前。

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

這里我將Task1~3的優(yōu)先級分別設(shè)置為2,1,3。

以下是自動生成代碼后的任務(wù)順序。生成了Task的.c和.h文件。任務(wù)執(zhí)行順序也按照優(yōu)先級順序執(zhí)行。

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

審核編輯:黃飛

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

    關(guān)注

    112

    文章

    16332

    瀏覽量

    177803
  • Simulink
    +關(guān)注

    關(guān)注

    22

    文章

    533

    瀏覽量

    62378
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68521

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

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于模型設(shè)計的HDL代碼自動生成技術(shù)綜述

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

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

    基于Simulink的FPGA代碼自動生成技術(shù)
    發(fā)表于 07-20 06:40

    Simulink模型生成代碼

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

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

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

    simulink自動生成C代碼

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

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

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

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

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

    Simulink 自動代碼生成原理分享

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

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

    快速原型仿真是實時仿真的一種,它處于產(chǎn)品研發(fā)的算法設(shè)計階段與具體實現(xiàn)階段之間,是產(chǎn)品研制過程中一個重要環(huán)節(jié)。本文介紹了在快速原型系統(tǒng)中如何利用MATLAB/SIMULINK代碼
    發(fā)表于 04-17 22:16 ?69次下載

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

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

    Simulink生成嵌入式代碼學(xué)習(xí)筆記(一)

    Simulink,這次筆記不涉及S-Function以及Stateflow,詳情見更新2.建模學(xué)習(xí)嘛,當(dāng)然是從最簡單的開始啦!(主要是好)...
    發(fā)表于 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'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(一)

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

    MATLAB/Simulink中一共提供三個代碼生成的工具
    的頭像 發(fā)表于 07-13 15:11 ?2798次閱讀
    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模型庫中的連續(xù)模型,往往需要通過最
    的頭像 發(fā)表于 07-13 15:13 ?5413次閱讀
    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中編譯后直接下載到主芯片,實現(xiàn)串口通訊的功能。
    的頭像 發(fā)表于 10-25 17:04 ?1791次閱讀
    利用<b class='flag-5'>Simulink</b><b class='flag-5'>自動</b><b class='flag-5'>生成</b>STM32串口<b class='flag-5'>代碼</b>

    simulink自動生成ROS代碼

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