面向负荷生产控制方法
出自 MBA智库百科(https://wiki.mbalib.com/)
目录 |
面向负荷生产控制方法取代了通常所使用的生产计划和控制步骤:“计划倒排”、“有限加载”、“能力平衡”和“任务排序”。它使用统一的基于流量图或漏斗模型的过程模型来控制生产周期、库存、利用率和日期偏差这4个目标参量,并借助使用同一模型的监测系统对所需控制的参量进行监测。如下图所示:
图:生产控制的三个层次
在上图中,任务的投放在短期的生产控制层次上进行。在其上有中期的任务计划层次。该层次的目的是产生可行的车间和采购任务、制造计划,制造计划的任务是保证长期的能力需求与能力供给的平衡。上面两层的计划做得越好,在最下层进行的生产制造控制将越有效。为了有效地使用面向负荷的生产计划方法,需要满足一系列的前提条件,诸如:任务必须要有完工日期;工艺计划中应包含标准工时;毛坯、刀具、夹具和NC程序必须是可用的、机床和人员的可用能力必须已知、工序反馈报告必须完整且足够准确。
为了有效地使用面向负荷的生产计划方法,需要满足一系列的前提条件。
一、 批量大小对库存和平均生产周期的影响
批量的大小通常是在任务计划阶段根据累加的已知零件需求确定的。它要使得补充零件的成本和成品库存成本最小。因此,批量的大小并不被生产制造的控制所影响。只有在特殊情况下,例如任务延误,才允许通过所谓的批量划分的方法来修改原来的批量值的大小。
目前使用的“经济批量”方法正受到越来越多的批评,因为它低估了所有其它的潜在库存成本。因此,经常有“批量为1”这样的要求。“批量为1”意味着不允许产生“任务重复”的成本,这要求零件制造时的机床准备时间为零。
现在再从面向负荷的生产控制方法的角度考虑一下这种“批量为1”的要求是否总有意义。特别是有以下几个方面必须考虑:
- 零件品种的经常变化将使废品率上升;
平均生产周期只取决于运输时间和加权平均加工时间的大小。由于批量的大小直接影响任务时间,从而直接影响加工时间,因此它就对每道工序的加权平均生产周期有直接影响。这种影响可定量表示为“批量库存”。大的批量对一个工作中心产生的破坏性影响,它不仅使输入和输出曲线明显地偏离理想曲线,而且造成库存和生产周期的波动。
由此,可以得出结论:从生产控制的角度来说,对加权平均加工时间的平均值和变化范围加以限制是非常重要的。任务工时的均衡可以对生产周期和日期偏差起到十分明显的积极作用。因此在进行中期的任务计划时,应当在批量计算时考虑对任务时间值的限制。
二、 任务必须有计划完工日期
为了确定每一道工序的计划完工日期,必须要知道制造任务的计划完工日期。如果在进行物料计划时,使用的不是实际的置办时间,那么本应投放的任务在任务投放过程中不可避免地被延迟。人们常将这种现象戏称为“任务投放阻碍算法”。通过生产中的监测系统持续地对生产周期进行监测,可以准确地查明任务经常被拒绝的原因。
不过,在每个工作中心上总是或多或少地存在由负荷限额计算得到的计划生产周期与由当前库存状况决定的实际生产周期之间的差异。为了检查一个制造任务的完成日期是否可行,除了根据计划值进行生产周期的调度,还可以为相应工作中心指定实际的区间。
接下来要对所分析的那个任务的流通情况进行仿真。首先在时间轴上,从当前日期开始,画出该任务所涉及的所有工作中心的当前区间,这样就可以知道每个工作中心从什么时候开始有多少空余的生产能力。第二步,根据相应工作中心的计划生产周期进行生产计划。计划的结果也画在时间轴上,并且将它画在最长的区间的上面。这样得到一个实际的计划完成日期。如果可行的任务完成日期在计划完成日期之前,则可以在这两个日期之间确定一个最终的完成日期,同时也确定了投放日期。如果可实现的任务完成日期在计划完成日期之后,则肯定是由某个或某几个工作中心引起的。
在特殊情况下,可以将队列中的其它任务向后推迟。总的来说,应该对可行的计划生产周期和可行的计划完成日期给予足够的重视。
三、 工艺计划中应包含标准工时
这一点很明显,没有标准工时,面向负荷的生产控制方法就根本无法使用,因为其原理就是考察工作中心上输入和输出的工作量。但是,不是在任何情况下都可以计算每道工序的标准工时,或者,这种计算并不是在任何时候都是必要的。例如,当对这些数据的获得、管理和处理所涉及的工作得不偿失时,就没有必要非去计算这些数据不可。在这种情况下可以人为规定一个固定的计划生产周期。但是,此时这些任务涉及的工作中心不能纳入任务投放的范围中去,从而避免任务被拒绝投放。
四、 毛坯、刀具、夹具和NC程序必须是可用的。
在中层的计划系统中应该通过适当的检查来保证毛坯、刀具、夹具和NC程序在任务投放时,或在被使用的时刻,是可供使用的。
进行同时可用性规划的一种有意义的方法是将一个任务所必需的所有元素都放在主工艺路径单中。对工艺计划中的每一个元素,即机床、人员、刀具和材料等,都建立一个输入、输出任务库存账户。在进行任务日程计划时即对所有的账户进行可用性检查。例如:一个材料的库存账户包含了表示当前仓库库存和订货库存的库存信息(输入),以及表示已分配的所有材料的需求信息(输出)。在面向调度的一致性检查中,检查所有有关元素未来的输入和输出数据,并确定每个时刻可供使用的库存。如果有某个元素不能被使用,则所有的元素都要被推迟,直至其可用为止。这里所说的输入和输出与通过图中输入和输出的概念不同,而是相当于通过图中的计划输出曲线和生产能力曲线。
五、 机床和人员的可用能力必须已知
这一点特别重要,但许多企业却对此忽视了。如果仅仅知道每个月总的可用能力,则负荷控制是不可靠的。只有知道每天的可用能力,面向日期调度的能力计划才能有效利用企业中能力计划的灵活性。
实际中,人们经常会遇到这样的问题,即应该怎样在生产计划和控制的范围内,考虑由于缺少人员、材料和设备,或由于机床故障对生产流程的破坏性影响。
首先有必要了解制造过程中各种故障或干扰的种类、出现的频率和延续的时间。故障当然会引起生产能力的损失。经验表明,在一个管理得很好的车间中由于故障引起的能力损失约为生产能力的1.5%~2.0%。此外,故障还会引起相应任务批量加工的中断,甚至使得任务无法开工。一般由于故障引起的机床停顿时间约为 10分钟~20分钟,很少会出现由于故障引起的持续多天的机床停顿。当然在这种情况下,例如夹具或刀具无法使用,任务批量也就会出现几天的延误。但是,统计结果表明这种故障对生产周期平均值的影响不大,因此在计划生产周期中包含的缓冲时间已经足够了。
不过,随着机床自动化的不断增加及机床系统之间联系越来越紧密而成为自动化的生产系统(如柔性制造系统和装配系统),必须比以往更加注意由于故障引起的后果。例如,在目前的技术水平下,柔性制造系统的平均故障时间为15分钟~30分钟。对节拍在4秒~20秒的自动装配系统,平均故障时间为4分钟~6分钟。因为大部分故障持续时间都很短,通过建立相应的故障监测和组织管理体制,以保证达到计划的生产能力。
六、 工序反馈报告必须完整且足够准确
及时、准确的反馈报告同样非常重要。生产周期越短、库存越小,及时的反馈就越重要。当然这不是强调达到分钟级精度的反馈,而是更重视关于任务投放时刻和完成时刻的信息完整性。对于通常生产周期为5天的工序来说,反馈报告达到天的精度就足够了。在实际的能力监测和计划中,对那些绕过任务投放完成的紧急任务进行反馈报告也很重要。因为过去的数据会对下一个周期的计划值产生影响。
总的来说,为了有效地使用面向负荷的生产控制方法,必须首先保证满足和其它生产控制系统一样所必需的上述基本前提条件。
70 年代初以来,“确定型”生产控制方法受到越来越多的批评,尤其在欧洲。确定型的生产控制是生产过程“泰勒化”的结果,“泰勒化”的含义是生产过程被分解成越来越多的简单的甚至无意义的工步。这种分解的结果是使生产的流程越来越复杂,从而使得对企业中生产过程的控制越来越困难,而且缺少灵活性。并且,由于工人越来越多地失去了对所从事的生产过程的全局了解,从而失去了改变现有条件的主动性。此后人们意识到,这种发展的趋势将走进死胡同。
与此相关,传统的生产控制方法也受到了来自人机工程学和社会学的质疑。除了已经详细介绍过的集中式计划所遇到的技术问题(如任务时间的分散、工艺修改和故障)等原因之外,重点放在只让程序执行较粗略的计划,而将最终的调度计划交给车间的生产控制执行者完成。
当今,有一种趋势向小型化、自治化的制造和装配单元发展,生产计划和控制只对制造和装配部门规定某个时间段应该完成的粗略生产计划。具体的调度,如技术、分配、质量保证等功能都是车间内部的事。
面向负荷的生产控制方法与这种趋势相适应,因为:
- 它可以用图形方式表示生产过程及其主要的目标参量;
- 它使各个目标参数的相互依赖关系表达得很清楚;
- 它能提示应采取的正确措施;
- 它所使用的控制参数很少,而且非常直观;
- 它可以显示参数修改和“违规”行为造成的影响;
- 它支持而不是取代有经验的生产控制人员的工作。
总而言之,不管自动化程度的高低和机构联系的复杂程度是多大,这种方法的基础--漏斗模型--对那些每个任务具有不同的任务时间、任务需要通过多个不同的工作中心、任务之间需要竞争有限的生产能力的生产过程来说,都是适用的。
案例一:基于面向负荷的生产控制的紧急订单插单问题[1]
一、基于面向负荷生产控制的插单方案分析
紧急订单的插单时间由其计划投放时间决定。如前所述,在LDDA和LOMC的控制下,各台机器的平均生产提前期比较稳定,因此紧急订单的计划投放时间可根据其交货期用倒排的方法得到。
在LOMC的控制下,订单的投放是阶段性进行的。在两次投放之间,订单可分为已投放订单和未投放订单两大类。已投放订单是指已经投放生产但还没有加工完毕的订单,目前正在生产车间;未投放订单是指还没有投放生产的订单,目前处于订单池中等待投放。如果紧急订单的插单时间位于下一个订单投放日之后,则插单的影响可以通过调整未投放订单的生产计划来消除,不影响已投放订单的生产;如果紧急订单的插单时间位于当前时间和下一个投放日之间,则插单将影响部分已投放订单及未投放订单,此时必须调整包括已投放订单在内的生产计划。根据紧急订单的插单时间及其对已投放订单和未投放订单的影响,分别设计了三种插单方案:
(1)紧急订单的投放时间在下一次投放日之后。
这种情况下,原来LDDA算法所生成的生产计划在紧急订单投放前的各计划期都不会受到影响,紧急订单只对其投放后计划期的计划产生影响。因此从紧急订单投放时间之前的投放日开始,重新安排订单投放计划和生产计划。
(2)紧急订单的投放时间在当前时间和下一次投放日之间。
这种情况下,紧急订单可以在计划投放时间投放,但它必然会对已投放订单产生影响,因此需要从紧急订单计划投放时间开始重新安排生产计划。
(3)紧急订单的投放时间在当前时间之前这种情况下,紧急订单必须立即投放,从当前时间开始重新安排生产计划。
以上三种情况下机器的派工规则仍然是PCTP,但新计划对某些订单的各工序计划加工完成时间做了调整,因此订单的加工顺序也会有所变化。紧急订单在不影响其加工完成时间的情况下,服从PCTP规则;当其他订单的加工会影响紧急订单的计划加工完成时间时,紧急订单将优先加工,以保证紧急订单的交货期。这种派工规则称为PCTP/Urgent。
新计划生成后,对于需要延期交货的订单应该立即通知销售部门与客户协商达成谅解。因此应对插单需要生产计划层、生产控制层和销售层三个层次的配合。
二、基于面向负荷生产控制的订单重排算法
1.模型
根据紧急订单的投放时间确定了重排订单的范围后,要重新安排该范围内所有订单的投放和生产计划,对此,本文建立了该问题的数学规划模型。
订单重排问题描述为:生产系统中有m台机器,各台机器的平均生产提前期为L_j,各台机器在一段时间内每天具有一定的生产能力。有n个订单,已知其加工路径及其在各台机器上的加工时间,还知道各订单的交货期,以及各订单的库存成本系数和拖期惩罚系数。求各个订单的投放生产时间,及其在各台机器上的计划完成时间,使得全部订单的加权库存成本与加权拖期成本之和最小。
约束条件包括两个方面:
(1)订单的加工需求 在安排订单的生产计划时,与LDDA算法一样,每个订单通过机器的时间等于机器的计划提前期,因此只要确定了订单的投放时间,就能够推算出订单到达和离开各台机器的时间。
而且在各台机器的通过时间内,机器必须有能力加工该订单,这样才能满足订单的加工能力需求。
(2)机器的能力限制
各台机器每天的生产负荷不能超过其最大生产能力。
定义参数和变量:Di为订单i的交货期,i=1,……,n;Cjt为机器j在第t天的加工能力,j=1,……,m;Pij为订单i在机器j上的加工时间;αj为机器j的能力系数,是LDDA算法的一个重要参数;F(i)为订单i的加工工序数;m(i,k)为订单i加工路径上第k个工序对应的机器,1≤k≤F(i);Lj为机器j的计划提前期;Ci为订单i加工完毕的时间;Ei为订单i提前完工的库存成本系数(单位:元/d);Ti为订单i延期完工的拖期惩罚系数(单位:元/d)。
决策变量:Yijt为订单i在第t天占用机器j的能力;Xij为订单i到达机器j的时间;Zij为订单i从到达机器j到被机器j加工完的时间长度。
则目标函数和约束函数为:
(1)
; (2)
; (3)
; (4)
; (5)
; (6)
取整数; (7)
取整数。 (8)
这是一个混合整数规划模型。目标函数(1)是所有订单的加权提前成本与加权拖期成本之和的最小化。约束条件(2)要求订单通过各台机器的时间等于机器的计划提前期;约束条件(3)保证订单在通过各台机器的期间内,各台机器有能力加工该订单;约束条件(4)是各台机器的能力约束,即各台机器每天的负荷不超过其最大生产能力,同时与LDDA模型一样,考虑订单负荷不会恰好达到机器的能力上限,加入了机器能力系数,扩大了机器能力(αj≥机器利用率);约束条件(5)计算每个订单的加工完毕时间,即订单到达最后一台机器的时间加上它在该机器上的等待和加工时间。假设订单i在机器j上加工后,继续到机器j+1上加工,图1表示了Xij,Zij,Lj三者之间的关系。
重排计划时,可用该整数规划模型求解出包括紧急订单在内的所有订单的投放时间,及其在各台机器上的加工完成时间。在设置订单的权重系数时,应增大紧急订单的拖期惩罚系数,以避免紧急订单出现拖期。
2.启发式求解方法
启发式求解方法的基本思想来源于动态规划。
动态规划是一种解决多阶段决策过程最优化问题的方法,对于订单重排问题,如果将每一个订单看作一个时段,则决定每个订单的投放时间就是一个决策序列。现说明动态规划模型中的概念:。
(1)阶段。
对于订单重排问题,将每个订单看作一个阶段。
用h代表阶段,h=1,……,n,以下简称第h个投放的订单为订单h。
(2)状态。
将每个订单在做投放决策时生产系统的生产能力状况作为状态。根据上一个订单的不同决策,下一个订单投放时可能有几种不同的状态。如订单h在第t天投放,则订单h+1的状态记作G(3)决策和策略订单选取不同的投放时间就是对应不同的决策。在确定了生产系统的生产能力状况后,订单可能在不同的时间投放生产,每一个可行的投放时间就是一个决策。令表示订单h-1的所有可行投放日。
(4)指标函数。
选取其目标函数作为指标函数。令SCh(t)代表当订单h在第t天投放时,从第一个订单到第h(t)。
选取其目标函数作为指标函数。令SCh(t)代表当订单h在第t天投放时,从第一个订单到第h个订单的最小目标函数值;代表在状态下,订单h在第t天投放的提前和拖期惩罚成本。则有下列关系:
(9)
(5)状态转移方程订单重排问题采用顺序解法,即订单重排时寻优的方向与订单决策的行进方向相同。在顺序解法下,状态转移方程应由后一阶段的状态向前一阶段状态转移,即。
(10)
其中函数T′指对机器生产能力的相应增加。然而由于生产系统在计划生成后的状态无法预先设定,采用式(10)是不可行的。于是将状态转移方程设为。
(11)
其中函数T指对机器生产能力的相应扣除,即采用逆序解法下的状态转移方程。因为这样违反了动态规划的算法规则,所以无法保证得到最优解;但作为一种启发式算法,该方法能够得到该订单求解顺序下的最优解,而且计算的复杂度只考虑上一阶段和本阶段各种决策的组合,因此能够在较短的时间内得到较好的解。
算法的求解步骤如下:
步骤1 初始化。
S={所有需要重排的订单},其中紧急订单的优先级高于普通订单,首先安排紧急订单,其次安排普通订单,在优先级相同的情况下,订单按照计划投放时间排序,计划投放时间相同时按加工工序数降序排列;设置订单的提前完成成本系数Ei和拖期惩罚系数Ti,其中紧急订单的拖期惩罚系数设置为一个极大数M,以避免紧急订单产生拖期;G0(1)为生产系统的初始生产能力状况,记录着各台机器在每一天的初始生产能力;。
步骤2 计算订单h在第t天投放的指标函数LCh(t,t^\prime)。
对,在状态下,从t=1开始试排订单h的计划。对于可行的投放计划,将其投放日t记入D_h(t)中,并将其对应的指标函数记为。若到订单h的最晚投放日LRDh仍然无法排入计划,则令t = LRDh + 1,继续寻找可行的投放日,直至将订单h排入计划为止,将其投放日t记入Dh(t)中,并记录对应的指标函数。
更新下一个t′后,重复上述过程,直至中的所有投放日都计算过为止。
步骤3 计算订单h在第t天投放的最优函数值SCh(t)。
S=S 第h个订单}
如果S\ne\varnothing , 则令h=h+1,t=1,返回步骤2;如果,则算法结束,从最后一个订单的所有投放方案中挑选最优函数值最小的一个, 即作为目标函数值, 并将其对应的全部订单投放时间作为订单重排问题的解。
- ↑ 严浩云.基于面向负荷的生产控制的紧急订单插单问题[J].计算机集成制造系统,2009,15(9)
[1] Hans-Peter.面向负荷的生产控制[M],肖田元等译