文档

删除代码块对计算结果没有影响

这个例子展示了如何通过删除代码生成器生成的代码优化代码,对计算结果没有影响。这种优化:

  • 提高执行速度。

  • 减少了罗消费。

例子

在模型中rtwdemo_blockreduction,一块获得的价值1.0在尺寸和外港块之间。

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

生成代码

创建一个临时文件夹的建立和检验过程。

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

构建的模型。

set_param(模型,“BlockReduction”,“关闭”);rtwbuild(模型)
# # #开始构建过程模型:rtwdemo_blockreduction # # #成功完成构建过程模型:rtwdemo_blockreduction

这是代码rtwdemo_blockreduction.c

用= fullfile (cgDir,“rtwdemo_blockreduction_ert_rtw”,“rtwdemo_blockreduction.c”);rtwdemodbtype(用“/ *模型阶跃函数* /”,“/ *模型初始化函数* /”1 0);
/ *模型阶跃函数* /空白rtwdemo_blockreduction_step (void){/ *外港:“< Root > /着干活”包含:*获得:“< Root > /增益”*尺寸:“< Root > / In1”* / rtwdemo_blockreduction_Y。着干活= 1.0 * rtwdemo_blockreduction_U.In1;}

启用优化

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

  2. 选择块减少。这种优化是默认。

此外,使用命令行API启用优化。

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

生成代码的优化

rtwbuild(模型)
# # #开始构建过程模型:rtwdemo_blockreduction # # #成功完成构建过程模型:rtwdemo_blockreduction

这是优化的代码rtwdemo_blockreduction.c

用= fullfile (cgDir,“rtwdemo_blockreduction_ert_rtw”,“rtwdemo_blockreduction.c”);rtwdemodbtype(用“/ *模型阶跃函数* /”,“/ *模型初始化函数* /”1 0);
/ *模型阶跃函数* /空白rtwdemo_blockreduction_step (void){/ *外港:“< Root > /着干活”包含:*尺寸:“< Root > / In1”* / rtwdemo_blockreduction_Y。着干活= rtwdemo_blockreduction_U.In1;}

因为输入信号乘以一个值1.0不会影响计算结果,代码生成器排除了获得从生成的代码块。关闭模型和清理。

bdclose rtwdemoclean(模型);cd (currentDir)

另请参阅

相关的话题