CN116774658A - 一种物料限制下的柔性作业车间动态调度方法 - Google Patents

一种物料限制下的柔性作业车间动态调度方法 Download PDF

Info

Publication number
CN116774658A
CN116774658A CN202310720569.4A CN202310720569A CN116774658A CN 116774658 A CN116774658 A CN 116774658A CN 202310720569 A CN202310720569 A CN 202310720569A CN 116774658 A CN116774658 A CN 116774658A
Authority
CN
China
Prior art keywords
rescheduling
scheduling
order
individuals
distance
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
Application number
CN202310720569.4A
Other languages
English (en)
Inventor
李波
杨航
刘民岷
洪涛
潘晓勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202310720569.4A priority Critical patent/CN116774658A/zh
Publication of CN116774658A publication Critical patent/CN116774658A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

该发明公开了一种物料限制下的柔性作业车间动态调度方法,涉及柔性作业车间的生产调度领域。本发明针对现有动态调度方法的不足,提出了一种物料限制下的柔性作业车间动态调度方法。本方法针对现有的动态调度方法没有考虑物料限制的影响,结合改进的NSGA‑II算法和动态调度整体实施策略对存在扰动事件下的柔性作业车间进行调度方案的安排。本发明针对在途物料延迟到达、机器故障、紧急插单以及订单交付期提前下的柔性作业车间动态调度问题,通过使用滚动窗口将动态调度问题转换为若干连续区间内的静态调度问题来求解,结合改进的NSGA‑II算法,使用周期性与事件驱动重调度触发机制以及不同的重调度方法,为柔性作业车间动态调问题度提供了一种新的求解思路。

Description

