国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

深入拆解Simulink自動生成代碼(三)——循環(huán)結構

這篇具有很好參考價值的文章主要介紹了深入拆解Simulink自動生成代碼(三)——循環(huán)結構。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

文章目錄

前言

一、Simulink實現(xiàn)循環(huán)結構

二、自動生成C代碼

三、變式1

四、變式2

五、變式3

六、變式4

總結


前言

????????《深入拆解Simulink自動生成代碼(一)——數(shù)據流處理》

????????《深入拆解Simulink自動生成代碼(二)——選擇結構》

一、Simulink實現(xiàn)循環(huán)結構

???????? 用Simulink實現(xiàn)循環(huán)結構的一個最簡單編程舉例如下:

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

?simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

二、自動生成C代碼

???????? 上述循環(huán)結構的Simulink自動生成的對應C代碼如下:

  int32_T s3_iter;

  /* Outputs for Iterator SubSystem: '<S2>/For Iterator Subsystem' incorporates:
   *  ForIterator: '<S3>/For Iterator'
   */
  for (s3_iter = 0; s3_iter < 5; s3_iter++) {
    /* Outputs for Iterator SubSystem: '<S2>/For Iterator Subsystem' incorporates:
     *  ForIterator: '<S3>/For Iterator'
     */
    CodeGenerate_Y.y2 = s3_iter + 1;
  }

  /* End of Outputs for SubSystem: '<S2>/For Iterator Subsystem' */

三、變式1

???????? 基于上述舉例,把for循環(huán)改成while循環(huán),生成的對應代碼如下所示:

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

  int32_T s3_iter;

  /* Outputs for Iterator SubSystem: '<S2>/While Iterator Subsystem' incorporates:
   *  WhileIterator: '<S3>/While Iterator'
   */
  s3_iter = 1;

  /* End of Outputs for SubSystem: '<S2>/While Iterator Subsystem' */
  do {
    CodeGenerate_Y.y2 = s3_iter;
    s3_iter++;
  } while (s3_iter <= 5);

四、變式2

???????? 基于上述舉例,再增加一個while的退出條件,當Counter>3時退出循環(huán),生成的對應代碼如下所示:

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

  int32_T s3_iter;
  boolean_T rtb_Compare;

  /* Outputs for Iterator SubSystem: '<S2>/While Iterator Subsystem1' incorporates:
   *  WhileIterator: '<S3>/While Iterator'
   */
  s3_iter = 1;

  /* End of Outputs for SubSystem: '<S2>/While Iterator Subsystem1' */
  do {
    CodeGenerate_Y.y2 = s3_iter;
    rtb_Compare = (CodeGenerate_DW.Output_DSTATE <= 3);
    if ((uint8_T)(CodeGenerate_DW.Output_DSTATE + 1U) > 7) {
      CodeGenerate_DW.Output_DSTATE = 0U;
    } else {
      CodeGenerate_DW.Output_DSTATE++;
    }

    s3_iter++;
  } while (rtb_Compare && (s3_iter <= 5));

五、變式3

???????? 基于上述舉例,把while的循環(huán)類型從do while改成while do,生成的對應代碼如下所示:

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

  int32_T s3_iter;
  boolean_T loopCond;

  /* Outputs for Iterator SubSystem: '<S2>/While Iterator Subsystem2' incorporates:
   *  WhileIterator: '<S3>/While Iterator'
   */
  s3_iter = 1;

  /* Constant: '<S2>/Constant' */
  loopCond = true;
  while (loopCond && (s3_iter <= 5)) {
    /* Outputs for Iterator SubSystem: '<S2>/While Iterator Subsystem2' incorporates:
     *  WhileIterator: '<S3>/While Iterator'
     */
    CodeGenerate_B.WhileIterator = s3_iter;

    /* RelationalOperator: '<S4>/Compare' incorporates:
     *  Constant: '<S4>/Constant'
     *  UnitDelay: '<S5>/Output'
     */
    loopCond = (CodeGenerate_DW.Output_DSTATE <= 3);

    /* Switch: '<S7>/FixPt Switch' incorporates:
     *  Constant: '<S6>/FixPt Constant'
     *  Constant: '<S7>/Constant'
     *  Sum: '<S6>/FixPt Sum1'
     *  UnitDelay: '<S5>/Output'
     */
    if ((uint8_T)(CodeGenerate_DW.Output_DSTATE + 1U) > 7) {
      CodeGenerate_DW.Output_DSTATE = 0U;
    } else {
      CodeGenerate_DW.Output_DSTATE++;
    }

    /* End of Switch: '<S7>/FixPt Switch' */
    s3_iter++;
  }

  /* End of Outputs for SubSystem: '<S2>/While Iterator Subsystem2' */

  /* Outport: '<Root>/y2' incorporates:
   *  MATLAB Function: '<Root>/MATLAB Function3'
   */
  CodeGenerate_Y.y2 = CodeGenerate_B.WhileIterator;

