一种基于黏菌算法的电镀生产线智能调度方法

文档序号:31305877发布日期:2022-08-30 21:18阅读:63来源:国知局
一种基于黏菌算法的电镀生产线智能调度方法

1.本发明涉及一种基于黏菌算法的电镀生产线智能调度方法。


背景技术:

2.电镀生产具有其自身特殊性,产品一旦进入生产线,就要按照预先设定的加工工序和加工时间进行处理,不同工序先后顺序不能改变,且各工序加工时间和不同工序之间的时间间隔都不能超出工艺要求范围,否则就会导致产品报废。基于电镀生产特性,目前常采用的两种方法分别是固定搬运车行程路线周期循环的调度方法和基于模糊数学的模糊控制技术调度方法。前者预先设定搬运车行程路线,只能同时加工一种产品,对于加工工艺不同的多批次、小批量的产品,需要在生产完成一种工艺产品后,停机切换另一工艺产品的生产模式,每次切换过程需要几十分钟甚至几个小时,因此这种调度方法对于生产工艺不同的多批次、小批量的产品效率极低。后者在生产过程中使用模糊控制技术对产品进行搬运,可以实现不同的工艺产品混料生产,但生产效率仍然较低,而且相同的工艺产品在同一工位的实际处理时间偏差较大,不好把控产品的生产品质。以上两种常用的调度方法虽然有效可行,但没有经过任何优化,产品生产效率还有待提高。此外,现有调度方法不能做到动态调度,不能实现在正常生产过程中紧急插入新订单产品的需求。


技术实现要素:

3.为解决上述技术问题,本发明提供了一种基于黏菌算法的电镀生产线智能调度方法,该基于黏菌算法的电镀生产线智能调度方法使用黏菌算法对不同工艺产品的加工顺序进行优化,能够提高电镀生产线的生产效率。
4.本发明通过以下技术方案得以实现。
5.本发明提供的一种基于黏菌算法的电镀生产线智能调度方法,包括如下步骤:
6.s1:获取多种产品的产品加工需求数据;
7.s2:使用黏菌算法对产品加工需求数据进行计算,得到调度序列;
8.s3:根据调度序列计算各个工位的请求时间,并基于请求时间发送搬运请求,直至产品搬运完成后返回至步骤s1。
9.所述产品加工需求数据包括多种产品在多个工位上的加工顺序和加工处理时间。
10.将所述工位中无产品需求的工位设置为虚拟工位;虚拟工位取值为-1。
11.所述步骤s2,具体采用如下步骤:
12.s21:初始化参数和黏菌种群;
13.s22:根据黏菌种群中黏菌的黏菌位置计算适应度;
14.s23:将适应度排序后计算权重;
15.s24:根据适应度的计算结果更新最优适应度值;
16.s25:更新黏菌位置;
17.s26:返回至步骤s22迭代至预设次数后,输出适应度最高的黏菌位置和适应度值。
18.所述参数包括最大迭代次数t、黏菌种群大小n、解向量的维度d、解向量的搜索范围[lb,ub],其中维度d为加工产品数量。
[0019]
所述黏菌种群采用如下方式初始化,在搜索范围[lb,ub]内随机产生n个黏菌的位置。
[0020]
所述适应度,采用如下方式计算,
[0021]
首先,使用x

=sort(x,2)将黏菌位置的实数编码转换成整数编码,其中,sort(x,2)表示将黏菌位置x按行排序,x

表示产品的加工顺序;
[0022]
然后,根据xi′
,i=1,2,

,n中产品的加工顺序生成调度表si,找出调度表si中各产品的最大完工时间作为第i个黏菌的适应度值fi。
[0023]
所述计算权重采用如下方式,取出最好的适应度值保存为bf,最差的适应度值保存为wf,并根据如下公式计算黏菌个体的适应度权重:
[0024][0025]
其中,f

表示排序后种群个体对应的位置,r表示0-1之间的随机数向量。
[0026]
所述步骤s25采用如下方式,
[0027]

判断若最好的适应度值bf优于全局最优适应度值df,则将df更新为bf,并将该个体位置保存到黏菌个体最佳位置xb中;
[0028]

