CN116113171A - 一种在贴片机生产的同时进行拾贴路径在线优化的方法 - Google Patents

一种在贴片机生产的同时进行拾贴路径在线优化的方法 Download PDF

Info

Publication number
CN116113171A
CN116113171A CN202310110779.1A CN202310110779A CN116113171A CN 116113171 A CN116113171 A CN 116113171A CN 202310110779 A CN202310110779 A CN 202310110779A CN 116113171 A CN116113171 A CN 116113171A
Authority
CN
China
Prior art keywords
pick
mounting
initializing
array
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310110779.1A
Other languages
English (en)
Inventor
李政锴
于兴虎
孙昊
高会军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo Yitang Intelligent Technology Co ltd
Original Assignee
Ningbo Yitang Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ningbo Yitang Intelligent Technology Co ltd filed Critical Ningbo Yitang Intelligent Technology Co ltd
Priority to CN202310110779.1A priority Critical patent/CN116113171A/zh
Publication of CN116113171A publication Critical patent/CN116113171A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K3/00Apparatus or processes for manufacturing printed circuits
    • H05K3/30Assembling printed circuits with electric components, e.g. with resistor
    • H05K3/303Surface mounted components, e.g. affixing before soldering, aligning means, spacing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K13/00Apparatus or processes specially adapted for manufacturing or adjusting assemblages of electric components
    • H05K13/04Mounting of components, e.g. of leadless components
    • H05K13/046Surface mounting

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Manufacturing & Machinery (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Supply And Installment Of Electrical Components (AREA)

Abstract

一种在贴片机生产的同时进行拾贴路径在线优化的方法,涉及一种贴片机拾贴路径优化方法。为了解决现有贴片机调度软件基于启发式算法进行优化存在最优解搜索能力差而导致的拾贴路径过长的问题。本发明首先根据贴片机贴装优化求解器得出初始的贴装过程优化结果,并将该结果传入贴片机工控机中,开始表面贴装生产;同时基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果。

Description

一种在贴片机生产的同时进行拾贴路径在线优化的方法
技术领域
本发明属于电器技术及电气工程领域,具体涉及一种贴片机拾贴路径优化方法。
背景技术
现代生产生活中,人们离不开各类电子产品。电子产品组装过程中的关键环节是电路板组装,电路板组装必须用到表面贴装技术,实现该技术的核心装备是贴片机。贴片机迅速地拾取电子元件、电子器件与芯片,并将其快速准确地贴装到电路板表面的各贴装点上。为了表述简便,将“电子元件、电子器件与芯片”统称为“元件”,将“拾取与贴装”简称为“拾贴”。
目前市场上贴片机均建立在图1所示的龙门式三维运动平台上:贴片载具内等距安装有若干可进行吸气与吹气的吸杆,各吸杆由贴片载具内的电机驱动沿Z方向上下运动,贴片载具分别由平动导轨与固定导轨驱动在水平面内沿X与Y方向运动。借助上述运动机构,即可完成对元件的拾取、移动与贴装。在拾贴过程开始前,电路板由电路板传送带传送至止挡捎位置后,将被压紧固定。在拾贴过程中,在供料器基座上固定安装的供料器将自动补充待供应的元件,供应到位的元件将出现在供料器前端的拾取点处,等待被拾取。
贴片机的拾贴过程如图2所示。由于吸杆个数有限且明显少于贴装点个数,贴片载具需要分多个拾取与贴装周期(拾贴周期)完成一整块电路板的贴装。一个拾贴周期内的拾贴过程可被概述如下:贴片载具首先移动到供料器基座处;贴片载具上的各吸杆依次移动到对应拾取点处进行元件拾取;待所有吸杆均完成元件拾取后,贴片载具移动到电路板处;贴片载具上的各吸杆依次移动到对应贴装点处进行元件贴装。待所有吸杆均完成元件贴装后,开始下一个拾贴周期的拾贴过程。
对贴片机拾贴过程进行优化,可明显缩短表面贴装耗时,该优化问题包括三个子问题,即“元件分配问题”、“供料器位置分配问题”与“拾贴路径优化问题”。“元件分配”需要确定各拾贴周期内的各吸杆所贴装的元件类型;“供料器位置分配”需要确定各供料器在供料器基座上的安装位置。“拾贴路径优化”分两步完成:首先在满足元件分配的约束下,进行“贴装点分配”,确定各拾贴周期内的各吸杆所贴装的贴装点;随后优化“贴装排序”,即确定各拾贴周期内各吸杆进行贴装的先后顺序。
拾贴过程优化的一个重要目标是拾贴路径长度的最小化。在拾贴过程中,贴片载具的运动路径被称作贴片机的拾贴路径。按照各段路径的起点与终点类型,可将任意一个拾贴周期内的拾贴路径分为四类:1)拾取路径,即当前周期内各吸杆依次完成元件拾取的路径,其起点与终点都是拾取点;2)拾转贴路径,即当前周期内所有吸杆完成拾取后从供料器基座移动到电路板的路径,其起点为当前周期内的最后一个拾取点,其终点为当前周期内的第一个贴装点;3)贴装路径,即当前周期内各吸杆依次完成元件贴装的路径,其起点与终点都是贴装点;4)贴转拾路径,即当前周期内所有吸杆完成贴装后从电路板移动到供料器基座的路径,其起点是当前周期内的最后一个贴装点,其终点为下一个周期内的第一个拾取点。
确定“元件分配”与“供料器位置分配”之后,拾取路径将被唯一确定,拾转贴路径、贴装路径、贴转拾路径的最小化将取决于“拾贴路径优化”。在贴片机的贴装生产过程中,“元件分配结果”与“供料器位置分配结果”无法更改,而“拾贴路径优化结果”可伴随生产过程持续改进。本发明首次提出在生产过程中,通过持续改进“贴装点分配”与“贴装排序”来最小化拾贴路径长度,并相应地给出了一种有效的优化方法。
发明内容
本发明为了解决现有贴片机调度软件基于启发式算法进行优化存在最优解搜索能力差而导致的拾贴路径过长的问题,以及生产中所采用的优化结果固定不变,无法进行在线优化与更新的问题。进而提出了一种在贴片机生产的同时进行拾贴路径在线优化的方法。
一种在贴片机生产的同时进行拾贴路径在线优化的方法,包括以下步骤:
步骤一、根据贴片机贴装优化求解器得出初始的贴装过程优化结果,并将该结果传入贴片机工控机中,开始表面贴装生产;
步骤二、从贴装过程优化结果中,获取贴片机参数、电路板生产数据以及初始拾贴路径优化结果;
步骤三、根据所导入的初始拾贴路径优化结果,得到各类元件所含贴装点的侯选位置,以及各类元件的初始贴装点排序数组;
步骤四、进行禁忌搜索的初始化;
步骤五、基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;
步骤六、对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果,若新的优化结果对应了更优的拾贴路径,则将其存储为最优结果。
进一步地,所述获取贴片机参数、电路板生产数据以及初始拾贴路径优化结果的过程包括以下步骤:
步骤二一、导入贴片机参数;所述贴片机参数包括吸杆总数H,按照沿X轴递增的顺序对各个吸杆的索引编号为h∈[1,…,H],吸杆间隔DI;
步骤二二、导入电路板生产数据;所述电路板生产数据包括:元件类型总数C,各类元件的索引编号为c∈[1,…,C]、所含贴装点个数n{c}∈[n{1},…,n{C}],贴装点总数P,各贴装点的索引编号为p∈[1,…,P],贴装点的坐标存储于行数为P、列数为2的二维数组xyt,其中,第p个贴装点的X坐标与Y坐标分别为xyt(p,1)与xyt(p,2);贴装点的坐标需被转换得到贴片载具上固定的参考点坐标才是贴装点对应的贴装坐标;
步骤二三、导入初始拾贴路径优化结果;拾贴周期总数K,各拾贴周期的索引编号为k∈[1,…,K];元件分配结果存储于行数为K、列数为H的二维数组CG,其中的元素CG(k,h)代表第k个拾贴周期中由第h个吸杆所拾贴的元件类型,即CG(k,h)∈[1,…,C];贴装点分配结果存储于行数为K、列数为H的二维数组PA0中,其中的元素PA0(k,h)代表第k个拾贴周期中由第h个吸杆所贴装的贴装点号,即PA0(k,h)∈[1,…,P];贴装排序结果存储于行数为K、列数为H的二维数组PS0中,其中的元素PS0(k,s)代表第k个拾贴周期中第s个进行贴装的吸杆号,即PS0(k,s)∈[1,…,H];拾贴路径长度DZ0,拾取路径长度DQ;各拾贴周期内第一个与最后一个拾取点对应的拾取坐标存储于行数为K、列数为2的二维数组xyqf与xyql中,其中的元素xyqf(k,1)与xyqf(k,2)代表第k个拾贴周期内第一个拾取点所对应拾取坐标中的X坐标与Y坐标,元素xyql(k,1)与xyql(k,2)代表第k个拾贴周期内最后一个拾取点所对应拾取坐标中的X坐标与Y坐标。
进一步地,所述得到各类元件所含贴装点的侯选位置,以及各类元件的初始贴装点排序数组的过程包括以下步骤:
步骤三一、初始化拾贴周期计数k=1;对应每类元件c∈[1,…,C],初始化元素全为零的行数为n{c}、列数为2的数组PL{c}∈[PL{1},…,PL{C}],用于存储各类元件所含贴装点的侯选位置,将PL{c}称作第c类元件的侯选位置数组;对应每类元件c∈[1,…,C],初始化元素全为零的行数为n{c}、列数为1的数组ps0{c}∈[ps0{1},…,ps0{C}],用于存储各类元件的贴装点分配顺序,将ps0{c}称作第c类元件的分配顺序数组;对应每类元件c∈[1,…,C],初始化计数变量i{c}=1,作为各类元件中贴装点的索引;
步骤三二、若k>K,说明对所有拾贴周期完成了一次遍历,执行步骤四,否则,初始化吸杆计数变量h=1,执行步骤三三;
步骤三三、若h>H,说明对所有吸杆完成了一次遍历,更新循环变量k=k+1,返回步骤三二,否则,执行步骤三四;
步骤三四、第k个拾贴周期中第h个吸杆所拾贴的元件类型为c=CG(k,h),判断是否有c=0;若是,说明该周期内的该吸杆不进行任何贴装,更新循环变量h=h+1,返回步骤三三,否则,执行步骤三五;
步骤三五、赋值PL{c}(i{c},1)=k、PL{c}(i{c},2)=h,赋值ps0{c}(i{c})=PA0(k,h),更新计数变量i{c}=i{c}+1,更新循环变量h=h+1,返回步骤三三。
进一步地,所述进行禁忌搜索的初始化过程包括以下步骤:
步骤四一、初始化并赋值局部搜索次数上限
Figure BDA0004076694980000041
其中符号
Figure BDA0004076694980000042
表示对其内数值进行向上取整;初始化元件种类计数c=1;
步骤四二、若c>C,说明对所有元件种类完成了一次遍历,进行步骤四八,否则,执行步骤四三;
步骤四三、第c类元件可以进行交换操作的次数为SWN{c}=0.5*n{c}*(n{c}-1);初始化元素全为零的行数为SWN{c}、列数为2的数组SWL{c},用于存储第c类元件所能进行的交换操作;初始化交换操作计数swn=0;初始化在先贴装点计数ni=1;
步骤四四、若ni>n{c}-1,说明对所有在先贴装点完成了一次遍历,进行步骤四七,否则,初始化在后贴装点计数nj=ni+1,执行步骤四五;
步骤四五、若nj>n{c},说明对所有在后贴装点完成了一次遍历,更新计数变量ni=ni+1,返回步骤四四,否则,执行步骤四六;
步骤四六、更新计数变量swn=swn+1,SWL{c}(swn,:)=[ni,nj],更新计数变量nj=nj+1,返回步骤四五;
步骤四七、初始化元素全为零的行数为SWN{c}、列数为1的数组TC{c},作为第c类元件的禁忌表,该数组中的每个元素标志着对应的交换操作是否被禁以及被禁次数,被禁次数上限为
Figure BDA0004076694980000043
更新计数变量c=c+1,返回步骤四二;
步骤四八、初始化元素全为零的行数为C、列数为1的数组swb,用于存储各类元件的最优交换操作;初始化元素全为零的行数为C、列数为1的数组swt,用于存储各类元件未被禁的最优交换操作。
进一步地,所述基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;具体过程包括以下步骤:
步骤五一、初始化历史最优拾贴路径长度DZ、当前解的拾贴路径长度DZb、当前解的贴装点分配结果PAb、当前解的贴装排序结果PSb,并赋值DZ=DZ0、DZb=DZ0、PAb=PA0、PSb=PS0,对应每类元件c∈[1,…,C],初始化并赋值ps{c}=ps0{c}、psb{c}=ps{c},用于存储最优分配顺序,初始化并赋值pst{c}=ps{c}用于存储未被禁的最优分配顺序;初始化并赋值无改进搜索计数变量IM=0;
步骤五二、若IM>IT,说明无改进搜索次数已达上限,执行步骤五一,开启下一轮搜索,否则,初始化未被禁的最短路径长度DZt为无穷大,初始化局部搜索计数变量it=1,执行步骤五三;
步骤五三、若it>IT,说明局部搜索次数已达上限,执行步骤五四,否则,对应每类元件c1∈[1,…,C],初始化并赋值psn{c1}=ps{c1},初始化元件种类计数c=1,执行步骤六;
步骤五四、判断是否有DZb<DZ;若是,则说明找到了更优的拾贴路径,进行步骤五五,否则,执行步骤五六;
步骤五五、更新最优结果,并将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产;
步骤五六、更新未被禁的最优结果。
进一步地,步骤五五所述的更新最优结果,并将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产的过程包括以下步骤:
步骤五五一、更新IM=0,更新最优结果DZ=DZb、PA=PAb、PS=PSb,对应每类元件c1∈[1,…,C],更新ps{c1}=psb{c1},将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产;初始化元件种类计数c=1;
步骤五五二、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量IM=IM+1,返回步骤五二,否则,初始化交换操作计数swn=1,执行步骤五五三;
步骤五五三、若swn>SWN{c},说明对所有交换操作完成了一次遍历,更新计数变量c=c+1,返回步骤五五二,否则,执行步骤五五四;
步骤五五四、更新禁忌表中的元素TC{c}(swn):判断是否有swn=swb(c),若是,则更新TC{c}(swn)=TL{c},否则,TC{c}(swn)=max(TC{c}(swn)-1,0),其中max表示取其后括号内数组中的较大者;判断完毕,更新计数变量swn=swn+1,执行步骤五五三。
进一步地,步骤五六所述的更新未被禁的最优结果的过程包括以下步骤:
步骤五六一、对应每类元件c1∈[1,…,C],更新ps{c1}=pst{c1};初始化元件种类计数c=1;
步骤五六二、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量IM=IM+1,返回步骤五二,否则,初始化交换操作计数swn=1,执行步骤五六三;
步骤五六三、若swn>SWN{c},说明对所有交换操作完成了一次遍历,更新计数变量c=c+1,返回步骤五六二,否则,执行步骤五六四;
步骤五六四、更新禁忌表中的元素TC{c}(swn):判断是否有swn=swt(c),若是,则更新TC{c}(swn)=TL{c},否则,TC{c}(swn)=max(TC{c}(swn)-1,0);判断完毕,更新计数变量swn=swn+1,执行步骤五六三。
进一步地,所述对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果,若新的优化结果对应了更优的拾贴路径,则将其存储为最优结果;具体过程包括以下步骤:
步骤六一、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量it=it+1,返回步骤五三,否则,执行步骤六二;
步骤六二、随机选取进行的操作swi∈[1,…,SWN{c}],则将进行交换的两个元素为ni=SWL{c}(swi,1)、nj=SWL{c}(swi,2),进行交换如下psn{c}(ni)=ps{c}(nj)、psn{c}(nj)=ps{c}(ni);
步骤六三、将进行交换后的分配顺序数组解码,得到新的贴装点分配结果;
步骤六四、进行动态规划的初始化,包括以下步骤:
步骤六四一、若k>K,进行步骤六七,否则,初始化吸杆计数h=1,初始化贴装坐标计数变量S=0,初始化贴装吸杆数组hs为空数组,初始化贴装坐标数组pt为空数组,执行步骤六四二,以计算本周期内所有贴装坐标;
步骤六四二、若h>H,执行步骤六四四,否则,执行步骤六四三;
步骤六四三、获取第k个拾贴周期中第h个吸杆所贴装的贴装点p=PAn(k,h),若p=0,不做处理,否则,更新贴装吸杆数组hs=[hs h],更新计数变量S=S+1,更新贴装坐标pt(S,1)=xyt(p,1)–(h-1)*DI、pt(S,2)=xyt(p,2);更新计数变量h=h+1,返回步骤六四二;
步骤六四四、初始化元素全为零的行数与列数都为S的数组dt,用于存储各贴装坐标之间的距离,将dt称作贴装距离数组;初始化元素全为零的行数为1、列数为S的数组df,用于存储各贴装坐标与第k个拾贴周期内最后一个拾取坐标之间的距离,将df称作拾转贴距离数组;初始化元素全为零的行数为1、列数为S的数组dw,用于存储各贴装坐标与第k+1个拾贴周期内第一个拾取坐标之间的距离,将dw称作贴转拾距离数组;初始化在先贴装点计数s1=1;
步骤六四五、若s1>S,说明对所有在先贴装点完成了一次遍历,执行步骤六四十,否则,初始化在后贴装点计数s2=s1+1,执行步骤六四六;
步骤六四六、计算dx=|pt(s1,1)-xyql(k,1)|、dy=|pt(s1,2)-xyql(k,2)|,符号||表示对其内数值取绝对值,计算拾转贴距离df(s1)=max(dx,dy);
步骤六四七、计算dx=|pt(s1,1)-xyqf(k+1,1)|、dy=|pt(s1,2)-xyqf(k+1,2)|,计算贴转拾距离dw(s1)=max(dx,dy);
步骤六四八、若s2>S,说明对所有在后贴装点完成了一次遍历,更新计数变量s1=s1+1,返回步骤六四五,否则,执行步骤六四九;
步骤六四九、计算dx=|pt(s1,1)-pt(s2,1)|、dy=|pt(s1,2)-pt(s2,2)|,计算贴装距离dt(s1,s2)=dt(s2,s1)=max(dx,dy),更新计数变量s2=s2+1,返回步骤六四八;
步骤六四十、初始化并赋值动态规划列数V=max(1,S-2);生成1到S的全排列为M,初始化并赋值数组U=[1!,…,S!],其中符号!表示对前面数值做阶乘;初始化元素全为零的行数为U(S)、列数为V的数组dd,用于存储动态规划各节点对应的路径长度,将dd称作动态规划距离数组,更新dd(:,1)=df(M(:,1))+dw(M(:,S));初始化排列计数u=0,初始化在更新的最左列计数V1=1;初始化元素全为零的行数为1、列数为V的数组J,作为最左列标记数组;执行步骤六五;
步骤六五、基于动态规划得到第k个拾贴周期中的最优贴装顺序。
进一步地,步骤六三所述的将进行交换后的分配顺序数组解码,得到新的贴装点分配结果的过程包括以下步骤:
步骤六三一、初始化元件种类计数c1=1;初始化更新中的贴装点分配结果PAn、更新中的贴装排序结果PSn、更新中的拾贴路径长度DZn,并赋值PAn=PAb、PSn=PSb、DZn=DQ,用于存储新搜索到的拾贴路径优化结果;
步骤六三二、若c1>C,说明对所有元件种类完成了一次遍历,初始化拾贴周期计数k=1,执行步骤六四,否则,初始化对第c1类元件的贴装点计数ii=1,执行步骤六三三;
步骤六三三、若ii>n{c1},说明对第c1类元件的所有贴装点完成了一次遍历,更新计数变量c1=c1+1,返回步骤六三二,否则,执行步骤六三四;
步骤六三四、获取候选位置k=PL{c1}(ii,1)、h=PL{c1}(ii,2),更新贴装点分配结果PAn(k,h)=psn{c1}(ii),更新计数变量ii=ii+1,返回步骤六三三。
进一步地,步骤六五所述的基于动态规划得到第k个拾贴周期中的最优贴装顺序的过程包括以下步骤:
步骤六五一、若u>U(S),说明对所有排列完成了一次遍历,执行步骤六六,否则,执行步骤六五二;
步骤六五二、更新计数变量u=u+1,初始化更新列计数v=V1
步骤六五三、若v>V,说明对所有列完成了一次遍历,执行步骤六五七,否则,执行步骤六五四;
步骤六五四、待计算间距的两贴装坐标索引分别为s1=M(u,v)与s2=M(u,v+1);动态规划距离数组待更新的最大行号为U1=u+U(V+1-v)-1;初始化u1=u;
步骤六五五、若u1>U1,更新s1=M(u,S-1)、s2=M(u,S)、dd(u,V)=dd(u,V)+dt(s1,s2),更新计数变量v=v+1,返回步骤六五三,否则,执行步骤六五六;
步骤六五六、动态规划距离数组待求和的最小列号为v1=max(1,v-1),更新dd(u1,v)=sum(dd(u1,v1:v))+dt(s1,s2),其中sum表示对其后括号内的数组求和,更新计数变量u1=u1+1,返回步骤六五五;
步骤六五七、更新J(1)=J(1)+1;初始化更新列计数v=1;
步骤六五八、若v>V,V1=V+1-v2,返回步骤六五一,否则,执行步骤六五九;
步骤六五九、若J(v)≤U(v),v2=v、v=V+1,返回步骤六五八,否则,执行步骤六五十;
步骤六五十、若v<V,更新J(v+1)=J(v+1)+U(v)、J(v)=0,否则,不做处理;更新计数变量v=v+1,返回步骤六五八;
步骤六六、得到[dm,um]=min(dd(:,V)),min表示取其后括号内数组的最小值,dm为最小拾贴路径,um为达成最小拾贴路径的排列索引,第k个拾贴周期的最优贴装顺序为PSn(k,1:S)=hs(M(um,:)),DZn=DZn+dm;更新计数变量k=k+1,返回步骤六四一;
步骤六七、判断是否有DZn<DZb;若是,则更新DZb=DZn、swb(c)=swi、PAb=PAn、PSb=PSn,对应每类元件c1∈[1,…,C],更新psb{c1}=psn{c1},若否,则不做任何处理;
步骤六八、判断是否有TC{c}(swi)=0且DZn<DZt;若是,则说明当前交换操作未被禁,并且得到结果优于未被禁的最短路径,更新DZt=DZn、swt(c)=swi,对应每类元件c1∈[1,…,C],更新pst{c1}=psn{c1},若否,则不做任何处理;
步骤六九、更新计数变量c=c+1,返回步骤六一。
本发明的有益效果为:
本发明公开了一种在贴片机生产的同时进行拾贴路径在线优化的方法,该方法在基于初始优化结果快速开展贴装生产后,基于禁忌搜索算法优化各类元件内的贴装点分配顺序,在搜索到的贴装点分配结果基础上,使用动态规划得到最优的贴装排序结果,若该结果对应了更优的拾贴路径,则基于该结果进行后续表面贴装生产,在贴片机生产的同时持续进行上述优化,实现贴装生产效率的最大化。不仅能够解决现有技术中针对最优解搜索能力差而导致的拾贴路径过长的问题,还能够进行在线优化与更新。实验表明,本发明提供的方法可以大幅提升贴片机生产效率,最大效率提升达11.78%。本发明提供的优化方法普遍适用于配备了不同贴片载具的各类贴片机。
附图说明:
为了易于说明,本发明由下述的具体实施及附图作以详细描述。
图1为配备梁式贴片载具的贴片机示意图;
图2为贴片机拾贴过程流程图;
图3为配备旋转式贴片载具的贴片机示意图;
图4为本发明贴片机拾贴路径优化方法流程图;
图5为本发明实施例的初始拾贴路径示意图;
图6为本发明实施例的改进后拾贴路径示意图;
图7为本发明实施例的拾贴路径长度收敛曲线图。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图中示出的具体实施例来描述本发明。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其它细节。
值得一提的是,贴片载具可分为两类:梁式贴片载具(见图1)与旋转式贴片载具(见图3)。贴片机在采用两类贴片载具时的贴装优化有所区别,但都需要解决上述三类问题。本发明对于采用两类贴片载具的贴片机都是适用的,将基于图1所示的梁式贴片载具提供实施例。
具体实施方式一:结合图4说明本实施方式,
本实施方式为一种在贴片机生产的同时进行拾贴路径在线优化的方法,包括以下步骤:
步骤一、得到初始的贴装过程优化结果,基于该结果开始表面贴装生产;
所述得到初始的贴装过程优化结果,基于该结果开始表面贴装生产的过程包括以下步骤:
步骤一一、根据现有贴片机贴装优化求解器得出初始的贴装过程优化结果;
步骤一二、将该结果传入贴片机工控机中,基于该结果开始表面贴装生产;
步骤一三、将该结果传入非生产调度的中央处理器中,执行步骤二,从而在进行表面贴装生产的同时,对拾贴路径优化结果进行持续改进;
所述非生产调度的中央处理器可以是贴片机所配备工控机中的其他中央处理器,也可以是与贴片机所配备工控机进行了通信组网的服务器或者其他工控机;
步骤二、从贴装过程优化结果中,获取贴片机参数、电路板生产数据以及初始拾贴路径优化结果;
所述获取贴片机参数、电路板生产数据以及初始拾贴路径优化结果的过程包括以下步骤:
步骤二一、导入贴片机参数;所述贴片机参数包括吸杆总数H,按照沿X轴递增的顺序对各个吸杆的索引编号为h∈[1,…,H],吸杆间隔DI;
步骤二二、导入电路板生产数据;所述电路板生产数据包括:元件类型总数C,各类元件的索引编号为c∈[1,…,C]、所含贴装点个数n{c}∈[n{1},…,n{C}],贴装点总数P,各贴装点的索引编号为p∈[1,…,P],贴装点的坐标存储于行数为P、列数为2的二维数组xyt,其中,第p个贴装点的X坐标与Y坐标分别为xyt(p,1)与xyt(p,2);需要注意的是,贴装点的坐标需被转换得到贴片载具上固定的参考点坐标才是贴装点对应的贴装坐标;对于本发明例子中的梁式贴片载具,其固定的参考点为1号吸杆的中心点,那么第h个吸杆位于上述贴装点上方进行贴装时,贴装坐标中的X坐标为xyt(p,1)–(h-1)*DI,Y坐标为xyt(p,2);
步骤二三、导入初始拾贴路径优化结果;拾贴周期总数K,各拾贴周期的索引编号为k∈[1,…,K];元件分配结果存储于行数为K、列数为H的二维数组CG,其中的元素CG(k,h)代表第k个拾贴周期中由第h个吸杆所拾贴的元件类型,即CG(k,h)∈[1,…,C];贴装点分配结果存储于行数为K、列数为H的二维数组PA0中,其中的元素PA0(k,h)代表第k个拾贴周期中由第h个吸杆所贴装的贴装点号,即PA0(k,h)∈[1,…,P];贴装排序结果存储于行数为K、列数为H的二维数组PS0中,其中的元素PS0(k,s)代表第k个拾贴周期中第s个进行贴装的吸杆号,即PS0(k,s)∈[1,…,H];拾贴路径长度DZ0,拾取路径长度DQ;各拾贴周期内第一个与最后一个拾取点对应的拾取坐标存储于行数为K、列数为2的二维数组xyqf与xyql中,其中的元素xyqf(k,1)与xyqf(k,2)代表第k个拾贴周期内第一个拾取点所对应拾取坐标中的X坐标与Y坐标,元素xyql(k,1)与xyql(k,2)代表第k个拾贴周期内最后一个拾取点所对应拾取坐标中的X坐标与Y坐标;
步骤三、根据所导入的初始拾贴路径优化结果,得到各类元件所含贴装点的侯选位置,以及各类元件的初始贴装点排序数组;
所述得到各类元件所含贴装点的侯选位置,以及各类元件的初始贴装点排序数组的过程包括以下步骤:
步骤三一、初始化拾贴周期计数k=1;对应每类元件c∈[1,…,C],初始化元素全为零的行数为n{c}、列数为2的数组PL{c}∈[PL{1},…,PL{C}],用于存储各类元件所含贴装点的侯选位置,将PL{c}称作第c类元件的侯选位置数组;对应每类元件c∈[1,…,C],初始化元素全为零的行数为n{c}、列数为1的数组ps0{c}∈[ps0{1},…,ps0{C}],用于存储各类元件的贴装点分配顺序,将ps0{c}称作第c类元件的分配顺序数组;对应每类元件c∈[1,…,C],初始化计数变量i{c}=1,作为各类元件中贴装点的索引;
步骤三二、若k>K,说明对所有拾贴周期完成了一次遍历,执行步骤四,否则,初始化吸杆计数变量h=1,执行步骤三三;
步骤三三、若h>H,说明对所有吸杆完成了一次遍历,更新循环变量k=k+1,返回步骤三二,否则,执行步骤三四;
步骤三四、第k个拾贴周期中第h个吸杆所拾贴的元件类型为c=CG(k,h),判断是否有c=0;若是,说明该周期内的该吸杆不进行任何贴装,更新循环变量h=h+1,返回步骤三三,否则,执行步骤三五;
步骤三五、赋值PL{c}(i{c},1)=k、PL{c}(i{c},2)=h,赋值ps0{c}(i{c})=PA0(k,h),更新计数变量i{c}=i{c}+1,更新循环变量h=h+1,返回步骤三三;
步骤四、进行禁忌搜索的初始化;
所述进行禁忌搜索的初始化过程包括以下步骤:
步骤四一、初始化并赋值局部搜索次数上限
Figure BDA0004076694980000111
其中符号
Figure BDA0004076694980000112
表示对其内数值进行向上取整;初始化元件种类计数c=1;
步骤四二、若c>C,说明对所有元件种类完成了一次遍历,进行步骤四八,否则,执行步骤四三;
步骤四三、第c类元件可以进行交换操作的次数为SWN{c}=0.5*n{c}*(n{c}-1);初始化元素全为零的行数为SWN{c}、列数为2的数组SWL{c},用于存储第c类元件所能进行的交换操作;初始化交换操作计数swn=0;初始化在先贴装点计数ni=1;
步骤四四、若ni>n{c}-1,说明对所有在先贴装点完成了一次遍历,进行步骤四七,否则,初始化在后贴装点计数nj=ni+1,执行步骤四五;
步骤四五、若nj>n{c},说明对所有在后贴装点完成了一次遍历,更新计数变量ni=ni+1,返回步骤四四,否则,执行步骤四六;
步骤四六、更新计数变量swn=swn+1,SWL{c}(swn,:)=[ni,nj],更新计数变量nj=nj+1,返回步骤四五;
步骤四七、初始化元素全为零的行数为SWN{c}、列数为1的数组TC{c},作为第c类元件的禁忌表,该数组中的每个元素标志着对应的交换操作是否被禁以及被禁次数,被禁次数上限为
Figure BDA0004076694980000113
更新计数变量c=c+1,返回步骤四二;
步骤四八、初始化元素全为零的行数为C、列数为1的数组swb,用于存储各类元件的最优交换操作;初始化元素全为零的行数为C、列数为1的数组swt,用于存储各类元件未被禁的最优交换操作;
步骤五、基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;
所述基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;具体过程包括以下步骤:
步骤五一、初始化历史最优拾贴路径长度DZ、当前解的拾贴路径长度DZb、当前解的贴装点分配结果PAb、当前解的贴装排序结果PSb,并赋值DZ=DZ0、DZb=DZ0、PAb=PA0、PSb=PS0,对应每类元件c∈[1,…,C],初始化并赋值ps{c}=ps0{c}、psb{c}=ps{c},用于存储最优分配顺序,初始化并赋值pst{c}=ps{c}用于存储未被禁的最优分配顺序;初始化并赋值无改进搜索计数变量IM=0;
步骤五二、若IM>IT,说明无改进搜索次数已达上限,执行步骤五一,开启下一轮搜索,否则,初始化未被禁的最短路径长度DZt为无穷大,初始化局部搜索计数变量it=1,执行步骤五三;
步骤五三、若it>IT,说明局部搜索次数已达上限,执行步骤五四,否则,对应每类元件c1∈[1,…,C],初始化并赋值psn{c1}=ps{c1},初始化元件种类计数c=1,执行步骤六;
步骤五四、判断是否有DZb<DZ;若是,则说明找到了更优的拾贴路径,进行步骤五五,否则,执行步骤五六;
步骤五五、更新最优结果,并将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产:
步骤五五一、更新IM=0,更新最优结果DZ=DZb、PA=PAb、PS=PSb,对应每类元件c1∈[1,…,C],更新ps{c1}=psb{c1},将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产;初始化元件种类计数c=1;
步骤五五二、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量IM=IM+1,返回步骤五二,否则,初始化交换操作计数swn=1,执行步骤五五三;
步骤五五三、若swn>SWN{c},说明对所有交换操作完成了一次遍历,更新计数变量c=c+1,返回步骤五五二,否则,执行步骤五五四;
步骤五五四、更新禁忌表中的元素TC{c}(swn):判断是否有swn=swb(c),若是,则更新TC{c}(swn)=TL{c},否则,TC{c}(swn)=max(TC{c}(swn)-1,0),其中max表示取其后括号内数组中的较大者;判断完毕,更新计数变量swn=swn+1,执行步骤五五三;
步骤五六、更新未被禁的最优结果:
步骤五六一、对应每类元件c1∈[1,…,C],更新ps{c1}=pst{c1};初始化元件种类计数c=1;
步骤五六二、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量IM=IM+1,返回步骤五二,否则,初始化交换操作计数swn=1,执行步骤五六三;
步骤五六三、若swn>SWN{c},说明对所有交换操作完成了一次遍历,更新计数变量c=c+1,返回步骤五六二,否则,执行步骤五六四;
步骤五六四、更新禁忌表中的元素TC{c}(swn):判断是否有swn=swt(c),若是,则更新TC{c}(swn)=TL{c},否则,TC{c}(swn)=max(TC{c}(swn)-1,0);判断完毕,更新计数变量swn=swn+1,执行步骤五六三;
步骤六、对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果,若新的优化结果对应了更优的拾贴路径,则将其存储为最优结果。
所述对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果,若新的优化结果对应了更优的拾贴路径,则将其存储为最优结果;具体过程包括以下步骤:
步骤六一、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量it=it+1,返回步骤五三,否则,执行步骤六二;
步骤六二、随机选取进行的操作swi∈[1,…,SWN{c}],则将进行交换的两个元素为ni=SWL{c}(swi,1)、nj=SWL{c}(swi,2),进行交换如下psn{c}(ni)=ps{c}(nj)、psn{c}(nj)=ps{c}(ni);
步骤六三、将进行交换后的分配顺序数组解码,得到新的贴装点分配结果:
步骤六三一、初始化元件种类计数c1=1;初始化更新中的贴装点分配结果PAn、更新中的贴装排序结果PSn、更新中的拾贴路径长度DZn,并赋值PAn=PAb、PSn=PSb、DZn=DQ,用于存储新搜索到的拾贴路径优化结果;
步骤六三二、若c1>C,说明对所有元件种类完成了一次遍历,初始化拾贴周期计数k=1,执行步骤六四,否则,初始化对第c1类元件的贴装点计数ii=1,执行步骤六三三;
步骤六三三、若ii>n{c1},说明对第c1类元件的所有贴装点完成了一次遍历,更新计数变量c1=c1+1,返回步骤六三二,否则,执行步骤六三四;
步骤六三四、获取候选位置k=PL{c1}(ii,1)、h=PL{c1}(ii,2),更新贴装点分配结果PAn(k,h)=psn{c1}(ii),更新计数变量ii=ii+1,返回步骤六三三;
步骤六四、进行动态规划的初始化:
步骤六四一、若k>K,说明对所有拾贴周期完成了一次遍历,进行步骤六七,否则,初始化吸杆计数h=1,初始化贴装坐标计数变量S=0,初始化贴装吸杆数组hs为空数组,初始化贴装坐标数组pt为空数组,执行步骤六四二,以计算本周期内所有贴装坐标;
步骤六四二、若h>H,说明对所有吸杆完成了一次遍历,执行步骤六四四,否则,执行步骤六四三;
步骤六四三、获取第k个拾贴周期中第h个吸杆所贴装的贴装点p=PAn(k,h),若p=0,不做处理,否则,更新贴装吸杆数组hs=[hs h],即在当前贴装吸杆数组hs中加上新元素h,更新计数变量S=S+1,更新贴装坐标pt(S,1)=xyt(p,1)–(h-1)*DI、pt(S,2)=xyt(p,2);更新计数变量h=h+1,返回步骤六四二;
步骤六四四、初始化元素全为零的行数与列数都为S的数组dt,用于存储各贴装坐标之间的距离,将dt称作贴装距离数组;初始化元素全为零的行数为1、列数为S的数组df,用于存储各贴装坐标与第k个拾贴周期内最后一个拾取坐标之间的距离,将df称作拾转贴距离数组;初始化元素全为零的行数为1、列数为S的数组dw,用于存储各贴装坐标与第k+1个拾贴周期内第一个拾取坐标之间的距离,将dw称作贴转拾距离数组;初始化在先贴装点计数s1=1;
步骤六四五、若s1>S,说明对所有在先贴装点完成了一次遍历,执行步骤六四十,否则,初始化在后贴装点计数s2=s1+1,执行步骤六四六;
步骤六四六、计算dx=|pt(s1,1)-xyql(k,1)|、dy=|pt(s1,2)-xyql(k,2)|,符号||表示对其内数值取绝对值,计算拾转贴距离df(s1)=max(dx,dy);
步骤六四七、计算dx=|pt(s1,1)-xyqf(k+1,1)|、dy=|pt(s1,2)-xyqf(k+1,2)|,计算贴转拾距离dw(s1)=max(dx,dy);
步骤六四八、若s2>S,说明对所有在后贴装点完成了一次遍历,更新计数变量s1=s1+1,返回步骤六四五,否则,执行步骤六四九;
步骤六四九、计算dx=|pt(s1,1)-pt(s2,1)|、dy=|pt(s1,2)-pt(s2,2)|,计算贴装距离dt(s1,s2)=dt(s2,s1)=max(dx,dy),更新计数变量s2=s2+1,返回步骤六四八;
步骤六四十、初始化并赋值动态规划列数V=max(1,S-2);生成1到S的全排列为M,初始化并赋值数组U=[1!,…,S!],其中符号!表示对前面数值做阶乘(以S=3为例,M=[12 3;1 32;2 1 3;2 3 1;3 1 2;3 2 1]、U=[1,2,6]);初始化元素全为零的行数为U(S)、列数为V的数组dd,用于存储动态规划各节点对应的路径长度,将dd称作动态规划距离数组,更新dd(:,1)=df(M(:,1))+dw(M(:,S));初始化排列计数u=0,初始化在更新的最左列计数V1=1;初始化元素全为零的行数为1、列数为V的数组J,作为最左列标记数组;执行步骤六五;
步骤六五、基于动态规划得到第k个拾贴周期中的最优贴装顺序:
步骤六五一、若u>U(S),说明对所有排列完成了一次遍历,执行步骤六六,否则,执行步骤六五二;
步骤六五二、更新计数变量u=u+1,初始化更新列计数v=V1
步骤六五三、若v>V,说明对所有列完成了一次遍历,执行步骤六五七,否则,执行步骤六五四;
步骤六五四、待计算间距的两贴装坐标索引分别为s1=M(u,v)与s2=M(u,v+1);动态规划距离数组待更新的最大行号为U1=u+U(V+1-v)-1;初始化u1=u;
步骤六五五、若u1>U1,更新s1=M(u,S-1)、s2=M(u,S)、dd(u,V)=dd(u,V)+dt(s1,s2),更新计数变量v=v+1,返回步骤六五三,否则,执行步骤六五六;
步骤六五六、动态规划距离数组待求和的最小列号为v1=max(1,v-1),更新dd(u1,v)=sum(dd(u1,v1:v))+dt(s1,s2),其中sum表示对其后括号内的数组求和,更新计数变量u1=u1+1,返回步骤六五五;
步骤六五七、更新J(1)=J(1)+1;初始化更新列计数v=1;
步骤六五八、若v>V,V1=V+1-v2,返回步骤六五一,否则,执行步骤六五九;
步骤六五九、若J(v)≤U(v),v2=v、v=V+1,返回步骤六五八,否则,执行步骤六五十;
步骤六五十、若v<V,更新J(v+1)=J(v+1)+U(v)、J(v)=0,否则,不做处理;更新计数变量v=v+1,返回步骤六五八;
步骤六六、得到[dm,um]=min(dd(:,V)),min表示取其后括号内数组的最小值,dm为最小拾贴路径,um为达成最小拾贴路径的排列索引,第k个拾贴周期的最优贴装顺序为PSn(k,1:S)=hs(M(um,:)),DZn=DZn+dm;更新计数变量k=k+1,返回步骤六四一;
步骤六七、判断是否有DZn<DZb;若是,则更新DZb=DZn、swb(c)=swi、PAb=PAn、PSb=PSn,对应每类元件c1∈[1,…,C],更新psb{c1}=psn{c1},若否,则不做任何处理;
步骤六八、判断是否有TC{c}(swi)=0且DZn<DZt;若是,则说明当前交换操作未被禁,并且得到结果优于未被禁的最短路径,更新DZt=DZn、swt(c)=swi,对应每类元件c1∈[1,…,C],更新pst{c1}=psn{c1},若否,则不做任何处理;
步骤六九、更新计数变量c=c+1,返回步骤六一。
实施例一:
本实施例一种在贴片机生产的同时进行拾贴路径在线优化的方法具体是按照以下步骤制备的:
算例考虑一台六吸杆梁式贴片载具贴片机的拾贴优化过程。
需要导入的电路板生产数据列于表1,其中有两类元件,每类元件各有50个贴装点。
表1电路板生产数据
Figure BDA0004076694980000161
Figure BDA0004076694980000171
初始拾贴路径优化结果中,贴装点分配结果PA0与贴装排序结果PS0如下:
Figure BDA0004076694980000172
从中可以得到,两类元件的贴装点分配顺序数组为
ps0{1}=[36 22 27 31 10 29 46 9 30 41 5 26 32 25 28 37 21 23 33 24 438 3 15 42 14 8 47 16 2 39 13 7 34 17 1 43 12 6 48 18 50 40 45 11 35 19 20 4449]
ps0{2}=[79 77 90 80 75 85 78 60 98 71 76 93 73 74 84 55 72 8954 598365 53 8858 64 92 52 66 97 57 63 87 51 67 82 56 62 91 100 68 96 61 95 86 7069 81 99 94]
初始拾贴路径如图5所示,其长度为DZ0=6308.7mm。
基于本发明的方法,经过十轮搜索后搜索到的最优拾贴路径结果中,贴装点分配结果PA与贴装排序结果PS如下:
Figure BDA0004076694980000181
与之对应,两类元件的贴装点分配顺序数组为
ps{1}=[17 42 14 34 37 25 31 6 22 39 43 27 46 50 24 15 38 30 47 7 2845 12 21 49 16 29 4140 1 36 13 26 35 9 2 48 8 4 19 44 5 33 20 23 32 11 3 1810]
ps{2}=[74 88 70 71 65 100 54 66 82 55 67 89 53 86 56 63 84 85 80 5899 64 92 95 72 6897 76 94 91 51 93 87 77 90 98 79 59 96 78 69 83 73 57 62 5261 81 75 60]
拾贴路径如图6所示,其长度为DZ=5565.5mm。
进行搜索改进的过程中,拾贴路径长度的变化如图7所示。在上述实施例中,本发明可实现拾贴路径的改进为100%*(DZ-DZ0)/DZ0=11.78%。
本发明进行拾贴路径在线优化的结果如图5至图7所示,其中图5为初始拾贴路径示意图,图6为改进后拾贴路径示意图;图7为本发明实施例的拾贴路径长度收敛曲线图。
本发明基于初始优化结果快速开展贴装生产后,利用禁忌搜索算法优化各类元件内的贴装点分配顺序,在搜索到的贴装点分配结果基础上,使用动态规划得到最优的贴装排序结果,若该结果对应了更优的拾贴路径,则基于该结果进行后续表面贴装生产,在贴片机生产的同时持续进行上述优化,实现贴装生产效率的最大化。实验表明,本发明提供的方法可以大幅提升贴片机生产效率,最大效率提升达11.78%。本发明提供的优化方法普遍适用于配备了不同贴片载具的各类贴片机。
具体来说,本发明具备如下2个特点:
(1)本发明提出了一种拾贴路径在线优化框架,实现了在进行表面贴装生产过程中,在不必中断生产进行资源分配调整且降低对计算实时性要求的情况下,持续改进拾贴路径达到最优解,不断提高后续生产效率。
(2)本发明具备更强的最优解搜索能力,通过禁忌搜索分别优化每类元件内的贴装点分配顺序,并采用动态规划直接寻得最优贴装排序结果,能够在缩小搜索空间的基础上,更加稳健地逼近全局最优解。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,包括以下步骤:
步骤一、根据贴片机贴装优化求解器得出初始的贴装过程优化结果,并将该结果传入贴片机工控机中,开始表面贴装生产;
步骤二、从贴装过程优化结果中,获取贴片机参数、电路板生产数据以及初始拾贴路径优化结果;
步骤三、根据所导入的初始拾贴路径优化结果,得到各类元件所含贴装点的侯选位置,以及各类元件的初始贴装点排序数组;
步骤四、进行禁忌搜索的初始化;
步骤五、基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;
步骤六、对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果,若新的优化结果对应了更优的拾贴路径,则将其存储为最优结果。
2.根据权利要求1所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,所述获取贴片机参数、电路板生产数据以及初始拾贴路径优化结果的过程包括以下步骤:
步骤二一、导入贴片机参数;所述贴片机参数包括吸杆总数H,按照沿X轴递增的顺序对各个吸杆的索引编号为h∈[1,…,H],吸杆间隔DI;
步骤二二、导入电路板生产数据;所述电路板生产数据包括:元件类型总数C,各类元件的索引编号为c∈[1,…,C]、所含贴装点个数n{c}∈[n{1},…,n{C}],贴装点总数P,各贴装点的索引编号为p∈[1,…,P],贴装点的坐标存储于行数为P、列数为2的二维数组xyt,其中,第p个贴装点的X坐标与Y坐标分别为xyt(p,1)与xyt(p,2);贴装点的坐标需被转换得到贴片载具上固定的参考点坐标才是贴装点对应的贴装坐标;
步骤二三、导入初始拾贴路径优化结果;拾贴周期总数K,各拾贴周期的索引编号为k∈[1,…,K];元件分配结果存储于行数为K、列数为H的二维数组CG,其中的元素CG(k,h)代表第k个拾贴周期中由第h个吸杆所拾贴的元件类型,即CG(k,h)∈[1,…,C];贴装点分配结果存储于行数为K、列数为H的二维数组PA0中,其中的元素PA0(k,h)代表第k个拾贴周期中由第h个吸杆所贴装的贴装点号,即PA0(k,h)∈[1,…,P];贴装排序结果存储于行数为K、列数为H的二维数组PS0中,其中的元素PS0(k,s)代表第k个拾贴周期中第s个进行贴装的吸杆号,即PS0(k,s)∈[1,…,H];拾贴路径长度DZ0,拾取路径长度DQ;各拾贴周期内第一个与最后一个拾取点对应的拾取坐标存储于行数为K、列数为2的二维数组xyqf与xyql中,其中的元素xyqf(k,1)与xyqf(k,2)代表第k个拾贴周期内第一个拾取点所对应拾取坐标中的X坐标与Y坐标,元素xyql(k,1)与xyql(k,2)代表第k个拾贴周期内最后一个拾取点所对应拾取坐标中的X坐标与Y坐标。
3.根据权利要求2所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,所述得到各类元件所含贴装点的侯选位置,以及各类元件的初始贴装点排序数组的过程包括以下步骤:
步骤三一、初始化拾贴周期计数k=1;对应每类元件c∈[1,…,C],初始化元素全为零的行数为n{c}、列数为2的数组PL{c}∈[PL{1},…,PL{C}],用于存储各类元件所含贴装点的侯选位置,将PL{c}称作第c类元件的侯选位置数组;对应每类元件c∈[1,…,C],初始化元素全为零的行数为n{c}、列数为1的数组ps0{c}∈[ps0{1},…,ps0{C}],用于存储各类元件的贴装点分配顺序,将ps0{c}称作第c类元件的分配顺序数组;对应每类元件c∈[1,…,C],初始化计数变量i{c}=1,作为各类元件中贴装点的索引;
步骤三二、若k>K,说明对所有拾贴周期完成了一次遍历,执行步骤四,否则,初始化吸杆计数变量h=1,执行步骤三三;
步骤三三、若h>H,说明对所有吸杆完成了一次遍历,更新循环变量k=k+1,返回步骤三二,否则,执行步骤三四;
步骤三四、第k个拾贴周期中第h个吸杆所拾贴的元件类型为c=CG(k,h),判断是否有c=0;若是,说明该周期内的该吸杆不进行任何贴装,更新循环变量h=h+1,返回步骤三三,否则,执行步骤三五;
步骤三五、赋值PL{c}(i{c},1)=k、PL{c}(i{c},2)=h,赋值ps0{c}(i{c})=PA0(k,h),更新计数变量i{c}=i{c}+1,更新循环变量h=h+1,返回步骤三三。
4.根据权利要求3所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,所述进行禁忌搜索的初始化过程包括以下步骤:
步骤四一、初始化并赋值局部搜索次数上限
Figure FDA0004076694970000021
其中符号
Figure FDA0004076694970000022
表示对其内数值进行向上取整;初始化元件种类计数c=1;
步骤四二、若c>C,说明对所有元件种类完成了一次遍历,进行步骤四八,否则,执行步骤四三;
步骤四三、第c类元件可以进行交换操作的次数为SWN{c}=0.5*n{c}*(n{c}-1);初始化元素全为零的行数为SWN{c}、列数为2的数组SWL{c},用于存储第c类元件所能进行的交换操作;初始化交换操作计数swn=0;初始化在先贴装点计数ni=1;
步骤四四、若ni>n{c}-1,说明对所有在先贴装点完成了一次遍历,进行步骤四七,否则,初始化在后贴装点计数nj=ni+1,执行步骤四五;
步骤四五、若nj>n{c},说明对所有在后贴装点完成了一次遍历,更新计数变量ni=ni+1,返回步骤四四,否则,执行步骤四六;
步骤四六、更新计数变量swn=swn+1,SWL{c}(swn,:)=[ni,nj],更新计数变量nj=nj+1,返回步骤四五;
步骤四七、初始化元素全为零的行数为SWN{c}、列数为1的数组TC{c},作为第c类元件的禁忌表,该数组中的每个元素标志着对应的交换操作是否被禁以及被禁次数,被禁次数上限为
Figure FDA0004076694970000031
更新计数变量c=c+1,返回步骤四二;
步骤四八、初始化元素全为零的行数为C、列数为1的数组swb,用于存储各类元件的最优交换操作;初始化元素全为零的行数为C、列数为1的数组swt,用于存储各类元件未被禁的最优交换操作。
5.根据权利要求4所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,所述基于禁忌搜索对拾贴路径优化结果进行比较择优,继而将新找到的最优结果传入贴片机工控机中,并从下一块电路板开始,基于该结果进行后续表面贴装生产;具体过程包括以下步骤:
步骤五一、初始化历史最优拾贴路径长度DZ、当前解的拾贴路径长度DZb、当前解的贴装点分配结果PAb、当前解的贴装排序结果PSb,并赋值DZ=DZ0、DZb=DZ0、PAb=PA0、PSb=PS0,对应每类元件c∈[1,…,C],初始化并赋值ps{c}=ps0{c}、psb{c}=ps{c},用于存储最优分配顺序,初始化并赋值pst{c}=ps{c}用于存储未被禁的最优分配顺序;初始化并赋值无改进搜索计数变量IM=0;
步骤五二、若IM>IT,说明无改进搜索次数已达上限,执行步骤五一,开启下一轮搜索,否则,初始化未被禁的最短路径长度DZt为无穷大,初始化局部搜索计数变量it=1,执行步骤五三;
步骤五三、若it>IT,说明局部搜索次数已达上限,执行步骤五四,否则,对应每类元件c1∈[1,…,C],初始化并赋值psn{c1}=ps{c1},初始化元件种类计数c=1,执行步骤六;
步骤五四、判断是否有DZb<DZ;若是,则说明找到了更优的拾贴路径,进行步骤五五,否则,执行步骤五六;
步骤五五、更新最优结果,并将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产;
步骤五六、更新未被禁的最优结果。
6.根据权利要求5所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,步骤五五所述的更新最优结果,并将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产的过程包括以下步骤:
步骤五五一、更新IM=0,更新最优结果DZ=DZb、PA=PAb、PS=PSb,对应每类元件c1∈[1,…,C],更新ps{c1}=psb{c1},将该最优结果传入贴片机工控机中,从下一块电路板开始,基于该结果进行后续表面贴装生产;初始化元件种类计数c=1;
步骤五五二、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量IM=IM+1,返回步骤五二,否则,初始化交换操作计数swn=1,执行步骤五五三;
步骤五五三、若swn>SWN{c},说明对所有交换操作完成了一次遍历,更新计数变量c=c+1,返回步骤五五二,否则,执行步骤五五四;
步骤五五四、更新禁忌表中的元素TC{c}(swn):判断是否有swn=swb(c),若是,则更新TC{c}(swn)=TL{c},否则,TC{c}(swn)=max(TC{c}(swn)-1,0),其中max表示取其后括号内数组中的较大者;判断完毕,更新计数变量swn=swn+1,执行步骤五五三。
7.根据权利要求6所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,步骤五六所述的更新未被禁的最优结果的过程包括以下步骤:
步骤五六一、对应每类元件c1∈[1,…,C],更新ps{c1}=pst{c1};初始化元件种类计数c=1;
步骤五六二、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量IM=IM+1,返回步骤五二,否则,初始化交换操作计数swn=1,执行步骤五六三;
步骤五六三、若swn>SWN{c},说明对所有交换操作完成了一次遍历,更新计数变量c=c+1,返回步骤五六二,否则,执行步骤五六四;
步骤五六四、更新禁忌表中的元素TC{c}(swn):判断是否有swn=swt(c),若是,则更新TC{c}(swn)=TL{c},否则,TC{c}(swn)=max(TC{c}(swn)-1,0);判断完毕,更新计数变量swn=swn+1,执行步骤五六三。
8.根据权利要求5、6或7所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,所述对各类元件的分配顺序数组进行邻域搜索操作,将进行操作后的分配顺序数组解码,得到新的贴装点分配结果,与之对应地再基于动态规划得到最优的贴装排序结果,若新的优化结果对应了更优的拾贴路径,则将其存储为最优结果;具体过程包括以下步骤:
步骤六一、若c>C,说明对所有元件种类完成了一次遍历,更新计数变量it=it+1,返回步骤五三,否则,执行步骤六二;
步骤六二、随机选取进行的操作swi∈[1,…,SWN{c}],则将进行交换的两个元素为ni=SWL{c}(swi,1)、nj=SWL{c}(swi,2),进行交换如下psn{c}(ni)=ps{c}(nj)、psn{c}(nj)=ps{c}(ni);
步骤六三、将进行交换后的分配顺序数组解码,得到新的贴装点分配结果;
步骤六四、进行动态规划的初始化,包括以下步骤:
步骤六四一、若k>K,进行步骤六七,否则,初始化吸杆计数h=1,初始化贴装坐标计数变量S=0,初始化贴装吸杆数组hs为空数组,初始化贴装坐标数组pt为空数组,执行步骤六四二,以计算本周期内所有贴装坐标;
步骤六四二、若h>H,执行步骤六四四,否则,执行步骤六四三;
步骤六四三、获取第k个拾贴周期中第h个吸杆所贴装的贴装点p=PAn(k,h),若p=0,不做处理,否则,更新贴装吸杆数组hs=[hs h],更新计数变量S=S+1,更新贴装坐标pt(S,1)=xyt(p,1)–(h-1)*DI、pt(S,2)=xyt(p,2);更新计数变量h=h+1,返回步骤六四二;
步骤六四四、初始化元素全为零的行数与列数都为S的数组dt,用于存储各贴装坐标之间的距离,将dt称作贴装距离数组;初始化元素全为零的行数为1、列数为S的数组df,用于存储各贴装坐标与第k个拾贴周期内最后一个拾取坐标之间的距离,将df称作拾转贴距离数组;初始化元素全为零的行数为1、列数为S的数组dw,用于存储各贴装坐标与第k+1个拾贴周期内第一个拾取坐标之间的距离,将dw称作贴转拾距离数组;初始化在先贴装点计数s1=1;
步骤六四五、若s1>S,说明对所有在先贴装点完成了一次遍历,执行步骤六四十,否则,初始化在后贴装点计数s2=s1+1,执行步骤六四六;
步骤六四六、计算dx=|pt(s1,1)-xyql(k,1)|、dy=|pt(s1,2)-xyql(k,2)|,符号||表示对其内数值取绝对值,计算拾转贴距离df(s1)=max(dx,dy);
步骤六四七、计算dx=|pt(s1,1)-xyqf(k+1,1)|、dy=|pt(s1,2)-xyqf(k+1,2)|,计算贴转拾距离dw(s1)=max(dx,dy);
步骤六四八、若s2>S,说明对所有在后贴装点完成了一次遍历,更新计数变量s1=s1+1,返回步骤六四五,否则,执行步骤六四九;
步骤六四九、计算dx=|pt(s1,1)-pt(s2,1)|、dy=|pt(s1,2)-pt(s2,2)|,计算贴装距离dt(s1,s2)=dt(s2,s1)=max(dx,dy),更新计数变量s2=s2+1,返回步骤六四八;
步骤六四十、初始化并赋值动态规划列数V=max(1,S-2);生成1到S的全排列为M,初始化并赋值数组U=[1!,…,S!],其中符号!表示对前面数值做阶乘;初始化元素全为零的行数为U(S)、列数为V的数组dd,用于存储动态规划各节点对应的路径长度,将dd称作动态规划距离数组,更新dd(:,1)=df(M(:,1))+dw(M(:,S));初始化排列计数u=0,初始化在更新的最左列计数V1=1;初始化元素全为零的行数为1、列数为V的数组J,作为最左列标记数组;执行步骤六五;
步骤六五、基于动态规划得到第k个拾贴周期中的最优贴装顺序。
9.根据权利要求8所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,步骤六三所述的将进行交换后的分配顺序数组解码,得到新的贴装点分配结果的过程包括以下步骤:
步骤六三一、初始化元件种类计数c1=1;初始化更新中的贴装点分配结果PAn、更新中的贴装排序结果PSn、更新中的拾贴路径长度DZn,并赋值PAn=PAb、PSn=PSb、DZn=DQ,用于存储新搜索到的拾贴路径优化结果;
步骤六三二、若c1>C,说明对所有元件种类完成了一次遍历,初始化拾贴周期计数k=1,执行步骤六四,否则,初始化对第c1类元件的贴装点计数ii=1,执行步骤六三三;
步骤六三三、若ii>n{c1},说明对第c1类元件的所有贴装点完成了一次遍历,更新计数变量c1=c1+1,返回步骤六三二,否则,执行步骤六三四;
步骤六三四、获取候选位置k=PL{c1}(ii,1)、h=PL{c1}(ii,2),更新贴装点分配结果PAn(k,h)=psn{c1}(ii),更新计数变量ii=ii+1,返回步骤六三三。
10.根据权利要求9所述的一种在贴片机生产的同时进行拾贴路径在线优化的方法,其特征在于,步骤六五所述的基于动态规划得到第k个拾贴周期中的最优贴装顺序的过程包括以下步骤:
步骤六五一、若u>U(S),说明对所有排列完成了一次遍历,执行步骤六六,否则,执行步骤六五二;
步骤六五二、更新计数变量u=u+1,初始化更新列计数v=V1
步骤六五三、若v>V,说明对所有列完成了一次遍历,执行步骤六五七,否则,执行步骤六五四;
步骤六五四、待计算间距的两贴装坐标索引分别为s1=M(u,v)与s2=M(u,v+1);动态规划距离数组待更新的最大行号为U1=u+U(V+1-v)-1;初始化u1=u;
步骤六五五、若u1>U1,更新s1=M(u,S-1)、s2=M(u,S)、dd(u,V)=dd(u,V)+dt(s1,s2),更新计数变量v=v+1,返回步骤六五三,否则,执行步骤六五六;
步骤六五六、动态规划距离数组待求和的最小列号为v1=max(1,v-1),更新dd(u1,v)=sum(dd(u1,v1:v))+dt(s1,s2),其中sum表示对其后括号内的数组求和,更新计数变量u1=u1+1,返回步骤六五五;
步骤六五七、更新J(1)=J(1)+1;初始化更新列计数v=1;
步骤六五八、若v>V,V1=V+1-v2,返回步骤六五一,否则,执行步骤六五九;
步骤六五九、若J(v)≤U(v),v2=v、v=V+1,返回步骤六五八,否则,执行步骤六五十;
步骤六五十、若v<V,更新J(v+1)=J(v+1)+U(v)、J(v)=0,否则,不做处理;更新计数变量v=v+1,返回步骤六五八;
步骤六六、得到[dm,um]=min(dd(:,V)),min表示取其后括号内数组的最小值,dm为最小拾贴路径,um为达成最小拾贴路径的排列索引,第k个拾贴周期的最优贴装顺序为PSn(k,1:S)=hs(M(um,:)),DZn=DZn+dm;更新计数变量k=k+1,返回步骤六四一;
步骤六七、判断是否有DZn<DZb;若是,则更新DZb=DZn、swb(c)=swi、PAb=PAn、PSb=PSn,对应每类元件c1∈[1,…,C],更新psb{c1}=psn{c1},若否,则不做任何处理;
步骤六八、判断是否有TC{c}(swi)=0且DZn<DZt;若是,则说明当前交换操作未被禁,并且得到结果优于未被禁的最短路径,更新DZt=DZn、swt(c)=swi,对应每类元件c1∈[1,…,C],更新pst{c1}=psn{c1},若否,则不做任何处理;
步骤六九、更新计数变量c=c+1,返回步骤六一。
CN202310110779.1A 2023-01-16 2023-01-16 一种在贴片机生产的同时进行拾贴路径在线优化的方法 Pending CN116113171A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310110779.1A CN116113171A (zh) 2023-01-16 2023-01-16 一种在贴片机生产的同时进行拾贴路径在线优化的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310110779.1A CN116113171A (zh) 2023-01-16 2023-01-16 一种在贴片机生产的同时进行拾贴路径在线优化的方法

