基于调度算法的柔性车间问题的研究

摘要

生产(重)调度是生产车间管理的重要内容。本文研究了含RGV柔性车间调度问题的影响,构建了包含轮盘赌、模型推广、图论、模拟退火等以提高工厂效率、缩短工件完工时间为目标的数学优化模型。

针对问题一,该问题共设定四个模型分别是:无故障单工序物料加工模型,存在故障率的单工序物料加工模型,无故障多工序物料加工模型,存在故障率的多工序物料加工模型。对于单工序模型来说,运用模拟退火算法来找到RGV在8台CNC中的最优路径,缩短工件的完成时间;运用轮盘赌算法随机挑取CNC来体现机器故障率,当这台CNC损坏后(两台或两台以上CNC同时损坏为小概率事件,因此可忽略不计),寻找最优的损坏时间,以求生产的成料数量达到最多。剩余7台CNC则依然运用模拟退火算法来寻找最优路径。

对于多工序模型来说,首先根据上下料、第一道工序和第二道工序的加工时间比来确定两种不同类型机器的数量比。通过模拟退火算法优化确定所有CNC的分布位置,然后运用贪心算法推测出RGV的最优路径。关于故障率的处理则与单工序模型相同。

针对问题二,验证模型的实用性则是根据模型的稳定性和产生的经济效益来判断,而稳定性的判断则是轻微改变某个参数来判断模型结果的波动大小,并和原结果进行作比,结果越接近1越稳定。而根据表1中系统作业参数得出模型的稳定性参数为0.9896,系统稳定,且该模型下产生的熟料数量多,利润空间大,因此,模型的实用性较高。而有效性的判断则是通过预计结果与实际结果的比较进行判断,结果越接近1,有效性越高,而三组数据中算法有效性系数均在0.91以上,因此模型中的算法是有效的。而剩余的调度策略、系统的作业效率以及生成的表格在将下文中给出。

在最后,给出了模型的优缺点和评价方向,并提出了相应的改进方案。

关键词:柔性车间调度;模拟退火算法;重调度;多目标规划

  1. 问题重述

1.1问题背景

软件和硬件的共同发展,促进了中国工业化和信息化的深度合作。

近些年来,中国的互联网的快速成长,涌现出一大批以互联网为基础的智能工厂;在不断完善产业链的过程中,工厂正在经历从“制造”到“智造”的转变,很多企业智能产品线的引进大幅提高了产品效率,降低了失误率;同时,也是未来制造业的发展趋势。

1.2问题叙述

问题一:对题目中给出的问题进行分析,给出两种情况下的动态调度模型和相应的求解算法。

问题二:在已知表1参数的条件下,分别检验模型的实用性和算法的有效性,且给出第一问中模型的调度策略和该任务系统的作业效率,并将结果分别填入附件2中提供的表中。

  1. 问题假设

为了使问题得到简化容易求解,在考虑实际情况的条件下,做出以下合理假设:

假设一:人工维修后,CNC后续故障的发生概率不受先前维修的影响,在整个班次(8小时里)始终约为1%

假设二:CNC加工完成一个两道工序物料的第一道工序和第二道工序的时间间距不能过大。

假设三:本题目中所给出的数据真实可靠,且具有分析价值。

  1. 符号说明

符号

说明

tij

表示第i 台CNC与第j 台CNC之间移动所需时间

tx

表示距下料传送带最近的CNC上下料作业时间

ts

表示距上料传送带最近的CNC上下料作业时间

tj

工件加工所需时间

Ci

表示第i台CNC   (1≤i≤8)

tCNCis

表示第i台CNC 开始时间

p

表示RGV开始运作前准备的时间

t1

表示加工过程第一道工序所需时间

t2

表示加工过程第二道工序所需时间

length

表示数组的长度

tle

表示最后一个CNC 加工结束时刻

tls

表示最后一个CNC 加工开始时刻

tij

表示第i 台CNC与第j 台CNC之间移动所需时间

注:其他符号将在下文中给出具体说明。

  1. 模型建立与求解

5.1问题一的分析

问题一要求我们对单工序和多工序作业以及可能存在的机器故障的情况下对问题进行分析、研究,从而得出相应的RGV动态调度模型。考虑到问题中提到的多种情况,我们将RGV调度模型分为以下四种:无故障正常运行的单工序物料加工模型,存在故障情况下的单工序物料加工模型,无故障正常运行的多工序物料加工模型,存在故障情况下的多工序物料加工模型。且对于每个部分都存在特殊情况(在模型的建立中会详细给出)。

5.1.1无故障单工序物料加工动态调度模型

5.1.1.1模型的分析

对于正常运行的单工序物料加工模型,每台CNC所安装的刀具使相同的,则8台CNC的作用功能是相同的;RGV引导车运行1个单位,运行2个单位与运行3个单位所需时间的关系、物料加工所需时间与7台(下文5.1.1.2.2关系2中给出解释)CNC上下料时间和运行时间之和的关系,是调度问题的核心。

RGV引导车移动不同单位所需的时间之间是否存在关系,则影响着CNC的开始次序,而物料加工时间则会对后续的上下料请求是否存在排队产生重要的影响。具体流程图如图5.1.1.1.1所示:

图5.1.1.1.1 流程图

5.1.1.2模型的建立

5.1.1.2.1 RVG在等距CNC间的移动时间

对于RGV在等距CNC之间的移动时间存在以下三种情况:三段路段RGV移动时间相同,三段距离中存在两段RGV移动时间相同,三段路段中每段RGV移动时间都不同。所表示的间距均以上料传送带旁的CNC进行表示,下面将对上述三种情况进行研究。

情况1:<三段路段RGV移动时间相同>t13=t35=t57=t (其中t13 是RGV从1号CNC移动到2号CNC移动的时间,同理t35t57  也是如此)如图5.1.1.2.1所示:

