以matlab自帶的示例模型RollAxisAutopilot
為例進行講解。RollAxisAutopilot
為飛機自動駕駛控制系統模型。
使用快速向導工具生成代碼
- 通過鍵入以下命令打開模型?
RollAxisAutopilot
:
openExample('RollAxisAutopilot');
- 如果?C 代碼選項卡尚未打開,請在 App 庫中的代碼生成下,點擊?Embedded Coder。
- 在?C 代碼選項卡上,點擊快速向導。
- 逐步執行快速向導工具的各個步驟,在生成代碼步驟停止。每個步驟都會詢問有關您要生成的代碼的問題。對于本教程,請使用已選擇的默認值。該工具根據模型驗證您的選擇,并顯示生成代碼所需的參數更改。
- 在生成代碼步驟中,點擊下一步應用建議的更改并從?
RollAxisAutopilot
?生成代碼。 - 點擊完成,然后返回?C 代碼選項卡。在該選項卡中,您可以配置代碼生成自定義,然后在模型旁邊的代碼視圖中檢查結果。
檢查生成的代碼
生成的代碼出現在兩個主文件中:RollAxisAutopilot.c
?和?RollAxisAutopilot.h
。在您的 MATLAB??當前文件夾中,RollAxisAutopilot_ert_rtw
?文件夾包含這些主文件。
在您的當前文件夾中,代碼生成器會創建?slprj
?文件夾。此文件夾包含?rtwtypes.h
?文件,該文件定義生成的代碼默認使用的標準數據類型。通常,此同級文件夾包含可以或必須在多個模型之間共享的生成文件。
您從模型中生成的代碼包含從應用程序代碼調用的入口函數。對于基于速率的模型,這些函數包括初始化函數、執行函數以及可選的終止和重置函數。這些函數通過您控制的數據接口與應用程序代碼交換數據。
點擊模型圖下方的代碼映射 - 組件接口打開代碼映射編輯器。在函數選項卡上,您可以看到代碼生成器生成的各個入口函數。您可以從外部代碼或您修改的生成主函數的版本調用這些生成的函數。對于基于速率的模型的基本速率單步函數和導出函數模型的單步函數,您可以自定義函數名稱和參數。
查看代碼生成器為模型生成的入口函數的列表。使用此視圖有選擇地為每個函數指定一個函數自定義模板(代碼定義)和名稱。對于本教程,代碼生成器使用自定義模板和入口函數名稱的默認(附帶)設置。代碼生成器會為初始化函數?RollAxisAutopilot_initialize
?和執行(單步)函數?RollAxisAutopilot_step
?命名。這兩個入口函數都有一個?void-void
?接口(它們不傳遞任何參數)。這些函數通過共享數據結構體訪問數據。此類數據的示例包括函數與應用程序代碼交換的系統級輸入和輸出。
要在生成的代碼中查看這些入口函數,請執行下列操作:
- 在 Simulink??編輯器窗口右側的“代碼視圖”窗格中,找到搜索欄。
- 在搜索欄中,鍵入?
RollAxisAutopilot_step
。要在生成的代碼文件中查找單步函數名稱的每個實例,請點擊搜索建議。 - 使用右側的箭頭步進每個實例,包括?
RollAxisAutopilot.c
?中的單步函數定義和?RollAxisAutopilot.h
?中的聲明。您還可以通過左上角的文件菜單查看每個文件中的搜索命中數。 - 重復這些搜索步驟,以在生成的代碼中找到初始化函數?
RollAxisAutopilot_initialize
。