一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种带搬运机器人的柔性作业车间动态调度方法及装置

2022-06-12 00:33:37 来源:中国专利 TAG:


1.本发明涉及生产调度技术领域,具体涉及一种带搬运机器人的柔性作业车间动态调度方法及装置。


背景技术:

2.在制造业中,包括五金加工、3c产品制造、汽车制造等领域,柔性作业车间调度问题被广泛关注和研究。经典的柔性作业车间调度问题主要包括两个问题:如何对加工任务进行加工机器人的分配和如何确定同一加工机器人上任务的执行顺序。合理地利用车间有限的资源,实现有效的车间调度方法,对降低运营成本、提高生产效率、实现制造业现代化具有重大意义。
3.在上述制造业中,尤其是小批量、定制模块化生产模式中,一个作业车间中存在多种不同产品的加工链。毛坯在成为产品前,往往需要进行多道加工工艺,因此,一个毛坯必须经过多个加工机器人的加工。并且针对不同种类的产品需求,其加工工艺的种类和数量各异,导致其加工路线各不相同。
4.在这种复杂多变的生产环境中,人工进行加工机器人间的物料搬运会导致较高的人力成本和出错率,因此,采用搬运机器人代替人工搬运是解决此问题的有效手段。另一方面,车间生产过程中随时可能发生机器人故障、紧急订单到达等事件,如果不及时解决,会阻碍生产进度,甚至生产系统的崩溃,解决作业车间的动态调度问题有助于实现车间稳定生产。
5.柔性作业车间比经典作业车间具有更高的灵活性,工件的每道工序均存在多个可选的加工机器人。工件的加工过程需要在多个加工机器人上完成不同工序,需要搬运机器人承担工件在加工机器人间的运输任务,因此必须对加工机器人和搬运机器人进行集成调度,以合理利用资源并提高生产效率。在作业车间调度问题中,已经实现了涉及作业车间的柔性、加工和搬运的集成调度、以及包括订单完工时间、生产成本、设备利用率等方面的单目标或多目标优化调度等。然而,大多数研究中缺少实际生产中对机器人的电池容量和充电维护约束,以及机器人故障、紧急订单插入和部分订单撤销等动态事件的综合考虑。


技术实现要素:

