初始化函数
初始化函数 (InitFcn) 是一种在模型编译开始时执行或计算的回调类型。您可以将 InitFcn 回调指定为模型回调或模块回调。
注意
变体控制项只能在模型 InitFcn 回调中定义。
InitFcn 模型回调
使用 InitFcn 模型回调来初始化特定于模型的参数和环境设置,例如:
模型参数中使用的变量
所需软件的许可证检查
在 Simulink® 工具条的建模选项卡上,点击模型设置箭头,然后点击模型属性。在“模型属性”对话框中,InitFcn 模型回调位于回调选项卡上。

不要使用 InitFcn 模型回调来:
获取仿真状态。如果您使用
slbuild函数仿真模型,或者使用软件在环 (SIL) 或快速加速模式,则InitFcn模型回调状态可以显示为'stopped'。运行仿真命令。例如,不要在模型
InitFcn回调中使用set_param(ModelName,'SimulationCommand','start')或set_param(ModelName,'SimulationCommand','update')之类的命令。修改其他模型。同样,Model 模块的
InitFcn模块回调不能修改引用模型的参数或结构。覆盖引用模型中使用的任何变量。例如,如果顶层模型和引用模型使用变量 k,则顶层模型的
InitFcn模型回调不能修改引用模型的 k。在这样的建模模式中,请使用不同的变量名称或数据字典。编辑模型的结构,但不要定义变体控制项。例如,不要在
InitFcn模型回调中使用add_line或delete_line之类的函数。
如果对模型使用 InitFcn 回调,则会对整个模型禁用针对模块参数中缺失变量的编辑时检查。
如需具有变体的 InitFcn 模型回调的示例,请打开 sldemo_variant_initFcn 模型。然后,双击绿色模块以打开一个使用推荐工作流的模型。打开的模型包含 Variant Subsystem 和 Variant Source 模块。

在此模型中,InitFcn 模型回调用来初始化模型的参数。

虽然您可以在 PreLoadFcn 或 PostLoadFcn 模型回调中定义这些参数,但这些回调会在模型加载之前或之后执行。假设您从 MATLAB® 工作区中清空参数并仿真模型。PreLoadFcn 和 PostLoadFcn 模型回调不会重新创建参数。当您在 InitFcn 模型回调中定义参数时,模型会更新并且仿真会重新创建参数。
InitFcn 模块回调
使用 InitFcn 模块回调来初始化模块的参数和设置。
右键点击该模块。然后,点击属性。在“模块属性”对话框中,InitFcn 模块回调位于回调选项卡上。

不要将 InitFcn 模块回调用于以下目的:
修改其他模块的参数(或变量),除非您使用 Subsystem 模块的
InitFcn回调来修改其直接子模块的参数。进行结构性更改。例如,不要在
InitFcn模块回调中使用add_block或delete_block之类的函数。修改另一个模块在使用的任何全局变量或模型工作区中的变量。
修改由 Model 模块引用的模型的参数、结构或设置。
如果对一个模块使用 InitFcn 回调,则会对该模块禁用针对模块参数中缺失变量的编辑时检查。