方法测量模拟期间不使用代理的时间
Method the measure the time an agent is not in use during a simulation
我有一个供应链交付模拟,其中三个车辆代理从制造商转移到客户,该模型基于 AnyLogic 网络研讨会,用于使用 GIS 优化交付车队。而流程图逻辑是这样设置的:
我正在尝试从模拟中提取一些时间。其中一个时间是旅行之间的代理时间,因此需要找到代理在模拟期间不移动的时间,理想情况下,这将针对每辆车单独完成或提供平均类型的东西。
我在这里看到了一个例子:TimeMeasurementStart and End
在讨论的地方,您可以使用代码而不是块来收集时间数据,但是如果有人有任何提示,一些关于所需代码的细节或代码去向的帮助将非常有用!
我的假设是,如果我可以这样说:
总时间 - 移动时间 = 不移动时间
如有任何帮助,我们将不胜感激!
娜塔莎
首先,确保您的卡车是您自己创建的自定义代理类型,我们称它们为 Truck
。此外,您的 MoveTo
块必须知道它是 Truck
代理流经它(将“高级”下的“代理类型”设置为 Truck
)
向其添加一个变量 timeDriving
和另一个 timerStart
。前者用于总结所有驾驶持续时间。后者临时用于开车时的测量。
然后,在所有 MoveTo
元素中使用代码框,如下所示:
替代@Benjamin 的建议是在退出时执行:
agent.timeDriving+=time()-agent.getBlockEnterTime()
我有一个供应链交付模拟,其中三个车辆代理从制造商转移到客户,该模型基于 AnyLogic 网络研讨会,用于使用 GIS 优化交付车队。而流程图逻辑是这样设置的:
我正在尝试从模拟中提取一些时间。其中一个时间是旅行之间的代理时间,因此需要找到代理在模拟期间不移动的时间,理想情况下,这将针对每辆车单独完成或提供平均类型的东西。
我在这里看到了一个例子:TimeMeasurementStart and End 在讨论的地方,您可以使用代码而不是块来收集时间数据,但是如果有人有任何提示,一些关于所需代码的细节或代码去向的帮助将非常有用!
我的假设是,如果我可以这样说: 总时间 - 移动时间 = 不移动时间
如有任何帮助,我们将不胜感激! 娜塔莎
首先,确保您的卡车是您自己创建的自定义代理类型,我们称它们为 Truck
。此外,您的 MoveTo
块必须知道它是 Truck
代理流经它(将“高级”下的“代理类型”设置为 Truck
)
向其添加一个变量 timeDriving
和另一个 timerStart
。前者用于总结所有驾驶持续时间。后者临时用于开车时的测量。
然后,在所有 MoveTo
元素中使用代码框,如下所示:
替代@Benjamin 的建议是在退出时执行:
agent.timeDriving+=time()-agent.getBlockEnterTime()