Anylogic 将潮汐时间纳入任何逻辑

Anylogic 将潮汐时间纳入任何逻辑,anylogic,Anylogic,将不断变化的潮汐时间纳入AnyLogic模型的最佳方式是什么?我想利用时间来有效地阻止和解锁一个端口。我已经查看了时间表选项,但格式(开始:第1天,时间)似乎不是最好的方式。您可以通过重新出现的定时触发器来模拟潮汐。 AnyLogic为此提供了动态事件,一个可以重新安排自身的事件 根据潮汐的时间数据(日期时间列表、固定时段、数据库),可以为动态事件的每个新重新安排检索该值 我附上了一个简单样本模型的截图。在这里,我假设您有一个列表,其中列出了每个影响潮汐时刻的港口之间的间隔(低潮/港口受阻-高潮

将不断变化的潮汐时间纳入AnyLogic模型的最佳方式是什么?我想利用时间来有效地阻止和解锁一个端口。我已经查看了时间表选项,但格式(开始:第1天,时间)似乎不是最好的方式。

您可以通过重新出现的定时触发器来模拟潮汐。 AnyLogic为此提供了动态事件,一个可以重新安排自身的事件

根据潮汐的时间数据(日期时间列表、固定时段、数据库),可以为动态事件的每个新重新安排检索该值

我附上了一个简单样本模型的截图。在这里,我假设您有一个列表,其中列出了每个影响潮汐时刻的港口之间的间隔(低潮/港口受阻-高潮/港口开放-低潮/港口受阻-等等)。然后,动态事件设置一个布尔变量portBlocked,但根据需要,还可以触发状态图转换、阻止流程图模块或触发函数

动态事件的操作代码:

portBlocked=!portBlocked;
create_MyDynamicEvent(tideIntervalsInMinutes.get(tideCounter),MINUTE);
tideCounter++;
守则解释:

  • 触发您所需的操作(这里是简单的布尔变量)
  • 为下一次潮汐变化重新安排活动
  • 更新潮汐计数器(用于从列表中检索相应的潮汐间隔时间)

  • 在模型的启动代码中,您必须首先触发一次动态事件,为此,只需使用与上面第2点相同的代码。

    您可以通过重新发生的定时触发器对潮汐进行建模。 AnyLogic为此提供了动态事件,一个可以重新安排自身的事件

    根据潮汐的时间数据(日期时间列表、固定时段、数据库),可以为动态事件的每个新重新安排检索该值

    我附上了一个简单样本模型的截图。在这里,我假设您有一个列表,其中列出了每个影响潮汐时刻的港口之间的间隔(低潮/港口受阻-高潮/港口开放-低潮/港口受阻-等等)。然后,动态事件设置一个布尔变量portBlocked,但根据需要,还可以触发状态图转换、阻止流程图模块或触发函数

    动态事件的操作代码:

    portBlocked=!portBlocked;
    create_MyDynamicEvent(tideIntervalsInMinutes.get(tideCounter),MINUTE);
    tideCounter++;
    
    守则解释:

  • 触发您所需的操作(这里是简单的布尔变量)
  • 为下一次潮汐变化重新安排活动
  • 更新潮汐计数器(用于从列表中检索相应的潮汐间隔时间)
  • 在模型的启动代码中,最初必须触发动态事件一次,为此,只需使用与上面第2点相同的代码