钣金MES遗传算法的生产调度管理

【导读】
生产调度系统主要任务是制定生产计划(包括年度计划、季度计划、月度计划、周计划和日计划),合理安排车间生产,反馈生产过程中的各类异常情况,确保各部门之间协调高效运转,最
3.1生产调度系统的研究
  生产调度系统主要任务是制定生产计划(包括年度计划、季度计划、月度计划、周计划和日计划),合理安排车间生产,反馈生产过程中的各类异常情况,确保各部门之间协调高效运转,最大限度地提高经济效益。
 
  生产调度系统是企业的生产过程中决策层、管理层与执行层沟通的重要桥梁,加强了各个阶层之间的联系。生产调度系统实现了生产调度的整体优化,最终达到缩短生产周期、提高资金周转率、降低生产成本、提高质量和服务水平、快速准确交付、追求最佳社会化经济效益的目标。因此,准确的、及时的、有效的、合理的生产调度,是企业生产协调、有序、高效的保障。为适应客户对产品多品种小批量的个性化定制的趋势的需求,企业纷纷上MES来解决,而生产调度系统是其核心,亦是整个综合自动化集成系统的重要组成部分。
 
3.1.1生产调度系统的原理研究
  生产调度根据经营决策层制定的长期战略目标分解下来的长期经营目标(一般为3~5年的目标),分解为便于执行的短期计划(一般为3~6月的预测和需求),结合生产系统运转的情况,针对原材料供应、需求情况、生产设备稼动率、工艺切换的周期、设备产能、刀具能力、人员技能、工装夹具的适用性、瓶颈工序的加工能力等约束条件,进行合理的调配与安排,协调从原材料料供应到产品生产、检验、包装、入库、上架、分捡、发货的各个环节,均衡与控制整个生产过程,以适当的批量,降低生产成本,获得最大利润的目标。
 
图3-1钣金车间生产调度系统模型
 
  钣金车间生产调度系统规划设计模型如图3-1所示,其中计划层的职责是接受订单需求或销售预测需求,将需求放进ERP进行逻辑运算,ERP根据每种零件需求的库存和现场的在制品情况生成相应的工单,工单根据系统设置的生产生产周期数据,运算产生出工单的需求开始时间和结束时间,并按照产品线、交货期、零件类型等约束条件生成不同的生产计划,将确定的计划相关数据存放进ERP系统;车间层的生产调度人员定期在ERP系统读取计划层下达的计划需求生产工单信息,并根据车间当前工作进度、瓶颈工序能力、在制订单、库存数量、需求优先级等信息,调用算法库进行逻辑运算并进行生产调度,调度完成后将下达的计划工单存放数据库,调度员协调控制调度方案后制定出车间各个工序生产的日计划信息,车间根据日计划信息安排生产。车间生产调度的策略广泛运用的是调度策略和动态调度策略。
 
3.1.1.1主调度策略

  (1)确定主调度任务
  根据生产计划的生产数量和调度余量可以计算确定调度量,其中调度余量是计划员根据历史用量和未来几个月的预测来确定的。根据计划产品的生产数量,确定安排生产量,然后根据原材料供应、需求情况、生产设备稼动率、工艺切换的周期、设备产能、刀具能力、人员技能、工装夹具的适用性、瓶颈工序的加工能力以及产品的BOM表计算出计划的优先级,再根据优先级的高低选择车间相应的工序,并确定各道工序对应的加工设备、工作中心等制定生产计划,输出关键调度任务,最终确定车间主调度任务,如图3-2所示。
 
图3-2确定流程钣金车间主调度任务
 
  (2)调度算法与运行
  确定主调度任务后,再根据库存信息、工艺流程、资源状况、过程数据等制定出生产计划,将生产计划信息传递给生产调度系统,系统根据获取的信息和系统中设计的调度算法的参数,通过生产车间智能调度优化算法的运行运算生产出调度信息,将此信息交予生产进行执行,执行过程中将生产情况动态实时的传递给系统,系统再循环的调度,从而实现对生产主调度任务的调度。运行逻辑如图3-3所示。
 
图3-3钣金车间生产调度管理
 
  (3)调度结果的优化
  系统根据调度逻辑算法可以运算给出多个调度方案,生产调度人员可以根据车间的实际加工情况、人员与设备状态、需求优先级、在制的数量、生产效率、换线时间等信息,对调度方案的进行调整优化并给出判断,确保给出最佳的调度方案,并且该调度方案是合理的可执行的。
 
  (4)调度方案确定和管理
  调度结果满足实际需要后,将其存入相应生产任务表中,保存调度结果且作为生产调度指令的依据,同时生产管理人员可以方便快捷的查询到调度结果,并能提供每个工序简洁、完整基本加工信息。系统可以根据零件的优先级、需求的时间、加工的数量、订单的状态等信息进行排序,显示不同类型的加工信息,供生产人员对零件的加工状态进行不同需求的查询。
 
