Simulink 模型生成 C 代碼(一):使用 Embedded Coder 快速向導生成代碼

以matlab自帶的示例模型RollAxisAutopilot為例進行講解。RollAxisAutopilot為飛機自動駕駛控制系統模型。

使用快速向導工具生成代碼

  1. 通過鍵入以下命令打開模型?RollAxisAutopilot
openExample('RollAxisAutopilot');

  1. 如果?C 代碼選項卡尚未打開,請在 App 庫中的代碼生成下,點擊?Embedded Coder
  2. 在?C 代碼選項卡上,點擊快速向導
  3. 逐步執行快速向導工具的各個步驟,在生成代碼步驟停止。每個步驟都會詢問有關您要生成的代碼的問題。對于本教程,請使用已選擇的默認值。該工具根據模型驗證您的選擇,并顯示生成代碼所需的參數更改。
  4. 生成代碼步驟中,點擊下一步應用建議的更改并從?RollAxisAutopilot?生成代碼。
  5. 點擊完成,然后返回?C 代碼選項卡。在該選項卡中,您可以配置代碼生成自定義,然后在模型旁邊的代碼視圖中檢查結果。

檢查生成的代碼

生成的代碼出現在兩個主文件中:RollAxisAutopilot.c?和?RollAxisAutopilot.h。在您的 MATLAB??當前文件夾中,RollAxisAutopilot_ert_rtw?文件夾包含這些主文件。

在您的當前文件夾中,代碼生成器會創建?slprj?文件夾。此文件夾包含?rtwtypes.h?文件,該文件定義生成的代碼默認使用的標準數據類型。通常,此同級文件夾包含可以或必須在多個模型之間共享的生成文件。

您從模型中生成的代碼包含從應用程序代碼調用的入口函數。對于基于速率的模型,這些函數包括初始化函數、執行函數以及可選的終止和重置函數。這些函數通過您控制的數據接口與應用程序代碼交換數據。

點擊模型圖下方的代碼映射 - 組件接口打開代碼映射編輯器。在函數選項卡上,您可以看到代碼生成器生成的各個入口函數。您可以從外部代碼或您修改的生成主函數的版本調用這些生成的函數。對于基于速率的模型的基本速率單步函數和導出函數模型的單步函數,您可以自定義函數名稱和參數。

查看代碼生成器為模型生成的入口函數的列表。使用此視圖有選擇地為每個函數指定一個函數自定義模板(代碼定義)和名稱。對于本教程,代碼生成器使用自定義模板和入口函數名稱的默認(附帶)設置。代碼生成器會為初始化函數?RollAxisAutopilot_initialize?和執行(單步)函數?RollAxisAutopilot_step?命名。這兩個入口函數都有一個?void-void?接口(它們不傳遞任何參數)。這些函數通過共享數據結構體訪問數據。此類數據的示例包括函數與應用程序代碼交換的系統級輸入和輸出。

要在生成的代碼中查看這些入口函數,請執行下列操作:

  1. 在 Simulink??編輯器窗口右側的“代碼視圖”窗格中,找到搜索欄。
  2. 在搜索欄中,鍵入?RollAxisAutopilot_step。要在生成的代碼文件中查找單步函數名稱的每個實例,請點擊搜索建議。
  3. 使用右側的箭頭步進每個實例,包括?RollAxisAutopilot.c?中的單步函數定義和?RollAxisAutopilot.h?中的聲明。您還可以通過左上角的文件菜單查看每個文件中的搜索命中數。
  4. 重復這些搜索步驟,以在生成的代碼中找到初始化函數?RollAxisAutopilot_initialize

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38888.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38888.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38888.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】宏定義

嚴格來說,這個題目起名為C是不合適的,因為宏定義是C語言的遺留特性。CleanCode并不推薦C中使用宏定義。我當時還在公司做過宏定義為什么應該被取代的報告。但是適當使用宏定義對代碼是有好處的。壞處也有一些。 無參宏定義 最常見的一種宏定義&#xf…

makefile總結

1,Makefile規則介紹 一個簡單的 Makefile 描述規則組成: TARGET... : PREREQUISITES... COMMAND 注意: 每一個命令行必須以[Tab]字符開始, [Tab]字符告訴 make 此行是一個命令行。 make 按照命令完成相應的動作。這也是書寫 Makefile 中容易產生,而且比較隱蔽的錯…

油煙凈化器:餐飲業健康環保的守護者

我最近分析了餐飲市場的油煙凈化器等產品報告,解決了餐飲業廚房油膩的難題,更加方便了在餐飲業和商業場所有需求的小伙伴們。 在現代餐飲業,油煙凈化器已經成為不可或缺的重要設備。它不僅是保障餐飲環境清潔的利器,更是守護健康…

新聲創新20年:無線技術給助聽器插上“娛樂”的翅膀

聽力損失并非現代人的專利,古代人也會有聽力損失。助聽器距今發展已經有二百多年了,從當初單純的聲音放大器到如今的全數字時代助聽器,助聽器發生了翻天覆地的變化,現代助聽器除了助聽功能,還具有看電視,聽…

【LeetCode】368. 最大整除子集

雖然這題挺難寫的,但是仍然提醒了我:解題要注意方法。在明確分析當一條道路走不通的時候,就不要再猶豫了,就要果斷的換方法,嘗試用其它方法解決。否則一味的消耗時間,得不償失。換方法的前提是明確的分析&a…