一种物料限制下的柔性作业车间动态调度方法
技术领域
本发明专利涉及柔性作业车间的生产调度领域,具体是一种物料限制下的柔性作业车间动态调度方法。
背景技术
柔性作业车间能够高效、灵活地完成生产任务以适应市场的需求变化。若在车间生产中经常存在着物料短缺的情况,需要采用物料过程齐套的模式,以工序为单位完成物料的准备工作,从而提高生产效率。当生产中某道工序发生缺料时,车间需等待在途物料的到达,在此期间该工序处于等待状态,当存在一定数量的工序因为物料限制而处于等待状态时,车间需采取高效的调度安排机制来应对,避免发生生产相关环节停滞、生产效率低下的问题。除了物料限制,在车间生产中还面临着机器故障、紧急插单等扰动事件的影响。
本发明提出一种物料限制下的柔性作业车间动态调度方法,该方法用于确定物料限制下的柔性作业车间动态调度方案,为柔性作业车间中的动态调度问题提供解决思路。
发明内容
本发明针对现有动态调度方法的不足,提出了一种物料限制下的柔性作业车间动态调度方法。本方法针对现有的动态调度方法没有考虑物料限制的影响,结合改进的NSGA-II算法和动态调度整体实施策略对存在扰动事件下的柔性作业车间进行调度方案的安排。
本发明技术方案为步骤1:采用滚动窗口将柔性作业车间中的动态调度问题划分为连续区间的静态调度问题,定义订单排产优先程度计算公式,用于确定加入调度加工窗口中的工件顺序;
步骤1.1:采用滚动窗口将柔性作业车间中的动态调度问题划分为若干连续区间内的静态调度问题;
步骤1.2:定义订单排产优先程度计算公式,用于确定加入调度加工窗口中的工件顺序。
步骤2:确定柔性作业车间中静态调度问题的目标函数和编解码方案,定义染色体之间的距离,采用三种不同的父代配对规则生成子代,引入基于编码邻域的排挤机制,并确定改进后的NSGA-II算法整体实施流程;
步骤2.1:确定柔性作业车间静态调度问题的目标函数和编解码方案;
步骤2.2:定义染色体之间的距离;
步骤2.3:使用三种不同的父代配对规则生产子代;
步骤2.4:引入基于编码邻域的排挤机制;
步骤2.5:确定改进后的NSGA-II算法整体实施流程;
步骤3:确定重调度触发机制、应对扰动事件时采取的重调度方法以及执行重调度时的评价机制;
步骤3.1:确定重调度触发机制;
步骤3.2:确定应对扰动事件时采取的不同的重调度方法;
步骤3.3:确定执行重调度的评价机制;
步骤4:给出不同扰动事件下的重调度方法,并确定动态调度的整体实施策略。
步骤4.1:给出不同扰动事件下的重调度方法;
步骤4.2:确定动态调度整体实施策略。
本发明针对在途物料延迟到达、机器故障、紧急插单以及订单交付期提前下的柔性作业车间动态调度问题,通过使用滚动窗口将动态调度问题转换为若干连续区间内的静态调度问题来求解,结合改进的NSGA-II算法,使用周期性与事件驱动重调度触发机制以及不同的重调度方法,为柔性作业车间动态调问题度提供了一种新的求解思路。
附图说明
图1为染色体之间的距离计算过程示意图;
图2为重调度执行流程图。
具体实施方式
本发明的实施包括以下步骤:
步骤1:采用滚动窗口将柔性作业车间中的动态调度问题划分为连续区间内的静态调度问题,定义订单排产优先程度计算公式,用于确定加入调度加工窗口中的工件顺序;
步骤2:确定柔性作业车间中静态调度问题的目标函数和编解码方案,定义染色体之间的距离,采用三种不同的父代个体匹配机制生成子代,引入基于编码邻域的排挤机制,并确定改进后的NSGA-II算法整体实施流程;
步骤3:确定重调度触发机制、应对扰动事件时采取的重调度方法以及执行重调度时的评价机制;
步骤4:给出不同扰动事件下的重调度方法,并确定动态调度的整体实施策略。
所述的步骤1具体为:
步骤1.1:采用滚动窗口将柔性作业车间中的动态调度问题划分为连续区间内的静态调度问题。
在实际生产过程中,车间中会发生各种各样的扰动事件,扰动事件发生后很可能会直接导致之前既定的调度方案不再适用,因此需要迅速对扰动产生合适的方案,以免导致生产延误。对于物料限制下的柔性作业车间,车间生产所缺的物料会通过及时运输物料进行补充。从物料、机器、订单三个方面着手分析,本发明求解在途物料延迟到达、机器故障、紧急插单、以及订单交付期提前四种扰动事件下的柔性作业车间动态调度问题。对于上述动态调度问题,采取滚动窗口的重调度将其分成多个局部子问题来讨论,将所有工件按订单分批次进行排产,以此将整体的动态调度问题划分为多个连续区间内的静态调度问题。
采用滚动窗口技术时,工件可以分为四个部分,分别是已完成的工件、正在加工的工件、等待加工的工件和等待调度工件,而窗口种类分为完工窗口、调度加工窗口、等待窗口三种。完工窗口内是已完成的工件,调度加工窗口内包括正在加工工件、等待加工的工件,等待窗口中是等待调度工件,在每个调度加工窗口内都存在着一部分等待安排的工件,系统每次只对调度加工窗口内的这部分工件进行调度安排,发生扰动事件后,根据扰动影响程度决定是否重新确定调度加工窗口内的工件,并且只对调度加工窗口内的工件进行调度方案的确定,以最大程度减轻扰动事件对车间生产的稳定性影响。
步骤1.2:定义订单排产优先程度计算公式,用于确定加入调度加工窗口中的工件顺序。
对于哪些工件优先加入调度加工窗口中安排调度,需要根据工件的加工优先级进行确定,本发明对订单的排产优先程度进行定义用于确定加入滚动窗口内的工件顺序,若第i个订单是对第j种产品的需求,那么其排产优先程度Pi计算公式为
式(1)中,Di为订单i的交付期,t为当前时间,ε为避免Di-t为0或者负数的极小常量,Ri为订单i的产品需求数量,nj为生产第j种产品时的工序数,Tjk为第j种产品的第k道工序的平均加工时间,β为车间中物料种类数量,Sk和Matik分别为第k种物料的现存量和订单i对第k种物料的需求量,αk为判断Matik是否为0的系数,如果Matik=0则αk=0,否则αk=1。
对每个订单完成了订单排产优先程度的确定后,根据排产优先程度从小到大排列得到每个订单的排产优先级,并依次将订单中的工件加入调度加工窗口中进行静态调度方案的确定。
所述的步骤2具体为:
步骤2.1:确定柔性作业车间静态调度问题的目标函数和编解码方案;
通过滚动窗口将柔性作业车间中的动态调度问题划分为静态调度优化问题后,对于静态调度问题的求解,以最小化最大完工时间和总拖期为目标建立柔性作业车间静态调度优化模型,并使用NSGA-II算法作为模型求解的基础算法。设n为工件总数,Ci为第i个工件的完工时间,Di为第i个工件的交付期,那么最大完工时间的计算公式为:
总拖期的计算公式为:
对染色体的编码方案采用产品-工序-机器的三段式编码的设计,在三段式编码中,第一段产品编码对应产品物料分配优先级,从左到右扫描,越早出现的产品种类序号,物料分配的优先级越大;在第二段工序编码中,每个工件的工序都用相应的工件序号表示,从左到右第k次出现的工件序号,表示该工件的第k道工序;第三段机器编码中,从左到右依次是每一个工件在每道工序的加工机器。通过产品编码来确定产品的物料分配优先级,以此来确定每一道缺料工序的物料齐套时间,然后采用插入式贪婪解码算法将染色体经过解码后获得调度方案,并计算出目标函数值。
步骤2.2:定义染色体之间的距离
在算法求解时,两段编码相似的染色体可能计算出来的目标函数值差别很大,如果两个染色体仅仅在产品编码上不同,工序编码和机器编码上相同,但由于产品编码上不同而导致物料分配顺序的不同,最终可能导致计算出来的目标函数值差异很大,但是在后续的种群进化中,这两个染色体由于编码相似,在交叉、变异过程中起到的作用也可能是类似的,对于工序编码和机器编码也可能存在这种问题,这会造成种群在进化过程中存在很多低效的交叉和变异过程,在此基础上实施精英策略,会进一步造成种群个体的不均衡,编码相似的个体数量较多,导致算法提前收敛。本发明将三段式编码看作是(产品编码,工序编码,机器编码)的三维染色体空间,在编码空间上引入编码邻域的概念,在算法每一次迭代过程中,在精英策略中应用排挤机制时排挤掉编码邻域中的个体,从而达到提高种群个体多样性、扩大搜索空间的目的。
在应用编码邻域使用排挤机制前,需要为染色体中的每一段编码空间中定义距离,在三个编码空间中定义的距离分别为:
(1)产品编码:在产品编码中的距离设置为Kendall Tau距离,该距离是通过交换相邻位置元素使得两段排列相同的最小操作数,也可以视作以一个排列为标准,另一个排列的逆序数;(2)工序编码:在工序编码上的距离设置为Levenshtein距离,该距离编是将一个编码转换成另一个编码所需的最少编辑操作次数,编辑操作包括插入一个元素、删除一个元素、替换一个元素;
(3)机器编码:在机器编码上的距离设置为Hamming距离,该距离是指两端编码中对应位置的不同字符个数。
设产品编码长度为l1,工序编码、机器编码的长度均为l2,那么三个编码空间中最大值分别为l1(l1-1)/2、l2、l2,最小值均为0,在每一段编码计算出距离后,使用常用的最小最大值归一化方法将数据映射到[0,1]之间,计算公式为
式(4)中,xnorm归一化后的距离,x为原始距离,xmax、xmin分别为所在编码空间中的最大距离和最小距离。
最终种群中个体之间的距离采用欧氏距离,计算公式为
式(5)中,X1、X2是两个染色体个体,x1、x2、x3分别是X1、X2在三段编码上归一化距离。
通过上述方法,两个染色体经过拆分三段编码,并在每个编码上计算对应归一化后的距离,然后通过计算欧式距离得到两者之间最终的距离,染色体之间的距离计算过示意图见图1所示。
步骤2.3:使用三种不同的父代配对规则生产子代
在NSGA-II算法的精英策略实施前,父代种群会通过选择、交叉、变异操作生成子代种群,然后通过精英策略将合并后的父子种群通过偏序关系从前往后依次挑选个体组成下一代新种群。设父代种群数量为L,为扩大算法的搜索范围,首先对父代个体进行快速非支配排序和拥挤距离计算获得偏序排列,然后使用三种父代个体的配对规则来生成子代个体,分别是
(1)相邻配对:选择相邻的染色体之间两两配对;
(2)最远配对:选择距离当前染色体最远还没有配对的染色体进行配对;
(3)随机配对:随机挑选染色体进行配对。
父代染色体通过上述配对规则进行交叉操作,之后对每个个体执行变异操作,每种配对规则下生成数量为L的子代,最终会生成数量为3L的子代种群,之后加上父代染色体后的种群总数量为4L,接下来要使用基于编码邻域的排挤机制和精英策略将种群个体数变为L。
步骤2.4:引入基于编码邻域的排挤机制
本发明在NSGA-II算法的精英策略中引入基于编码邻域的排挤机制,通过该方法来解决相似染色体导致的问题。在实施基于编码邻域的排挤机制时,首先需要计算出种群中每个个体之间的距离,设Dis为个体之间的距离矩阵,Dis(i,j)表示第i个染色体与第j个染色体之间的距离,如果第i个染色体将要保留进入到下一代,那么其要排挤的个体集合为
Seti={j|Dis(i,j)<=r,1≤j≤4L,j≠i} (6)
在Seti中,也可能存在之前已经被排挤掉的个体,对于邻域半径r的取值,根据编码空间中的最小非零距离,选取几个固定大小的值,定义邻域半径向量radius为
式(7)中,r1、r2、r3分别为在三个编码空间中的最小非零距离,即在每个编码空间中两个差异最小且不同的编码之间的归一化距离。
邻域半径r从radius中的末尾元素开始取值,如果在精英策略实施结束时,种群数量无法达到L,那么重新执行排挤机制,并取radius中前面一个元素,在radius中第一个元素设置为-1是为了保证算法一定可以选取到数量为L的个体进入到下一代,此时算法退化到原始的NSGA-II算法精英策略,没有排挤掉任何个体,具体步骤为:
(1)对种群中所有个体进行保留状态标记;
(2)根据偏序关系将所有个体构成一个偏序排列,从前往后依次选取处于保留状态的个体,并取消该个体邻域范围内的个体保留状态标记;
(3)在偏序排列中保留处于非支配层的个体,并去除剩余没有保留标记的个体;
(4)判断偏序排列的个体数是否小于L,如果小于L那么跳转至步骤(5),否则跳转至步骤(6);
(5)根据邻域向量radius缩小邻域半径r的范围,跳转至步骤(1);
(6)在偏序排列中选择前L个成为下一代的种群个体。
步骤2.5:确定改进后的NSGA-II算法整体实施流程
在确定染色体编解码方案、交叉变异算子以及精英策略执行方案后,改进的NSGA-II算法包括以下几个步骤:
(1)随机初始化种群个数为L的种群个体;
(2)对种群采用快速非支配排序和拥挤距离的计算,确定个体之间的偏序;
(3)对父代种群采用不同的匹配规则选择个体执行交叉算子,并执行变异算子,生成数量为3L的子代种群,并将父子种群合并使得个体数量达到4L;
(4)计算种群中每个个体与其它个体之间的距离,用矩阵的形式表示为Dis;
(5)在精英策略中使用基于编码邻域的排挤机制,筛选出数量为L的种群个体;
(6)对种群采用快速非支配排序和拥挤距离的计算,确定个体之间的偏序;
(7)如果到达最大迭代次数,则输出Pareto最优解集,否则跳转到步骤(3)。
所述的步骤3具体为:
步骤3.1:确定重调度触发机制;
重调度经常常用于求解动态调度问题,而对于重调度在何时触发、何种情况下触发,需要根据系统所采用的重调度机制决定。本发明使用周期性与事件驱动重调度触发机制,结合滚动窗口技术,执行每个调度加工窗口内的静态调度方案时,如果发生扰动事件,则采取事件驱动机制进行重调度方案的确定,根据调度加工窗口内的静态调度方案确定重调度周期,到达重调度周期后采用周期性重调度机制为下一个调度加工窗口确定静态调度方案。
在执行周期性重调度前,在原有调度加工窗口中可能仍存少量工件尚未完工,此时应固定其在静态调度方案中的工序,同时进行新调度加工窗口中调度方案的确定。由于扰动事件的存在,每当有扰动事件发生进行调度方案的更新后,下一个重调度触发点的时间同样要保持同步更新,重调度触发点的计算公式为
t′=t+αf1 (8)
式(8)中,t是当前时间,t′是下一个周期性重调度的触发点,f1是调度加工窗口内的静态调度方案确定的最大完工时间,α是比例因子,取值范围为[0.5,1]。
步骤3.2:确定应对扰动事件时采取的重调度方法;
应对扰动事件采取的是事件驱动重调度机制,每当发生扰动事件便立即使用重调度方法进行重调度方案的确定。基于滚动窗口的重调度方法有三种,分别是右移重调度、局部重调度以及完全重调度。右移重调度是将受到影响的工序在原有静态调度方案甘特图中基于右移的方式来调整,受影响的工序会延期开工,而部分工序可能会根据机器空闲时间大小向前插入或者右移,从而使得新的调度方案受到的影响最小;局部重调度只对调度加工窗口内的工件进行重调度,等待窗口中的工件不受任何影响;完全重调度是考虑到受到影响的工序任务较多,比如等待窗口中的订单发生交付期提前的扰动,如果在重新计算排产优先程度后,发现该订单的排产优先级升高使得该订单与调度加工窗口中的某个订单互换了位置,那么需要对较多的工件进行重新调度安排,具体的操作是锁定正在加工的工序任务,将被置换订单的未完成工件放入等待窗口中,以等待下一次周期性重调度时刻到达,继续安排完成剩余未完成的工序任务。
步骤3.3:确定重调度的评价机制;
柔性作业车间的动态调度策略实施过程中,重调度很可能会改变多道工序的开工时间,对此需要消耗车间的资源来保障其准时稳定生产,因此对于扰动事件影响下的重调度,应该尽可能地是在原调度方案基础上进行调整,以保持在扰动事件影响后车间能够稳定生产。因此在每个调度加工窗口中,静态调度算法在求解过程中需要基于工序的偏离程度来衡量重调度稳定性,本发明用工序偏离度来表示工序在原静态调度方案与重调度方案之间的偏离时间,用公式表示为
式(9)中,n是工件数量,ni是第i个工件的工序数,Bij和Bij分别是第i个工件的第j道工序分别在重调度方案和原静态调度方案中的开工时间,f3的计算仅考虑在原调度方案和重调度方案中均有的工件。
由于右移重调度没有重新使用静态调度算法求解,仅可以算出各个目标函数值,因此没有对应的优化目标,而周期性重调度是对新的工件进行安排调度,因此优化目标还是最小化最大完工时间和总拖期,只有发生扰动事件后实施局部重调度、完全重调度,其优化目标才是最小化最大完工时间、总拖期以及工序偏离度。
所述的步骤4具体为:
步骤4.1:根据不同扰动事件确定对应的重调度方法;
(1)在途物料延迟到达
当在途物料延迟到达时,缺料工序的物料齐套时间也会发生变化,因此原有的静态调度方案便不再适用,由于缺料情况往往并不是针对个别订单的情况,具有一定的普遍性,因此可以针对该扰动事件实施局部重调度方法,在当前调度加工窗口中调整工序开始加工的时间,使得受到影响的工序任务靠后执行,也可能存在延迟到达的物料到达时间在当前调度加工窗口内时间段中过于靠后的情况,此时可以将重调度触发点计算公式中的比例因子调小,使得周期性的重调度提早进行,避免机器使用率低下。
(2)机器故障
对于机器故障这一类扰动事件,如果机器在进行加工任务时发生故障,可以视作对应工序的加工时间变长,对于第i个工件的第j道工序在发生机器故障后的完成时间,包括了机器故障前的加工时间、工件转移时间、机器修复时间以及机器修复后的加工时间等。由于机器在发生故障后修复时间不固定,使用工序的重调度指数计算公式来判断机器故障的扰动程度,计算公式为
式(10)中,δij是i个工件的第j道工序的重调度指数,LTij是第i个工件的第j道工序在发生机器故障后的预计完成时间,ETij是第i个工件的第j道工序在发生机器故障前的正常完成时间,是第i个工件的第j道工序的扰动容限系数。
根据重调度指数计算公式,对于机器故障下的扰动,在获得重调度指数的数值大小后,定义不同的干扰程度,如果δij<0,表示机器故障对于车间生产的干扰较小,实施右移重调度方法;如果δij≥0,表示机器故障对于车间生产造成了较大干扰,执行局部重调度方法。
(3)紧急插单
对于扰动事件是紧急插单的情况,由于订单处理的紧迫性,因此可以实施局部重调度方法,将该紧急订单直接加入到当前的调度加工窗口内重新进行静态调度方案的确定,此时调度加工窗口内的工序任务数会变多,最大完完工时间也会变长,对于该紧急订单,如果交付期太紧张可能会影响到其余订单的正常交付,造成总拖期的提高。另外,由于紧急插单对应的订单其物料需求信息是未知的,由于在途物料是为了满足已有订单的生产需求,因此可能会引发新的缺料扰动,此时会引发新一轮的在途物料运输任务,如果在此之前还有在途物料的运输,那么就要根据两次物料送达时间来确定当前调度加工窗口内的静态调度方案。
(4)订单交付期提前
如果是生产中的订单交付期提前:该订单对应的工件处于调度加工窗口中,系统将评估当前调度方案继续执行后的性能指标,当维持原有静态调度方案导致生成性能较差时,可以实施局部重调度方法,更改对应订单的交付期之后重新生成新的静态调度方案,否则继续按照原有静态调度方案安排生产;
如果是等待中的订单交付期提前:该订单对应的工件处于等待窗口中,根据订单排产优先程度的计算公式,重新计算正在生产中的订单、等待中的订单排产优先程度,如果发现这个等待中的订单排产优先级要比生产中某个订单更高,那么就要实施完全重调度方法,由于正在生产中的订单对应的工件位于滚动窗口的调度加工窗口内,而等待中订单对应的工件位于滚动窗口的等待窗口内,因此将两种订单在滚动窗口中的位置进行交换,重新进行静态调度方案的确定。如果重新计算完订单排产优先程度后,发现没有改变当前正在生产中订单的排产优先级,则不做出任何改变,继续按照已有的静态调度方案执行。
步骤4.2:确定动态调度整体实施策略;
不同扰动事件对应的重调度方法见表1所示,可以细分为6种情况。对于在途物料延迟到达的扰动,采取局部重调度方法;对于机器故障的扰动,根据干扰大小分别采取右移重调度和局部重调度方法;对于紧急插单的扰动,采取局部重调度;对于交付期提前的订单,根据该订单处于生产状态还是等待状态分别采取局部重调度以及完全重调度方法。当多种扰动事件在短时间内同时发生时,可考虑按照右移重调度<局部重调度<完全重调度的大小关系,在每一种扰动事件对应要采取的重调度方法中,选择最大的重调度方法执行。
表1不同扰动事件对应的重调度方法
根据表1所述的每一种扰动事件对应的重调度方法,车间中一旦发生了扰动事件,系统要能根据具体的扰动事件进行合理的决策,并重新生成调度方案提供给车间进行执行。本发明采用周期性与事件驱动重调度触发机制,结合具体的重调度方法,重调度执行流程见图2所示。
在车间执行初始静态调度方案后,每到达下一个周期性重调度触发点时进行周期性重调度,如果在此期间发生了扰动事件,那么执行事件驱动型重调度,确定将要采取的重调度方法,在生成新的静态调度方案后,根据其最大完工时间确定周期性重调度触发点,并在到达重调度触发点后,再一次进行该重调度执行流程。

