模型的回调
模型回调在指定的操作点执行,例如在您加载或保存模型之后。
你可以为库设置大部分相同的回调。只有可以为库执行的回调可用于为库设置。例如,不能设置InitFcn
函数库的回调函数,它作为模拟的一部分调用,因为您不能模拟函数库。
创建模型回调
在Simuli金宝appnk中®工具条上的建模选项卡,在设计画廊,点击属性检查器.
在模型或引用模型的顶层没有选择的情况下,在属性选项卡,在回调部分,选择要设置的回调。
请注意
块回调不同于模型回调。不要选择模型块来设置引用模型的模型回调。
在框中,输入希望回调执行的函数。
要以编程方式创建模型回调,请使用set_param
MATLAB函数赋值®编码到模型回调参数。
模型回调参数
模型回调参数 | 执行时 |
---|---|
|
在加载模型之前。 不使用模型参数 为这个参数定义回调代码对于加载模型使用的变量很有用。 如果希望在不打开模型的情况下从MATLAB文件调用模型,请使用 有关示例,请参见: 限制包括: |
|
在加载模型之后。 为这个参数定义回调代码对于生成需要加载模型的接口可能很有用。 限制包括:
因为在此回调执行后将打开金宝appSimulink编辑器,所以 |
|
在评估块参数之前的更新阶段。在模型更新和模拟期间调用此回调。 避免模型 有关的更多信息 有关示例,请参见: |
|
在模拟阶段之前。在模型更新期间不会调用此回调。 |
|
模拟暂停后。 |
|
在继续模拟之前。 |
|
模拟停止后。 操作之前,将输出写入工作区变量和文件 中的模拟输出不可用 |
|
在保存模型之前。 |
|
保存模型后。 如果你做结构上的改变 |
|
在框图关闭之前。 任何 |
引用模型回调
在模型层次结构中,回调的执行反映了顶级模型及其引用的模型执行回调的顺序。例如,假设:
模式一:
参考模型B在加速器模式。
有一个
PostLoadFcn
在MATLAB工作区中创建变量的回调函数。有重建配置参数设置为
总是
,如果检测到更改
,或如果检测到任何已知依赖项的变化
.
模型2:
有一个
CloseFcn
清除MATLAB工作区的回调函数。尚未建成或已经过时。
模拟模型A会触发引用模型B的重新构建。当Simulink重新构建模型B时,它会打开和关闭模型B,从而调用模型B金宝appCloseFcn
回调。CloseFcn
清除MATLAB工作区,包括由模型A创建的变量OpenFcn
回调。
而不是使用CloseFcn
回调模型B,您可以使用aStopFcn
在模型A中的回调,以清除模型从MATLAB工作区中使用的变量。或者,您可以为数据使用数据字典,以避免在基本工作空间中使用变量。
的仿真模式模型块影响所引用模型的模型回调何时执行。
模型块的仿真模式 | 行为 |
---|---|
正常的 |
在模型编译期间,Simulink加载每个被配置为在正金宝app常模式下进行模拟且尚未加载的参考模型。 在大多数情况下,Simulin金宝appk只编译一次每个标准模式引用模型,而不考虑模型的数量模型块引用它。 的 在模型编译之后,引用的模型仍然被加载。 |
加速器 |
在模型编译期间,Simulink可以打开和关闭配置为金宝app以加速模式进行模拟的参考模型重建设置和模拟目标。在模型编译之前开放的模型仍然是开放的。 金宝appSimulink不执行某些回调。
|
有关模型参考仿真模式的更多信息,请参见为模型层次选择仿真模式.