CN114610015A - 一种带搬运机器人的柔性作业车间动态调度方法及装置 - Google Patents
一种带搬运机器人的柔性作业车间动态调度方法及装置 Download PDFInfo
- Publication number
- CN114610015A CN114610015A CN202210070892.7A CN202210070892A CN114610015A CN 114610015 A CN114610015 A CN 114610015A CN 202210070892 A CN202210070892 A CN 202210070892A CN 114610015 A CN114610015 A CN 114610015A
- Authority
- CN
- China
- Prior art keywords
- processing
- neighborhood
- robot
- coding section
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 299
- 238000012545 processing Methods 0.000 claims abstract description 319
- 210000000349 chromosome Anatomy 0.000 claims abstract description 167
- 238000012546 transfer Methods 0.000 claims abstract description 100
- 230000002068 genetic effect Effects 0.000 claims abstract description 26
- 238000012423 maintenance Methods 0.000 claims abstract description 23
- 238000012937 correction Methods 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims abstract description 13
- 108090000623 proteins and genes Proteins 0.000 claims description 128
- 230000008569 process Effects 0.000 claims description 125
- 238000004519 manufacturing process Methods 0.000 claims description 40
- 238000003754 machining Methods 0.000 claims description 20
- 238000011156 evaluation Methods 0.000 claims description 19
- 230000003068 static effect Effects 0.000 claims description 15
- 238000003780 insertion Methods 0.000 claims description 12
- 230000037431 insertion Effects 0.000 claims description 12
- 230000035772 mutation Effects 0.000 claims description 12
- 238000010187 selection method Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000032258 transport Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000007599 discharging Methods 0.000 description 4
- 239000002994 raw material Substances 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000007514 turning Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0219—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
Abstract
本发明公开了带搬运机器人的柔性作业车间动态调度方法及装置,能够解决未考虑搬运机器人的电池容量和充电维护的多种动态事件情况下的柔性车间调度的技术问题。方法包括:对带搬运机器人的柔性作业车间模型的参数进行初始化;设置遗传算法参数;从染色体种群中确定父代个体;对优选父代集群进行交叉、变异,获取当前待优化染色体种群;对当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;以当前优化染色体种群中的最优个体的解码结果作为当前调度方案;实时监听动态事件,若发生动态事件,根据事件的类型进行处理并采用对应的修正策略,得到新订单信息与车间资源状态;进行重调度,执行新的调度方案。
Description
技术领域
本发明涉及生产调度技术领域,具体涉及一种带搬运机器人的柔性作业车间动态调度方法及装置。
背景技术
在制造业中,包括五金加工、3C产品制造、汽车制造等领域,柔性作业车间调度问题被广泛关注和研究。经典的柔性作业车间调度问题主要包括两个问题:如何对加工任务进行加工机器人的分配和如何确定同一加工机器人上任务的执行顺序。合理地利用车间有限的资源,实现有效的车间调度方法,对降低运营成本、提高生产效率、实现制造业现代化具有重大意义。
在上述制造业中,尤其是小批量、定制模块化生产模式中,一个作业车间中存在多种不同产品的加工链。毛坯在成为产品前,往往需要进行多道加工工艺,因此,一个毛坯必须经过多个加工机器人的加工。并且针对不同种类的产品需求,其加工工艺的种类和数量各异,导致其加工路线各不相同。
在这种复杂多变的生产环境中,人工进行加工机器人间的物料搬运会导致较高的人力成本和出错率,因此,采用搬运机器人代替人工搬运是解决此问题的有效手段。另一方面,车间生产过程中随时可能发生机器人故障、紧急订单到达等事件,如果不及时解决,会阻碍生产进度,甚至生产系统的崩溃,解决作业车间的动态调度问题有助于实现车间稳定生产。
柔性作业车间比经典作业车间具有更高的灵活性,工件的每道工序均存在多个可选的加工机器人。工件的加工过程需要在多个加工机器人上完成不同工序,需要搬运机器人承担工件在加工机器人间的运输任务,因此必须对加工机器人和搬运机器人进行集成调度,以合理利用资源并提高生产效率。在作业车间调度问题中,已经实现了涉及作业车间的柔性、加工和搬运的集成调度、以及包括订单完工时间、生产成本、设备利用率等方面的单目标或多目标优化调度等。然而,大多数研究中缺少实际生产中对机器人的电池容量和充电维护约束,以及机器人故障、紧急订单插入和部分订单撤销等动态事件的综合考虑。
发明内容
有鉴于此,本发明提供了一种带搬运机器人的柔性作业车间动态调度方法及装置,能够解决现有技术未考虑搬运机器人的电池容量和充电维护的多种动态事件情况下的车间调度的技术问题。
本发明解决主要解决以下技术问题:
其一,车间生产中搬运机器人所载的电池容量是有限的,需要根据每个搬运机器人的实时剩余电量判断其是否前往充电桩充电,防止出现因电量不足而瘫痪的情况,保证车间环境道路通畅和正常的生产进度。
其二,实际生产车间中往往发生加工机器人故障、搬运机器人故障、订单紧急插入和订单临时撤销等随机动态事件,发生动态事件后需要根据事件类型及时处理,并进行重新调度,以防影响车间生产效率和保证生产车间正常运行。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明提供了一种带搬运机器人的柔性作业车间动态调度方法,所述方法包括:
步骤S1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
步骤S2:设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
步骤S3:基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
步骤S4:对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
步骤S5:判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值NUM;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,进入步骤S6;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,进入步骤S3;
步骤S6:基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,进入步骤S7;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则进入步骤S6;
步骤S7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理方式及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,进入步骤S2。
优选地,所述步骤S1中,包括:
步骤S11:针对待排产的作业车间,获取车间布局信息,所述车间布局信息包括车间定点元素的位置和相互距离,将获取的所述车间布局信息作为柔性作业车间的车间布局信息,所述车间定点元素包括加工机器人、搬运机器人充电桩、仓库;获取机器人信息,包括:获取加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c;
步骤S12:构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式,所述加工编码段、工序编码段以及搬运编码段自左向右均体现生产的先后顺序,且三个编码段长度相同,均为工序总数其中,Oi为工件i所含工序数,1≤i≤n;
所述加工编码段的编码方式为:对于n个工件,每个工件均用一个子段表示,对任一子段:子段中的基因数为该工件的工序数加1,子段中的每个基因按工件的工序排列,末尾的基因代表一道工件在仓库成品区加工的虚拟工序,作为工件在加工完毕后被搬运到仓库成品区的步骤;子段中的各基因代表实现该工序的加工机器号;将n个子段按工件编号拼接,形成所述加工编码段;其中,基因是子段、编码段的最小单位;
所述搬运编码段的基因与所述工序编码段的基因一一对应,所述搬运编码段的基因表示与其对应的工序编码段中的基因的搬运机器人的编号;
步骤S13:构建使得订单完成时间最短的目标函数,即订单加工完成时间T为:
步骤S14:基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化。
优选地,所述带搬运机器人的柔性作业车间模型为:某柔性作业车间中有n个待加工工件J={J1,J2,…,Ji…,Jn},工件Ji中含有Oi道工序oij,其中i={1,2,…,n},j={1,2,…,Oi},每个工件所含工序的加工顺序固定;含有m个加工机器人M={M1,M2,…,Mk,…Mm},每种加工机器人只能加工一种工艺,工件的每道工序oij都存在多个具备相应加工能力的加工机器人;含有r个搬运机器人A={A1,A2,…,Av,…Ar},承担工件在仓库和各个加工机器人之间的运输任务,每项运输任务由取工件(搬运机器人从当前位置前往目标工件所在位置)和送工件(搬运机器人从目标工件所在位置前往该工件的目的地)两部分组成;含有h个位置固定的充电桩Z={Z1,Z2,…,Zl,…,Zh},其中l={1,2,…,h}。
优选地,所述步骤S2:设置遗传算法参数,随机初始化染色体种群,包括:
步骤S21:设置染色体种群规模N、交叉概率gc、变异概率gm;
步骤S22:随机生成初始的染色体种群,所述染色体种群包括N个染色体,每个染色体均包括工序编码段、加工编码段和搬运编码段;其中,所述工序编码段根据工件数n及其各自所含工序数Oi+1随机排序生成;所述加工编码段从每道工序的可选加工机器集中随机选择机器;所述搬运编码段根据搬运机器人数量均匀分配任务。
优选地,所述步骤S4,包括:
步骤S41:从所述当前待优化染色体种群中获取适应度最大的个体作为变邻域搜索的初始个体,获取当前迭代次数num0;将所述初始个体作为基础个体;
步骤S42:设定变邻域搜索的邻域结构总数为k,当前已遍历过的邻域结构数量为j,并设置j的初值为0;邻域步长为对所述变邻域搜索的基础个体执行同一种邻域结构的连续搜索次数;设定在任一邻域结构的每种邻域步长中对染色体的总评价次数的最大值为NS;
步骤S43:若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述加工编码段邻域结构为在该编码段中选择一个基因,将此基因所代表的工序的加工机器人替换,可选的替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构共有7种,7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构彼此之间不存在约束关系;进入步骤S44;
若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述的加工编码段邻域结构为在该编码段中选择一个基因,将此基因代表的工序的加工机器人进行替换,替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段、搬运编码段所涉及的4种邻域结构分别进行独立的邻域搜索,所述工序编码段的3种邻域结构均加入了约束条件;所述约束条件为工序编码段进行邻域搜索时,搬运编码段跟随工序编码段同步动作,搬运编码段单独进行邻域搜索时,工序编码段不会同步动作;7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;进入步骤S44;
所述加工编码段邻域的生成方式为:获取所述变邻域搜索的基础个体的加工编码段;对所述变邻域搜索的初始个体的加工编码段执行以下操作:固定工序编码段和搬运编码段不变,选择任一变邻域搜索的基础个体的加工编码段的其中一个基因,将此基因所代表的工序的加工机器人进行替换,可选的替换集合为该工序的可选加工机器人集合;对上述邻域结构完成一次上述邻域搜索定义为邻域步长为1;
所述工序编码段的重定位邻域结构指随机选中基础个体的工序编码段中的一个基因并将其取出,固定所述工序编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述工序编码段中的其他位置;所述工序编码段的双互换邻域结构指随机选中基础个体的工序编码段中的两个基因并交换其位置,所述工序编码段中的其他基因的相对位置和顺序不变;所述工序编码段的定点翻转邻域结构指在基础个体的工序编码段中选中一段非固定长度的子工序编码段,将所述子工序编码段中所含基因进行位置前后颠倒,并重新插入到所述工序编码段中,插入位置与所述子工序编码段的取出位置相同;对上述任一种邻域结构完成一次邻域搜索定义为邻域步长为1;
所述搬运编码段的重定位邻域结构指随机选中基础个体的搬运编码段中的一个基因并将其取出,固定所述搬运编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述搬运编码段中的其他位置;所述搬运编码段的双互换邻域结构指随机选中基础个体的搬运编码段中的两个基因并交换其位置,所述搬运编码段中的其他基因的相对位置和顺序不变;所述搬运编码段的定点翻转邻域结构指在基础个体的搬运编码段中选中一段非固定长度的子搬运编码段,将所述子搬运编码段中所含基因进行位置前后颠倒,并重新插入到所述搬运编码段中,插入位置与所述子搬运编码段的取出位置相同;对上述任一种邻域结构完成一次邻域搜索定义为邻域步长为1;
步骤S44:随机选择一种未搜索过的邻域结构作为搜索结构,已遍历的邻域数量结构数量j赋值为j加1;设定邻域步长step的最大值为MAX,邻域步长step的初值为1,所述的邻域步长step为1指新的染色体由对所述变邻域搜索的基础个体执行1次所选的邻域搜索结构算子而得到;设定当前邻域步长下该邻域结构的染色体评价次数为lk,并设置lk的初值为0,进入步骤S45;
步骤S45:将所述变邻域搜索的基础个体执行step次所述搜索结构,得到新的染色体,并对所述的新染色体进行适应度评价,染色体评价次数lk赋值为lk加1;若新染色体的适应度大于所述基础个体的适应度值,即新染色体为更优个体,则将所述更优个体作为基础个体,进入步骤S42;否则,进入步骤S46;
步骤S46:若染色体评价次数lk未达到所述设定的总评价次数NS时,进入步骤S45;否则扩大邻域步长step,将邻域步长step赋值为step加1,若此时step的值不大于MAX,设置当前邻域步长下该邻域结构的染色体评价次数lk为0,进入步骤S45;否则进入步骤S47;
步骤S47:若已遍历的邻域结构数量j不大于邻域结构总数k,即存在未搜索过的邻域结构,进入步骤S44;否则,进入步骤S48;
步骤S48:结束局部搜索,以变邻域搜索中找到的最优个体,即所述变邻域搜索中的当前基础个体,替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群。
优选地,所述步骤S7,包括:
若动态事件类型为加工机器人故障,即在tmb时刻发生加工机器人故障,对于未发生故障的加工机器人,若tmb时刻处于空闲状态,则其最早重调度时间为tmb,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于故障加工机器人,故障时刻立即被迫停止运行,进入维修状态,其最早重调度时间为维修完毕时刻,其正在加工的工件报废,需要在重调度后从仓库取料重新加工;对于未发生故障的搬运机器人,若tmb时刻处于静止停靠状态,则其最早重调度时间为tmb,若搬运机器人正在行驶途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为搬运机器人故障:在tvb时刻发生搬运机器人故障,对于正常运行的加工机器人,若tvb时刻处于空闲状态,则其最早重调度时间为tvb,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于未发生故障的搬运机器人,若tvb时刻处于静止停靠状态,则其最早重调度时间为tvb,若搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;对于故障搬运机器人,若tvb时刻处于静止停靠状态,则立即前往维修,若处于行驶途中,则需要在协助下到达本次行驶的目的地并卸下所搬运的工件后前往维修,最早重调度时间为维修完毕时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为订单紧急插入:在tos时刻插入订单,将紧急插入的订单和原订单中的未加工部分合成为一个新订单,对于正常运行的加工机器人,若tos时刻处于空闲状态,则其最早重调度时间为tos,若tos时刻加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若tos时刻处于静止停靠状态,则其最早重调度时间为tos,若tos时刻搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为订单临时撤销:若toc时刻撤销部分订单,若被撤销的工件正在被加工机器人加工,则立即停止加工并废弃,若其正在被搬运机器人运输的途中,则到达目的地后废弃;对于正常运行的加工机器人,若toc时刻处于空闲状态,则其最早重调度时间为toc,若toc时刻加工机器人正在加工被撤销的工件,则立即停止加工,重调度时间为toc,若toc时刻加工机器人正在加工正常工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若toc时刻处于静止停靠状态,则其最早重调度时间为toc,若toc时刻搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量。
第二方面,本发明提供了一种带搬运机器人的柔性作业车间动态调度装置,所述装置包括:
信息获取模块:配置为获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
初始化模块:配置为设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
第一选择模块:配置为基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
第二选择模块:配置为对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
判断模块:配置为判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值NUM;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,触发监听模块;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,触发第一选择模块;
监听模块:配置为基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,触发调整模块;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则触发监听模块;
调整模块:配置为根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,触发初始化模块。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上所述的带搬运机器人的柔性作业车间动态调度方法。
有益效果:
本发明考虑了搬运机器人的电池容量和充电维护,能够实现多种动态事件下的柔性作业车间重调度。本发明采用了基于遗传算法和变邻域搜索的文化基因算法,通过遗传算法,在种群中进行选择、交叉、变异等操作于整个解空间中进行全局搜索,通过变步长的多邻域结构的变邻域搜索算法,在遗传算法取得的最优解基础上采用多种邻域算子进行局部的深度搜索,从而克服了全局搜索收敛速度慢、局部搜索易于陷入局部最优解的缺点。
附图说明
图1示出了本公开的含有可充电搬运机器人的动态集成柔性作业车间调度的车间示意图;
图2示出了本公开的带搬运机器人的动态柔性作业车间调度方法的流程示意图;
图3示出了本公开的柔性作业车间三段式编码示意图;
图4示出了本公开的基于三段式编码的染色体交叉操作图;
图5示出了本公开的基于三段式编码的染色体变异操作图;
图6示出了本公开的基于三段式编码的邻域结构示意图;
图7示出了根据本公开的实施例1的初始调度甘特图;
图8示出了根据本公开的实施例1的加工机器人故障的重调度甘特图;
图9示出了根据本公开的实施例1的搬运机器人故障的重调度甘特图;
图10示出了根据本公开的实施例1的订单紧急插入的重调度甘特图;
图11示出了根据本公开的实施例1的订单临时撤销的重调度甘特图。
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
如图1所示,柔性作业车间工作方式为:初始时刻,加工车间中接到一批订单,订单中的工件原料和搬运机器人均位于仓库的原料区,根据调度结果,搬运机器人将工件从原料区运输到其第一道工序的加工机器人处,本工序加工完成后,再由搬运机器人将其运输到第二工序的加工机器人处,直到所有工序完成后,搬运机器人将其搬运回仓库成品区,搬运机器人每次执行任务前检测电池剩余电量,当预测剩余电量将无法完成本搬运任务,并无法在完成任务后到达充电桩充电时,先充电再执行本任务,订单中所有工件全部加工完毕并到达仓库成品区后,工作结束。
如图2所示,本发明一种带搬运机器人的柔性作业车间动态调度方法,包括以下步骤:
步骤S1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
步骤S2:设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
步骤S3:基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
步骤S4:对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
步骤S5:判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值NUM;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,进入步骤S6;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,进入步骤S3;
步骤S6:基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,进入步骤S7;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则进入步骤S6;
步骤S7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,进入步骤S2。
所述步骤S1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化,包括:
步骤S11:针对待排产的作业车间,获取车间布局信息,所述车间布局信息包括车间定点元素的位置和相互距离,将获取的所述车间布局信息作为柔性作业车间的车间布局信息,所述车间定点元素包括加工机器人、搬运机器人充电桩、仓库;获取机器人信息,包括:获取加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c。
本实施例中,所述柔性车间为每道工序具有多个对其进行加工的加工机器人;所述加工机器人工艺加工能力为每种加工机器人只能加工一种工艺。所述机器人信息包括加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池各项指标;所述搬运机器人电池各项指标包括电池最大容量、电池空载放电参数、电池单位重量带载放电参数、电池充电速率参数和电池剩余电量值;所述订单信息包括待加工工件的数量、每个工件所含工序的数量及其加工顺序、每道工序的可选加工机器及其加工时间。
步骤S12:构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式,所述加工编码段、工序编码段以及搬运编码段自左向右均体现生产的先后顺序,且三个编码段长度相同,均为工序总数其中,n为工件总数,Oi为工件i所含工序数,1≤i≤n;
所述加工编码段的编码方式为:对于n个工件,每个工件均用一个子段表示,对任一子段:子段中的基因数为该工件的工序数加1,子段中的每个基因按工件的工序排列,末尾的基因代表一道工件在仓库成品区加工的虚拟工序,作为工件在加工完毕后被搬运到仓库成品区的步骤;子段中的各基因代表实现该工序的加工机器号;将n个子段按工件编号拼接,形成所述加工编码段;其中,基因是子段、编码段的最小单位;
所述工序编码段基于工序进行编码,所述工序编码段的各基因内容的取值范围为[1,n],基因中的数字表示工件序号;在所述工序编码段中,对每一个基因,自左向右统计基因中的数字出现的次数time,表示该数字对应的工件的第time道工序;
本实施例中,例如,工序编码段的第1次出现的数字“2”即代表工件2的第一道工序。
所述搬运编码段的基因与所述工序编码段的基因一一对应,所述搬运编码段的基因表示与其对应的工序编码段中的基因的搬运机器人的编号。
本实施例中,如图3所示,搬运编码段的第4个数字即代表1号搬运机器人负责工件3的第一道工序。在初始时刻,待加工工件和搬运机器人均位于仓库原料区,加工完毕后运至仓库成品区。
步骤S13:构建使得订单完成时间最短的目标函数,即订单加工完成时间T为:
本实施例中,以订单加工完成时间最小化为目标。
步骤S14:基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化。
本实施例中,基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对待求解的带搬运机器人的柔性作业车间模型的车间布局参数、机器人参数、订单参数进行初始化。所述车间布局参数包括:加工机器人、搬运机器人充电桩、仓库的位置和相互距离;所述机器人参数包括:加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c;所述订单参数包括待加工工件的数量、每个工件的初始位置、每个工件所含工序的数量及每个工件的加工顺序、每道工序的可选加工机器及其加工时间。
本实施例中,所述带搬运机器人的柔性作业车间模型为:某柔性作业车间中有n个待加工工件J={J1,J2,…,Ji…,Jn},工件Ji中含有Oi道工序oij,其中i={1,2,…,n},j={1,2,…,Oi},每个工件所含工序的加工顺序固定;含有m个加工机器人M={M1,M2,…,Mk,…Mm},每种加工机器人只能加工一种工艺,工件的每道工序oij都存在多个具备相应加工能力的加工机器人;含有r个搬运机器人A={A1,A2,…,Av,…Ar},承担工件在仓库和各个加工机器人之间的运输任务,每项运输任务由取工件(搬运机器人从当前位置前往目标工件所在位置)和送工件(搬运机器人从目标工件所在位置前往该工件的目的地)两部分组成;含有h个位置固定的充电桩Z={Z1,Z2,…,Zl,…,Zh},其中l={1,2,…,h}。
进一步地,本发明根据搬运机器人的当前电量决定其执行放电与充电行为,放电过程及充电过程分别为:
放电过程:由于搬运机器人的运行速率恒定,因此其放电量与运行时间成正比,其放电过程表示为c=c0-(b+am0)t,其中,b为空载基础放电系数,m0为所搬运的工件重量,b+am0为带载放电系数,c0为电池容量,t为搬运机器人每次带载或空载的运行时间,c为电池当前实际电量。搬运机器人静止停靠时,耗电量极小,可忽略不计。
充电过程:搬运机器人充电时长tc与电池容量c0、电池当前实际电量c和充电速率vc有关,即tc=(c0-c)/vc,充满电后自动停止充电,搬运机器人立即从充电桩处投入使用;
充电与放电过程的转换由搬运机器人的剩余电量决定:搬运机器人执行任务前需要对当前剩余电量c进行检测和判断,根据搬运机器人自身位置pv、本项任务中工件当前位置pno、工件重量mo、工件目的地pao以及距离工件目的地最近充电桩的位置pc信息,得到取工件(从pv到pno)的运行时间tq、送工件(从pno到pao)的运行时间ts,到达最近充电桩(从pao到pc)的运行时间tp,从而计算出执行本项任务并且到达充电桩的所需电量csum=btq+dts+btp,其中d=b+amo为带载放电系数;若搬运机器人剩余电量c大于所需电量csum,则执行此项运输任务,否则搬运机器人判断距自身当前位置最近的充电桩,并前往充电,充满电后再执行此任务。
所述步骤S2:设置遗传算法参数,随机初始化染色体种群,包括:
步骤S21:设置染色体种群规模N、交叉概率gc、变异概率gm;
步骤S22:随机生成初始的染色体种群,所述染色体种群包括N个染色体,每个染色体均包括工序编码段、加工编码段和搬运编码段;其中,所述工序编码段根据工件数n及其各自所含工序数Oi+1随机排序生成;所述加工编码段从每道工序的可选加工机器集中随机选择机器;所述搬运编码段根据搬运机器人数量均匀分配任务。
所述步骤S3:所述基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,包括:
步骤S31:设置染色体个体的适应度函数为f(x)=M-h(x),其中,f(x)表示个体的适应度,h(x)表示订单完成时间,M为当所有工序加工时间均取最大加工时间且所有运输时间均取最大运输时间时的订单完成时间;
本实施例中,订单完成时间越短,个体的适应度越大。
步骤S32:采用轮盘赌法将整个染色体种群的适应度归一化,每个染色体个体适应度所占的比例作为其被选中的概率,即适应度越大的染色体被选中的可能性越大,所述轮盘赌法包括:
步骤S322:计算每个染色体个体的适应度占染色体种群适应度累加和的比例ri=fi(x)/fsum,i=1,2,…,n;
本实施例中,例如,根据染色体种群适应度累加和,求得每个染色体所占种群适应度的比例,依次计算每个染色体的累加适应度比例,例如对于包括三个染色体种群,三个个体的适应度比例分别为0.2、0.5和0.3,则累加适应度比例分别为(0,0.2),(0.2,0.7)和(0.7,1)。
步骤S323:然后根据随机产生的(0,1)内的随机数有放回地选择个体,直到选中的个体数量达到种群规模为止,得到基于轮盘赌法获得的父代个体。
步骤S33:采用精英选择法获取若干精英染色体个体,并将所述若干精英染色体个体替换基于轮盘赌法获得的父代个体中的部分染色体个体,得到基于轮盘赌法和精英选择法确定的父代个体,由所述基于轮盘赌法和精英选择法确定的父代个体组成的群体记为优选父代集群;
所述步骤S33,包括:
步骤S331:设置精英种群规模Ne;
步骤S332:基于个体适应度值,确定所述基于轮盘赌法获得的父代个体中最差的1/10作为待替换个体,将所述待替换个体替换为精英种群中的个体;替换的方式为:获取一个待替换个体,采用随机方式从精英种群中可放回地选出一个精英个体进行替换,直至全部待替换个体替换完成。
本实施例中,每次种群迭代中,都将当前代适应度最大的个体复制到精英种群中;若加入某代最优个体后,种群数量超过固定容量Ne,则淘汰掉精英种群中适应度最差的个体。
步骤S34:对所述优选父代集群,以交叉概率gc进行父代个体两两交叉,其中,所述工序编码段采用优先操作交叉算子,所述加工编码段和搬运编码段采均采用二值随机交叉算子;所述优先操作交叉算子为将工序编码段按照工件编号随机分为两个非空工件子集,两个父代染色体均保留同一工件子集所含的基因的内容和位置不变,并按照从左到右的顺序依次交换另一工件子集所包含的基因的内容;所述二值随机交叉算子为生成一条和加工编码段或搬运编码段长度相同的编码段,新生成的编码段和所述加工编码段或搬运编码段的基因按位置一一对应,将新生成的编码段中每个基因内容随机填充数字0或1,得到一条随机二值序列,将所述编码段中字符为0的基因所对应的编码段的基因内容固定,将所述编码段中字符为1的基因所对应的基因内容交叉;
如图4所示,所述优先操作交叉算子的操作过程为:鉴于工序编码段每个基因中的数字均为工件编号,将父代染色体中工序编码段按照工件编号随机分为两个非空工件子集J1和J2,图4中工件子集J1为工件编号为{2,4}的工序集合,工件子集J2为工件编号为{1,3}的工序集合,将两个父代染色体中工件子集J1所包含的所有基因内容和位置固定不变,删掉工件子集J2所包含的所有基因,则工序编码段中出现对应的空白位置,然后将第一个父代染色体的工件子集J2的基因,按照在第一个父代染色体中从左到右的原顺序,同样地按从左到右的顺序依次插入到第二个父代染色体的工序编码段的空白位置,接着将第二个父代染色体的工件子集J2的基因,按照在第二个父代染色体中从左到右的原顺序,同样地按从左到右的顺序依次插入到第一个父代染色体的工序编码段的空白位置,从而得到两个新的工序编码段;所述二值随机交叉算子的操作过程为:选取优选父代集群中的两条染色体个体作为待交叉染色体,并生成一条与染色体个体的加工编码段或搬运编码段长度相等的编码段;若进行加工编码段的交叉操作,则该二值随机交叉算子为加工编码二值随机交叉算子,该编码段的每个基因分别与所述加工编码段的基因一一对应,为该编码段随机生成一个由0和1组成的二值序列,二值序列的每个字符放置于所述编码段的一个基因中;对于所述待交叉染色体,将所述编码段中字符为0的基因对应的加工编码段的基因中的内容固定,将所述编码段中字符为1的基因对应的加工编码段的基因中的内容交叉;若进行搬运编码段的交叉操作,则该二值随机交叉算子为搬运编码二值随机交叉算子,该编码段的基因分别与所述搬运编码段的基因一一对应,为该编码段随机生成一个由0和1组成的二值序列,二值序列的每个字符放置于所述编码段的一个基因中;对于所述待交叉染色体,将所述编码段中字符为0的基因所对应的搬运编码段的基因中的内容固定,将所述编码段中字符为1的基因所对应的搬运编码段的基因中的内容交叉。
本实施例通过上述加工编码二值随机交叉算子、搬运编码二值随机交叉算子,能够保证加工编码段和搬运编码段中各个机器人承担的任务数量可变。
步骤S35:对交叉操作后得到的优选父代集群,以变异概率gm选择变异个体,进行变异操作;变异方式为:所述工序编码段和所述搬运编码段的变异方式均为随机交换两个基因的位置;所述加工编码段的变异方式为随机选中某个基因,在该基因所代表工序的可选加工机器人集合中选择一个加工机器人进行随机替换;得到所述当前待优化染色体种群,所述当前待优化染色体种群包括:部分基于轮盘赌法和精英选择法确定的优选父代集群染色体、部分优选父代集群染色体经过交叉操作后得到的新染色体、部分优选父代集群染色体经过变异操作后得到的新染色体以及部分优选父代集群染色体经过交叉和变异操作后得到的新染色体。变异方式如图5所示。
所述步骤S4:对所述当前待优化染色体种群进行局部搜索,即通过变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群,包括:
步骤S41:从所述当前待优化染色体种群中获取适应度最大的个体作为变邻域搜索的初始个体,获取当前迭代次数num0;将所述初始个体作为基础个体;
步骤S42:设定变邻域搜索的邻域结构总数为k,当前已遍历过的邻域结构数量为j,并设置j的初值为0;邻域步长为对所述变邻域搜索的基础个体执行同一种邻域结构的连续搜索次数;设定在任一邻域结构的每种邻域步长中对染色体的总评价次数的最大值为NS;
步骤S43:若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述加工编码段邻域结构为在该编码段中选择一个基因,将此基因所代表的工序的加工机器人替换,可选的替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构共有7种,上述7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构彼此之间不存在约束关系;进入步骤S44;
若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述的加工编码段邻域结构为在该编码段中选择一个基因,将此基因代表的工序的加工机器人进行替换,替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段、搬运编码段所涉及的4种邻域结构分别进行独立的邻域搜索,所述工序编码段的3种邻域结构均加入了约束条件;所述约束条件为工序编码段进行邻域搜索时,搬运编码段跟随工序编码段同步动作,搬运编码段单独进行邻域搜索时,工序编码段不会同步动作;所述7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;进入步骤S44;
所述邻域搜索是一种基于个体的局部搜索算法,其指以当前解为基础,采用某种算子搜索当前解的邻域;所述的邻域是在当前解的编码基础上采用算子所定义的规则进行改动而得到的多个邻域解的集合。
所述加工编码段邻域的生成方式为:获取所述变邻域搜索的基础个体的加工编码段;对所述变邻域搜索的初始个体的加工编码段执行以下操作:固定工序编码段和搬运编码段不变,选择任一变邻域搜索的基础个体的加工编码段的其中一个基因,将此基因所代表的工序的加工机器人进行替换,可选的替换集合为该工序的可选加工机器人集合;完成一次上述邻域搜索定义为邻域步长为1。
所述工序编码段邻域的生成方式为:固定加工编码段和搬运编码段不变,对所述变邻域搜索的基础个体的工序编码段能够采用如下三种邻域结构进行变换,分别是重定位邻域结构、双互换邻域结构和定点翻转邻域结构。如图6所示,重定位邻域结构指随机选中基础个体的工序编码段中的一个基因并将其取出,固定所述工序编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述工序编码段中的其他位置;双互换邻域结构指随机选中基础个体的工序编码段中的两个基因并交换其位置,所述工序编码段中的其他基因的相对位置和顺序不变;定点翻转邻域结构指在基础个体的工序编码段中选中一段非固定长度的子工序编码段,将所述子工序编码段中所含基因进行位置前后颠倒,并重新插入到所述工序编码段中,插入位置与所述子工序编码段的取出位置相同;完成一次上述任一种邻域搜索定义为邻域步长为1。
所述搬运编码段邻域的生成方式为:固定加工编码段和工序编码段不变,对所述变邻域搜索的基础个体的搬运编码段能够采用如下三种邻域结构进行变换,分别是重定位邻域结构、双互换邻域结构和定点翻转邻域结构。如图6所示,重定位邻域结构指随机选中基础个体的搬运编码段中的一个基因并将其取出,固定所述搬运编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述搬运编码段中的其他位置;双互换邻域结构指随机选中基础个体的搬运编码段中的两个基因并交换其位置,所述搬运编码段中的其他基因的相对位置和顺序不变;定点翻转邻域结构指在基础个体的搬运编码段中选中一段非固定长度的子搬运编码段,将所述子搬运编码段中所含基因进行位置前后颠倒,并重新插入到所述搬运编码段中,插入位置与所述子搬运编码段的取出位置相同;完成一次上述任一种邻域搜索定义为邻域步长为1。
步骤S44:随机选择一种未搜索过的邻域结构作为搜索结构,已遍历的邻域数量结构数量j赋值为j加1;设定邻域步长step的最大值为MAX,邻域步长step的初值为1,所述的邻域步长step为1指新的染色体由对所述变邻域搜索的基础个体执行1次所选的邻域搜索结构算子而得到;设定当前邻域步长下该邻域结构的染色体评价次数为lk,并设置lk的初值为0,进入步骤S45;
步骤S45:将所述变邻域搜索的基础个体执行step次所述搜索结构,得到新的染色体,并对所述的新染色体进行适应度评价,染色体评价次数lk赋值为lk加1;若新染色体的适应度大于所述基础个体的适应度值,即新染色体为更优个体,则将所述更优个体作为基础个体,进入步骤S42;否则,进入步骤S46;
步骤S46:若染色体评价次数lk未达到所述设定的总评价次数NS时,进入步骤S45,否则扩大邻域步长step,将邻域步长step赋值为step加1,若此时step的值不大于MAX,设置当前邻域步长下该邻域结构的染色体评价次数lk为0,进入步骤S45;否则进入步骤S47;
步骤S47:若已遍历的邻域结构数量j不大于邻域结构总数k,即存在未搜索过的邻域结构,进入步骤S44;否则,进入步骤S48;
步骤S48:结束局部搜索,以变邻域搜索中找到的最优个体,即所述变邻域搜索中的当前基础个体,替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群。
所述步骤S7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,其中:处理方式是指得到事件发生时的车间各个资源状态(如加工机器人正在加工某工件的某工序,搬运机器人此时正在充电等),以及应对策略(如发生故障的加工机器人需要在维修完毕后才能重新指派加工任务等)。修正策略指:根据车间生产的连续性,正常运行的加工机器人或搬运机器人在发生事件时刻,不能中止其工作,需要待其加工完毕当前正在加工的工件;运行在道路上的搬运机器人到达此次搬运任务的目的地后,才能重新开始调度,即修正加工和搬运机器人的重调度的最早可利用时间和初始位置。
所述步骤S7,包括:
若动态事件类型为加工机器人故障,即在tmb时刻发生加工机器人故障,对于未发生故障的加工机器人,若tmb时刻处于空闲状态,则其最早重调度时间为tmb,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于故障加工机器人,故障时刻立即被迫停止运行,进入维修状态,其最早重调度时间为维修完毕时刻,其正在加工的工件报废,需要在重调度后从仓库取料重新加工;对于未发生故障的搬运机器人,若tmb时刻处于静止停靠状态,则其最早重调度时间为tmb,若搬运机器人正在行驶途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为搬运机器人故障:在tvb时刻发生搬运机器人故障,对于正常运行的加工机器人,若tvb时刻处于空闲状态,则其最早重调度时间为tvb,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于未发生故障的搬运机器人,若tvb时刻处于静止停靠状态,则其最早重调度时间为tvb,若搬运机器人正在行驶路途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;对于故障搬运机器人,若tvb时刻处于静止停靠状态,则立即前往维修,若处于行驶途中,则需要在协助下到达本次行驶的目的地并卸下所搬运的工件后前往维修,最早重调度时间为维修完毕时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为订单紧急插入:在tos时刻插入订单,将紧急插入的订单和原订单中的未加工部分合成为一个新订单,对于正常运行的加工机器人,若tos时刻处于空闲状态,则其最早重调度时间为tos,若tos时刻加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若tos时刻处于静止停靠状态,则其最早重调度时间为tos,若tos时刻搬运机器人正在行驶路途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为订单临时撤销:若toc时刻撤销部分订单,若被撤销的工件正在被加工机器人加工,则立即停止加工并废弃,若其正在被搬运机器人运输的途中,则到达目的地后废弃;对于正常运行的加工机器人,若toc时刻处于空闲状态,则其最早重调度时间为toc,若toc时刻加工机器人正在加工被撤销的工件,则立即停止加工,重调度时间为toc,若toc时刻加工机器人正在加工正常工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若toc时刻处于静止停靠状态,则其最早重调度时间为toc,若toc时刻搬运机器人正在行驶路途中(取工件/送工件/前往充电点)或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量。
本实施例中,得到包括工件、加工机器人、搬运机器人在内的整个车间的修正后状态信息和订单信息:工件的当前位置和未完成的工序、加工机器人的最早重调度时刻、搬运机器人的当前位置和最早重调度时刻,将以上信息作为初始状态,再进行新的寻优。
实施例1:
实施例1的柔性作业车间中,含有6个工件、6个加工机器人、3个搬运机器人、1个仓库和2个充电桩,订单信息如表1所示,单位为分钟。车间布局距离信息如表2所示。搬运机器人电池信息如表3所示。其中,表中“M”表示加工机器人,“C”表示充电桩。文化基因算法的参数设置如下:种群规模为60,交叉概率为0.95,变异概率为0.05,邻域搜索步长为2。
表1订单信息
表2车间布局距离信息
表3搬运机器人电池信息
本实例的初始调度运行时间设定为3分钟,发生动态事件后的重调度运行时间设定为5秒。其中,加工机器人故障发生时间为10:00,其维修时长为20分钟;搬运机器人故障发生时间为12:00,其维修时长为10分钟;订单紧急插入时间为8:00,插入工件7;订单临时撤销时间为15:00,被撤销的订单为工件3。初始调度甘特图如图7所示,图8-11依次分别为加工机器人故障、搬运机器人故障、订单紧急插入(插入7号工件)和订单临时撤销(撤销3号工件)的重调度甘特图。其中,图中“x-x”表示“工件号-工序号”;“V”表示搬运机器人,搬运机器人中填充矩形表示带载过程,未填充矩形表示空载过程;“C”表示充电过程,并且其后标号为充电桩标号;重调度甘特图中左侧黑色填充部分为重调度前的车间生产过程。
实施例2:
为了进一步验证本发明中算法和策略的可行性与优越性,采用较大规模的标准算例MK09进行实验,算例中工件数量为20,加工机器人数量为10,搬运机器人数量为9,算法参数与实例一相同。故障时间均设为车间生产到100分钟时,故障加工机器人为1号机器人,故障搬运机器人为3号机器人,维修时长分别设为20分钟和10分钟。初始调度运行时间为3分钟,重调度的运行时间均为5秒,相比于初始调度,重调度订单完成时间的平均延迟率adr为:其中,Ti为初始调度订单完成时间,Tre为重调度订单完成时间。
对动态事件中加工机器人故障和搬运机器人故障的重调度分别进行20次实验,运行结果如下表4所示:
表4重调度运行结果
通过以上数据可以得到,在重调度运行时间短到可以忽略不计并且不间断生产的情况下,与初始调度相比,故障发生后,重调度的订单完成时间延迟率较低,即加工机器人和搬运机器人的故障重调度的平均订单完成时间延迟百分比分别为5.9%和5.7%,验证了本发明中针对所述问题的算法和策略的可行性和优越性。
本发明还提供了一种带搬运机器人的柔性作业车间动态调度的装置,所述装置包括:
信息获取模块:配置为获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
初始化模块:配置为设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
第一选择模块:配置为基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
第二选择模块:配置为对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
判断模块:配置为判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值NUM;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,触发监听模块;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,触发第一选择模块;
监听模块:配置为基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,触发调整模块;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则触发监听模块;
调整模块:配置为根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,触发初始化模块。
本发明实施例还提供了一种计算机可读存储介质,所述的计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述带搬运机器人的柔性作业车间动态调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
以上的具体实施例仅描述了本发明的设计原理,该描述中的部件形状,名称可以不同,不受限制。所以,本发明领域的技术人员可以对前述实施例记载的技术方案进行修改或等同替换;而这些修改和替换未脱离本发明创造宗旨和技术方案,均应属于本发明的保护范围。
Claims (7)
1.一种带搬运机器人的柔性作业车间动态调度方法,其特征在于,包括:
步骤S1:获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
步骤S2:设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
步骤S3:基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
步骤S4:对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
步骤S5:判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值NUM;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,进入步骤S6;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,进入步骤S3;
步骤S6:基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,进入步骤S7;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则进入步骤S6;
步骤S7:根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,进入步骤S2。
2.如权利要求1所述的方法,其特征在于,所述步骤S1中,包括:
步骤S11:针对待排产的作业车间,获取车间布局信息,所述车间布局信息包括车间定点元素的位置和相互距离,将获取的所述车间布局信息作为柔性作业车间的车间布局信息,所述车间定点元素包括加工机器人、搬运机器人充电桩、仓库;获取机器人信息,包括:获取加工机器人数量、加工机器人工艺加工能力、搬运机器人数量、搬运机器人运行速度和搬运机器人电池指标,所述搬运机器人电池指标包括电池最大容量c0、电池空载放电参数b、电池单位重量带载放电参数a、电池充电速率参数vc和电池剩余电量值c;
步骤S12:构建包括工序编码段、加工编码段和搬运编码段的三段式编码方式,所述加工编码段、工序编码段以及搬运编码段自左向右均体现生产的先后顺序,且三个编码段长度相同,均为工序总数其中,n为工件总数,Oi为工件i所含工序数,1≤i≤n;
所述加工编码段的编码方式为:对于n个工件,每个工件均用一个子段表示,对任一子段:子段中的基因数为该工件的工序数加1,子段中的每个基因按工件的工序排列,末尾的基因代表一道工件在仓库成品区加工的虚拟工序,作为工件在加工完毕后被搬运到仓库成品区的步骤;子段中的各基因代表实现该工序的加工机器号;将n个子段按工件编号拼接,形成所述加工编码段;其中,基因是子段、编码段的最小单位;
所述搬运编码段的基因与所述工序编码段的基因一一对应,所述搬运编码段的基因表示与其对应的工序编码段中的基因的搬运机器人的编号;
步骤S13:构建使得订单完成时间最短的目标函数,即订单加工完成时间T为:
步骤S14:基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化。
3.如权利要求2所述的方法,其特征在于,所述带搬运机器人的柔性作业车间模型为:某柔性作业车间中有n个待加工工件J={J1,J2,…,Ji…,Jn},工件Ji中含有Oi道工序oij,其中i={1,2,…,n},j={1,2,…,Oi},每个工件所含工序的加工顺序固定;含有m个加工机器人M={M1,M2,…,Mk,…Mm},每种加工机器人只能加工一种工艺,工件的每道工序oij都存在多个具备相应加工能力的加工机器人;含有r个搬运机器人A={A1,A2,…,Av,…Ar},承担工件在仓库和各个加工机器人之间的运输任务,每项运输任务由取工件和送工件两部分组成;含有h个位置固定的充电桩Z={Z1,Z2,…,Zl,…,Zh},其中l={1,2,…,h}。
4.如权利要求3所述的方法,其特征在于,所述步骤S2:设置遗传算法参数,随机初始化染色体种群,包括:
步骤S21:设置染色体种群规模N、交叉概率gc、变异概率gm;
步骤S22:随机生成初始的染色体种群,所述染色体种群包括N个染色体,每个染色体均包括工序编码段、加工编码段和搬运编码段;其中,所述工序编码段根据工件数n及其各自所含工序数Oi+1随机排序生成;所述加工编码段从每道工序的可选加工机器集中随机选择机器;所述搬运编码段根据搬运机器人数量均匀分配任务。
5.如权利要求4所述的方法,其特征在于,所述步骤S4,包括:
步骤S41:从所述当前待优化染色体种群中获取适应度最大的个体作为变邻域搜索的初始个体,获取当前迭代次数num0;将所述初始个体作为基础个体;
步骤S42:设定变邻域搜索的邻域结构总数为k,当前已遍历过的邻域结构数量为j,并设置j的初值为0;邻域步长为对所述变邻域搜索的基础个体执行同一种邻域结构的连续搜索次数;设定在任一邻域结构的每种邻域步长中对染色体的总评价次数为NS;
步骤S43:若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述加工编码段邻域结构为在该编码段中选择一个基因,将此基因所代表的工序的加工机器人替换,可选的替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构共有7种,7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;所述加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构彼此之间不存在约束关系;进入步骤S44;
若基于所述基础个体,构建加工编码段邻域结构、工序编码段邻域结构、搬运编码段邻域结构,所述的加工编码段邻域结构为在该编码段中选择一个基因,将此基因代表的工序的加工机器人进行替换,替换集合为该工序的可选加工机器人集合;所述的工序编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述的搬运编码段邻域结构包括三种:重定位邻域结构、双互换邻域结构和定点翻转邻域结构;所述加工编码段、搬运编码段所涉及的4种邻域结构分别进行独立的邻域搜索,所述工序编码段的3种邻域结构均加入了约束条件;所述约束条件为工序编码段进行邻域搜索时,搬运编码段跟随工序编码段同步动作,搬运编码段单独进行邻域搜索时,工序编码段不会同步动作;7种邻域结构相互独立,每次搜索仅随机执行一种邻域结构搜索,未涉及到邻域搜索的编码段保持不变;进入步骤S44;
所述加工编码段邻域的生成方式为:获取所述变邻域搜索的基础个体的加工编码段;对所述变邻域搜索的初始个体的加工编码段执行以下操作:固定工序编码段和搬运编码段不变,选择任一变邻域搜索的基础个体的加工编码段的其中一个基因,将此基因所代表的工序的加工机器人进行替换,可选的替换集合为该工序的可选加工机器人集合;对上述邻域结构完成一次上述邻域搜索定义为邻域步长为1;
所述工序编码段的重定位邻域结构指随机选中基础个体的工序编码段中的一个基因并将其取出,固定所述工序编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述工序编码段中的其他位置;所述工序编码段的双互换邻域结构指随机选中基础个体的工序编码段中的两个基因并交换其位置,所述工序编码段中的其他基因的相对位置和顺序不变;所述工序编码段的定点翻转邻域结构指在基础个体的工序编码段中选中一段非固定长度的子工序编码段,将所述子工序编码段中所含基因进行位置前后颠倒,并重新插入到所述工序编码段中,插入位置与所述子工序编码段的取出位置相同;对上述任一种邻域结构完成一次邻域搜索定义为邻域步长为1;
所述搬运编码段的重定位邻域结构指随机选中基础个体的搬运编码段中的一个基因并将其取出,固定所述搬运编码段中的其他基因的相对位置和顺序,将取出的基因随机插入到所述搬运编码段中的其他位置;所述搬运编码段的双互换邻域结构指随机选中基础个体的搬运编码段中的两个基因并交换其位置,所述搬运编码段中的其他基因的相对位置和顺序不变;所述搬运编码段的定点翻转邻域结构指在基础个体的搬运编码段中选中一段非固定长度的子搬运编码段,将所述子搬运编码段中所含基因进行位置前后颠倒,并重新插入到所述搬运编码段中,插入位置与所述子搬运编码段的取出位置相同;对上述任一种邻域结构完成一次邻域搜索定义为邻域步长为1;
步骤S44:随机选择一种未搜索过的邻域结构作为搜索结构,已遍历的邻域数量结构数量j赋值为j加1;设定邻域步长step的最大值为MAX,邻域步长step的初值为1,所述的邻域步长step为1指新的染色体由对所述变邻域搜索的基础个体执行1次所选的邻域搜索结构算子而得到;设定当前邻域步长下该邻域结构的染色体评价次数为lk,并设置lk的初值为0,进入步骤S45;
步骤S45:将所述变邻域搜索的基础个体执行step次所述搜索结构,得到新的染色体,并对所述新的染色体进行适应度评价,染色体评价次数lk赋值为lk加1;若新染色体的适应度大于所述基础个体的适应度值,即新染色体为更优个体,则将所述更优个体作为基础个体,进入步骤S42;否则,进入步骤S46;
步骤S46:若染色体评价次数lk未达到所述总评价次数NS时,进入步骤S45;否则扩大邻域步长step,将邻域步长step赋值为step加1,若此时step的值不大于MAX,设置当前邻域步长下该邻域结构的染色体评价次数lk为0,进入步骤S45;否则进入步骤S47;
步骤S47:若已遍历的邻域结构数量j不大于邻域结构总数k,即存在未搜索过的邻域结构,进入步骤S44;否则,进入步骤S48;
步骤S48:结束局部搜索,以变邻域搜索中找到的最优个体,即所述变邻域搜索中的当前基础个体,替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群。
6.如权利要求5所述的方法,其特征在于,所述步骤S7,包括:
若动态事件类型为加工机器人故障,即在tmb时刻发生加工机器人故障,对于未发生故障的加工机器人,若tmb时刻处于空闲状态,则其最早重调度时间为tmb,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于故障加工机器人,故障时刻立即被迫停止运行,进入维修状态,其最早重调度时间为维修完毕时刻,其正在加工的工件报废,需要在重调度后从仓库取料重新加工;对于未发生故障的搬运机器人,若tmb时刻处于静止停靠状态,则其最早重调度时间为tmb,若搬运机器人正在行驶途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为搬运机器人故障:在tvb时刻发生搬运机器人故障,对于正常运行的加工机器人,若tvb时刻处于空闲状态,则其最早重调度时间为tvb,若加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于未发生故障的搬运机器人,若tvb时刻处于静止停靠状态,则其最早重调度时间为tvb,若搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;对于故障搬运机器人,若tvb时刻处于静止停靠状态,则立即前往维修,若处于行驶途中,则需要在协助下到达本次行驶的目的地并卸下所搬运的工件后前往维修,最早重调度时间为维修完毕时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为订单紧急插入:在tos时刻插入订单,将紧急插入的订单和原订单中的未加工部分合成为一个新订单,对于正常运行的加工机器人,若tos时刻处于空闲状态,则其最早重调度时间为tos,若tos时刻加工机器人正在加工工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若tos时刻处于静止停靠状态,则其最早重调度时间为tos,若tos时刻搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量;
若动态事件类型为订单临时撤销:若toc时刻撤销部分订单,若被撤销的工件正在被加工机器人加工,则立即停止加工并废弃,若其正在被搬运机器人运输的途中,则到达目的地后废弃;对于正常运行的加工机器人,若toc时刻处于空闲状态,则其最早重调度时间为toc,若toc时刻加工机器人正在加工被撤销的工件,则立即停止加工,重调度时间为toc,若toc时刻加工机器人正在加工正常工件,在车间生产连续性要求下,不可中断工序的正常加工,其最早重调度时间为本道工序加工完毕时刻;对于正常运行的搬运机器人,若toc时刻处于静止停靠状态,则其最早重调度时间为toc,若toc时刻搬运机器人正在行驶路途中或正在充电,则其最早重调度时间为到达本次行驶的目的地时刻或充电完成时刻;得到包括加工机器人、搬运机器人和工件的所述柔性作业车间的状态信息,基于所述柔性作业车间的状态信息和订单信息,更新遗传算法的初始化信息,包括加工机器人的最早重调度时间、搬运机器人的当前位置和最早重调度时间和部分订单参数,所述部分订单参数包括未完成加工的工件的数量和当前位置、每个工件所含未加工工序的数量。
7.一种带搬运机器人的柔性作业车间动态调度装置,其特征在于,所述装置包括:
信息获取模块:配置为获取柔性作业车间的车间布局信息、机器人信息和订单信息;构建包括工序编码段、加工编码段和搬运编码段的三段式编码;构建使得订单完成时间最短的目标函数;基于获取的柔性作业车间的车间布局信息、机器人信息和订单信息对带搬运机器人的柔性作业车间模型的参数进行初始化;
初始化模块:配置为设置遗传算法参数,随机初始化染色体种群;设置当前迭代次数num0为0;
第一选择模块:配置为基于轮盘赌法和精英选择法从所述染色体种群中确定父代个体,所述父代个体组成的群体记为优选父代集群;对所述优选父代集群进行交叉、变异操作,获取当前待优化染色体种群;
第二选择模块:配置为对所述当前待优化染色体种群进行局部搜索,即通过变步长的多邻域结构的变邻域搜索的方式得到最优个体;用所述最优个体替换所述当前待优化染色体种群中的最优个体,得到当前优化染色体种群;
判断模块:配置为判断优化目标值是否达到预定值或所述当前迭代次数num0达到设定值NUM;若是,以所述当前优化染色体种群中的最优个体的解码结果作为当前调度方案,触发监听模块;若否,当前迭代次数num0置为num0加1,将所述当前优化染色体种群作为染色体种群,触发第一选择模块;
监听模块:配置为基于所述当前调度方案执行任务,并监听是否发生动态事件;若发生动态事件,触发调整模块;若未发生动态事件且订单加工完毕,方法结束;若未发生动态事件且订单未加工完毕,则触发监听模块;
调整模块:配置为根据动态事件的类型,选用与动态事件类型对应的处理方式与修正策略,基于所述处理及修正策略,得到当前车间中尚未开始加工的工序集合作为新的订单信息,得到未完成加工工件的各自位置和最早可利用时间、搬运机器人的各自位置和最早可利用时间、加工机器人的各自最早可利用时间,作为新的车间初始状态,以所述新的订单信息和新的车间初始状态重新构建染色体种群,触发初始化模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210070892.7A CN114610015A (zh) | 2022-01-21 | 2022-01-21 | 一种带搬运机器人的柔性作业车间动态调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210070892.7A CN114610015A (zh) | 2022-01-21 | 2022-01-21 | 一种带搬运机器人的柔性作业车间动态调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610015A true CN114610015A (zh) | 2022-06-10 |
Family
ID=81857278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210070892.7A Pending CN114610015A (zh) | 2022-01-21 | 2022-01-21 | 一种带搬运机器人的柔性作业车间动态调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610015A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167593A (zh) * | 2023-04-21 | 2023-05-26 | 鲁东大学 | 用于零等待作业车间调度的工件加工时刻获取方法及设备 |
CN116859861A (zh) * | 2023-08-03 | 2023-10-10 | 广州尚捷智慧云网络科技有限公司 | 一种基于erp与mes的柔性加工调度系统 |
CN117455199A (zh) * | 2023-12-21 | 2024-01-26 | 聊城大学 | 基于变邻域搜索算法求解矩阵制造车间agv调度的方法 |
CN117522090A (zh) * | 2024-01-08 | 2024-02-06 | 佛山市达衍数据科技有限公司 | 一种制衣生产的动态调度方法、系统和存储介质 |
-
2022
- 2022-01-21 CN CN202210070892.7A patent/CN114610015A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167593A (zh) * | 2023-04-21 | 2023-05-26 | 鲁东大学 | 用于零等待作业车间调度的工件加工时刻获取方法及设备 |
CN116167593B (zh) * | 2023-04-21 | 2023-08-04 | 鲁东大学 | 用于零等待作业车间调度的工件加工时刻获取方法及设备 |
CN116859861A (zh) * | 2023-08-03 | 2023-10-10 | 广州尚捷智慧云网络科技有限公司 | 一种基于erp与mes的柔性加工调度系统 |
CN117455199A (zh) * | 2023-12-21 | 2024-01-26 | 聊城大学 | 基于变邻域搜索算法求解矩阵制造车间agv调度的方法 |
CN117455199B (zh) * | 2023-12-21 | 2024-03-22 | 聊城大学 | 基于变邻域搜索算法求解矩阵制造车间agv调度的方法 |
CN117522090A (zh) * | 2024-01-08 | 2024-02-06 | 佛山市达衍数据科技有限公司 | 一种制衣生产的动态调度方法、系统和存储介质 |
CN117522090B (zh) * | 2024-01-08 | 2024-05-07 | 佛山市达衍数据科技有限公司 | 一种制衣生产的动态调度方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114610015A (zh) | 一种带搬运机器人的柔性作业车间动态调度方法及装置 | |
Zou et al. | An effective iterated greedy algorithm for solving a multi-compartment AGV scheduling problem in a matrix manufacturing workshop | |
CN107036618A (zh) | 一种基于最短路径深度优化算法的agv路径规划方法 | |
Rahman et al. | An integrated approach for line balancing and AGV scheduling towards smart assembly systems | |
CN112561194B (zh) | 一种混合流水车间生产与物流集成调度方法及系统 | |
Derhami et al. | A simulation-based optimization approach to design optimal layouts for block stacking warehouses | |
CN112488606B (zh) | 一种生产物流智能优化和自动调度系统 | |
CN108928594B (zh) | 基于智能体模型的立体库多向穿梭车调度系统的调度方法 | |
CN113359702B (zh) | 一种基于水波优化-禁忌搜索的智能仓库agv作业优化调度方法 | |
CN113822588B (zh) | 基于离散的人工蜂群进化的自动导向车辆调度方法 | |
CN114611767A (zh) | 一种全局最优的智能仓储调度优化算法 | |
Parragh et al. | A survey on pickup and delivery models Part II: Transportation between pickup and delivery locations | |
Zhao et al. | Model and heuristic solutions for the multiple double-load crane scheduling problem in slab yards | |
Zou et al. | An effective self-adaptive iterated greedy algorithm for a multi-AGVs scheduling problem with charging and maintenance | |
CN111027875A (zh) | 一种基于自适应任务池的智能仓储多机器人任务分配方法 | |
Jiang et al. | Intralogistics synchronization in robotic forward-reserve warehouses for e-commerce last-mile delivery | |
CN114022028A (zh) | 一种自动化混合流水线调度布局集成优化方法 | |
CN112149876A (zh) | 求解矩阵制造车间多自动轨道小车上料调度问题的人工蜂群算法 | |
CN112989696A (zh) | 一种基于移动机器人的自动拣选系统货位优化方法及系统 | |
CN113408988A (zh) | 仓储系统的调度优化方法、电子设备及存储介质 | |
CN112801484A (zh) | 一种考虑配料误差的物料配送调度方法和系统 | |
Lee et al. | Operation sequence and tool selection in flexible manufacturing systems under dynamic tool allocation | |
CN116523221A (zh) | 一种智能仓储拣选任务的优化调度方法及系统 | |
Chen et al. | An integrated approach for modeling and solving the scheduling problem of container handling systems | |
Badakhshian et al. | Performance optimization of simultaneous machine and automated guided vehicle scheduling using fuzzy logic controller based genetic algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |