内联不变的信号
你可以通过选择优化生成的代码内联不变的信号在优化窗格。生成的代码使用的数值不变的信号,而不是他们的符号名称。
一个不变的信号是一个块输出信号,在仿真软件并没有改变金宝app®模拟。例如,信号S3
是一个不变的信号。一个不变的信号不一样的是吗不变的常数。两个常数(1和2)和3的增益值是不变的常数。内联不变的常数,集默认参数的行为来内联
。
优化生成的代码使用内联不变的信号
这个例子展示了如何使用内联优化生成的代码不变的信号。这种优化将符号名称不变的信号转换为恒定值。
的InlineInvariantSignals
优化:
减少消费ROM和RAM。
提高执行速度。
示例模型
考虑到模型InvariantSignalsInline
。
模型=“InvariantSignalsInline”;open_system(模型);
生成代码
使用仿真软件构建模型®编码器™。金宝app
slbuild(模型)
# # #开始构建过程:InvariantSignalsInline # # #成功完成构建过程:InvariantSignalsInline模型建立目标:总结构建模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = InvariantSignalsInline代码生成和编译。代码生成信息文件不存在。1 1模型的建立(0模型已经更新)构建持续时间:0 h 0米10.306秒
查看生成的代码没有优化。这些代码行InvariantSignalsInline.c
。
用= fullfile (“InvariantSignalsInline_grt_rtw”,…“InvariantSignalsInline.c”);rtwdemodbtype(用/ *输出和更新原子系统的,…/ *模型输出的1 0);
/ *输出和更新原子系统:“< Root > / InlinedConstFcn”* /空白InvariantSignal_InlinedConstFcn (int32_T rtu_In1 B_InlinedConstFcn_InvariantSi_T * localB, const ConstB_InlinedConstFcn_Invari_T * localC){/ *产品:“< S1 > /产品”* / localB - >产品= rtu_In1 * localC - > Sum_p;}
启用优化
打开配置参数对话框。
在优化窗格中,选择内联不变的信号。
或者,您可以使用命令行API启用优化:
set_param(模型,“InlineInvariantSignals”,“上”);
生成代码的优化
生成的代码使用折叠的数值常量而不是创建一个额外的结构。
使用仿真软件编码器构建模型。金宝app
slbuild(模型)
# # #开始构建过程:InvariantSignalsInline # # #成功完成构建过程:InvariantSignalsInline模型建立目标:总结构建模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = InvariantSignalsInline代码生成和编译。生成的代码是过时了。1 1模型的建立(0模型已经更新)构建持续时间:0 h 0米8.0868秒
查看生成的代码的优化InvariantSignalsInline.c
。
rtwdemodbtype(用…/ *输出和更新原子系统的,/ *模型输出的1 0);
/ *输出和更新原子系统:“< Root > / InlinedConstFcn”* /空白InvariantSignal_InlinedConstFcn (int32_T rtu_In1 B_InlinedConstFcn_InvariantSi_T * localB){/ *产品:“< S1 > /产品”* / localB - >产品= rtu_In1 < < 5;}
关闭模型和代码生成报告。
bdclose rtwdemoclean(模型);