如何查看 Simulink 模型的回调函数

在 Simulink 中,回调函数用于在特定事件发生时执行预定义的 MATLAB 脚本。本文将简单介绍一下如何查看和管理模型的回调函数。


方法 1:使用模型属性窗口

  1. 打开模型​在 MATLAB 中打开目标 Simulink 模型。

  2. 访问模型属性image.png

    在模型编辑器中,找到 Model Settings > Model Properties(模型属性) > Callbacks(回调函数)
    image.png

  3. 查看回调函数​在 Callbacks(回调) 选项卡中,可以看到模型的各种回调函数,例如:

    • PreLoadFcn:在模型加载之前执行。
    • PostLoadFcn:在模型加载之后执行。
    • InitFcn:在仿真或代码生成初始化期间执行。
    • StartFcn:在仿真开始时执行。
    • StopFcn:在仿真停止时执行。
    • CloseFcn:在模型关闭时执行。
    • SaveFcn:在模型保存时执行。
    • PreSaveFcn:在模型保存之前执行。
  4. 编辑回调函数
    选择一个回调函数,在编辑框中查看或修改对应的 MATLAB 脚本。


方法 2:使用命令行查看

通过 MATLAB 命令行,可以直接获取和编辑模型的回调函数。

1. 获取模型名称

modelName = 'your_model_name'; % 替换为你的模型名称

2. 查看所有回调函数内容

使用以下命令列出支持的所有参数:

get_param(modelName, 'ObjectParameters')

3. 查看特定回调函数

InitFcn 为例,查看其内容:

initFcnCode = get_param(modelName, 'InitFcn'); % 获取 InitFcn 的代码
disp(initFcnCode);

4. 修改回调函数

修改 InitFcn 回调函数的内容:

set_param(modelName, 'InitFcn', 'disp("Initializing model...")');

删除回调函数的示例代码

InitFcn 为例,删除该回调函数内容:

set_param(modelName, 'InitFcn', '');

方法 3:查看块级别的回调函数

Simulink 中的子系统或模块也可能有回调函数:

  1. 右键块​右键点击目标模块。

  2. 选择块属性​在菜单中选择 Properties(属性)

  3. 查看回调选项​在 Callbacks 选项卡中,可以查看和编辑块的回调函数,例如:

    • OpenFcn:打开模块时执行。
    • CloseFcn:关闭模块时执行。

回调函数类型总结

回调函数类型 执行时机
PreLoadFcn 在模型加载之前执行
PostLoadFcn 在模型加载之后执行
InitFcn 仿真或代码生成初始化期间执行
StartFcn 仿真开始时执行
StopFcn 仿真停止时执行
CloseFcn 模型关闭时执行
SaveFcn 模型保存时执行
PreSaveFcn 模型保存之前执行
OpenFcn (块) 打开模块时执行
CloseFcn (块) 关闭模块时执行