Claims (5)

1.一种物料限制下的柔性作业车间动态调度方法,其特征在于,包括:
步骤1:采用滚动窗口将柔性作业车间中的动态调度问题划分为若干连续区间内的静态调度问题,定义订单排产优先程度计算公式,用于确定加入调度加工窗口中的工件顺序;
步骤1.1:采用滚动窗口将柔性作业车间中的动态调度问题划分为若干连续区间内的静态调度问题;
采用滚动窗口技术时,工件分为四个部分,分别是已完成的工件、正在加工的工件、等待加工的工件和等待调度工件;窗口种类分为完工窗口、调度加工窗口、等待窗口三种;完工窗口内是已完成的工件,调度加工窗口内包括正在加工工件、等待加工的工件,等待窗口中是等待调度的工件,在每个调度加工窗口内都存在着一部分等待安排的工件,系统每次只对调度加工窗口内的这部分工件进行调度安排,发生扰动事件后,根据扰动影响程度决定是否重新确定调度加工窗口内的工件,并且只对调度加工窗口内的工件进行调度方案的确定,以最大程度减轻扰动事件对车间生产的稳定性影响;
步骤1.2:定义订单排产优先程度计算公式,用于确定加入调度加工窗口中的工件顺序;
所述订单排产优先程度计算公式,如下:
若第i个订单是对第j种产品的需求,那么其排产优先程度Pi计算公式为
上式中,Di为订单i的交付期,t为当前时间,ε为避免Di-t为0或者负数的极小常量,Ri为订单i的产品需求数量,nj为生产第j种产品时的工序数,Tjk为第j种产品的第k道工序的平均加工时间,β为车间中物料种类数量,Sk和Matik分别为第k种物料的现存量和订单i对第k种物料的需求量,αk为判断Matik是否为0的系数,如果Matik=0则αk=0,否则αk=1。
对每个订单完成了订单排产优先程度的确定后,根据排产优先程度从小到大排列得到每个订单的排产优先级,并依次将订单中的工件加入调度加工窗口中,确定静态调度方案;
步骤2:确定柔性作业车间中静态调度问题的目标函数和编解码方案,定义染色体之间的距离,采用三种不同的父代配对规则生成子代,引入基于编码邻域的排挤机制,并确定改进后的NSGA-II算法整体实施流程;
步骤2.1:确定柔性作业车间静态调度问题的目标函数和编解码方案;
以最小化最大完工时间和最小化总拖期为目标建立柔性作业车间静态调度优化模型,并使用NSGA-II算法作为模型求解的基础算法;设n为工件总数,Ci为第i个工件的完工时间,Di为第i个工件的交付期,那么最大完工时间的计算公式为:
总拖期的计算公式为:
对染色体的编码方案采用产品-工序-机器的三段式编码的设计,在三段式编码中,根据步骤1的结果确定:第一段产品编码对应产品物料分配优先级,从左到右扫描,越早出现的产品种类序号,物料分配的优先级越大;在第二段工序编码中,每个工件的工序都用相应的工件序号表示,从左到右第k次出现的工件序号,表示该工件的第k道工序;第三段机器编码中,从左到右依次是每一个工件在每道工序的加工机器;通过产品编码来确定产品的物料分配优先级,以此来确定每一道缺料工序的物料齐套时间,然后采用插入式贪婪解码算法将染色体经过解码后获得调度方案,并计算出目标函数值;
步骤2.2:定义染色体之间的距离;
步骤2.3:使用三种不同的父代配对规则生产子代;
在NSGA-II算法的精英策略实施前,父代种群会通过选择、交叉、变异操作生成子代种群,然后通过精英策略将合并后的父子种群通过偏序关系从前往后依次挑选个体组成下一代新种群,为扩大算法的搜索范围,首先对父代个体进行快速非支配排序和拥挤距离计算获得偏序排列,然后使用三种父代个体的配对选择规则来生成子代个体,分别是:
(1)相邻配对:选择相邻的染色体之间两两配对;
(2)最远配对:选择距离当前染色体最远还没有配对的染色体进行配对;
(3)随机配对:随机挑选染色体进行配对;
父代染色体通过上述配对规则进行交叉操作,最终会生成数量为3L的子代种群,再对个体进行变异操作,加上父代染色体后的种群总数量为4L;
步骤2.4:选择最优的个体成下一代总群个体;
步骤2.5:确定改进后的NSGA-II算法整体实施流程;
步骤2.5.1:随机初始化种群个数为L的种群个体;
步骤2.5.2:对种群采用快速非支配排序和拥挤距离的计算,确定个体之间的偏序;
步骤2.5.3:对父代种群采用不同的匹配规则选择个体执行交叉算子,并执行变异算子,生成数量为3L的子代种群,并将父子种群合并使得个体数量达到4L;
步骤2.5.4:计算种群中每个个体与其它个体之间的距离,用矩阵的形式表示为Dis;
步骤2.5.5:在精英策略中使用基于编码邻域的排挤机制,筛选出数量为L的种群个体;
步骤2.5.6:对种群采用快速非支配排序和拥挤距离的计算,确定个体之间的偏序;
步骤2.5.7:如果到达最大迭代次数,则输出Pareto最优解集,否则跳转到步骤2.5.3;
步骤3:确定重调度触发机制、应对扰动事件时采取的重调度方法以及执行重调度时的评价机制;
步骤3.1:确定重调度触发机制;
重调度触发点的计算公式为
t′=t+αf1
式中,t是当前时间,t′是下一个周期性重调度的触发点,f1是调度加工窗口内的静态调度方案确定的最大完工时间,α是比例因子,取值范围为[0.5,1];
步骤3.2:确定应对扰动事件时采取的不同的重调度方法;
步骤3.3:确定执行重调度的评价机制;
采用工序偏离度来表示工序在原静态调度方案与重调度方案之间的偏差时间,来评价执行重调度,用公式表示为:
式中,n是工件数量,ni是第i个工件的工序数,Bij和Bij分别是第i个工件的第j道工序分别在重调度方案和原静态调度方案中的开工时间,f3的计算仅考虑在原调度方案和重调度方案中均有的工件;
步骤4:给出不同扰动事件下的重调度方法,并确定动态调度的整体实施策略;
步骤4.1:根据不同扰动事件确定对应的重调度方法;
步骤4.2:根据实际情况实行相应的重调度;
当在途物料延迟到达时,实施局部重调度;
当机器故障时,若机器故障干扰较小,实施右移重调度,若机器故障干扰较大,实施局部重调度;
当紧急插单时,实施局部重调度;
当订单交付期提前时,若订单处于生产中且需执行重调度,实施局部重调度,若订单处于等待中且需执行重调度,实施完全重调度。
2.根据权利要求1所述动态调度方法,其特征在于,所述步骤2.2中定义染色体之间距离的方法,包括:
在应用编码邻域使用排挤机制前,需要为染色体中的每一段编码空间中定义距离,在三个编码空间中定义的距离分别为:
(1)产品编码:在产品编码中的距离设置为Kendall Tau距离,该距离是通过交换相邻位置元素使得两段排列相同的最小操作数,视作以一个排列为标准,另一个排列的逆序数;
(2)工序编码:在工序编码上的距离设置为Levenshtein距离,该距离编是将一个编码转换成另一个编码所需的最少编辑操作次数,编辑操作包括插入一个元素、删除一个元素、替换一个元素;
(3)机器编码:在机器编码上的距离设置为Hamming距离,该距离是指两端编码中对应位置的不同字符个数;
设产品编码长度为l1,工序编码、机器编码的长度均为l2,那么三个编码空间中最大值分别为l1(l1-1)/2、l2、l2,最小值均为0,在每一段编码计算出距离后,使用常用的最小最大值归一化方法将数据映射到[0,1]之间,计算公式为:
上式中,xnorm归一化后的距离,x为原始距离,xmax、xmin分别为所在编码空间中的最大距离和最小距离。
最终种群中个体之间的距离采用欧氏距离,计算公式为:
上式中,X1、X2是两个染色体个体,x1、x2、x3分别是X1、X2在三段编码上归一化距离。
3.根据权利要求1所述动态调度方法,其特征在于,所述步骤2.4中引入的基于编码邻域的排挤机制,包括:
首先计算出种群中每个个体之间的距离,设Dis为个体之间的距离矩阵,Dis(i,j)表示第i个染色体与第j个染色体之间的距离,如果第i个染色体将要保留进入到下一代,那么其要排挤的个体集合为:
Seti={j|Dis(i,j)<=r,1≤j≤4L,j≠i}
在Seti中,当存在之前已经被排挤掉的个体,对于邻域半径r的取值,根据编码空间中的最小非零距离,选取几个固定大小的值,定义邻域半径向量radius为:
上式中,r1、r2、r3分别为在三个编码空间中的最小非零距离,即在每个编码空间中两个差异最小且不同的编码之间的归一化距离;
邻域半径r从radius中的末尾元素开始取值,如果在精英策略实施结束时,种群数量无法达到L,那么重新执行排挤机制,并取radius中前面一个元素,在radius中第一个元素设置为-1是为了保证算法一定可以选取到数量为L的个体进入到下一代,此时算法退化到原始的NSGA-II算法精英策略,没有排挤掉任何个体,具体步骤为:
(1)对种群中所有个体进行保留状态标记;
(2)根据偏序关系将所有个体构成一个偏序排列,从前往后依次选取处于保留状态的个体,并取消该个体邻域范围内的个体保留状态标记;
(3)在偏序排列中保留处于非支配层的个体,并去除剩余没有保留标记的个体;
(4)判断偏序排列的个体数是否小于L,如果小于L那么跳转至步骤(5),否则跳转至步骤(6);
(5)根据邻域向量radius缩小邻域半径r的范围,跳转至步骤(1);
(6)在偏序排列中选择前L个成为下一代的种群个体。
4.根据权利要求1所述动态调度方法,其特征在于,所述步骤3.2的具体方法为:
基于滚动窗口的重调度方法有三种,分别是右移重调度、局部重调度以及完全重调度;
所述右移重调度是将受到影响的工序在原有静态调度方案甘特图中基于右移的方式来调整,受影响的工序会延期开工,而部分工序会根据机器空闲时间大小向前插入或者右移,从而使得新的调度方案受到的影响最小;
所述局部重调度只对调度加工窗口内的工件进行重调度,等待窗口中的工件不受任何影响;
所述完全重调度为考虑到受到影响的工序任务较多,如果在重新计算排产优先程度后,发现该订单的排产优先级升高使得该订单与调度加工窗口中的某个订单互换了位置,那么需要对较多的工件进行重新调度安排,具体的操作是锁定正在加工的工序任务,将被置换订单的未完成工件放入等待窗口中,以等待下一次周期性重调度时刻到达,继续安排完成剩余未完成的工序任务。
5.根据权利要求1所述动态调度方法,其特征在于,所述步骤4.1的具体方法为:
(1)在途物料延迟到达;
当在途物料延迟到达时,缺料工序的物料齐套时间也会发生变化,因此原有的静态调度方案便不再适用,由于缺料情况并不是针对个别订单的情况,因此针对该扰动事件实施局部重调度方法,在当前调度加工窗口中调整工序开始加工的时间,使得受到影响的工序任务靠后执行,也存在延迟到达的物料到达时间在当前调度加工窗口内时间段中过于靠后的情况,此时将重调度触发点计算公式中的比例因子调小,使得周期性的重调度提早进行,避免机器使用率低下;
(2)机器故障;
对于机器故障这一类扰动事件,如果发生故障的机器进行加工任务,视作对应工序的加工时间变长,由于机器在发生故障后的修复时间不同,同时需要考虑工件转移以及发生机器故障时对应工序的后置工序会延期开工的情况,对于第i的第j工序在发生机器故障后的完成时间,包括了工件转移、机器修复以及继续加工的时间,使用工序的重调度指数计算公式来判断机器故障的扰动程度,计算公式为:
式中,δij是i个工件的第j道工序的重调度指数,LTij是第i个工件的第j道工序在发生机器故障后的预计完成时间,ETij是第i个工件的第j道工序在发生机器故障前的正常完成时间,是第i个工件的第j道工序的扰动容限系数;
根据重调度指数计算公式,对于机器故障下的扰动,在获得重调度指数的数值大小后,定义不同的干扰程度,如果δij<0,表示机器故障对于车间生产的干扰较小,实施右移重调度方法;如果δij≥0,表示机器故障对于车间生产造成了较大干扰,执行局部重调度方法;
(3)紧急插单;
对于扰动事件是紧急插单的情况,由于订单处理的紧迫性,因此实施局部重调度方法,将该紧急订单直接加入到当前的调度加工窗口内重新进行静态调度方案的确定,此时调度加工窗口内的工序任务数会变多,最大完工时间也会变长,对于该紧急订单,如果交付期太紧张会影响到其余订单的正常交付,造成总拖期的提高;另外,由于紧急插单对应的订单其物料需求信息是未知的,由于在途物料是为了满足已有订单的生产需求,因此会引发新的缺料扰动,此时会引发新一轮的在途物料运输任务,如果在此之前还有在途物料的运输,那么就要根据两次物料送达时间来确定当前调度加工窗口内的静态调度方案;
(4)订单交付期提前;
如果是生产中的订单交付期提前:该订单对应的工件处于调度加工窗口中,系统将评估当前调度方案继续执行后的性能指标,当维持原有静态调度方案导致生成性能较差时,可以实施局部重调度方法,更改对应订单的交付期之后重新生成新的静态调度方案,否则继续按照原有静态调度方案安排生产;
如果是等待中的订单交付期提前:该订单对应的工件处于等待窗口中,根据订单排产优先程度的计算公式,重新计算正在生产中的订单、等待中的订单排产优先程度,如果发现这个等待中的订单排产优先级要比生产中某个订单更高,那么就要实施完全重调度方法,由于正在生产中的订单对应的工件位于滚动窗口的调度加工窗口内,而等待中订单对应的工件位于滚动窗口的等待窗口内,因此将两种订单在滚动窗口中的位置进行交换,重新进行静态调度方案的确定。如果重新计算完订单排产优先程度后,发现没有改变当前正在生产中订单的排产优先级,则不做出任何改变,继续按照已有的静态调度方案执行。
CN202310720569.4A 2023-06-16 2023-06-16 一种物料限制下的柔性作业车间动态调度方法 Pending CN116774658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310720569.4A CN116774658A (zh) 2023-06-16 2023-06-16 一种物料限制下的柔性作业车间动态调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310720569.4A CN116774658A (zh) 2023-06-16 2023-06-16 一种物料限制下的柔性作业车间动态调度方法

Publications (1)

Publication Number Publication Date
CN116774658A true CN116774658A (zh) 2023-09-19

Family

ID=88007444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310720569.4A Pending CN116774658A (zh) 2023-06-16 2023-06-16 一种物料限制下的柔性作业车间动态调度方法

Country Status (1)

Country Link
CN (1) CN116774658A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117522090A (zh) * 2024-01-08 2024-02-06 佛山市达衍数据科技有限公司 一种制衣生产的动态调度方法、系统和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117522090A (zh) * 2024-01-08 2024-02-06 佛山市达衍数据科技有限公司 一种制衣生产的动态调度方法、系统和存储介质
CN117522090B (zh) * 2024-01-08 2024-05-07 佛山市达衍数据科技有限公司 一种制衣生产的动态调度方法、系统和存储介质

Similar Documents

Publication Publication Date Title
CN103530702B (zh) 一种基于瓶颈设备分解的大规模作业车间调度方法
CN107065803B (zh) 基于可变重调度区间的柔性作业车间动态调度方法
CN110288185B (zh) 一种分布式柔性流水线调度方法
Wang et al. Determining the number of kanbans: A step toward non-stock-production
CN116774658A (zh) 一种物料限制下的柔性作业车间动态调度方法
CN110414863A (zh) 一种智能制造车间资源调度方法
CN111861167A (zh) 基于分解的多目标优化算法的生产线在线动态调度方法
CN111626496B (zh) 一种柔性装配作业车间调度的混合优化方法
CN114881504B (zh) 一种基于订单选择的电子精密件全自动柔性生产线调度方法
CN114841581A (zh) 基于gep-vns进化动态作业车间调度规则中的特征选择方法
CN113313551A (zh) 一种订单处理方法、系统、电子设备及存储介质
Chaudhry et al. No-wait flowshop scheduling using genetic algorithm
ElMaraghy et al. A genetic algorithm based approach for scheduling of dual-resource constrainded manufacturing systems
CN113569484A (zh) 基于改进人工蜂群算法的动态多目标柔性作业车间调度方法
CN116090676B (zh) 一种基于多目标优化的aps排产方法及aps排产系统
Reisi et al. Minimizing the number of tardy jobs and maximum earliness in the single machine scheduling using an artificial immune system
Pei et al. Coordination of production and transportation in supply chain scheduling
CN113485278B (zh) 优化两生产指标的柔性作业车间调度多目标分布估计方法
CN113110331B (zh) 一种订单式机器人冲压单元排版选配与调度集成优化方法
Wang et al. Hybrid Kanban/Conwip control system simulation and optimization based on theory of constraints
CN117114370B (zh) 一种适配设备故障的小产品生产车间调度方法
Xiao et al. A MILP-based batch scheduling for two-stage hybrid flowshop with sequence-dependent setups in semiconductor assembly and test manufacturing
CN112734286B (zh) 一种基于多策略深度强化学习的车间调度方法
Wang et al. GENETIC ALGORITHMS WITH A NEW REPAIR OPERATOR FOR ASSEMBLY JOB SHOP SCHEDULING.
He et al. Research on job shop scheduling aiming at instant customerisation

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