配置模型和生成代码
关于本例
学习目标
为代码生成配置模型。
应用模型检查工具来发现导致生成不准确或低效代码的条件和配置设置。
从模型生成代码。
定位并识别生成的代码文件。
检查生成的代码。
先决条件
能够打开和修改Simulink金宝app®模型和子系统。
能够设置模型配置参数。
能够使用Simulink Model 金宝appAdvisor。
能够阅读C代码。
安装一个,金宝app支持的C编译器.
所需的文件
rtwdemo_throttlecntrl
模型文件
配置代码生成模型
模型配置参数决定了生成代码和结果格式的方法。
开放
rtwdemo_throttlecntrl
并另存一份为throttlecntrl
在MATLAB路径的可写位置。然后,打开金宝app仿真软件编码器应用程序。打开配置参数对话框,解算器窗格。要为模型生成代码,您必须配置模型以使用固定步骤求解器。下表显示了这个示例的求解器配置。
参数 设置 对生成代码的影响 类型 固定步
维护一个常量(固定的)步长,这是代码生成所需要的 解算器 离散(无连续状态)
采用固定步长积分法计算模型的状态导数 固定的大小 措施
设置基本利率;必须是系统中最低的公倍数 设定模型配置参数系统目标文件来
grt.tlc
.请注意
GRT(通用实时目标)配置需要一个固定步骤的求解器。然而,
rsim.tlc
系统目标文件支持可变步骤代码生成。金宝app系统目标文件定义了一个环境,用于生成和构建在特定硬件或操作系统平台上执行的代码。属性的值是系统目标文件的一个属性
CodeFormat
TLC变量。GRT配置需要一个固定步长求解器和rsim。TLC支金宝app持可变步长代码生成。设定模型配置参数包括目录如下:
“matlabroot \工具箱\ rtw美元\ rtwdemos \ EmbeddedCoderOverview \”
此文件夹包括为模型构建可执行文件所需的文件。
关闭“模型配置参数”对话框。
保存您的模型配置为MATLAB函数
可以将模型配置参数的设置保存为MATLAB®函数,使用getActiveConfigSet
函数。在MATLAB命令窗口中输入:
thcntracs = getActiveConfigSet('throttlecntrl');thcntrlAcs.saveAs(“throttlecntrlModelConfig”);
然后,您可以使用得到的函数(例如,throttlecntrlModelConfig
):
存档模型配置。
使用不同的工具比较不同的模型配置。
设置其他型号的配置。
例如,您可以设置模型的配置myModel
以匹配节气门控制器的配置型号开度myModel
并输入:
myModelAcs = throttlecntrlModelConfig;attachConfigSet('myModel', myModelAcs, true);setActiveConfigSet (myModel, myModelAcs.Name);
有关更多信息,请参见保存配置集(金宝app模型)和加载一个保存的配置集(金宝app模型)。
检查模型条件和配置设置
在为模型生成代码之前,使用Simulink model Advisor检查模型的条件和配金宝app置设置。此检查可以查找可能导致不准确或低效代码的问题。
开放模式
throttlecntrl
.然后,打开金宝app仿真软件编码器应用程序。启动模型顾问。在C代码选项卡上,单击C/ c++代码顾问.打开一个显示模型系统层次结构的对话框。
点击
rtwdemo_throttlecntrl
然后点击好吧.“模型顾问”窗口打开。在左侧窗格中,选择运行这个检查.报告显示运行总结标记检查警告。
检查报告。这些警告凸显了一些问题。此时,您可以忽略它们。有关报表的详细信息,请参见查看模型顾问检查报告(金宝app模型)。
为模型生成代码
开放
throttlecntrl
.然后,打开金宝app仿真软件编码器应用程序。选择型号配置参数只生成代码.
选择型号配置参数创建代码生成报告并点击应用.
生成的代码。
消息出现在诊断查看器中。代码生成器生成标准C文件和头文件,以及HTML代码生成报告。代码生成器将文件放在建立文件夹的子文件夹
throttlecntrl_grt_rtw
在当前工作文件夹下。
检查生成的代码
在代码生成报告中,单击生成的C模型文件的链接,并检查生成的代码。请在报告中查找以下项目:
标识、版本、时间戳和配置注释。
链接,帮助您在文件内部和文件之间导航
数据定义
调度程序代码
控制器代码
建模初始化和终止函数
GRT系统目标文件的调用接口——输出、更新、初始化、启动和终止
保存并关闭模型
throttlecntrl
.
考虑检查以下文件。在代码生成报告中内容窗格中,单击链接。
文件 | 描述 |
---|---|
throttlecntrl.c |
包含调度器、控制器、初始化和接口代码的C文件 |
throttlecntrl_data.c |
为生成的数据结构赋值的C文件 |
throttlecntrl.h |
定义数据结构的头文件 |
throttlecntrl_private.h |
头文件,定义仅由生成的代码使用的数据 |
throttlecntrl_types.h |
定义模型数据结构的头文件 |
有关更多信息,请参见管理构建过程文件依赖项.
此时,考虑将数据记录到mat文件中。有关示例,请参见分析日志数据.
生成可执行文件
开放
throttlecntrl
.然后,打开金宝app仿真软件编码器应用程序。清晰的模型配置参数只生成代码并点击应用.
构建模型。查看诊断查看器中的消息。代码生成器使用与系统目标文件选择相关联的模板制作文件来创建可执行文件。您可以在工作站上运行此程序,不受外部计时和事件的影响。
在您的工作文件夹中检查该文件
throttlecntrl.exe
.运行可执行文件。在“命令窗口”中输入
throttlecntrl !
.的!
字符将后面的命令传递给操作系统,由操作系统运行独立的程序。程序在命令窗口中产生一行输出:
**开始模型**
此时,考虑将数据记录到mat文件中。有关示例,请参见分析日志数据.
提示
对于UNIX®在命令窗口中运行可执行程序!。/
executable_name
.如果愿意,可以使用语法从操作系统外壳运行可执行程序./
executable_name
.有关更多信息,请参见运行外部命令、脚本和程序(MATLAB)。
要点
要生成代码,更改模型配置以指定固定步骤求解器,然后选择系统目标文件。使用
grt.tlc
文件需要固定步骤求解器。如果模型包含连续的时间块,则可以使用变量步长求解器rsim.tlc
系统目标文件。在调试模型之后,考虑配置启用参数内联的模型。
使用
getActiveConfigSet
函数保存模型配置以供将来使用或将其应用于另一个模型。在生成代码之前,请考虑使用model Advisor检查模型。
代码生成器将生成的文件放置在子文件夹(模型
_grt_rtw
)的工作文件夹。
相关的话题
- 代码生成
- 配置复用(金宝app模型)
- 使用模型顾问检查你的模型(金宝app模型)