问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Simulink模型生成C代码:使用Embedded Coder快速向导生成代码

创作时间:
作者:
@小白创作中心

Simulink模型生成C代码:使用Embedded Coder快速向导生成代码

引用
CSDN
1.
https://blog.csdn.net/weixin_43015338/article/details/140147335

本文将介绍如何使用Simulink和Embedded Coder快速向导从MATLAB示例模型RollAxisAutopilot生成C代码。通过本文,读者将学习到使用快速向导工具生成代码的具体步骤,以及如何检查和理解生成的代码。

以MATLAB自带的示例模型RollAxisAutopilot为例进行讲解。RollAxisAutopilot为飞机自动驾驶控制系统模型。

使用快速向导工具生成代码

  1. 通过键入以下命令打开模型RollAxisAutopilot:

    openExample('RollAxisAutopilot');
    
  2. 如果C代码选项卡尚未打开,请在App库中的代码生成下,点击Embedded Coder

  3. C代码选项卡上,点击快速向导

  4. 逐步执行快速向导工具的各个步骤,在生成代码步骤停止。每个步骤都会询问有关您要生成的代码的问题。对于本教程,请使用已选择的默认值。该工具根据模型验证您的选择,并显示生成代码所需的参数更改。

  5. 生成代码步骤中,点击下一步应用建议的更改并从RollAxisAutopilot生成代码。

  6. 点击完成,然后返回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。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号