AnyLogic:如何测量总忙/闲时间?

问题描述

我一直在尝试使用 Resource Function timeInState(ResourceUsageState.USAGE_BUSY,TimeUnits.Hour) 来衡量机器忙碌的时间。这是我使用 HorasExtra 作为变量的方法

Approach

我收到此错误:类 com.anylogic.engine.Agent 无法转换为类 horas_extra.M1_Extra(com.anylogic.engine.Agent 和 horas_extra.M1_Extra 位于加载程序“app”的未命名模块中)

我真的很想使用ResourceFunctions,但我想我遗漏了一些东西。我很可能没有完全理解这一点:“代理占用的资源可以通过代理的不可修改的 LinkedList resourceUnits 集合访问”

AnyLogic 或其他网站上没有关于该主题的更多信息。请指教。谢谢!

解决方法

我找到了我的问题的解决方案,我想与大家分享,以防万一它对某人有帮助,或者有任何我应该被警告的事情。

  1. 我创建了一个资源类型 M1_Extra(这将是我的机器)。
  2. 在 M1_Extra 中,我定义了:a) 变量:Extra,b) 函数:fnBusy,c) 事件:fnUpdate
  3. 在 fnBusy 中:Extra= timeInState(ResourceUsageState.USAGE_BUSY,TimeUnits.HOUR);
  4. 在 fnUpdate 中:fnBusy();
  5. 然后,在 Main 我创建了:a) 变量:HE
  6. 在资源池中,发布时:HE = ((M1_Extra)unit).Extra; 和单位类型M1_Extra

这样您就可以访问资源功能。谢谢!