Anylogic,如何动态更改生产批次的大小?
Anylogic, how to change the size of production batches dynamically?
我有一条生产线,其中一些资源可以批量生产零件。 "source"块创建的件数和批数是参数。例如,如果您设置创建 48 件和 4 批次,则当资源完成 12 件时每批关闭。例如,当我有 51 件和 4 批时,问题就出现了,在这种情况下,我应该有不同大小的批次,如 12、12、12,最后一个有 15 件。有什么办法可以解决这个问题吗?
谢谢你的建议
关注此 Sample Model。假设您的所有部件同时到达,您只需要更新源块中的 batchSize "On exit":
batchSize = numberOfParts/numberOfBatches;
batchparts.set_batchSize(batchSize);
然后,在批处理块上再次更新 "On exit":
if(queue.size()<2*batchSize){
batchSize=batchSize+(queue.size()%batchSize);
}
batchparts.set_batchSize(batchSize);
注意 (queue.size()%batchSize) 是 MOD 函数,它为您提供了在最后一批中需要批处理的额外零件数。
如果零件没有同时到达,您可以创建一个变量 batchNumber,让您知道接下来要进行的批次数(1 到 numberOfBatches,在 1 中初始化)。
然后,你只需要在批处理块的"On exit"上更新它如下:
//If the next batch is the last one, batch all the
//remaining quantity until completing the total number of parts
if(batchNumber+1=numberOfBatches){
batchSize=batchSize+(numberOfParts%batchSize);
batchparts.set_batchSize(batchSize);
batchNumber=1;
}
batchNumber=batchNumber+1;
希望对您有所帮助。
我有一条生产线,其中一些资源可以批量生产零件。 "source"块创建的件数和批数是参数。例如,如果您设置创建 48 件和 4 批次,则当资源完成 12 件时每批关闭。例如,当我有 51 件和 4 批时,问题就出现了,在这种情况下,我应该有不同大小的批次,如 12、12、12,最后一个有 15 件。有什么办法可以解决这个问题吗? 谢谢你的建议
关注此 Sample Model。假设您的所有部件同时到达,您只需要更新源块中的 batchSize "On exit":
batchSize = numberOfParts/numberOfBatches;
batchparts.set_batchSize(batchSize);
然后,在批处理块上再次更新 "On exit":
if(queue.size()<2*batchSize){
batchSize=batchSize+(queue.size()%batchSize);
}
batchparts.set_batchSize(batchSize);
注意 (queue.size()%batchSize) 是 MOD 函数,它为您提供了在最后一批中需要批处理的额外零件数。
如果零件没有同时到达,您可以创建一个变量 batchNumber,让您知道接下来要进行的批次数(1 到 numberOfBatches,在 1 中初始化)。
然后,你只需要在批处理块的"On exit"上更新它如下:
//If the next batch is the last one, batch all the
//remaining quantity until completing the total number of parts
if(batchNumber+1=numberOfBatches){
batchSize=batchSize+(numberOfParts%batchSize);
batchparts.set_batchSize(batchSize);
batchNumber=1;
}
batchNumber=batchNumber+1;
希望对您有所帮助。