在批处理生产过程共享资源的优化

概观

这个例子说明了如何建模和优化使用共享资源的系统中,以确定资源的不足和改进容量规划。该例子是基于一批次的生产工艺,其中生产订单根据间歇式反应器的可用性仅处理。在该示例中,SimEvents®实体既表示制造工序的生产订单,和所需要的处理它们的间歇式反应器。后来在本例中,我们将运用MATLAB全局优化工具箱的遗传算法求解器找到系统的最优资源能力。

MODELNAME ='seExampleBatchProduction';open_system(MODELNAME);作用域= find_system(MODELNAME,'LookUnderMasks''上''BlockType''范围');cellfun(@(X)close_system(x)的范围);set_param(MODELNAME,'SimulationCommand'“更新”);

模型的构造

在模型的顶层,实体发生器通过产生代表​​生产订单实体模拟的产生和生产订单积压。当产生一个新的实体,所述获取反应堆块请求间歇式反应器进行处理的顺序。的Execute化工过程配方子系统根据指定的化学处理配方完成订单后,标记的推出堆块释放间歇式反应器返回到资源池,它是现在可用于处理一个新的订单。数据分析子系统分析相关的生产订单完成的数据。

共享资源在生产过程中

的执行化工过程配方子系统模拟化学过程,以产生溶胶(一种胶体)。六步配方模型在溶胶生产的主要操作。这些步骤执行需要不同的资源。间歇式反应器提供了内置的功能,以执行以下步骤,如添加颜色,加入颗粒并搅拌。因此,不需要通过这些步骤所需的资源,单独建模。在另一方面,加水,加热并沥干步骤需要额外的资源。这些资源由所有的批式反应器共享以及通过该制造系统的容量是有限的。

open_system([MODELNAME“/执行化学处理配方”]);

例如,当水的用量达到满容量,水压力太低另一个间歇式反应器进行访问。在这种情况下,生产在该反应器暂停,直到供水再次变为可用。在执行化学处理配方子系统,具有队列块的示例模型这样的资源共享过程标记等待供水和实体服务器块标记加水在加水子系统。该容量实体服务器块模型参数的供水能力。在仿真期间,在队列块的实体的数目表示间歇式反应器等水的数量。在服务器块实体的数量表示间歇式反应器访问水的数量。

open_system([MODELNAME“/执行化学处理配方/添加水”]);

建模的批量生产方法能生产两种类型的批次的:A型和B型。尽管主要步骤需要产生间歇是相同的,所述化学工艺配方是不同的。例如,配方到B型产品需要更多的水,所以该步骤加水需要花费更多的时间来完成。

结果和显示器

在模拟过程中,数据分析子系统显示了几个结果显示生产过程中的性能。

这里最能说明问题的结果是第一位的,积压订单的平均数量,它代表的等待时间定单作为系统的斗争,以跟上流入。

SIM(MODELNAME);open_system([MODELNAME“/数据分析/订单积压”]);

该系统的其他成果包括以下内容,并可以在数据分析子系统可以看出:

  • 批次的平均数量等水

  • 批次的平均数量等热

  • 批次等待排水的平均数

  • 间歇式反应器的利用

  • 供水的利用

  • 供热利用

  • 排水设施的利用

  • A型批料的吞吐量

  • B型批料的吞吐量

open_system([MODELNAME“/数据分析/等待水”]);open_system([MODELNAME“/数据分析/等待热火]);open_system([MODELNAME“/数据分析/等待流失”]);open_system([MODELNAME“/数据分析/利用反应堆”]);open_system([MODELNAME“/数据分析/利用水”]);open_system([MODELNAME“/数据分析/利用加热器”]);open_system([MODELNAME“/数据分析/利用率排水”]);open_system([MODELNAME'/数据分析/ ThroughputA']);open_system([MODELNAME'/数据分析/ ThroughputB']);

优化资源容量

我们现在将应用从MATLAB全局优化工具箱遗传算法求解这一SimEvents模型找到这个系统的优化资源的能力。遗传算法解决了反复修改单个点的人口优化问题。由于其随机性,遗传算法提高你找到一个全球性解决方案的机会。它不需要的功能是微或连续的。

在这种优化的决策变量是:

  • 间歇式反应器的数

  • 水箱数

  • 加热器的数量

  • 水渠数

因为它运行经由可变ResourceCapacity该模型的多个模拟遗传算法将这些变量。的资源能力的初始值显示如下:

cellfun(@(X)close_system(x)的范围);DISP(“优化前ResourceCapacity =”);DISP(ResourceCapacity);close_system([MODELNAME“/数据分析/订单积压”]);ResourceCapacity = seExampleRunOptimizationForBatchProductionProcess();DISP(“优化后ResourceCapacity =”);DISP(ResourceCapacity);
优化= 2 2 2 2开始使用“本地”轮廓平行池(parpool)之前ResourceCapacity ...连接到并行池(工号:4)。优化终止:在点球适应值平均变化小于options.FunctionTolerance和约束违反小于options.ConstraintTolerance。经过时间是85.981709秒。使用“本地”轮廓平行池正在关闭。ResourceCapacity后优化= 13 2 4 2

应用最优化结果

现在,我们可以将优化过程回模型的结果看,这显著减少了积压订单后resimulate。

SIM(MODELNAME);open_system([MODELNAME“/数据分析/订单积压”]);

%清理bdclose(MODELNAME);明确模型领域

也可以看看

|||||

相关话题