六、變式4

???????? 基于上述舉例,把while循環(huán)體的執(zhí)行內容,從每次退出循環(huán)再進入時保持前一次的狀態(tài),變成每次退出循環(huán)再進入時置初始狀態(tài),也即Start狀態(tài)從Held改成Reset,生成的對應代碼如下所示:

simulink循環(huán)模塊,Matlab/Simulink,汽車,mcu,開發(fā)語言,matlab,算法

  int32_T s3_iter;
  uint8_T Output_DSTATE;
  boolean_T loopCond;

  /* Outputs for Iterator SubSystem: '<S2>/While Iterator Subsystem3' incorporates:
   *  WhileIterator: '<S3>/While Iterator'
   */
  s3_iter = 1;

  /* InitializeConditions for UnitDelay: '<S5>/Output' */
  Output_DSTATE = 0U;

  /* Constant: '<S2>/Constant1' */
  loopCond = true;
  while (loopCond && (s3_iter <= 5)) {
    /* Outputs for Iterator SubSystem: '<S2>/While Iterator Subsystem3' incorporates:
     *  WhileIterator: '<S3>/While Iterator'
     */
    CodeGenerate_B.WhileIterator = s3_iter;

    /* RelationalOperator: '<S4>/Compare' incorporates:
     *  Constant: '<S4>/Constant'
     *  UnitDelay: '<S5>/Output'
     */
    loopCond = (Output_DSTATE <= 3);

    /* Switch: '<S7>/FixPt Switch' incorporates:
     *  Constant: '<S6>/FixPt Constant'
     *  Constant: '<S7>/Constant'
     *  Sum: '<S6>/FixPt Sum1'
     *  UnitDelay: '<S5>/Output'
     */
    if ((uint8_T)(Output_DSTATE + 1U) > 7) {
      Output_DSTATE = 0U;
    } else {
      Output_DSTATE++;
    }

    /* End of Switch: '<S7>/FixPt Switch' */
    s3_iter++;
  }

  /* End of Outputs for SubSystem: '<S2>/While Iterator Subsystem3' */

  /* Outport: '<Root>/y2' incorporates:
   *  MATLAB Function: '<Root>/MATLAB Function3'
   */
  CodeGenerate_Y.y2 = CodeGenerate_B.WhileIterator;

總結

???????? 以上就是本人拆解Simulink模塊自動生成代碼時,講解的第三部分。主要針對Simulink的循環(huán)模塊,展示了這類模塊的使用方法,并對比了相應的C代碼。

???????? 后續(xù)還會更新Simulink其他的幾種模塊,歡迎評論區(qū)留言、點贊、收藏和關注,這些鼓勵和支持都將成為筆者持續(xù)分享的動力。

???????? 另外,上述例程使用的Demo工程可以到筆者的主頁查找和下載。


???????? 版權聲明:原創(chuàng)文章,轉載和引用請注明出處和鏈接,侵權必究!文章來源地址http://www.zghlxwxcb.cn/news/detail-529704.html