根据如下公式更新黏菌位置:
[0029][0030]
p=tanh|f
i-df|
[0031][0032]
vb=[-a,a]
[0033][0034]
vc=[-b,b]
[0035]
其中,t表示初始化参数中的最大迭代次数,t表示当前迭代次数,r1,r2,r3表示0-1之间的随机数,xa,xb表示从种群中随机选择的两个个体位置;
[0036]

检查更新后的黏菌位置是否超出边界。
[0037]
所述步骤s3中,根据调度序列计算各个工位的请求时间,具体采用如下步骤:
[0038]
s31:使用贪心策略按照产品xbj′
,j=1,2,

,d的工艺路线和加工时间执行搬运任务;
[0039]
s32:判断产品xbj′
,j=1,2,

,d是否有被延迟搬运的工序;若是,则计算被延迟时长,将延迟工序和该工序之前的所有工序的开工时间、相应搬运车的搬运时间、相应工位
的空闲时间增加被延迟时长;若否,则执行下一步骤;
[0040]
s33:判断是否调度完所有产品;若是,则输出包含请求时间的调度表;若否,则执行步骤s31。
[0041]
本发明的有益效果在于:使用黏菌算法对不同工艺产品的加工顺序进行优化,能够提高电镀生产线的生产效率;预先考虑了产品和搬运车的行程,可实现精确调度,理论上可以使生产产品在各工位加工完成就立即被运走,实际处理时间与设定的加工时间偏差为零;只对产品的加工顺序进行调度,因此可以在正常生产过程中插入需要紧急处理的订单。
附图说明
[0042]
图1是本发明至少一种实施方式的流程示意图;
[0043]
图2是本发明至少一种实施方式应用的生产线平面示意图。
具体实施方式
[0044]
下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。
[0045]
实施例1
[0046]
如图1所示的一种基于黏菌算法的电镀生产线智能调度方法,包括如下步骤:
[0047]
s1:获取多种产品的产品加工需求数据;
[0048]
s2:使用黏菌算法对产品加工需求数据进行计算,得到调度序列;
[0049]
s3:根据调度序列计算各个工位的请求时间,并基于请求时间发送搬运请求,直至产品搬运完成后返回至步骤s1。
[0050]
实施例2
[0051]
基于实施例1,产品加工需求数据包括多种产品在多个工位上的加工顺序和加工处理时间。
[0052]
实施例3
[0053]
基于实施例2,将所述工位中无产品需求的工位设置为虚拟工位;虚拟工位取值为-1。
[0054]
实施例4
[0055]
基于实施例1,步骤s2具体采用如下步骤:
[0056]
s21:初始化参数和黏菌种群;
[0057]
s22:根据黏菌种群中黏菌的黏菌位置计算适应度;
[0058]
s23:将适应度排序后计算权重;
[0059]
s24:根据适应度的计算结果更新最优适应度值;
[0060]
s25:更新黏菌位置;
[0061]
s26:返回至步骤s22迭代至预设次数后,输出适应度最高的黏菌位置和适应度值。
[0062]
实施例5
[0063]
基于实施例4,参数包括最大迭代次数t、黏菌种群大小n、解向量的维度d、解向量的搜索范围[lb,ub],其中维度d为加工产品数量。
[0064]
实施例6
[0065]
基于实施例4,黏菌种群采用如下方式初始化,在搜索范围[lb,ub]内随机产生n个
黏菌的位置。
[0066]
实施例7
[0067]
基于实施例4,适应度采用如下方式计算,
[0068]
首先,使用x

=sort(x,2)将黏菌位置的实数编码转换成整数编码,其中,sort(x,2)表示将黏菌位置x按行排序,x

表示产品的加工顺序;
[0069]
然后,根据xi′
,i=1,2,

,n中产品的加工顺序生成调度表si,找出调度表si中各产品的最大完工时间作为第i个黏菌的适应度值fi。
[0070]
实施例8
[0071]
基于实施例4,计算权重采用如下方式,取出最好的适应度值保存为bf,最差的适应度值保存为wf,并根据如下公式计算黏菌个体的适应度权重:
[0072][0073]
其中,f

