本发明涉及生产线平衡改善技术领域,特别是涉及一种基于遗传算法的协作机器人装配生产线的平衡改善方法。
背景技术:
生产线平衡是指通过调整生产线中各个工序的位置,使各个工位的时间尽可能和生产节拍相等或相近。
目前对生产线的平衡优化主要针对以下两种情况,第一种是生产线在给定的工作量下,设定一个具体的生产节拍,然后对生产线的装配顺序进行优化,使生产线的各个工位的工作时间相差最小;第二种是生产线的工位数目确定,尽可能的降低生产线的生产节拍,从而使生产线的产量最大。求生产线最高平衡率的方法主要有遍历搜索法和遗传算法,但遍历搜索法在工序数量比较多的情况下将花费大量的时间才能求出最优解,只适合与工序数量较少的情况;遗传算法是解决多工序生产线平衡的一种有效算法。
方景芳、徐艳凯在《基于遍历搜索与遗传算法的生产线平衡优化》的文献中提出了一种基于遗传算法的生产线的平衡优化方法,但该方法并没有对子代基因的好坏进行判断,没有模拟自然界的优胜劣汰过程,此方法虽然也可以经过大量的遗传算法运算求得最优解,但由于子代基因的优劣性是随机的,无疑将会花费大量的时间。
技术实现要素:
本发明的目的是为了克服现有技术中的不足,提供一种基于遗传算法的协作机器人装配生产线的平衡改善方法。可在较短的时间内找到生产线平衡率最高的工序排列方式和工位划分方法,从而提高生产线的装配效率。
本发明的目的是通过以下技术方案实现的:
一种基于遗传算法的协作机器人装配生产线的平衡改善方法,包括以下步骤:
(1)输入协作机器人装配生产线的详细信息;包括生产线产品名称、生产节拍、生产线上各个装配任务名称及其所需的装配时间,并且对生产线上的各个任务进行编号;
生产节拍应大于或等于协作机器人装配生产线中花费装配时间最长的工序的时间,根据需求确定生产节拍的具体时间;
协作机器人装配生产线的工序编号从1开始逐个编号;协作机器人装配生产线的基因交叉运算概率和变异运算概率取0至1之间的小数,小数点保留后一位,且基因交叉运算概率和变异运算概率的和为1;
(2)生成协作机器人装配生产线工序约束图;
根据协作机器人装配生产线的实际装配顺序做出工序约束图;工序约束图中,圆圈表示工序节点,圆圈内的数字表示工序编号,箭头表示工序的流向;通过工序约束图确定协作机器人装配生产线各个工序之间的优先约束关系;
(3)生成初始种群并进行基因的交叉和变异运算;
通过对工序约束图进行15~25次的遍历搜索以确定初始种群的基因序列;初始种群的基因序号与协作机器人装配生产线工序编号相同,初始种群的基因序列的长度与工序数目相同;按照协作机器人装配生产线中的遗传算法对协作机器人装配生产线的初始种群进行基因的交叉和变异运算;协作机器人装配生产线的遗传算法包括基因交叉算子和基因变异算子;
(4)利用最大分配原则划分工位并计算工位平衡率;
将种群中的所有基因序列按最大分配原则划分成多个工位,并计算工位的平衡率,按照平衡率由高到低的原则对基因序列进行排序,淘汰排在初始种群总数后面的基因序列;
(5)判断种群中所有个体的基因序列是否完全相同,若不完全相同,重复上述步骤(3)、(4),直至种群基因序列完全相同,最后输出种群的基因序列及其工位划分方法。
进一步的,经过基因的交叉和变异运算后产生子代的基因序列,需要判断子代的基因序列是否满足工序优先约束关系。
进一步的,步骤(4)中最大分配原则的主要步骤如下:
(401)若tk≤tc,则将基因位置编号为k的工序划分到工位i中;
(402)按照基因序列中工序的排列方式继续计算,若tk+tk+1≤tc,则将基因位置编号为k+1的工序划分到工位i中;反之若tk+tk+1>tc,则将基因位置编号为k+1的工序划分到工位i+1中;
(403)从基因序列中的第一个工序开始,重复上述步骤(401)和步骤(402),直到最后一个工序截止,即完成了对基因序列中所有工序的工位划分;
其中,k是基因序列中的基因位置编号,tk是基因位置编号为k的工序对应的装配时间,tc为生产节拍,i为协作机器人装配生产线中的第i个工位,k+1是基因序列中的基因位置编号,tk+1是基因位置编号为k+1的工序对应的装配时间,i+1为协作机器人装配生产线中的第i+1个工位。
进一步的,步骤(4)中,计算协作机器人装配生产线的平衡率公式如下:
其中,i是协作机器人装配生产线的第i个工位,j是协作机器人装配生产线的第i个工位内的装配工序j,tj是协作机器人装配生产线的第i个工位内的装配工序j的装配时间,m是协作机器人装配生产线的第i个工位内的装配工序的数目,n是协作机器人装配生产线的工位数目;tc是协作机器人装配生产线的生产节拍。
一种判断工序的优先约束关系的方法,包括以下步骤:
(101)根据工序约束图确定生产线中所有工序的两两之间的关系,定义数值如下:
(102)根据工序约束图找出最长的分支工序,并计算最长分支工序的工序个数n1;
(103)根据基因序号的排列方式和步骤(101)定义的所有工序的两两之间的关系,按照从头到尾的顺序分别确定两两工序之间的具体数值,计算出所有数值的总和并记为n;
(104)若n=n1-1,则子代的基因序列满足工序优先约束关系,经过变异运算产生的子代基因序列有效;否则,子代的基因序列不满足工序优先约束关系,子代的基因序列与父代相同。
与现有技术相比,本发明的技术方案所带来的有益效果是:
1.本发明方法每次仅需要进行一次简单的累加求和运算就可以判断出工序是否满足优先约束关系而不是进行复杂的矩阵运算,因此本方法运算速度快、占用的计算机内存小。
2.本方法还对遗传算法的结果进行了择优选择,保证基因序列向越来越好的方向发展,进一步缩短了求最优解的时间,从而提高了生产线的装配效率。
3.本发明可以通过最终种群的基因序列是否相同来直观、明显的判断出本生产线是否达到了最优解。
附图说明
图1是基于遗传算法的协作机器人装配生产线平衡改善方法的流程图。
图2是协作机器人装配生产线工序约束图。
图3是协作机器人装配生产线中串联起来的一个最长分支工序图。
图4是遗传算法的基因交叉算子示例图。
图5是遗传算法的基因变异算子示例图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照附图1,本发明方法的具体实施步骤如下。
步骤1,协作机器人装配生产线相关信息的输入。
协作机器人装配生产线相关信息的输入,具体包括生产线产品名称、生产节拍、生产线上各个装配任务名称及其所需的装配时间,并且对生产线上的各个工序进行编号,生产线的工序编号是从1开始逐个编号的,此外,还要分别设定遗传算法中基因进行交叉运算的概率和变异运算的概率。
本实例中协作机器人装配生产线要输入的具体工序信息为:1、机器人二轴壳体与其对应减速其装配,装配时间是3分钟;2、机器人大臂与机器人二轴壳体的装配,装配时间为4分钟;3、机器人二轴壳体与波发生器的装配,装配时间为5分钟;4、机器人一轴壳体与其减速器的装配,装配时间为4分钟;5、机器人二轴壳体与一轴壳体的装配,装配时间为5分钟;6、机器人一轴壳体与其减速器的装配,装配时间为6分钟;7、机器人一轴壳体与底座装配,装配时间为2分钟;8、机器人三轴壳体与其减速器的装配,装配时间为4分钟;9、机器人大臂与其三轴壳体的装配,装配时间为6分钟;10、机器人三轴壳体与波发生器的装配,装配时间为4分钟;11、机器人三轴壳体与辅壳的装配,装配时间为5分钟;12、机器人一轴与其对应电机的装配,装配时间为3分钟;13、机器人二轴与其对应电机的装配,装配时间为4分钟;14、机器人三轴与其对应电机的装配,装配时间为5分钟。
步骤2,协作机器人装配生产线上工序优先约束关系的确定。
根据实际装配情况按照工序优先约束关系原则确定生产线各个工序之间的关系,最后依据生产线各个工序之间的优先约束关系做出生产线的工序约束图。
图2是协作机器人生产线装配的工序约束图。该工序约束图中,圆圈内的数字表示工序编号,工序编号是按照工序的输入顺序从1开始依次编号的,箭头指向表示下一步要进行的装配工序。通过工序约束关系图可以看出本实例包含3个分支节点和1个合流节点。
图3是协作机器人装配生产线中工序排列最长的一个工序分支。该分支一共有9个工序。后面可以利用该工序分支来判断基因序列是否符合工序优先约束关系。
步骤3,生成初始种群,并对初始种群进行遗传算法运算。
初始种群是通过对工序约束图进行一定次数的遍历操作生成的,也可以手动输入满足工序优先约束关系的基因序列作为初始种群,建议选取初始种群的个数为偶数。
协作机器人装配生产线的遗传算法包括基因的交叉算子和变异算子。基因交叉算子的方法为在基因序列中间位置随机产生两个数,以这两个数的位置为边界把父代的基因序列分成三部分,其中,父代基因序列从初始种群中选取,子代基因序列是通过父代进行基因交叉算子产生的。子代1的基因序列的首尾部分与父代1的首尾部分基因相同,中间部分的基因是在父代2的基因序列保持不变的情况下,然后选取与首尾部分基因不同的父代2中的基因;同理,子代2的基因序列的首尾部分与父代2的首尾部分基因相同,中间部分的基因是在父代1的基因序列保持不变的情况下,然后选取与首尾部分基因不同的父代1中的基因。
图4是对初始种群的基因序列进行交叉运算的示例图。图4中随机产生的两个随机数分别为5和9,以这两个数作为基因序列的位置编号,把父代基因序列分成三部分,其中要交换的中间部分的基因序列分别为5-2-7-9-8和5-2-9-8-7。保持父代首尾部分的基因序列不变,交换中间部分的基因序列后得到子代的基因序列分别为1-3-4-6-5-2-9-8-7-10-11-12-13-14和4-6-1-3-5-3-7-9-8-10-11-12-14-13。
协作机器人装配生产线的遗传算法中基因变异算子方法如下:在父代的基因序列长度中随机选取两个数,然后交换父代基因序列中以这两个数为位置编号的基因,这样就能产生子代的基因序列。
图5是对初始种群的基因序列进行变异运算的示例图。变异算子中随机产生的2个数字是7和10,因此将父代中位置编号为7和10对应的基因进行交换的到如图所示的基因序列。基因经过变异操作后,产生的子代基因序列编号可能不满足工序的优先约束关系,因此需要对子代的基因序列进行检验。
本发明还提出了一种新的检验基因序列是否满足工序优先约束关系的方法。首先根据工序约束图确定各个工序之间的优先约束关系。各个工序关系的数学模型如下:
然后根据工序约束图找出串联起来最长的分支工序,并计算出最长分支工序的工序个数n1,再按照子代基因序列的排列方式,按照从头到尾的顺序计算工序两两之间的累加和n,即
其中q为基因序列的总个数;wk,k+1是基因位置编号为k及k+1对应的基因序列之间的工序优先约束关系。若n=n1-1,则子代的基因序列满足工序优先约束关系,经过变异运算产生的子代基因序列有效。否则,子代的基因序列不满足工序优先约束关系,子代的基因序列与父代相同。
在本示例中,最长分支的工序排列如图3所示,所以n1=9。交换工序位置编号为7和10对应的基因后,子代基因的累加和为n=8,满足n=n1-1,所以产生新的子代基因序列1-3-4-6-5-2-10-9-8-7-11-12-13-14。
若变异产生的子代基因序列不满足工序的优先约束关系,则子代基因序列与父代相同。
经过遗传算法得到新的种群后,将父代种群与子代种群合并,然后按最大分配原则计算基因序列的平衡率。
最大分配原则的具体步骤如下:
(1)若tk≤tc,则将基因位置编号为k的工序划分到工位i中;
(2)按照工序的优先约束关系继续计算,若tk+tk+1≤tc,则将基因位置编号为k+1的工序也划分到工位i中;反之若tk+tk+1>tc,则将基因位置编号为k+1的工序划分到工位i+1中;
(3)对上述步骤1和步骤2,从基因序列中位置为一的工序开始,重复多次执行,直到最后一个工序截止,即可对单个基因序列中的所有工序完成工位的划分。
其中,k是基因序列中的基因位置编号,tk是基因位置编号为k的工序对应的装配时间,tc为生产节拍,i为协作机器人装配生产线中的第i个工位,k+1是基因序列中的基因位置编号,tk+1是基因位置编号为k+1的工序对应的装配时间,i+1为协作机器人装配生产线中的第i+1个工位。
完成基因序列中工位的划分后,下面开始计算各个基因序列的平衡率。
平衡率计算公式如下:
其中,i是协作机器人装配生产线的第i个工位;j是协作机器人装配生产线的第i个工位内的装配工序j;tj是协作机器人装配生产线的第i个工位内的装配工序j的装配时间;m是协作机器人装配生产线的第i个工位内的装配工序的数目;n是协作机器人装配生产线的工位数目;tc是协作机器人装配生产线的生产节拍。
将经过遗传算法运算得到的种群按照平衡率由高到低的顺序排列,把初始种群总数以后的基因种群淘汰,完成对初始种群的更新。通过对初始种群进过多次的拓扑排序和计算分析,使种群的基因序列逐渐趋于稳定。输出稳定的基因序列对应的工序排列方式和工位划分方法,这样就使协作机器人装配生产线在该生产节拍下的平衡率最高。
本发明并不限于上文描述的实施方式。以上对具体实施方式的描述旨在描述和说明本发明的技术方案,上述的具体实施方式仅仅是示意性的,并不是限制性的。在不脱离本发明宗旨和权利要求所保护的范围情况下,本领域的普通技术人员在本发明的启示下还可做出很多形式的具体变换,这些均属于本发明的保护范围之内。