首页 > 解决方案 > 如何为包含导出函数子模型的 Simulink 模型生成代码?

问题描述

我正在使用 matlab 2019b 构建此 Simulink 模型:函数调用生成器调用导出函数子模型。超模 导出函数模型是具有函数调用输入的模型。 子模型

我可以使用嵌入式编码器为子模型生成代码,以及运行顶级模型的模拟。但是为顶级模型生成代码会给出以下错误消息:

模型“main”包含一个参考模型“main/Model”,它设置为多实例导出函数,但模型“main”不遵循导出函数规则。其中“main”是顶级型号名称。

导出函数模型文档https://www.mathworks.com/help/simulink/ug/export-function-models.html写道:

对于函数调用模型模块,引用模型的定期采样时间约束设置为确保采样时间独立

遵循此规则会引发另一个错误。如果顶部模型的周期性采样时间约束发生变化,则错误为:

该模型不会继承采样时间,因为“主/模型”块不允许它这样做。如果此模型不需要继承采样时间,请在“配置参数”对话框的“求解器”选项卡上将“定期采样时间约束”更改为“确保采样时间独立”以外的其他内容。

如果子模型的周期性采样时间约束发生变化,则错误为:

模型“instance”的当前诊断设置无效,因为该模型包含输出函数调用信号的根级 Inport 模块“instance/f”。有关详细信息,请参阅下面报告的错误。原因:在导出函数模型“实例”中,“配置参数”>“求解器”>“任务和采样时间选项”中的参数“定期采样时间约束”必须设置为“无约束”。建议的操作 在“实例”中将“定期采样时间约束”设置为“无约束”。

如何为顶级模型生成代码?

标签: code-generationsimulink

解决方案


推荐阅读