主要内容

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

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

优化:

  • 减少ROM和RAM的消耗。

  • 提高执行速度。

示例模型

考虑模型LogicalAsBoolean.的输出关系操作符逻辑运算符而且HitCrossing,尽管它们表示逻辑数据。

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

生成代码

构建模型。

slbuild(模型)
# # #开始构建过程:LogicalAsBoolean # # #成功完成构建过程:LogicalAsBoolean模型建立目标:总结构建模型重建行动的理由  ================================================================================================== LogicalAsBoolean代码生成和编译。代码生成信息文件不存在。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 32.162s

查看未经过优化的生成代码。这几行代码是插入的LogicalAsBoolean.h

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

启用优化

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

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

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

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

使用优化生成代码

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

构建模型。

slbuild(模型)
成功完成的构建过程:LogicalAsBoolean构建摘要构建的顶级模型目标:模型操作重建原因================================================================================= LogicalAsBoolean生成和编译的代码。生成的代码已经过时。构建1 / 1模型(0个模型已经更新)构建持续时间:0h 0m 14.183秒

查看生成的带有优化的代码。这几行代码是插入的LogicalAsBoolean.h

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

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

bdclose rtwdemoclean(模型);

另请参阅

相关的话题