如何计算资源一整天的使用时间?

问题描述 投票:0回答:1

我正在做一个关于日间医院的项目。我有一个护士池资源,我希望能够计算出护士在模拟过程中忙碌了多长时间。我尝试使用 isBusy() 和 timeStat() 函数,但我被告知它们必须在代理上使用,而不是在资源上使用。我无法使用起点和终点,因为我已经使用了最多 35 个块。

我尝试使用此函数创建一个事件:

double occupancystarttime = 0.0; // Initialise the occupancy start time
double dureeTotaleOccupation = 0.0; // Variable to store the total occupation time

// When the nurse becomes busy
if (nurseHDJchir.busy() > 0) {
    busystarttime = time(); // Store the busy start time
}

// When the nurse becomes available again
if (nurseHDJchir.busy() == 0) {
    double busytime = time() - busystarttime; // Calculate the busy time
    dureeTotaleOccupation += dureeOccupation; // Add the duration to the total variable
}

但我得到的结果非常低,这是不可能的。

你能帮我吗?

anylogic
1个回答
0
投票

第一:资源也是代理。

为您的资源使用自定义代理类型,然后您可以向其中添加类型为

v_MyTimeBeingBusy
的变量
double
。还添加另一个
v_Timer

ResourcePool
的“抓住”中,您可以使用
unit.v_Timer=time();

ResourcePool
的“发布时”中,您可以使用
unit.v_MyTimeBeingBusy += (unit.v_Timer-time());

现在每个资源都会积累其各自的“忙碌”时间,您可以用它做任何您喜欢的事情。

(如果您很难将资源转换为自定义代理类型,最好先从帮助中完成ALL分步教程,这是 AL 的基本功能)

© www.soinside.com 2019 - 2024. All rights reserved.