为路径中的 MATLAB Function 模块指定缓冲区重用
您可以通过对输入和输出参量使用相同的变量名来指定跨 MATLAB Function 模块的缓冲区重用。代码生成器尝试将一个 MATLAB Function 模块的输出重用为下一个 MATLAB Function 模块的输入。这种优化节省了 RAM 和 ROM 消耗并减少了数据复制。
示例模型
使用 Inport、Outport 和 MATLAB Function 模块来创建模型
mf_inplace。
打开每个 MATLAB Function 模块并复制以下代码:
function y = fcn(y) %#codegen y=y+4;
打开配置参数对话框。在代码生成选项卡上,将系统目标文件更改为
ert.tlc。在求解器选项卡上,将类型参数更改为定步长。
生成优化代码
为模型生成代码。mf_inplace.c 文件包含以下代码:
void mf_inplace_MATLABFunction(real_T *rty_y)
{
*rty_y += 4.0;
}
void mf_inplace_step(void)
{
real_T rtb_y_p5;
rtb_y_p5 = mf_inplace_U.In1;
mf_inplace_MATLABFunction(&rtb_y_p5);
mf_inplace_MATLABFunction(&rtb_y_p5);
mf_inplace_MATLABFunction(&rtb_y_p5);
mf_inplace_Y.Out1 = rtb_y_p5;
mf_inplace_MATLABFunction(&mf_inplace_Y.Out1);
}
rtb_y_p5 作为每个 MATLAB Function 模块的输入和输出参量。注意
在 Subsystem 模块参数对话框的代码生成选项选项卡上,如果函数打包参数设置为不可重用函数,而函数接口参数设置为允许参量 (优化),则代码生成器无法重用输入和输出参量。