主要内容

制造厂作业调度与资源估计

概述

此示例显示了如何建模制造工厂。该工厂包括基于预先确定的计划处理作业的装配线。此示例浏览您的工作流程:

  • 分析工作时间表对吞吐量的影响

  • 估计工人的数量

模型的结构

该制造厂根据预定判定的时间表达到40种不同的产品变体的生产。每个变体需要与该特定变体相对应的两个部分,PARTA和PARTB。每个部分都经过一系列制造步骤。以下建模详细信息在模型初始化期间读取的Excel文件中指定:

  • 零件到达工厂的时间表

  • 在装配线上每个站的变异型的操作时间

  • 不同工人池的工人数量

  • 检查区拒收率

下面的脚本读取excel文件并初始化所有参数。

模型中使用的变量的%初始化excelfile =.'seestimatingassemblylinethroughput.xlsx';schedule = xlsread(Excelfile,'mfgschedule');Optims = XLSRead(Excelfile,“OperationTimes”);参数= XLSREAD(Excelfile,'参数');numMfgWorkers =参数(1);百分比制造领域的工人数量NumInspactworkers =参数(2);%检查区域的工人数量discard_rate =参数(4)/ 100;质量废品率%种子= 12345;%随机数种子modelname =“seEstimatingAssemblyLineThroughput”;open_system (modelname);范围= find_system (modelname,“LookUnderMasks”“上”“BlockType”'范围');cellfun(@(x)close_system(x),范围);

制造工厂主要包括两个区域:

  • 制造区

  • 检查区域

生产面积:该工厂收到了工作订单这些都是要实现的。一个工作命令指定该变体ID和该特定变体所需的数量。实体生成器基于满足的预定义序列生成零件工作命令.在本例中,序列要么是从MATLAB脚本生成,要么是从excel表中读取。下面的脚本读取工作命令Excel文件的要求。

需求= xlsread (excelFile,'要求');

为了制造特定的变型,与变型相对应的PartA和PartB被一起带入制造区域。部件在离开制造区域之前,要经过以下步骤:

  1. PartA进行下料操作

  2. partb经历铣削操作

  3. 然后零件都紧固

  4. 然后组件通过整理操作

每个变量的平均操作完成时间列在excel表格中。假设作业完成时间有4%的变化。来自制造工人池的工人从铣削和紧固机器上装卸零件。

open_system ([modelname'/铣削操作1']);

close_system ([modelname'/铣削操作1']);

检查区域:成品进入检验区域,在那里产品要么被认证为合格,要么被拒绝并报废。本例假设检查区域的拒绝率为5%。检验工人从三台检验机器上装卸零件。

open_system ([modelname'/检查机器']);

close_system ([modelname'/检查机器']);

作业计划对吞吐量的影响分析

见面工作命令具有最佳吞吐量的需求,可以生成不同的调度。在这个例子中,吞吐量是工厂生产的好产品的总数。下载188bet金宝搏名为“MfgSchedule”的工作表显示了几个满足工作命令.以下脚本根据某些标准生成作业计划:

  • 附表1:冲裁机最短工作时间:

该计划将在消隐机上的最短运行时间和最后一个最长的操作进行操作。这里的想法是尽早将尽可能多的零件推入植物中。然后检查吞吐量:

idx = 1;S1 = sortrows(optimes(:, [1 2]), 2);i = 1:长度(S1)重复=要求(S1(i),2);j = 1:重复newSchedule(idx) = S1(i);Idx = Idx + 1;结尾结尾scheduleID = size(schedule, 2) + 1;schedule(:, scheduleID) = newSchedule';sim (modelname);open_system ([modelname'/好的部件生成']);

close_system ([modelname'/好的部件生成']);
  • 附表2:铣床最短工作时间:

该计划将在铣床上首先和最终的最长的操作在铣床上具有最短的运行时间。该想法再次是尽早将尽可能多的零件从植物的其他起始分支推入植物中。然后检查吞吐量:

