主要内容

使用逻辑信号的布尔数据优化生成的代码

通过将逻辑信号存储为布尔数据来优化生成的代码。当选择型号配置参数时将逻辑信号实现为布尔数据(vs. double),生成逻辑信号的块输出布尔信号。

优化:

  • 减少ROM和RAM的消耗。

  • 提高执行速度。

示例模型

考虑到模型rtwdemo_logicalAsBoolean.的输出关系操作符逻辑运算符HitCrossing,尽管它们代表的是逻辑数据。

模型=“rtwdemo_logicalAsBoolean”;open_system(模型);

生成代码

为构建和检查过程创建一个临时文件夹(在系统临时文件夹中)。

currentDir = pwd;[~, cgDir] = rtwdemodir ();

构建的模型。

slbuild(模型)
### #成功完成rtwdemo_logicalAsBoolean的构建过程:模型重建行动的原因  ========================================================================================================= rtwdemo_logicalAsBoolean代码生成和编译代码生成信息文件不存在。构建时间:0h 0m 29.987s

查看生成的代码而不进行优化。这些代码行已经加入rtwdemo_logicalAsBoolean.h

hfile = fullfile (cgDir,“rtwdemo_logicalAsBoolean_ert_rtw”...“rtwdemo_logicalAsBoolean.h”);rtwdemodbtype (hfile/ *外部输出的'/*参数(默认存储)*/'1 0);
/*外部输出(根输出由默认存储信号提供)*/ typedef struct {real_T Out1;/* '/Out1' */ real_T Out2;/* '/Out2' */ real_T Out3;/* '/Out3' */} ExtY_rtwdemo_logicalAsBoolean_T;

启用优化

  1. 打开“配置参数”对话框。

  2. 选择将逻辑信号实现为布尔数据(vs. double)参数。

或者,你可以使用命令行API来启用优化:

set_param(模型,“BooleanDataType”“上”);

优化生成代码

生成的代码将逻辑信号输出存储为布尔数据。

构建的模型。

slbuild(模型)
### #成功完成rtwdemo_logicalAsBoolean的构建过程:模型重建行动的原因  ======================================================================================== rtwdemo_logicalAsBoolean代码生成和编译生成的代码是过时了。1个模型(0个模型已经更新)构建时间:0h 0m 14.212s

使用优化查看生成的代码。这些代码行已经加入rtwdemo_logicalAsBoolean.h

rtwdemodbtype (hfile/ *外部输出的'/*参数(默认存储)*/'1 0);
/*外部输出(由默认存储信号提供的根输出)*//* '/Out1' */ boolean_T Out2;/* '/Out2' */ boolean_T Out3;/* '/Out3' */} ExtY_rtwdemo_logicalAsBoolean_T;

关闭模型和代码生成报告。

bdclose rtwdemoclean(模型);cd (currentDir)

另请参阅

相关的话题