基于调度算法的柔性车间问题的研究
基于调度算法的柔性车间问题的研究
摘要
生产(重)调度是生产车间管理的重要内容。本文研究了含RGV柔性车间调度问题的影响,构建了包含轮盘赌、模型推广、图论、模拟退火等以提高工厂效率、缩短工件完工时间为目标的数学优化模型。
针对问题一,该问题共设定四个模型分别是:无故障单工序物料加工模型,存在故障率的单工序物料加工模型,无故障多工序物料加工模型,存在故障率的多工序物料加工模型。对于单工序模型来说,运用模拟退火算法来找到RGV在8台CNC中的最优路径,缩短工件的完成时间;运用轮盘赌算法随机挑取CNC来体现机器故障率,当这台CNC损坏后(两台或两台以上CNC同时损坏为小概率事件,因此可忽略不计),寻找最优的损坏时间,以求生产的成料数量达到最多。剩余7台CNC则依然运用模拟退火算法来寻找最优路径。
对于多工序模型来说,首先根据上下料、第一道工序和第二道工序的加工时间比来确定两种不同类型机器的数量比。通过模拟退火算法优化确定所有CNC的分布位置,然后运用贪心算法推测出RGV的最优路径。关于故障率的处理则与单工序模型相同。
针对问题二,验证模型的实用性则是根据模型的稳定性和产生的经济效益来判断,而稳定性的判断则是轻微改变某个参数来判断模型结果的波动大小,并和原结果进行作比,结果越接近1越稳定。而根据表1中系统作业参数得出模型的稳定性参数为0.9896,系统稳定,且该模型下产生的熟料数量多,利润空间大,因此,模型的实用性较高。而有效性的判断则是通过预计结果与实际结果的比较进行判断,结果越接近1,有效性越高,而三组数据中算法有效性系数均在0.91以上,因此模型中的算法是有效的。而剩余的调度策略、系统的作业效率以及生成的表格在将下文中给出。
在最后,给出了模型的优缺点和评价方向,并提出了相应的改进方案。
关键词:柔性车间调度;模拟退火算法;重调度;多目标规划
- 问题重述
1.1问题背景
软件和硬件的共同发展,促进了中国工业化和信息化的深度合作。
近些年来,中国的互联网的快速成长,涌现出一大批以互联网为基础的智能工厂;在不断完善产业链的过程中,工厂正在经历从“制造”到“智造”的转变,很多企业智能产品线的引进大幅提高了产品效率,降低了失误率;同时,也是未来制造业的发展趋势。
1.2问题叙述
问题一:对题目中给出的问题进行分析,给出两种情况下的动态调度模型和相应的求解算法。
问题二:在已知表1参数的条件下,分别检验模型的实用性和算法的有效性,且给出第一问中模型的调度策略和该任务系统的作业效率,并将结果分别填入附件2中提供的表中。
- 问题假设
为了使问题得到简化容易求解,在考虑实际情况的条件下,做出以下合理假设:
假设一:人工维修后,CNC后续故障的发生概率不受先前维修的影响,在整个班次(8小时里)始终约为1% 。
假设二:CNC加工完成一个两道工序物料的第一道工序和第二道工序的时间间距不能过大。
假设三:本题目中所给出的数据真实可靠,且具有分析价值。
- 符号说明
符号 |
说明 |
tij |
表示第i |
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 |
注:其他符号将在下文中给出具体说明。
- 模型建立与求解
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移动的时间,同理t35
、t57
也是如此)如图5.1.1.2.1所示:
图5.1.1.2.1 t 时间对应关系图
同侧的CNC相邻两台的RGV运行时间是相同的,则RGV在给第一个CNC上料的位置决定着RGV的准备时间P 。
约束条件:
1' :上料前准备时间
ci=1 时,RGV处于CNC1号机位置,P=0
;ci=3
时RGV处于CNC3号机位置,P=t3
; ci=5
时,RGV处于CNC5号机位置,P=2t5
;ci=7
时,RGV处于CNC7号机位置,P=3t7
;即:
0,ci=1
t3 ,ci=3
P=
2t5 ,ci=5
3t7 ,ci=7
2' :最后一台CNC加工的结束时间
若使得最后一台CNC较早的结束,则应使最后一台CNC较早的开始;那么从初始时刻到最后一台CNC上料时间最短,为此我们引进图论加以证明。对于智能加工系统中的8台CNC,将其中每一台CNC看作一个点,即V=v1,v2,v3,⋯,v8 ,那么tij
则是vi
与vj
所构成边eij
的权值,即E=eij|1≤i,j≤8∪i≠j
;在此基础上,由G=V,E
可构成含权无向图,T
为图G
的权值矩阵,存在:
T=t11t12t21t22⋯t18⋯t28⋮⋮t81t82⋮⋮⋯t88
其中,tii=∞1≤i≤8 表示从CNCi
号机到CNCi
号机是不花费时间的,tij=tji1≤i,j≤8,且i≠j
表示图为含权无向图,由CNCi
号机到CNCj
号机的时间是相同的,tii+1=0(1≤i≤7,且i≡1(mod2))
表示序号相邻的两台CNC且初始CNC序号为奇数时的到达所需时间间隔为0,即不需要时间,其余的tij
则由条件t13=t35=t57=t
进行相应的变换得到。
情况2:<三段距离中存在两段RGV移动时间相同>t13=α,t35=t57=β (t13,t35,t57
的定义与上文中相同)。
对于RGV的运动而言,其中所需要经过相邻两台CNC之间的距离时相同的,若RGV的运动速度不同,则每段等距所需的时间时不同的。由于RGV运动的开始阶段是一个加速过程(模型中设定的猜测),若RGV持续运动,则接下来将保持匀速运动。与情况1相比,上料前的准备时间以及含权矩阵需要调整。
约束条件:
1' :上料前时间
ci=1 时,RGV处于CNC1号机位置,P=0
;ci=3
时RGV处于CNC3号机位置,P=α3
; ci=5
时,RGV处于CNC5号机位置,P=α+β5
;ci=7
时,RGV处于CNC7号机位置,P=α+2β7
;即:
0 , ci=1
α3 ,ci=3
P=
α+β5 ,ci=5
α+2β7 ,ci=7
2' :含权矩阵的调整
对于含权矩阵T 其中tii=∞1≤i≤8
,tij=tji1≤i,j≤8,且i≠j
,tii+1=0(1≤i≤7,且i≡1(mod2))
这三组符号所对应的元素是不会随RGV移动等距的时间变化而变化,只会由CNC的位置确定,其余元素则由t13=α,t35=t57=β
进行调整。
情况3:<三段路段中每段RGV移动时间都不同>t13=α,t35=β,t57=γ (t13,t35,t57
的定义与上文中相同)。
对于RGV的运动而言,经过相邻的等距路段速度可能是不同的,其中在每一段路段中都会存在一定的差异,会导致移动同距离所用时间是不同的,那么在情况2上进行一定的调整。
约束条件:
1' :上料前时间
ci=1 时,RGV处于CNC1号机位置,P=0
;ci=3
时RGV处于CNC3号机位置,P=α3
; ci=5
时,RGV处于CNC5号机位置,P=α+β5
;ci=7
时,RGV处于CNC7号机位置,P=α+β+γ7
;即:
0 , ci=1
α3 ,ci=3
P=
α+β5 ,ci=5
α+β+γ7 ,ci=7
2' :含权矩阵的调整
只对tii=∞1≤i≤8 ,tij=tji1≤i,j≤8,且i≠j
,tii+1=0(1≤i≤7,且i≡1(mod2))
之外的元素进行调整,且依据于t13=α,t35=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>tz 或tj<tz
,下面将对这两种特殊关系进行分析。
关系1 tj>tz:
由于初始时开始进行的位置无法确定,因此无法判断第一次操作是如何进行的,蛋壳通过初始结点进行确定:
0,初始进行上下料操作的是CNC偶数号机,i≡0(mod2)
i1%2=
- 初始进行上下料操作的是CNC奇数号机,i≡1(mod2)
若在第一轮运转中未发生请求信号冲突,那么在以后的运转过程中不会发生。
关系2 tj<tz:
一台CNC加工物料所需时间不足以支持剩余所有CNC所消耗的其他时间,则会出现多个CNC请求RGV操作,设定需求信号序列为h1,h1,⋯,hk (k<8
),再根据图论求出耗时序列为vi1,vi2,⋯,vi8
;设定下次的运行结点为d
,且d=hi(hi∈V',hi=vpi)
此时RGV所在CNC为vl
,则vl
后序列V'=vp1,vp2,⋯,vp8
, V'∈V
。[1]
目标函数为:minti1ti2⋯ti8+ti1ti8
约束条件:
i1 , i2
,⋯,i8∈V
tijtik ,j,k∈V, tijtik∈E
ti1ti2⋯ti8=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-PA1∙PA2∙⋯∙PA8-C81PA1∙PA2∙⋯∙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':D 在0,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 ,即生产序号在(nl,nl+lPt)
内不会发生故障,则需在nl+lPt,nl+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)
,则tij
为vi
与vj
所构成的边eij
的权值,即E2=eij|1≤i,j≤8∪i≠j∪i,j≠vi
,则由G=V2,E2
可构成含权无向图,T
为图G
的权值矩阵,那么T
:
T=t11t13⋯⋮⋮⋯ti-11ti-12⋮t1i⋯t1l⋯⋯t2l⋮⋮t3lti1ti1⋮⋯⋯⋯⋯⋮tl1tl1⋮⋯⋯t4l⋯⋯⋮⋮⋮tll
其中,tii=∞1≤i≤l ,tij=tji1≤i,j≤l
,tii+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 vi1vi2⋯vi7,t2=min vi1vi2⋯vi8 。
若想在有限时间内加工尽可能多的成料,则应使每次通过轮盘赌算法后得到能够使用的CNC在一定时间内产生的最多的成料,因为成料的生成包括无故障情况下CNC加工以及出故障后完整的CNC加工的成料,因此存在两个目标函数。
1' 正常生产成料的目标函数为:minti1ti2⋯ti8+ti1ti8
i1 , i2
,⋯,i8∈V
tijtik ,j,k∈V, tijtik∈E
ti1ti2⋯ti8=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 tvi1vi2⋯vi(i-1)vi(i-1)vil+ti1til
i1 , i2
,⋯,ii-1,ii+1,⋯,il∈V2
tijtik ,j,k∈V2, tijtik∈E2
ti1ti2⋯ti(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,且两种机器数量存在m1≤m2 和m1>m2
这两种情况,下面我们将对这两种情况进行讨论。
情况1:m1≤m2
此情况下进行第一道工序的CNC的数量多于进行第二道工序的CNC数量,则可根据初始等距CNC移动时间来调整含权矩阵T ,对于上料传送带旁的CNC进行描述RGV运行的耗时:t13=α,t35=β,t57=γ
。
对权值矩阵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,其余元素根据t13=α,t35=β,t57=γ
调整。
因为存在m1 个做第一道工序的CNC和m2
个做第二道工序的CNC,且如果想要m1
个做第一道工序的CNC以及第一道工序产生的半成品放到做第二道工序的CNC上的时间最短,那么我们需要从图中选取m1
个点代表做第一道工序的CNC和m2
个点代表做第二道工序的CNC。[3]那么存在m1=vi1vi2⋯vil
,m2=vk1vk2⋯vkj
,则目标函数为:
m1⊆V , m2⊆Vmin ti1ti2⋯tj1+tk1tk2+⋯+tjk
;
i1 , i2
,⋯,ij,k1,k2,⋯,kj且ijkj∈m2
tijtik ,j,k∈V, tijtik∈E
ti1ti2⋯tij=ti1ti2+ti2ti3+⋯+ti(j-1)tij
tk1tk2⋯tkj=tk1tk2+tk2tk3+⋯+tk(j-1)tkj
tCNCie<tCNCje 其中 tCNCis>tCNCjs
,i,j∈m1
,或i,j∈m2
S.T. replace1i,j,k, 其中i,j,k∈m1
replace2i,j,k, 其中i,j,k∈m2
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=vk1vk2⋯vkl
,由于m1>m2
,则m2
中的点是可以动态变化的。用m2/vk1
表示除去vk1
的集合,m2\vk1
表示除去vk1
的集合,m1⊆V
, m2⊆V
,则目标函数为:
minti1ti2⋯tim1+tiαti1+tiα+1ti2+⋯+tiα+m1tim1-m2+tiltim1-m2+1+⋯+tiltim2=ti1ti2⋯tim1+j=1m1tijtα'
i1 , i2
,⋯,im1∈m1,α,α+1,⋯,l∈m2
tijtik ,j,k∈V, tijtik∈E
ti1ti2⋯tim1=ti1ti2+ti2ti3+⋯+ti(m1-1)tim1
α+i∈m2/vα+i-1 ,且0≤i≤m1-m2
S.T. α∈m2vαvα+1⋯vα+m-1\vα ,且满足m1-m2≤i<m1
tCNCie<tCNCje 其中 tCNCis>tCNCjs
,i,j∈m1
,或i,j∈m2
replacei,j,k, 其中i,j,k∈m1
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=0
;ci=3
时RGV处于CNC3号机位置,P=α3
; ci=5
时,RGV处于CNC5号机位置,P=α+β5
;ci=7
时,RGV处于CNC7号机位置,P=α+β+γ7
;即:
0 , ci=1
α3 ,ci=3
P=
α+β5 ,ci=5
α+β+γ7 ,ci=7
2':物料对于加工位置的选取
初始化含权矩阵T ,其中tii=∞(1≤i≤8)
,tij=tji
, tii+1=δ(δ>0,1≤i≤7)
表示相邻两个被标记的CNC且初始上料传送带的CNC与其相对应的CNC存在一定的距离,矩阵T
的其余元素则根据t13=α,t35=β,t57=γ
进行调整。对于每个CNC是否空闲以及其所能完成二道工序之一的需要加标注,分别为B=B1,B2,⋯,B8
,G=G1,G2,⋯,G8
,存在关系如下:
0,表明第i 个CNC空闲 1,表明第i
个CNC做第一道工序
Bi= Gi=
- 表明第i
个CNC忙碌 2,表明第i
个CNC做第二道工序
若此刻处于vj 且第j
个CNC的操作完成,Gi
的值则决定下次索要寻找CNC所属的类型,并加以选取,从而求出当前耗时的最小值。所以存在三种情况,如下所示:
1': Gi=1
当前的CNC为做第一道工序的CNC,则物料的第一道工序完成后,需要进行第二道工序的加工。将vj 做为坐标原点,并分别以vjvl
为半径做圆,若Bl=1
或Gi=G
分别表示第l
台CNC处于忙碌状态,第l
台CNC与第j
台CNC的工序是相同的,存在min=tl=tα
,则:
tl ,l≡1(mod2)
min=
tα,α≡1(mod2)
2': Gi=2
表明当前的CNC为加工第二道工序的CNC,因物料的第二道工序做完,需要重修加入新的生料。将vj 做为坐标原点,并分别以vjvl
为半径做圆,寻找min d
,若Bl=1
或Gi=G
分别表示第l
台CNC处于忙碌状态,第l
台CNC与第j
台CNC的工序是相同的,存在min=tl=tα
,则:
tl ,l≡1(mod2)
min=
tα,α≡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 ti1tα ,α∈V且α≠i1
replacei,j,k, 其中i,j,k∈V
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
;否则Gl≠Gj
,其他相关值发生变化。
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-PA1PA2⋯PAα PB1PB2⋯PBβ-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':在0,1
内产生一个均有分布的随机数α
;
2':若α<q
,则n1
被选中;
3':若qk-1<α≤qk2≤k≤N
,则nk
被选中(其中qi
称为nii=1,2,⋯,N
的积累概率)。
在智能加工体系中,未发生故障的时间l ,产生的成料数为nc
。因为多台CNC同时发生故障的事件为小概率事件,所以不予计算。通过轮盘度算法找到的nl
,即在nl,nl+nc
内不会发生故障,则需在nl+nc,nl+nc+100
内按照上述建立的模型进行选取,直至nk+l
。
5.1.4.2.3故障发生后CNC工作路径以及修理时间的确定
CNC在某个时刻发生故障,则在以后的y 时间内无法运作,那么我们需要考虑剩余CNC的运作情况。因此,在y
时刻内可以存在含故障操作和无故障操作2种操作方式,进行优化后,存在目标函数为:
max c1+c2
0<ti1ti2⋯tiα<yi1,i2,⋯,ix∈V
0<tj1tj2⋯tjβ<600-yj1,j2,⋯,jβ∈V2
c1=ti1ti2⋯tiα
S.T. c2=tj1tj2⋯tjβ
ti1ti2⋯tiα=ti1ti2+ti2ti3+⋯+ti(α-1)tiα
tj1tj2⋯tjβ=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 ti1tα ,α∈V且α≠i1
replacei,j,k, 其中i,j,k∈V
tik , tij<tik
replacei,j,k=
tjk , tij>tik
2':含故障率情况下目标函数为:min maxc1,c2,⋯,cn=cn
i1 , i2
,⋯,in∈V2
tijtik ,j,k∈V2, tijtik∈E
cn=ti1ti2+ti2ti3+⋯+tin-1tin
S.T. ti1ti2=min ti1tα ,α∈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
;否则Gl≠Gj
,其他相关值发生变化。
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双工序作业效率曲线图
- 模型的评价和推广
6.1模型的评价
6.1.1模型的优点
(1)本文建立的单工序和多工序动态优化调度模型从需求信号和消耗时间的多少以及发生故障后的实际情况出发,研究了影响工件成料产量的因素是以CNC数量关系、位置关系为切入点并综合考虑生产实际情况。该模型与车间生产效率存在着紧密联系。
(2)在分析同一时间段CNC发生故障台数的可能性,结合实际情况并利用实际推断原理,排除了在某一CNC出现故障且在维修期间时,另外CNC继续出现故障的时间为小概率事件,在短时间内和有限次加工过程中是不可能发生的。模型不脱离实际。
6.1.2模型的缺点
(1)工件产量的影响变量时,可能忽略了某些重要因素的变量,使得不够大众化、一般化。
(2)在建立模型过程中,我们对加工过程出现的故障率理想化,忽视了人为因素对CNC造成的不可逆影响。
6.2模型的改进方向
(1)可以通过多组工件的参数值进行模拟仿真分析,以获得训练集,对于后续工件的参数进行训练得到CNC最佳位置关系和数量关系。
(2)在进行优化建模中,可以尝试用遗传算法、模拟退火算法、蚁群算法进行后续优化研究。