6.有鉴于此,本发明提供了一种带搬运机器人的柔性作业车间动态调度方法及装置,能够解决现有技术未考虑搬运机器人的电池容量和充电维护的多种动态事件情况下的车间调度的技术问题。
7.本发明解决主要解决以下技术问题:
8.其一,车间生产中搬运机器人所载的电池容量是有限的,需要根据每个搬运机器人的实时剩余电量判断其是否前往充电桩充电,防止出现因电量不足而瘫痪的情况,保证车间环境道路通畅和正常的生产进度。
9.其二,实际生产车间中往往发生加工机器人故障、搬运机器人故障、订单紧急插入
和订单临时撤销等随机动态事件,发生动态事件后需要根据事件类型及时处理,并进行重新调度,以防影响车间生产效率和保证生产车间正常运行。
10.为了解决上述技术问题,本发明是这样实现的:
11.第一方面,本发明提供了一种带搬运机器人的柔性作业车间动态调度方法,所述方法包括:
12.步骤s1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
13.步骤s2:设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
14.步骤s3:基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
15.步骤s4:对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
16.步骤s5:判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值num;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,进入步骤s6;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,进入步骤s3;
17.步骤s6:基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,进入步骤s7;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则进入步骤s6;
18.步骤s7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理方式及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,进入步骤s2。
19.优选地,所述步骤s1中,包括:
20.步骤s11:针对待排产的作业车间,获取车间布局信息,所述车间布局信息包括车间定点元素的位置和相互距离,将获取的所述车间布局信息作为柔性作业车间的车间布局信息,所述车间定点元素包括加工机器人、搬运机器人充电桩、仓库;获取机器人信息,包括:获取加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c;
21.步骤s12:构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式,所述加工编码段、工序编码段以及搬运编码段自左向右均体现生产的先后顺序,且三个编码段长度相同,均为工序总数其中,oi为工件i所含工序数,1≤i≤n;
22.所述加工编码段的编码方式为:对于n个工件,每个工件均用一个子段表示,对任一子段:子段中的基因数为该工件的工序数加1,子段中的每个基因按工件的工序排列,末尾的基因代表一道工件在仓库成品区加工的虚拟工序,作为工件在加工完毕后被搬运到仓库成品区的步骤;子段中的各基因代表实现该工序的加工机器号;将n个子段按工件编号拼接,形成所述加工编码段;其中,基因是子段、编码段的最小单位;
23.所述搬运编码段的基因与所述工序编码段的基因一一对应,所述搬运编码段的基因表示与其对应的工序编码段中的基因的搬运机器人的编号;
24.步骤s13:构建使得订单完成时间最短的目标函数,即订单加工完成时间t为:
25.其中,ei为工件i的完工时间;
26.步骤s14:基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化。
27.优选地,所述带搬运机器人的柔性作业车间模型为:某柔性作业车间中有n个待加工工件j={j1,j2,

,ji…
,jn},工件ji中含有oi道工序o
ij
,其中i={1,2,

,n},j={1,2,

,oi},每个工件所含工序的加工顺序固定;含有m个加工机器人m={m1,m2,

,mk,
…mm
},每种加工机器人只能加工一种工艺,工件的每道工序o
ij
都存在多个具备相应加工能力的加工机器人;含有r个搬运机器人a={a1,a2,

,av,
…ar
},承担工件在仓库和各个加工机器人之间的运输任务,每项运输任务由取工件(搬运机器人从当前位置前往目标工件所在位置)和送工件(搬运机器人从目标工件所在位置前往该工件的目的地)两部分组成;含有h个位置固定的充电桩z={z1,z2,

,z
l
,

,zh},其中l={1,2,

,h}。
28.优选地,所述步骤s2:设置遗传算法参数,随机初始化染色体种群,包括:
29.步骤s21:设置染色体种群规模n、交叉概率gc、变异概率gm;
30.步骤s22:随机生成初始的染色体种群,所述染色体种群包括n个染色体,每个染色体均包括工序编码段、加工编码段和搬运编码段;其中,所述工序编码段根据工件数n及其各自所含工序数oi 1随机排序生成;所述加工编码段从每道工序的可选加工机器集中随机选择机器;所述搬运编码段根据搬运机器人数量均匀分配任务。
31.优选地,所述步骤s4,包括:
32.步骤s41:从所述当前待优化染色体种群中获取适应度最大的个体作为变邻域搜索的初始个体,获取当前迭代次数num0;将所述初始个体作为基础个体;
33.步骤s42:设定变邻域搜索的邻域结构总数为k,当前已遍历过的邻域结构数量为j,并设置j的初值为0;邻域步长为对所述变邻域搜索的基础个体执行同一种邻域结构的连续搜索次数;设定在任一邻域结构的每种邻域步长中对染色体的总评价次数的最大值为ns;
34.步骤s43:若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述加工编码段邻域结构为在该编码段中选择一个基因,将此基因所代表的工序的加工机器人替换,可选的替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域
结构共有7种,7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构彼此之间不存在约束关系;进入步骤s44;
35.若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述的加工编码段邻域结构为在该编码段中选择一个基因,将此基因代表的工序的加工机器人进行替换,替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段、搬运编码段所涉及的4种邻域结构分别进行独立的邻域搜索,所述工序编码段的3种邻域结构均加入了约束条件;所述约束条件为工序编码段进行邻域搜索时,搬运编码段跟随工序编码段同步动作,搬运编码段单独进行邻域搜索时,工序编码段不会同步动作;7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;进入步骤s44;
36.所述加工编码段邻域的生成方式为:获取所述变邻域搜索的基础个体的加工编码段;对所述变邻域搜索的初始个体的加工编码段执行以下操作:固定工序编码段和搬运编码段不变,选择任一变邻域搜索的基础个体的加工编码段的其中一个基因,将此基因所代表的工序的加工机器人进行替换,可选的替换集合为该工序的可选加工机器人集合;对上述邻域结构完成一次上述邻域搜索定义为邻域步长为1;
37.所述工序编码段的重定位邻域结构指随机选中基础个体的工序编码段中的一个基因并将其取出,固定所述工序编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述工序编码段中的其他位置;所述工序编码段的双互换邻域结构指随机选中基础个体的工序编码段中的两个基因并交换其位置,所述工序编码段中的其他基因的相对位置和顺序不变;所述工序编码段的定点翻转邻域结构指在基础个体的工序编码段中选中一段非固定长度的子工序编码段,将所述子工序编码段中所含基因进行位置前后颠倒,并重新插入到所述工序编码段中,插入位置与所述子工序编码段的取出位置相同;对上述任一种邻域结构完成一次邻域搜索定义为邻域步长为1;
38.所述搬运编码段的重定位邻域结构指随机选中基础个体的搬运编码段中的一个基因并将其取出,固定所述搬运编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述搬运编码段中的其他位置;所述搬运编码段的双互换邻域结构指随机选中基础个体的搬运编码段中的两个基因并交换其位置,所述搬运编码段中的其他基因的相对位置和顺序不变;所述搬运编码段的定点翻转邻域结构指在基础个体的搬运编码段中选中一段非固定长度的子搬运编码段,将所述子搬运编码段中所含基因进行位置前后颠倒,并重新插入到所述搬运编码段中,插入位置与所述子搬运编码段的取出位置相同;对上述任一种邻域结构完成一次邻域搜索定义为邻域步长为1;
39.步骤s44:随机选择一种未搜索过的邻域结构作为搜索结构,已遍历的邻域数量结构数量j赋值为j加1;设定邻域步长step的最大值为max,邻域步长step的初值为1,所述的邻域步长step为1指新的染色体由对所述变邻域搜索的基础个体执行1次所选的邻域搜索结构算子而得到;设定当前邻域步长下该邻域结构的染色体评价次数为lk,并设置lk的初值为0,进入步骤s45;
40.步骤s45:将所述变邻域搜索的基础个体执行step次所述搜索结构,得到新的染色体,并对所述的新染色体进行适应度评价,染色体评价次数lk赋值为lk加1;若新染色体的适应度大于所述基础个体的适应度值,即新染色体为更优个体,则将所述更优个体作为基础个体,进入步骤s42;否则,进入步骤s46;
41.步骤s46:若染色体评价次数lk未达到所述设定的总评价次数ns时,进入步骤s45;否则扩大邻域步长step,将邻域步长step赋值为step加1,若此时step的值不大于max,设置当前邻域步长下该邻域结构的染色体评价次数lk为0,进入步骤s45;否则进入步骤s47;
42.步骤s47:若已遍历的邻域结构数量j不大于邻域结构总数k,即存在未搜索过的邻域结构,进入步骤s44;否则,进入步骤s48;
43.步骤s48:结束局部搜索,以变邻域搜索中找到的最优个体,即所述变邻域搜索中的当前基础个体,替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群。
44.优选地,所述步骤s7,包括:
45.若动态事件类型为加工机器人故障,即在t
mb
时刻发生加工机器人故障,对于未发生故障的加工机器人,若t
mb
时刻处于空闲状态,则其最早重调度时间为t
mb
,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于故障加工机器人,故障时刻立即被迫停止运行,进入维修状态,其最早重调度时间为维修完毕时刻,其正在加工的工件报废,需要在重调度后从仓库取料重新加工;对于未发生故障的搬运机器人,若t
mb
时刻处于静止停靠状态,则其最早重调度时间为t
mb
,若搬运机器人正在行驶途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
46.若动态事件类型为搬运机器人故障:在t
vb
时刻发生搬运机器人故障,对于正常运行的加工机器人,若t
vb
时刻处于空闲状态,则其最早重调度时间为t
vb
,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于未发生故障的搬运机器人,若t
vb
时刻处于静止停靠状态,则其最早重调度时间为t
vb
,若搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;对于故障搬运机器人,若t
vb
时刻处于静止停靠状态,则立即前往维修,若处于行驶途中,则需要在协助下到达本次行驶的目的地并卸下所搬运的工件后前往维修,最早重调度时间为维修完毕时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
47.若动态事件类型为订单紧急插入:在t
os
时刻插入订单,将紧急插入的订单和原订单中的未加工部分合成为一个新订单,对于正常运行的加工机器人,若t
os
时刻处于空闲状
态,则其最早重调度时间为t
os
,若t
os
时刻加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若t
os
时刻处于静止停靠状态,则其最早重调度时间为t
os
,若t
os
时刻搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
48.若动态事件类型为订单临时撤销:若t
oc
时刻撤销部分订单,若被撤销的工件正在被加工机器人加工,则立即停止加工并废弃,若其正在被搬运机器人运输的途中,则到达目的地后废弃;对于正常运行的加工机器人,若t
oc
时刻处于空闲状态,则其最早重调度时间为t
oc
,若t
oc
时刻加工机器人正在加工被撤销的工件,则立即停止加工,重调度时间为t
oc
,若t
oc
时刻加工机器人正在加工正常工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若t
oc
时刻处于静止停靠状态,则其最早重调度时间为t
oc
,若t
oc
时刻搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量。
49.第二方面,本发明提供了一种带搬运机器人的柔性作业车间动态调度装置,所述装置包括:
50.信息获取模块:配置为获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
51.初始化模块:配置为设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
52.第一选择模块:配置为基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
53.第二选择模块:配置为对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
54.判断模块:配置为判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值num;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,触发监听模块;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,触发第一选择模块;
55.监听模块:配置为基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,触发调整模块;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则触发监听模块;
56.调整模块:配置为根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,触发初始化模块。
57.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上所述的带搬运机器人的柔性作业车间动态调度方法。
58.有益效果:
59.本发明考虑了搬运机器人的电池容量和充电维护,能够实现多种动态事件下的柔性作业车间重调度。本发明采用了基于遗传算法和变邻域搜索的文化基因算法,通过遗传算法,在种群中进行选择、交叉、变异等操作于整个解空间中进行全局搜索,通过变步长的多邻域结构的变邻域搜索算法,在遗传算法取得的最优解基础上采用多种邻域算子进行局部的深度搜索,从而克服了全局搜索收敛速度慢、局部搜索易于陷入局部最优解的缺点。
附图说明
60.图1示出了本公开的含有可充电搬运机器人的动态集成柔性作业车间调度的车间示意图;
61.图2示出了本公开的带搬运机器人的动态柔性作业车间调度方法的流程示意图;
62.图3示出了本公开的柔性作业车间三段式编码示意图;
63.图4示出了本公开的基于三段式编码的染色体交叉操作图;
64.图5示出了本公开的基于三段式编码的染色体变异操作图;
65.图6示出了本公开的基于三段式编码的邻域结构示意图;
66.图7示出了根据本公开的实施例1的初始调度甘特图;
67.图8示出了根据本公开的实施例1的加工机器人故障的重调度甘特图;
68.图9示出了根据本公开的实施例1的搬运机器人故障的重调度甘特图;
69.图10示出了根据本公开的实施例1的订单紧急插入的重调度甘特图;
70.图11示出了根据本公开的实施例1的订单临时撤销的重调度甘特图。
具体实施方式
71.下面结合附图和实施例,对本发明进行详细描述。
72.如图1所示,柔性作业车间工作方式为:初始时刻,加工车间中接到一批订单,订单中的工件原料和搬运机器人均位于仓库的原料区,根据调度结果,搬运机器人将工件从原料区运输到其第一道工序的加工机器人处,本工序加工完成后,再由搬运机器人将其运输到第二工序的加工机器人处,直到所有工序完成后,搬运机器人将其搬运回仓库成品区,搬运机器人每次执行任务前检测电池剩余电量,当预测剩余电量将无法完成本搬运任务,并
无法在完成任务后到达充电桩充电时,先充电再执行本任务,订单中所有工件全部加工完毕并到达仓库成品区后,工作结束。
73.如图2所示,本发明一种带搬运机器人的柔性作业车间动态调度方法,包括以下步骤:
74.步骤s1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
75.步骤s2:设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
76.步骤s3:基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
77.步骤s4:对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
78.步骤s5:判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值num;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,进入步骤s6;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,进入步骤s3;
79.步骤s6:基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,进入步骤s7;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则进入步骤s6;
80.步骤s7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,进入步骤s2。
81.所述步骤s1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化,包括:
82.步骤s11:针对待排产的作业车间,获取车间布局信息,所述车间布局信息包括车间定点元素的位置和相互距离,将获取的所述车间布局信息作为柔性作业车间的车间布局信息,所述车间定点元素包括加工机器人、搬运机器人充电桩、仓库;获取机器人信息,包括:获取加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c。
83.本实施例中,所述柔性车间为每道工序具有多个对其进行加工的加工机器人;所述加工机器人工艺加工能力为每种加工机器人只能加工一种工艺。所述机器人信息包括加
工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池各项指标;所述搬运机器人电池各项指标包括电池最大容量、电池空载放电参数、电池单位重量带载放电参数、电池充电速率参数和电池剩余电量值;所述订单信息包括待加工工件的数量、每个工件所含工序的数量及其加工顺序、每道工序的可选加工机器及其加工时间。
84.步骤s12:构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式,所述加工编码段、工序编码段以及搬运编码段自左向右均体现生产的先后顺序,且三个编码段长度相同,均为工序总数其中,n为工件总数,oi为工件i所含工序数,1≤i≤n;
85.所述加工编码段的编码方式为:对于n个工件,每个工件均用一个子段表示,对任一子段:子段中的基因数为该工件的工序数加1,子段中的每个基因按工件的工序排列,末尾的基因代表一道工件在仓库成品区加工的虚拟工序,作为工件在加工完毕后被搬运到仓库成品区的步骤;子段中的各基因代表实现该工序的加工机器号;将n个子段按工件编号拼接,形成所述加工编码段;其中,基因是子段、编码段的最小单位;
86.所述工序编码段基于工序进行编码,所述工序编码段的各基因内容的取值范围为[1,n],基因中的数字表示工件序号;在所述工序编码段中,对每一个基因,自左向右统计基因中的数字出现的次数time,表示该数字对应的工件的第time道工序;
[0087]
本实施例中,例如,工序编码段的第1次出现的数字“2”即代表工件2的第一道工序。
[0088]
所述搬运编码段的基因与所述工序编码段的基因一一对应,所述搬运编码段的基因表示与其对应的工序编码段中的基因的搬运机器人的编号。
[0089]
本实施例中,如图3所示,搬运编码段的第4个数字即代表1号搬运机器人负责工件3的第一道工序。在初始时刻,待加工工件和搬运机器人均位于仓库原料区,加工完毕后运至仓库成品区。
[0090]
步骤s13:构建使得订单完成时间最短的目标函数,即订单加工完成时间t为:
[0091]
其中,ei为工件i的完工时间;
[0092]
本实施例中,以订单加工完成时间最小化为目标。
[0093]
步骤s14:基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化。
[0094]
本实施例中,基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对待求解的带搬运机器人的柔性作业车间模型的车间布局参数、机器人参数、订单参数进行初始化。所述车间布局参数包括:加工机器人、搬运机器人充电桩、仓库的位置和相互距离;所述机器人参数包括:加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c;所述订单参数包括待加工工件的数量、每个工件的初始位置、每个工件所含工序的数量及每个工件的加工顺序、每道工序的可选加工机器及其加工时间。
[0095]
本实施例中,所述带搬运机器人的柔性作业车间模型为:某柔性作业车间中有n个待加工工件j={j1,j2,

,ji…
,jn},工件ji中含有oi道工序o
ij
,其中i={1,2,

,n},j={1,2,

,oi},每个工件所含工序的加工顺序固定;含有m个加工机器人m={m1,m2,

,mk,
…mm
},每种加工机器人只能加工一种工艺,工件的每道工序o
ij
都存在多个具备相应加工能力的加工机器人;含有r个搬运机器人a={a1,a2,

,av,
…ar
},承担工件在仓库和各个加工机器人之间的运输任务,每项运输任务由取工件(搬运机器人从当前位置前往目标工件所在位置)和送工件(搬运机器人从目标工件所在位置前往该工件的目的地)两部分组成;含有h个位置固定的充电桩z={z1,z2,

,z
l
,

,zh},其中l={1,2,

,h}。
[0096]
进一步地,本发明根据搬运机器人的当前电量决定其执行放电与充电行为,放电过程及充电过程分别为:
[0097]
放电过程:由于搬运机器人的运行速率恒定,因此其放电量与运行时间成正比,其放电过程表示为c=c
0-(b am0)t,其中,b为空载基础放电系数,m0为所搬运的工件重量,b am0为带载放电系数,c0为电池容量,t为搬运机器人每次带载或空载的运行时间,c为电池当前实际电量。搬运机器人静止停靠时,耗电量极小,可忽略不计。
[0098]
充电过程:搬运机器人充电时长tc与电池容量c0、电池当前实际电量c和充电速率vc有关,即tc=(c
0-c)/vc,充满电后自动停止充电,搬运机器人立即从充电桩处投入使用;
[0099]
充电与放电过程的转换由搬运机器人的剩余电量决定:搬运机器人执行任务前需要对当前剩余电量c进行检测和判断,根据搬运机器人自身位置pv、本项任务中工件当前位置p
no
、工件重量mo、工件目的地p
ao
以及距离工件目的地最近充电桩的位置pc信息,得到取工件(从pv到p
no
)的运行时间tq、送工件(从p
no
到p
ao
)的运行时间ts,到达最近充电桩(从p
ao
到pc)的运行时间t
p
,从而计算出执行本项任务并且到达充电桩的所需电量c
sum
=btq dts bt
p
,其中d=b amo为带载放电系数;若搬运机器人剩余电量c大于所需电量c
sum
,则执行此项运输任务,否则搬运机器人判断距自身当前位置最近的充电桩,并前往充电,充满电后再执行此任务。
[0100]
所述步骤s2:设置遗传算法参数,随机初始化染色体种群,包括:
[0101]
步骤s21:设置染色体种群规模n、交叉概率gc、变异概率gm;
[0102]
步骤s22:随机生成初始的染色体种群,所述染色体种群包括n个染色体,每个染色体均包括工序编码段、加工编码段和搬运编码段;其中,所述工序编码段根据工件数n及其各自所含工序数oi 1随机排序生成;所述加工编码段从每道工序的可选加工机器集中随机选择机器;所述搬运编码段根据搬运机器人数量均匀分配任务。
[0103]
所述步骤s3:所述基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,包括:
[0104]
步骤s31:设置染色体个体的适应度函数为f(x)=m-h(x),其中,f(x)表示个体的适应度,h(x)表示订单完成时间,m为当所有工序加工时间均取最大加工时间且所有运输时间均取最大运输时间时的订单完成时间;
[0105]
本实施例中,订单完成时间越短,个体的适应度越大。
[0106]
步骤s32:采用轮盘赌法将整个染色体种群的适应度归一化,每个染色体个体适应度所占的比例作为其被选中的概率,即适应度越大的染色体被选中的可能性越大,所述轮盘赌法包括:
[0107]
步骤s321:计算包含n个染色体个体的染色体种群适应度累加和其中,fi(x)为第i个染色体个体的适应度;
[0108]
步骤s322:计算每个染色体个体的适应度占染色体种群适应度累加和的比例ri=fi(x)/f
sum
,i=1,2,

