主要内容

模型的回调

模型回调在指定的操作点执行,例如在加载或保存模型之后。

可以为库设置大部分相同的回调。只有可以为库执行的回调函数可用于为库设置。例如,不能设置InitFcn用于库的回调函数,它是作为模拟的一部分调用的,因为您不能模拟库。

创建模型的回调

  1. 在仿真软件金宝app®编辑器,打开属性检查器。在建模选项卡,在设计,点击属性检查器

  2. 在模型的顶层没有选择时,在属性选项卡,回调节中,选择要设置的回调。

  3. 在方框中,输入您希望回调执行的函数。

要以编程方式创建模型回调,请使用set_param函数赋值MATLAB®为模型回调参数编写代码。看到回调参数模型

回调引用模型

在模型层次结构中,回调的执行反映了顶层模型及其引用的模型执行回调的顺序。例如,假设:

  • 模式一:

    • 加速器模式下参考模型B。

    • 有一个PostLoadFcn在MATLAB工作空间中创建变量的回调函数。

    • 重建配置参数设置为总是如果检测到变化,或如果检测到已知依赖项中的任何更改

  • 模型2:

    • 有一个CloseFcn清除MATLAB工作区的回调函数。

    • 尚未建成或已过时。

模拟模型A会触发重建参考模型B。当Simulink重建模型B时,它打开和关闭模型B,模型B调用模型B金宝appCloseFcn回调。CloseFcn清除MATLAB工作区,包括模型A创建的变量OpenFcn回调。

而不是使用CloseFcn在模型B的回调函数中,您可以使用StopFcn在模型A中回调,以从MATLAB工作空间中清除模型使用的变量。或者,您可以为数据使用数据字典,以避免在基本工作区中使用变量。

如果模型在普通模式下引用同一模型的多个实例,则对每个实例执行回调。

对于加速器模式下引用的模型,Simulink不会执行一些回调。金宝app如果一切都是最新的重建配置参数设置为如果检测到已知依赖项中的任何更改,则引用的模型不编译,其InitFcn回调函数不执行。等回调StartFcnStopFcn不执行,因为在加速模式下的参考型号使用s功能,它会启动和停止,而不是参考型号。

请注意

的仿真输出不可用StopFcn命令行模拟的回调。

模型InitFcn必须避免编辑模型结构的回调。金宝appSimulink有时会根据模型的加载状态执行或忽略。

回调参数模型

模型加载和关闭回调参数

保存回调参数的模型

模型仿真回调参数

相关的话题