蔡跃坤,朱智鹏,谭 冲
(广东科技学院 机电工程学院,广东 东莞 523083)
随着时代的发展,人们对个性化产品的需求日益增长,一种新型的制造服务模式C2M(Customerto-Manufacturer)应运而生。C2M通过互联网使消费者和生产线得以连结在一起,从而可以取消掉中间周转环节,用户直接参与产品的设计与制造过程,以生产符合用户需求的定制化产品[1-2]。C2M以开放式结构产品(Open Architecture Product,OAP)为实现形式,将产品分为可大批量生产的通用模块、用户适应的大批量定制模块和完全由用户设计的个性化定制模块[3-4]。一方面,OAP为客户端提供了个性化定制的服务,满足了客户的消费需求。另一方面,OAP通过制造模块的划分,为企业制造端降低了制造成本。制造能力强的企业或车间生产大规模通用或定制模块零部件,而柔性能力强的企业或车间则生产客户个性化模块产品零部件,最终通过企业或车间的协作,为客户提供个性化产品定制服务。
在智能制造生产调度方面,国内外学者做了许多研究,主要集中在以下几个方面:基于数据挖掘的动态生产调度[6-8],主要是利用制造车间的加工数据进行训练,挖掘其与生产系统相映射的调度规则;在制造物联的环境下利用分布式协同控制的多智能体技术来实现实时生产调度[9-12],一般有两种解决方案。第一种是借用CPS(Cyber-Physical Systems,CPS)理念,在虚拟空间中建立与制造实体以及工件、AGV(Automatic Guided Vehicle)相对应的智能体,通过智能体的交互得出实时调度策略再反馈控制到制造实体上。另一种方案是使用嵌入式多智能体技术,直接嵌入到制造实体中,最终也同样通过智能体交互作出实时调度策略。在智能制造的研究对象方面来说,目前大多数研究都仅针对传统的生产制造模式,在考虑多种不同的约束条件下进行研究[13-14]。
总的来说,要实现智能制造生产调度,就必须要利用好实时制造数据来作出相应的实时调度策略。而C2M制造服务模式对制造车间的柔性化、数字化和智能化能力提出了更高的要求。因此,在智能制造的背景下,研究C2M制造服务模式的生产调度模块具有重要意义。
以柔性作业车间(Flexible Job Shop)作为C2M制造服务模式的最小量化单位展开研究。在智能柔性作业车间中,依托制造物联网,订单任务数据以及制造数据可以被实时采集与传输到CPS(Cyber Physical Production)。如图1所示,智能工厂柔性作业车间生产调度模块基本架构如下:
图1 智能制造生产调度模块示意图Figure 1 Schematic diagram of intelligent manufacturing production scheduling module
(1)ERP(Enterprise Resource Planning)层:收集来自客户的订单数据,并将订单进行分解得到通用模块子任务、定制模块子任务和个性化模块子任务,子任务进一步工序分解得到产品各阶段加工工序。
(2)MES(Manufacturing Execution System)层:收集来自于ERP层的订单数据和来自于制造层的实时制造数据,根据两类数据作出实时调度决策,并反馈到制造层各制造实体。
(3)制造层:实体制造设备如机床、AGV等实现人-设备、设备-设备互联,并通过无线射频RFID(Radio Frequency Identification)等技术实现数据的实时采集,将实时数据传输到MES层。
整个生产调度过程是由自感知-自决策-自执行-自适应的闭环结构组成:
自感知:订单到达与任务工序分解、实时制造数据;
自决策:MES中调度模块作出实时调度决策;
自执行:调度决策通过网络传输、PLC控制等传达到调度参与设备;
自适应:识别紧急插单和设备故障等扰动事件,作出重调度决策,修正调度方案。
针对上述C2M制造服务模式的智能工厂柔性作业车间生产调度问题,作出如下假设:
(1)在C2M制造服务模式中,客户订单随机出现,无法预测。针对该情况,本文采用先到先服务与周期性调度结合的方式进行,并假设订单的交货期远大于等待加工及加工时间之和。
(2)在先到先服务与周期性调度的情况下,仍有特别紧急的订单存在。
(3)加工时间、等待时间等数据可以被实时记录与传输。
(4)每道工序可以在至少一台机床上加工,且工序在不同机床上的加工时间已知。
在C2M制造服务模式智能工厂中,先将一段周期内的订单全部进行任务分解得到N个子任务,用Fi来表示,其中,i={1,2,…,N}。每个子任务都可以在M个制造资源上加工。其中,任意的加工机床设备用k表示,k={1,2,…,M}。每个子任务都有L道加工工序,其中,j={1,2,…,L},产品的任务i中的第j道工序用Fij来表示。选取最小化最大总加工时间为该调度问题的优化目标,目标函数如下:
式中:hijk表示工序是否在设备k上加工,具体由(4)式表示;si表示子任务Fi所对应的工件数量;tijk表示任务i中的第j道工序在机床k上面的加工时间;式(2)表示任务的工序有一定的顺序约束;式(3)表示同一机床上的待加工任务顺序约束;式(5)表示加工总时间T必须小于交货期约束Tmax。
麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种新的群智能搜索算法[5]。在实际的优化过程中,该算法容易收敛于零点和当前最优解点,易陷入局部最优。基于此,本文设计一种基于遗传算法(Genetic Algorithm,GA)与麻雀搜索算法融合的寻优算法,相较于SSA,GA具有更强的全局搜索能力。因此,GA-SSA算法既保留了SSA的简单、灵活、参数少等优点,同时也能兼顾全局寻优能力。
SSA算法具有发现者、加入者和警戒者三种角色。发现者寻找食物,为种群其他个体提供觅食方向;加入者根据发现者提供的信息觅食;发现者和加入者都可以发现捕食者,都可以扮演警戒者角色。也就是每只麻雀有三种可能的行为:第一,作为发现者,继续搜索食物;第二,作为跟随者,跟随一个发现者觅食;第三,警戒侦查,有危险则放弃食物。每经过一次迭代都要对位置进行一次变更,其位置变更精确表达式如下:
其中,式(6)表示每一次迭代后的发现者位置更新策略;式(7)表示跟随者经过迭代后的位置更新策略;式(8)表示警戒者的位置更新策略。式(6)~式(8)字母具体释义可参考文献[5],这里不再具体解释。
C2M制造服务模式需要将订单划分为子任务和工序集,因此本文提出一种双层编码的方式对任务和工序进行编码,如图2所示。染色体的第一层表示子任务编号以及所对应的的工序,例如第一层出现的第一个3表示第3个任务的第一道工序。染色体第二层表示子任务所对应的订单产品,例如第二层出现的第一个1表示订单产品1的第3个子任务的第3道工序。这里子任务编号1-3分别表示为通用模块子任务、定制模块子任务、个性化模块子任务。
图2 编码方式Figure 2 Encoding method
由于SSA每个个体的位置是离散的,用D维位置空间向量X=(x1,x2,…,xd)表示,则本文编码方式对应的麻雀位置解读为,麻雀x1标记为个性化模块的第3个任务的第1道工序,以此类推。
在编码机制中,下层编码会随着上层编码的变化而变化,因此在执行交叉和变异操作时,只需要对上层编码进行交叉变异即可。通过提前设定合理的交叉变异概率,增强SSA全局搜索能力,同时也能最大程度上保留SSA简单、灵活和高效的算法特点。
在GA-SSA算法里,适应度值越高则表明被选择保留的几率越大。本文适应度函数与目标函数结合,由于目标函数是最小化最大总加工时间,这里取目标函数的倒数为适应度函数,即f(x)为:
其中,minT表示本文求解的目标函数值,即最小化总加工时间。
结合GA和SSA,设计算法流程如图3所示,具体步骤如下:
图3 算法调度流程Figure 3 Algorithm scheduling process
Step1:设置算法相关参数,种群初始化,区分发现者与跟随者;
Step2:进行位置更新操作,计算并保留适应度值;
Step3:个体与个体随机交叉,计算适应度值,比较保留较好适应度值对应位置;
Step4:判断是否达到预设迭代次数,如未能达到则随机变异后返回step2,如达到则继续下一步骤;
Step5:算法结束,输出结果。
C2M智能工厂基于信息物联系统作为其生产架构,通过物联系统采集和传输制造实时数据。在实时数据的支撑下,对制造车间或订单产生的动态扰动作出实时重调度策略,最大程度上消除生产扰动带来的影响。
在生产制造中,会有紧急插单和设备故障等扰动情况发生。但在实际生产调度中,并不是一有扰动事件发生就开始实行重调度,而是需要判别扰动情况对生产系统产生的效能影响。频繁的重调度策略会降低生产系统的稳定性,从而增加不必要的制造成本。本文提出的效能影响判别机制具有制造延迟率和资源利用率两个指标,制造延迟率是越小越好,资源利用率越大越优,因此其判别机制如下:
式中:γ为制造车间产生扰动后,对工序加工产生的最大制造延迟率;β为资源利用率。式(12)中q为加工资源数;Toriginal为原始调度方案完工时间;TM表示制造资源的加工时间。γ与β的比值求得式(10)的效能偏差值δ。
根据实际加工情况可人为设置效能偏差阈值δ′。当生产系统效能偏差值δ≤δ′时,则认为此时不需要进行重调度,具体可以解释为此时生产系统产生的扰动影响可以忽略不计,对制造结果改变不大;当生产系统效能偏差值δ>δ′时,则此时扰动对生产系统影响较大,需要立即进行重调度。重调度流程如图4所示。
图4 重调度流程Figure 4 Rescheduling process
为验证GA-SSA算法的有效性,设置6×6仿真算例如下:有6个待加工工件,其子任务的每一道工序都可以在6台机床的至少一台机床上加工,实验数据如表1所示。
表1 仿真数据集Table 1 Simulation dataset
首先进行算法可行性验证,选取工件1~5作为算例,采用MATLAB对模型进行求解,设置参数如表2所示。
表2 参数设置Table 2 Parameter settings
为了评估GA-SSA混合算法的性能,在相同实验条件下,分别与GA和SSA算法做对比实验。求解优化变化曲线图如图5所示。算法运行结果对比如表3所示,GA-SSA在迭代40多次时得到最优解66,并且在收敛速度与最优解质量两方面均优于GA和SSA。
图5 算法求解最优过程Figure 5 Algorithm to solve the optimal process
表3 算法运行对比Table 3 Algorithm running comparison
为进一步验证重调度方案的可行性,以工件6作为紧急插单工件,此时生产系统效能偏差大于设置的阈值,紧急插单带来的生产扰动影响比较大,系统开始进行重调度。原始调度方案甘特图和重调度甘特图分别如图6和图7所示。
图6 静态调度甘特图Figure 6 Static Scheduling Gantt Chart
图7 重调度甘特图Figure 7 Rescheduling Gantt Chart
经过静态调度与动态调度实验对比,验证了本文所提出GA-SSA混合算法的优越性,以及本文提出的重调度策略的有效性。
本文针对面向C2M的智能制造生产调度问题,首先对C2M制造服务模式进行了分析,进一步提出将该生产调度任务分解为三个模块子任务以及加工工序。基于智能工厂的基本构架,提出基于物联网的ERP-MES-制造层联动的自感知、自决策、自执行和自适应调度方案。本文建立以最小化最大总加工时间为目标函数的优化模型,利用GA-SSA融合算法,不仅具有GA的良好全局搜索能力还具有SSA简单、灵活、收敛快速的算法特点,用以求解目标函数。同时,在周期性静态调度的基础上,本文还提出一种基于效能偏差判别机制的重调度策略,以实时对生产系统扰动事件作出响应。最后以一个6×6的算例验证了本文所提出调度方案的可行性与优越性。由于本文假设的条件相对比较多,未来的研究将会进一步接近于现实问题,以及研究C2M制造服务模式的物流规划等问题,希望对C2M模式以及智能制造的最终落地提供理论上的指导与借鉴。