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

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

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

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

MATLAB ? 來源:djl ? 作者:柚籽 ? 2019-09-17 16:18 ? 次閱讀

在自動生成代碼時,Simulink模型里的兩類數(shù)據(jù)是我們需要考慮的:信號(signal)和參數(shù)(parameter)。信號對應(yīng)于Simulink模塊連線,仿真時一般都會變化;而參數(shù)則對應(yīng)于雙擊模塊時所設(shè)置的變量,仿真時一般保持不變。

如何控制這些變量在生成的代碼里的實現(xiàn)?

點擊末尾的 “閱讀原文” 下載本文的案例模型

信號和參數(shù)的聲明和定義

要得到:

模型參數(shù)p1定義為:int32 p1 = 3;extern int32 p1

模型信號mySig定義為:int16 mySig;extern int16 mySig

怎么做:用Data Object。

實例二

1. 建一個簡單的Simulink模型

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

2. 代碼生成基本配置

求解器:定步長—離散求解器

系統(tǒng)目標(biāo)文件:ert.tlc

3. 新建數(shù)據(jù)對象

打開Model Explorer,點擊菜單的Add,在base workspace里定義參數(shù)數(shù)據(jù)對象p1,進行如圖設(shè)置:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

這樣在生成代碼的時候,參數(shù)p1就會定義為int32的數(shù)據(jù)類型,并且聲明為extern。而且它的聲明和定義代碼會分別寫入myHdr.h以及mySrc.c。

類似的,新建一個 Simulink.Signal,命名為 mySig,設(shè)置如圖。它的定義和聲明就會默認(rèn)的在模型名.c和模型名.h里 :

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

4. 信號關(guān)聯(lián)

在信號線上右鍵,將信號與Base Workspace的數(shù)據(jù)對象關(guān)聯(lián)在一起。

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

參數(shù)k不需要手動關(guān)聯(lián)。

5. 生成代碼

Ctrl+B,生成代碼。

如前面所設(shè)置的,得到參數(shù)p1的定義如圖,寫到自定義的.c.h文件里去了:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

信號mySig的聲明和定義如圖,在模型名.c和模型名.h文件里:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

E-Coder里對數(shù)據(jù)的默認(rèn)定義:

關(guān)于如何控制變量在生成代碼里的作用分析和介紹

總結(jié)

