一种基于迭代二分遗传算法的多功能贴片机元件分配方法与流程

文档序号:23348601发布日期:2020-12-18 16:51阅读:83来源:国知局
一种基于迭代二分遗传算法的多功能贴片机元件分配方法与流程
本发明属于贴片机表面贴装技术优化
技术领域
,具体涉及一种基于迭代二分遗传算法的多功能贴片机元件分配方法。
背景技术
:现代生产生活中充斥着各类电子设备,电路板(printedcircuitboard,pcb)正是这些电子设备的核心部件,流水线式、大规模、柔性化的电路板表面贴装任务,对贴装生产效率提出了更高的要求,等时间内能否产出更多的pcb,直接关乎生产厂商的竞争力与效益。对于特定结构的贴片机,机械运动速度已经难以提升,所以进一步提高贴装生产效率的关键瓶颈在于贴装过程的调度方案是否更优,这也就带来了贴装过程优化问题。1、多功能贴片机贴装过程如图1所示,多功能贴片机是基于xy轴运动平台实现的,两个定臂1及一个动臂2组成了拱架式悬臂系统,带有多个吸杆的贴片头由拱架式悬臂系统带动,实现在水平面内的二自由度运动。各吸杆能够沿竖直方向上下运动,各吸杆的自由端可以安装不同类型的吸嘴,用于匹配不同的元件封装完成元件的拾取与贴装。吸杆上的吸嘴可由吸嘴站3自动地拆卸与安装。在多功能贴片机的侧面设有供料器架,供料器架上开有供料器槽4,固定于供料器槽上的带式供料器5将进行元件的供应。完成元件拾取的贴片头6,将移动到固定相机7上方。随后,固定相机拍照,并确定所拾取元件的位置与角度。电路板传送带8实现将电路板9传入到指定位置等待贴装,并在贴装完成后将pcb传出。多功能贴片机能够自动完成自供料器拾取元件,而后在电路板上指定位置贴装元件,这样的一个来回称作一个拾贴周期,如此往复循环,直至完成一块电路板的贴装。一块电路板首先由传送带传入,并在贴装平台的指定位置上被固定,随后贴装过程开始,如图2所示,贴装过程将重复进行各轮拾贴周期直到完成所有元件的贴装,一轮拾贴周期中包含两个主要步骤:贴片头移动到供料器上方进行元件拾取,贴片头移动到电路板上方进行元件贴装。在每个拾贴周期开始前,需要判断是否发生要拾取的元件类型与当前装备的吸嘴类型不匹配的情形,若不匹配,贴片头需要移动至吸嘴站进行吸嘴更换。2、多功能贴片机的元件分配元件分配优化的三个目标为:拾贴周期数最小化、吸嘴更换次数最小化、同时拾取次数最大化。减少拾贴周期数,即减少贴片头在供料器与电路板之间的往返次数,从而大幅缩短贴片头的移动距离。进行一次吸嘴更换耗时很长,通常超过在一个拾贴周期中贴片头的移动耗时的两倍,因而需要追求吸嘴更换次数最小化。通过合理地安排供料器的相对位置,两个或更多个吸杆可以从供料器中同时拾取元件,图3、图4和图5所示的三种情形分别实现了6个元件的同时拾取、3个元件的同时拾取、2个元件的同时拾取,通过更多地实现同时拾取,能直接减少拾取操作的次数。综合上述三个目标,元件分配的代价函数为:e=k+e1·v-e2·sp其中,k为拾贴周期数,k=1,2,...,k为拾贴周期索引,v为吸嘴更换总次数,sp为同时拾取节省的拾取操作总次数;e1为更换吸嘴权重;e2为同时拾取权重。以单个拾贴周期的平均耗时为基准,某个目标的权重通过将该目标平均耗时进行折算得到。默认设置为,e1取2,e2取1/6。元件分配的输入为待贴装的pcb上的元件信息,元件分配的输出结果包括元件类型号矩阵以及供料器分组结果。元件类型号矩阵为一个二维矩阵,其中存储了各子周期内,各吸杆所需拾取与贴装的元件类型。供料器分组结果包含若干个供料器组,每个供料器组为一个一维数组,其中存储了一个或多个供料器,在该数组中的存储位置反映了各供料器被同时拾取时的相对位置。专利cn108925126a提供了一种实现元件分配的启发式算法,该算法由两步实现:第一步,利用专家经验来限制元件类型号矩阵的搜索范围,并且保证在被缩小的搜索范围中较大概率会包含最优解;第二步,对于每个搜索到的吸嘴类型号矩阵,其采用一种贪心算法来对供料器分组,该贪心算法在保证供料器组中所用的供料器个数不超过可用个数的同时,实现同时拾取的最大化,计算所有搜索到的元件分配结果的代价函数,并将代价函数最小的元件分配结果作为最优解输出。3、目前的研究缺陷针对多功能贴片机的元件分配优化问题,虽然目前已有有效的研究框架,但是现有解决方案在元件类型号矩阵的搜索方法上仍有提升空间,具体表现为,现有方法直接采用专家经验来限定元件类型号矩阵的搜索范围,搜索的随机性不足,导致很多能够带来改进的分配结果无法被搜索到,无法保证最后的输出为最优解。技术实现要素:本发明的目的是为解决现有方法直接采用专家经验来限定元件类型号矩阵的搜索范围,导致搜索的随机性不足,无法输出最优解的问题,而提出了一种基于迭代二分遗传算法的多功能贴片机元件分配方法。本发明为解决上述技术问题采取的技术方案是:一种基于迭代二分遗传算法的多功能贴片机元件分配方法,该方法包括以下步骤:步骤1:导入pcb元件信息;步骤2:根据导入的pcb元件信息中的元件类型将所有贴装点分组,得到初始的元件组,以初始的元件组为当前的元件组执行步骤3;步骤3:利用当前的元件组来初始化染色体种群数组,再对染色体种群数组中的各染色体的编码信息进行解码,获得各染色体的适应度函数值;步骤4:设置对染色体种群数组进行迭代优化的终止条件;步骤5:根据步骤3的染色体种群数组和染色体的适应度函数值,使用“选择”、“交叉”和“变异”三种遗传操作,生成下一代染色体种群,更新最优染色体,且直至满足步骤4的终止条件时,停止对染色体种群数组的更新;步骤6:若步骤5的染色体种群数组更新过程中发生染色体改进,则对当前的元件组进行元件组二分操作,获得新的元件组,以新的元件组为当前的元件组来执行步骤3,重新生成染色体种群数组,并获得重新生成的染色体种群数组中各染色体的适应度函数值;然后利用重新生成的染色体种群数组以及重新生成的染色体种群数组中各染色体的适应度函数值来重复执行步骤4和步骤5,直至步骤5的染色体种群数组更新过程中未发生染色体改进,执行步骤7;否则若步骤5的染色体种群数组更新过程中未发生染色体改进,则直接执行步骤7;步骤7:输出最优染色体的元件分配结果。本发明的有益效果是:本发明提出了一种基于迭代二分遗传算法的多功能贴片机元件分配方法,本发明在利用专家经验设计启发式算法限定搜索空间的同时,利用遗传算法来增加搜索到的元件分配结果的多样性,能够在合理的运算时间内输出最优的元件分配结果。实验结果表明,本发明提供的方法可以大幅提升贴片机的生产效率,对元件分配结果的改进达9.68%。附图说明图1为多功能贴片机结构示意图;图2为多功能贴片机贴装过程的流程图;图3为六个元件被同时拾取的示意图;图4为三个元件被同时拾取的示意图;图5为两个元件被同时拾取的示意图;图6为本发明的算法流程图;图7为遗传算法的“轮盘赌选择”操作示意图;图8为遗传算法的“部分映射交叉”操作示意图;图9为遗传算法的“两点变异”操作示意图。具体实施方式具体实施方式一:结合图6说明本实施方式。本实施方式所述的一种基于迭代二分遗传算法的多功能贴片机元件分配方法,该方法具体通过以下步骤实现:步骤1:导入pcb元件信息;步骤2:根据导入的pcb元件信息中的元件类型将所有贴装点分组,得到初始的元件组,以初始的元件组为当前的元件组执行步骤3;步骤3:利用当前的元件组来初始化染色体种群数组,再对染色体种群数组中的各染色体的编码信息进行解码,获得各染色体的适应度函数值;步骤4:设置对染色体种群数组进行迭代优化的终止条件;步骤5:根据步骤3的染色体种群数组和染色体的适应度函数值,使用“选择”、“交叉”和“变异”三种遗传操作,生成下一代染色体种群,更新最优染色体,且直至满足步骤4的终止条件时,停止对染色体种群数组的更新;步骤6:若步骤5的染色体种群数组更新过程中发生染色体改进,则对当前的元件组进行元件组二分操作,获得新的元件组,以新的元件组为当前的元件组来执行步骤3,重新生成染色体种群数组,并获得重新生成的染色体种群数组中各染色体的适应度函数值;然后利用重新生成的染色体种群数组以及重新生成的染色体种群数组中各染色体的适应度函数值来重复执行步骤4和步骤5,直至步骤5的染色体种群数组更新过程中未发生染色体改进,执行步骤7;否则若步骤5的染色体种群数组更新过程中未发生染色体改进,则直接执行步骤7;步骤7:输出最优染色体的元件分配结果。贴装过程优化问题可被分为元件分配与拾贴路径规划两个子问题,本发明主要研究的是多功能贴片机表面贴装技术中的元件分配问题。本发明阐述了一种基于迭代二分遗传算法的元件分配优化方案。与专利cn108925126a相比,本发明的创新点在于改进了第一步的元件类型号矩阵的搜索方法,其核心思想是,在利用专家经验设计启发式算法限定搜索空间的同时,利用遗传算法来增加搜索到的元件分配结果的多样性,从而进一步优化元件分配结果。“启发式+遗传算法”的元件分配求解方案能够在合理的运算时间内获得最优解。在第二步进行供料器分组以及计算同时拾取次数时,本发明采用与专利cn108925126a相同的贪心算法,对于该贪心算法,本发明不再赘述,后面中提到处,用“供料器分组贪心算法”进行代指。具体来说,本发明具备以下创新点:(1)融合专家经验,提供了一种针对元件分配问题进行遗传算法优化的方案,尤其是提供了一种染色体编码解码的方法。(2)基于迭代二分遗传算法对元件分配进行优化,实验结果表明,该方法能得出明显更优的元件分配结果。具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤1中导入pcb元件信息,导入的pcb元件信息具体包括:元件类型号信息:“cpc”表示第c类元件,c=1,2,...,c,c代表元件类型总数;各类元件对应的贴装点个数信息:φ(c)表示第c类元件对应的贴装点个数;吸嘴类型信息:“nzn”表示第n个吸嘴类型,n∈{1,2,...,n},n代表吸嘴类型总数,η(c)表示第c类元件对应的吸嘴类型索引;供料器序号信息:“fdf”表示第f个供料器,f=1,2,...,f,f表示供料器的总个数,ξ(c)示第c类元件对应的供料器序号索引,ξ(c)∈{1,2,...,f},从第f个供料器中同时拾取时,两吸杆间最少间隔的吸杆个数为δ(f);导入c列一维的数组md,数组md中的元素md(c)表示元件类型c可用的供料器个数,c∈{1,2,...,c},导入n列一维的数组mz,数组mz中的元素mz(n)表示吸嘴类型n可用的吸嘴个数,n∈{1,2,...,n}。其它步骤及参数与具体实施方式一相同。具体实施方式三:本实施方式与具体实施方式一至二不同的是:所述步骤2的具体过程为:将元件类型相同的元件分为一组,得到初始的元件组,以初始的元件组为当前的元件组执行步骤3;利用cc{ψ}表示元件组,元件组的总数为ψ,元件组的索引为ψ=1,2,...,ψ,元件组的总数ψ与元件类型数c相等;每个元件组中均包含有两个元件信息,其中第一个元件信息为元件类型号,表示为cc{ψ}(1)=c,第二个元件信息为元件类型号对应的贴装点个数,表示为cc{ψ}(2)=φ(c)。由表1的元件信息得出的初始元件组中,cc{1}=[115],cc{4}=[43]。其它步骤及参数与具体实施方式一至二之一相同。具体实施方式四:本实施方式与具体实施方式一至三不同的是:所述步骤3的具体过程为:步骤3.1、初始化染色体种群数组gg,染色体种群数组gg中包含的染色体数量为pp=40,染色体索引为pp=1,2,...,pp,每条染色体为1到ψ之间所有整数的一种随机排列,即数组gg是一个pp行ψ列的二维数组;比如对应表1的元件信息,一条可能的染色体为gg(21,:)=[634987125];步骤3.2、初始化染色体索引pp=1,初始化pp列的一维数组θ(pp),pp∈{1,2,...,pp},数组θ(pp)用于存储第pp条染色体的适应度函数;步骤3.3、判断pp是否小于等于pp,若是,则执行步骤3.4与步骤3.5,否则,执行步骤5;步骤3.4、设置将第pp条染色体的编码信息解码的初始化条件及循环条件;其具体过程为:步骤3.4.1、初始化h列一维的全一数组numc用于计数各吸杆上已经分配的元件类型个数,数组numc中的第h个元素numc(h)表示第h个吸杆上已经分配的元件类型个数,h=1,2,...,h,h表示吸杆总个数;初始化一个h列的二维矩阵ca用于存储各吸杆上分配的元件组信息,并赋值ca{numc(h),h}=[00],初始化一个h列一维的全零数组wl用于存储各吸杆上的工作负荷,数组wl中的第h个元素wl(h)表示第h个吸杆上的工作负荷;步骤3.4.2、初始化染色体数组gg中第pp条染色体的元素索引步骤3.4.3、判断是否小于等于ψ,若是,则执行步骤3.5,否则,执行步骤3.6;步骤3.5、预演将第个元件组分配到各吸杆h=1,2,...,h上,比较预演分配之后各吸杆的工作负荷,将工作负荷最小的吸杆作为第个元件组所分配的吸杆;其具体过程为:步骤3.5.1、获取第个元件组获取元件组ψ中的元件类型号c=cc{ψ}(1),并获取对应元件类型号c的吸嘴类型号n=η(c);步骤3.5.2、初始化吸杆索引h=1;初始化h列一维的全零数组nc用于标记各吸杆是否发生吸嘴更换,nc中的第h个元素nc(h)表示第h个吸杆是否发生吸嘴更换,h=1,2,...,h,初始化h列一维的全零数组maxwl用于存储预演分配到各个吸杆后,所有吸杆上的最大工作负荷,maxwl中的第h个元素maxwl(h)表示分配到第h个吸杆后,所有吸杆上的最大工作负荷;步骤3.5.3、判断h是否小于等于h,若是,则执行步骤3.5.4与步骤3.5.5,否则,执行步骤3.5.6;步骤3.5.4、获取第h个吸杆拾贴的最后一类元件的元件类型若不为0,则获取元件类型的吸嘴类型若不等于n,则赋值nc(h)=1,说明发生了吸嘴更换;否则,保持nc(h)=0,说明未发生吸嘴更换;步骤3.5.5、赋值临时数组wl1=wl用于存储预演分配后的工作负荷,并更新吸杆h上的贴装点个数wl1(h)=wl1(h)+cc{ψ}(2);将数组wl1中的最大值赋值给maxwl(h);更新h=h+1,返回步骤3.5.3;步骤3.5.6、赋值maxwl=maxwl+e1·nc,e1为更换吸嘴权重;将数组maxwl中的最小值赋值给awl;将数组maxwl中的所有大于awl的元素的索引记录于idxlarge;步骤3.5.7、赋值临时数组wl2=wl,赋值wl2=wl2+e1·nc;步骤3.5.8、赋值wl2(idxlarge)=wl2(idxlarge)+10000;备注:此处增加的10000是一个惩罚项,是为了直接排除这些预演分配中增加工作负荷过大的吸杆。步骤3.5.9、将数组wl2中最小值的索引赋值给即为预演分配后,工作负荷最小的吸杆索引;更新吸杆的工作负荷更新吸杆上已经分配的元件类型个数的计数值更新吸杆上已经分配的元件组信息更新返回步骤3.4.3;步骤3.6、由各吸杆上分配的元件组信息ca{numc(h),h},得到预备元件类型号矩阵ca0;其具体过程为:步骤3.6.1、将数组wl中的最大值赋值给k,初始化k行h列的二维全零矩阵ca0,ca0用于存储各拾贴周期内各个吸杆上的元件类型;备注:k即为拾贴周期数。步骤3.6.2、初始化吸杆索引h=1;初始化k行h列二维全零矩阵v,v作为吸嘴更换计数矩阵;步骤3.6.3、判断h是否小于等于h,若是,则执行步骤3.6.4与步骤3.6.5,否则,执行步骤3.6.9。步骤3.6.4、初始化吸杆h上的元件类型的计数变量cntc=1,初始化拾贴周期开始索引idxs=1,初始化拾贴周期终止索引idxe=0;步骤3.6.5、判断cntc是否小于等于numc(h),若是,则执行步骤3.6.6与步骤3.6.7,否则,更新h=h+1,返回步骤3.6.3;步骤3.6.6、赋值idxe=idxe+ca{cntc,h}(2),将ca0(idxs:idxe,h)中的元素全部赋值为ca{cntc,h}(1);步骤3.6.7、若cntc>1,获取元件类型号c1=ca{cntc,h}(1)与c0=ca{(cntc-1),h}(1),获取这两个元件类型对应的吸嘴类型号n1=η(c1)与n0=η(c0),若n1与n0不相等,说明发生了吸嘴更换,则赋值v(idxs,h)=1;步骤3.6.8、赋值idxs=idxs+ca{cntc,h}(2),更新cntc=cntc+1,返回步骤3.6.5;步骤3.6.9、计算吸嘴更换总次数执行步骤3.7;步骤3.7、由预备元件类型号矩阵ca0,得到元件类型号矩阵capp以及capp对应的拾贴周期数组κpp;其具体过程为:步骤3.7.1、初始化拾贴周期索引k=2,赋值子周期计数变量l;初始化k行h列二维全零矩阵capp,并赋值capp(1,:)=ca0(1,:),初始化k行一维全零数组κpp,κpp作为capp对应的拾贴周期数组;步骤3.7.2、判断k是否小于等于k,若是,则执行步骤3.7.3与步骤3.7.4,否则,执行步骤3.7.5;步骤3.7.3、判断sum(capp(l,:)-ca0(k,:))是否为0,若是,则说明当前的拾贴周期与上一拾贴周期中各吸杆上的元件类型相同,即同属同一子周期,则更新κpp(l)=κpp(l)+1;否则,说明当前拾贴周期应该属于一个新的子周期,赋值l=l+1,赋值capp(l,:)=ca0(k,:),则赋值κpp(l)=1;备注:sum(·)表示对括号内的数组求和。步骤3.7.4、更新k=k+1,返回步骤3.7.2;步骤3.7.5、capp((l+1:k),:)=[],κpp(l+1:k)=[],即清除capp、κpp中的多余元素。备注:子周期个数为l个,拾贴周期个数为k个,由于一个子周期会包含一个或多个拾贴周期,所以l不大于k;元件类型号矩阵的行数为l,对应的拾贴周期数组中元素的个数也为l;在步骤3.7.1中,尚不知道子周期个数l,所以初始化capp与κpp为k行;在步骤3.7.5中,已知子周期个数l,capp与κpp中超出l的元素是多余的,因而将多余的元素清除。步骤3.8、结合导入的pcb信息、元件类型号矩阵capp以及capp对应的拾贴周期数组κpp,计数由同时拾取而节省的拾取操作总次数sp;采用“供料器分组贪心算法”,综合供料器序号“fdf”,f∈{1,2,...,f},各类元件对应的供料器类型索引ξ(c),从各类供料器中同时拾取时,两吸杆间最少间隔的吸杆个数δ(f),各类元件的可用供料器个数md,元件类型号矩阵capp以及capp对应的拾贴周期数组κpp,获取如表3所示供料器分组结果,并计数由同时拾取而节省的拾取操作总次数sp;备注:“供料器分组贪心算法”详见专利cn108925126a,本发明对此不再赘述。步骤3.9、计数各拾贴周期内所用到的各类吸嘴的个数,判断是否超过可用吸嘴个数,并将超过可用吸嘴个数的次数计数;其具体过程为:步骤3.9.1、初始化拾贴周期索引k=1;初始化超过可用吸嘴个数的次数nab=0,nab用于计数超过可用吸嘴个数的次数;也可称nab为吸嘴过量使用次数;步骤3.9.2、判断k是否小于等于k,若是,则初始化吸杆索引h=1,初始化h列一维全零数组na0,执行步骤3.9.3;否则,执行步骤3.10;步骤3.9.3、判断h是否小于等于h,若是,则执行步骤3.9.4,否则,执行步骤3.9.5;步骤3.9.4、获取ca0中第k个拾贴周期第h个吸杆上的元件类型c=ca0(k,h),获取元件类型c对应的吸嘴类型,并存储为na0的第h个元素,即na0(h)=η(c);更新h=h+1,返回步骤3.9.3;步骤3.9.5、初始化吸嘴类型索引n=1,初始化一个n列一维的全零数组mz1,mz1用于计数所用到的各类吸嘴的个数;步骤3.9.6、判断n是否小于等于n,若是,则执行步骤3.9.7与3.9.8,否则,更新k=k+1,返回步骤3.9.2;步骤3.9.7、计数na0中吸嘴类型为n的个数,并存入数组mz1(n);步骤3.9.8、若mz1(n)>mz(n),则赋值nab=nab+(mz1(n)-mz(n)),否则,保持nab不变;更新n=n+1,返回步骤3.9.6;步骤3.10、计算第pp条染色体的元件分配结果的适应度函数θ(pp);其具体过程为:步骤3.10.1、计算元件分配结果的代价函数值e=k+e1·v-e2·sp;其中,e2为同时拾取权重;备注:k、v、sp分别在步骤3.6.1、步骤3.6.9、步骤3.8获得。步骤3.10.2、计算第pp条染色体的适应度函数值θ(pp)=e+nab*10000;备注:相比元件分配结果的代价函数值,适应度函数额外考虑了吸嘴过量使用次数nab,并通过对其乘以一个很大的数10000来惩罚吸嘴的过量使用情形。步骤3.10.3、更新pp=pp+1,返回步骤3.3。备注:步骤3.4到步骤3.10实现了将第pp条染色体gg(pp,:)的编码信息解码,得到元件分配结果,并计算元件分配结果的适应度函数θ(pp)。其它步骤及参数与具体实施方式一至三之一相同。具体实施方式五:本实施方式与具体实施方式一至四不同的是:所述步骤4的具体过程为:步骤4.1、初始化迭代计数变量it=1,初始化改进标志变量imp=0,初始化变量lit=1,lit表示最近一次染色体种群发生改进的代次;步骤4.2、获取适应度函数值数组θ中最小值的索引ip,θ=[θ(1),…,θ(40)],赋值mθ=θ(ip),赋值给mg=gg(ip,:);备注:mg与mθ分别存储了染色体种群中最优的染色体及其适应度值;步骤4.3、判断it-lit是否小于等于10,若是,则执行步骤5;否则,执行步骤6。其它步骤及参数与具体实施方式一至四之一相同。具体实施方式六:本实施方式与具体实施方式一至五不同的是:所述步骤5的具体过程为:步骤5.1、对染色体种群数组gg重复进行“选择”和“交叉”操作30次,获得更新的染色体种群数组gg′和更新的适应度函数值数组θ′;步骤5.2、对染色体种群数组gg′重复进行“选择”和“变异”操作,获得新一代的染色体种群数组gg″和新一代的适应度函数值数组θ″;步骤5.3、获取数组θ″中最小值的索引ip1,赋值mθ1=θ″(ip1);步骤5.4、判断是否满足mθ1<mθ,若满足,则说明新一代染色体种群相比上一代发生了改进,更新mθ=mθ1,mg=gg″(ip1,:),赋值lit=it,赋值imp=1;若不满足,则不做改变;步骤5.5、更新it=it+1,返回步骤4.3。其它步骤及参数与具体实施方式一至五之一相同。具体实施方式七:本实施方式与具体实施方式一至六不同的是:所述步骤5.1的具体过程为:步骤5.1.1、根据步骤3计算出的适应度函数值θ(pp),计算染色体pp=1,2,...,pp的选择概率r(pp):步骤5.1.2、根据计算出的选择概率r(pp),进行图7所示的“轮盘赌选择”操作,从数组gg中选择出两条染色体gg(pp1,:)与gg(pp2,:)作为要进行交叉操作的父代染色体;备注:染色体pp的适应能力由适应度函数θ(pp)评价,θ(pp)越小对应的适应能力越强,r(pp)越大,使用“轮盘赌选择”操作,保障了适应能力越强的染色体有越大的概率被遗传给下一代染色体。步骤5.1.3、对两条父代染色体进行图8所示的“部分映射交叉”操作,生成两条子代染色体gg(1,:)与gg(2,:);步骤5.1.4、对两条子染色体gg(1,:)与gg(2,:)的编码信息解码,得到元件分配结果,并计算gg(1,:)与gg(2,:)对应的适应度函数值θ(1)与θ(2);备注:对染色体编码信息的解码方法详见步骤3.4到步骤3.10。步骤5.1.5、若θ(1)<θ(pp1),更新gg(pp1,:)=gg(1,:),更新θ(pp1)=θ(1),否则,保持gg(pp1,:)、θ(pp1)不变;若θ(2)<θ(pp2),更新gg(pp2,:)=gg(2,:),更新θ(pp2)=θ(2),否则,保持gg(pp2,:)、θ(pp2)不变;步骤5.1.6、继续利用步骤5.1.5更新后的染色体种群和适应度函数值来重复步骤5.1.1至步骤5.1.5的过程,直至重复次数达到30次;获得更新的染色体种群数组gg′和更新的适应度函数值数组θ′。其它步骤及参数与具体实施方式一至六之一相同。具体实施方式八:本实施方式与具体实施方式一至七不同的是:所述步骤5.2的具体过程为:步骤5.2.1、根据计算出的适应度函数值数组θ′计算更新的染色体种群数组gg′中的染色体pp′=1,2,...,pp的选择概率r(pp′):步骤5.2.2、根据选择概率r(pp′),进行图7所示的“轮盘赌选择”操作,从数组gg′中选择出一条染色体gg′(pp′1,:)作为要进行变异操作的父代染色体;步骤5.2.3、对父代染色体进行图9所示的“两点变异”操作,生成一条子代染色体gg′(1,:);步骤5.2.4、对子染色体gg′(1,:)的编码信息解码得到元件分配结果,并计算gg′(1,:)的适应度函数值θ′(1);备注:对染色体编码信息的解码方法详见步骤3.4到步骤3.10。步骤5.2.5、若θ′(1)<θ′(pp′1),更新gg′(pp′1,:)=gg′(1,:),更新θ′(pp′1)=θ′(1),否则,保持gg′(pp′1,:)、θ′(pp′1)不变;步骤5.2.6、继续利用步骤5.2.5更新后的染色体种群和适应度函数值来重复步骤5.2.1至步骤5.2.5的过程,直至重复次数达到30次;获得新一代的染色体种群数组gg″和新一代的适应度函数值数组θ″。其它步骤及参数与具体实施方式一至七之一相同。具体实施方式九:本实施方式与具体实施方式一至八不同的是:所述步骤6中,对当前的元件组进行元件组二分操作,获得新的元件组,以新的元件组为当前的元件组执行步骤3,重新生成染色体种群数组,其具体过程为:步骤6.1、判断步骤5中是否有imp=0,若是,则执行步骤7,否则,执行步骤6.2;备注:imp=0说明步骤4与步骤5中进行染色体种群迭代优化未发生任何改进,这种情况下没必要进行元件组二分操作。步骤6.2、初始化元件组索引变量ψ=1;步骤6.3、判断ψ是否小于等于ψ,若是,则执行步骤6.4;否则,执行步骤6.6;步骤6.4、判断cc{ψ}(2)是否大于2,若是,则执行步骤6.5;否则,更新ψ=ψ+1,返回步骤6.3;步骤6.5、更新ψ=ψ+1,计算赋值cc{ψ}(1)=cc{ψ}(1),cc{ψ}(2)=cc,更新cc{ψ}(2)=cc{ψ}(2)-cc,更新ψ=ψ+1,返回步骤6.3;备注:表示向上取整;步骤6.5对第ψ个元件组中的元件数量进行了二分。步骤6.6、重新初始化染色体种群数组gg,染色体种群数组中gg包含染色体数量为pp=40,染色体索引为pp=1,2,...,pp,每条染色体为1到ψ之间所有整数的一种随机排列;步骤6.7、对染色体种群中所有染色体的编码信息进行解码,返回步骤4。备注:对染色体种群中所有染色体编码信息的解码方法详见步骤3.2到步骤3.10。其它步骤及参数与具体实施方式一至八之一相同。具体实施方式十:本实施方式与具体实施方式一至九不同的是:所述最优染色体是指步骤5获得的染色体种群数组中适应度函数值最小的染色体mg。备注:对染色体编码信息的解码方法详见步骤三四到步骤三十。采用以下实施例验证本发明的有益效果:实施例一:本实施例一种基于迭代二分遗传算法的多功能贴片机元件分配方法是按照具体实施方式制备的:记贴片头上的吸杆总数为h,在本发明提供的例子中,h=6,即贴片头中有六个吸杆,吸杆索引为h=1,2,...,h,对应编号为吸杆1~吸杆6。注意,本发明提供的方法亦可应用于其他吸杆总数的情形。算例考虑一台六吸杆多功能贴片机的元件分配优化过程,元件分配优化的输入信息为表1中的pcb元件信息。元件分配所用到的元件信息包含:所要贴装的pcb上各元件类型的元件类型号、元件类型名、贴装点个数、吸嘴类型名以及供料器类型名。表1pcb元件信息用“cpc”表示第c类元件,c=1,2,...,c,c为元件的类别总数。在表1的pcb中c=9,如cp7对应的元件类型名为me6211-2.8。用φ(c)表示第c类元件对应的贴装点个数,如表1的pcb中φ(1)=15,φ(4)=3。用“nzn”表示第n类吸嘴,n=1,2,...,n。表1的pcb中n=3,nz1、nz2、nz3对应吸嘴类型名分别为cn065、cn140、cn220。用η(c)表示第c类元件对应的吸嘴类型,η(c)∈{1,2,...,n},如表1的pcb中η(3)=3,η(7)=2。用“fdf”表示第f类供料器,f=1,2,...,f。表1的pcb中f=2,fd1、fd2对应供料器类型名分别为sm8、sm24。用ξ(c)表示第c类元件对应的供料器类型,ξ(c)∈{1,2,...,f},如表1的pcb中ξ(3)=2,ξ(7)=1。用δ(f)表示由第f类供料器中同时拾取时,由于供料器宽度的限制,两吸杆间最少间隔的吸杆个数,如表1的pcb中,第1类供料器实现的同时拾取如图3所示,δ(1)=0,即两吸杆之间无需间隔吸杆,第2类供料器实现的同时拾取如图4所示,δ(2)=1,即两吸杆之间需至少间隔一个吸杆才能实现同时拾取。用md(c)表示各类元件的可用供料器个数,如表1中所有类型元件可用供料器个数均为1,即有md(1)=1,md(9)=1。用mz(n)表示各类吸嘴的可用吸嘴个数,如表1中所有类型吸嘴可用吸嘴个数均为6,即有mz(2)=6,mz(5)=6。导入表1所示的pcb元件信息后,基于专利cn108925126a,将得出表2、表3与表4所示的元件分配结果。表2元件类型号矩阵及对应的拾贴周期数表2所示为元件类型号矩阵,其中存储的是各子周期内,各吸杆所需拾取与贴装的元件类型。所述子周期,由各吸杆拾贴元件相同的相邻拾贴周期合并得到。l为子周期总数,表2中l=5,子周期索引为l=1,2,...,l,如子周期2包含拾贴周期2、3在内的两个拾贴周期。表2中的元件类型号矩阵可以被写作l行h列的数组:其中,ca(l,h)即对应第l个子周期中第h个吸杆上的元件,表2中的元件类型号矩阵对应的拾贴周期数可以用l维数组表示为κ=[12111]。拾贴周期总数为表3供料器分组结果供料器组1cp2cp5cp9供料器组2cp3供料器组3cp1cp7供料器组4cp4cp8供料器组5cp6表3所示为供料器分组结果,用“fsg”表示第g个供料器组,g=1,2,...,g。表3中g=5,即有五个供料器组,各供料器组可以用数组表示为:fs1=[2059],fs2=[3],fs3=[17],fs4=[48],fs5=[6]。结合表2与表3,可以得出在各拾贴周期中由同时拾取节省的拾取操作次数数组sp=[211100],其中,sp(k)表示第k个拾贴周期内由同时拾取节省的拾取操作次数,在拾贴周期1中,从供料器组1可以同时拾取三个元件,即三个元件可以一次性拾取完成,节省了两个拾取操作,对应的有sp(1)=2;在拾贴周期2与拾贴周期3中,从供料器组3可以同时拾取两个元件,即两个元件可以一次性拾取完成,节省了一个拾取操作,对应的有sp(2)=1,sp(3)=1;在拾贴周期4中,从供料器组4可以同时拾取两个元件,即两个元件可以一次性拾取完成,节省了一个拾取操作,对应的有sp(4)=1;拾贴周期5与拾贴周期6中,没有同时拾取,即sp(5)=0,sp(6)=0。同时拾取节省的拾取操作总次数为表4吸嘴类型号矩阵及对应的拾贴周期数吸杆1吸杆2吸杆3吸杆4吸杆5吸杆6拾贴周期数子周期1nz1nz1nz1nz1nz2nz31子周期2nz1nz1nz1nz1nz202子周期3nz1nz1nz1nz1nz201子周期4nz1nz1nz1nz1001子周期5nz1000001表4所示吸嘴类型号矩阵,综合表2以及元件类型到吸嘴类型的对应关系η(c)得到。用v(k,h)表示第k个拾贴周期的第h个吸杆上是否需要进行吸嘴更换,若需要进行吸嘴更换,v(k,h)=1,否则,v(k,h)=0。表4中各吸杆均未发生过吸嘴更换,因而表2、表3与表4所示的元件分配结果的代价函数为e1=k+e1·v-e3·sp=6+2*0-5/6=5.1667按照本发明的具体实施方式,可以得到元件分配结果为:表5元件类型号矩阵及对应的拾贴周期数吸杆1吸杆2吸杆3吸杆4吸杆5吸杆6拾贴周期数子周期1cp3cp4cp1cp7cp2cp51子周期20cp4cp1cp8cp6cp11子周期30cp1cp1cp9cp4cp11子周期40cp1cp1cp70cp11子周期50cp1cp100cp12表5中的元件类型号矩阵对应的拾贴周期数可以用l维数组表示为κ=[11112]。拾贴周期总数为表6供料器分组结果供料器组1cp3供料器组2cp4cp1cp7cp2cp5供料器组3cp8cp6供料器组4cp9表6所示为供料器分组结果,有四个供料器组,各供料器组可以用数组表示为:fs1=[3],fs2=[41725],fs3=[86],fs4=[9]。结合表5与表6,可以得出在各拾贴周期中由同时拾取节省的拾取操作次数数组sp=[421100],其中,sp(k)表示第k个拾贴周期内由同时拾取节省的拾取操作次数,在拾贴周期1中,从供料器组2可以同时拾取五个元件,即五个元件可以一次性拾取完成,节省了四个拾取操作,对应的有sp(1)=4;在拾贴周期2中,从供料器组2可以同时拾取两个元件,节省了一个拾取操作,从供料器组3可以同时拾取两个元件,节省了一个拾取操作,共计节省两个拾取操作,对应的有sp(2)=2;在拾贴周期3中,从供料器组2可以同时拾取两个元件,节省了一个拾取操作,对应的有sp(3)=1;在拾贴周期4中,从供料器组2可以同时拾取两个元件,即两个元件可以一次性拾取完成,节省了一个拾取操作,对应的有sp(4)=1;拾贴周期5与拾贴周期6中,没有同时拾取,即sp(5)=0,sp(6)=0。同时拾取节省的拾取操作总次数为表7吸嘴分配结果表7所示吸嘴类型号矩阵中,各吸杆均未发生过吸嘴更换,因而表5、表6与表7所示的元件分配结果的代价函数为:e2=k+e1·v-e3·sp=6+2*0-8/6=4.6667相比于专利cn108925126a,本发明的方法能够带来的改进比例为输入表1中的pcb元件信息,使用商业软件进行元件分配,得到的元件分配结果的代价函数为e3=k+e1·v-e3·sp=5+2*1-4/6=6.3333相比商业软件,本发明的方法能够带来的改进比例为效果明显优于专利cn108925126a和商业软件的方法。本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1