3.1.1.2动态调度策略
  动态调度策略模型中调度任务的确定流程如图3-4所示。
 
图3-4钣金车间动态调度任务流程
 
  动态调度与主调度类似,其区别在于动态调度可以根据需求、设备、刀具、人员、品质、资源、信息、工艺、规格等的状态变化而调整的正在加工的计划,通过对车间的生产计划进行及时的调整,确保生产加工的零件满足客户订单的需求。
 
3.1.2生产调度系统的功能分析
  本软件是一个可在开放的、动态的环境下制造系统里通用的管理软件,自动配套处理能力极强,可使用本系统可可解决动态的、复杂的组合优化调度问题,用于电器、电子、机械、服装、鞋帽、交通工具等制造业的生产调度与配套工作,大大的减少管理人员,减轻他们的工作量,提高工作效率,并可实时监控车间的运作状况,进行及时有效的调整,以满足生产的需要。本文所用系统的开发过程:
 
  (1)对钣金车间的工艺和流程进行分析设计,给出了钣金件生产调度系统功能模块、系统结构和系统流程等。
 
  (2)在分析设计的基础上,采用Visual Basic6.0+SQL Server 2000来实现钣金车间的生产调度系统。包括了产品信息管理、日计划达成管理、订单管理、生产工艺管理、生产设备管理、生产调度管理和效率分析模块。
 
  (3)生产调度管理与监控是本系统关键部分,实现了一个完整的调度生产流程和调度结果的信息显示。调度结果信息显示包括了调度结果信息的显示、实时动态运行和其他功能模块。
 
  钣金车间的生产调度系统包含产品信息管理、日计划达成管理、订单管理、生产管理、生产调度管理和效率分析等模块,如图3-5至图3-10所示。

  ①产品信息管理模块
 
图3-5生产调度系统产品信息库
 
  ②日计划达成管理界面模块
 
图3-6生产调度系统日计划达成管理
 
  ③订单管理模块
 
图3-7生产调度系统订单管理界面
 
  ④生产管理模块
 
图3-8-1生产调度系统生产管理界面(开始)
 
 
图3-8-2生产调度系统生产管理界面(结束)
 
  ⑤生产调度管理模块
 
图3-9生产调度系统订单管理界面
 
  ⑥效率分析模块
 
图3-10生产调度系统效率分析界面



 
3.2基于遗传算法的生产调度理论研究
  作业车间调度问题相对于流水线调度问题更加复杂,具有更高的灵活性,应用范围广,求解此类问题也尤为困难,也是许多实际生产调度问题的简化模型,车间调度就属于已经简化的开放车间的确定性动态调度问题,只研究工件的加工顺序,不考虑加工批量。马晓兰在基于遗传算法的生产调度问题研究一文中给出了详细的阐述。作业车间调度问题求解远远要比流水线车间调度问题复杂,有以下几个方面原因:
  (1)调度解的编码和算法的搜索操作复杂且多样化;
  (2)解的空间容量巨大,排列组合方法,找到最优解耗时长;
  (3)限制的约束条件多,解的可行性必须考虑;
  (4)调度指标运算复杂且耗时。
 
  在车间实际生产调度过程中,需要考虑需求加工零件的工单批量和生产中瓶颈资源的分配,作业调度时并没考虑此因素,而是将资源作为约束处理。本论文主要考虑的是作业车间的订单批量大的生产调度问题,不可行和非法性问题运用修复策略处理。构造作业车间的生产调度问题的遗传算法最关键是将遗传算子设计的是否合理,尤其是在特殊情况和异常情况下,在短时间内运算数据量不够充分时产生的染色体也能够生成可行的调度是非常重要的。
 
  目前为止,作业车间调度问题中的先后约束还无法用一个系统不等式来表达,这类问题采用修复非优化或非法的染色体来提高染色体的性能,加快搜索速度,寻找最优解。本论文基于这点提出一种基于工件交叉和基于位置交叉的遗传算法,通过对两种算法的调度结果、收敛特点和运行时间等方面在解决作业车间调度问题上差异分析,最终确定采用基于工序的编码方法作为本系统的算法。遗传算法的设计实现过程如图3-11所示。

图3-11遗传算法的设计实现过程
 
