主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

为路径中的 MATLAB Function 模块指定缓冲区重用

您可以通过对输入和输出参量使用相同的变量名来指定跨 MATLAB Function 模块的缓冲区重用。代码生成器尝试将一个 MATLAB Function 模块的输出重用为下一个 MATLAB Function 模块的输入。这种优化节省了 RAM 和 ROM 消耗并减少了数据复制。

示例模型

  1. 使用 Inport、Outport 和 MATLAB Function 模块来创建模型 mf_inplace

  2. 打开每个 MATLAB Function 模块并复制以下代码:

    function y = fcn(y)
    %#codegen
    
    y=y+4;
    
  3. 打开配置参数对话框。在代码生成选项卡上,将系统目标文件更改为 ert.tlc

  4. 求解器选项卡上,将类型参数更改为定步长

生成优化代码

为模型生成代码。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 模块参数对话框的代码生成选项选项卡上,如果函数打包参数设置为不可重用函数,而函数接口参数设置为允许参量 (优化),则代码生成器无法重用输入和输出参量。

另请参阅

主题