图5.1.1.2.1 t 时间对应关系图

同侧的CNC相邻两台的RGV运行时间是相同的,则RGV在给第一个CNC上料的位置决定着RGV的准备时间P

约束条件:

1' :上料前准备时间

ci=1 时,RGV处于CNC1号机位置,P=0ci=3 时RGV处于CNC3号机位置,P=t3ci=5 时,RGV处于CNC5号机位置,P=2t5ci=7 时,RGV处于CNC7号机位置,P=3t7 ;即:

0,ci=1

t3ci=3

P=

2t5ci=5

3t7ci=7

2' :最后一台CNC加工的结束时间

若使得最后一台CNC较早的结束,则应使最后一台CNC较早的开始;那么从初始时刻到最后一台CNC上料时间最短,为此我们引进图论加以证明。对于智能加工系统中的8台CNC,将其中每一台CNC看作一个点,即V=v1,v2,v3,⋯,v8 ,那么tij 则是vivj 所构成边eij 的权值,即E=eij|1≤i,j≤8∪i≠j ;在此基础上,由G=V,E 可构成含权无向图,T 为图G 的权值矩阵,存在:

T=t11t12t21t22t18t28t81t82t88

其中,tii=1≤i≤8 表示从CNCi 号机到CNCi 号机是不花费时间的,tij=tji1≤ij≤8i≠j 表示图为含权无向图,由CNCi 号机到CNCj 号机的时间是相同的,tii+1=0(1≤i≤7i≡1(mod2)) 表示序号相邻的两台CNC且初始CNC序号为奇数时的到达所需时间间隔为0,即不需要时间,其余的tij 则由条件t13=t35=t57=t 进行相应的变换得到。

情况2:<三段距离中存在两段RGV移动时间相同>t13t35=t57=βt13t35t57 的定义与上文中相同)。

对于RGV的运动而言,其中所需要经过相邻两台CNC之间的距离时相同的,若RGV的运动速度不同,则每段等距所需的时间时不同的。由于RGV运动的开始阶段是一个加速过程(模型中设定的猜测),若RGV持续运动,则接下来将保持匀速运动。与情况1相比,上料前的准备时间以及含权矩阵需要调整。

约束条件:

1' :上料前时间

ci=1 时,RGV处于CNC1号机位置,P=0ci=3 时RGV处于CNC3号机位置,P=α3ci=5 时,RGV处于CNC5号机位置,P=α+β5ci=7 时,RGV处于CNC7号机位置,P=α+2β7 ;即:

0 , ci=1

α3ci=3

P=

α+β5ci=5

α+2β7ci=7

2' :含权矩阵的调整

对于含权矩阵T 其中tii=1≤i≤8tij=tji1≤ij≤8i≠jtii+1=0(1≤i≤7i≡1(mod2)) 这三组符号所对应的元素是不会随RGV移动等距的时间变化而变化,只会由CNC的位置确定,其余元素则由t13t35=t57=β 进行调整。

情况3:<三段路段中每段RGV移动时间都不同>t13t35t57=γt13t35t57 的定义与上文中相同)。

对于RGV的运动而言,经过相邻的等距路段速度可能是不同的,其中在每一段路段中都会存在一定的差异,会导致移动同距离所用时间是不同的,那么在情况2上进行一定的调整。

约束条件:

1' :上料前时间

ci=1 时,RGV处于CNC1号机位置,P=0ci=3 时RGV处于CNC3号机位置,P=α3ci=5 时,RGV处于CNC5号机位置,P=α+β5ci=7 时,RGV处于CNC7号机位置,P=α+β+γ7 ;即:

0 , ci=1

α3ci=3

P=

α+β5ci=5

α+β+γ7ci=7

2' :含权矩阵的调整

只对tii=1≤i≤8tij=tji1≤ij≤8i≠jtii+1=0(1≤i≤7i≡1(mod2)) 之外的元素进行调整,且依据于t13t35=t57=β

5.1.1.2.2物料加工用时与其他总用时

对于该系统除物料加工外总用时还包括以下三部分:RGV准备时间,CNC总的上下料时间,RGV移动时间。设定总耗时为tz ,那么:

tz=P+n-i1%2ts+m-i1%2tx+ti1i2⋯i8+ti1i8

其中P 为准备时间,n 为上料传送带旁CNC在物料加工过程中上下料个数,m 为下料传送带旁CNC在物料加工过程中上下料个数,ti1i2⋯i8 为经过8个CNC最优时间,ti1i8 为从终结点到开始结点所需时间。

因为物料加工用时和其他总用时之间存在一种比较关系,tj>tztj<tz ,下面将对这两种特殊关系进行分析。

关系1 tj>tz

由于初始时开始进行的位置无法确定,因此无法判断第一次操作是如何进行的,蛋壳通过初始结点进行确定:

0,初始进行上下料操作的是CNC偶数号机,i≡0(mod2)

i1%2=

  1. 初始进行上下料操作的是CNC奇数号机,i≡1(mod2)

若在第一轮运转中未发生请求信号冲突,那么在以后的运转过程中不会发生。

关系2 tj<tz

