我想知道如何测量这条生产线的吞吐量。
问题:是否有任何方法来测量代理在接收器块之间的离开时间?>>(我将通过反转偏离值之间的时间来计算吞吐量。)
目前,我只是简单地根据Little定律计算吞吐量,它使用的是线路的平均提前时间和WIP级别。我不知道基于这个计算的吞吐量值是否等于离港时间的倒置值?
我希望你们能帮我解决这个问题。提前感谢!
发布于 2017-10-05 13:45:47
有一个函数" time ()“返回模型时间单位中的当前模型时间。使用此函数,您可以知道代理A和代理B离开系统的时间,并计算这些时间之间的差异。您可以通过在“接收器”块的"On“字段中编写如下代码来做到这一点:
statistic.add(time() - TimeOfPreviousAgent);
TimeOfPreviousAgent = time();"TimeOfPreviousAgent“是”双重“类型的变量;”统计“是用于收集测量数据的”统计“元素。
在教程银行办事处中描述了测量流程中时间的这种方法。
作为另一种选择,您可以将每个代理的剩余时间存储到集合中。然后,您需要对存储在集合中的样本进行迭代,以查找每对样本之间的差异。
发布于 2017-10-11 07:20:45
不确定这是否有帮助,但它源于塔蒂亚娜的回答。在代理状态图中,可以创建变量TimeIn、TimeOut和TimeInSystem。然后在Statechart入口点
TimeIn = time();在最后一个州,
TimeOut = time();
TimeInSystem = TimeOut - TimeIn; 要观察每个代理的这些时间,可以使用以下代码,
System.out.println("I came in at " + TimeIn + " and exited at " TimeOut + " and spent " + TimeInSystem + " seconds in the system";然后,为了进行统计分析,可以通过在主变量TotalTime、TotalAgentsServiced、AvgServiceTime、MaxServiceTime、MinServiceTime中创建一个函数来计算所有代理的最小吞吐量、平均吞吐量和最大吞吐量,然后添加一个函数调用,称为TrackAvgTimeInSystem .在函数中添加参数NextAgent,类型为double。在功能体中有,
TotalTime += NextAgent;
TotalAgentsServiced += 1;
AverageServiceTime = TotalTime/TotalCarsServiced;
if(MinServiceTimeReported == 0)
{
MinServiceTime = NextAgent;
}
else if(NextAgent < MinServiceTime)
{
MinServiceTime = NextAgent;
}
if(NextAgent > MaxServiceTime)
{
MaxServiceTime = NextAgent;
}然后,在代理的状态图中,在最后一个状态调用函数
get_Main().TrackAvgTimeInSystem(TimeInSystem);然后计算所有代理的最小、最大和平均吞吐量。
https://stackoverflow.com/questions/46576973
复制相似问题