Engee 文档

回调

请勿将本文描述的回调与link:https://docs.sciml.ai/DiffEqCallbacks/stable/ 库 [DiffEqCallbacks.jl] 的回调混淆。有关使用它们的更多详情,请参阅此处

回调(Callbacks)是针对模型中的某些事件自动调用的函数。回调 Engee 是在编程语言Julia 中创建的。

要打开回调,请进入设置窗口lk 5 ,然后点击 编辑源代码pen button graphs

callbacks start 1

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

callback start 2

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

打开模型 执行模型 保存模型 关闭模型

预加载函数

后加载函数

初始化 StartFunc 启动

暂停

继续 `StopFunc

预保存

后保存

关闭

打开模型

用于配置模型打开前后的行为。

有关模型打开回调的更多信息_.

*有用的回调: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 #выполняется после закрытия модели

这段代码将变量初始化为空值。与模型打开相关联的 PreL 变量等于 1,因为其参数会在模型加载(始终执行)之前和之后加载。例如,在 StartFunc 模型执行回调中,可以设置 Start = 1 变量。如果回调成功执行,变量值将从 0(未执行)变为 1(已执行)。您可以使用变量窗口监控回调的执行情况:

callback variables 1

每次触发回调时,都会更新变量,然后显示变量值,以便分析和调试仿真过程。