C++ 和C#的差別

首先把眼睛瞪大,然后憋住一口氣,讀下去: 1、CPP 就是C plus plus的縮寫,中國大陸的程序員圈子中通常被讀做"C加加",而西方的程序員通常讀做"C plus plus",它是一種使用非常廣泛的計算…

Maya崩潰閃退常見原因及解決方案

Autodesk Maya 是一款功能強大的 3D 計算機圖形程序,被電影、游戲和建筑等各個領域的設計師廣泛使用。然而,Maya 就像任何其他軟件一樣可能會發生崩潰問題。在前文中,小編給大家介紹了3ds Max使用V-Ray渲染時的崩潰閃退解決方案: …

Neo4j 圖數據庫 高級操作

Neo4j 圖數據庫 高級操作 文章目錄 Neo4j 圖數據庫 高級操作1 批量添加節點、關系1.1 直接使用 UNWIND 批量創建關系1.2 使用 CSV 文件批量創建關系1.3 選擇方法 2 索引2.1 創建單一屬性索引2.2 創建組合屬性索引2.3 創建全文索引2.4 列出所有索引2.5 刪除索引2.6 注意事項 3 清…

后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok

一、什么是JDBC JDBC就是sun公司研發的一套通過java來操控數據庫的工具,對應不同的數據庫系統有不同的JDBC,而他們統稱【驅動】,這就是上一篇我們提到創建Mybatis項目時要引入的依賴、以及連接數據庫四要素里的第一要素。 JDBC有自己一套原始…

SerialportToTCP② 全

效果補全(代碼): namespace SerialportToTCP {public partial class Form1 : Form{IniHelper Ini;string[] botelvs new string[] { "1200", "4800", "9600", "13200" };public Form1(){Initializ…

Elasticsearch:Painless scripting 語言(一)

Painless 是一種高性能、安全的腳本語言,專為 Elasticsearch 設計。你可以使用 Painless 在 Elasticsearch 支持腳本的任何地方安全地編寫內聯和存儲腳本。 Painless 提供眾多功能,這些功能圍繞以下核心原則: 安全性:確保集群的…

安卓gdb 建立鏈接

adbshell gdbserver :1234 testdcam --sensor 0 --workmode 0 --args preview-size1024x600,picture-size640x480, --time 10 adb forwardtcp:1234 tcp:1234 //設置adb的轉發 ./prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gdb out/tar…

近紅外光譜腦功能成像(fNIRS):1.光學原理、變量選取與預處理

一、朗伯-比爾定律與修正的朗伯-比爾定律 朗伯-比爾定律 是一個描述光通過溶液時被吸收的規律。想象你有一杯有色液體,比如一杯紅茶。當你用一束光照射這杯液體時,光的一部分會被液體吸收,導致透過液體的光變弱。朗伯-比爾定律告訴我們&#…

mmdetection3D指定版本安裝指南

1. 下載指定版本號 選擇指定版本號下載mmdetection3d的源碼,如這里選擇的是0.17.2版本 git clone https://github.com/open-mmlab/mmdetection3d.git -b v0.17.22. 安裝 cd mmdetection3d安裝依賴庫 pip install -r requirment.txt編譯安裝 pip install -v e .…

redis主從復制哨兵模式集群管理

主從復制: 主從復制是高可用Redis的基礎,哨兵和集群都是在主從復制基礎上實現高可用的。主從復制主要實現了數據的多機備份,以及對于讀操作的負載均衡和簡單的故障恢復。缺陷:故障恢復無法自動化;寫操作無法負載均衡&…

軟件測試與質量保證 | 云班課簡答題庫

目錄 第14章 質量相關簡答題 第15章 測試實際相關簡答題 第16章 測試基本相關簡答題 第14章 質量相關簡答題 1. 簡述基本的測量原則。 測量應該基于該應用領域正確的理論之上,并在測量的定義中確定測度的目標;每一個技術測量的定義應該具有一致性和客…

HbuilderX:安卓打包證書.keystore生成與使用

前置條件 已安裝jdk或配置好jre環境。 .keystore生成 打開cmd,切換到目標路徑,輸入以下命令, keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 輸入密鑰庫口令(要記住), 然后輸入一系列信息, …

ui.perfetto.dev sql 查詢某個事件范圍內,某個事件的耗時并降序排列

ui.perfetto.dev sql 查詢某個事件范圍內,某個事件的耗時并降序排列 1.打開https://ui.perfetto.dev 導入Chrome Trace Json文件2.ParallelMLP.forward下的RowParallelLinear.forward3.點擊Query(SQL),在輸入框中輸入以下內容,按CtrlEnter,顯示查詢結果4.點擊Show timeline,點擊…

2024年07年01日 Redis數據類型以及使用場景

String Hash List Set Sorted Set String,用的最多,對象序列化成json然后存儲 1.對象緩存,單值緩存 2.分布式鎖 Hash,不怎么用到 1.可緩存經常需要修改值的對象,可單獨對對象某個屬性進行修改 HMSET user {userI…

Windows快速打開某個路徑下的PowerShell

按住Shift右鍵打開: 在桌面或者文件夾頁面中,按住右鍵,在彈出的右鍵菜單中選擇“在終端中打開”或“在此處打開Powershell窗口“,就可打開windows PowerShell界面,且路徑為桌面或打開的文件夾所在路徑。