发明名称 基于实时生产数据采集的模具车间调度方法
摘要 本发明提供一种基于实时生产数据采集的模具车间调度方法,包括下述步骤:步骤一.确定模具车间作业调度的目标函数;将完工时间F<sub>1</sub>最小化和总生产成本F<sub>2</sub>最小化作为目标函数的因子;步骤二.通过事先统计以及进行车间生产现场实时数据的采集和反馈方法,获取步骤一中目标函数所需参数;步骤三.基于BBO算法实现模具车间调度;将调度方案对应BBO算法中的栖息地,待调度的设备、工人和未加工的工件作为决策变量,每个决策变量为各栖息地的适宜度变量SIV,由决策变量得到的目标函数值为适宜度指数HSI;步骤四.当设备发生故障时进行重调度。本发明可有效提高生产效率、缩短生产周期,保证生产过程的顺利进行。
申请公布号 CN103955754B 申请公布日期 2017.01.25
申请号 CN201410153754.0 申请日期 2014.04.16
申请人 江南大学 发明人 纪志成;吴定会;朱绍文;吴琼;高道鏐;杨晓冬;史文婕
分类号 G06Q10/04(2012.01)I;G06Q10/06(2012.01)I;G06Q50/04(2012.01)I 主分类号 G06Q10/04(2012.01)I
代理机构 无锡市大为专利商标事务所(普通合伙) 32104 代理人 曹祖良
主权项 一种基于实时生产数据采集的模具车间调度方法,其特征在于:包括下述步骤:步骤一.确定模具车间作业调度的目标函数;将完工时间F<sub>1</sub>最小化和总生产成本F<sub>2</sub>最小化作为目标函数的因子;其中F<sub>2</sub>包括设备加工成本、员工成本和原材料成本;<maths num="0001"><math><![CDATA[<mrow><msub><mi>F</mi><mn>1</mn></msub><mo>=</mo><mi>min</mi><mrow><mo>(</mo><mrow><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>C</mi><mi>n</mi></msub></mrow><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mrow><mo>(</mo><mrow><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><mrow><mo>(</mo><msub><mi>C</mi><mrow><mi>n</mi><mi>i</mi></mrow></msub><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mrow><mo>&lsqb;</mo><mrow><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><mo>(</mo><mrow><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msub><mi>T</mi><mrow><mi>n</mi><mi>i</mi><mi>m</mi></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo>&rsqb;</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001113961850000011.GIF" wi="1942" he="149" /></maths><maths num="0002"><math><![CDATA[<mrow><msub><mi>F</mi><mn>2</mn></msub><mo>=</mo><mi>min</mi><mrow><mo>&lsqb;</mo><mrow><munderover><mi>&Sigma;</mi><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mi>P</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><mrow><mo>(</mo><mrow><msub><mi>T</mi><mrow><mi>n</mi><mi>i</mi><mi>m</mi></mrow></msub><mo>&times;</mo><mrow><mo>(</mo><mrow><msub><mi>E</mi><mi>m</mi></msub><mo>+</mo><msub><mi>Z</mi><mi>m</mi></msub></mrow><mo>)</mo></mrow><mo>&times;</mo><msub><mi>X</mi><mrow><mi>n</mi><mi>i</mi><mi>m</mi><mi>p</mi></mrow></msub></mrow><mo>)</mo></mrow><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mi>P</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>I</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><mrow><mo>(</mo><mrow><msub><mi>S</mi><mi>p</mi></msub><mo>&times;</mo><msub><mi>X</mi><mrow><mi>n</mi><mi>i</mi><mi>m</mi><mi>p</mi></mrow></msub></mrow><mo>)</mo></mrow><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>MA</mi><mi>n</mi></msub></mrow><mo>&rsqb;</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001113961850000012.GIF" wi="1918" he="151" /></maths>F=w<sub>1</sub>F<sub>1</sub>+w<sub>2</sub>F<sub>2</sub>      (3)模具车间作业调度的目标函数为:求一个满足F<sup>*</sup>的工件加工顺序,使得:F<sup>*</sup>=max(1/F)       (4)式中:N为待加工的工件数,I为工件的总工序数,M为车间可用的设备总数,P为车间内操作工人总数,T<sub>nim</sub>为工件n的第i道工序在设备m上的加工时间,C<sub>ni</sub>为工件n的第i道工序的完工时间,E<sub>m</sub>表示设备m的单位加工时间动力燃料费用,Z<sub>m</sub>表示设备m的折旧费用,S<sub>p</sub>表示员工p单位时间的工资,MA<sub>n</sub>为工件n的原材料成本,X<sub>nimp</sub>表示工件n的第i道工序在设备m上的加工,设备由工人p操作时为1,否则为0;w<sub>1</sub>和w<sub>2</sub>为权重系数,随机产生,满足w<sub>1</sub>+w<sub>2</sub>=1;步骤二.通过事先统计以及进行车间生产现场实时数据的采集和反馈方法,获取步骤一的公式(1)和公式(2)中所需参数;步骤三.基于改进的生物地理学方法,即BBO算法实现模具车间调度;步骤三具体包括:将调度方案对应BBO算法中的栖息地,待调度的设备、工人和未加工的工件作为决策变量,每个决策变量为各栖息地的适宜度变量SIV,由决策变量得到的目标函数值即由生产周期最小和生产成本最小作为因子的目标F<sup>*</sup>为适宜度指数HSI;实现步骤如下:3.1栖息地的编码:将决策变量:待调度的设备、工人和未加工的工件表示成适合BBO求解的码串形式,如式5所示,<maths num="0003"><math><![CDATA[<mrow><mi>H</mi><mo>=</mo><mfenced open = "(" close = ")"><mtable><mtr><mtd><mi>N</mi></mtd></mtr><mtr><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mi>P</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "(" close = ")"><mtable><mtr><mtd><mrow><msub><mi>n</mi><mn>1</mn></msub><mo>,</mo><msub><mi>n</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><msub><mi>n</mi><mi>I</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>m</mi><mn>1</mn></msub><mo>,</mo><msub><mi>m</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><msub><mi>m</mi><mi>I</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>p</mi><mn>1</mn></msub><mo>,</mo><msub><mi>p</mi><mn>2</mn></msub><mo>,</mo><mo>...</mo><msub><mi>p</mi><mi>I</mi></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001113961850000013.GIF" wi="1822" he="223" /></maths>第一层编码N表示工件的编码,第二层编码M是该工件相应工序所使用的设备分配编码,第三层编码P是可以操作该设备的工人编码;3.2栖息地初始化:设存在h个栖息地,每个栖息地表示车间调度的一个可行的调度方案;具体的初始化步骤是:3.2.1令循环次数k=1;3.2.2将H栖息地编码的第一行置0;3.2.3根据各工件n的工序数I<sub>n</sub>,在栖息地编码的第一行随机寻找I<sub>n</sub>个未被占用的空位,将n赋给选中的空位;3.2.4从左到右,根据各工件n和工序号i,从可选的设备M<sub>ni</sub>中随机选择一个设备,从可选的工人集P<sub>m</sub>中随机选择一个工人,分别赋给H的第二行和第三行,即设备编码和工人编码;3.2.5令k=k+1;3.2.6若k≤h,转向步骤3.2.2,否则,退出循环;3.3栖息地解码:栖息地解码是将栖息地的编码转化为一个调度解的过程,具体步骤是:3.3.1根据栖息地中工件编号的相对位置,确定每个位置的对应的工序编号,用O<sub>ni</sub>表示工件n的第i道工序;3.3.2从左到右依次读取O<sub>ni</sub>,计算O<sub>ni</sub>的最早开始时间s<sub>ni</sub>;首先判断O<sub>ni</sub>是否为工件n的第一道工序,如果是第一道工序,s<sub>ni</sub>=t<sub>n</sub>,t<sub>n</sub>为工件释放时间,如果不是第一道工序,则是前一道工序的完工时间s<sub>ni</sub>=c<sub>n(i‑1)</sub>,c<sub>n(i‑1)</sub>为工序O<sub>n(i‑1)</sub>的完工时间;3.3.3获取加工O<sub>ni</sub>的设备m当前所有的空闲时间段,并将最早的空闲时段记为[r<sub>m</sub>,q<sub>m</sub>];3.3.4获取操作设备m的工人p当前所有的空闲时间段,并将最早的空闲时段记为[r<sub>p</sub>,q<sub>p</sub>];3.3.5比较max(s<sub>ni</sub>,r<sub>m</sub>,r<sub>p</sub>)+T<sub>nim</sub>与q<sub>m</sub>和q<sub>p</sub>,T<sub>nim</sub>表示O<sub>ni</sub>在设备m上的加工时间,如果max(s<sub>ni</sub>,r<sub>m</sub>,r<sub>p</sub>)+T<sub>nim</sub>≤min(q<sub>m</sub>,q<sub>p</sub>),将O<sub>ni</sub>插入到设备和工人空闲时间段[max(s<sub>ni</sub>,r<sub>m</sub>,r<sub>p</sub>),max(s<sub>ni</sub>,r<sub>m</sub>,r<sub>p</sub>)+T<sub>nim</sub>]中,并更新工件的结束时间、设备的开始时间和结束时间和工人的开始时间和结束时间;否则,转向步骤3.3.6;3.3.6令[r<sub>m</sub>,q<sub>m</sub>]和[r<sub>p</sub>,q<sub>p</sub>]为下一个可加工O<sub>ni</sub>的设备的时间段和工人的时间段,转向步骤3.3.5;如果没有符合的空闲时间段,则在该设备和工人加工序列的末尾安排O<sub>ni</sub>;3.3.7当所有工件的全部工序安排到指定的设备和操作工人后,获得每个工件的完工时间,设备加工时间、单位费用,及可以操作设备的工人的单位工资成本,根据公式(1)和(2)分别计算F<sub>1</sub>和F<sub>2</sub>,根据式(3)和式(4)计算出F<sup>*</sup>,作为栖息地的适宜度指数HSI;3.4为栖息地选择迁移模型:对于h个栖息地,每个栖息地具有各自的迁入率和迁出率,选用余弦迁移模型,在余弦迁移模型中,迁入率<img file="FDA0001113961850000021.GIF" wi="59" he="70" />和迁出率<img file="FDA0001113961850000022.GIF" wi="58" he="55" />按照下述公式6计算:<maths num="0004"><math><![CDATA[<mrow><msub><mi>&lambda;</mi><msub><mi>s</mi><mi>r</mi></msub></msub><mo>=</mo><mfrac><mi>X</mi><mn>2</mn></mfrac><mrow><mo>(</mo><mi>c</mi><mi>o</mi><mi>s</mi><mo>(</mo><mfrac><mrow><msub><mi>s</mi><mi>r</mi></msub><mi>&pi;</mi></mrow><msub><mi>s</mi><mi>max</mi></msub></mfrac><mo>)</mo><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msub><mi>&mu;</mi><msub><mi>s</mi><mi>r</mi></msub></msub><mo>=</mo><mfrac><mi>Y</mi><mn>2</mn></mfrac><mrow><mo>(</mo><mo>-</mo><mi>c</mi><mi>o</mi><mi>s</mi><mo>(</mo><mfrac><mrow><msub><mi>s</mi><mi>r</mi></msub><mi>&pi;</mi></mrow><msub><mi>s</mi><mi>max</mi></msub></mfrac><mo>)</mo><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001113961850000031.GIF" wi="1791" he="158" /></maths>X表示最大迁入率,Y表示最大迁出率,根据步骤3.3中计算的目标F<sup>*</sup>,对其进行从大到小进行排序,取F<sup>*</sup>最高的栖息地对应的物种数量为s<sub>max</sub>,其他栖息地所含的物种数量按照优劣排序依次减1,即s<sub>r</sub>=s<sub>max</sub>‑r,其中r=1,2....h,r表示栖息地按照每个栖息地的F<sup>*</sup>排序后的标号,s<sub>r</sub>表示第r个栖息地对应的物种数量;然后根据式(6)计算每个栖息地的迁入率和迁出率;根据迁入率<img file="FDA0001113961850000035.GIF" wi="60" he="69" />确定栖息地h<sub>r</sub>′是否发生迁移操作,栖息地的数量h作为循环次数;随机产生(0,1)之间的随机数,如果该随机数小于<img file="FDA0001113961850000032.GIF" wi="91" he="65" />则h<sub>r</sub>′被确定发生迁入操作,那么利用其它栖息地的迁出率进行轮盘选择需迁出的栖息地h<sub>q</sub>′,然后按照迁移策略修改栖息地h<sub>r</sub>′;3.5上一步中的迁移策略包括基于工件的迁移操作,基于设备的迁移操作和基于工人的迁移操作;基于工件的迁移操作具体包括:3.5.1.1先将工件集{n<sub>1</sub>,n<sub>2</sub>,...n<sub>N</sub>}随机划分为两个非空的集合G<sub>1</sub>和G<sub>2</sub>;3.5.1.2将迁入栖息地h<sub>r</sub>′工件编码中属于G<sub>1</sub>的工件直接复制到虚拟栖息地h<sub>l</sub>′中的工件编码中,并保持它们的顺序和位置;3.5.1.3将迁出栖息地h<sub>q</sub>′中工件编码中属于G<sub>2</sub>的工件依次填到虚拟栖息地h<sub>l</sub>′空余的位置;最后用h<sub>l</sub>′中的工件编码替代h<sub>r</sub>′中的工件编码;然后保留工件的顺序不变,进行基于设备的迁移操作和基于工人的迁移操作:3.5.2.1随机产生一组数列Rand∈[0or1],长度与栖息地中工件编码长度相同;3.5.2.2如果随机数是1,则直接将迁入栖息地h<sub>r</sub>′中的设备和工人编码复制到虚拟栖息地h<sub>l</sub>′中对应的设备和工人编码中;3.5.2.3如果随机数是0则将迁出栖息地h<sub>q</sub>′中的设备和工人编码复制到虚拟栖息地h<sub>l</sub>′中对应的设备和工人编码中;最后用h<sub>l</sub>′中设备和工人编码替代h<sub>r</sub>′中设备和工人编码;3.6进行变异操作;定义某栖息地对应的s<sub>r</sub>个物种时的概率是<img file="FDA0001113961850000033.GIF" wi="101" he="61" />其变异概率是<img file="FDA0001113961850000034.GIF" wi="118" he="62" /><maths num="0005"><math><![CDATA[<mrow><msub><mi>p</mi><msub><mi>s</mi><mi>r</mi></msub></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><msub><mi>s</mi><mi>r</mi></msub><mo>=</mo><mn>1</mn></mrow><mi>h</mi></munderover><mfrac><mrow><msub><mi>&lambda;</mi><mn>0</mn></msub><msub><mi>&lambda;</mi><mn>1</mn></msub><mn>...</mn><msub><mi>&lambda;</mi><mrow><msub><mi>s</mi><mi>r</mi></msub><mo>-</mo><mn>1</mn></mrow></msub></mrow><mrow><msub><mi>&mu;</mi><mn>1</mn></msub><msub><mi>&mu;</mi><mn>2</mn></msub><mn>...</mn><msub><mi>&mu;</mi><msub><mi>s</mi><mi>r</mi></msub></msub></mrow></mfrac></mrow></mfrac><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>s</mi><mi>r</mi></msub><mo>=</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mrow><msub><mi>&lambda;</mi><mn>0</mn></msub><msub><mi>&lambda;</mi><mn>1</mn></msub><mn>...</mn><msub><mi>&lambda;</mi><mrow><msub><mi>s</mi><mi>r</mi></msub><mo>-</mo><mn>1</mn></mrow></msub></mrow><mrow><msub><mi>&mu;</mi><mn>1</mn></msub><msub><mi>&mu;</mi><mn>2</mn></msub><mn>...</mn><msub><mi>&mu;</mi><msub><mi>s</mi><mi>r</mi></msub></msub><mrow><mo>(</mo><mrow><mn>1</mn><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><msub><mi>s</mi><mi>r</mi></msub><mo>=</mo><mn>1</mn></mrow><mi>h</mi></munderover><mfrac><mrow><msub><mi>&lambda;</mi><mn>0</mn></msub><msub><mi>&lambda;</mi><mn>1</mn></msub><mn>...</mn><msub><mi>&lambda;</mi><mrow><msub><mi>s</mi><mi>r</mi></msub><mo>-</mo><mn>1</mn></mrow></msub></mrow><mrow><msub><mi>&mu;</mi><mn>1</mn></msub><msub><mi>&mu;</mi><mn>2</mn></msub><mn>...</mn><msub><mi>&mu;</mi><msub><mi>s</mi><mi>r</mi></msub></msub></mrow></mfrac></mrow><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow></mtd><mtd><mrow><mn>1</mn><mo>&le;</mo><msub><mi>s</mi><mi>r</mi></msub><mo>&le;</mo><mi>h</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001113961850000041.GIF" wi="1862" he="465" /></maths><maths num="0006"><math><![CDATA[<mrow><msub><mi>m</mi><msub><mi>s</mi><mi>r</mi></msub></msub><mo>=</mo><msub><mi>m</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><msub><mi>p</mi><msub><mi>s</mi><mi>r</mi></msub></msub><msub><mi>p</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001113961850000042.GIF" wi="1891" he="150" /></maths>其中,<img file="FDA0001113961850000043.GIF" wi="67" he="54" />表示栖息地对应物种数量为sr时的变异概率,m<sub>max</sub>为预定义的最大突变率;<img file="FDA0001113961850000044.GIF" wi="70" he="71" />和<img file="FDA0001113961850000045.GIF" wi="72" he="54" />分别是栖息地的迁入率和迁出率;随机产出(0,1)的随机数,如果小于<img file="FDA0001113961850000046.GIF" wi="94" he="55" />则该栖息地发生变异;为车间调度问题中每个选择的栖息地按照以下方式进行变异:3.6.1基于工件的变异:对于需要变异的栖息地个体,在基于工件编码的部分,随机选择两个位置上的工件编码,然后将一个工件编码插入到另一个工件编码的前面,并保持所分配的设备和工人不变;3.6.2基于设备的变异:在基于设备的编码部分,随机选择两个位置上的设备编号,然后在其对应位置上的工序的可加工设备集合中选择加工时间小于先前加工该道工序的设备,如果与现在的不同,则使用被选中的设备加工这道工序,如果没有,则采用原来的加工设备;3.6.3基于工人的变异:在基于工人的编码部分,随机选择两个位置上的工人编号,然后在其对应位置上设备的可操作工人集合中随机选择一个工人标号代替原来的操作工人;3.7当上述步骤3.5和3.6的迁移、变异操作次数达到预设的最大计划迭代次数后,停止迭代,输出调度甘特图。
地址 214122 江苏省无锡市蠡湖大道1800号