机加工停台调度算法研发一:待料时间分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机加工停台调度算法研发一:待料时间分析相关的知识,希望对你有一定的参考价值。

我是一个MES的研发人员,下面内容为一面之词,若有不合适或不准确的地方敬请见谅。


目录:

一. 原始需求

二、需求分析

三、研究价值

四、研究内容

五、研究结论:算法

六、结束语



一. 原始需求

在机加工生产过程中,某工序设备A因需要维修而停工,而在该设备维修期间,可能会导致其下游工序受其影响因为没有物料(半成品)供生产而停工——我们称之为待料停工,或者导致其上游工序因为物料无法继续向下游输送而停工——我们称之为堵料停工。MES系统需要利用这段时间对受到影响而待工的设备安排检修和保养作业。


名词:待料时间

a.目标工序因前置某工序停工而没有物料供生产导致的停工时间长度,从无料可用的时刻开始,至物料送至可供生产的时刻为止。

例如:工序1停工15分钟,导致工序2、工序3、工序4受其影响而停工等待物料,当工序1回复生产后,后续工序也会逐步回复生产。

b.目标工序的生产节拍快于前置工序节拍而导致的停工等待,此情况一般不会出现,本文提出是为了保证分析过程的完整性,而将极端情况包含在内。

例如:工序1节拍5分钟,工序2节拍3分钟,这样在制品会出现供应不足而导致工序2待料。


名词:堵料时间

与待料停工相对的概念,当后续工序停工,且工序间在制品数量已达到上线而导致的停工情况。


名词:工序

工序是指整个生产过程中各工段加工产品的次序,亦指各工段的加工。

即:将原材料加工为产成品的步骤,机加工的工序一般都配有专用设备。


名词:在制品

在工序间流转的物料,在第一道工序时候是原材料,经过最后一道工序下线后即为产成品。


名词:在制品数上线

只在两个工序之间可以存放的在制品数量的上线。


名词:在制品下线

只在两个工序之间可以存放的在制品数量的下线。


二、需求分析

此类需求是对MES系统提出的高层次需求,也是智能制造环境下企业对MES系统提出的重要需求之一,即当生产过程因种种原因停工不能继续生产是,MES系统如何对方方面面做出应对处理的。在不同类型的企业环境内,导致停工的原因多种多样,停工影响的范围也各不相同,如何做到快速发现和处理问题恢复生产有效利用停工时间安排其他可用的作业,最大化的利用这段停工时间创造价值,将成为MES智能化重要的挑战。后文将围绕有效利用停工时间的方面展开讨论。


三、研究价值

随着智能制造在企业内的逐步深入,智能化的分析和调度成为企业对MES系统的重要需求之一,对于故障停工的处理过程,一方面做系统化的分析研究停工原因,减少或消除其出现的几率;另一方面在问题消除之前仍然会不期而遇,那么如何在这个的情况下充分利用停工时间安排其他工作,进而最大化这段时间所能产生的价值就是现阶段MES为企业服务的重要目标之一。


四、研究内容

1.背景设定

设定某机加工企业A,有1条生产线,每条生产线有10道工序,每道工序由1台专属设备工作,工序间节拍各不相同,平均节拍为5分钟,工序间由传送带连接作为在制品的放置空间(分析过程中将忽略物料传送所用的时间,在制品数量有最大容量数,和最小容量数的设定。

下面将抽取一段连续生产的3个工序作为案例分析的基础,设定的共用信息如下:

工序名称和顺序:A、B、C

工序A:停工30分钟

工序B和工序C:节拍信息、在制品数量信息——在案例内设定。

求工序C的待料时间。


2.解题思路


第一步:计算停工期间,导致的待料时间


当工序A停工的时候,根据停工时间长度和后续工序节拍结合在制品情况,可以推算出后续工序受影响而停工的时间长度,这段时间简称为停工期待料时间,预期会出现以下几种情况:

1)工序B,工序C均不受影响,这种情况不作处理。

2)工序B有停工,工序C未收到波及

工序A工序B工序C
停工21分钟
在制数节拍停工在制数节拍停工
45分钟1分钟34分钟0分钟

3)工序B停工,C工序停工

工序A工序B工序C
停工30分钟
在制数节拍停工在制数节拍停工
45分钟10分钟34分钟2分钟

整理:

在工序A停工之后,工序B在完成其在制品(A-B间在制品)的生产之后就会停止生产。

即在停工阶段:

    工序B待料时间 = 工序B在制品数 × 工序B节拍


因为需要考虑到与工序B节拍的差异,导致工序C的待料时间的得会出更加复杂,在后文中继续分析。


第二步:计算恢复生产后,仍需等待物料到达的时间


当工序A恢复生产之后,仍需要计算物料到达目标工序的时间,这段时间简称为复工期待料时间,此时需要加入对工序间在制品参数的考虑,可能有一下几种情况:

1)企业要求在制品达到工序在制品数量下线,后续工序在才可以开始生产。这里有种特殊情况是将工序在制品数量下线值设定为1,则到达目标工序的时间就是从工序A到目标工序前序工序的节拍的和。

例如下表:

工序A工序B工序C
节拍在制下线节拍停工在制下线节拍停工
6分钟15分钟6分钟14分钟11分钟
25分钟12分钟24分钟22分钟

即在复工阶段: 

    工序B的待料时间 = 工序A节拍 × 工序B在制品下线数量

    工序C的待料时间 = 工序B的待料时间 + 工序B节拍 × 工序B在制品下线数量


2)企业要求在制品达到工序在制品数量上线,或其他约定值,后续工序在才可以开始生产。这种情况根据实际需要进行设定即可。


