Engee 文档

回调

不要将本文中描述的回调与库回调混淆。 DiffEqCallbacks.jl。 阅读更多关于与他们合作的信息 Event Handling and Callback Functions.

回调 —这些是响应模型中的某些事件而自动调用的函数。 *Engee*回调是用编程语言创建的 朱莉娅

要打开回调,请转到设置窗口。 lk 5 并点击 编辑源代码 pen button graphs:

callbacks start 1 cn

所有*Engee*回调都可在打开的菜单中使用。 它们默认为空,不包含任何代码。:

callback start 2 cn

所有*Engee*回调可以大致分为4组:

打开模型

[完整_回退]

保存模型

关闭模型

`PreLoadFunc' `PostLoadFunc'

'InitFunc`

"启动基金" `PauseFunc' `ContinueFunc' `StopFunc'

`PreSaveFunc' `PostSaveFunc'

`关闭'

回调的描述

打开模型

它们用于调整模型在打开前后的行为。

了解有关模型打开回调的更多信息

使用的回调’PreLoadFunc'(打开)和’PostLoadFunc'(关闭)。

描述:

  • 'PreLoadFunc—-在加载模型之前执行。

    在此模型的回调中不能使用软件控制方法,因为模型尚未加载。
  • 'PostLoadFunc—-加载模型后执行。 您可以在其中使用模型参数,因为它们已经加载。

基于模型打开条件的回调允许:

  • 在使用`PreLoadFunc`加载模型之前,准备*Engee*工作区或执行初始化任务;

  • 使用’PostLoadFunc’加载模型后,配置模型参数或执行依赖于上传数据的操作。

模型执行

它们在仿真过程中使用。

了解有关模型执行回调的更多信息

使用的回调InitFunc(初始化),startFunc(开始),PauseFunc(暂停),ContinueFunc(执行),StopFunc(停止)。

当您启动模型并至少停止一次仿真过程时,所有这些功能都将起作用。

描述:

  • 'InitFunc—-在模型的编译阶段之后执行。;

  • 'startFunc—-运行到模拟的第一步;

  • 'PauseFunc'-在仿真过程中暂停时调用;

  • 'ContinueFunc—-在暂停后启动模型时一步运行;

  • 'StopFunc—-在仿真过程关闭期间执行。

保存模型

保存模型时使用。

了解有关模型保存回调的更多信息

使用的回调'PreSave(保存前),'postSave`(保存后)

描述:

  • 'PreSave'-在保存模型之前执行。;

  • 'postSave'-保存模型后执行。

关闭模型

关闭模型时使用。

了解更多关于模型闭包回调的信息

使用的回调’CloseFunc'(闭包)

描述:

  • 'CloseFunc—-在模型关闭后执行。

基于模型闭包条件的回调允许:

  • 释放模型运行期间使用的资源(内存或文件描述符;

  • 执行在模型关闭之前需要完成的任何最终任务。;

  • 在关闭之前保存模型(或其数据)的状态。

工作示例

要查看回调如何工作的示例,请转到 链接

您可以为每个回调分配一个变量给*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'(完成)。 您可以使用"变量"窗口监视回调的执行。:

callback variables 1 cn

每次触发回调时,都会更新变量,然后输出它们的值,用于仿真过程的分析和调试。