使用逻辑信号的布尔数据优化生成的代码
通过将逻辑信号存储为布尔数据来优化生成的代码。当您选择模型配置参数时实现逻辑信号为布尔数据(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;
启用优化
打开“配置参数”对话框。
选择实现逻辑信号为布尔数据(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(模型);