第三步,求出最终的待料时间

通过将停工待料时间进行分析后,分为了停工期待料时间和复工期待料时间,将其相加后即可获得最终的整体待工时间。

即:

    工序B待料时间 = 工序B停工期待料时间 + 复工期待料时间


至此剩余的问题是,求解跨工序间的停工期待料时间运算问题,即上文中当工序A停工的时候如何计算出工序C的待料时间,下面将通过两个案例进行分析,而后给得出求解的算法。


3.案例分析一

继续上文的问题进行分析:

工序A工序B工序C
停工30分钟
在制数节拍停工在制数节拍停工
45分钟10分钟34分钟2分钟

第一步:演算停工期间各工序在制品的消耗过程

参见图表格:

技术分享

第二步:分析其运算过程


工序A停工30分钟后,工序C受其影响待料停工2分钟,即工序C消耗在制品生产用掉28分钟,可知这种情况(简称:案例一公式):

工序C的待料时间 = 工序A停工时间 - 工序C节拍 ×(工序B在制品数量+工序C在制品数量)

即:  2分钟 = 30分钟 - 4分钟 × (4 + 3)


由此得知,工序C待料时间与工序B的节拍没有关系。


4.案例分析二

将案例一的内容做少量的调整,将工序B节拍调整为6分钟,工序C在制数调整为2,重新演算一下。

工序A工序B工序C
停工30分钟
在制数节拍停工在制数节拍停工
46分钟6分钟24分钟2分钟

第一步:演算停工期间各工序在制品的消耗过程

参见下图表格:

技术分享

第二步:分析其运算过程


当套用案例一得出的公式时候发现(案例一公式):

工序C的待料时间 = 工序A停工时间 - 工序C节拍 ×(工序B在制品数量+工序C在制品数量)

即:  30分钟 - 4分钟 × (4 + 2)= 6分钟


也就是说案例一所得出的公式并不适用与案例二的情况。

当工序A停工30分钟后,工序C受其影响待料停工2分钟,即工序C消耗在制品生产用掉28分钟,可知这种情况(简称:案例二公式)

工序C的待料时间 = 工序A停工时间 - (工序B节拍 × 工序B在制品数量+ 1 ×工序C节拍)

即:  30分钟 - (6分钟 × 4 + 1 × 4分钟) = 2分钟


由此得知,工序C待料时间与工序B的节拍有关系。


5.隐含的系数

经过上述两个案例的分析,得出了2个公式,而我们发现这两个公式只适用于自身所在案例的运算,而两个案例的最大区别是在演算过程中工序C是否提前出现了待工状态。

在案例一中,整个演算过程工序C只在最后进入了待料停工状态,所以其待料时间的计算主要处理工序C自身的节拍和在制品生产为运算基础。

案例二中,工序C出现了待料状态,因为工序C的节拍快于工序B,那么何时进入停工待料状态则主要依赖与工序B的结束时间,工序B结束之后,工序C还有1个在制品可以生产。

那么如何区分计算情况适用于哪个案例呢?有一个隐含的系数在里面,当案例的前后工序节拍时间和后工序的在制品数量确定后,即可推算出来,再和前工序的在制品数量进行比较,若前序在制品数量大于或等于系数,则适用案例一公式,否则适用案例二公式。

系数运算公式:(工序B为前序,工序C为后序)

系数 = (工序C在制品数量 - 1)× 工序C节拍 ÷(工序B节拍 - 工序C节拍)


五、研究结论:算法

下面叙述具体的问题求解步骤:

  1. 计算系数

  2. 用前序在制品数量与系数做比较,以确定使用的公式。

  3. 系数<在制品数量,则套用案例一公式,获得停工期待料时间
    工序C的待料时间 = 工序A停工时间 - 工序C节拍 ×(工序B在制品数量+工序C在制品数量)

  4. 否则套用案例二公式,获得停工期待料时间
    工序C的待料时间 = 工序A停工时间 - (工序B节拍 × 工序B在制品数量+ 1 ×工序C节拍)

  5. 根据实际需求情况计算复工期待料时间
    参考文中案例公式:

    工序B的待料时间 = 工序A节拍 × 工序B在制品下线数量

    工序C的待料时间 = 工序B的待料时间 + 工序B节拍 × 工序B在制品下线数量

  6. 最后求出整体待料时间

工序B待料时间 = 工序B停工期待料时间 + 复工期待料时间


六、结束语

本文中的研究范围比较狭窄,仅分析了单个工序停工情况出现时,其后两道工序的待料时间计算方法,以此类推可以继续得出后续工序的影响方位,但在实际应用中可能会遇到更多的困难:

  1. 工序数量更多,且关系复杂

  2. 停工事件会在多工序同时出现

  3. 待料时间的计算还需要考虑堵料时间

  4. 对于已经安排作业的工序,如何计算其待料时间

到时候需要进一步对算法进行补充完善。

计算出相关工序有效的待料时间之后,需要进一步研究事件调度算法。


本文出自 “小伙伴” 博客,转载请与作者联系!

以上是关于机加工停台调度算法研发一:待料时间分析的主要内容,如果未能解决你的问题,请参考以下文章

Java- 多机调度(贪心算法)

优化调度基于matlab遗传算法求解工件的并行调度组合优化问题含Matlab源码 2234期

车间调度基于matlab候鸟算法MBO求解柔性作业车间调度问题含Matlab源码 2354期

多机调度问题

车间调度基于matlab帝国企鹅算法求解柔性车间调度问题含Matlab源码 1991期

生产调度基于matlab遗传算法求解柔性生产调度(FJSP)问题含Matlab源码 1780期