首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Anylogic叉车碰撞日志

Anylogic叉车碰撞日志
EN

Stack Overflow用户
提问于 2021-11-15 08:28:20
回答 2查看 98关注 0票数 2

我需要测量叉车在碰撞中花费的时间,但是movement_log

对于代理类型是由传送器管理的叉车,无法使用车队。我也不能使用状态图,因为它使用了很多性能。

场景:我正在模拟一个带有单向通道的仓库,这些单向通道的容量是2辆车。有些情况

当一辆叉车(黄色的)需要在单向通道中的另一辆后面等待时,我目前已经正确地建模了,我只是不知道如何检测这种情况并记录下来。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-11-15 10:11:48

我会这样做:

  • 创建一个名为collisionLog.

的新二维变量

  • 每隔1秒检查一次速度getSpeed()函数和状态TransporterState getState()函数。

  • 将这些内容写入collisionLog.

模拟完成后,删除状态为idle的行。

然后根据以下事实进行计算:当速度为零且传送器繁忙时,您将拥有等待的车辆。

票数 1
EN

Stack Overflow用户

发布于 2021-11-15 19:11:00

当传输器发生冲突时,没有可访问的触发点(通常是块的动作)来捕获。是的,这种情况显然必须在内部捕获,以使传输器能够避免冲突,但在这种情况下,这种情况不会暴露为块操作或其他任何地方的操作。(AnyLogic空间标记元素永远不会有动作,除了一些较新的材料处理库元素,如Station,因为这些元素实际上表示一个流程步骤。)

传送器控制块具有碰撞检测和避免的所有设置,但没有相关操作。

所以你的选择真的是

  • ‘扫描’这种情况的发生:Yashar的答案,推断非空闲时的零速度意味着‘由于冲突而等待’(可能是也可能不是100%健壮的)是单向的。

  • 明确地分解了移动(从流程的角度),以定义流程中潜在的“冲突”和决策(例如,如果您试图移动到过道,移动到入口节点,使用资源池或类似的资源在过道中预留空间,并仅在空闲时进入)。显然,这并不能涵盖所有可能的情况,但在某些情况下可能是有用的。

传输器控制块中确实存在的操作在这里可能会有所帮助(对于两个替代方案),因为至少您有输入路径和节点的动作点。(您还可以向AnyLogic提出增强请求,以便在此处添加与碰撞相关的操作……)

我有一个巨大的模型,有大量的叉车,每秒检查任何属性都会导致巨大的性能损失,我也不能使用状态图,因为它使用了很多性能

你真的试过了吗?有些事情不会像你想象的那样影响性能,而且性能不应该是先验的“太慢”的事情;理想情况下,你对可接受的性能有要求,你可以绕过它。(在性能、功能和可维护性之间总是需要权衡的。)

您也没有说您认为使用statecharts会有什么帮助。您的意思是通过状态图执行“扫描”方法,例如循环进入/退出扫描状态?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69971364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档