3.2.1基于工序的编码方法研究
  遗传算法的运行是通过对表示可行解的个体编码进行选择、交叉、变异等遗传操作运算运行过程来达到优化目的。编码根据问题的性质,用代表一定意义的码来表示问题的解,将问题的状态空间与GA的解码空间相对应。遗传算法通过操作个体编码,不断搜索出适应度较高的个体,通过不断增加群体数量,最终得到问题的最优解或近似最优解。
 
  作业车间生产调度问题可描述为n个零件在m台设备上加工,各工件的加工工序以及在该工序的加工时间已知。基于工序的编码方法将每个染色体用n×m个基因组成的一个代表所有零件的排列,每个零件都可以在m个设备上加工,每个基因是指有上下依赖关系的工序,并非指某零件的具体工序,从而保证了工件满足相关的技术约束条件(工序之间的顺序约束、同一零件同一时刻只能在一台设备上加工、一台设备同一时刻只能加工一个产品、加工一旦开始不能中断等),即可得染色体的任意排列的可行调度。
 
  用X={X1,X2,…,Xm×n}表示各零件各工序基于作业加工顺序的一个排列,即一条染色体,其中Xk=i(1≤i≤n,1≤k≤n×m)。如果Xk是染色体X中从X1到Xk的第j(j≤n)个i,则表示工件i的第j个工序。用基于工序的编码方法对3零件3设备的作业车间问题(如表3-1所示)进行编码,随机给出染色体为(322112313),其中:1表示零件j1,2表示零件j2,3表示零件j3。
 
 
  每个零件在每个染色体中出现3次。例如:在染色体中出现的3个3表示零件j3的3个加工工序,工序顺序由表3-1中设备加工顺序决定,将染色体解释为可行的调度如图3-12所示。
 
图3-12染色体解码为可行的调度
 
  设备1上零件的加工顺序为2-1-3,设备2上零件的加工顺序为3-1-2,设备3上零件的加工顺序为2-1-3。根据3个设备上各个零件的加工顺序,可以得到一个可行调度甘特图如图3-13所示。
 
图3-133×3调度甘特图
 
3.2.2基于工序编码的解码研究
  解码时是根据工序的加工顺序,赋予染色体对应的设备号,从而得到可行调度。对于染色体X={X1,X2,…,Xm×n},用k(i)保存当前第i个零件的工序代号,该解码过程就是将染色体X={X1,X2,…,Xm×n}中的每一个基因(零件号)按照其出现的次序解码成每个零件的工序,如图3-14所示。例如,对4个工件3台设备(4×3)的调度问题,对于染色体[241132421343],可以解码为:首先加工零件2的第1个工序,接下来是零件4的第1个工序,然后是零件1的第1个工序,接着是零件1的第2个工序……,根据设备顺序和加工时间矩阵得出每个基因在对应的设备上加工的加工时间,从而完成一个调度方案。
 
图3-14基于工序编码的解码算法过程图
 
3.2.3适应度函数的选择
  适应度函数(Fitness Function,FF)也叫评价函数,它是根据所求问题的目标函数来进行评估的,是用来判断群体中的个体的优劣程度的指标,也是优化过程发展的依据。遗传算法进行进化搜索时仅以适应度函数为依据,用种群每个个体的适应度来进行搜索,适应度函数选取直接影响到遗传算法的收敛速度以及能否找到最优解。
 
  解决简单的最小化问题通常是直接将目标函数变换成适应度函数即可,但对于复杂的优化问题,需要建立合适的适应遗传算法适应度函数,并能够使其进行收敛优化,一般采用线性变换或指数变换对原来适应度间的比例关系进行调节来获得最优解。在适应度函数的选择过程中经常会碰到以下两个遗传算法的欺骗问题:
 
  (1)在遗传进化初期,通常会产生一些控制了选择过程且竞争力比较突出的超常个体,使算法的全局优化性能受到影响。
 
  (2)在遗传进化后期,即算法接近收敛时,可能因种群中某些优化的潜能较小的个体优化能力降低而只能获得某个局部最优解。适应度函数选择不当可能出现以上的欺骗问题,适应度函数的选择对于遗传算法的实际意义非同一般。适应度函数的设计应尽可能简单并使计算的时间复杂度最小,遗传算法评价一个解的优劣是取决于解的适应度值而不是解的结构。适应度函数的设计也就需要满足以下条件:

  ①一致性好且合理;
  ②运算量小;
  ③唯一值、连续性、正值、最大化;
  ④适应性强。
 
  一般来说,适应度函数是由目标函数变换而来。本文研究的是调度算法的优化目标是求零件最大完工时间最短,运用目标函数的倒数将其转化为适应度函数,遗传算法是通过反复迭代得到适应度函数最大值。
 