Publications (1)

Publication Number Publication Date
CN116113171A true CN116113171A (zh) 2023-05-12

Family

ID=86261357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310110779.1A Pending CN116113171A (zh) 2023-01-16 2023-01-16 一种在贴片机生产的同时进行拾贴路径在线优化的方法

Country Status (1)

Country Link
CN (1) CN116113171A (zh)

Similar Documents

Publication Publication Date Title
US10785901B2 (en) Optimization approach for placement heads tasks assignment of beam-type single-gantry surface mounters
US7899561B2 (en) Operating time reducing method, operating time reducing apparatus, program and component mounter
CN111479404B (zh) 一种基于混合遗传算法的led贴片机拾贴路径优化方法
CN111615325B (zh) 一种基于聚类的多功能贴片机贴装路径规划方法
CN103717007A (zh) 基于聚类分析与遗传算法的多吸嘴贴片机贴装工艺优化方法
CN111615324B (zh) 一种基于禁忌搜索算法的led贴片机拾贴路径优化方法
CN116113171A (zh) 一种在贴片机生产的同时进行拾贴路径在线优化的方法
JP2002050900A (ja) 部品実装順序最適化方法、その装置及び部品実装装置
CN115623770B (zh) 基于k近邻算法的直排式贴片机贴装路径优化方法
CN117455222B (zh) 基于分布式异构流水车间组调度问题的求解方法
US7076313B2 (en) Method for optimizing configuration of pick-and-place machine
CN112188825B (zh) 一种基于蝙蝠算法的多头贴片机贴装效率优化方法及系统
CN111465210B (zh) 一种基于聚类的led贴片机拾贴路径优化方法
CN112105253A (zh) 一种基于迭代二分遗传算法的多功能贴片机元件分配方法
Ho et al. Optimization of PCB component placements for the collect-and-place machines
CN106982547B (zh) 一种smt贴片机多轴同步取料控制方法
CN116736690A (zh) 基于锚点选取粒子群算法的贴片机贴装路径优化方法
CN116796687A (zh) 一种基于全维编码遗传算法的贴片机拾贴选址路径优化方法
CN116095980B (zh) 一种基于最大二分配的贴片机吸嘴分配方法
Hai-Ming et al. A heuristic optimization algorithm for multi-head mounter
Lin et al. Efficient hybrid group search optimizer for assembling printed circuit boards
CN111273329B (zh) 一种基于强化学习q学习的实时整周模糊度快速搜索方法
CN115996524A (zh) 一种基于行列分组遗传算法的贴片机贴装路径优化方法
Luo et al. A Tabu search with multiple neighborhoods for an integrated operation optimization in electronic industry
Yilmaz Development and evaluation of setup strategies in printed circuit board assembly

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination