将潮汐时间纳入AnyLogic

时间:2019-03-28 03:00:27

标签: anylogic

将变化的潮汐时间整合到AnyLogic模型中的最佳方法是什么?我想利用这些时间来有效地阻塞和解除阻塞端口。我已经查看了计划选项,格式(开始:第一天,时间)似乎并不是最好的方法。

1 个答案:

答案 0 :(得分:0)

您可以通过重新定时触发来模拟潮汐。 为此,AnyLogic提供了动态事件,该事件可以自行重新计划。

根据潮汐的时间数据(日期时间列表,固定时间段,数据库)的不同,您可以为每次重新安排动态事件重新获取该值。

我附上了一个简单示例模型的屏幕截图。在这里,我假设您已获得一个列表,其中列出了每个影响端口的潮汐时刻之间的间隔(以分钟为单位)(低潮/端口受阻-高潮/端口打开-低潮/端口受阻等等。。。)然后,动态事件将设置一个布尔变量portBlocked,但是根据您的需要,您还可以触发状态图转换,阻止流程图模块或触发函数。

Tide Trigger Example Model (Screenshot)

动态事件的操作代码:

portBlocked=!portBlocked;
create_MyDynamicEvent(tideIntervalsInMinutes.get(tideCounter),MINUTE);
tideCounter++;

代码说明:

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

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