【问题标题】:Method the measure the time an agent is not in use during a simulation测量模拟期间代理未使用的时间的方法
【发布时间】:2023-07-11 08:47:01
【问题描述】:

我有一个供应链交付模拟的模拟,其中三个车辆代理从制造商转移到客户,该模型基于 AnyLogic 网络研讨会,用于使用 GIS 进行交付车队优化。而流程图逻辑是这样设置的:

我试图从模拟中提取一些时间。其中一个时间是行程之间的代理时间,因此需要找到代理在模拟期间不移动的时间,理想情况下,这将针对每辆车单独完成或提供平均类型的事情。

我在这里看到了一个例子:TimeMeasurementStart and End 在讨论的地方,您可以使用代码而不是块来收集时间数据,但是如果有人有任何提示,对所需代码的细节或代码去向的一些帮助将非常有帮助!

我的假设是,如果我可以这样说: 总时间 - 移动时间 = 不移动时间

如有任何帮助,我们将不胜感激! 娜塔莎

【问题讨论】:

  • 有很多,取决于你的型号。请提出更具体的问题,分享有关您的设置的详细信息等。我建议您阅读此处以了解如何提出重要问题:使用*.com/help/how-to-ask,本文专注于 AnyLogic:benjamin-schumann.com/blog/2021/4/1/… :)
  • 嗨,本杰明,我已经用更多细节调整了问题,希望对您有所帮助

标签: javascript time gis anylogic


【解决方案1】:

@Benjamin 建议的替代方案是在退出时执行:

agent.timeDriving+=time()-agent.getBlockEnterTime()

【讨论】:

  • 好点,谢谢。请注意,您仍然需要自定义代理类型,其中包含变量“timeDriving”,并且该块需要知道正在使用自定义代理类型
【解决方案2】:

首先,确保您的卡车是您自己创建的自定义代理类型,我们称它们为Truck。此外,您的MoveTo 块必须知道它是Truck 代理流经它(将“高级”下的“代理类型”设置为Truck

向其中添加一个变量timeDriving 和另一个timerStart。前者用于汇总所有驾驶持续时间。后者临时用于测量何时开始行驶。

然后,在所有MoveTo 元素中使用代码框,如下所示:

【讨论】:

    最近更新 更多