到了這里,關于深入拆解Simulink自動生成代碼(三)——循環(huán)結構的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MATLAB/ SIMULINK模型在環(huán)MIL測試工具,自動化模型測試工具,自動生成測試報告

    MATLAB/ SIMULINK模型在環(huán)MIL測試工具,自動化模型測試工具,自動生成測試報告

    MATLAB/ SIMULINK模型在環(huán)MIL測試工具,自動化模型測試工具,自動生成測試報告。 軟件純自己編寫,經過長時間測試,包教會。 使用簡單,可以參考如下截圖。 ID:972000 677200256038 悅潮風尚

    2024年02月16日
    瀏覽(26)
  • 深度學習-循環(huán)神經網絡-RNN實現(xiàn)股價預測-LSTM自動生成文本

    深度學習-循環(huán)神經網絡-RNN實現(xiàn)股價預測-LSTM自動生成文本

    基于文本內容及其前后信息進行預測 基于目標不同時刻狀態(tài)進行預測 基于數(shù)據歷史信息進行預測 序列模型:輸入或者輸出中包含有序列數(shù)據的模型 突出數(shù)據的前后序列關系 兩大特點: 輸入(輸出)元素之間是具有順序關系。不同的順序,得到的結果應該是不同的,比如“

    2024年01月24日
    瀏覽(60)
  • AIGC for code(AIGC/AI生成代碼/生成式AI之代碼生成/AI編程工具/自動編程/自動生成代碼/智能編程工具/智能編程系統(tǒng))

    AIGC for code(AIGC/AI生成代碼/生成式AI之代碼生成/AI編程工具/自動編程/自動生成代碼/智能編程工具/智能編程系統(tǒng))

    AIGC,Artificial Intelligence Generated Content,人工智能生成內容 AIGC for code,AI生成代碼 Copilot是由微軟的子公司Github與openAI共同開發(fā)的人工智能(AI)驅動的編程助手。它能夠直接在你的編輯器中,為你提供代碼片段或者整個函數(shù)的建議,以幫助你更快地編寫和完成代碼。這個工具

    2024年02月17日
    瀏覽(24)
  • 源生成器:根據需要自動生成機械重復代碼

    本文概述了利用.NET Compiler Platform(“Roslyn”)SDK 附帶的 源生成器 (Source Generator)自動生成機械重復的代碼。關于這部分的基礎入門知識可以在MSDN [1] 學到。 本文 默認 已經有一個解決方案,包含兩個項目。一個是普通C#項目,依賴于另一個源生成器項目。 此處以 Dependenc

    2024年02月01日
    瀏覽(95)
  • AI自動生成代碼工具

    AI自動生成代碼工具

    AI自動生成代碼工具是一種利用人工智能技術來輔助或自動化軟件開發(fā)過程中的編碼任務的工具。這些工具使用機器學習和自然語言處理等技術,根據開發(fā)者的需求生成相應的源代碼。以下是一些常見的AI自動生成代碼工具,希望對大家有所幫助。北京木奇移動技術有限公司,

    2024年02月04日
    瀏覽(21)
  • AIGC for code(text-to-codeAIGC/AI生成代碼/生成式AI之代碼生成/AI編程工具/自動編程/自動生成代碼/智能編程工具/智能編程系統(tǒng))

    AIGC for code(text-to-codeAIGC/AI生成代碼/生成式AI之代碼生成/AI編程工具/自動編程/自動生成代碼/智能編程工具/智能編程系統(tǒng))

    AIGC,Artificial Intelligence Generated Content,人工智能生成內容 AIGC for code,AI生成代碼 Copilot是由微軟的子公司Github與openAI共同開發(fā)的人工智能(AI)驅動的編程助手。它能夠直接在你的編輯器中,為你提供代碼片段或者整個函數(shù)的建議,以幫助你更快地編寫和完成代碼。這個工具

    2024年02月15日
    瀏覽(28)
  • 13.若依代碼自動生成功能詳解

    13.若依代碼自動生成功能詳解

    基于若依的目錄結構,若依本身提供了代碼生成功能,可以根據數(shù)據庫表的內容,生成一些基本的CRUD的前后端的功能。本文將生成過程中的一些注意事項,進行了整理和說明 注意:在使用代碼生成功能之前,一定要注意數(shù)據庫字段,不能是,要不使用的時候,一堆問

    2024年01月25日
    瀏覽(93)
  • 代碼自動生成工具——TableGo(實例演示)

    代碼自動生成工具——TableGo(實例演示)

    ????????在SpringBoot項目開發(fā)中,為了提高開發(fā)效率,我們經常需要使用代碼自動生成工具來生成一些重復性的代碼,比如實體類、DAO、Service、Controller等等。下面介紹幾個常用的代碼自動生成工具: ①、MyBatis Generator ????????MyBatis Generator是由MyBatis官方提供的一個代碼

    2024年02月07日
    瀏覽(20)
  • 工具—IDEA代碼自動生成插件EasyCode

    工具—IDEA代碼自動生成插件EasyCode

    官網簡介 基于IntelliJ IDEA開發(fā)的代碼生成插件,支持自定義任意模板(Java,html,js,xml)。 只要是與數(shù)據庫相關的代碼都可以通過自定義模板來生成。支持數(shù)據庫類型與java類型映射關系配置。 支持同時生成生成多張表的代碼。每張表有獨立的配置信息。完全的個性化定義,

    2024年02月09日
    瀏覽(34)
  • 帝國CMS自動生成縮略圖和自動分頁功能代碼

    自動生成縮略圖代碼 \\\'; 無論你手工發(fā)布,還是采集而來,免不了要進行手工操作弄縮略圖,不然標題圖片沒有,挺煩人的 只需一次設定,就可以在文章編輯框里自動勾選上分頁和生成縮略圖,免除你次次進行操作的麻煩,好了,廢話不多說,上菜“ 先到 系統(tǒng)管理數(shù)據表 后

    2024年02月03日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包