idx = 1;S2 = sortrows(optimes(:, [1 3]), 2);i = 1:长度(S2)重复=要求(S2(i),2);J = 1:重复新闻编组(IDX)= S2(i);Idx = Idx + 1;结尾结尾scheduleID = size(schedule, 2) + 1;schedule(:, scheduleID) = newSchedule';sim (modelname);open_system ([modelname'/好的部件生成']);

close_system ([modelname'/好的部件生成']);
  • 附表3:紧固机上首先是最短的工作:

该计划将运行时间最短的工序放在紧固机的前面,最长的工序放在最后。这里的想法是尽早将零件从瓶颈机器中推出。然后检查吞吐量:

idx = 1;s4 = sortrows(Optims(:, [1 5]),2);i = 1:长度(S4)重复=要求(S4(i),2);J = 1:重复新闻编组(IDX)= S4(i);Idx = Idx + 1;结尾结尾scheduleID = size(schedule, 2) + 1;schedule(:, scheduleID) = newSchedule';sim (modelname);open_system ([modelname'/好的部件生成']);

close_system ([modelname'/好的部件生成']);%%
  • 附表4:首先使用累积制造时间的最短工作:

此计划考虑到所有计算机上的累积运行时间。首先将具有最短累积运行时间的操作,并且最长的操作进入到底。然后检查吞吐量:

idx = 1;umulationsum = sortrows([ofterims(:,1)和(优化时间(:, [2 3 5 6]),2)],2);i = 1:长度(累积率)重复=要求(Cumulativeum(i),2);J = 1:重复新闻编辑(IDX)= Cumulativesum(i);Idx = Idx + 1;结尾结尾scheduleID = size(schedule, 2) + 1;schedule(:, scheduleID) = newSchedule';
sim (modelname);open_system ([modelname'/好的部件生成']);

close_system ([modelname'/好的部件生成']);
  • 日程5 - 8:随机日程:

excel表格中的时间表5到8都是随机的,满足工作命令.这些调度可以通过使用RANDPERM函数从任何调度开始并生成随机排列来生成。以下是“附表8”的结果:

scheduleID = 9;sim (modelname);open_system ([modelname'/好的部件生成']);

close_system ([modelname'/好的部件生成']);

模拟上述所有策略表明,时间表与“在紧固机上最短的工作优先”有关,“附表3”给了我们最好的吞吐量。

估算工人人数

在选择最佳调度之后,将估计两个工作池中所需的工作人员数量。我们从三个在制造区工作的工人和三个在检查区工作的工人开始。

nummfgworkers = 3;numinspectworkers = 3;sim (modelname);open_system ([modelname“/使用中的制造工人”]);open_system ([modelname'/检查工作者使用']);open_system ([modelname'/好的部件生成']);

close_system ([modelname“/使用中的制造工人”]);close_system ([modelname'/检查工作者使用']);close_system ([modelname'/好的部件生成']);

从范围中我们看到,在任何给定的时间点,制造和检验池中使用的工人的最大数量很少超过两个。将worker的数量减少到2个,表明使用更好的worker利用率对吞吐量没有影响。

numMfgWorkers = 2;numInspectWorkers = 2;sim (modelname);open_system ([modelname“/使用中的制造工人”]);open_system ([modelname'/检查工作者使用']);open_system ([modelname'/好的部件生成']);

close_system ([modelname“/使用中的制造工人”]);close_system ([modelname'/检查工作者使用']);close_system ([modelname'/好的部件生成']);

结论

此示例显示我们如何使用SimEvents来模拟作业商店。MATLAB脚本的使用允许我们以最佳的时间表进行实验和到达。

%以下脚本关闭并清理模型bdclose (modelname);清晰的nummfgworkers.NumInspectworkers.型号名称excelfile....时表discard_rate范围日程要求...种子悬on参数

另请参阅

|||||

相关话题