如何对特定代理使用 sleep()

问题描述 投票:0回答:1

我正在使用物料搬运库对引导路径 AGV 系统进行建模。在 AGV 中,我有一个动态事件,其中包含一些用于降低 AGV 速度的代码和一个睡眠(时间)命令来控制该特定 AGV 降低速度的持续时间。

问题:当动态事件触发时,睡眠命令不仅会延迟AGV,还会使整个模型进入睡眠状态(模型时间停止运行)。

期望:当动态事件触发时,只有AGV应该在睡眠命令指定的时间内降低速度。其他AGV不受影响,模型运行正常。

当前设置:

Dynamic Event name myDE created in AGV
setSpeed(50)
try {
    Thread.sleep((long)(nextFailureDuration*1000));
} catch(InterruptedException e) {
    System.out.println("got interrupted!");
}

nextFailureDuration 是 AGV 中创建的变量类型 double。

simulation anylogic
1个回答
0
投票

永远不要使用

sleep()
功能(除非您知道自己在做什么)。它不应该用于建模。

如果您想降低 1 个代理的速度,只需在该代理上拨打

setSpeed(...)
即可。如果这不起作用,请打开一个新问题,解释您是如何做到这一点的,我们可以解决这个问题。

但是没有

sleep()
:)

© www.soinside.com 2019 - 2024. All rights reserved.