,n;
[0109]
本实施例中,例如,根据染色体种群适应度累加和,求得每个染色体所占种群适应度的比例,依次计算每个染色体的累加适应度比例,例如对于包括三个染色体种群,三个个体的适应度比例分别为0.2、0.5和0.3,则累加适应度比例分别为(0,0.2),(0.2,0.7)和(0.7,1)。
[0110]
步骤s323:然后根据随机产生的(0,1)内的随机数有放回地选择个体,直到选中的个体数量达到种群规模为止,得到基于轮盘赌法获得的父代个体。
[0111]
步骤s33:采用精英选择法获取若干精英染色体个体,并将所述若干精英染色体个体替换基于轮盘赌法获得的父代个体中的部分染色体个体,得到基于轮盘赌法和精英选择法确定的父代个体,由所述基于轮盘赌法和精英选择法确定的父代个体组成的群体记为优选父代集群;
[0112]
所述步骤s33,包括:
[0113]
步骤s331:设置精英种群规模ne;
[0114]
步骤s332:基于个体适应度值,确定所述基于轮盘赌法获得的父代个体中最差的1/10作为待替换个体,将所述待替换个体替换为精英种群中的个体;替换的方式为:获取一个待替换个体,采用随机方式从精英种群中可放回地选出一个精英个体进行替换,直至全部待替换个体替换完成。
[0115]
本实施例中,每次种群迭代中,都将当前代适应度最大的个体复制到精英种群中;若加入某代最优个体后,种群数量超过固定容量ne,则淘汰掉精英种群中适应度最差的个体。
[0116]
步骤s34:对所述优选父代集群,以交叉概率gc进行父代个体两两交叉,其中,所述工序编码段采用优先操作交叉算子,所述加工编码段和搬运编码段采均采用二值随机交叉算子;所述优先操作交叉算子为将工序编码段按照工件编号随机分为两个非空工件子集,两个父代染色体均保留同一工件子集所含的基因的内容和位置不变,并按照从左到右的顺序依次交换另一工件子集所包含的基因的内容;所述二值随机交叉算子为生成一条和加工编码段或搬运编码段长度相同的编码段,新生成的编码段和所述加工编码段或搬运编码段的基因按位置一一对应,将新生成的编码段中每个基因内容随机填充数字0或1,得到一条随机二值序列,将所述编码段中字符为0的基因所对应的编码段的基因内容固定,将所述编码段中字符为1的基因所对应的基因内容交叉;
[0117]
如图4所示,所述优先操作交叉算子的操作过程为:鉴于工序编码段每个基因中的数字均为工件编号,将父代染色体中工序编码段按照工件编号随机分为两个非空工件子集j1和j2,图4中工件子集j1为工件编号为{2,4}的工序集合,工件子集j2为工件编号为{1,3}的工序集合,将两个父代染色体中工件子集j1所包含的所有基因内容和位置固定不变,删掉工件子集j2所包含的所有基因,则工序编码段中出现对应的空白位置,然后将第一个父代染色体的工件子集j2的基因,按照在第一个父代染色体中从左到右的原顺序,同样地按
从左到右的顺序依次插入到第二个父代染色体的工序编码段的空白位置,接着将第二个父代染色体的工件子集j2的基因,按照在第二个父代染色体中从左到右的原顺序,同样地按从左到右的顺序依次插入到第一个父代染色体的工序编码段的空白位置,从而得到两个新的工序编码段;所述二值随机交叉算子的操作过程为:选取优选父代集群中的两条染色体个体作为待交叉染色体,并生成一条与染色体个体的加工编码段或搬运编码段长度相等的编码段;若进行加工编码段的交叉操作,则该二值随机交叉算子为加工编码二值随机交叉算子,该编码段的每个基因分别与所述加工编码段的基因一一对应,为该编码段随机生成一个由0和1组成的二值序列,二值序列的每个字符放置于所述编码段的一个基因中;对于所述待交叉染色体,将所述编码段中字符为0的基因对应的加工编码段的基因中的内容固定,将所述编码段中字符为1的基因对应的加工编码段的基因中的内容交叉;若进行搬运编码段的交叉操作,则该二值随机交叉算子为搬运编码二值随机交叉算子,该编码段的基因分别与所述搬运编码段的基因一一对应,为该编码段随机生成一个由0和1组成的二值序列,二值序列的每个字符放置于所述编码段的一个基因中;对于所述待交叉染色体,将所述编码段中字符为0的基因所对应的搬运编码段的基因中的内容固定,将所述编码段中字符为1的基因所对应的搬运编码段的基因中的内容交叉。
[0118]
本实施例通过上述加工编码二值随机交叉算子、搬运编码二值随机交叉算子,能够保证加工编码段和搬运编码段中各个机器人承担的任务数量可变。
[0119]
步骤s35:对交叉操作后得到的优选父代集群,以变异概率gm选择变异个体,进行变异操作;变异方式为:所述工序编码段和所述搬运编码段的变异方式均为随机交换两个基因的位置;所述加工编码段的变异方式为随机选中某个基因,在该基因所代表工序的可选加工机器人集合中选择一个加工机器人进行随机替换;得到所述当前待优化染色体种群,所述当前待优化染色体种群包括:部分基于轮盘赌法和精英选择法确定的优选父代集群染色体、部分优选父代集群染色体经过交叉操作后得到的新染色体、部分优选父代集群染色体经过变异操作后得到的新染色体以及部分优选父代集群染色体经过交叉和变异操作后得到的新染色体。变异方式如图5所示。
[0120]
所述步骤s4:对所述当前待优化染色体种群进行局部搜索,即通过变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群,包括:
[0121]
步骤s41:从所述当前待优化染色体种群中获取适应度最大的个体作为变邻域搜索的初始个体,获取当前迭代次数num0;将所述初始个体作为基础个体;
[0122]
步骤s42:设定变邻域搜索的邻域结构总数为k,当前已遍历过的邻域结构数量为j,并设置j的初值为0;邻域步长为对所述变邻域搜索的基础个体执行同一种邻域结构的连续搜索次数;设定在任一邻域结构的每种邻域步长中对染色体的总评价次数的最大值为ns;
[0123]
步骤s43:若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述加工编码段邻域结构为在该编码段中选择一个基因,将此基因所代表的工序的加工机器人替换,可选的替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结
构和定点翻转邻域结构;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构共有7种,上述7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构彼此之间不存在约束关系;进入步骤s44;
[0124]
若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述的加工编码段邻域结构为在该编码段中选择一个基因,将此基因代表的工序的加工机器人进行替换,替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段、搬运编码段所涉及的4种邻域结构分别进行独立的邻域搜索,所述工序编码段的3种邻域结构均加入了约束条件;所述约束条件为工序编码段进行邻域搜索时,搬运编码段跟随工序编码段同步动作,搬运编码段单独进行邻域搜索时,工序编码段不会同步动作;所述7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;进入步骤s44;
[0125]
所述邻域搜索是一种基于个体的局部搜索算法,其指以当前解为基础,采用某种算子搜索当前解的邻域;所述的邻域是在当前解的编码基础上采用算子所定义的规则进行改动而得到的多个邻域解的集合。
[0126]
所述加工编码段邻域的生成方式为:获取所述变邻域搜索的基础个体的加工编码段;对所述变邻域搜索的初始个体的加工编码段执行以下操作:固定工序编码段和搬运编码段不变,选择任一变邻域搜索的基础个体的加工编码段的其中一个基因,将此基因所代表的工序的加工机器人进行替换,可选的替换集合为该工序的可选加工机器人集合;完成一次上述邻域搜索定义为邻域步长为1。
[0127]
所述工序编码段邻域的生成方式为:固定加工编码段和搬运编码段不变,对所述变邻域搜索的基础个体的工序编码段能够采用如下三种邻域结构进行变换,分别是重定位邻域结构、双互换邻域结构和定点翻转邻域结构。如图6所示,重定位邻域结构指随机选中基础个体的工序编码段中的一个基因并将其取出,固定所述工序编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述工序编码段中的其他位置;双互换邻域结构指随机选中基础个体的工序编码段中的两个基因并交换其位置,所述工序编码段中的其他基因的相对位置和顺序不变;定点翻转邻域结构指在基础个体的工序编码段中选中一段非固定长度的子工序编码段,将所述子工序编码段中所含基因进行位置前后颠倒,并重新插入到所述工序编码段中,插入位置与所述子工序编码段的取出位置相同;完成一次上述任一种邻域搜索定义为邻域步长为1。
[0128]
所述搬运编码段邻域的生成方式为:固定加工编码段和工序编码段不变,对所述变邻域搜索的基础个体的搬运编码段能够采用如下三种邻域结构进行变换,分别是重定位邻域结构、双互换邻域结构和定点翻转邻域结构。如图6所示,重定位邻域结构指随机选中基础个体的搬运编码段中的一个基因并将其取出,固定所述搬运编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述搬运编码段中的其他位置;双互换邻域结构指随机选中基础个体的搬运编码段中的两个基因并交换其位置,所述搬运编码段中的其他基因的相对位置和顺序不变;定点翻转邻域结构指在基础个体的搬运编码段中选中一段非
固定长度的子搬运编码段,将所述子搬运编码段中所含基因进行位置前后颠倒,并重新插入到所述搬运编码段中,插入位置与所述子搬运编码段的取出位置相同;完成一次上述任一种邻域搜索定义为邻域步长为1。
[0129]
步骤s44:随机选择一种未搜索过的邻域结构作为搜索结构,已遍历的邻域数量结构数量j赋值为j加1;设定邻域步长step的最大值为max,邻域步长step的初值为1,所述的邻域步长step为1指新的染色体由对所述变邻域搜索的基础个体执行1次所选的邻域搜索结构算子而得到;设定当前邻域步长下该邻域结构的染色体评价次数为lk,并设置lk的初值为0,进入步骤s45;
[0130]
步骤s45:将所述变邻域搜索的基础个体执行step次所述搜索结构,得到新的染色体,并对所述的新染色体进行适应度评价,染色体评价次数lk赋值为lk加1;若新染色体的适应度大于所述基础个体的适应度值,即新染色体为更优个体,则将所述更优个体作为基础个体,进入步骤s42;否则,进入步骤s46;
[0131]
步骤s46:若染色体评价次数lk未达到所述设定的总评价次数ns时,进入步骤s45,否则扩大邻域步长step,将邻域步长step赋值为step加1,若此时step的值不大于max,设置当前邻域步长下该邻域结构的染色体评价次数lk为0,进入步骤s45;否则进入步骤s47;
[0132]
步骤s47:若已遍历的邻域结构数量j不大于邻域结构总数k,即存在未搜索过的邻域结构,进入步骤s44;否则,进入步骤s48;
[0133]
步骤s48:结束局部搜索,以变邻域搜索中找到的最优个体,即所述变邻域搜索中的当前基础个体,替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群。
[0134]
所述步骤s7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,其中:处理方式是指得到事件发生时的车间各个资源状态(如加工机器人正在加工某工件的某工序,搬运机器人此时正在充电等),以及应对策略(如发生故障的加工机器人需要在维修完毕后才能重新指派加工任务等)。修正策略指:根据车间生产的连续性,正常运行的加工机器人或搬运机器人在发生事件时刻,不能中止其工作,需要待其加工完毕当前正在加工的工件;运行在道路上的搬运机器人到达此次搬运任务的目的地后,才能重新开始调度,即修正加工和搬运机器人的重调度的最早可利用时间和初始位置。
[0135]
所述步骤s7,包括:
[0136]
若动态事件类型为加工机器人故障,即在t
mb
时刻发生加工机器人故障,对于未发生故障的加工机器人,若t
mb
时刻处于空闲状态,则其最早重调度时间为t
mb
,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于故障加工机器人,故障时刻立即被迫停止运行,进入维修状态,其最早重调度时间为维修完毕时刻,其正在加工的工件报废,需要在重调度后从仓库取料重新加工;对于未发生故障的搬运机器人,若t
mb
时刻处于静止停靠状态,则其最早重调度时间为t
mb
,若搬运机器人正在行驶途中(取工件/送工件/前往充电点)或正在充电,则其最
早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
[0137]
若动态事件类型为搬运机器人故障:在t
vb
时刻发生搬运机器人故障,对于正常运行的加工机器人,若t
vb
时刻处于空闲状态,则其最早重调度时间为t
vb
,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于未发生故障的搬运机器人,若t
vb
时刻处于静止停靠状态,则其最早重调度时间为t
vb
,若搬运机器人正在行驶路途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;对于故障搬运机器人,若t
vb
时刻处于静止停靠状态,则立即前往维修,若处于行驶途中,则需要在协助下到达本次行驶的目的地并卸下所搬运的工件后前往维修,最早重调度时间为维修完毕时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
[0138]
若动态事件类型为订单紧急插入:在t
os
时刻插入订单,将紧急插入的订单和原订单中的未加工部分合成为一个新订单,对于正常运行的加工机器人,若t
os
时刻处于空闲状态,则其最早重调度时间为t
os
,若t
os
时刻加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若t
os
时刻处于静止停靠状态,则其最早重调度时间为t
os
,若t
os
时刻搬运机器人正在行驶路途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
[0139]
若动态事件类型为订单临时撤销:若t
oc
时刻撤销部分订单,若被撤销的工件正在被加工机器人加工,则立即停止加工并废弃,若其正在被搬运机器人运输的途中,则到达目的地后废弃;对于正常运行的加工机器人,若t
oc
时刻处于空闲状态,则其最早重调度时间为t
oc
,若t
oc
时刻加工机器人正在加工被撤销的工件,则立即停止加工,重调度时间为t
oc
,若t
oc
时刻加工机器人正在加工正常工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若t
oc
时刻处于静止停靠状态,则其最早重调度时间为t
oc
,若t
oc
时刻搬运机器人正在行驶路途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部
分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量。
[0140]
本实施例中,得到包括工件、加工机器人、搬运机器人在内的整个车间的修正后状态信息和订单信息:工件的当前位置和未完成的工序、加工机器人的最早重调度时刻、搬运机器人的当前位置和最早重调度时刻,将以上信息作为初始状态,再进行新的寻优。
[0141]
实施例1:
[0142]
实施例1的柔性作业车间中,含有6个工件、6个加工机器人、3个搬运机器人、1个仓库和2个充电桩,订单信息如表1所示,单位为分钟。车间布局距离信息如表2所示。搬运机器人电池信息如表3所示。其中,表中“m”表示加工机器人,“c”表示充电桩。文化基因算法的参数设置如下:种群规模为60,交叉概率为0.95,变异概率为0.05,邻域搜索步长为2。
[0143]
表1订单信息
[0144][0145][0146]
表2车间布局距离信息
[0147][0148]
表3搬运机器人电池信息
[0149][0150]
本实例的初始调度运行时间设定为3分钟,发生动态事件后的重调度运行时间设定为5秒。其中,加工机器人故障发生时间为10:00,其维修时长为20分钟;搬运机器人故障发生时间为12:00,其维修时长为10分钟;订单紧急插入时间为8:00,插入工件7;订单临时撤销时间为15:00,被撤销的订单为工件3。初始调度甘特图如图7所示,图8-11依次分别为加工机器人故障、搬运机器人故障、订单紧急插入(插入7号工件)和订单临时撤销(撤销3号工件)的重调度甘特图。其中,图中“x-x”表示“工件号-工序号”;“v”表示搬运机器人,搬运机器人中填充矩形表示带载过程,未填充矩形表示空载过程;“c”表示充电过程,并且其后标号为充电桩标号;重调度甘特图中左侧黑色填充部分为重调度前的车间生产过程。
[0151]
实施例2:
[0152]
为了进一步验证本发明中算法和策略的可行性与优越性,采用较大规模的标准算例mk09进行实验,算例中工件数量为20,加工机器人数量为10,搬运机器人数量为9,算法参数与实例一相同。故障时间均设为车间生产到100分钟时,故障加工机器人为1号机器人,故障搬运机器人为3号机器人,维修时长分别设为20分钟和10分钟。初始调度运行时间为3分钟,重调度的运行时间均为5秒,相比于初始调度,重调度订单完成时间的平均延迟率adr为:其中,ti为初始调度订单完成时间,t
re
为重调度订单完成时间。
[0153]
对动态事件中加工机器人故障和搬运机器人故障的重调度分别进行20次实验,运行结果如下表4所示:
[0154]
表4重调度运行结果
[0155][0156]
通过以上数据可以得到,在重调度运行时间短到可以忽略不计并且不间断生产的情况下,与初始调度相比,故障发生后,重调度的订单完成时间延迟率较低,即加工机器人
和搬运机器人的故障重调度的平均订单完成时间延迟百分比分别为5.9%和5.7%,验证了本发明中针对所述问题的算法和策略的可行性和优越性。
[0157]
本发明还提供了一种带搬运机器人的柔性作业车间动态调度的装置,所述装置包括:
[0158]
信息获取模块:配置为获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
[0159]
初始化模块:配置为设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
[0160]
第一选择模块:配置为基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
[0161]
第二选择模块:配置为对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
[0162]
判断模块:配置为判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值num;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,触发监听模块;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,触发第一选择模块;
[0163]
监听模块:配置为基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,触发调整模块;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则触发监听模块;
[0164]
调整模块:配置为根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,触发初始化模块。
[0165]
本发明实施例还提供了一种计算机可读存储介质,所述的计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述带搬运机器人的柔性作业车间动态调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0166]
以上的具体实施例仅描述了本发明的设计原理,该描述中的部件形状,名称可以不同,不受限制。所以,本发明领域的技术人员可以对前述实施例记载的技术方案进行修改或等同替换;而这些修改和替换未脱离本发明创造宗旨和技术方案,均应属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献