一台CNC加工物料所需时间不足以支持剩余所有CNC所消耗的其他时间,则会出现多个CNC请求RGV操作,设定需求信号序列为h1h1,⋯,hk (k<8 ),再根据图论求出耗时序列为vi1,vi2,⋯,vi8 ;设定下次的运行结点为d ,且d=hi(hiV'hi=vpi) 此时RGV所在CNC为vl ,则vl 后序列V'=vp1,vp2,⋯,vp8 , V'∈V 。[1]

目标函数为:minti1ti2ti8+ti1ti8

约束条件:

       i1 , i2 ,⋯,i8∈V

       tijtik ,j,k∈V, tijtik∈E

       ti1ti2ti8=ti1ti2+ti2ti3+⋯+ti7ti8

S.T.

       tCNCie<tCNCje 其中 tCNCis>tCNCjs , 1≤i,j≤8 ,且i≠j

       replacei,j,k, 其中1≤i,j,k≤8

                        tik , tij+tjk>tik

5.1.1.3模型求解的算法过程

根据上文中提出的调度模型,我们运用相应的算法,并将算法过程步骤记录下来,那么将存在以下5步。

Step1:对于8个CNC在初始运行时都会发出需求信号,则存在若干种相应方程式,对此选取所需耗时最小的序列进行,则从开始的vi1 所构成的边集E=vi1vi∝,vi1vi∝+1,⋯ ,选取minE 并将边的终结点作为初结点依次进行。

Step2:初始化数组,为每个CNC开两个数组用以存取每个CNC上加工物料的开始时间和结束时间,length=t-pcits+tx+2tj×2 ,以及每个CNC上物料剩余时间。

Step3:以第k 个物料为例,根据Step1中的序列调整CNC上第k 个物料的开始时间和其余CNC上物料的剩余时间。

Step4:物料剩余时间的计算。若第k 个物料剩余时间为0,则将此时刻初始为本CNC上第k+1 个物料的开始时刻以及本CBC上第k 个物料结束时刻,并使物料甚于时刻为tj

Step5:运行时长的计算。若运行时长达到t 则终止,不到则重复进行Step4操作,直至满足要求。

5.1.2故障情况下的单工序物料加工动态调度模型

5.1.2.1模型的分析

对于存在故障率的单工序物料加工模型中,在车间作业过程中存在1%的故障概率,且机器修复需要10~ 20分钟。为了更加接近实际情况,我们将随机分配某个时间段内某台CNC发生故障,相应确定本CNC的修复时间。

在CNC未发生故障时,情况与正常工作的单工序物料加工工程相同。若某台CNC发生故障,那么这台CNC将在一定时间内时无法使用的,则需确定相应的物料加工流程如图5.1.2.1所示:

5.1.2.2模型的建立

5.1.2.2.1多台CNC发生故障概率计算

因为故障率的存在,第i 台CNC都可能会在某个时刻发生故障,记发生故障的事件为Ai ,而发生故障的概率为1%,则PAi=1% 。其中i=1,2,⋯,8 。记事件B 为两台及以上CNC在同一时间段内同时发生故障的概率为PB ,即:

PB=1-PA1PA2∙⋯∙PA8-C81PA1PA2∙⋯∙PA8

PA1=PA2=⋯=PA8=0.99 , PA1=PA2=⋯=PA8=0.01,

得PB=0.0027<0.05

故多台CNC发生故障时小概率事件,则在同一时间段内只能由一台发生故障。

5.1.2.2.2某时刻某CNC故障发生事件的计算

对于整个智能车间系统,其在一段时间内CNC产生k 个成聊,并将其标记为n1,n2,n3,⋯,nk 。因为已知的故障的发生率约为1%,将其预划分为nk100+1 组,并将初始的选取的n1,n2,n3,⋯,n10 。选用轮盘赌选择方法进行目标的选取。

处于轮盘中的CNC序号被选择的概率与其适应度函数值大小成正比,设群体大小为N,个体n 的适应度为fni ,则个体xi 的选择概率为:

Pni=fnik=1Nfnk

选择的过程为:1'D0,1 内产生一个均匀分布的随机整数α2' 若α≤q1 ,则n1 被选中;3'qk-1<α≤qk2≤k≤N,nk 被选中。

其中的qi 称为ni(i=1,2,N) 的积累概率。

对于智能加工体系,在未发生故障(正常运转)的情况下一轮所需时间为t ,故障修复时间l ,一轮中CNC生产成料P ,则在故障时间内生产的成料数为nc ,则存在关系式:

nc=lc∙P=lPt

由多台CNC同时发生故障为小概率事件,其发生概率可以忽略为0,通过轮盘赌算法找到的成料标记为nl ,即生产序号在(nlnl+lPt) 内不会发生故障,则需在nl+lPtnl+lPt+100内按照上 述模型进行选取,直至nk

5.1.2.2.3故障发生后剩余CNC工作次序的确定

智能加工系统的8台CNC简化成8个点,若第i 台CNC发生故障,则V2=v1,v2,v3,⋯,vi-1,vi,vi+1(i≤8) ,则tijvivj 所构成的边eij 的权值,即E2=eij|1≤i,j≤8∪i≠j∪i,j≠vi ,则由G=V2,E2 可构成含权无向图,T 为图G 的权值矩阵,那么T :

T=t11t13ti-11ti-12t1it1lt2lt3lti1ti1⋯⋯⋯⋯tl1tl1t4ltll

其中,tii=∞1≤i≤ltij=tji1≤i,j≤ltii+1=0(1≤i≤l) ,其余元素则可根据P 进行调整。

5.1.2.2.4 CNC器械修理事件的确定

[2]某个CNC在某时刻发生故障,则在未来10~20 分钟内无法工作,那么我们需要考虑除了此CNC外剩余7台CNC的工作情况,故在y 事件内可以存在含故障操作和无故障操作两种工作方式,故此情况下该问题可优化为:

max  7∙yt1+8∙600-yt2

0≤y≤600

S.T.= 

t1,t2 为常数

其中t1=min vi1vi2vi7t2=min vi1vi2vi8

若想在有限时间内加工尽可能多的成料,则应使每次通过轮盘赌算法后得到能够使用的CNC在一定时间内产生的最多的成料,因为成料的生成包括无故障情况下CNC加工以及出故障后完整的CNC加工的成料,因此存在两个目标函数。

1' 正常生产成料的目标函数为:minti1ti2ti8+ti1ti8

       i1 , i2 ,⋯,i8∈V

       tijtik ,j,k∈V, tijtik∈E

       ti1ti2ti8=ti1ti2+ti2ti3+⋯+ti7ti8

S.T.   tCNCie<tCNCje 其中 tCNCis>tCNCjs , 1≤i,j≤8 ,且i≠j

       replacei,j,k, 其中1≤i,j,k≤8

                        tik , tij+tjk>tik

     replacei,j,k=

tij+tjk , tij+tjk<tik

2' 含故障生产成料的目标函数为:min tvi1vi2vi(i-1)vi(i-1)vil+ti1til

       i1 , i2 ,⋯,ii-1,ii+1,⋯,ilV2

       tijtik ,j,k∈V2, tijtikE2

       ti1ti2ti(i-1)ti(i+1)til=ti1ti2+ti2ti3+⋯+ti(i-1)ti(i+1)+⋯+ti(l-1)til

S.T.   tCNCie<tCNCje 其中 tCNCis>tCNCjs ,i,j∈V2 ,且i≠j

       replacei,j,k, 其中i,j,k∈V2

                        tik , tij+tjk>tik

     replacei,j,k=

tij+tjk , tij+tjk<tik

5.1.2.3模型求解的算法过程

在故障情况下的单工序物料加工动态调度模型中,我们根据模型的具体算法应用,给出以下算法的解决过程,该过程总共分为7步解决。

Step1:对于8个CNC在初始运行时都会发出需求信号,则存在若干种相应方程式,对此选取所需耗时最小的序列进行,则从开始的vi1 所构成的边集E=vi1vi∝,vi1vi∝+1,⋯ ,选取minE 并将边的终结点作为初结点依次进行。

Step2:初始化数组,为每个CNC开两个数组用以存取每个CNC上加工物料的开始时间和结束时间,length=t-pcits+tx+2tj×2 ,以及每个CNC上物料剩余时间。

Step3:以第k 个物料为例,根据Step1中的序列调整CNC上第k 个物料的开始时间和其余CNC上物料的剩余时间。

Step4:若存在故障,则在0~600s 对生料进行加工,存在需求同时响应时以产生新的序列。

Step5:若在加工过程中CNC出现故障,则通过寻找在0~600s 内合理的正常生料加工以及有故障生料的分配序列。

Step6:物料剩余时间的计算。若第k 个物料剩余时间为0,则将此时刻初始为本CNC上第k+1 个物料的开始时刻以及本CBC上第k 个物料结束时刻,并使物料甚于时刻为tj

Step7:运行时长的计算。若运行时长达到t 则终止,不到则重复进行Step4操作,直至满足要求。

5.1.3无故障多工序物料加工动态调度模型

5.1.3.1模型分析

对于两道工序加工过程中的第一道和第二道工序,因为生料需要在完成第一道工序后才能进行第二道工序。因此,我们需要确定两种不同类型CNC机器的数量分配,并通过对其位置的调整以得到更优的加工时间从而在每次作业时间内完成尽可能多的生料。

在完成第一道工序和第二道工序CNC机器的数量和位置分配后,结合相应的数学模型(下文模型建立中将会给出说明),通过对生料工序在不同类型CNC上的时间限制,生料先后在CNC上出现时刻,以及每台CNC每次加工生料数量限制等约束条件加以控制。其模型的流程图如5.1.3.1.1所示:

图5.1.3.1.1模型流程图

5.1.3.2模型建立

5.1.3.2.1不同类型CNC数量的确定

在同一作业时间内,若想生产尽可能多的成料,那么则需要每台CNC尽可能缩短空闲时间,因此,只有做第一道工序的CNC的运行时间之和与做第二道工序的CNC的运行时间之和相同时,机器的空闲时间才会最短。现设定做第一道工序的CNC的数量为m1 ,做第二道工序的CNC的数量为m2 ,CNC总台数为N 。那么存在以下方程式:

m1m2=2t1+ts+tx2t2+ts+tx

m1+m2=N

5.1.3.2.2 CNC的位置确定

CNC初始位置对后续的时间优化产生一定的影响,因为有两种类型的CNC,且两种机器数量存在m1m2m1>m2 这两种情况,下面我们将对这两种情况进行讨论。

情况1:m1m2

此情况下进行第一道工序的CNC的数量多于进行第二道工序的CNC数量,则可根据初始等距CNC移动时间来调整含权矩阵T ,对于上料传送带旁的CNC进行描述RGV运行的耗时:t13t35t57=γ

对权值矩阵T 进行一定的调整,tii=∞1≤i≤8 表示RGV无法在第i 台CNC到第i 台CNC之间移动是不存在的,tij=tji(1≤i,j≤8,i≠j) 表示图为含权无向图,由第i 台CNC到第j 台CNC与从第j 台CNC到第i 台CNC的时间是相同的,tii+1=0(1≤i≤7,i≡1(mod2)) 表示序号相邻的两台CNC,并以上料传送带旁的CNC序号开始间距所需的时间为0,其余元素根据t13t35t57=γ 调整。

因为存在m1 个做第一道工序的CNC和m2 个做第二道工序的CNC,且如果想要m1 个做第一道工序的CNC以及第一道工序产生的半成品放到做第二道工序的CNC上的时间最短,那么我们需要从图中选取m1 个点代表做第一道工序的CNC和m2 个点代表做第二道工序的CNC。[3]那么存在m1=vi1vi2vilm2=vk1vk2vkj ,则目标函数为:

m1⊆V , m2⊆Vmin ti1ti2tj1+tk1tk2+⋯+tjk

       i1 , i2 ,⋯,ij,k1,k2,⋯,kjijkjm2

       tijtik ,j,k∈V, tijtikE

       ti1ti2tij=ti1ti2+ti2ti3+⋯+ti(j-1)tij

       tk1tk2tkj=tk1tk2+tk2tk3+⋯+tk(j-1)tkj

   tCNCie<tCNCje 其中 tCNCis>tCNCjs ,i,jm1 ,或i,jm2

S.T.   replace1i,j,k, 其中i,j,km1

replace2i,j,k, 其中i,j,km2

                         tik , tij+tjk>tik

     replace1i,j,k=

tij+tjk , tij+tjk<tik

                         tik , tjl+tlk>tik

     replace2i,j,k=

tjl+tlk , tjl+tlk<tik

情况2:m1>m2

此情况表明做第一道工序的CNC数量少于做第二道工序的CNC数量,则第一道工序消耗的时间要小于第二道工序消耗的时间,含权矩阵T情况1

对于做第一道工序的m1 台CNC简化为图中的m1 个点,并存于集合m2 中,即m2=vk1vk2vkl ,由于m1>m2 ,则m2 中的点是可以动态变化的。用m2/vk1 表示除去vk1 的集合,m2\vk1 表示除去vk1 的集合,m1⊆V , m2⊆V ,则目标函数为:

minti1ti2tim1+tti1+tiα+1ti2+⋯+tiα+m1tim1-m2+tiltim1-m2+1+⋯+tiltim2=ti1ti2tim1+j=1m1tijtα'

       i1 , i2 ,⋯,im1m1α,α+1,⋯,l∈m2

       tijtik ,j,k∈V, tijtikE

       ti1ti2tim1=ti1ti2+ti2ti3+⋯+ti(m1-1)tim1

       α+i∈m2/vα+i-1 ,且0≤i≤m1-m2

S.T.     α∈m2vαvα+1vα+m-1\ ,且满足m1-m2≤i<m1

   tCNCie<tCNCje 其中 tCNCis>tCNCjs ,i,jm1 ,或i,jm2

   replacei,j,k, 其中i,j,km1

                         tik , tij+tjk>tik

     replace1i,j,k=

tij+tjk , tik+tjk<tik

5.1.3.2.3 物料加工顺序的确定

1':RGV在等距路段上移动的时间

对于RGV在等距路段上的运动,RGV的速度是存在发生变化的可能性,并且该变化是无法预测的。那么,每段路段上RGV运行的时间也可能不相同。所以我们将从上料传送带旁的CNC进行讨论,由图5.1.1.2.1可知,ci=1 时,RGV处于CNC1号机位置,P=0ci=3 时RGV处于CNC3号机位置,P=α3ci=5 时,RGV处于CNC5号机位置,P=α+β5ci=7 时,RGV处于CNC7号机位置,P=α+β+γ7 ;即:

0 , ci=1

α3ci=3

P=

α+β5ci=5

α+β+γ7ci=7

2':物料对于加工位置的选取

初始化含权矩阵T ,其中tii=∞(1≤i≤8)tij=tji , tii+1=δ(δ>0,1≤i≤7) 表示相邻两个被标记的CNC且初始上料传送带的CNC与其相对应的CNC存在一定的距离,矩阵T 的其余元素则根据t13t35t57=γ 进行调整。对于每个CNC是否空闲以及其所能完成二道工序之一的需要加标注,分别为B=B1,B2,⋯,B8 ,G=G1,G2,⋯,G8 ,存在关系如下:

0,表明第i 个CNC空闲              1,表明第i 个CNC做第一道工序

Bi=                              Gi=

  1. 表明第i 个CNC忙碌              2,表明第i 个CNC做第二道工序

若此刻处于vj 且第j 个CNC的操作完成,Gi 的值则决定下次索要寻找CNC所属的类型,并加以选取,从而求出当前耗时的最小值。所以存在三种情况,如下所示:

1': Gi=1

当前的CNC为做第一道工序的CNC,则物料的第一道工序完成后,需要进行第二道工序的加工。将vj 做为坐标原点,并分别以vjvl 为半径做圆,若Bl=1Gi=G 分别表示第l 台CNC处于忙碌状态,第l 台CNC与第j 台CNC的工序是相同的,存在min=tl= ,则:

tll≡1(mod2)

min= 

        ,α≡1(mod2)

2': Gi=2

表明当前的CNC为加工第二道工序的CNC,因物料的第二道工序做完,需要重修加入新的生料。将vj 做为坐标原点,并分别以vjvl 为半径做圆,寻找min d ,若Bl=1Gi=G 分别表示第l 台CNC处于忙碌状态,第l 台CNC与第j 台CNC的工序是相同的,存在min=tl= ,则:

tll≡1(mod2)

min= 

        ,α≡1(mod2)

3':∃ Gi=1∪Bi=0∪Gi=Gj

表明智能加工系统中存在做第一道工序的CNC处于空闲状态,那么将通过上述方法找到与之相邻的做第一道工序的CNC。对于n个CNC加工成料的结束时刻为c=c1,c2,⋯,cn ,所以生产同样多的成料,想要消耗的时间更短,设定目标函数为:min maxc1,c2,⋯,cn=cn

       i1 , i2 ,⋯,in∈V

       tijtik ,j,k∈V, tijtik∈E

       cn=ti1ti2+ti2ti3+⋯+tin-1tin

S.T.   ti1ti2=min ti1α∈Vα≠i1

       replacei,j,k, 其中i,j,kV

                        tik , tij<tik

     replacei,j,k=

5.1.3.3模型求解的算法过程

在无故障情况下的多工序物料加工动态调度模型中,给出以下算法的解决过程,该过程总共分为4步解决。

Step1:因为CNC机器分为两类,根据相应的目标函数,从而确定CNC的位置以及生料加工第一道工序的位置参数。

Step2:设置开始时间的保留、结束时间的保留状态、加工工序类型,剩余时间数组等,分别进行初始化,用以相关的信息保存。

Step3:根据Step1中确定的位置l ,由Gl 确定CNC的加工工序的种类,并选取由l 所构成边elj 长度较小且Bj=0 ,若存在Gi=1∪Bi=0∪Gi=Gj 时,则Gl=Gj ;否则GlGj ,其他相关值发生变化。

Step4:若运行时长,若运行时长达到t 终止,否则进行Step3直至满足需求。

5.1.4含故障率多工序物料加工动态调度模型

5.1.4.1模型分析

对含有故障率的两道工序的物料加工作业过程中,加工两道工序的CNC都又可能在加工过程中发生故障,某台CNC发生故障后,在一段时间内该设备无法工作,因此会对后面的CNC加工物料的次序产生一定的影响。

在CNC未发生故障的情况下,CNC的加工次序固定。若CNC发生故障,则可将其简化为与正常情况下相同的结构。具体流程图如5.1.4.1.1所示:

图5.1.4.1.1流程图

5.1.4.2模型的建立

对于CNC的工作分类和CNC的位置确定在上文中作了说明(5.1.3无故障多工序加工动态调度模型),因此在本段落不给出更多解释。

5.1.4.2.1多台CNC发生故障概率

i 台CNC进行第一道工序的CNC会在某个时刻发生故障,记发生故障的事件为Ai (1≤i≤α );第j 台CNC进行第二道工序的CNC会在某个时刻发生故障,记发生故障的事件为Bj (1≤j≤β );根据题目中给出的信息,发生故障的概率为1%,因此PAi=1%PBj=1% ,记事件C 为两台及两台以上CNC在同一时间段内发生故障的概率为PC ,即:

PC=1-PA1PA2PAα PB1PB2PBβ-PA1⋯-PA1PA2⋯

由:

PA1= PA2=⋯= PAα=PB1=⋯=PBβ=0.99

PA1=⋯=PAα=PB1=⋯=PBβ=0.01

得:PB=0.0025<0.05

因此多台CNC发生故障是小概率事件,则在同一时间段内只能最多有一台CNC发生故障。

对于n个CNC加工成料的结束时刻为c=c1,c2,⋯,cn ,则需要生产同样多的CNC成料所消耗的时间尽可能短,则目标函数为:

5.1.4.2.2某时刻某台CNC的故障事件

对于整个智能加工系统,进行第一道工序的CNC在一段事件内加工生产成料,并将对应的CNC标记为n1 , n2 ,⋯ ,nk ;进行第二道工序的CNC在一段事件内加工生产l 个成料,并将对应的CNC标记为nk+1,nk+2,⋯,nk+l 。由于第一道工序与第二道工序在加工时间上存在差异,则在相同时间内生成两种不同零件数之比为t2:t1 ,即在t2 个一道工序半成料后有t1 个二道工序成料,一次循环。

由于机器故障的概率为1% ,将其预划分为k+l100+1 组,并将其从排序队列中选取n1 , n2 ,⋯ ,nk ,通过轮盘赌算法来进行随机选取。

对于处于轮盘中被选中号码的CNC序号,其概率与其适应度函数值大小成正比。设群体大小为N,个体ni 的适应度为fni ,则个体xi 的选择概率为:

Pni=fnik=1Nfnk

选择的过程为:

1'01 内产生一个均有分布的随机数α

2'若α<q ,则n1 被选中;

3'qk-1<α≤qk2≤k≤N ,则nk 被选中(其中qi 称为nii=1,2,⋯,N 的积累概率)。

在智能加工体系中,未发生故障的时间l ,产生的成料数为nc 。因为多台CNC同时发生故障的事件为小概率事件,所以不予计算。通过轮盘度算法找到的nl ,即在nlnl+nc 内不会发生故障,则需在nl+ncnl+nc+100 内按照上述建立的模型进行选取,直至nk+l

5.1.4.2.3故障发生后CNC工作路径以及修理时间的确定

CNC在某个时刻发生故障,则在以后的y 时间内无法运作,那么我们需要考虑剩余CNC的运作情况。因此,在y 时刻内可以存在含故障操作和无故障操作2种操作方式,进行优化后,存在目标函数为:

max c1+c2

       0<ti1ti2t<yi1,i2,⋯,ix∈V

       0<tj1tj2t<600-yj1,j2,⋯,jβ∈V2

       c1=ti1ti2tiα

S.T.   c2=tj1tj2tjβ

ti1ti2t=ti1ti2+ti2ti3+⋯+ti(α-1)tiα

tj1tj2t=tj1tj2+tj2tj3+⋯+tj(β-1)tiβ

若想要在某段时间内加工的成料数量最多,则应使在无故障以及含故障生辰过程中第一二道工序产生尽可能多的成料或或半成料。即存在两个目标函数,即存在两种情况。

1':无故障情况下成料的目标函数为:min maxc1,c2,⋯,cn=cn

       i1 , i2 ,⋯,in∈V

       tijtik ,j,k∈V, tijtik∈E

       cn=ti1ti2+ti2ti3+⋯+tin-1tin

S.T.   ti1ti2=min ti1α∈Vα≠i1

       replacei,j,k, 其中i,j,kV

                        tik , tij<tik

     replacei,j,k=

tjk , tij>tik

2':含故障率情况下目标函数为:min maxc1,c2,⋯,cn=cn

       i1 , i2 ,⋯,inV2

       tijtik ,j,k∈V2, tijtik∈E

       cn=ti1ti2+ti2ti3+⋯+tin-1tin

S.T.   ti1ti2=min ti1α∈Vα≠i1

       replacei,j,k, 其中i,j,k∈V2

                        tik , tij<tik

     replacei,j,k=

tjk , tij>tik

5.1.4.4模型求解的算法过程

在含故障率情况下的多工序物料加工动态调度模型中,给出以下算法的解决过程,该过程总共分为6步解决。

Step1:因为CNC机器分为两类,根据相应的目标函数,从而确定CNC的位置以及生料加工第一道工序的位置参数。

Step2:设置开始时间的保留、结束时间的保留状态、加工工序类型,剩余时间数组等,分别进行初始化,用以相关的信息保存。

Step3:存在故障的情况下,则在0~600s 内按存在故障的情况进行第一道第二道工序的操作模型,即含故障率多工序物料加工动态调度模型。

Step4:在另一个0~600s 内找到合理的间隔y ,使得在y 时间段内使得含故障率情况下生成的成料与无故障情况下生成成料数量达到最优。

Step5:根据Step1中确定的位置l ,由Gl 确定CNC的加工工序的种类,并选取由l 所构成边elj 长度较小且Bj=0 ,若存在Gi=1∪Bi=0∪Gi=Gj 时,则Gl=Gj ;否则GlGj ,其他相关值发生变化。

Step6:若运行时长,若运行时长达到t 终止,否则进行Step5直至满足需求。

5.2问题二的分析

在问题一中我们给出了四个问题的具体模型,因此,问题二则是利用问题一中设立的模型对问题二进行解答。而问题二主要分为三点:

1.检验模型的实用性。一个模型是否稳定是实用性的一个评判标准,因此,建立此模型判断模型;在表一所给出多条变量中挑出一条或多条变量,改变其数值,观察模型结果是否出现大的波动,若波动大,则稳定性差,实用性低;若波动小,则稳定性好,实用性高。

2.检验算法的有效性。算法有效性通过比较预定结果与实际结果之间的差距来检验,上文中给出的模型为无故障情况下和故障率情况下两种情况,前者更倾向于预定的结果,而后者更倾向于实际结果,将这两个结果进行比较,来检验算法的有效性。

3根据问题1中所建模型,给出RGV的调度策略,作业效率则根据单位时间内该模型条件下车间生产成料数量来说明。

5.2.1模型实用性模型

在一段时间内,生产的成料数量与RGV运行不同的时间、上料传送带及下料传送带旁的CNC的上下料所需时间以及RGV的移动时间有关,设定单工序的成料数量为num ,工件加工时间为:

num=fts,tx,tj,p

tx=tx+α

对于下料传送带的上下料时间给予一个微小波动α ,则调整后成料数量为num'

num'=fts,tx+α,tj,p

numnum'=fts,tx,tj,pfts,tx+α,tj,p

即为tx 下料传送带上下料产生微小波动时,CNC产生成料的数量也会对作业过程产生一定的影响,numnum' 越接近1,则月说明模型越稳定。令x=0.5 ,从而得到numnum'=0.9896 ,故模型时稳定的,且预测出的熟料数量较多,产生的经济效益良好,具有很好的实用性。[4]

5.2.2算法有效性模型

在一定时间内让CNC加工生料,不发生故障为理想状态,也就是我们的预定生成数量,暂设定生成成料数量为m1 ;发生故障的情况下为实际状态,设定生成成料数量为m2 ,则有效性的值h

h=m2m1

其中,m1m2 经上述问题一模型计算得出。三组参数带入单工序和两工序物料加工模型计算得出有效率和作业效率图,分别如图5.2.2.1和图5.2.2.2所示:

图5.2.2.1单工序有效率和作业效率曲线图

图5.2.2.2双工序有效率和作业效率曲线图

5.2.3 RGV的调度策略

该任务的调度策略主要分为两个方案,且为了更加接近真实情况,我们选中了在有故障情况下的加工模型。一是一道工序的物料加工作业,二是两道工序的物料加工作业,因此,针对不同的加工方案我们给出不同的调度策略。

一道工序的RGV调度策略:运用轮盘调度算法,首先确定各个CNC机器的使用顺序,若在此过程中机器发生故障,则CNC的加工顺序重新变化,依然根据算法对CNC机器进行重新排序,以得到最优队列,进而提高产品的生产量。

两道工序的RGV调度策略:现根据表中给出的时间参数确定两种类型CNC的数目大小,接下来,运用模拟退火算法寻找所有CNC的最佳位置。然后运用贪心算法以缩短移动时间为目的寻找RGV移动的最优解。若机器在工作中发生故障,则CNC的加工顺序发生变化,那么我们将重复上述文中寻找位置等步骤,直至找到RGV移动的最优解。

5.2.4 系统作业效率

根据表中给出的参数并将其带入上文建立的模型中,得到的工作效率为每小时车间生产的熟料数,且工作效率分别为分为一道工序调度模型的工作效率和两道工序调度模型的工作效率, 分别如表5.2.4.1和表5.2.4.2所示:

任务

RGV第一组系统参数

RGV第二组系统参数

RGV第三组系统参数

含故障的作业效率(件/小时)

48.25

45.25

47.625

表5.2.4.1单工序作业效率曲线图

任务

RGV第一组系统参数

RGV第二组系统参数

RGV第三组系统参数

含故障的作业效率(件/小时)

26.75

29.25

23.125

表5.2.4.2双工序作业效率曲线图

  1. 模型的评价和推广

6.1模型的评价

6.1.1模型的优点

(1)本文建立的单工序和多工序动态优化调度模型从需求信号和消耗时间的多少以及发生故障后的实际情况出发,研究了影响工件成料产量的因素是以CNC数量关系、位置关系为切入点并综合考虑生产实际情况。该模型与车间生产效率存在着紧密联系。

(2)在分析同一时间段CNC发生故障台数的可能性,结合实际情况并利用实际推断原理,排除了在某一CNC出现故障且在维修期间时,另外CNC继续出现故障的时间为小概率事件,在短时间内和有限次加工过程中是不可能发生的。模型不脱离实际。

6.1.2模型的缺点

(1)工件产量的影响变量时,可能忽略了某些重要因素的变量,使得不够大众化、一般化。

(2)在建立模型过程中,我们对加工过程出现的故障率理想化,忽视了人为因素对CNC造成的不可逆影响。

6.2模型的改进方向

(1)可以通过多组工件的参数值进行模拟仿真分析,以获得训练集,对于后续工件的参数进行训练得到CNC最佳位置关系和数量关系。

(2)在进行优化建模中,可以尝试用遗传算法、模拟退火算法、蚁群算法进行后续优化研究。

基于调度算法的柔性车间问题的研究相关推荐

  1. 基于遗传算法解决柔性车间生产调度问题(附代码)

    本文章主要涉及以下工作:    (1)讲述了如何基于遗传算法解决柔性车间生产调度问题,包括编码.解码.初始化.交叉操作.变异操作.选择操作等.    (2)提供了相应的编程步骤,并完善了甘特图绘制以及 ...

  2. 基于候鸟优化算法(MBO)的柔性车间调度优化研究(Matlab代码实现)

  3. 基于深度强化学习的智能车间调度方法研究

    摘要: 工业物联网的空前繁荣为传统的工业生产制造模式开辟了一条新的道路.智能车间调度是整个生产过程实现全面控制和柔性生产的关键技术之一,要求以最大完工时间最小化分派多道工序和多台机器的生产调度.首先, ...

  4. 基于智能优化算法PSO/GWO/AFO+柔性车间生产调度(Matlab代码实现)

    目录 1 柔性车间生产调度 2 运行结果 3 参考文献 4 Matlab代码实现 1 柔性车间生产调度 随着经济全球化的不断加深和市场竞争的日益严峻,传统的单一车间制造模式已经无法满足我国制造业的生产 ...

  5. 流水调度问题c语言,基于遗传算法的流水车间调度问题汇总.doc

    基于遗传算法的流水车间调度问题汇总,车间调度及其遗传算法,遗传算法车间调度,流水车间调度问题,置换流水车间调度问题,流水车间调度,流水车间调度问题代码,流水车间调度算法,任务调度遗传算法源码,遗传算法 ...

  6. 【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码

    1 简介 制造业同人们的生活密切联系,其发展走向可直接影响国家的综合实力.制造业企业不仅需要将制造技术走在科技前端,而且需要加强生产和经营管理技术,这样才能时刻保持其核心竞争力.而企业的调度是企业管理 ...

  7. 【车间调度】基于matlab遗传算法求解车间调度问题(含甘特图)【含Matlab源码 2216期】

    ⛄一.车间调度简介 1 车间调度定义 车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源.提高企业经济效益的目的.车间调度问题从数学上可以描述为有n个待加工的零件要在m台 ...

  8. 基于学习的机械臂抓取研究综述

    1.基于学习的机械臂抓取研究综述 Kleeberger, K., Bormann, R., Kraus, W. et al. A Survey on Learning-Based Robotic Gr ...

  9. 论文研究 | 基于机器视觉的 PCB 缺陷检测算法研究现状及展望

    前面分享了机器视觉在汽车行业与交通行业的应用,其实机器视觉在工业上的应用是最广泛也是最具挑战性的,其中PCB板缺陷检测一直是机器视觉待攻克的难题.印刷电路板(PCB)是电子零件的基板,需求量极大,承载 ...

最新文章

  1. IntelliJ IDEA中JAVA连接MYSQL
  2. 【学习笔记】月末操作-GR/IR重组
  3. EditText图文混排
  4. postgre 生成数据库html文档_还在手动整理数据库文档?试试这个(螺丝钉)数据库文档生成工具...
  5. 微课|玩转Python轻松过二级:第3章课后习题解答4
  6. Mongo DB命令简介
  7. 7-1 宿舍谁最高? (20 分)
  8. 送给你,PBA商业分析指南(全书下载)
  9. 【冷门快捷键】设置VSCode终端大小最小化快捷键Alt+PageUp/PageDown、编辑代码窗口切换大小快捷键Alt+数字键盘“+”、Alt+数字键盘“-”、Alt+数字键盘“0”
  10. 10个免费商用的图片网站分享
  11. 这些才是Win10真正好用之处:瞬对Win7无爱
  12. 微软出品的Python小白神器,真香!
  13. android 屏幕投射功能,安卓手机怎么投射屏幕?
  14. GC调优基础知识之工具篇--jdk为我们提供的命令行命令 jps,jstat,jmap,jinfo,jstat,jstack,jhat 等
  15. 谈谈产品与运营之 - 什么是用户感知
  16. 关于显卡的一些参数说明,告诉你如何分辨哪个好一点,哪个烂一点。
  17. 计算机桌面怎么全屏显示,如何让电脑显示器屏幕显示全屏
  18. 什么情况下指针需要使用malloc分配内存,什么时候不需要
  19. HTML——013下拉列表支持多选,multiple的用法
  20. SQL Server--嵌套查询

热门文章

  1. MyBatis自动配置(MyBatisAutoConfiguration)
  2. 为什么说以太坊应该移动化?三星、HTC 等科技巨头相继推出区块链手机对此有何影响?...
  3. opengl 画椭圆_简笔画|如何画一个可爱的米老鼠
  4. html em属性,html em标签的作用是什么?em和i标签的区别
  5. CASS坐标导入并展点显示
  6. 论文阅读:基于LSTM的船舶航迹预测模型
  7. ‘struct lws_context_creation_info’ has no member named ‘ws_ping_pong_interval’
  8. 在word中无法使用中文输入法解决方法
  9. CAS新版本(6.0-RC4)使用介绍(一)
  10. react中背景图片和图片引入的方法