3.2.5交叉算子设计
3.2.5.1基于位置交叉的算子设计
  基于位置的交叉方法是在染色体中随机产生多个交叉位置,后代染色体继承父代1交叉位置的基因,然后按照父代2中的基因顺序产生染色体剩余的部分。由于常采用基于工序的编码方法求解作业车间调度问题,因此,这种交叉方法比较随机往往具有很大的变动性,未保留父代染色体中每个工件各道工序的相对位置。对于一个4×3调度问题,选择两个父代染色体进行基于位置的交叉,交叉位置集合为{1,4,7,9},交叉方法如图3-15所示。
 
图3-15基于位置交叉的操作示意图
 
  从图3-15中可以看出子染色体中每个基因的来源,在图中用箭头指向中表示,注意到子染色体中的第二个1(代表子染色体中工件1的第2道工序)来自于父代2的第三个1(父代2中工件1的第3道工序),而子染色体中的第三个1继承了父代1的第二个1(父代1中工件1的第2道工序)。子染色体中工件1的工序发生了乱位,工件1的第3道工序置于第2道工序前面。
 
3.2.5.2基于工件交叉的算子设计
  基于位置的交叉因交叉比较随机而具有很大的变动性,为保证染色体有效交叉,提高搜索速度和最优解的质量,本论文设计了一种基于工件交叉的算子。
 
  令染色体X={X1,X2,…,Xi}(1≤i≤n),零件i出现m次,记零件i在染色体中的位置集合为K={ki1,ki2,…,kim},其中kij表示零件i的第j个工序所在的位置,其交叉操作示意图如图3-16所示。
 
图3-16基于零件交叉的操作示意图
 
  随机从所有零件中选择两个零件{2,3}由父代2可知,零件2,3的位置集合为KK={1,2,6,7,10,11},将父代2中集合KK位置上的基因复制到中间染色体,然后将父代1中不是2、3的基因依次插入中间染色体,即可得新的子染色体。同理可得另一子染色体,交叉算子通过这种方式获得新的子染色体。
 
3.2.6变异算子设计
  变异算子操作就是要防止当交叉操作没有达到最优时早熟收敛且不再进化后代产生的适应值,从而增加种群的多样性。本文采用两点换位法(交换任意两个位置的基因),对染色体X={X1,…,Xi,…Xj,…XnXm},随机选取两点i、j,交换两点的基因可得X={X1,…,Xj,…Xi,…XnXm},从而起到变异作用。




 
3.3基于遗传算法的生产调度系统实现
  国内外学者对于在制造行业生产过程中具有较强的代表性作业车间问题,研究设计了若干典型类型问题参考标准,用以研究和比较不同方法的优化能力。原进凯在《制造车间生产调度及其算法研究》中进行了归纳,主要有FT类、LA类、ABZ类、YN类、SWV类、ORB类、TD类、DMU类等,为了检验本文提出的求解JSP调度问题的GA(遗传算法)性能,以下测试著名的FT类问题,以典型的6零件、6机器的6×6JSSP问题FT6为例进行遗传算法的生产调度实现(理论最优解为55秒)。
 
3.3.1生产调度问题的遗传算法性能测试
  6个零件各个工序加工需要设备如表3-2所示,6个零件各个工序在对应设备上的加工工时如表3-3所示,参数设置如下:
  种群大小pop-size=50;交叉概率cross-prob=0.8;
  变异概率mut-prob=0.05;遗传代数end=100。
 
 
 
 
  为了验证本文基于工件交叉算子的有效性,利用Matlab软件模拟以上的两种算法,分别对每种算子程序分别运行5次,最终得到的最优解如表3-4所示。
 
 
  通过上表可知,基于位置交叉算子的最优解为56秒,并且每次的完成时间都不一样,误差率为1.97%,而本论文采用基于工序交叉算子的最优解为55秒,并且每次的完成时间相同,误差率为0。故本文研究的采用的遗传算子对于解决6×6的作业车间调度问题可以得到最优解,方法是合理的。

3.3.2生产调度系统的实现
  本系统在生产调度模块给出了主要的两个功能显示,一是当前生产订单的管理,另外一个是作业顺序的调度并给出最优的加工方案,如图3-17所示。
 
图3-17钣金车间生产调度系统调度实现界面



 
3.4
  首先介绍了生产调度系统的原理、调度策略以及对该系统的各个功能模块介绍,然后探讨了作业车间调度的实现遗传算法实现研究,并进行具体的编码、解码、适应度函数和三种基本算子的研究。最后用经典的6×6模型用车间的实际数据进行验证,事实证明开发基于遗传算法的动态调度策略的生产调度取得了理想的实际效果,并验证了生产调度系统实现的可行性。



  • 2019-05-27 11:03
  • 我要分享:
声明:文章"钣金MES遗传算法的生产调度管理"为上海御云信息科技有限公司原创文章,转载请注明出处,谢谢合作!您所在位置:钣金套料软件 > 钣金新闻 > MES系统资讯 >

联系清泰代表

热门文章
热门标签