Anylogic中timeInState函数的使用
Posted
技术标签:
【中文标题】Anylogic中timeInState函数的使用【英文标题】:Usage of timeInState function in Anylogic 【发布时间】:2020-05-19 10:31:09 【问题描述】:因此,对于我在工业工程领域的项目,我正在使用 Anylogic 软件制作仓库模拟和优化模型。我想知道我的选择器在忙碌(即移动)上花费的时间,所以我遇到了这个内置函数“timeInState”。这有助于我确定选择器“忙碌”的总时间。
我面临的问题是,在调用此函数时,我没有得到任何值 (0),但我的选择器显然在模型中移动。也许我给出的参数不是正确的方法。我在想是否有熟悉这方面的人可以帮助我? .为明确该函数,其含义及参数初始化如下:
double timeInState(ResourceUsageState state) - 返回设备到目前为止在给定“使用状态”中花费的时间。 参数:state - 状态(ResourceUsageState.USAGE_IDLE or ResourceUsageState.USAGE_BUSY)
感谢您的帮助!
【问题讨论】:
【参考方案1】:timeInState
函数与状态图无关,而是记录资源的持续时间。它的名字相当不幸......
没有内置的方法来测量状态持续时间(有充分的理由;-))。
最简单的解决方案:
-
创建一个双变量
timer
和另一个timeInStateX
进入你的状态X,设置timer=time()
退出您的状态 X,将持续时间添加为 timeInStateX += (time()-timer
但请确保不要意外覆盖其他地方的计时器
【讨论】:
通常我认为将时间函数与时间单位一起使用是一种很好的做法,因为它允许您稍后更改时间单位而不会造成混乱:) 当然,我只是勾勒出最简单的开始设置 :-) 是的,但他并没有询问在状态图的状态下测量时间;他正在询问资源繁忙时间...... 是的,我问的是资源繁忙时间,即资源移动或正在使用的时间。 是否可以使用这种方法测量资源繁忙时间?通过创建状态图?【参考方案2】:timeInState
函数确实可以捕捉时间繁忙,所以你肯定有另一个问题。您应该以类似于<resource reference>.timeInState(ResourceUsageState.USAGE_BUSY)
或(指定时间单位)<resource reference>.timeInState(ResourceUsageState.USAGE_BUSY, TimeUnits.MINUTE)
的方式调用它。
您需要提供更多背景信息才能理解为什么它不适合您。
您还可以将这些代理作为资源池中的资源来获取和释放,对吗?
【讨论】:
timeInState
方法。
我从资源类型元素创建的资源池的代理中调用了 以上是关于Anylogic中timeInState函数的使用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AnyLogic 8.4.0 中包含 JAXB 函数?