所以說,可以使用數(shù)據(jù)對象(Data Object)來定義數(shù)據(jù)在所生成的代碼里的表達(dá)方式。

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

    關(guān)注

    11

    文章

    2794

    瀏覽量

    76886
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28408
收藏 人收藏

    評論

    相關(guān)推薦

    DFT在生物信號分析中的應(yīng)用

    DFT(離散傅里葉變換)在生物信號分析中有著廣泛的應(yīng)用。生物信號,如心電圖(ECG)、腦電圖(EEG)、肌電圖(EMG)等,是生物體內(nèi)產(chǎn)生的電信號,它們攜帶著生命活動和生理狀態(tài)的重要信息。DFT作為
    的頭像 發(fā)表于 12-20 09:28 ?311次閱讀

    探索設(shè)計稿自動生成Flutter代碼的技術(shù)方案

    的工具和方法,最后嘗試大模型生成flutter代碼在項目中的實踐。 一、美團的探索 美團在2021年3月25日發(fā)表了一篇關(guān)于設(shè)計稿自動生成代碼
    的頭像 發(fā)表于 11-08 10:09 ?948次閱讀
    探索設(shè)計稿自動<b class='flag-5'>生成</b>Flutter<b class='flag-5'>代碼</b>的技術(shù)方案

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?353次閱讀
    如何自動<b class='flag-5'>生成</b>verilog<b class='flag-5'>代碼</b>

    生成式AI工具作用

    生成式AI工具是指那些能夠自動生成文本、圖像、音頻、視頻等多種類型數(shù)據(jù)的人工智能技術(shù)。在此,petacloud.ai小編為您整理生成式AI工具作用
    的頭像 發(fā)表于 10-28 11:19 ?259次閱讀

    STM32CUBEMX生成freeRTOS代碼的時候出現(xiàn)警告

    to use HAL timebase source other than the Systick. HAL函數(shù)如果是阻塞型呼叫,內(nèi)部會用到HAL_Delay(),F(xiàn)reeRTOS應(yīng)該還是使用SystTick。如果使用的時基操作來源一樣,怕有不可預(yù)期問題出現(xiàn),故選擇其他定時器。 此時在生成
    發(fā)表于 09-04 14:13

    探討AI編寫代碼技術(shù),以及提高代碼質(zhì)量的關(guān)鍵:靜態(tài)代碼分析工具Perforce Helix QAC &amp; Klocwork

    令軟件開發(fā)人員夜不能寐的事情比比皆是。如今,他們最關(guān)心的問題不再是如何用自己喜歡的語言(C、C++、Erlang、Java 等)表達(dá)最新的算法,而是人工智能(AI)。 本文中,我們將介紹AI編寫代碼
    的頭像 發(fā)表于 06-05 14:10 ?420次閱讀

    ISEDA首發(fā)!大語言模型生成代碼到底好不好使

    在大模型席卷一切、賦能百業(yè)的浪潮,“碼農(nóng)”也沒能獨善其身。各種代碼自動生成的大模型,似乎描繪了一個人人都能像資深工程師一樣寫代碼的美好未來。 但在這個理想成為現(xiàn)實之前,有一個不能回避
    發(fā)表于 05-16 13:41 ?345次閱讀
    ISEDA首發(fā)!大語言模型<b class='flag-5'>生成</b>的<b class='flag-5'>代碼</b>到底好不好使

    使用LL庫時在CUBEMX中設(shè)置了重映射,在生成代碼中卻沒有重映射是為什么?

    我在使用LL庫時在CUBEMX中設(shè)置了重映射,但是在生成代碼中卻沒有重映射,于是人工添加LL_GPIO_AF_RemapPartial_TIM3(); 然后防真但是走到這里就出現(xiàn)不能繼續(xù)防真的情況
    發(fā)表于 04-24 07:26

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

    在車載控制器的軟件開發(fā)中,simulink的身影幾乎隨處可見,主要是在控制算法和控制邏輯的實現(xiàn)。平時看同事點點點就生成代碼了,看起來很簡單,
    的頭像 發(fā)表于 04-17 10:56 ?3966次閱讀
    Simulink自動<b class='flag-5'>生成</b><b class='flag-5'>代碼</b>現(xiàn)階段的學(xué)習(xí)筆記

    STM32CubeMX生成代碼軟件卡死的原因?怎么解決?

    STM32CubeMX 生成代碼 軟件卡死!在生成代嗎時,一直卡死在如圖所示的狀態(tài),進度條一直就不走了。試過多次,一直如此。請問如何解決該問題,原因可能是什么?STM32CubeMX版本5.1.0
    發(fā)表于 04-10 06:03

    請問STM32IDE如何設(shè)定代碼到ITCM中運行?

    近期使用STM32MUX生成STM32IDE的代碼(MCU是STM32H743),目前希望可以將部分代碼定位到ITCM中運行,加快處理速度,關(guān)于代碼
    發(fā)表于 03-26 06:08

    變量位置不同會死機?郭天祥老師視頻的遺留問題分析答案

    在郭天祥老師視頻有一個問題分享,是EXMC初始化的一個變量定義和初始化位置不同會導(dǎo)致程序死機,最終定位到程序是進入hardfault死機,但暫時沒有后續(xù)分析了,這里我們來繼續(xù)
    的頭像 發(fā)表于 02-26 09:12 ?373次閱讀
    <b class='flag-5'>變量</b>位置不同會死機?郭天祥老師視頻的遺留問題<b class='flag-5'>分析</b>答案

    如何配置RTR位以在生成的CAN_NODE_0中接收遠(yuǎn)程幀?

    但我們無法在代碼中配置 RTR 位,能否請你解釋一下如何配置 RTR 位以在生成的 CAN_NODE_0 中接收遠(yuǎn)程幀。
    發(fā)表于 01-19 06:38

    IMC101T-T038恒功率控制如何修改變量轉(zhuǎn)向?

    IMC101T-T038 芯片使用腳本功能,恒功率如何控制變量轉(zhuǎn)向
    發(fā)表于 01-19 06:21

    自動控制系統(tǒng)中的操縱變量指什么

    自動控制系統(tǒng)中的操縱變量指的是在系統(tǒng)中由控制控制的可調(diào)節(jié)參數(shù),用于調(diào)節(jié)或改變被控對象的輸出或狀態(tài)。操縱變量是自動
    的頭像 發(fā)表于 01-15 11:29 ?5402次閱讀