表示排序后种群个体对应的位置,r表示0-1之间的随机数向量。
[0074]
所述步骤s25采用如下方式,
[0075]

判断若最好的适应度值bf优于全局最优适应度值df,则将df更新为bf,并将该个体位置保存到黏菌个体最佳位置xb中;
[0076]

根据如下公式更新黏菌位置:
[0077][0078]
p=tanh|f
i-df|
[0079][0080]
vb=[-a,a]
[0081][0082]
vc=[-b,b]
[0083]
其中,t表示初始化参数中的最大迭代次数,t表示当前迭代次数,r1,r2,r3表示0-1之间的随机数,xa,xb表示从种群中随机选择的两个个体位置;
[0084]

检查更新后的黏菌位置是否超出边界。
[0085]
实施例10
[0086]
基于实施例1,步骤s3中,根据调度序列计算各个工位的请求时间,具体采用如下步骤:
[0087]
s31:使用贪心策略按照产品xbj′
,j=1,2,

,d的工艺路线和加工时间执行搬运任务;
[0088]
s32:判断产品xbj′
,j=1,2,

,d是否有被延迟搬运的工序;若是,则计算被延迟
时长,将延迟工序和该工序之前的所有工序的开工时间、相应搬运车的搬运时间、相应工位的空闲时间增加被延迟时长;若否,则执行下一步骤;
[0089]
s33:判断是否调度完所有产品;若是,则输出包含请求时间的调度表;若否,则执行步骤s31。
[0090]
实施例11
[0091]
基于上述实施例,包括如下步骤:
[0092]
步骤s1:设定每种产品的加工路线,即设定该产品所需的所有工位和各个工位的先后加工顺序,将不需要使用的工位设置为虚拟工位;
[0093]
步骤s2:设定每种产品的加工时间,即设定该产品在各个工位上的加工处理时间;
[0094]
步骤s3:根据设定的产品加工需求数据,使用黏菌算法优化,获得最优调度序列;
[0095]
步骤s4:根据黏菌算法获得的最优调度序列生成调度表;
[0096]
步骤s5:根据调度表计算各工位的请求时间;
[0097]
步骤s6:各工位到达相应的请求时间时,对所需搬运车发出搬运请求,接到搬运请求的搬运车执行一个完整动作,重复该步骤直到所有产品搬运完成。
[0098]
特别地,所述步骤s1中虚拟工位的设定规则为:如果某种产品加工不需要经过某个工位,就将该工位设定为这种产品的虚拟工位,使用-1表示。
[0099]
特别地,所述步骤s3中使用黏菌算法优化具体包含以下步骤:
[0100]
步骤s3.1:参数初始化;其中,初始化的参数包括:最大迭代次数t、黏菌种群大小n、解向量的维度d、解向量的搜索范围[lb,ub],其中维度d为加工产品数量;
[0101]
步骤s3.2:黏菌种群初始化:在搜索范围[lb,ub]内随机产生n个黏菌的位置;
[0102]
步骤s3.3:根据黏菌位置x计算其适应度f:首先,使用公式(1)将黏菌位置的实数编码转换成整数编码;
[0103]
x

=sort(x,2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0104]
其中,sort(x,2)表示将黏菌位置x按行排序,x

表示产品的加工顺序;然后,根据xi′
,i=1,2,

,n中产品的加工顺序生成调度表si,找出调度表si中各产品的最大完工时间作为第i个黏菌的适应度值fi;
[0105]
步骤s3.4:将适应度f升序排序,取出最好的适应度值保存为bf,最差的适应度值保存为wf,并根据公式(2)计算黏菌个体的适应度权重;
[0106][0107]
其中,f

