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;

希望对您有所帮助。