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

对于代理类型是由传送器管理的叉车,无法使用车队。我也不能使用状态图,因为它使用了很多性能。
场景:我正在模拟一个带有单向通道的仓库,这些单向通道的容量是2辆车。有些情况

当一辆叉车(黄色的)需要在单向通道中的另一辆后面等待时,我目前已经正确地建模了,我只是不知道如何检测这种情况并记录下来。
谢谢
发布于 2021-11-15 10:11:48
我会这样做:
collisionLog.的新二维变量
getSpeed()函数和状态TransporterState getState()函数。collisionLog.模拟完成后,删除状态为idle的行。
然后根据以下事实进行计算:当速度为零且传送器繁忙时,您将拥有等待的车辆。
发布于 2021-11-15 19:11:00
当传输器发生冲突时,没有可访问的触发点(通常是块的动作)来捕获。是的,这种情况显然必须在内部捕获,以使传输器能够避免冲突,但在这种情况下,这种情况不会暴露为块操作或其他任何地方的操作。(AnyLogic空间标记元素永远不会有动作,除了一些较新的材料处理库元素,如Station,因为这些元素实际上表示一个流程步骤。)
传送器控制块具有碰撞检测和避免的所有设置,但没有相关操作。
所以你的选择真的是
传输器控制块中确实存在的操作在这里可能会有所帮助(对于两个替代方案),因为至少您有输入路径和节点的动作点。(您还可以向AnyLogic提出增强请求,以便在此处添加与碰撞相关的操作……)
我有一个巨大的模型,有大量的叉车,每秒检查任何属性都会导致巨大的性能损失,我也不能使用状态图,因为它使用了很多性能
你真的试过了吗?有些事情不会像你想象的那样影响性能,而且性能不应该是先验的“太慢”的事情;理想情况下,你对可接受的性能有要求,你可以绕过它。(在性能、功能和可维护性之间总是需要权衡的。)
您也没有说您认为使用statecharts会有什么帮助。您的意思是通过状态图执行“扫描”方法,例如循环进入/退出扫描状态?
https://stackoverflow.com/questions/69971364
复制相似问题