表示排序后种群个体对应的位置,r表示0-1之间的随机数向量;
[0108]
步骤s3.5:若bf优于全局最优适应度值df,则将df更新为bf,并将该个体位置保存到黏菌个体最佳位置xb中;
[0109]
步骤s3.6:根据公式(3-8)更新黏菌位置,检查更新后的黏菌位置是否超出边界;
[0110]
[0111]
p=tanh|f
i-df|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0112][0113]
vb=[-a,a]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0114][0115]
vc=[-b,b]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0116]
其中,t表示当前迭代次数,r1,r2,r3表示0-1之间的随机数,xa,xb表示从种群中随机选择的两个个体位置;
[0117]
步骤s3.7:判断是否达到最大代次数t;若是,则执行步骤s3.8;若否,则跳转至步骤s3.3;
[0118]
步骤s3.8:输出黏菌个体最佳位置xb及其适应度值。
[0119]
特别地,所述步骤s4中生成调度表具体包含如下步骤:
[0120]
步骤s4.1:使用公式(1)将黏菌算法获得的最佳位置xb离散化为xb';
[0121]
步骤s4.2:搬运车使用贪心策略按照产品xbj′
,j=1,2,

,d的工艺路线和加工时间执行搬运任务,即若满足三个条件:(1)所需搬运车处于空闲状态;(2)该产品上一道工序已经加工完成;(3)该产品下一道工序所需工位处于空闲状态;则所需搬运车执行一个完整动作,将该产品从当前工位搬运到下一道工序所需工位进行加工,直到该产品所有工序加工完成;
[0122]
步骤s4.3:判断产品xbj′
,j=1,2,

,d是否有被延迟搬运的工序;若是,则计算被延迟时长,将延迟工序和该工序之前的所有工序的开工时间、相应搬运车的搬运时间、相应工位的空闲时间增加被延迟时长;若否,则执行步骤s4.4;
[0123]
步骤s4.4:判断是否调度完所有产品;若是,则执行步骤s4.5;若否,则执行步骤s4.2;
[0124]
步骤s4.5:输出调度表s。
[0125]
特别地,所述步骤s4中调度表记录十一个属性:产品号,工序号,工位号,搬运车所在工位,上一道工序所在工位,当前工序所需工位,搬运车空载时长,搬运车负载时长,当前工序开工时间,当前工序完工时间,当前工序运走时间;其中,搬运车空载时长表示搬运车所在工位到上一道工序所在工位的移动时长;搬运车负载时长表示搬运车从上一道工序所在工位将产品搬运到当前工序所需工位的时长;通过当前工序运走时间减去当前工序完工时间可得当前工序的延迟时长。
[0126]
特别地,所述步骤s5中各工位的请求时间计算方法为:对于调度表s中的每一行,相应工位的请求时间=当前工序开工时间-搬运车负载时长-搬运车空载时长。
[0127]
特别地,所述步骤s6中执行一个完整动作具体包括:接到搬运请求的搬运车由待机状态转为工作状态,移动到发出搬运请求的工位,提起该工位的产品,移动到产品下一道工序所需工位,降下产品进行加工处理,搬运车进入待机状态。
[0128]
实施例12
[0129]
基于上述实施例,应用于如图2所示的电镀生产线。电镀生产线包括各个功能的工位,即电镀槽,电镀槽上方安装搬运车对加工产品进行搬运。每台搬运只负责一部分工位,
例如搬运车1#负责1#到5#工位的搬运任务,搬运车2#负责5#到13#工位的搬运任务,以此类推,其中5#工位为交接位,由搬运车1#搬运到该工位,由搬运车2#从该工位搬运到下一道工序所需工位。在正常生产过程中,搬运车接到工位发出的搬运请求就执行一个完整动作,搬运车移动到该工位,将该工位的产品提起,搬运到下一道工序所需工位,然后将产品放下,搬运车进入待机状态,等待下一次请求。如果搬运车到达所负责的最后一个工位,则将产品放下后立即向左移动一个工位,避免与下一台搬运车发生碰撞。各工位的处理时间用户可以根据工艺需要进行修改。在本实施例中,有23个工位,5台搬运车,交接位为5#,13#,15#和18#工位,图1所示为电镀生产线开机时每台搬运车的初始位置,搬运车移动一个工位的时间为4秒,将产品提起和放下的时间均为7秒。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1