Simulink Inport代码生成
在Simulink模型中,顶层(根级)模型的 Inport 模块在进行代码生成时,会以全局变量的形式体现,作为应用层软件与底层软件之间进行数据交互的接口。
对于嵌套在内层模型(例如子系统、模型引用等)中的 Inport 模块,其代码生成方式会根据其连接方式或信号绑定关系而有所不同:
- 如果作为子系统接口,Inport 通常会被生成为函数的输入参数;
- 如果信号已在模型中被绑定或直接连接,Inport 可能会被优化为内部局部变量或直接内联处理。
这种机制有助于实现模型的模块化设计,并确保代码接口的清晰与规范。
Simulink Inport模块怎么设置全局变量
这个问题等同于如何设置Simulink Inport接口的存储类(Storage Class
)。
使用默认配置生成
顶层(根级)模型的 Inport 模块,在生成全局变量代码时,默认(Auto)会以结构体(Struct)的形式生成。
在Inport模块属性中设置
早期版本的Simulink,可以在Inport模块属性的“代码生成”选项卡中直接设置存储类(如 ExportedGlobal
、ImportedExtern
等)。
在数据字典中设置
自MATLAB R2020b (Simulink 10.1)之后,Simulink 逐步限制了在 Inport 模块中直接配置代码生成属性(如存储类),尤其是在模型使用了 数据字典(.sldd) 或 模型引用(Model Reference) 的场景中。
推荐做法变为:通过数据字典中的 Simulink.Parameter
或 Simulink.Signal
对象来配置代码生成设置。
在代码映射中设置
Simulink代码映射(Code Mapping Editor
)自MATLAB 2018b正式引入,它提供一个图形化界面,允许你为模型中各种元素(如 Inports、Outports、参数、信号)设置代码生成属性。
包括:
- 存储类(Storage Class)
- 标识符(Identifier)
- 是否导出全局变量
- 初始化值等
通过 Code Mapping 界面一站式配置这些映射,大大提升了管理性和清晰度,尤其对大型模型、团队开发特别有帮助。