文件

从包含引用模型的子系统生成可重用代码

对包含引用模型的子系统的注意事项

您可以使用相同的过程和选项生成包含引用模型的子系统的可重复使用的代码控制子系统功能的生成。对于包含引用模型的子系统,请考虑以下限制:

  • 使用单任务模式的顶级模型,并包括使用多任务模式对具有未连接的不同速率执行的块执行的引用模型。如果具有不同速率的块通过手动插入或通过Simulink连接的速率转换块连接,则会收到错误。金宝app

  • 使用嵌入式编码器生成S函数时®通过右键单击子系统并选择C / C ++代码>生成S函数,代码生成器不支持包含连续采样时间的子系统。金宝app

  • S函数系统目标文件RTWSFCN.TLC.不受支持。金宝app

  • 代码生成器忽略从生成的S-函数为子系统对话框配置的可调参数设置。要将参数配置为可调谐,请将它们定义为基础工作区中的Simulink参数对象。金宝app

  • 代码生成器在生成的代码和S函数中循环不调谐的参数。

使用root Inport或Outport块的代码重用和模型块

具有连接或输出的可重复使用的子系统函数连接到引用模型的根Inport或Outport块可以影响代码重用。它可以以相同的方式阻止您在参考模型上下文中重用原子子系统,以便您可以在独立模型中重用子系统。

例如,考虑此子系统:

假设您对子系统块参数进行以下更改:

然后,您创建此模型,其中包括前一个子系统的三个实例。

使用模型配置参数默认参数行为(金宝appSimulink编码器)设置为,代码生成器通过生成重复使用子系统的函数的一个副本来优化代码。

void reuse_subsys1_subsystem(real_t rtu_in1,b_subsystem_reuse_subsys1_t * localb){localb-> gain = 3.0 * RTU_IN1;}

如果将三个子系统移动到模型块,您必须修改模型和模型配置。

  1. 添加A.信号转换块或A.偏见子系统3和出口块之间的块。如果子系统有一个合并具有初始条件的块,不添加信号转换堵塞。相反,添加一个偏见块以获得可重复使用的功能。

  2. 选择模型配置参数通过用于代码生成的值通过固定大小的标量根输入(金宝appSimulink)。

结果是单一可重用功能:

void reuse_subsys1_subsystem(real_t rtu_in1,b_subsystem_reuse_subsys1_t * localb){localb-> gain = 3.0 * RTU_IN1;}

相关话题