回调
不要将本文中描述的回调与库回调混淆。 DiffEqCallbacks.jl。 阅读更多关于与他们合作的信息 Event Handling and Callback Functions. |
回调 —这些是响应模型中的某些事件而自动调用的函数。 *Engee*回调是用编程语言创建的 朱莉娅。
要打开回调,请转到设置窗口。 并点击 编辑源代码
:
所有*Engee*回调都可在打开的菜单中使用。 它们默认为空,不包含任何代码。:
所有*Engee*回调可以大致分为4组:
`PreLoadFunc' `PostLoadFunc' |
'InitFunc` "启动基金" `PauseFunc' `ContinueFunc' `StopFunc' |
`PreSaveFunc' `PostSaveFunc' |
`关闭' |
回调的描述
打开模型
它们用于调整模型在打开前后的行为。
了解有关模型打开回调的更多信息
使用的回调’PreLoadFunc'(打开)和’PostLoadFunc'(关闭)。
描述:
-
'PreLoadFunc—-在加载模型之前执行。
在此模型的回调中不能使用软件控制方法,因为模型尚未加载。 -
'PostLoadFunc—-加载模型后执行。 您可以在其中使用模型参数,因为它们已经加载。
基于模型打开条件的回调允许:
|
模型执行
它们在仿真过程中使用。
了解有关模型执行回调的更多信息
使用的回调:InitFunc
(初始化),startFunc
(开始),PauseFunc
(暂停),ContinueFunc
(执行),StopFunc
(停止)。
当您启动模型并至少停止一次仿真过程时,所有这些功能都将起作用。
描述:
-
'InitFunc—-在模型的编译阶段之后执行。;
-
'startFunc—-运行到模拟的第一步;
-
'PauseFunc'-在仿真过程中暂停时调用;
-
'ContinueFunc—-在暂停后启动模型时一步运行;
-
'StopFunc—-在仿真过程关闭期间执行。
工作示例
要查看回调如何工作的示例,请转到 链接。
您可以为每个回调分配一个变量给*Engee*。 这很方便根据仿真条件跟踪触发,例如,代码可以在模型打开调用"PreLoadFunc"中使用:
# 模型开放变量
PreL = 1 # 在加载模型之前执行
PostL = 0 # 加载模型后执行
# 模型执行变量
Init = 0 # 它是在模型编译后执行的
Start = 0 # 运行到模拟的第一步
Pause = 0 # 暂停模拟时调用
Continue = 0 # 它在暂停后启动模型时一步执行
Stop = 0 # 它是在模拟停止期间执行的
# 模型保留变量
PreS = 0 # 在保存模型之前执行
PostS = 0 # 保存模型后执行
# 模型闭包变量
Close = 0 # 模型关闭后执行
此代码使用null值初始化变量。 与打开模型相关的`PreL’变量是一个,因为它的参数是在加载模型之前和之后加载的(它们总是被执行)。 例如,在’startFunc’模型的执行回调中,您可以设置变量’Start=1'。 如果此回调成功,变量的值将从`0`(失败)变为'1'(完成)。 您可以使用"变量"窗口监视回调的执行。:
每次触发回调时,都会更新变量,然后输出它们的值,用于仿真过程的分析和调试。