学位论文定稿
This commit is contained in:
484
body/chapter1.tex
Normal file
484
body/chapter1.tex
Normal file
@ -0,0 +1,484 @@
|
||||
% !Mode:: "TeX:UTF-8"
|
||||
|
||||
\chapter{绪论}[Introduction]
|
||||
% 25页左右生在红旗下 长在春风里研究背景及意义
|
||||
\section{研究背景及意义}[Background and significance of research]
|
||||
% 制造业概述
|
||||
|
||||
制造业是国民经济发展的支柱产业,对经济增长起着重要的推进作用。我国的“十四五”规划指出,要深入实施增强制造业核心竞争力和技术改造的专项计划,鼓励企业应用先进适用技术、加强设备更新和新产品规模化应用,培育先进制造业集群,推动集成电路、高端数控机床等产业的创新发展,推动制造业产品“增品种、提品质、创品牌”\cite{14th_five_year_plan}。“中国制造2025”进一步指出,要加快发展智能制造装备和产品,组织研发具有深度感知、智慧决策、自动执行功能的智能制造装备以及智能化生产线,提升国家制造业创新能力,实现制造强国的战略任务。 大力发展先进智能制造,促进新质生产力的形成和现代化产业体系的构建,确保我国产业体系的完整性、先进性和安全性,是实现中国式现代化的必由之路~\cite{zang_roadmap_research_2022,wang_leading_production_2024}。
|
||||
|
||||
% 电子制造业概述
|
||||
电子制造是专注于研究、制造和生产各类电子设备和电子元件的产业,涵盖了电子产品从设计、制造到测试的全过程,作为现代制造业的重要组成部分,其在诸多领域如消费电子、通信设备、汽车电子等有着广泛的应用,具有市场规模大、技术进步快、产业关联度强等特点。电子制造业的发展对整个产业链的升级与变革起到了重要的推动作用。
|
||||
现代电子制造技术包含电路设计、元件选型、表面组装和生产质量管控等多个方面。
|
||||
其中,表面组装是将电子元件安装在印制电路板(Printed Circuit Board,PCB)焊盘上的板级组装技术,是现代电子组装技术的核心。
|
||||
近年来,随着电子消费市场需求的持续增长,表面组装等制造自动化技术也在快速地发展进步与更新迭代。
|
||||
表面组装过程优化通过调整生产工序、改进组装流程以最大化利用生产制造设备的性能,在生产效率提升方面起着关键作用,推动着生产流程向高效化转型,是现代电子制造业核心竞争力的重要体现。
|
||||
|
||||
|
||||
% 表面组装生产线介绍
|
||||
传统的表面组装生产线构成如图\ref{ch1:figure:assembly-line}所示,主要包括上板机、丝网印刷机、贴片机、回流焊炉、光学检测机以及下板机。作为生产线的前端设备,上板机内部装载有堆叠放置的电路板,通过逐级提升的方式将其传入生产线。丝网印刷机用于将锡膏印制到电路板上的焊接位置(即焊盘),贴片机则将电子元件准确地放置到涂有锡膏的电路板上。
|
||||
回流焊炉将贴装好的电路板进行加热,使锡膏融化并与电子元件的引脚连接。冷却凝固后的锡膏在电子元件和焊盘间形成稳固的连接。光学检测机作为可选设备,用于检测表面组装质量。最后,下板机负责接收完成组装的电路板。
|
||||
|
||||
|
||||
\vspace{0.25em}
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.65]{chapter1/assembly-line.eps}
|
||||
\bicaption[ch1:figure:assembly-line]{}{表面组装生产线的构成}{Fig.$\!$}{Composition of a surface assembly line}
|
||||
\vspace{-1em}
|
||||
\end{figure}
|
||||
|
||||
% 贴片机的发展历程
|
||||
|
||||
贴片机作为表面组装生产线中最关键、最重要的设备,其主要任务是完成PCB上元件的表面组装工作。贴片机的研制与表面组装元件的发展密不可分。图\ref{ch1_fig_smt_history}展示了表面组装相关技术的发展历程。自上世纪七十年代后期,日本的大型电子企业集团率先开始自动贴片机的研制工作,并逐渐将贴片机由内部专用设备改为标准化的商用设备,开始批量应用到电子设备加工生产中。经过四十余年的迅速发展,贴片机逐步向着精密、高速、模块化的方向发展,以松下、三洋、韩华等为代表的企业研发的贴片机占据了国内外主要市场。贴片机的生产制造能力是反映电子制造业发展水平的重要指标之一,表面组装生产线的生产效率更是整个电子产业链发展中的核心竞争力。我国作为制造业大国,电子制造产业起步相对较晚而发展迅速,目前已经成为世界上贴片机应用最广的国家之一,对贴片机的需求也亟待从依赖国外进口走向国内自主研发。
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.975]{chapter1/surface-mount-history.eps}
|
||||
\vspace{-1em}
|
||||
\bicaption[ch1_fig_smt_history]{}{表面组装技术的发展历程}{Fig.$\!$}{The development history of surface mount technology}
|
||||
\end{figure}
|
||||
|
||||
% 贴片机中涉及的关键性技术(引出表面组装技术)
|
||||
贴片机作为光机电一体化设备,其研制过程是涉及机械设计技术、运动控制技术、组装过程优化技术、软件工程技术和机器视觉图像处理技术等多学科交叉的系统性工程。 其中,表面组装过程优化技术极大影响着贴片机的组装效率。
|
||||
表面组装过程优化问题是一类特殊的复杂优化问题,启发式、数学规划和机器学习等算法常用于解决此类工业组合优化问题\cite{schlenkrich_solving_2023}。
|
||||
作为一个高维度、多变量且高度耦合的非确定性问题,该问题具有较高的时间复杂度,导致现有的优化算法难以在可接受时间内找到全局最优解。同时,表面组装过程还面临着来自内外部多种因素的制约,限制了算法的适用范围。为了提升组装过程效率,制造商常采用多台贴片机协同作业的方式来完成PCB的组装任务,由此带来了生产线负载平衡问题。组装生产线的优化研究的是平衡不同贴片机之间的工作负载、最小化贴片机最长工作时间的策略。
|
||||
表面组装过程优化,作为工业实际需求驱动的课题,在系统建模与算法设计时,需在满足约束条件下优化生产效率指标,以确保优化结果的高效性、可行性与可部署性。
|
||||
|
||||
\section{表面组装系统概述}[Overview of surface assembly system]
|
||||
|
||||
本文研究的是装配有并列式贴片头的贴片机(以下简称并列式贴片机),其布局如图\ref{ch1:figure:surface-mounter}所示,包括一个固定的PCB平台,两个固定的供料基座,以及带多个贴片头的移动悬臂,装载有元件的供料器安装在前后两个基座上。带式、管式、托盘式的供料器用于供给各类封装元件。并列式贴片机适用于中小批量生产,也可将多台贴片机组合用于大批量生产。悬臂在电路板和供料基座之间移动,其装配有多个贴片头用于拾取和贴装元件,贴片头上配备的飞行相机用于元件检测;对于大尺寸的元件,悬臂必须移动到固定相机上进行检测。元件组装所用的吸嘴类型和其封装的尺寸相关,自动吸嘴更换器(Auto Nozzle Changer,ANC)中装载着不同类型的吸嘴,以适应贴片机对多种元件封装的装配要求。并列式设计结构的贴片头其间隔为槽位间隔的整数倍,使多个贴片头可以同时从不同槽上的供料器中拾取元件。相较于装配有转塔式贴片头的贴片机(以下简称转塔式贴片机),并列式贴片机的机械结构简单,可靠性强,多头同时取料装配效率更高,可实现高速、高精度表面组装,适用的元件封装类型更加多样,因此也被称为多功能贴片机,其在结构上主要由以下部分组成:
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[scale=0.24]{chapter1/surface-mounter-layout.eps}
|
||||
\bicaption[ch1:figure:surface-mounter]{}{贴片机组成结构图}{Fig.$\!$}{Composition and structure of surface mounter}
|
||||
\end{figure}
|
||||
|
||||
\begin{enumerate}
|
||||
\item[1)] \emph{传动与驱动机构}: 贴片机的基本构成为一个高精密的运动控制系统。传动系统负责将电路板传送至贴装区域,伺服定位系统支撑着贴片头,保证其精确定位和精准移动。贴片机的主体包括两条相互平行的定臂和一条动臂,由三个直线导轨控制悬臂在水平面内沿X轴和Y轴方向运动。直线导轨由电机驱动,两个定臂对应的电机为Y轴方向电机,带动动臂沿Y轴方向运动,动臂对应的电机为X轴方向电机,带动悬臂实现X轴方向运动。悬臂上安装有多个并列排放的贴片头,贴片头上的吸杆均可以在电机的驱动下实现Z轴方向运动,完成对元件的拾取和贴装,另有R轴电机带动吸杆绕轴转动,实现对拾取元件的角度偏移进行补偿。
|
||||
\item[2)] \emph{元件供应与贴装机构}: 元件由供料器供应,不同封装的元件所使用的供料器类型、占用的槽位数也不相同。供料器通过机械化接口固定在供料器基座上,该接口被称为供料器槽。元件的拾取由贴片头上的吸杆完成,供应则由供料器提供。吸杆内部中空并在底部装有吸嘴,贴片头与真空泵连通,真空泵抽气在吸杆内部建立真空以吸取元件、关闭真空以贴装元件。贴片头为完成多种类型元件的组装,需移动至ANC进行吸嘴的安装与更换。
|
||||
\item[3)] \emph{视觉检测系统}: 贴片机配备视觉系统实现高精度组装,其由一个基准相机、一个固定相机和多个飞行相机构成。基准相机用以检测PCB上的基准点,对电路板位置进行校准补偿。飞行相机直接安装在悬臂上,用于校准贴片头拾取元件的位置偏移和角度偏差,其可在贴片头移动过程中同步完成检测,从而节省识别时间、提高组装效率,但飞行相机的识别范围和识别精度相对较低。 固定相机安装在贴片机内部,具有视野大、识别精度高的特点,适用于细间距和大型尺寸的元件。各类相机配合使用,可用于对各种尺寸的基准点和元件的检测识别,实现贴片机的高速高精度元件组装。
|
||||
\item[4)] \emph{计算机控制系统}:计算机控制系统记载着大量的贴片机数据参数,用于识别和处理设备及各传感器的信号,并根据预定程序控制贴片机的组装动作,控制系统内部的调度程序保证贴片机的高效运转、状态的实时监控和异常的快速处理等。
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
以上系统共同协作,使得贴片机能够高效、精准地完成电子元件的组装任务。表面组装过程的流程如图\ref{ch1:figure:process}所示,具体地,其主要由以下步骤组成:
|
||||
|
||||
\begin{enumerate}
|
||||
\item[1)] \emph{PCB装载}:传送装置将PCB载入到预定位置,以基准相机校准其位置。
|
||||
\item[2)] \emph{工具匹配}:检查贴片头吸嘴和拾贴元件的一致性,不匹配则进行更换。
|
||||
\item[3)] \emph{元件拾取}:贴片头移动到供料器基座,从供料器中拾取元件。
|
||||
\item[4)] \emph{视觉检测}:检测已拾取元件是否存在缺陷,若是,执行步骤5;否则,校准元件的中心偏移后执行步骤6。
|
||||
\item[5)] \emph{元件废弃}:贴片头废弃有缺陷的元件在废料盒中,执行步骤7。
|
||||
\item[6)] \emph{元件贴装}:贴片头搬运检测通过的元件并将放置在PCB对应焊盘上。
|
||||
\item[7)] \emph{循环}:重复执行以上步骤2--6,直至所有焊盘均组装完成对应元件后,传出PCB。
|
||||
\end{enumerate}
|
||||
\vspace{0.2em}
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.7]{chapter1/mount-process-flowchart.eps}
|
||||
\bicaption[ch1:figure:process]{}{表面组装过程流程图}{Fig.$\!$}{\centering Flowchart of surface assembly process}
|
||||
\end{figure}
|
||||
|
||||
% 表面组装过程优化问题解包含的环节及其同组装过程的联系
|
||||
|
||||
贴片机的表面组装过程由一系列复杂的工艺流程组成,本文将拾取、检测、贴装的一个周期性过程称为拾贴周期,将具有相同贴片头拾取槽位的连续拾贴周期称为周期组。
|
||||
主流贴片机的元件废弃率普遍低于0.1\%,对整体组装效率的影响较小,故元件废弃过程通常不在优化的环节之内。
|
||||
贴片头拾取的槽位决定了当前周期拾贴的元件类型和需要安装的吸嘴类型。
|
||||
在组装过程中,贴片头的移动路径和组装动作共同决定了组装过程的效率。组装动作包括贴片头的元件拾取、吸嘴更换和元件贴装动作,元件贴装动作仅和贴装点数相关,而元件拾取和吸嘴更换动作则取决于对组装过程优化的结果。
|
||||
|
||||
表面组装过程优化涉及多个问题的决策优化。对于贴片机的组装过程,元件拾取和贴装动作、贴片头的吸嘴更换动作以及移动路径均会对组装时间产生影响。
|
||||
其中,供料器安装的基座槽位决定了拾取过程的移动路径和能达到的最大拾取效率;
|
||||
贴片头装配的吸嘴类型决定了可拾取的元件类型,其需要根据组装任务进行吸嘴更换以提高拾取效率;
|
||||
贴片头的拾贴元件类型和供料器安装槽位共同决定了拾取次数,同时限制了各周期可贴装的焊盘位置,进而影响了贴装过程的路径规划。
|
||||
多变量和高度耦合的决策过程增大了问题求解的难度。
|
||||
|
||||
|
||||
表面组装生产线负载平衡问题,在贴片机组装过程优化的基础上,增加了贴片机之间元件分配的决策优化。表面组装生产线与传统生产线在元件分配层面既具相同性,又有差异性。相同之处在于,二者均涉及将元件分配至不同机器进行组装加工的决策,且允许多台机器协同装配同一类型元件,以提升整体的生产效率。同时,二者均需考虑装配的优先级要求,并可能因元件封装等限制而影响其可分配的机器。
|
||||
差异性则主要体现在,组装生产线的负载均衡优化受到可用工具资源限制的影响大,不同类型元件因受限于供料器等专用工具,其可分配至贴片机的数量上限受到影响。
|
||||
生产线元件分配的结果决定了贴片机的组装任务,更为关键的是,在评估贴片机的组装效率时,组装生产线的复杂性更为突出。
|
||||
贴片机的组装时间还受到贴片机类型、可用工具、优化算法等多重因素的影响。由此可见,表面组装生产线的优化是一个多维度、高度集成的决策过程,必须综合考虑生产线各环节的协同工作,以实现整体效率的最大化。
|
||||
|
||||
\section{表面组装过程优化的研究现状}[Research review on surface assembly process optimization]
|
||||
|
||||
\subsection{贴片机的组装过程优化}[Assembly process optimization of surface mounters]
|
||||
|
||||
作为一类组合优化问题,数学规划和启发式优化是两类常用于解决贴片机的组装过程优化的方法。
|
||||
其中,数学规划是用定量的数学表达式构建决策变量之间的目标和约束函数的方法,可以实现系统的解空间搜索,确保了优化结果的可靠性和准确性,而其在处理复杂优化问题时,运算效率受数据规模的影响大;
|
||||
启发式优化则基于经验和直觉设计搜索规则快速寻找问题的较优解,具有适应性强、求解效率高和易于实现等特点,算法的性能取决于搜索策略的设计,复杂解空间增加了设计有效搜索规则的难度,同时可能会降低解的质量。
|
||||
混合优化将复杂优化问题进行拆分,运用不同的方法分阶段地解决问题,旨在同时提高问题的求解效率和解的质量。图\ref{ch1:figure:opt-classification}展示了用于解决表面组装过程优化问题的主要方法分类。
|
||||
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.85]{chapter1/optimization-classification.eps}
|
||||
\bicaption[ch1:figure:opt-classification]{}{表面组装过程的主要优化方法分类}{Fig.$\!$}{\centering Classification of primary optimization methods for surface assembly process}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{数学规划法}
|
||||
|
||||
% === 早期研究 ===
|
||||
在早期的表面组装过程优化研究中,贴片机类型呈现出多样化的特点,相关研究以最小化悬臂的移动路径为目标,构建了不同类型的简化数学模型。
|
||||
Ho等\cite{ho_integrated_2009}研究了单头顺序贴片机的建模问题,通过构建供料器位置分配和贴装顺序规划互为已知约束的双向模型,将两个模型整合为整数线性模型,获得了该类贴片机组装过程优化的最优解。
|
||||
Altinkermer等\cite{altinkemer_optimization_2000}围绕转塔式贴片机的建模问题开展研究,其将表面组装问题归结为供料器分配和拾贴顺序决策问题,运用拉格朗日松弛定理分解数学模型到两个子问题,将组装路径优化问题转换为车辆路径规划问题(Vehicle Routing Problem,VRP),提出$\varepsilon$近似解的模型求解方法,将所得解与最优解的误差控制在了等效VRP的误差范围内。
|
||||
Alkaya等\cite{alkaya_combining_2015}研究了供料器基座和电路板支撑平台可移动的转塔式贴片机的数学模型,通过将移动路径规划和供料器位置分配视为顺序相关的旅行商和二次分配问题,建立了非线性整数规划模型。
|
||||
Luo等\cite{luo_milp_2014}研究了LED贴片机的贴装路径优化问题,将贴片位置的拾贴顺序问题视为具有城市批次的旅行商问题,构建了贴片头移动路径最小化的混合整数规划模型。
|
||||
|
||||
% === 模型分解及其子问题 ===
|
||||
为应对日趋复杂的贴装任务,相关研究围绕并列式贴片机展开研究,其表面组装过程模型的构建更为困难,因而部分研究采取分解策略来进行建模。
|
||||
Luo等\cite{luo_modelling_2014, luo_milp_2017}将问题分解并设计了两阶段混合整数线性规划模型:在第一阶段解决吸嘴-贴片头分配问题,在第二阶段通过优化供料器-槽位分配和元件贴装顺序最小化移动路径,适用于小规模数据的求解。
|
||||
Ashayeri等\cite{ashayeri_planning_2007}提出了针对元件-贴片机分配和拾贴顺序规划的模型分解方法,从装配时间最小化和换线时间最小化两个角度,对组装过程的供料器分配和路径规划问题进行建模。
|
||||
Hsu等\cite{hsu_solving_2022}讨论了多机头贴片机吸嘴更换、拾取动作、移动路径等因素对组装效率的影响,以最小化组装时间为目标,构建了可同时解决元件顺序分配、供料器分配和吸嘴分配问题的混合整数线性规划模型。
|
||||
此外,也有部分研究关注于组装过程子问题模型的构建。
|
||||
Raduly-Baka等分别研究了吸嘴分配\cite{raduly-baka_selecting_2008}
|
||||
和供料器模组分配\cite{raduly-baka_tool-feeder_2017}问题,前者讨论了有无成本限制的吸嘴选择问题,并以近似线性规划模型实现了在多项式时间内获得最优的吸嘴分配的解;
|
||||
后者则研究了多类型电路板组装时,最小化准备供料器的换线时间优化问题,将其建模为工具分区模块分配模型。
|
||||
Sun等\cite{sun_branch-and-price_2007}研究了贴装过程路径规划的整数规划模型,提出了具有高效剪枝策略的分支定价算法,运用了动态规划解决列生成中的子问题,使其在处理小规模数据时能高效地获得问题的最优解。
|
||||
|
||||
% === 求解技术 ===
|
||||
数学规划法在解决复杂组合优化问题时有较高的计算复杂度,因而部分研究在构建模型的过程中应用了一系列技术降低问题的规模,进而提升模型的可解性。
|
||||
Torabi等\cite{torabi_new_2013}将表面组装过程优化问题视为多目标优化问题,提出最小化周期和最大化吸嘴-元件适配度两个目标,建立最大最小化整数规划模型,并设计增广$\varepsilon$方法实现了对中小规模问题的求解。
|
||||
Ashayeri等\cite{ashayeri_aggregated_2011}引入了批处理的方法,将单个贴片头组装的一批同类贴装点的元件类型作为决策变量,建立了决策变量数更少、模型复杂度更低的混合整数规划模型,能有效平衡贴片头工作量、减少吸嘴更换和提升悬臂移动速度,适用于元件类型有限而贴装点较多的数据优化。
|
||||
Guo等\cite{geng_mcvrp-based_2019}将并列式贴片机的组装过程优化等价为多车厢车辆路径规划问题(Multi-Compartment Vehicle Routing Problem,MCVRP),通过将问题拆解为拾取组合和贴装排序问题,从提升拾取效率的角度出发,以不同类型元件构成同步拾取组,建立了相应的混合整数规划模型。
|
||||
|
||||
综上所述,现有研究对表面组装过程模型的模型构建展开了详细的分析,并取得了一定的进展,相关分类如表\ref{ch1:table:model-summay}所示。全过程的模型主要围绕简单类型贴片机的模型展开,而并列式贴片机的数学模型通常采用分阶段构建的方式,并有部分研究专门对其中的子问题进行建模。不同角度的构造式建模方式降低了模型的复杂度,但尚未完全解决模型求解效率受数据规模限制大的局限性。
|
||||
\begin{table}[H]
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch1:table:model-summay]{}{主流研究中数学规划模型的构建方法}{Table $\!$}{\centering Construction method of mathematical programming model in mainstream research}
|
||||
\begin{tabular}{m{2cm}<{\centering}p{2cm}<{\centering}p{10cm}<{\centering}}
|
||||
\toprule
|
||||
类别 & \multicolumn{2}{c}{相关研究} \\
|
||||
\midrule
|
||||
\multirow{3}{*}{全过程模型} & \multicolumn{2}{c}{双向约束整数线性规划\cite{ho_integrated_2009}} \\
|
||||
& \multicolumn{2}{c}{等效转换\cite{altinkemer_optimization_2000,luo_milp_2014}} \\
|
||||
& \multicolumn{2}{c}{非线性整数规划\cite{alkaya_combining_2015}} \\
|
||||
\cmidrule(lr){1-3}
|
||||
|
||||
\multirow{2}{*}{分阶段模型} & 两阶段: & 吸嘴分配-拾贴顺序\cite{luo_modelling_2014, luo_milp_2017},供料器分配-拾贴路径规划\cite{ashayeri_planning_2007} \\
|
||||
& 三阶段: & 元件顺序-供料器分配-吸嘴分配\cite{hsu_solving_2022} \\
|
||||
\cmidrule(lr){1-3}
|
||||
|
||||
子问题模型 & \multicolumn{2}{c}{吸嘴分配\cite{raduly-baka_selecting_2008}
|
||||
,供料器模组分配\cite{raduly-baka_tool-feeder_2017},贴装过程路径规划\cite{sun_branch-and-price_2007}} \\
|
||||
\cmidrule(lr){1-3}
|
||||
|
||||
\multirow{3}{*}{构造式模型} & \multicolumn{2}{c}{多目标最大-最小整数规划\cite{torabi_new_2013}} \\
|
||||
& \multicolumn{2}{c}{元件组批处理整数规划\cite{ashayeri_aggregated_2011}} \\
|
||||
& \multicolumn{2}{c}{基于同步拾取组的MCVRP模型\cite{geng_mcvrp-based_2019}} \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\subsubsection{启发式优化方法}
|
||||
|
||||
% === 遗传算法 ===
|
||||
多种元启发式优化技术已被成功运用在表面组装过程的优化领域,遗传算法作为其中最具代表性的优化方法,其编码方式是相关元启发式优化方法设计的基础,主要可分为以下几类:
|
||||
|
||||
1)\emph{子过程的一维顺序编码}
|
||||
|
||||
表面组装的子过程优化主要可分为供料器-槽位分配和元件贴装顺序优化两部分。
|
||||
在供料器-槽位分配编码中,主要通过迭代不同的供料器排列顺序,确定元件的拾贴顺序。Sun等\cite{sun_component_2005}提出了贪心的供料器基座扫描策略,
|
||||
以最大化同步取料的贴片头数作为评价编码结果的指标;
|
||||
Xing等\cite{xing_high_speed_mounter_2018}提出了改进的单亲遗传算法,根据个体适应度大小,合理划分个体在子代出现的次数,减少种群迭代次数。
|
||||
在元件贴装顺序编码中,Hardas等\cite{hardas_development_2008}以贴装路径和运算效率为比较指标,通过实验分析路径、顺序、邻接的基因表示形式,以及部分映射、有序交叉、交替边搜索算子对优化结果的影响;Peng等\cite{peng_gantry_2021}以贴片头移动距离最小为目标,通过分析不同取料方式下的贴装路径差异,优化了贴片头的取贴顺序和取料方向。
|
||||
|
||||
2)\emph{全过程的一维顺序编码}
|
||||
|
||||
全过程的顺序编码是对表面组装过程中多个子问题的同时编码,具有并行搜索的优势。
|
||||
Kulak等\cite{kulak_pcb_2007}提出了供料器分配和贴装顺序相关的局部关联染色体编码方式,运用分布密度导向构建法对贴装点顺序进行分组聚类,有效地限制了问题规模、提升了搜索效率。
|
||||
Gyorfi等\cite{gyorfi_efficient_2008}在供料器-贴装顺序编码的基础上,提出一种支持多贴片头的供料器拾取和元件贴装顺序相互独立的关联链接评估方法,研究在迭代过程中平衡父链接样本空间和搜索多样性的方法。
|
||||
Wu等\cite{wu_improved_genetic_2014}设计了元件拾取序列、贴装序列、供料器排列序列的三链染色体,在同时优化贴装顺序和供料器分配槽位基础上,结合贪心解决元件拾取顺序问题。
|
||||
Wu等\cite{wu_minimum_criterion_2020}提出适用于贴装顺序、拾取顺序、贴片头元件以及供料槽元件分配相结合的个体编码与解码方式,将最小准则原则运用在个体的筛选过程中,维持搜索过程的多样性。
|
||||
|
||||
3)\emph{全过程的二维实数编码}
|
||||
|
||||
二维实数的编码同时对分配顺序和分配类型进行编码,具有收敛速度快、输出结果稳定等优势。
|
||||
在对元件贴装顺序和供料器安装槽位同时优化的相关研究中,
|
||||
Du等\cite{du_hybrid_genetic_2014}将问题拆分为元件分组、元件组拾取和元件组贴装子问题,提出一种二维实数编码的混合遗传算法,设计了元件分组启发式算法;
|
||||
Yin等\cite{yin_cell_genetic_2015}结合元胞自动机增强算法全局搜索能力,提出二维分段式编码方式。
|
||||
此外,Li等\cite{li_cell_2022}从贴片头的元件分配出发,通过同类元件的贴装点组的拆分和重组,按元件组在贴片头上的分配顺序进行编码,以平衡拾贴周期、吸嘴更换、同步拾取等性能指标为目标,提出一种基于元胞分裂的贴片头元件分配算法,并设计启发式算法用于供料器的槽位分配。
|
||||
|
||||
基于上述的编码方式,在表面组装过程优化问题中,相关的元启发式算法也得到了广泛的研究和应用,主要可分为以下几类:
|
||||
|
||||
% === 进化算法 ===
|
||||
1)\emph{进化搜索优化方法}
|
||||
|
||||
进化算法受自然选择和生物进化机制启发,通过不同的基因表达方式代表优化问题的解,适用于解决包括组装过程优化在内的复杂问题。
|
||||
Tsuchiya等\cite{tsuchiya_scheduling_2007}为解决贴片头同步拾取优化问题,提出一种启发式多起点的局部搜索算法,对随机生成的供料器分配结果增加解的可行性、贴片头的工作效率和同步拾取可行性等判断,并采用拾取模式匹配确定了取料顺序。
|
||||
Zhu等\cite{zhu_improved_2014}提出改进的混合蛙跳算法解决组装过程中的拾贴顺序优化问题,建立了针对整数编码的跃迁步进、二元步进以及适用于离散数据的跃迁运算符,结合个体记忆化搜索模式,运用方差分析法确定了算法的最优参数,使其收敛速度更快、精度更高。
|
||||
Luo等\cite{luo_rls_2012}研究将禁忌搜索运用到贴装路径规划问题解决中,采用双禁忌表避免迂回搜索,根据问题特性设计了插入移动的参考解局部搜索策略,有利于算法跳出局部最优解。
|
||||
Liu等\cite{liu_optimization_2017}提出分散搜索法分别解决表面组装过程中的元件-供料器、供料器-槽位和拾贴元件顺序子问题,通过最小化拾贴周期、构建同步拾取和优化元件拾贴顺序来减少组装时间。
|
||||
Xu等\cite{xu_immune_2017}在免疫算法中运用了供料器槽位分配-贴片顺序编码方式,通过改进免疫算子以及调整参数,对多头贴片机的贴装过程进行优化求解,独特性免疫网络使得搜索群体呈现多样化的特点,有利于算法的全局优化。
|
||||
|
||||
|
||||
% === 群体智能算法 ===
|
||||
|
||||
2)\emph{群体智能优化方法}
|
||||
|
||||
群体智能通过模拟社会性生物的群体行为进行优化,具有鲁棒性强、搜索速度快的优点,被广泛应用到表面组装过程优化中。
|
||||
Castellani等\cite{castellani_printed_2019}将定制的蜂群算法用于解决供料器槽位分配和贴装顺序问题,提出了五种新的搜索算子,使算法不依赖于初始解且有较好的收敛性。
|
||||
Hsu等\cite{hsu_printed_2020}提出了改进的多种群离散蜂群算法,同时优化元件取贴顺序和供料器分配槽位,在全局探索-开发策略的基础上,运用多蜂群以及自适应、离散移动步长等新特性,有助于算法找到问题的较优解。
|
||||
Wang等\cite{wang_application_2019}提出基于自适应蜘蛛猴算法优化表面组装过程,通过分层次的算法结构与表面组装过程结合,实现了在全局领导者环节解决供料器槽位分配问题,并在局部领导者环节解决贴装顺序问题,提升了组装过程效率。
|
||||
Fu等\cite{fu_modified_ant_2017}研究了转塔式贴片机的优化问题,将表面组装过程拆分为拾贴周期内和周期间规划的子问题,在改进的蚁群算法中引入精英蚂蚁,并采用全局和局部相结合的信息更新策略,具有全局搜索能力、较好的求解精度和较快的收敛速度。
|
||||
基于此,Yu等\cite{yu_dual_gantry_2019}提出了基于拾贴周期内部路径优化和周期间路径的蚁群算法,对双悬臂双旋转头路径规划进行研究,克服传统算法中约束条件较多的局限性。
|
||||
Hsu等研究了运用粒子群算法\cite{hsu_solving_2017}和改进的混合蛙跳算法\cite{hsu_optimization_2020}同时解决供料器槽位分配和元件拾贴顺序规划问题,其在粒子群算法中提出了离散问题向连续空间转化的编码机制,并引入了自适应跳跃、自适应变体等智能算子,通过迭代减少记忆体数量,实现了探索到开发的过渡,有助于算法搜索高质量解。
|
||||
Griffiths等\cite{griffiths_comparison_2022}研究了新型离散混合蝙蝠启发算法,重新定义了搜索过程的位置和速度等参数,用于解决六轴机械臂组装元件规划时的供料器槽位分配和拾贴顺序规划问题。
|
||||
Lu等\cite{lu_cell_bat_2017}研究了复合式双悬臂转塔式贴片机的优化过程,根据种群的交流结构和信息传递机制,将元胞自动机理论融入蝙蝠算法中,引入多交叉算子自适应的策略提升鲁棒性,设置精英归档提高迭代速度和种群位置多样性,提出迭代互换操作来执行局部搜索,以提高算法的收敛精度。
|
||||
|
||||
|
||||
% === 多目标优化 ===
|
||||
3)\emph{多目标启发式优化方法}
|
||||
|
||||
多目标优化也被应用到具有多个效率相关子目标的表面组装过程优化问题中,且常与元启发式算法结合解决问题\cite{meng_application_2023}。
|
||||
Torabi等\cite{torabi_new_2013}将表面组装过程的优化目标拆分为最小化瓶颈贴片头负载和最大化元件-吸嘴匹配度两部分,以Taguchi方法调整了算法参数,研究了优化贴装过程的粒子群算法。
|
||||
Zhu等\cite{zhu_multi-objective_2018}将表面组装优化任务视为最小化元件贴装移动路径、供料器拾取移动路径和吸嘴更换的多目标优化问题,通过最佳参考点和比较点之间的关系,提出了一种基于Fr{\'e}chet距离曲线匹配的组装过程多目标优化遗传算法。
|
||||
Lu等\cite{lu_grey_entropy_2013}基于灰熵关联分析建立表面组装中拾取顺序、贴装顺序和吸嘴更换顺序子目标相关的灰熵关联度函数,提出的多目标差分算法保证至少两个子目标优于传统遗传算法,且解集分布更均匀。
|
||||
Gao等\cite{gao_hierarchical_2021}运用分层序列法,分析影响组装效率的子目标之间的耦合关系,根据优化子目标将问题拆分为了吸嘴分配、元件分配、供料器分配和拾贴顺序规划问题,提出了分层次启发式的表面组装过程优化方法。
|
||||
|
||||
4)\emph{其他启发式优化方法}
|
||||
|
||||
% 启发式算法 - 子问题
|
||||
构造启发式等优化方法也被应用到了表面组装过程子问题的优化中。
|
||||
吸嘴分配限制了贴片头可分配的元件类型,影响了表面组装过程的拾取次数和吸嘴更换次数。
|
||||
Knuutila等\cite{knuutila_minimizing_2007}研究了拾取次数最小化的吸嘴分配问题,在给定吸嘴拾贴顺序的前提下,贪心的吸嘴分配策略在单次拾取中尽可能多地拾取元件以提升效率。
|
||||
Raduly-Baka等\cite{raduly-baka_selecting_2008}研究了贴片头的吸嘴类型的选取问题,讨论了在可用贴片头数量限制下的吸嘴分配问题,而后提出了在增加吸嘴预算限制下的最优吸嘴分配的高效的贪心搜索算法。
|
||||
在此基础上,Knuutila等\cite{knuutila_organizing_2013}研究了以最小化拾贴次数为优化目标的吸嘴配置问题,分别运用遗传算法和粒子群算法启发式方法对吸嘴库配置进行了优化,并在求解小规模问题实例时取得了接近最优的结果。
|
||||
Py{\"o}tti{\"a}l{\"a}等\cite{pyottiala_minimizing_2013}研究了以多近邻搜索解决供料器位置分配问题,并同随机分配、最小生成树、基于频次的平衡算法进行比较,提出了基于随机/周期空闲优先启发式、随机/周期下一空闲启发式规则的算法对拾取贴装路径进行优化。
|
||||
Han等\cite{han_mechanism_2017}研究了一种供料器分配算法,该算法以基座最左侧槽位为起点,贪心地将距离当前贴装点最近的元件分配到槽位,并不断更新基准点进行连续分配,通过自定义距离函数进行全局优化。
|
||||
Chen等\cite{chen_ant_frog_2011}研究了供料器分配已知的元件拾贴顺序优化,通过混合蛙跳-蚁群算法对贴装顺序进行路径寻优,提出了适用于贴装过程的分段启发函数、信息素分段编码和更新等改进方法,有效地提升了算法的求解精度和全局搜索能力。
|
||||
Li等\cite{li_heuristic_2022}将贴装路径问题和供料器分配问题被转化为启发式排序优化问题,以索引序列对的能量矩阵优化拾贴周期序列,提出了基于Hopfield神经网络的路径相关序列优化方法。
|
||||
% Ayob等\cite{ayob_real-time_2003}研究了表面组装过程的在线优化算法,通过快速确定PCB加工任务的可行解,在生产过程中拾贴路径规划解进行在线迭代优化,不断改进解的质量。
|
||||
Wang等\cite{wang_enhancing_2024}运用发明问题解决(Theory of Inventive Problem Solving,TIPS)理论,研究了表面组装中时间延迟、元件供料、拾取和贴装过程之间的协同优化问题,提出一种基于蚁群优化算法的仿真精简装配路径策略,减少装配时间的同时保持组装过程的高精度和低能耗。
|
||||
|
||||
\subsubsection{混合优化}
|
||||
|
||||
混合优化算法是指将多种不同的优化方法和策略进行组合,用来解决复杂优化问题的算法。
|
||||
其中,将进化算法常与构造启发算法相结合的混合优化方法,可以明显提高优化的效果,适用于多模态、高维、带约束和多目标的优化问题,在工业界有着广泛的应用\cite{slowik_hybrid_2022}。
|
||||
|
||||
1)\emph{两阶段混合优化}
|
||||
|
||||
两阶段优化法通常从拾贴-贴装的角度对表面组装过程优化问题进行拆分,并以不同的策略分别求解。
|
||||
Grunow等\cite{grunow_operations_2004}通过改进最小生成树并结合贪心法分配供料器至槽位中,将贴装顺序问题视为VRP通过改进Clarke-Wright节约里程法进行求解,并结合了局部搜索规则改进供料器分配和拾贴顺序规划结果。
|
||||
Park等\cite{park_dynamic_2007}采用动态规划法分别解决供料器分配和贴装顺序规划问题,通过启发式算法从贴片头元件分配结果中构造供料器组合,确定了供料器的安装槽位和拾贴路径,以2-opt交换拾贴周期间的已分配贴装点,从而改进解的质量。
|
||||
Chen等\cite{chen_component_2011}研究了供料器分配和贴装顺序规划子问题的独立性和关联性,采用分治法在两个问题中分别运用改进的蛙跳算法和禁忌搜索算法,通过二者迭代优化改进搜索解的质量。
|
||||
Gao等\cite{gao_iterated_2018}提出了一种结合局部搜索和整数规划模型的混合优化算法,通过引入自定义距离权重矩阵并采用贪心法确定了拾贴顺序的初始解,研究了凸包调整策略优化拾贴顺序和整数规划模型求解供料器分配问题。
|
||||
此外,部分研究在两阶段优化中将元件对应多类吸嘴的情形作为优化的环节进行了讨论。
|
||||
Huang等\cite{huang_applied_2020}提出了最小化吸嘴-元件适配度和吸嘴更换次数的整数规划模型解决吸嘴分配问题,结合了混合蛙跳算法同时对贴装顺序、供料器分配、拾取顺序进行优化。
|
||||
Hsu等\cite{hsu_solving_2022}提出了改进的萤火虫算法与动态规划结合的优化算法,采用秩序值技术进行整数编码和自适应搜索,同时优化了供料器安装槽位和拾贴顺序,最后运用动态规划解决了元件-吸嘴适配度最小化的吸嘴分配问题。
|
||||
|
||||
|
||||
2)\emph{多阶段混合优化}
|
||||
|
||||
更多的研究致力于将表面组装过程的优化问题进一步拆分,分阶段地解决一系列更小的子问题。
|
||||
其中代表性的工作为Lee等\cite{lee_dynamic_1998, lee_hierarchical_1999}提出的分层启发式优化算法,其通过平衡各贴片头的工作负载并从中提取供料器组合,以启发式动态规划的方法确定供料器组的最优安装槽位,运用启发式的吸嘴对排序算法和元件组构造算法确定贴片头分配任务,最后采用最近邻算法求解贴装过程路径规划问题,给出了一套完整的解决方案。
|
||||
类似地,多阶段的混合优化算法被广泛应用于并列式贴片机的组装过程优化。
|
||||
Xing等\cite{xing_online_2017}在平衡贴片头负载的基础上,运用启发式的选择策略为贴片头分配吸嘴,减少拾取过程中的吸嘴更换和元件拾取次数,在贴装过程中则以最近邻算法确定周期间和周期内的元件贴装顺序。
|
||||
Luo等\cite{luo_milp_2017}将优化问题拆分为吸嘴-贴片头、元件-贴片头、供料器-槽位、拾取顺序和贴装顺序五个相互关联的子问题,研究了最小化周期的构造启发式算法确定贴片头分配的吸嘴类型,将带有两个算子的进化算法和多邻域禁忌搜索结合,同时解决元件分配、供料器分配和拾贴顺序等问题。
|
||||
Guo等\cite{guo_pcb_2011, geng_mcvrp-based_2019}将组装优化过程拆分为吸嘴分配、元件拾取组生成、元件拾取组拆分-合并和贴装顺序规划四个子问题,研究了单一类型元件对应多类吸嘴的编码方式,以贪心启发式分配吸嘴至贴片头,并为元件的同步拾取构造了拾取组,进而提出了基于拾取组拆分-重组的改进混合遗传算法和贪心启发式的路径规划算法。
|
||||
|
||||
部分研究在同步拾取研究的基础上,进一步考虑了实际应用中约束条件对组装过程的限制。
|
||||
Lin等\cite{lin_modified_2017, lin_component_2021}将组装过程分解为吸嘴-ANC分配、贴片头-吸嘴分配和元件拾贴顺序规划问题,其在ANC分配阶段采用比例分配法确定了最优的吸嘴-ANC分配结果。基于给定的ANC配置,在拾贴拾取、元件高度等约束下,Lin等分别提出了基于人工蜂群\cite{lin_modified_2017}和混合优化\cite{lin_component_2021}的方法解决其余子问题:前者以改进人工蜂群算法先同时解决吸嘴分配和拾取顺序问题,再解决贴装顺序问题;后者则以轮盘赌解决吸嘴分配和拾取顺序问题,再运用最近邻与2-opt结合优化贴装顺序。
|
||||
更进一步地,Lin等\cite{lin_efficient_2019}研究了群搜索优化在组装过程优化中的应用,提出了改进群搜索与随机整数规划结合的方法,通过融入混沌局部搜索策略,消除了种群相似个体中的不良解,增强了搜索效率与解的多样性,优化了元件的拾取顺序。
|
||||
|
||||
|
||||
迭代式的多阶段混合优化在表面组装过程优化中也得到了应用。
|
||||
Li等\cite{li_pcb_2017}将组装过程拆分为了吸嘴分配、供料器分配和拾贴顺序规划问题,采用启发式确定吸嘴分配和供料器分配的初始解,以自适应最近邻搜索优化拾贴顺序,并结合受限的禁忌搜索算法搜索供料器分配的邻域解,迭代改进其他子问题的解。根据贴装点的分布特性,Li等\cite{li_clustering-based_2019}提出了均值Chebyshev联动定向搜索算法,以自适应聚类启发式的贴装点分组策略优化吸嘴和供料器分配,通过受限的禁忌搜索迭代改进供料器分配和拾贴顺序。
|
||||
|
||||
多阶段混合优化同样被运用到了双悬臂贴片机的组装过程优化中。
|
||||
He等\cite{he_multi-phase_2017}在吸嘴准备、供料器分配和拾贴顺序分解的基础上增加了负载平衡和周期规划的研究,其在双臂吸嘴准备阶段运用分段交换算法,基于此,提出了分层受限的平衡算法解决元件分配问题,并以爬山算法优化供料器槽位分配和拾贴顺序,在悬臂周期规划阶段则采用受限的邻域搜索算法。为解决双悬臂的吸嘴准备问题,He等\cite{he_adaptive_2018}提出了基于不确定参数搜索启发式的线性模型分支定界优化方法,研究了具有单臂吸嘴配置、供料器配置和拾贴顺序编码的自适应聚类遗传算法,用于规划双臂拾贴周期和元件分配结果,缩小了问题的搜索空间、提高了算法的搜索效率。
|
||||
|
||||
|
||||
\subsection{生产线的负载平衡优化}[Workload balancing optimization of assembly lines]
|
||||
|
||||
%% === 概述 ===
|
||||
表面组装过程优化是表面组装生产线负载平衡的基础,组装线优化可分为单模态、混合模态和多模态生产线模式\cite{toth_machine_2018}。其中,单模态和混合模态生产分别是在固定配置下组装单一类型和多种类型电路板的生产模式,多模态生产则是具有生产线配置切换的多种类型电路板的生产模式。平衡不同机器之间的工作负载可以有效缩短组装线上贴片机的最长处理时间,提升整线装配效率。生产线任务分配包含元件分配和组装顺序优化两个子问题,前者指元件的贴片机分配优化,后者指贴片机的组装过程规划。图\ref{ch1:figure:line-classification}演示了表面组装过程优化的研究路线。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=0.75]{chapter1/research-route.eps}
|
||||
\bicaption[ch1:figure:line-classification]{}{表面组装过程优化问题的研究路线}{Fig.$\!$}{Research route of surface assembly process optimization problem}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{生产线负载平衡}
|
||||
|
||||
1)\emph{数学规划法}
|
||||
|
||||
%% === 数学规划 ===
|
||||
对于单贴片头和转塔式贴片机组成的生产线,相关研究\cite{kodek_optimal_2004,emet_workload_2010,rong_modeling_2011,jin_printed_board_2008}假定贴装点数和组装用时为线性关系,建立了组装生产线整数规划模型,实现了在可接受的时间内最优地解决元件分配问题。
|
||||
Kodek等\cite{kodek_optimal_2004}提出了最小-最大近似整数规划模型,以产线配置用时和不同元件的拾贴用时之和作为模型的优化目标,提出了一种高效的分支定界搜索策略,使其适用于变量数中等规模的问题求解,并给出大规模数据的近似最优解和理论下界值。
|
||||
基于此,Emet等\cite{emet_workload_2010}对模型做了进一步改进,根据贴片机的作业过程,增加了供料器模块、拾贴优先级和元件可重复分配等约束条件。
|
||||
Rong等\cite{rong_modeling_2011}研究了模组贴片机的贴片头配置和组装生产线的负载平衡问题,建立了非线性数学模型,研究了模型的线性化与松弛化方法以加快搜索速度,适用于中小规模问题的求解。
|
||||
Jin等\cite{jin_printed_board_2008}研究了高速贴片机和多功能贴片机组成的生产线的优化,在满足异型元件分配给多功能贴片机、细间距元件分配给高速贴片机的约束条件下,以悬臂的移动路径为工作负载的评价指标,分配元件到各模组贴片机的工作台,使工作负载和吸嘴更换次数最小。
|
||||
|
||||
2)\emph{启发式优化方法}
|
||||
|
||||
%% === 元启发式 ===
|
||||
元启发式算法常用于表面组装生产线的优化,以解决贴片机共同组装单一类型电路板的优化问题。
|
||||
Kulak等\cite{kulak_ga-based_2008}将组装线优化问题拆分为贴片头元件分配、供料器槽位分配、拾贴顺序优化三个子问题,提出了基于遗传算法的两阶段生产线负载平衡算法,
|
||||
在第一阶段平衡贴片机的工作负载并提供多个高质量的候选解,在第二阶段则对候选解进一步执行贴片机的组装过程优化算法,确定供料器的安装槽位和元件的拾贴顺序。
|
||||
Wu等\cite{wu_solution_2010}将元启发元件分配算法和线性回归时间估计模型相结合,建立了贴装点数、贴装点间距、元件类型数等数据参数和组装时间的关系模型,以此为适应度函数并将元件分配作为遗传算法的染色体编码方式,利用贴装点分布的聚类特性,获得高质量的解决方案。
|
||||
Guo等\cite{guo_integrated_2012}研究了适用于同类型元件可分配多贴片机的混合遗传算法,以贴装点数、拾贴周期数和吸嘴更换数线性拟合组装时间,迭代式地解决元件分配、吸嘴组分配和贴片头分配三个子问题,将元件分配转换为多元件的弱分组问题进行编码,设计了选择式和非选择式的初始化和交叉策略,用贪心启发式解决吸嘴组分配和贴片头分配问题。
|
||||
Liu等\cite{liu_surface_assembly_2013}研究了分散搜索法解决生产线负荷平衡,以统计数据评估各类元件的贴装时间,将元件分配的贴片机进行编码构建初始解集,运用2-opt改良初始解、修复不可行解,从可行解中选择若干最好解用于参考解集的合并和更新,保持了搜索过程中解的多样性,避免过早收敛以提升生产线的组装效率。
|
||||
Mumtaz等\cite{mumtaz_hybrid_2020, zhong_multi-objective_2022}将提出离散化的混合蜘蛛猴算法用于同时解决组装线中的元件分配问题和单机拾贴顺序问题,其中,元件分配用于平衡贴片机的工作负载,算法设计中融入了新的分类食物来源和基因操作算子,较传统智能优化算法提升了求解效率和解的质量。
|
||||
Chen等\cite{chen_improved_2023}在生产线的元件分配和贴片机的拾贴顺序基础上增加了周期性维护的考虑,以同时优化最大完工时间、总能量消耗和总维护时间,并将改进的蜘蛛猴算法作为基本框架,设计启发式算子生成初始解,根据Pareto熵变化的演化状态平衡搜索过程中探索和开发,提出了基于存档的Q学习策略自适应调整参数,实现了优化子目标的Pareto最优。
|
||||
Yan等\cite{yan_load_2023}提出了结合自适应遗传算法与改进蚁群的混合优化算法,利用其全局搜索与快速收敛的优势,在过程中动态调整交叉和变异算子,以解决组装线负载平衡问题。
|
||||
|
||||
构造启发式也被应用于解决表面组装生产线优化问题。
|
||||
T\'{o}th等\cite{toth_reconfiguring_2010}研究了模块化贴片机的配置和生产线的负载平衡问题,将组线问题拆分为模块-贴片头分配、贴片头-吸嘴分配和元件-供料器分配三个子问题,设计了定制启发式解决各子问题,研究了暴力搜索、随机搜索、贪心搜索和启发式算法在求解组装线优化问题中的实际效果。
|
||||
He等\cite{he_heuristic_2017}提出了确定性分层启发式分阶段地解决组装线生产优化中的子问题,在吸嘴分配阶段以最小化周期为目标按比例将同类型元件分配给贴片机,在元件分配阶段则以最小化供料器数为目标平衡贴片机负载,以贪心算法迭代解决供料器安装槽位和拾贴顺序规划问题。
|
||||
Choudhury等\cite{choudhury_process_2007}研究了双悬臂贴片机组装线的优化问题,通过将决策过程拆分供料器槽位分配、元件拾取组合、元件贴装分配和拾贴顺序规划四个相关的子问题,采用列表处理启发式分配元件的供料器和贴片头,将拾贴顺序规划问题转换为非对称旅行商问题,在考虑贴片头的吸嘴更换前提下,提出一种贪心启发式规划近似最优的拾贴路径。
|
||||
|
||||
3)\emph{其他优化方法}
|
||||
|
||||
% === 其它角度 ===
|
||||
部分研究将随机优化、模糊优化、多目标优化等新理论运用到表面组装生产线及生产车间的优化中。
|
||||
Lin等\cite{lin_component_1999}研究了表面组装生产线的混合模态优化,将组装生产线优化问题转换为元件分组问题,为应对组装过程的订单更变和机器故障等不确定性因素,以最小化组装全部电路板的用时为目标,建立了随机混合整数规划,平衡解的最优性和环境的不确定性。
|
||||
Hu等\cite{hu_fuzzy_2017}将组装生产线优化转换为分配问题和传输问题模型,提出了基于非线性隶属度函数的模糊目标规划模型,分析了模糊、不精确和不确定的环境中目标或约束条件可能出现偏差,同时优化组装线生产成本、故障次数和操作时间等多个目标,通过调整区间目标值的上下界给出最优的折中方案。
|
||||
Zhang等\cite{zhang_reinforcement_2024}研究了不确定需求下提升生产线效率和鲁棒性的优化方法,设计了基于强化学习的多目标进化算法,通过基于解决方案优先级的编码方式和新的任务-人工-序列的解码方式,提出了适用于鲁棒性处理和空闲时间减少处理的交叉和突变算子,运用基于Q学习和时间概率的自适应策略协调迭代过程中的算子,从而有效地获得Pareto解决方案集。
|
||||
Wang等\cite{wang_discrete_2022}研究了拆装生产线的负载平衡问题,以最大限度地提高工人的效率、增加利润、降低能耗和平衡工人的负荷为目标,开发了一种离散多目标人工蜂群算法,综合考虑了优先级等约束和拆装过程的特性,获得了Pareto最优的解决方案。
|
||||
Zhang等\cite{zhang_multiobjective_2021}提出了一种基于直觉模糊集相似度的电路板组装车间的调度优化算法,通过聚合作业完成时间、总延迟成本、投资仓储成本和电力消耗等多个优化子目标映射至直觉模糊相似集,集合适应度函数分配策略和最优觅食算法,设计了改进的表面组装多目标进化算法。
|
||||
|
||||
\subsubsection{多层次生产规划}
|
||||
% === 非单一订单 ===
|
||||
多品种小批量的表面组装生产线负载平衡是典型的多模态组装线优化问题,相关研究主要围绕生产线的配置切换和负载平衡展开。
|
||||
Jin等\cite{jin_changeover_2011}建立了包含切换时间在内的最小化组装时间的表面组装生产线调度优化模型,提出针对电路板组装特有的切换后效性的主动禁忌搜索算法,研究了组间搜索和组内搜索的分层排序优化策略,并与理论下界值比较说明了算法的有效性。
|
||||
Liu等\cite{liu_hmlv_2012}研究了两条生产线的多品种小批量生产线优化问题,以最小化生产线的最大流程时间为目标,根据相同品种子集的相对相似系数进行分组,采用主动禁忌搜索算法对电路板进行排序,并利用预置即需工具(Keep Tool Needed Soonest,KTNS)策略切换供料器的配置,实现柔性生产线的负载均衡优化。
|
||||
Guo等\cite{guo_nozzle_change_2016}研究了吸嘴切换和供料车在组线生产线优化中带来的瓶颈问题,设计了混合遗传算法优化多品种小批量订单的总完工时间,以遗传算法解决电路板的分组问题,提出改进的解决席位公平分配问题的增量算法进行组内分配,并采用改进的KTNS算法进行元件排序使切换次数最小。
|
||||
|
||||
|
||||
% === 关于多条产线的整线优化 ===
|
||||
表面组装线优化也可作为多层次生产规划的一部分,包括电路板-生产线分配、元件-贴片机分配和贴片机拾贴顺序优化等多个环节。
|
||||
T\'{o}th等\cite{toth_machine_2018}研究了固定贴片机配置下多种不同批次类型电路板的整线优化问题,提出了一种迭代式的两阶段优化算法,将进化算法与整数规划结合,运用遗传算法解决生产线的重配置问题,并以整数规划模型优化整线负载平衡。
|
||||
更进一步,T\'{o}th等\cite{toth_divide_2022}研究了整线贴装多种电路板的多模态负载均衡问题,提出了基于图论的电路板拆分组合启发式算法,将多种电路板组装问题拆分为独立的生产问题、并配置模块的公共子配置,有效地缩减了问题的规模。
|
||||
Mumtaz等\cite{mumtaz_multi-level_2019}将多模态组线优化问题转换为生产线-电路板分配、元件-贴片机分配和贴片机元件拾贴顺序三个子问题,在预定交期和不同的产线容量条件下,提出了混合蜘蛛猴算法来同时解决多层次规划问题。
|
||||
Koskinen等\cite{koskinen_rolling_2019}研究了分层启发式解决作业分区、选择、分组、负载平衡和调度问题,以最小化多周期生产计划中工作的总延误时间为目标,提出了包括生产线任务分配初始化和生产计划步骤改进的两阶段启发式,用以优化多条组装线下的多种类型电路板的滚动水平生产计划。
|
||||
Pan等\cite{pan_knowledge_2022}研究了分布式并行的生产规划问题,以最小化总能耗和总延时为目标,提出了基于知识的双种群优化算法,通过分析问题特性,在种群初始化中使用了两种基于特定问题知识的启发式算法和一种随机启发式算法,运用非有序排序遗传算法和差分进化算法在种群上并行执行,以基于知识的局部搜索算子迭代,提升了机器的利用率。
|
||||
Chen等\cite{chen_optimal_2024}分层设计分别对生产线配置、贴片机分配和元件分配进行优化,提出了进化算法和数学规划结合的数学启发式算法,在进化算法迭代过程中以数学模型评价个体的性能指标,确定了生产线中贴装机类型的最优配置。
|
||||
|
||||
|
||||
\subsubsection{组装过程时间估计}
|
||||
|
||||
% 表面组装生产时间估计
|
||||
|
||||
组装时间估计是表面组装生产线中优化元件分配、实现贴片机工作负载均衡的重要依据。组装过程的时间受贴片机类型、优化算法及生产数据特性的影响。相关研究通常采用(线性)拟合的方法进行时间估计。
|
||||
Wu等\cite{wu_solution_2010}以元件类型数、贴装点数、覆盖全部贴装点的最小区域面积及其乘积项的平方根为拟合项的线性回归估计组装时间。
|
||||
Vainio等\cite{vainio_estimating_2015}分别研究了基于制造商参数和回归模型的组装时间估计方法,前者采用最近邻启发式快速优化组装过程,以给定参数模拟组装过程估计组装时间,后者则以元件类型、吸嘴类型及其数量等参数构成特征集,在训练阶段通过贪心的特征选择算法,通过正则化最小二乘回归对组装时间快速估计。
|
||||
进一步地,Vainio等\cite{vainio_estimating_2010}研究了不同类型贴片机的非线性拟合方法,以元件类型数、贴装点数、电路板尺寸、元件形状及其周围的最小矩形面积等为训练特征,提出了基于多层感知器网络的组装时间估计器,采用交叉验证和Bayesian正则化等技术避免模型的过拟合,提高准确度。
|
||||
监督学习具有较强的非线性拟合能力,在时间估计中有更高的准确度。
|
||||
Li等\cite{li_predicting_2020}提出了基于共生生物搜索的支持向量回归组装时间估计方法,分析了装配过程中反映电路板和组装线生产时间不确定性的特征,通过特征选择、正则化编码、数据缩放和异常值去除等技术,结合集成学习等技术对组装时间进行估计。
|
||||
Chen等\cite{chen_optimised_2024}将学习算法与启发式算法相结合,以随机森林算法预处理数据的特征,结合了电路板特征、操作员习惯和程序设置等,以差分进化算法为基础,提出了基于决策树的改进轻量级梯度提升机算法,用于估计表面组装的生产准备时间。
|
||||
|
||||
|
||||
|
||||
\section{现有研究存在的问题}[Problems of current research]
|
||||
|
||||
表面组装过程优化任务,作为一类典型的非确定性多项式(Non-deterministic Polynomial,NP)难组合优化问题\cite{ji_genetic_2001},直接对其整体进行求解的算法搜索效率低下,且容易陷入局部最优解。
|
||||
现有的主流研究将贴片机的表面组装过程优化分解为供料器槽位分配问题和元件贴装顺序问题。前者可以被视为二次分配问题,后者则可被转换为路径规划问题。
|
||||
对于更高层次的表面组装生产线优化问题,已有研究对负载平衡算法展开了初步的讨论与分析。然而,由于该问题解空间庞大,加之准确获取贴片机的组装时间困难,制约了生产线效率的进一步提升。
|
||||
目前关于表面组装过程优化方法的研究尚存在诸多问题,主要有:
|
||||
|
||||
1)\emph{组装过程数学模型的目标和约束不完备、或不具备可解性}
|
||||
|
||||
% 约束、目标不完备
|
||||
% 模型非线性或不可解
|
||||
% 过高的复杂度,工程实践不可部署
|
||||
|
||||
相关研究已经探讨了表面组装过程数学模型的构建策略。然而,目前已有研究中构建的模型普遍存在优化目标不全面、约束条件不完备或模型自身非线性不可解等问题。影响并列式贴片机组装效率的因素较多,在相关研究中,文献\inlinecite{ho_integrated_2009, altinkemer_optimization_2000}在构建模型时,仅将贴片头的移动路径长度作为评价指标,却忽视了拾取动作、吸嘴更换动作等关键因素对组装效率产生的影响。文献\inlinecite{ashayeri_aggregated_2011,geng_mcvrp-based_2019,torabi_new_2013}分别从拾贴周期规划、吸嘴更换策略以及同步拾取机制等角度对模型构建进行了讨论。其中,文献\inlinecite{torabi_new_2013}以周期数和悬臂移动速度为优化目标;文献\inlinecite{ashayeri_aggregated_2011}进一步优化了周期数、悬臂移动速度和吸嘴更换次数;文献\inlinecite{geng_mcvrp-based_2019}通过构建同时拾取组,规避了吸嘴更换动作。
|
||||
上述研究中对组装效率影响因素考虑仍不全面,导致大幅降低了模型解的组装效率。
|
||||
文献\inlinecite{hsu_solving_2022,altinkemer_optimization_2000,li_cell_2022, gao_hierarchical_2021}虽然为表面组装全过程模型建立了相对完备的约束条件和优化目标,适用于描述复杂问题和验证解的可行性,但模型本身的非线性特性却使其无法直接求解,也无法根据模型的解来定量分析启发式算法的效果。文献\inlinecite{luo_milp_2017, sun_branch-and-price_2007}讨论了贴装过程的路径规划建模,但由于模型复杂度过高,其适用范围仅限于极小规模的数据,在工程中难以部署和应用。此外,部分研究仅针对特定应用场景\inlinecite{luo_milp_2014}或其中的子问题\inlinecite{raduly-baka_selecting_2008,raduly-baka_tool-feeder_2017,luo_milp_2017,sun_branch-and-price_2007}进行了模型构建,缺少了从整体上对组装过程效率指标进行优化的综合考量。
|
||||
|
||||
2)\emph{贴片机组装过程优化解的生产效率不高、适用场景有限}
|
||||
|
||||
% 元启发式输出不稳定
|
||||
% 优化目标和约束研究不充分
|
||||
% 不满足供料器已分配等多样性优化要求
|
||||
|
||||
表面组装过程的优化任务,因其多模态、高维度和复杂约束的特性,促使当前主流研究普遍倾向于采用启发式作为算法设计的主体框架。
|
||||
文献\inlinecite{geng_mcvrp-based_2019, li_cell_2022,hsu_solving_2017,hsu_optimization_2020,liu_optimization_2017,zhu_improved_2014,wang_application_2019,wu_minimum_criterion_2020,huang_applied_2020}均是在元启发式框架下,对表面组装过程优化进行了研究。
|
||||
元启发式算法在处理大规模组装优化任务时,其收敛速度可能会因问题规模的增大而减缓,进而影响了优化解的质量。
|
||||
算法中的随机搜索策略虽然有助于拓宽搜索范围、增强算法的适应性,但同时也带来了优化结果的不确定性,易使结果陷入局部最优解,从而降低了组装效率。
|
||||
在并列式贴片机组装过程的优化研究中,当前研究通常关注于优化目标和约束条件的某个或某些方面,而对于整个组装过程中关键优化目标的综合分析并不全面。
|
||||
特别是在决定组装效率的关键因素——同步元件拾取方面,仅有文献\inlinecite{tsuchiya_scheduling_2007, geng_mcvrp-based_2019, guo_pcb_2011, gao_hierarchical_2021, lin_modified_2017,sun_component_2005,li_cell_2022}对此进行了研究。
|
||||
同步拾取动作受到贴片头上所安装吸嘴类型的限制,为实现同步拾取而更换吸嘴,或为满足元件与吸嘴类型的兼容而进行多次拾取,均会直接导致组装效率的降低。
|
||||
上述研究中,
|
||||
文献\inlinecite{geng_mcvrp-based_2019, lin_modified_2017}未对影响效率的供料器分配槽位予以讨论;
|
||||
文献\inlinecite{sun_component_2005}采用的贪心同步拾取策略会增加吸嘴更换的次数;
|
||||
文献\inlinecite{li_cell_2022}以最小化拾贴周期数为主要优化目标,在处理包含较多类型元件的优化问题时,会导致频繁的吸嘴更换,进而降低整体效率;
|
||||
文献\inlinecite{guo_pcb_2011, geng_mcvrp-based_2019}在设计同时拾取组时禁止了吸嘴更换动作,限制了组装效率解的质量;
|
||||
文献\inlinecite{tsuchiya_scheduling_2007}在构造同步拾取供料器分配时,未充分考虑元件对应的吸嘴类型,导致实际组装效率下降。
|
||||
相关研究中,文献\inlinecite{gao_hierarchical_2021}在算法设计过程中较为全面地讨论了约束条件和优化目标,但其对贴片头上分配的元件、拾取的槽位以及吸嘴类型排列顺序的研究仍显不足,限制了算法效率的进一步提升。
|
||||
|
||||
|
||||
在表面组装过程优化搜索解的过程中,机械约束与工具约束等限制了解的可行性。
|
||||
其中,机械约束包括各贴片头存在物理上无法到达的拾取槽位,
|
||||
为解决此问题,文献\inlinecite{geng_mcvrp-based_2019}与文献\inlinecite{sun_component_2005}分别采用了构造同步拾取组与贪心扫描算法的策略;
|
||||
而在文献\inlinecite{tsuchiya_scheduling_2007,gao_hierarchical_2021}等关于供料器位置分配的研究中,若贴片头无法达到所分配的槽位拾取元件,则必须调整其拾取的槽位或所用贴片头,均会降低组装效率。
|
||||
在工具约束层面,文献\inlinecite{lee_hierarchical_1999}假定各类元件仅有1个供料器,且供料器仅能由指定贴片头拾取元件,限制了组装效率的提升。
|
||||
此外,不同型号的供料器被设计用于供应不同尺寸的元件,文献\inlinecite{lee_hierarchical_1999,geng_mcvrp-based_2019}中供料器仅占用一个槽位的设定,无法满足大尺寸元件的拾贴作业需求。
|
||||
文献\inlinecite{gao_hierarchical_2021, li_cell_2022}中提出的算法需要对供料器的安装槽位重新进行分配,在小批量多品种、且供料器更换频率较低的生产场景下,增加了生产准备的时间成本。
|
||||
对于可用吸嘴工具的约束,文献\inlinecite{guo_pcb_2011,guo_nozzle_2011,guo_integrated_2012, geng_mcvrp-based_2019}的研究中不进行吸嘴更换的设定,使其在处理吸嘴类型较多的组装数据优化时,可能导致所得解的不合理甚至无解的情况出现。文献\inlinecite{huang_applied_2020, ashayeri_aggregated_2011}将元件与吸嘴的匹配问题转化为代价函数进行优化,由于在实际组装过程中,不合理的贴片头吸嘴配置对拾取稳定性和贴装准确性均会产生不利影响,因此其所得解的无法保证可部署到实际的生产环境中。
|
||||
|
||||
3)\emph{生产线的组装用时评估不准确、负载分配不平衡导致组装效率低}
|
||||
|
||||
% 整线优化解决方案不完整
|
||||
% 元件可重复等特性研究较少
|
||||
% 组装时间估计不准确
|
||||
|
||||
|
||||
为提高电路板组装流程的效率,制造商通常以多台贴片机构成的表面组装生产线来执行组装作业,此过程中涉及到生产线的负载平衡问题。
|
||||
表面组装生产线的负载平衡优化需要综合考虑供料器配置、吸嘴分配、以及元件分配等多个子问题,以提供更全面的组装生产线优化解决方案。多层次的决策规划和子问题之间的相互耦合等多方面因素的共同作用导致现有优化算法对组装效率的提升有限。
|
||||
表面组装生产线优化研究中,元件分配作为核心任务,其负载平衡算法已成为主流研究的重点。
|
||||
文献\inlinecite{kodek_optimal_2004,emet_workload_2010,rong_modeling_2011}研究了数学规划法解决中小规模数据的元件分配策略,文献 \inlinecite{toth_reconfiguring_2010,he_heuristic_2017,kulak_ga-based_2008,mumtaz_hybrid_2020,guo_integrated_2012,chen_improved_2023,mumtaz_hybrid_2020}则研究了基于启发式的元件分配算法,以满足更大规模数据的优化需求。
|
||||
组装生产线优化还需解决同类元件在多台贴片机间的分配问题以及可用工具的约束条件。
|
||||
文献\inlinecite{kulak_ga-based_2008}等限制各类元件仅能分配至单一贴片机,未能充分利用元件的可重复分配性以提升组装效率;文献\inlinecite{emet_workload_2010, rong_modeling_2011, he_heuristic_2017,mumtaz_hybrid_2020,guo_integrated_2012}研究了将同类元件分配至不同贴片机进行组装的优化策略,但仅确定了各类型元件在不同机器上的分配数量,未涉及吸嘴、供料器等组装工具的分配问题,也未明确贴装点与贴片机的分配关系。
|
||||
解决方案不完整将导致组装线的效率过度依赖于贴片机的优化效果,可能造成贴片机间工作负载分配的不均衡。
|
||||
文献\inlinecite{chen_improved_2023,mumtaz_hybrid_2020}运用元启发式算法同时对组装线的元件分配和贴片机的拾贴顺序进行优化,较大的复杂解空间使得算法难以在可接受的时间内获得高质量的解。
|
||||
负载平衡优化相关研究主要围绕转塔式贴片机展开,直接推广到并列式贴片机构成的生产线中将会导致组装效率的下降。
|
||||
|
||||
为降低因引入贴片机优化所导致的组装线负载均衡问题复杂程度和求解时间的增加,文献\inlinecite{wu_solution_2010,liu_surface_assembly_2013, vainio_estimating_2015,li_predicting_2020,vainio_estimating_2010,chen_optimised_2024}等围绕表面组装时间估计开展研究。
|
||||
其中,
|
||||
文献\inlinecite{wu_solution_2010,liu_surface_assembly_2013}将贴装点数和组装时间建立关联,其估计结果与实际组装时间之间存在较大的偏差;
|
||||
文献\inlinecite{vainio_estimating_2015}研究了基于线性回归的时间估计模型,同样无法准确估计并列式贴片机复杂组装过程的用时;
|
||||
文献\inlinecite{li_predicting_2020,vainio_estimating_2010,chen_optimised_2024}研究了基于机器学习的非线性组装时间估计方法,此类研究较线性拟合在准确度上有了显著的提升。
|
||||
对于时间估计模型,特征的选择是决定估计准确度的关键因素,有效的特征能够减少估计模型的训练时间和计算成本,提高模型的泛化能力。
|
||||
总体而言,当前关于组装时间的估计主要集中于转塔式贴片机,而对于以平衡工作负载为目标的并列式贴片机生产线优化问题,现有研究在分配过程和组装时间估计时未能全面考虑影响组装时间的多种因素,进而引发了负载分配的不平衡,降低了组装线的整体效率。
|
||||
|
||||
|
||||
\section{本文主要研究内容及安排}[Major research contents and organization of this thesis]
|
||||
|
||||
本文致力于解决表面组装过程中生产调度优化问题,包括贴片机的组装过程优化和组装生产线的负载平衡优化。针对现有研究中模型建立不完备、组装优化算法适用场景受限、组装过程生产效率低等诸多问题展开研究,旨在提高优化算法的可应用性、可部署性和可拓展性,提升表面组装生产过程的效率。
|
||||
对于复杂的表面组装过程优化,全局直接优化方法易受问题的高维计算复杂性制约,并可能陷入局部最优。本文采用分层优化策略,基于从局部到整体的分阶段降维框架:聚焦核心贴片头任务分配问题的优先求解,再逐层优化贴装过程路径规划和生产线负载平衡,通过降维有效压缩解空间维度,以提升求解效率、逐步逼近最优解。
|
||||
% 贴片机的组装过程优化被拆分为贴片头任务分配和贴装过程路径规划两个子任务,前者决定了贴片机组装的关键子目标,后者则在其约束下进一步给出了完整组装过程优化方案。生产线负载平衡任务则是在贴片机组装过程优化基础上,对贴片机组装任务等进行分配的优化。
|
||||
% 贴片头任务分配作为基础层,决定贴片机组装动作的整体调度与资源分配,是效率优化的主导因素。路径规划作为细节层,在贴片头任务分配的框架内优化其贴装过程的移动路径,完善组装过程方案。生产线作为全局层,整合贴片头任务分配和贴装过程路径规划的结果,实现生产线的整体性能优化。
|
||||
论文的基本组成结构如图\ref{ch1:figure:structure}所示,各章节的组织安排如下:
|
||||
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.825]{chapter1/structure-organization.eps}
|
||||
\bicaption[ch1:figure:structure]{}{论文主要研究内容结构框图}{Fig.$\!$}{Structural block diagram of main research contents of this dissertation}
|
||||
\end{figure}
|
||||
|
||||
|
||||
第2章是全文研究的基础性工作,通过分析影响表面组装过程效率的主要因素,对组装过程的约束条件和优化目标进行了研究。贴片机的组装过程优化问题可以被拆解为拾取过程和贴装过程的规划问题,表面组装生产线是以此为基础的进一步研究。结合实际应用场景,对问题进行了适当简化并提出假设条件,将组装过程优化问题拆分为贴片头任务分配、贴装过程路径规划和组装生产线负载平衡问题,并以此作为本文研究的主线任务。
|
||||
以(混合)整数线性规划为基础分阶段地建立了准确反映研究对象特性的数学模型,提出了适用于拾取过程的基于关键目标分解的贴片头任务分配模型、适用于贴装过程的多拾贴周期路径规划模型、以及适用于表面组装生产线的负载平衡模型。
|
||||
数学模型可用于验证表面组装过程解的可行性,定量分析解的质量,为优化算法的设计提供参考。
|
||||
最后,给出了具体的实例进行分析说明,分析了模型参数的灵敏度和复杂度。
|
||||
|
||||
|
||||
第3章从数学规划和启发式优化算法的角度,研究了表面组装过程中的贴片头任务分配的优化方法,将问题进行进一步拆分为供料器-槽位和贴片头-元件分配优化两部分,通过保证组装过程关键性能指标的高质量,提升了表面组装过程的整体效率。
|
||||
两类算法适用于不同规模的数据,数学规划法适用于小规模解空间的系统化搜索,启发式优化则适用于大规模解空间的高效搜索。
|
||||
在基于数学规划的算法设计中,为降低贴片头任务分配模型的复杂度、提高模型的求解效率,提出了基于周期任务集成的模型增强策略,根据问题特征设计了模型的初始解构造算法,提出了一种带有路径预判的模型解的评估策略,用于降低其与后续路径规划问题之间耦合性;
|
||||
在基于启发式的算法设计中,进一步提出了基于前瞻扫描启发式的贴片头任务分配算法,研究了基于长短期收益评估的元件分配策略,围绕吸嘴分配模式、供料器槽位分配和贴片头元件分配,分阶段地设计启发式算法,结合实际应用中的生产配置,对算法的实现细节进行了详细的讨论。
|
||||
最后,对比分析了不同模型设计的收敛效果,并将所提出算法和主流研究在组装性能指标等方面进行了比较,通过在不同应用场景下的对比验证,证明了所提算法结果的高效性、可行性和可扩展性。
|
||||
|
||||
第4章在第3章研究的基础上,分析了贴装过程的问题特性和分阶段优化方法,研究了基于给定的贴片头任务分配约束下贴装过程路径规划算法,将其拆分为周期内和周期间的优化算法。其中,前者是对周期内有限贴装点的移动路径进行规划,后者则是对贴装点分配的拾贴周期和贴片头进行优化。
|
||||
在周期内规划阶段,结合贴装过程多轴协同作业的特性,建立了拾贴周期路径规划的状态转移方程,提出了基于动态规划的拾贴周期最优路径规划算法;
|
||||
在周期间规划阶段,以贪心式贴装点分配为基础,结合多源贪心和动态导向的集束搜索算法,提出了周期间的贴装点分配算法。
|
||||
周期内和周期间相结合的路径规划算法保证了解的高质量,为进一步优化贴装过程的移动路径,提出了自适应大邻域搜索的聚合路径重构算法,根据贴装点的分布和拾贴周期的移动路径,对已有路径进行破坏和修复,克服了贪心式路径规划导致的拾贴周期间路径移动长度不均衡的问题,实现了对解的持续迭代优化。最后,将提出的路径规划方法和主流研究在相同及不同贴片头任务分配约束下进行了对比,对路径规划算法的关键组成部分的作用进行了分析验证,比较了不同初始解对自适应大邻域搜索结果的影响,证明了提出算法结果的高质量。
|
||||
|
||||
|
||||
第5章在第3--4章研究的基础上,将贴片机组装过程的优化进一步拓展至表面组装生产线的负载平衡优化领域,旨在通过整合多台贴片机提升表面组装流程的整体效率。
|
||||
为优化由并列式贴片机构成的表面组装生产线,探讨了运用多特征融合集成组装时间估计器的超启发式负载平衡方法,设计了基于数据驱动与目标驱动的底层启发式算子,并提出了不同算子快速比较贴片机之间相关性能指标的方案。此外,为了以可重复分配元件提升组装效率,提出了元件分组搜索策略与聚合聚类元件贴装点分配算法。
|
||||
在评估解的质量方面,研究了组装时间估计模型的训练数据的生成流程和处理方法、特征提取算法以及设计架构;在此基础上,提出了基于集成学习的组装时间估算器,该估算器以神经网络为基模型,融合了组装数据的基本参数、估算子目标等多维度特征进行编码,实现了对组装时间的准确估计。最后,将所提出的组装时间估计器与其他方法进行了对比,验证了其在准确度方面的提升;围绕解的组装效率、结果稳定性以及算法运行效率等指标,将提出的超启发式负载平衡算法同主流研究进行对比验证,证明了提出算法的高效性、优化结果的高质量和稳定性。
|
||||
|
917
body/chapter2.tex
Normal file
917
body/chapter2.tex
Normal file
@ -0,0 +1,917 @@
|
||||
% !Mode:: "TeX:UTF-8"
|
||||
|
||||
\chapter{表面组装过程优化的数学规划模型}[Mathematical programming models for surface assembly process optimization]
|
||||
\label{ch2:chapter}
|
||||
|
||||
\section{引言}[Introduction]
|
||||
|
||||
建立准确反映研究对象特性的数学模型是分析和求解问题的首要环节。
|
||||
表面组装过程优化作为一类组合优化问题,数学规划法是求解此类问题的主要方法之一。
|
||||
以整数规划为代表的方法通过系统地搜索解空间、排除不可行解和次优解、逐步逼近最优解,在充足的求解时间下理论上能准确地获得问题的最优解。
|
||||
然而,研究对象模型的构建必须充分考虑影响优化目标的主要因素和约束条件,以确保模型的实用性和有效性。
|
||||
对于涉及多个优化变量和复杂决策过程的数学模型,其构建过程面临着约束条件非线性、过程环节间强耦合、优化目标影响因素复杂等诸多挑战,大幅增加了模型构建的难度;即使成功建立了问题的模型,也可能因过高的复杂度而难以将其直接应用到实际的生产环境中。
|
||||
|
||||
拆分和简化问题模型是建模过程中的常用策略,用于提升模型处理复杂数据的求解效率。
|
||||
模型的拆分与构建应遵循从整体到个体、从主要目标到次要目标的原则。
|
||||
合理地将表面组装过程中的优化问题进行拆分,聚焦于分解问题的主要优化目标,关注子模型之间的耦合关系与约束条件,可以显著降低问题求解的难度。
|
||||
此外,对模型做出合理假设能有效凸显主要问题、弱化次要问题、省略非关键环节,有助于模型的进一步简化。
|
||||
在数学规划领域,现有的通用求解方法对于线性模型展现出了高效的求解能力,因而有必要在建模过程中线性化调整模型,以确保其可解性。
|
||||
可解的数学模型不仅可以验证解的可行性、定量分析解的质量,还可为启发式算法的设计提供参考基准,从而为算法的设计和改进提供依据。
|
||||
|
||||
|
||||
表面组装过程的优化旨在调度和规划组装过程中拾取、贴装等工序,其决定了电路板的组装生产效率,
|
||||
同时受到多重外部与内部因素的制约,加大了问题求解的难度。
|
||||
此类问题的模型构建过程需要侧重于影响装配效率的关键因素,以降低模型的复杂度、提高模型的求解效率。
|
||||
本章将研究单一品种电路板的组装过程建模问题,分析该问题的特点,确定表面组装过程的优化目标及约束条件,从贴片机的组装过程优化的角度出发,对模型进行拆解与分析,进而扩展至整个表面组装生产线负载平衡模型的建立。
|
||||
|
||||
|
||||
\section{系统的描述与分析}[Description and analyses of the system]
|
||||
|
||||
\subsection{系统构成}[System configuration]
|
||||
|
||||
本文研究的装配并列式贴片头的贴片机平台系统构成如图\ref{ch2:figure:platform}所示,平台中主要设备的厂商、型号等信息如表\ref{ch2:table:platform}所示。实验平台为H 型龙门结构多自由度运动平台,X轴为单轴直驱运动模组,Y轴为两套平行安装的单轴直驱运动模组,X轴同步装配有一个悬臂及多个独立贴片头。系统采用轻量化悬臂设计,结合双伺服驱动系统,支持多轴同步运动,可实现复杂轨迹的快速响应,并确保高速运动下的稳定性。内置的吸嘴更换装置可根据元器件类型自动切换吸嘴。PCB传送与定位系统可自动调整宽度,适配不同尺寸基板。双视觉协同识别系统在贴片头作业过程中实时识别元件,通过补偿机械误差,确保贴装位置与预设位置的一致性。供料系统提供120个标准供料槽,配备的电动供料器具备吸料位置自动整列功能,减少了供料卡顿。操作系统与界面基于Windows 10平台,提供直观编程界面,支持在线程序编辑与优化。
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\includegraphics[scale=0.55]{chapter2/platform.eps}
|
||||
\bicaption[ch2:figure:platform]{}{贴片机平台}{Fig. $\!$}{Platform of surface mounter}
|
||||
\end{figure}
|
||||
|
||||
典型的表面组装生产线如图\ref{ch2:figure:real-assembly-line}所示,上板机、印刷机、贴片机和回流焊为其基本组成部分。在电子制造工艺流程中,各类设备的产能特性存在显著差异。丝网印刷机在焊膏涂覆环节展现出显著的速度优势,而回流焊接设备采用连续进板设计,其工艺节拍独立于前序工序,通常不会形成产能制约。AOI检测系统具备多工位并行检测能力,其图像处理耗时可忽略不计。与之对比的是表面组装设备,该工序需完成数百个异形元件的精密拾取与定位作业,其贴装周期直接决定了整线生产节拍。在生产线优化实践中,设备综合效率管理的核心在于突破关键瓶颈——由于表面组装工序的固有特性,其设备产能往往构成整线产能的核心制约因素,这使得表面的效率优化成为提升整体装配效率的关键突破点。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:platform]{}{表面组装设备实验平台配置}{Table $\!$}{Platform configuration of surface assembly equipment}
|
||||
|
||||
\begin{tabular}{p{3cm}<{\centering}p{4cm}<{\centering}p{3cm}<{\centering}}
|
||||
\toprule
|
||||
系统组成 & 设备型号 & 设备厂商 \\
|
||||
\midrule
|
||||
工控机 & IPC-610-L & 研华科技 \\
|
||||
X轴驱动器 & MCDLN35SE & Panasonic(松下) \\
|
||||
Y轴驱动器 & MDDLN55SE & Panasonic(松下) \\
|
||||
Z轴驱动器 & MMDKT2C09E & Panasonic(松下) \\
|
||||
R轴驱动器 & ZC-SR2 & 鸣志 \\
|
||||
X轴电机 & MHMF082L1U2M & Panasonic(松下) \\
|
||||
Y轴电机 & MSMF102L1G6M & Panasonic(松下) \\
|
||||
Z轴电机 & MNMA2ACF1A& Panasonic(松下) \\
|
||||
R轴电机 & AM11HS3007-02 & 鸣志 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[scale=0.4]{chapter2/assembly-line.eps}
|
||||
\bicaption[ch2:figure:real-assembly-line]{}{表面组装生产线的系统构成}{Fig. $\!$}{System configuration of surface assembly line}
|
||||
\end{figure}
|
||||
|
||||
|
||||
本文相关的实验均采用Python 3.11在集成开发环境PyCharm 2022.1.4软件中实现,相关的数学模型则采用优化器 Gurobi 11.0\cite{gurobi} 进行求解,算法均在配置为Intel Core i5-14600KF主频3.5GHz CPU 的计算机上实现。程序优化结果包含供料装置安装槽位、ANC库配置、元件的拾取和贴装顺序规划等,通过标准化文本格式文件导入到实验平台中。实验平台内置生产过程控制程序和统计程序:控制程序中的同步拾取和多轴运动等动作按最优条件执行,并可根据程序步骤实现贴片头自动更换吸嘴、在供料基座上拾取元件和前往预定贴装点放置元件等组装过程运动指令;统计程序可准确记录电路板传送时间、贴装时间等相关生产数据,其中贴装时间为开始准备生产到贴装完最后一个元件的用时,包含了贴装第一个元件前的贴片头吸嘴更换等过程,是后续对比实验所用的数据之一。
|
||||
|
||||
\subsection{表面组装过程优化}[Surface assembly process optimization]
|
||||
|
||||
表面组装过程的优化可划分为贴片机组装过程优化与生产线负载平衡优化两个方面。前者用于解决贴片机在组装过程中悬臂移动用时与组装动作用时总和的最小化问题;而后者则用于平衡生产线上贴片机的工作负载,减少其中作为生产效率提升瓶颈的贴片机的组装用时。
|
||||
贴片机组装过程优化的结果用以评估生产线负载分配的平衡性,而组装线负载平衡的结果又是贴片机组装过程优化的输入。
|
||||
尽管贴片机组装过程优化可被视为生产线负载平衡优化的一个组成部分,但由于其模型的构建本身已有较高的复杂度,若直接在生产线负载平衡优化中对多个决策过程进行建模,将大幅度增加模型复杂度,导致模型求解变得异常困难、甚至不可解。
|
||||
在实施优化策略时,需要综合考虑两者的特点与关系,采取适当的策略与方法进行分别优化与处理。
|
||||
|
||||
贴片机的组装过程优化可被视为仓库选址、任务分配和路径规划相结合的综合性组合优化问题。
|
||||
在电路板组装过程中,贴片头需从装载有电子元件的供料器中拾取元件,供料器在基座上的安装槽位可以等效为仓库选址问题。
|
||||
任务分配问题需要确定贴片头在各个拾取周期内取料的槽位,槽位的分配直接影响元件拾取的次数,进而影响了组装效率。同时,不同元件类型所需的吸嘴类型决定了贴片头的吸嘴更换的次数,影响了悬臂移动过程的用时。
|
||||
路径规划用于优化悬臂上贴片头贴装元件的路径,同时确保元件贴装位置与贴片头拾取元件类型相匹配。
|
||||
不同子问题之间紧密耦合、相互影响,共同决定了表面组装过程的整体性能。
|
||||
% 供料器的安装槽位影响贴片头的拾取效率,其布局应尽可能满足同步取料的条件,同时减少可能引入的吸嘴更换。此外,供料器的安装槽位和贴片头拾取的元件类型对整体的移动路径也有影响。一方面,拾取过程的移动路径是整个组装路径的组成部分;另一方面,贴片头拾取的元件类型限制了可移动的贴装元件的位置,相关限制条件在路径规划时必须加以考虑,以保证贴片头任务分配和路径规划解的一致性。
|
||||
|
||||
|
||||
表面组装生产线负载平衡指的是解决元件在不同贴片机上的分配问题。分配给不同贴片机的元件类型、元件的贴装点数都会影响贴片机的组装效率。在元件分配过程中,供料器的可用数量会限制不同类型元件可分配的贴片机数量。
|
||||
通常情况下,元件分配的组合数量庞大,即使是小规模数据也需要大量的计算资源,且随着问题规模的扩大,搜索过程的运算量也会迅速增加。
|
||||
因此,提高对复杂解空间的搜索效率对组装线负载平衡优化至关重要。在确定装配时间时,贴片机组装过程用时已难以直接获得,将贴片机组装优化问题直接扩展到生产线负载平衡问题因复杂度较高更不具备可行性。在生产线元件分配过程中,通过提取组装效率相关的关键因素进行建模和优化,以及提取特征估计组装过程的用时,有利于降低问题求解的难度,实现对解空间的快速迭代搜索,进而获得高质量的解。
|
||||
|
||||
|
||||
\section{多阶段模型的构建}[Multi-stage modelling]
|
||||
|
||||
\subsection{分析与假设}[Analyses and assumptions]
|
||||
|
||||
贴片机组装过程优化中的主要决策子问题、优化子目标和约束条件之间的关系如图\ref{ch2:figure:relationship}所示。
|
||||
贴片机的组装过程优化可以被拆解为拾取过程和贴装过程的优化问题。前者解决了供料器的安装槽位和贴片头拾取元件类型的问题,而后者则决定了贴片头的贴装顺序问题。
|
||||
这两个子问题之间存在着递进关系,即在确定贴片头的组装元件类型基础上,进一步分配对应的贴装点。
|
||||
分层递进求解可以逐步缩减搜索空间的大小,降低问题的计算复杂度。
|
||||
表面组装过程的各环节存在相关性,供料器的安装槽位影响贴片头的拾取位置和分配的元件类型,决定了拾取过程的移动路径;贴片头分配的元件类型影响着贴装过程的移动路径,同步拾取元件所必要的吸嘴更换带来悬臂往返ANC的移动过程。
|
||||
为了提升表面组装效率,同时保证贴片头的吸嘴类型、元件类型、贴装点和拾取槽位的一致性,可能会产生贴片头的吸嘴更换和拾取元件过程的移动动作。
|
||||
供料器的安装槽位和贴片头的元件分配共同决定了组装过程中悬臂的整体移动路径。
|
||||
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.75]{chapter2/obj-constr-problem.eps}
|
||||
\bicaption[ch2:figure:relationship]{}{表面组装优化中子目标、共同约束条件和子问题之间的关系}{Fig.$\!$}{The relationship among sub-objectives, constraints and sub-problems.}
|
||||
\end{figure}
|
||||
|
||||
表面组装过程的目标是最小化组装时间,该指标与组装过程多项子目标相关,子目标可分为组装动作指标和移动路径指标。组装动作指标包括贴片头的元件拾取次数、吸嘴更换次数和元件贴装次数,其中元件贴装次数仅和组装数据相关,而元件拾取次数和吸嘴更换次数则取决于优化结果,同样是影响并列式贴片机整体组装效率的重要因素\cite{gao_hierarchical_2021}。悬臂的移动路径又可进一步分为拾取移动路径、往返移动路径和贴装移动路径,其中,往返移动路径指悬臂在电路板和供料器基座之间的往复运动。
|
||||
在移动指标中,拾取移动指标和元件拾取次数关联度较大,贴装过程的移动指标对整体组装效率影响较小,往返移动路径则同拾贴周期数直接相关。
|
||||
|
||||
在表面组装过程中,多个优化子目标均会影响整体组装过程效率,且不同性能指标彼此之间存在关联性又相互冲突。
|
||||
对于影响组装效率的主要因素——元件拾取次数和吸嘴更换次数,构造同步拾取可能会带来贴片头冗余的吸嘴更换动作,减少吸嘴更换次数又可能会导致拾取路径和拾取次数的增加,优化算法须在二者之间权衡。
|
||||
贴片头的移动路径规划之间也存在相关性。
|
||||
为了保证多个贴片头从预定槽位同步完成拾取动作,其需要根据实际情况调整吸嘴类型以满足拾取要求,过多的吸嘴更换则需要悬臂频繁往返于ANC,增加了移动路径的长度。
|
||||
为了减少悬臂在电路板和供料器基座之间的移动路径,贴片头任务分配需要保证各拾贴周期尽可能多地拾取元件,其将会间接导致拾取移动路径增加,同时可能减少同步拾取的贴片头数、增加吸嘴更换,进而降低拾取过程的效率。
|
||||
|
||||
|
||||
|
||||
表面组装过程优化算法不仅要实现对不同元件类型及贴装点数的PCB数据的组装任务优化,同时要考虑实际生产过程中的约束条件。相关约束可被分为四类:
|
||||
|
||||
1)\emph{工作完整性约束}:指所有元件必须准确地装配在相应的PCB焊盘上,是表面组装任务的基本要求;
|
||||
|
||||
2)\emph{机械结构约束}:指贴片机组成构件之间的相互作用和限制关系,如各贴片头均有无法到达供料器槽位,供料器宽度不同导致的安插槽位位置干涉等;
|
||||
|
||||
3)\emph{可用工具约束}:指吸嘴、供料器的数量和一致性约束,数量约束为相关可用工具数量的有限性,一致性约束为吸嘴类型需要和元件类型匹配,以保证拾取过程的顺利进行。不合适的元件-吸嘴类型组合将导致抓取失败、废料率高等问题,会进一步降低组装效率;
|
||||
|
||||
4)\emph{外部约束}:指现场操作人员根据实际情况额外增加的限制,如调整部分供料器安装的槽位、禁用贴片头或槽位、更改供料器可用数目、指定贴片头所用吸嘴类型等,此类约束通常是根据机器状况所进行的适当调整,是保证组装过程顺利进行的必要条件。
|
||||
|
||||
|
||||
表面组装生产线是对贴片机优化问题的进一步研究,其通过优化组装时间最长的贴片机实现整条生产线性能的提升。组装线的负载分配是指不同类型元件及其贴装点组装任务的调度。
|
||||
对表面组装全过程进行建模在实现上具有较高的复杂度,前述已讨论了影响贴片机组装效率的主要因素,而通过拾贴周期数、吸嘴更换数和元件拾贴次数近似化贴片机的生产效率具有较高的准确度,可以实现组装线上贴片机负载平衡。
|
||||
影响组装线调度的两种主要限制是工具限制和机器限制,工具限制指的是供料器、吸嘴等可用组装工具数量的有限性,而机器限制指的是不同类型的专用贴片机在生产线上协同工作时,必须由特定贴片机组装指定类型的元件。此外,在表面组装过程中,小尺寸或高度较低的元件通常被优先贴装,以保证后续组装过程中不会出现元件相撞的问题。
|
||||
|
||||
结合实际应用条件,适当简化问题有助于降低问题求解的难度,同时保证了模型解的可行性。本文对表面组装过程优化问题做出如下假设:
|
||||
|
||||
1) X 轴和 Y 轴电机的运动控制相互独立,悬臂移动用时仅和两个方向上的Chebyshev移动距离相关。
|
||||
|
||||
2) 相邻贴片头之间与相邻供料器槽位之间的间隔距离比为整数。
|
||||
|
||||
3) 只有特定类型的吸嘴才能拾取对应类型的元件,元件类型和吸嘴类型的匹配性是已知的。
|
||||
|
||||
4) ANC的配置是预先确定的,即各类型吸嘴的可用数量是已知的;更换吸嘴过程中,悬臂在不同吸嘴孔间的运动时间被忽略不计。
|
||||
|
||||
5) 所有待贴装元件均由带式供料器供给,其他类型供料器的拾取位置不在本文研究之列。
|
||||
|
||||
基于此,本文研究了表面组装过程分阶段的(混合)整数规划模型,模型可按贴片机和组装生产线分别进行建模。其中,贴片机模型可被进一步拆分为贴片头任务分配模型和贴装过程路径规划模型,前者以组装过程的关键效率指标为优化目标,旨在解决组装过程中贴片头拾取的槽位、组装的元件类型和装配的吸嘴类型,后者则基于已有的贴片头任务,对元件贴装过程路径进行规划。进一步地,生产线负载平衡优化是基于关键指标拟合的组装效率而构建的最小-最大组装线贴片机组装用时的模型。
|
||||
|
||||
\subsection{贴片头的任务分配模型}[Task assignment model for assembly-heads]\label{ch2:subsection:head-model}
|
||||
|
||||
贴片头任务分配模型仅考虑单台贴片机的分配结果,即贴片机索引集$ M = \left\{ 1 \right\}$,其优化目标\eqref{pick_model_obj}为最小化拾取过程相关的主要性能指标的加权和,包括拾贴周期数、吸嘴更换数、拾取次数和拾取移动距离四项,其中的拾取移动距离由贴片头拾取元件过程经过的槽位数表示。
|
||||
\begin{equation}
|
||||
\min T^{\rm{CY}} \cdot \sum_{k \in K}{g}_{k1} + T^{\rm{NZ}} \cdot \sum_{k \in K} \sum_{h \in H} n_{kh1} + T^{\rm{PU}} \cdot \sum_{s \in S} \sum_{k \in K} e_{sk1}+ T^{\rm{PM}} \cdot \sum_{k \in K} d_{k1}
|
||||
\label{pick_model_obj}
|
||||
\end{equation}
|
||||
|
||||
% 约束\eqref{cycle_constr}和约束\eqref{component_cycle_constr}确定了拾取周期数。其中,约束\eqref{cycle_constr}表示贴片机按照拾贴周期索引递增的顺序完成元件的拾贴作业,用以加快模型的求解速度;而、
|
||||
约束\eqref{cycle_constr}用于确保贴片头的元件分配结果和拾贴周期规划结果的一致性,由于$g_{km}$是0-1变量,其同时限制了贴片头在各拾贴周期至多被分配一类元件。
|
||||
% constraint
|
||||
% \begin{equation}
|
||||
% g_{km} \geq g_{\left(k + 1\right)m} \quad \forall k \in K \backslash \left\{ \left| K \right| \right\}, m \in M
|
||||
% \label{cycle_constr}
|
||||
% \end{equation}
|
||||
\begin{equation}
|
||||
\sum_{i \in I} x_{ikhm} \leq g_{km} \quad \forall k \in K, h \in H, m \in M
|
||||
\label{cycle_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{nozzle_assign_constr}用于确定贴片头分配的吸嘴类型。
|
||||
贴片头上的吸嘴装配与其拾取元件之间不存在必然的关联性,即贴片头装配吸嘴是拾取元件的前提,但并不决定拾取元件动作的执行与否。
|
||||
约束\eqref{nozzle_change_constr1}用于计算贴片头$h$在拾贴周期$k$和$k + 1$之间是否发生吸嘴更换,约束\eqref{nozzle_change_constr2}则用于计算当前电路板的最后一个拾贴周期到下一个电路板首个拾贴周期之间是否发生吸嘴更换,以提升连续拾贴作业的组装效率。
|
||||
% nozzle change constraint
|
||||
\begin{equation}
|
||||
x_{ikhm} \leq \sum_{j \in J} \mu_{ij} \cdot z_{jkhm} \quad \forall i \in I, k \in K, h \in H, m \in M
|
||||
\label{nozzle_assign_constr}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
n_{khm} = \sum_{j \in J} \left( \left| z_{jkhm} - z_{j\left( k + 1 \right)hm} \right| \right) \quad \forall k \in K \backslash \left\{ \left| K \right| \right\}, h \in H, m \in M
|
||||
\label{nozzle_change_constr1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
n_{\left| K \right| hm} = \sum_{j \in J} \left( \left| z_{j\left| K \right|hm} - z_{j1hm} \right| \right) \quad \forall h \in H, m \in M
|
||||
\label{nozzle_change_constr2}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{nozzle_change_constr1}可以被线性化为\eqref{linear_nzchange_constr}\cite{ashayeri_aggregated_2011},通过引入两个非负整数项$n^{+}_{jkhm}$和$n^{-}_{jkhm}$,有
|
||||
\begin{equation}
|
||||
\left\{
|
||||
\begin{array}{lr}
|
||||
n_{khm} = \frac{1}{2} \sum_{j^{\prime} \in J} \left( n^{+}_{j^{\prime}khm} + n^{-}_{j^{\prime}khm} \right), & \\
|
||||
z_{jkhm} - z_{j\left( k + 1\right)hm} = n^{+}_{jkhm} - n^{-}_{jkhm}, & \quad \forall j \in J, k \in K \backslash \left\{ \left| K \right| \right\}, h \in H, m \in M\\
|
||||
n^{+}_{jkhm} \in \mathbb{N}_0, n^{-}_{jkhm} \in \mathbb{N}_0 &
|
||||
\end{array}
|
||||
\label{linear_nzchange_constr}
|
||||
\right.
|
||||
\end{equation}
|
||||
其中$\mathbb{N}_0$为非负整数集,同理,约束\eqref{nozzle_change_constr2}可以被进一步线性化处理。
|
||||
|
||||
并列式贴片机的拾取过程如图\ref{ch2:figure:pickup-operation}所示,为计算同步拾取次数,本章将各贴片头拾取元件的槽位转换为最左侧的贴片头所对齐的槽位,并称之为等效槽位。
|
||||
约束\eqref{equ_slot_constr}用以计算各个拾贴周期中槽位$s$是否为等效槽位,拾贴周期$k$内的等效槽位数即为该周期的元件(同步)拾取次数。
|
||||
\begin{equation}
|
||||
e_{skm} \leq \sum_{h \in H_{s}} y_{\left[s + \left(h - 1\right) \cdot \tau \right]khm} \leq N \cdot e_{skm} \quad \forall s \in S, k \in K, m \in M
|
||||
\label{equ_slot_constr}
|
||||
\end{equation}
|
||||
其中,贴片头集合$H_{s}$是$H$的子集,表示能从槽位$s$中拾取元件的贴片头索引集合,其计算方式为
|
||||
\begin{equation*}
|
||||
H_{s} = \left\{ \max(1, \left| H \right| - \lfloor \frac{\left| S \right| - s}{\tau} \rfloor), \cdots, \min \left( \left| H \right|, \lceil \frac{s}{ \tau } \rceil \right) \right\}
|
||||
\end{equation*}
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.68]{chapter2/pickup-diagram.eps}
|
||||
\bicaption[ch2:figure:pickup-operation]{}{拾取过程示意图}{Fig.$\!$}{Schematic diagram of the pick-up process}
|
||||
\end{figure}
|
||||
|
||||
约束\eqref{pickup_moving_constr}根据各拾贴周期中等效槽位的位置,计算贴片头拾取过程中悬臂移动经过的槽位数。
|
||||
\begin{equation}
|
||||
d_{km} \geq s \cdot e_{skm} - s^\prime \cdot e_{s^\prime km} + N \cdot \left( e_{skm} + e_{s^\prime km} - 2 \right) \quad \forall k \in K, s \in S, s^\prime \in S, m \in M
|
||||
\label{pickup_moving_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{feeder_assign_constr}用以确定贴片头拾取的槽位、分配的元件类型以及元件供料器所分配的槽位之间结果的一致性。
|
||||
\begin{equation}
|
||||
f_{ism} \leq \sum_{k \in K} \sum_{h \in H} x_{ikhm} \cdot y_{skhm} \leq N \cdot f_{ism} \quad \forall i \in I, s \in S, m \in M
|
||||
\label{feeder_assign_constr}
|
||||
\end{equation}
|
||||
其中的非线性项为两个0-1变量的乘积,可以用0-1中间变量$\gamma_{iskhm} = x_{ikhm} \cdot y_{skhm}$线性化处理,即
|
||||
\begin{equation}
|
||||
\left\{
|
||||
\begin{array}{lr}
|
||||
\gamma_{iskhm} \leq x_{ikhm}, & \\
|
||||
\gamma_{iskhm} \leq y_{skhm}, & \forall i \in I, s \in S, k \in K, h \in H, m \in M\\
|
||||
\gamma_{iskhm} \geq x_{ikhm} + y_{skhm} - 1, & \\
|
||||
\end{array}
|
||||
\label{linear_feederassign_constr}
|
||||
\right.
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{work_complete_constr}为工作完整性约束,即各类型元件的所有贴装点均被分配到给定拾贴周期的贴片头上。
|
||||
\begin{equation}
|
||||
\sum_{k \in K} \sum_{h \in H} \sum_{m \in M} x_{ikhm} = \psi_{i} \quad \forall i \in I
|
||||
\label{work_complete_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{mechanism_constr1}--\eqref{mechanism_constr2}分别为机械结构中的贴片头左限位和右限位约束,即各贴片头存在物理上无法到达的取料槽位。
|
||||
\begin{equation}
|
||||
\sum_{s \in S} \left[ s - \left( h - 1\right) \cdot \tau \right] \cdot y_{skhm} \geq \sum_{s \in S} y_{skhm} \quad \forall k \in K, h \in H, m \in M
|
||||
\label{mechanism_constr1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum_{s \in S} \left[ s + \left( \left| H \right| - h \right) \cdot \tau \right] \cdot y_{skhm} \leq \left| S \right| \quad \forall k \in K, h \in H, m \in M
|
||||
\label{mechanism_constr2}
|
||||
\end{equation}
|
||||
|
||||
组装过程可用工具的有限性体现在约束\eqref{slot_capacity_constr}--\eqref{feeder_available_constr}。约束\eqref{slot_capacity_constr}确保各供料器槽位至多分配一类元件,
|
||||
约束\eqref{nozzle_available_constr}和约束\eqref{feeder_available_constr}则分别表示有限的可用吸嘴和可用供料器。
|
||||
\begin{equation}
|
||||
\sum_{i \in I} f_{ism} \leq 1 \quad \forall s \in S, m \in M
|
||||
\label{slot_capacity_constr}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum_{h \in H} z_{jkhm} \leq \zeta_{j} \quad \forall j \in J, k \in K, m \in M
|
||||
\label{nozzle_available_constr}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum_{s \in S} f_{ism} \leq \phi_{i} \quad \forall i \in I, m \in M
|
||||
\label{feeder_available_constr}
|
||||
\end{equation}
|
||||
|
||||
贴片头分配的元件类型决定了其拾取的供料器槽位,约束\eqref{relation_constr} 确定了拾取槽位与元件分配结果之间的关系。
|
||||
\begin{equation}
|
||||
\sum_{s \in S} y_{skhm} = \sum_{i \in I} x_{ikhm} \quad \forall k \in K, h \in H, m \in M
|
||||
\label{relation_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{pick_model_var_range1}--\eqref{pick_model_var_range4}确定了决策变量的取值范围。
|
||||
\begin{equation}
|
||||
g_{km} \in \left\{ 0, 1 \right\}, \; d_{km} \in \mathbb{N}_0, \; n_{khm} \in \left\{ 0, 1 \right\} \quad \forall k \in K, h \in H, m \in M
|
||||
\label{pick_model_var_range1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
e_{skm} \in \left\{ 0, 1 \right\}, \; f_{ism} \in \left\{ 0, 1 \right\} \quad \forall k \in K, s \in S, i \in I, m \in M
|
||||
\label{pick_model_var_range2}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\gamma_{iskhm} \in \left\{ 0, 1 \right\}, \; x_{ikhm} \in \left\{ 0, 1 \right\} \quad \forall i \in I, s \in S, k \in K, h \in H, m \in M
|
||||
\label{pick_model_var_range3}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
y_{skhm} \in \left\{ 0, 1 \right\}, z_{jkhm} \in \left\{ 0, 1 \right\} \quad \forall s \in S, j \in J, k \in K, h \in H, m \in M
|
||||
\label{pick_model_var_range4}
|
||||
\end{equation}
|
||||
|
||||
优化目标\eqref{pick_model_obj}和约束条件\eqref{cycle_constr}--\eqref{nozzle_change_constr2}, \eqref{equ_slot_constr}--\eqref{feeder_assign_constr},\eqref{work_complete_constr}--\eqref{pick_model_var_range4}共同构成了贴片头的任务分配模型。
|
||||
|
||||
|
||||
\subsection{贴装过程的路径规划模型}[Path planning model for placement process]
|
||||
|
||||
贴装过程路径规划问题可以被视为受贴片头任务分配结果约束的路径规划问题,模型中的参数根据\ref{ch2:subsection:head-model}节中贴片头分配的元件类型和拾取的供料器槽位计算得到,并沿用了任务规划模型的索引、集合、参数和决策变量等符号。
|
||||
为降低模型的规模,本小节将贴装过程中连续作业的贴片头构成的有序对称为移动弧,移动弧对应贴装过程中的一段移动路径。以$a=\left(h, h^\prime\right) \in A$为例,$w_{pp^\prime ka} = 1$表示悬臂上的贴片头$h$完成点$p$的贴装后,用贴片头$h^\prime$完成点$p^\prime$的贴装,其中,$h$被称为先序作业头,$h^\prime$被称为后序作业头。 $A_{h}$, $A_{h}^{\rm {FRM}}$和$A_{h}^{\rm {TO}}$是$A$的子集,$A_{h}$表示有序对中有贴片头$h$的弧集,$A_{h}^{\rm {FRM}}$表示贴片头$h$作为先序作业头的弧集合,$A_{h}^{\rm {TO}}$表示贴片头$h$作为后序作业头的弧集合。图\ref{ch2:figure:arc}展示了移动弧$a=\left(2,3\right)$的贴装过程,其中先序贴片头为头2,后序贴片头为头3,弧$a$同时是集合$A_2$、$A_3$、$A^{\rm FRM}_2$和$A^{\rm TO}_3$中的元素。
|
||||
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.8]{chapter2/arc-diagram.eps}
|
||||
\bicaption[ch2:figure:arc]{}{移动弧的演示图}{Fig.$\!$}{Demonstration of a moving arc}
|
||||
\end{figure}
|
||||
|
||||
表面组装过程中悬臂的移动路径长度也是影响组装效率的性能指标之一,贴片头任务分配模型已解决拾取过程移动路径,而悬臂从供料器基座到电路板间往返路径和悬臂在电路板上贴装过程中的移动路径则由贴装过程路径规划模型确定。同样地,贴片机索引$M = \left\{ 1 \right\}$,贴装过程的路径规划目标函数为\eqref{place_model_obj}。
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\min \sum_{k \in K} \Big\{ \sum_{p \in P} \sum_{h \in H} D^{\rm{FW}}_{pkhm} \cdot u_{pkhm} + \sum_{p \in P} \sum_{p^\prime \in P} \sum_{a \in A} D^{\rm{PL}}_{pp^\prime a} \cdot w_{pp^\prime kam} \\
|
||||
+ \sum_{p \in P} \sum_{h \in H} D^{\rm{BW}}_{pkhm} \cdot v_{pkhm} \Big\}
|
||||
\label{place_model_obj}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
优化目标\eqref{place_model_obj}表示贴片头的移动路径长度,共由三部分组成:从供料器基座前往电路板的移动路径长度,在电路板上进行贴装作业的移动路径长度以及从电路板返回供料器基座的移动路径长度,其中拾贴周期$k$中贴片头拾取元件的首个槽位$F^{\rm{BW}}_{km}$和最后一个槽位$F^{\rm{FW}}_{km}$是由贴片头的任务分配结果确定的,即
|
||||
\begin{equation}
|
||||
F^{\rm{BW}}_{km} = \max_{h \in H} \left\{s \cdot y_{skhm} - \left( h - 1 \right) \cdot \tau \mid y_{skhm} > 0, s \in S \right\} \quad \forall k \in K, m \in M
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
F^{\rm{FW}}_{km} = \min_{h \in H} \left\{s \cdot y_{skhm} - \left( h - 1 \right) \cdot \tau \mid y_{skhm} > 0, s \in S \right\} \quad \forall k \in K, m \in M
|
||||
\end{equation}
|
||||
据此可确定贴片头拾取完最后一个元件前往电路板上的贴装点$p$的移动路径长度,以及贴装完电路板上的贴装点$p$返回下个拾贴周期首个取料位置的路径长度,即
|
||||
\begin{equation}
|
||||
\left\{
|
||||
\begin{aligned}
|
||||
D^{\rm{BW}}_{pkhm} = \max\left\{ \left| X^{\rm{F1}} + F^{\rm{BW}}_{km} \cdot \frac{\rho}{\tau} - X_{p} + \left(h - 1\right) \cdot \rho \right|, \right. \\
|
||||
\left. \left| Y^{\rm{F1}} - Y_{p} \right| \right\} \\
|
||||
D^{\rm{FW}}_{pkhm} = \max\left\{ \left| X^{\rm{F1}} + F^{\rm{FW}}_{km} \cdot \frac{\rho}{\tau} - X_{p} + \left(h - 1\right) \cdot \rho \right|, \right. \\
|
||||
\left. \left| Y^{\rm{F1}} - Y_{p} \right| \right\}
|
||||
\end{aligned}
|
||||
\right.
|
||||
\begin{aligned}
|
||||
\quad \forall p \in P, k \in K, \\
|
||||
h \in H, m \in M
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
贴片头在电路板上进行贴装元件的移动路径长度可以根据其作业的先后顺序及对应的贴装点坐标确定,即
|
||||
\begin{equation}
|
||||
D^{\rm{PL}}_{pp^\prime a} = \max_{a = \left( h, h^\prime \right)}\left\{ \left| X_{p} - X_{p^\prime} - \left(h - h^\prime\right) \cdot \rho \right|, \left| Y_{p} - Y_{p^\prime} \right| \right\} \quad \forall a \in A, p \in P, p^\prime \in P
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{pick_model_constr}为贴片头任务分配一致性约束,即贴装过程中贴片头贴装的点对应的元件类型和贴片头任务分配的元件类型相同。
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\sum_{p^\prime \in P} \left( \sum_{a \in A^{\rm FRM}_h} w_{pp^\prime kam} + \sum_{a \in A^{\rm TO}_{h}} w_{p^\prime p kam} \right) + u_{pkhm} + v_{pkhm} \leq 2 \cdot \sum_{i \in I} \eta_{ip} \cdot x_{ikhm} \\
|
||||
\quad \forall p \in P, k \in K, h \in H, m \in M
|
||||
\label{pick_model_constr}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{head_point_constr}为拾取过程移动路径的确定性约束,即各贴片头在从供料基座前往电路板、在电路板上贴装以及从电路板返回供料基座的过程中,至多经过一个贴装点,对应在贴装点上为点的出度和入度之和不大于2。
|
||||
\begin{equation}
|
||||
\sum_{p \in P} \sum_{p^\prime \in P} \sum_{a \in A_{h}} w_{pp^\prime kam} + \sum_{p \in P} \left( u_{pkhm} + v_{pkhm} \right) \leq 2 \quad \forall k \in K, h \in H, m \in M
|
||||
\label{head_point_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{task_continuity_constr1}--\eqref{task_continuity_constr3}为贴装任务的连续性约束,即对于同一个贴装点,表示贴装先后顺序的弧对应的贴片头是一致的,以保证贴装过程移动路径的连续性。
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\sum_{p^\prime \in P} \sum_{a \in A^{\rm {TO}}_{h}} w_{p^\prime pkam} + u_{pkhm} = \sum_{p^\prime \in P} \sum_{a \in A^{\rm {FRM}}_{h}} w_{pp^\prime kam} + v_{pkhm} \\ \quad \forall k \in K, h \in H, p \in P, m \in M
|
||||
\label{task_continuity_constr1}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
u_{pkhm} \leq \sum_{p^\prime \in P} \sum_{a \in A^{\rm {FRM}}_{h}} w_{pp^\prime kam} + v_{phkm} \quad \forall k \in K, h \in H, p \in P, m \in M
|
||||
\label{task_continuity_constr2}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
v_{pkhm} \leq \sum_{p^\prime \in P} \sum_{a \in A^{\rm {TO}}_{h}} w_{p^\prime pkam} + u_{pkhm} \quad \forall k \in K, h \in H, p \in P, m \in M
|
||||
\label{task_continuity_constr3}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{start_edge_constr}和\eqref{end_edge_constr}表示悬臂从供料器基座到电路板,以及从电路板回到供料器基座的移动路径在各个拾贴周期都是唯一的,其中的唯一性包括贴片头和贴装点的唯一性。
|
||||
\begin{equation}
|
||||
\sum_{p \in P} \sum_{h \in H} u_{pkhm} = 1 \quad \forall k \in K, m \in M
|
||||
\label{start_edge_constr}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum_{p \in P} \sum_{h \in H} v_{pkhm} = 1 \quad \forall k \in K, m \in M
|
||||
\label{end_edge_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{enter_edge_constr}和\eqref{leave_edge_constr}分别表示贴片头前往和离开各个贴装点的移动路径是唯一的。
|
||||
\begin{equation}
|
||||
\sum_{k \in K} \left( \sum_{h \in H} u_{pkhm} + \sum_{p^\prime \in P} \sum_{a \in A} w_{pp^\prime kam} \right) = 1 \quad \forall p \in P, m \in M
|
||||
\label{enter_edge_constr}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum_{k \in K} \left( \sum_{h \in H} v_{pkhm} + \sum_{p^\prime \in P} \sum_{a \in A} w_{p^\prime pkam} \right)= 1 \quad \forall p \in P, m \in M
|
||||
\label{leave_edge_constr}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{subtour_constr1}--\eqref{subtour_constr4}基于Dantzig-Fulkerson-Johnson的形式,通过引入非负连续变量 $\hat{w}_{pp^\prime m}$,$\hat{u}_{pm}$和$\hat{v}_{pm}$ 消除各拾贴周期的闭合子回路。
|
||||
\begin{equation}
|
||||
\hat{v}_{pm} + \sum_{p^\prime \in P} \hat{w}_{pp^\prime m} - \hat{u}_{pm} - \sum_{p^\prime \in P} \hat{w}_{p^\prime pm} = 1 \quad \forall p \in P, m \in M
|
||||
\label{subtour_constr1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\hat{w}_{pp^\prime m} \leq \sum_{k \in K} \sum_{a \in A} \left(\left| P \right| - \left| K \right| + 1\right) \cdot w_{pp^\prime kam} \quad \forall p \in P, p^\prime \in P, m \in M
|
||||
\label{subtour_constr2}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\hat{u}_{pm} \leq \sum_{k \in K} \sum_{h \in H} \left(\left| P \right| - \left| K \right| + 1 \right) \cdot u_{pkhm} \quad \forall p \in P, m \in M
|
||||
\label{subtour_constr3}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\hat{v}_{pm} \leq \sum_{k \in K} \sum_{h \in H} \left(\left| P \right| - \left| K \right| + 1 \right) \cdot v_{pkhm} \quad \forall p \in P, m \in M
|
||||
\label{subtour_constr4}
|
||||
\end{equation}
|
||||
|
||||
约束\eqref{place_model_var_range1}--\eqref{place_model_var_range3}确定了决策变量的取值范围。
|
||||
\begin{equation}
|
||||
w_{pp^\prime kam} \in \left\{ 0, 1 \right\} \quad p \in P, p^\prime \in P, k \in K, a \in A, m \in M
|
||||
\label{place_model_var_range1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
u_{pkhm} \in \left\{ 0, 1 \right\}, \; v_{pkhm} \in \left\{ 0, 1 \right\}\quad p \in P, k \in K, h \in A, m \in M
|
||||
\label{place_model_var_range2}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\hat{w}_{pp^\prime m} \geq 0, \; \hat{u}_{pm} \geq 0, \; \hat{v}_{pm} \geq 0 \quad p \in P, p^\prime \in P, m \in M
|
||||
\label{place_model_var_range3}
|
||||
\end{equation}
|
||||
|
||||
优化目标\eqref{place_model_obj}和约束条件\eqref{pick_model_constr}--\eqref{place_model_var_range3}构成了贴装过程的路径规划模型。
|
||||
|
||||
\subsection{生产线的负载平衡模型}[Workload balancing model for assembly line]
|
||||
|
||||
组装生产线的负载平衡模型是对多台贴片机组装任务分配的优化,其中,组装时间最长的贴片机是生产效率提升的瓶颈。
|
||||
对整个生产线的完整建模将导致模型复杂度过高进而不可解。
|
||||
本小节以贴片头任务分配模型为基础,进一步提出了生产线负载平衡模型,
|
||||
该模型以加权关键子目标评估单台贴片机的组装时间,贴片机的索引集合$M$扩展至整个生产线中,贴片机索引$m$按组装的先后顺序递增编号,式\eqref{line_model_obj}为模型的优化目标,表示最小化组装用时最长的贴片机。
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\min \max_{m \in M} \left( T^{\rm{PL}} \cdot \sum_{i \in I} \sum_{k \in K} \sum_{h \in H} x_{ikhm} + T^{\rm{CY}} \cdot \sum_{k \in K} g_{km} + T^{\rm{NZ}} \cdot\sum_{k \in K} \sum_{h \in H} n_{khm} \right. \\
|
||||
\left. + T^{\rm{PU}} \cdot \sum_{s \in S} \sum_{k \in K} e_{skm} + T^{\rm{PM}} \cdot \sum_{k \in K} d_{km} \right)
|
||||
\label{line_model_obj}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
优化目标相关约束\eqref{line_model_obj}在贴片头任务分配目标\eqref{pick_model_obj}的基础上增加了分配的贴装点数项,即$x_{ikhm}$。相关约束中,
|
||||
% 工作完整性约束\eqref{work_complete_constr}扩展为生产线的工作完整性约束\eqref{line_completion_constr},
|
||||
可用工具约束\eqref{nozzle_available_constr}--\eqref{feeder_available_constr}则被扩展为生产线的可用工具限制,其中,可用供料器和可用吸嘴被分别调整为约束\eqref{line_feeder_limit_constr}和约束\eqref{line_nozzle_limit_constr}。
|
||||
% \begin{equation}
|
||||
% \sum_{k \in K} \sum_{h \in H}\sum_{m \in M} x_{ikhm} = \psi_{i} \quad \forall i \in I
|
||||
% \label{line_completion_constr}
|
||||
% \end{equation}
|
||||
\begin{equation}
|
||||
\sum_{s \in S} \sum_{m \in M} f_{ism} \leq \phi_{i} \quad \forall i \in I
|
||||
\label{line_feeder_limit_constr}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum_{m\in M} \max_{k \in K} \sum_{h \in H} z_{jkhm} \leq \zeta_j \quad \forall j \in j
|
||||
\label{line_nozzle_limit_constr}
|
||||
\end{equation}
|
||||
|
||||
在生产线相关的约束中,约束\eqref{line_assign_constr}用于确保贴片头的元件分配结果和生产线负载均衡结果的一致性。
|
||||
\begin{equation}
|
||||
r_{im} \leq \sum_{k \in K} \sum_{h \in H} x_{ikhm} \leq N \cdot r_{im} \quad \forall i \in I, m \in M
|
||||
\label{line_assign_constr}
|
||||
\end{equation}
|
||||
|
||||
表面组装生产线中新增的约束关系包括元件可分配贴片机约束和元件拾贴优先级约束。其中,约束\eqref{line_comp_constr}用于约束不同贴片机可组装的元件类型。
|
||||
\begin{equation}
|
||||
r_{im} \leq \xi_{im} \quad \forall i \in I, m \in M
|
||||
\label{line_comp_constr}
|
||||
\end{equation}
|
||||
|
||||
在元件组装优先级约束中,具有拾贴优先级约束的元件分别被记为先序元件和后序元件,后序元件在开始拾贴作业前,需要确保所有先序元件的拾贴作业已完成,约束\eqref{line_priority_constr}用于约束不同贴片机之间的元件拾贴先后顺序。
|
||||
\begin{equation}
|
||||
m - N \cdot \left( 1 - r_{im} \right) \leq m^\prime + N \cdot (1 - r_{i^\prime m^\prime}) \quad \forall q = \left(i, i^\prime \right) \in Q, m^\prime \in M, m \in M
|
||||
\label{line_priority_constr}
|
||||
\end{equation}
|
||||
|
||||
在同一台贴片机进行元件拾取贴装时,同样存在优先级的约束,约束\eqref{machine_priority_constr}用以表明拾贴周期之间的优先级约束,即先序元件组装完成的拾贴周期需不晚于后序元件的组装开始的拾贴周期。
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\max_{k \in K, h \in H} k \cdot x_{ikhm} + N \cdot \left( r_{im} + r_{i^\prime m} - 2 \right) \leq \min_{k \in K, h \in H} \left\{ k \cdot x_{i^\prime khm} + \right. \\
|
||||
\left. N \cdot \left( 1 - x_{i^\prime khm}\right) \right\} \quad \forall q = \left(i, i^\prime \right) \in Q, m \in M
|
||||
\end{aligned}
|
||||
\label{machine_priority_constr}
|
||||
\end{equation}
|
||||
|
||||
与生产线负载平衡相关的决策变量取值范围为约束\eqref{line_var_constr}。
|
||||
\begin{equation}
|
||||
r_{im} \in \left\{ 0, 1 \right\} \quad \forall i \in I, m \in M
|
||||
\label{line_var_constr}
|
||||
\end{equation}
|
||||
|
||||
优化目标\eqref{line_model_obj}和约束条件\eqref{cycle_constr}--\eqref{nozzle_change_constr2}, \eqref{equ_slot_constr}--\eqref{feeder_assign_constr},\eqref{mechanism_constr1}--\eqref{mechanism_constr2},\eqref{relation_constr}--\eqref{pick_model_var_range4},\eqref{line_feeder_limit_constr}--\eqref{line_var_constr}构成了表面组装生产线的负载平衡模型。
|
||||
|
||||
|
||||
\section{模型的验证与分析}[Validation and analyses of the model]
|
||||
|
||||
\subsection{实例演示}[Example demonstration]\label{ch2:sub-section:example}
|
||||
|
||||
为说明本章提出模型的可行性,本节以一个实际电路板为例对提出的各个模型进行求解。电路板实例如图\ref{ch2:figure:pcb}所示,其中的贴片式元件由贴片机进行组装。示例电路板长度为150mm,宽度为30mm,共由3种吸嘴、8种元件和28个贴装点构成。取原点为电路板的左下角,坐标系为第一象限直角坐标系,表\ref{ch2:table:pcb}列出了电路板上的贴装点坐标和元件类型参数,元件$i$记为CP$_i$,吸嘴类型$j$记为NZ$_j$。本节以装配有6个贴片头、贴片头间隔为供料器槽位间隔2倍的并列式贴片机为例,分析贴片头的任务分配模型和贴装过程的路径规划模型;同时以三台贴片头数为6的并列式贴片机组成的表面组装生产线为例,进一步分析生产线负载平衡模型。
|
||||
由于数据的元件种类和贴装点数较少,本节假定可用供料器槽位数为25,同表面组装过程优化相关的子目标的模型系数根据实际组装用时线性拟合的得到,有$T^{\rm{CY}} = 0.326$,$T^{\rm{NZ}}=0.870$,$T^{\rm{PU}}=0.159$,$T^{\rm{PL}}=0.041$,$T^{\rm{PM}}=0.030$。
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:pcb]{}{用于验证模型的PCB数据参数}{Table $\!$}{PCB data parameters for model validation}
|
||||
|
||||
\begin{threeparttable}
|
||||
\begin{tabular}{p{0.7cm}<{\centering}p{1.9cm}<{\centering}p{1.2cm}<{\centering}p{0.7cm}<{\centering}p{1.85cm}<{\centering}p{1.2cm}<{\centering}p{0.7cm}<{\centering}p{1.6cm}<{\centering}p{1.2cm}<{\centering}}
|
||||
\toprule
|
||||
点$p$ & \hspace{8pt}
|
||||
\makecell[c]{$\left(X_p, Y_p\right)$\\ (mm)} & 元件$i$\tnote{1} & 点$p$ & \hspace{8pt} \makecell[c]{$\left(X_p, Y_p\right)$\\ (mm)} & 元件$i$ &点$p$ & \hspace{4pt} \makecell[c]{$\left(X_p, Y_p\right)$\\ (mm)} & 元件$i$ \\
|
||||
\midrule
|
||||
1 & $\left(43.7, \textcolor{white}{0} 9.2\right) $ & \hspace{6pt} CP$_1$ &
|
||||
11 & $\left(68.2, 27.0\right) $ & \hspace{6pt} CP$_2$ &
|
||||
21 & $\left(125.3, 13.0\right) $ & \hspace{6pt} CP$_4$ \\
|
||||
|
||||
2 & $\left(49.2, \textcolor{white}{0}9.2\right) $ & \hspace{6pt} CP$_1$ &
|
||||
12 & $\left(44.0, 43.5\right) $ & \hspace{6pt} CP$_2$ &
|
||||
22 & $\left(105.8, 40.1\right) $ & \hspace{6pt} CP$_4$ \\
|
||||
|
||||
3 & $\left(54.2, \textcolor{white}{0}4.5\right) $ & \hspace{6pt} CP$_1$ &
|
||||
13 & $\left(65.0, 35.2\right) $ & \hspace{6pt} CP$_2$ &
|
||||
23 & $\left(111.8, 40.1\right) $ & \hspace{6pt} CP$_5$ \\
|
||||
|
||||
4 & $\left(61.0, \textcolor{white}{0}4.5\right) $ & \hspace{6pt} CP$_1$ &
|
||||
14 & $\left(65.0,43.5\right) $ & \hspace{6pt} CP$_2$ &
|
||||
24 & $\left(122.8, 40.1\right) $ & \hspace{6pt} CP$_5$ \\
|
||||
|
||||
5 & $\left(34.8, 32.0\right) $ & \hspace{6pt} CP$_1$ &
|
||||
15 & $\left(93.8,\textcolor{white}{0}9.5\right) $ & \hspace{6pt} CP$_2$ &
|
||||
25 & $\left(125.0,21.7\right) $ & \hspace{6pt} CP$_6$ \\
|
||||
|
||||
6 & $\left(56.7, 24.5\right) $ & \hspace{6pt} CP$_1$ &
|
||||
16 & $\left(99.2,\textcolor{white}{0}9.5\right) $ & \hspace{6pt} CP$_2$ &
|
||||
26 & $\left(117.3,40.1\right) $ & \hspace{6pt} CP$_7$ \\
|
||||
|
||||
7 & $\left(43.0, 35.2\right) $ & \hspace{6pt} CP$_1$ &
|
||||
17 & $\left(97.6,21.8\right) $ & \hspace{6pt} CP$_3$ &
|
||||
27 & $\left(111.4,22.0\right) $ & \hspace{6pt} CP$_7$ \\
|
||||
|
||||
8 & $\left(53.7,35.2\right) $ & \hspace{6pt} CP$_1$ &
|
||||
18 & $\left(100.3,40.1\right) $ & \hspace{6pt} CP$_3$ &
|
||||
28 & $\left(111.0, 13.0\right) $ & \hspace{6pt} CP$_8$ \\
|
||||
|
||||
9 & $\left(68.2,19.2\right) $ & \hspace{6pt} CP$_1$ &
|
||||
19 & $\left(125.3,\textcolor{white}{0}4.2\right) $ & \hspace{6pt} CP$_3$ \\
|
||||
|
||||
10 & $\left(43.0, 43.5\right) $ & \hspace{6pt} CP$_1$ &
|
||||
20 & $\left(128.5,40.1\right) $ & \hspace{6pt} CP$_3$ \\
|
||||
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\begin{tablenotes}
|
||||
\footnotesize
|
||||
\item[1] 数据中共有3组不同的吸嘴类型NZ$_1$--NZ$_3$,其中,CP$_1$的吸嘴类型为NZ$_1$,CP$_2$--CP$_3$的吸嘴类型为NZ$_2$,CP$_4$--CP$_8$的吸嘴类型为NZ$_3$
|
||||
\end{tablenotes}
|
||||
\end{threeparttable}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[scale=0.9]{chapter2/PCB.eps}
|
||||
\bicaption[ch2:figure:pcb]{}{电路板示意图}{Fig.$\!$}{Schematic of printed circuit board}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{贴片头的任务分配实例}[Example of task assignment model for assembly heads]
|
||||
|
||||
表\ref{ch2:table:head_result}列出了贴片头在各拾贴周期分配的元件类型,元件分配类型决定了拾取槽位和装配的吸嘴类型,表\ref{ch2:table:feeder_result}给出了元件的供料器分配槽位。贴片头任务分配结果的拾贴周期数为5。以元件1为例,供料器分配结果为$f_{1, 19} = 1$,即元件1被分配到槽位19中。
|
||||
以拾贴周期1为例,贴片头1--6拾取的元件类型分别为元件5、元件2、元件3、元件1、元件1和元件7,对应的拾取槽位分别为11、15、17、19、19和23,即$y_{\boldsymbol{11},1,\boldsymbol{1},1}=1$,$y_{\boldsymbol{15},1,\boldsymbol{2},1}=1$,$y_{\boldsymbol{17},1,\boldsymbol{3},1}=1$,$y_{\boldsymbol{19},1,\boldsymbol{4},1}=1$,$y_{\boldsymbol{19},1,\boldsymbol{5},1}=1$和$y_{\boldsymbol{23},1,\boldsymbol{6},1}=1$。
|
||||
将拾贴周期1各贴片头拾取槽位转换为最左侧贴片头对齐的等效槽位,贴片头1、5的等效槽位$\hat{s}$均为11,贴片头2、3、4、6的等效槽位$\hat{s}$均为13,即$e_{\boldsymbol{11},1,1}=1$、$e_{\boldsymbol{13},1,1}=1$,该拾贴周期共计发生2次同步拾取,取料过程中等效槽位的跨度为2。
|
||||
依此类推,拾贴周期2、3、4、5的拾取次数分别为2、2、3、2,共计11次;对应的拾取移动槽位分别是2、2、4、2,共计12个槽位。
|
||||
吸嘴分配结果与元件分配结果一致,贴片头1和贴片头6装配有吸嘴NZ$_3$,贴片头2和头3装配有吸嘴NZ$_2$,贴片头4和头5装配有吸嘴NZ$_1$。拾贴周期3中贴片头1和拾贴周期5中贴片头6未拾贴元件,其装配吸嘴保持不变,整个组装过程的吸嘴更换次数为0。
|
||||
|
||||
\begin{table}
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:head_result]{}{贴片头任务分配模型的解}{Table $\!$}{Solution of head task assignment model}
|
||||
|
||||
\begin{tabular}{p{2cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}}
|
||||
\toprule
|
||||
周期 & H$_1$ & H$_2$ & H$_3$ & H$_4$ & H$_5$ & H$_6$ \\
|
||||
\midrule
|
||||
1 & CP$_5$ & CP$_2$ & CP$_3$ & CP$_1$ & CP$_1$ & CP$_7$ \\
|
||||
2 & CP$_5$ & CP$_2$ & CP$_3$ & CP$_1$ & CP$_1$ & CP$_7$ \\
|
||||
3 & & CP$_2$ & CP$_3$ & CP$_1$ & CP$_1$ & CP$_8$ \\
|
||||
4 & CP$_4$ & CP$_2$ & CP$_2$ & CP$_1$ & CP$_1$ & CP$_6$ \\
|
||||
5 & CP$_4$ & CP$_2$ & CP$_3$ & CP$_1$ & CP$_1$ & \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
\begin{table}
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:feeder_result]{}{贴片头任务分配模型中元件的供料器安装槽位}{Table $\!$}{Feeder slots for components of placement head task allocation model}
|
||||
|
||||
\begin{tabular}{p{2cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
元件 & CP$_1$ & CP$_2$ & CP$_3$ & CP$_4$ & CP$_5$ & CP$_6$ & CP$_7$ & CP$_8$ \\
|
||||
\midrule
|
||||
槽位 & 19 & 15 & 17 & 13 & 11 & 25 & 23 & 21 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
\subsubsection{贴装过程的路径规划实例}[Example of path planning model for placement process]
|
||||
贴装过程的路径规划讨论贴片机的悬臂移动过程。
|
||||
在表\ref{ch2:table:pcb}给出的电路板数据和表\ref{ch2:table:head_result}的贴片头任务分配结果的约束下,贴装过程路径规划模型的解如表\ref{ch2:table:route_result}所示。
|
||||
以拾贴周期1为例,悬臂上从供料器基座拾取本周期最后一个需要贴装的元件后,前往点24用贴片头1贴装元件,即$u_{\boldsymbol{24},1,\boldsymbol{1},1} = 1$;
|
||||
随后依次用贴片头3放置元件至点13,即$w_{24, \boldsymbol{13}, 1, \left(1, \boldsymbol{3} \right), 1} = 1$;
|
||||
用贴片头2贴装元件至点20,即$w_{13, \boldsymbol{20}, 1, \left(3, \boldsymbol{2}\right), 1} = 1$;
|
||||
用贴片头6贴装元件至点5,即$w_{20, \boldsymbol{5}, 1, \left(2, \boldsymbol{6}\right), 1} = 1$;
|
||||
用贴片头4贴装元件至点6,即$w_{5, \boldsymbol{6}, 1, \left(6, \boldsymbol{4}\right), 1} = 1$;
|
||||
用贴片头5贴装元件至点27,即$w_{6, \boldsymbol{27}, 1, \left(4, \boldsymbol{5}\right), 1} = 1$;
|
||||
最后,悬臂完成当前拾贴周期的贴装任务后,出发返回供料器基座拾取下一个周期的元件,即$v_{27, 1, 5}=1$。
|
||||
拾贴周期1的最后一次拾取动作由贴片头2和6在槽位17、25完成,对应的等效槽位为15;下一周期的首个拾取动作由贴片头1和6在槽位11、17完成,对应的等效槽位为11。
|
||||
各拾贴周期拾取的元件类型和贴装点的元件类型相同。
|
||||
图\ref{ch2:figure:route}以最左侧贴片头的位置为基准,展示了拾贴周期1的悬臂组装过程移动路径图。
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.9]{chapter2/assembly-route-cycle.eps}
|
||||
\bicaption[ch2:figure:route]{}{第一个拾贴周期的悬臂移动路径}{Fig.$\!$}{Movement path of the gantry in the 1st PAP cycle}
|
||||
\end{figure}
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:route_result]{}{贴装过程路径规划模型的解}{Table $\!$}{Solution of path planning model in placement process}
|
||||
|
||||
\begin{tabular}{p{1cm}<{\centering}p{1cm}<{\centering}p{9cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
周期 & 起始 & 贴装点访问顺序及贴片头作业顺序 & 返回 \\
|
||||
\midrule
|
||||
\multirow{2}{*}{1} & \multirow{2}{*}{$\hat{s} = 13$} & $p=24 \rightarrow
|
||||
p=13 \rightarrow
|
||||
p=20 \rightarrow
|
||||
p=5 \rightarrow
|
||||
p=6 \rightarrow
|
||||
p=27 $ & \multirow{2}{*}{$\hat{s} = 11$} \\
|
||||
& & $h=1 \, \rightarrow\,\,
|
||||
h=3 \, \rightarrow\,\,
|
||||
h=2 \, \rightarrow\,\,
|
||||
h=6 \, \rightarrow\,\,
|
||||
h=4 \, \rightarrow\,\,
|
||||
h=5 $ & \\
|
||||
\cmidrule(lr){1-4}
|
||||
|
||||
\multirow{2}{*}{2} & \multirow{2}{*}{$\hat{s} = 13$} & $p=23 \rightarrow
|
||||
p=14 \rightarrow
|
||||
p=17 \rightarrow
|
||||
p=7 \rightarrow
|
||||
p=9 \rightarrow
|
||||
p=26 $ & \multirow{2}{*}{$\hat{s} = 11$} \\
|
||||
& & $h=1 \, \rightarrow\,\,
|
||||
h=3 \, \rightarrow\,\,
|
||||
h=2 \, \rightarrow\,\,
|
||||
h=6 \, \rightarrow\,\,
|
||||
h=4 \, \rightarrow\,\,
|
||||
h=5 $ & \\
|
||||
\cmidrule(lr){1-4}
|
||||
|
||||
\multirow{2}{*}{3} & \multirow{2}{*}{$\hat{s} = 13$} & $p=12 \rightarrow
|
||||
p=18 \rightarrow
|
||||
p=1 \rightarrow
|
||||
p=4 \rightarrow
|
||||
p=28 $ & \multirow{2}{*}{$\hat{s} = 11$} \\
|
||||
& & $h=3 \, \rightarrow\,\,
|
||||
h=2 \, \rightarrow\,\,
|
||||
h=6 \, \rightarrow\,\,
|
||||
h=4 \, \rightarrow\,\,
|
||||
h=5 $ & \\
|
||||
\cmidrule(lr){1-4}
|
||||
|
||||
\multirow{2}{*}{4} & \multirow{2}{*}{$\hat{s} = 15$} & $p=21 \rightarrow
|
||||
p=16 \rightarrow
|
||||
p=15 \rightarrow
|
||||
p=10 \rightarrow
|
||||
p=8 \rightarrow
|
||||
p=25 $ & \multirow{2}{*}{$\hat{s} = 11$} \\
|
||||
& & $h=1 \, \rightarrow\,
|
||||
h=2 \, \rightarrow\,
|
||||
h=3 \, \rightarrow\,
|
||||
h=6 \, \rightarrow\,
|
||||
h=4 \, \rightarrow\,
|
||||
h=5 $ & \\
|
||||
\cmidrule(lr){1-4}
|
||||
|
||||
\multirow{2}{*}{5} &\multirow{2}{*}{$\hat{s} = 13$} & $p=22 \rightarrow
|
||||
p=11 \rightarrow
|
||||
p=19 \rightarrow
|
||||
p=2 \rightarrow
|
||||
p=3 $ & \multirow{2}{*}{$\hat{s} = 11$} \\
|
||||
& & $h=1 \, \rightarrow\,\,
|
||||
h=3 \, \rightarrow\,\,
|
||||
h=2 \, \rightarrow\,\,
|
||||
h=4 \, \rightarrow\,\,
|
||||
h=5 $ & \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
\subsubsection{生产线的负载平衡实例}[Example of load balancing model for assembly line]
|
||||
表面组装生产线负载平衡是不同元件分配给各贴片机的决策过程优化,同一类元件可能存在多个可用供料器,本小节假定有较多贴装点的元件1和元件2分别有3个和2个可用供料器,其余元件的可用供料器数为1。
|
||||
表\ref{ch2:table:line_assignment}列出了表面组装生产线模型的分配结果。
|
||||
以元件1为例,其分给贴片机1、贴片机2和贴片机3的点数分别为8、0和2,即$\sum_{k \in K} \sum_{h \in H} x_{1,k,h,\boldsymbol{1}} = 8$,$\sum_{k \in K} \sum_{h \in H} x_{1,k,h,\boldsymbol{2}} = 0$,$\sum_{k \in K} \sum_{h \in H} x_{1,k,h,\boldsymbol{3}} = 2$,各个类型元件分配的贴片机数不超过其可用供料器数的上限。
|
||||
表\ref{ch2:table:line_performance}列出了各贴片机的优化子目标和加权目标值,贴片机的组装效率由加权性能指标的结果表示。由表可知,对于并列式贴片机,贴装点数不再是影响组装效率的唯一主要因素,拾取效率同样会对整体效率产生较大的影响。
|
||||
|
||||
\begin{table}[htbp]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:line_assignment]{}{表面组装生产线的负载平衡后不同贴片机分到的各类元件贴装点数}{Table $\!$}{\centering Number of placement points assigned to each surface mounter after load balancing of the surface assembly line}
|
||||
|
||||
\begin{tabular}{p{2cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
元件 & CP$_1$ & CP$_2$ & CP$_3$ & CP$_4$ & CP$_5$ & CP$_6$ & CP$_7$ & CP$_8$ \\
|
||||
\midrule
|
||||
贴片机1 & 8 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\
|
||||
贴片机2 & 0 & 4 & 4 & 0 & 0 & 0 & 0 & 0\\
|
||||
贴片机3 & 2 & 2 & 0 & 2 & 2 & 1 & 2 & 1\\
|
||||
\cmidrule(lr){1-9}
|
||||
总数 & 10 & 6 & 4 & 2 & 2 & 1 & 2 & 1\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\begin{table}[htbp]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:line_performance]{}{表面组装生产线的负载平衡模型的主要性能指标}{Table $\!$}{ Main performance indexes of load balancing models for a surface assembly line}
|
||||
|
||||
\begin{tabular}{p{1.2cm}<{\centering}p{1.2cm}<{\centering}p{1.2cm}<{\centering}p{2cm}<{\centering}p{2.4cm}<{\centering}p{1.6cm}<{\centering}p{1.2cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{贴片机} & \multicolumn{5}{c}{子目标} & \multirow{2}{*}{目标值} \\
|
||||
\cmidrule(lr){2-6}
|
||||
& 周期数 & 拾取数 & 吸嘴更换数 & 拾取移动槽位 & 拾贴点数 \\
|
||||
\midrule
|
||||
1 & 2 & 4 & 0 & 4 & 8 & 1.692 \\
|
||||
2 & 2 & 4 & 0 & 4 & 8 & 1.692 \\
|
||||
3 & 2 & 3 & 0 & 2 & 12 & 1.571 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\subsection{灵敏度分析}[Sensitivity analyses]
|
||||
|
||||
灵敏度分析旨在探究模型参数发生变动后,模型的最优解及其变化趋势的调整情况,进而评估模型对于参数变化的敏感性与稳定性。
|
||||
在\ref{ch2:sub-section:example}节的模型实例演示中,分阶段模型的主要目标权重系数已通过线性拟合的方法获得。
|
||||
本节将在此基础上,进一步分析模型优化过程中关键子目标的参数灵敏度。
|
||||
在分阶段模型框架下,通过目标权重拟合所得的目标参数可能因组装数据的差异而出现参数值的变化,相比之下,依据贴装点间距离确定的目标参数模型结果则为确定值。因此,本节将探讨模型目标拟合权重系数(即$T^{\rm CY}$,$T^{\rm NZ}$,$T^{\rm PU}$,$T^{\rm PL}$和$T^{\rm PM}$)值的变动对贴片头任务分配模型及生产线负载平衡模型的最优解的影响。
|
||||
表\ref{ch2:table:data-para}列出了用于灵敏度分析的PCB数据组1,并以贴片头数为6的并列式贴片机及由3台此类贴片机组成的组装生产线为对象,进行了模型的灵敏度分析。对于整数规划模型,原有模型中目标系数值和子目标的优化结果均会对参数的灵敏度分析产生影响,本节将参数变化范围的结果保留三位小数。
|
||||
|
||||
|
||||
\begin{table}[htbp]
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch2:table:data-para]{}{模型灵敏度分析的数据参数}{Table $\!$}{Data parameters for model sensitivity analysis}
|
||||
\begin{tabular}{p{3cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}}
|
||||
\toprule
|
||||
PCB & 1-1 & 1-2 & 1-3 & 1-4 & 1-5 \\
|
||||
\midrule
|
||||
吸嘴类型数 & 1 & 2 & 2 & 5 & 4\\
|
||||
元件类型数 & 1 & 2 & 2 & 3 & 8 \\
|
||||
可用供料器数 & 4 & 5 & 5 & 7 & 8 \\
|
||||
贴装点数 & 28 & 20 & 28 & 24 & 20 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
表\ref{ch2:table:head-sensitivity}列出了贴片头任务分配模型中,目标参数变化对模型最优解的影响。
|
||||
对于表面组装任务,贴片头中相关的关键子目标是决定组装效率的主要因素,本文认为子目标的值发生改变即最优解发生改变,并会对组装效率产生影响,表\ref{ch2:table:head-sensitivity}列出了各组数据主要目标值不变时参数的容许变化范围。
|
||||
在主要目标中,周期项和元件拾取项存在着关联性,为了构成同步拾取,元件会被分配在不同的贴片头上,间接地降低了组装过程的周期数,从而使得周期项有相对大的可变化范围。
|
||||
移动项因目标值较小、对组装效率贡献较低,因而容许变化范围较大。
|
||||
拾取项和吸嘴更换项是决定组装效率的关键因素,其变化范围相对较小,反映了其对参数变化更加敏感。
|
||||
可以看出,尽管参数的具体数值可能会因数据差异而有所调整,但这些调整有较大的容许变化范围使得模型的最优解保持不变,对组装效率不会产生影响,反映了组装过程模型的稳定性和鲁棒性。
|
||||
|
||||
\begin{table}[htbp]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:head-sensitivity]{}{贴片头任务分配模型的参数灵敏度分析}{Table $\!$}{Parameter sensitivity analysis of head task assignment model}
|
||||
|
||||
\begin{tabular}{p{1.2cm}<{\centering}
|
||||
p{0.8cm}<{\centering}p{0.1cm}<{\centering}p{0.8cm}<{\centering}
|
||||
p{1.1cm}<{\centering}p{0.1cm}<{\centering}p{1.1cm}<{\centering}
|
||||
p{0.8cm}<{\centering}p{0.1cm}<{\centering}p{0.8cm}<{\centering}
|
||||
p{1cm}<{\centering}p{0.1cm}<{\centering}p{0.8cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & \multicolumn{12}{c}{目标项的参数} \\
|
||||
\cmidrule(lr){2-13}
|
||||
& \multicolumn{3}{c}{周期项: $T^{\rm CY}$} & \multicolumn{3}{c}{吸嘴更换项: $T^{\rm NZ}$} & \multicolumn{3}{c}{拾取项: $T^{\rm PU}$} & \multicolumn{3}{c}{移动项: $T^{\rm PM}$} \\
|
||||
\midrule
|
||||
1-1 & 0.279 & $\sim$ & $N$
|
||||
& \multicolumn{3}{c}{--}
|
||||
& 0.000 & $\sim$ & 0.206
|
||||
& 0.000 & $\sim$ & 0.041 \\
|
||||
1-2 & 0.030 & $\sim$ & $N$
|
||||
& \multicolumn{3}{c}{--}
|
||||
& 0.000 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & 0.326 \\
|
||||
1-3 & 0.120 & $\sim$ & $N$
|
||||
& 0.018 & $\sim$ & $N$
|
||||
& 0.060 & $\sim$ & 13.799
|
||||
& 0.000 & $\sim$ & 0.079 \\
|
||||
1-4 & 0.030 & $\sim$ & $N$
|
||||
& 0.016 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & 10.410
|
||||
& 0.000 & $\sim$ & 0.326 \\
|
||||
1-5 & 0.060 & $\sim$ & $N$
|
||||
& 0.015 & $\sim$ & $N$
|
||||
& 0.030 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & 0.158 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
同理,表\ref{ch2:table:line-sensitivity}对生产线的负载平衡模型优化目标参数灵敏度进行了分析,选取了制约组装效率设备的主要子目标值作为评估最优解变化的基准。
|
||||
在贴片头任务分配策略的基础上,进一步引入了贴装项的灵敏度分析。
|
||||
由于生产线中周期项与贴装项之间存在关联性,平衡这两个子目标的过程呈现出相关性,从而使其有相对较大的允许变化范围。此外,拾取项的表现受到所分配元件类型及贴装点数的影响。在模型经过平衡优化后,拾取效率通常能达到较高水平,使得拾取项的参数变化范围相对较大。各项参数变化的影响和贴片头任务分配相同。对于生产线负载平衡模型,对小规模数据的负载均衡通常不会有吸嘴更换的动作,因而其参数变化不会对最优解产生影响。负载平衡模型其余主要目标参数值的可变化范围较大,其优化结果对目标参数的变化同样不敏感。
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch2:table:line-sensitivity]{}{生产线负载平衡模型的参数灵敏度分析}{Table $\!$}{Parameter sensitivity analysis of assembly line balancing model}
|
||||
|
||||
\begin{tabular}{p{0.7cm}<{\centering}
|
||||
p{0.9cm}<{\centering}p{0.1cm}<{\centering}p{0.9cm}<{\centering}
|
||||
p{0.9cm}<{\centering}p{0.1cm}<{\centering}p{0.9cm}<{\centering}
|
||||
p{0.9cm}<{\centering}p{0.1cm}<{\centering}p{0.9cm}<{\centering}
|
||||
p{0.9cm}<{\centering}p{0.1cm}<{\centering}p{0.9cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & \multicolumn{12}{c}{目标项的权重参数} \\
|
||||
\cmidrule(lr){2-13}
|
||||
& \multicolumn{3}{c}{周期项: $T^{\rm CY}$} & \multicolumn{3}{c}{拾取项: $T^{\rm PU}$} & \multicolumn{3}{c}{移动项: $T^{\rm PM}$} & \multicolumn{3}{c}{贴装项:$T^{\rm PL}$} \\
|
||||
\midrule
|
||||
1-1 & 0.031 & $\sim$ & $N$
|
||||
& 0.157 & $\sim$ & 1.980
|
||||
& 0.157 & $\sim$ & 0.283
|
||||
& 0.000 & $\sim$ & 0.326 \\
|
||||
1-2 & 0.034 & $\sim$ & $N$
|
||||
& 0.064 & $\sim$ & 0.305
|
||||
& 0.064 & $\sim$ & 0.305
|
||||
& 0.000 & $\sim$ & 1.185 \\
|
||||
1-3 & 0.030 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & 0.348
|
||||
& 0.000 & $\sim$ & 0.437 \\
|
||||
1-4 & 0.031 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & 0.305
|
||||
& 0.000 & $\sim$ & 0.374
|
||||
& 0.000 & $\sim$ & 0.326 \\
|
||||
1-5 & 0.000 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & $N$
|
||||
& 0.000 & $\sim$ & 0.286
|
||||
& 0.000 & $\sim$ & $N$ \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
\subsection{复杂度分析}[Complexity analyses]
|
||||
|
||||
模型的复杂度分析用于评估精确解法在解决实际问题时的难易程度,判断给定规模的问题需要的求解时间和内存空间。
|
||||
贴片头任务分配模型的决策变量和约束数分别如式\eqref{ch2:equation:head-model-var}和式\eqref{ch2:equation:head-model-constr}所示,其中供料器槽位数$\left|S\right|$、贴片头数$\left|H\right|$和贴片机数$\left|M\right|$为与生产数据无关的常数,拾贴周期数$\left|K\right|$与贴装的点数$\left| P \right|$正相关。据此可知,贴片头任务分配模型变量和约束的规模均为$O\left( \left( \left| I \right| + \left| J \right|\right) \cdot \left| P \right| + \left| P \right| + \left| I \right| \right)$。对于复杂的PCB组装任务,其元件类型数和贴装点数同步增加将显著增加模型的规模。
|
||||
\begin{equation}
|
||||
\Big\{ \left( \left| S \right| \cdot \left| I \right| + \left| S \right| + \left| I \right| + \left| J \right| \right) \cdot \left| K \right| \cdot \left| H \right| + 2 \cdot \left( \left| S \right| + 1 \right) \cdot \left| K \right| + 2 \cdot \left| S \right| \cdot \left| I \right| \Big\} \cdot \left| M \right|
|
||||
\label{ch2:equation:head-model-var}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\Big\{ \left( 4 + \left| I \right| \cdot \left| J \right| + \left| S \right| \cdot \left| I \right| \right) \cdot \left| K \right| \cdot \left| H \right| + \left( \left| S \right|^{2} + \left| S \right| + \left| J \right| \right) \cdot \left| K \right| + \left( \left| S \right| + 2 \right) \cdot \left| I \right| + \left| S \right| \Big\} \cdot \left| M \right|
|
||||
\label{ch2:equation:head-model-constr}
|
||||
\end{equation}
|
||||
|
||||
贴装过程路径规划模型是在已知贴片头任务分配解的基础上构建的,其决策变量和约束数同贴装点数直接相关,分别如式\eqref{ch2:equation:route-model-var}和\eqref{ch2:equation:route-model-constr}所示。模型中的移动弧数$\left| A \right|$为与贴片头数$\left| H \right|$相关的常数,其变量和约束的规模均为$O\left( \left| P \right|^3 + \left| P \right|^2 + \left| P \right|\right)$,贴装点数的增加会使得模型的规模迅速扩大。
|
||||
\begin{equation}
|
||||
\left| P \right|^2 \cdot \left| K \right| \cdot \left| A \right| + 2 \cdot \left| P \right| \cdot \left| K \right| \cdot \left| H \right| + \left| P \right|^2 + 2 \cdot \left| P \right|
|
||||
\label{ch2:equation:route-model-var}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
4 \cdot \left| P \right| \cdot \left| K \right| \cdot \left| H \right| + \left( 2 + \left| H \right| \right) \cdot \left| K \right| + \left| P \right|^2 + 5 \cdot \left| P \right|
|
||||
\label{ch2:equation:route-model-constr}
|
||||
\end{equation}
|
||||
|
||||
|
||||
生产线负载均衡模型是贴片头任务分配模型的进一步拓展,其决策变量数在式\eqref{ch2:equation:head-model-var}的基础上增加了$\left| I \right|$项,约束数则为式\eqref{ch2:equation:head-model-constr}和式\eqref{ch2:equation:line-model-constr}之和,对应的规模分别为$O\left( \left( \left| I \right| + \left| J \right| \right) \cdot \left| P \right| + \left| I \right| + \left| J \right|\right)$和$O\left( \left( \left| I \right| + \left| J \right| \right) \cdot \left| P \right| + \left| I \right|\right)$,负载均衡的分配方式并未降低模型的复杂度。
|
||||
\begin{equation}
|
||||
\left( \left| S \right| \cdot \left| I \right| + \left| S \right| + 2 \cdot \left| I \right| \right) \cdot \left| M \right| + \left| I \right| + \left| J \right| + \left(\left| M \right|^2 + \left| M \right| \right) \cdot \left| Q \right|
|
||||
\label{ch2:equation:line-model-constr}
|
||||
\end{equation}
|
||||
|
||||
上述分析说明了本文所研究的表面组装过程优化问题的复杂性,多阶段的数学规划模型求解方法受问题规模的影响较大。在处理大规模数据时,模型计算时间的急剧增长成为优化的瓶颈,因而需要采用启发式或近似算法进行替代,通过适度放宽最优性标准来获取可接受的计算效率。
|
||||
传统的(混合)整数规划模型的规模主要取决于变量和约束的数量、问题结构、计算资源等因素,在常规的计算资源配置下,现有算法在可接受时间范围内能有效处理的问题规模上限为决策变量数量级小于$10^4$、约束数量级小于$5 \times 10^4$。
|
||||
在PCB组装的应用场景中,模型复杂度主要取决于元件类型数和贴装点数两个维度,而本文所求解的大规模PCB数据通常元件类型数与贴装点数之积约为$2 \times 10^3$及其以上,远超出常规求解器的处理能力范围,需要进一步改进模型或设计启发式算法解决此类优化问题。
|
||||
|
||||
|
||||
\section{本章小结}[Summary of this chapter]
|
||||
|
||||
% 本章对贴片机及其生产线的表面组装过程优化进行了详细阐述,分析了影响组装过程效率的主要约束与性能指标,设定了问题的假设条件,对其数学模型的构建进行了适当的简化。
|
||||
% 在建模策略上,贴片机表面组装过程被分解为贴片头任务分配与贴装过程路径规划两部分。本章研究了贴片头任务分配模型中子目标与决策变量之间的内在关系,以影响组装效率的关键因素为优化目标,并依据工具匹配性、资源有限性及机械动作限位等约束条件,构建了整数线性规划模型。
|
||||
% 本章根据贴片头任务分配的结果,确定了贴装过程路径规划模型的参数设定,将其视为中心位置已知的带约束的多拾贴周期路径规划问题;同时,综合考虑了贴片头作业顺序对移动路径的影响,以最小化悬臂移动路径为目标,构建了混合整数线性规划模型。
|
||||
% 此外,本章以加权子目标评估组装效率,将工具有限性约束扩展至整个生产线,结合了可分配贴片机限制与拾贴作业顺序限制等条件,建立了负载平衡的最小-最大整数线性规划模型。
|
||||
% 本章还讨论了模型的线性化处理技术,以确保模型的实用性和可解性,并通过引入一个电路板实例说明了模型的可行性。
|
||||
|
||||
本章阐述了贴片机及其生产线的表面组装过程优化问题,分析了影响组装过程效率的主要约束与性能指标。
|
||||
在建模策略上,
|
||||
% 贴片机的表面组装过程被分解为贴片头任务分配与贴装过程路径规划两部分。
|
||||
本章以影响组装效率的关键因素为优化目标,依据工具匹配性、资源有限性及机械结构等约束条件,构建了贴片头任务分配的整数线性规划模型;根据贴片头任务分配的结果,确定了贴装过程路径规划模型的参数,将其视为中心位置已知的带约束的多拾贴周期路径规划问题,以最小化悬臂移动路径为目标,构建了混合整数线性规划模型。
|
||||
此外,本章以加权子目标评估贴片机的组装效率,将工具有限性等约束扩展至生产线,并结合可分配贴片机与组装优先级等限制,建立了负载平衡的最小-最大整数线性规划模型。
|
||||
最后,本章通过引入电路板实例说明了模型的可解性和可行性,并对模型的参数灵敏度和复杂度进行了分析。
|
1069
body/chapter3.tex
Normal file
1069
body/chapter3.tex
Normal file
File diff suppressed because it is too large
Load Diff
692
body/chapter4.tex
Normal file
692
body/chapter4.tex
Normal file
@ -0,0 +1,692 @@
|
||||
% !Mode:: "TeX:UTF-8"
|
||||
|
||||
\chapter{表面组装过程中贴装过程的路径规划算法}[Path planning algorithm for the placement process in the surface assembly process]
|
||||
|
||||
\section{引言}[Introduction]
|
||||
|
||||
贴装过程的路径规划是研究悬臂贴装元件过程中移动路径最小化的算法,其结果同样是影响组装过程效率的因素之一,可被视为一类带约束的有容量限制的车辆路径规划问题(Capacitated Vehicle Routing Problem,CVRP)的变体。
|
||||
贴装过程的路径规划是在贴片头任务分配基础上的进一步决策规划,二者共同决定了完整的贴片机组装过程。路径规划的复杂性体现在既有贴片头元件分配结果的限制,又有多轴线性排列的贴片头偏移对移动位置的影响。
|
||||
较大的可行域使找到问题高质量解的难度增大,以贪心为代表的启发式优化算法搜索方式单一,但其获得的可行解基本能满足生产要求,因而相关研究较少且不够深入。
|
||||
对于大批量的表面组装任务,即使悬臂的贴装移动用时在整体组装过程中占比不高,但其累积产生的经济效益仍不可被忽视。
|
||||
|
||||
% 多源点启发式
|
||||
启发式的路径规划算法通常以最近邻贪心搜索方法为基础,适用于解决大规模的路径规划问题。贪心算法从随机选取的贴装点开始进行搜索,对于贴装路径规划任务,不同拾贴周期首个贴装点的选取会对当前及整体解的质量产生较大影响。为此,本章提出一种基于多源点启发式的贴片头路径规划算法,通过不同的起始搜索点和贴片头分配迭代顺序,增加搜索解的多样性。
|
||||
% 对于单个拾贴周期内分配的有限贴装点而言,动态规划的优化方法可以被直接应用于其路径的最优化规划。
|
||||
集束搜索作为贪心的扩展算法,其在搜索过程中采用广度优先的方式建立搜索树,并在搜索树的各层时按启发代价对结点进行排序,剪去代价值较低的结点,以被保留的多个相对较优的结点为基础在下一层次继续扩展,有助于算法跳出搜索过程的局部最优解,进而提升构造的路径规划解的质量。
|
||||
|
||||
|
||||
% 路径重连
|
||||
贪心的搜索方式有一定的短视性,而邻域搜索可根据各拾贴周期内贴装点的分布特性,对已有解进行再规划。现有研究中,相关的元启发式算法已被广泛应用于解决此类路径规划问题中,且取得了较好的成效\cite{cai_variable_2022,accorsi_fast_2021}。
|
||||
作为CVRP的变体问题,聚类算法通过将访问点分组,并与邻域搜索算法相结合,将复杂的路径规划问题分解为易于处理的子问题,可以降低问题的复杂度、提高求解效率。
|
||||
% 贪心搜索不可避免出现各拾贴周期路径规划长度不一致的问题,而拾贴周期内的路径规划可根据贴装点的分布特性对已有解进行再规划。此外,贴装点的再分配过程同样受到贴片头任务分配结果的约束。
|
||||
为此,本章研究了自适应大邻域搜索在拾贴周期路径再规划中的应用,通过重新分配各拾贴周期的贴装点,平衡拾贴周期之间的移动路径长度,降低了贴装过程悬臂移动路径的总长度。
|
||||
|
||||
|
||||
\section{问题分析}[Problem analysis]
|
||||
|
||||
|
||||
贴装过程作为多轴协同运动的过程,其特殊性在于连续两点贴装作业的用时不仅取决于贴装点之间的距离,同时与X/Y/R轴协同工作有关。
|
||||
在贴装过程中,各贴装位置之间的Chebyshev距离决定了移动过程的用时;而贴装过程的用时不仅取决于选取的贴装点位置,也与同轴贴片头连续作业所完成的R轴旋转动作用时有关。
|
||||
如图\ref{ch4:figure:head-struct}所示,在贴片头机械设计中,其紧凑的结构使每两个相邻的贴片头共用一个R轴电机,并通过传动齿轮带动贴片头转动。在表面贴装过程中,相机识别拾取元件的角度偏差后,贴片头可预先旋转至待贴装角度,因而部分贴片头R轴旋转用时并不影响整体组装用时。然而,同轴旋转动作的存在也使得部分贴片头需等待上一个点贴装完成后,才可以旋转到预定的贴装角度。多轴电机独立工作的最长用时决定了组装过程的移动用时。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=0.65]{chapter4/head-layout.eps}
|
||||
\bicaption[ch4:figure:head-struct]{}{贴片头的结构示意图}{Fig. $\!$}{Schematic diagram of the structure of heads}
|
||||
\end{figure}
|
||||
|
||||
贴装过程的路径规划较CVRP有更多的限制条件。
|
||||
贴片头任务分配的结果优化了影响组装效率的主要指标,同时限制了拾贴周期可访问路径可行解的范围。对于给定的拾贴周期,各贴片头的拾取元件类型已确定,限制了其可访问的贴装点集。
|
||||
路径规划的容量受限体现在各拾贴周期分配有元件的贴片头数是确定的。
|
||||
贴装点的选择与其所对应的贴片头对路径规划也有影响,
|
||||
受线性排列结构的影响,不同贴片头吸取同类型元件时,其贴装同一贴装点会存在位置偏差。
|
||||
贴装过程路径规划可被视为是贴装点分配与贴装顺序规划相结合的组合问题。拾贴周期是路径规划的最小单位,算法通过确定单个拾贴周期内各贴片头访问的点及访问顺序,实现最小化悬臂移动路径长度的优化目标。
|
||||
贴装过程路径规划涉及三层决策问题,分别是:拾贴周期贴装点分配,贴装点的贴片头分配和贴片头作业的先后顺序规划,分层决策降低了问题的求解难度。
|
||||
|
||||
|
||||
贴装过程路径规划的三层决策问题存在一定的耦合关系,在算法设计中,本章以贴装点分配到的拾贴周期和贴片头为第一阶段优化问题,以各拾贴周期的路径规划为第二阶段优化问题。
|
||||
为使移动路径长度最小化,贪心的搜索过程仅用于确定各拾贴周期贴片头访问的贴装点,单一周期内相对密集的贴装点分布有助于降低整体移动路径的长度;动态规划法可最优地解决各拾贴周期的路径规划问题。
|
||||
基于聚类的自适应邻域搜索规划法用于进一步改进解的质量,在贴片头任务分配的约束下,从全局角度对拾贴周期路径规划较差的解进行再规划,能有效地克服贪心算法的局限性。
|
||||
|
||||
|
||||
\section{贴装过程的路径规划方法}[Path planning algorithms for placement process]
|
||||
|
||||
\subsection{算法概述}[Overview of the algorithm]
|
||||
本节分别介绍了基于启发式和邻域搜索的贴装过程路径规划算法,启发式算法用于构造路径规划的高质量可行解,邻域搜索则用于在线改进解的质量,算法的构成如图\ref{ch4:figure:framework}所示。在启发式算法设计阶段,本节提出了周期间的多源贪心动态导向集束搜索的贴装点分配算法,以及周期内的动态规划路径规划算法;在邻域搜索算法设计阶段,则进一步提出了基于自适应大邻域搜索的聚合路径重构算法。在周期间完成贴装点再分配后,动态规划用于规划拾贴周期内的最优路径。
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[scale=0.83]{chapter4/route-schedule-framework.eps}
|
||||
\bicaption[ch4:figure:framework]{}{贴装过程的路径规划算法结构图}{Fig. $\!$}{Framework of path planning algorithm for placement process}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\subsection{基于动态规划的拾贴周期路径规划算法}[Dynamic programming-based path planning algorithm of pick-and-place cycles]\label{subsection:dynamic-program-route}
|
||||
|
||||
拾贴周期内规划路径点数等于作业的贴片头数,对于数量有限的访问点,动态规划法可用于求解贴片头移动位置已知的路径规划最优解。
|
||||
记贴片机$m$的拾贴周期$k$贴装过程的起点位置坐标为$\left( X_{\Theta}, Y_{\Theta} \right) $,即元件拾取的终止位置,其满足:
|
||||
\begin{equation}
|
||||
X_\Theta = X^{\rm F1} + F^{\rm FW}_{km} \cdot \frac{\rho}{\tau}, \quad Y_\Theta = Y^{\rm{F1}}, \quad \mathcal{H} = \left\{ h^\prime \mid \mathcal{P}_{kh^\prime} > 0, h^\prime \in H \right\}
|
||||
\end{equation}
|
||||
式中,$\mathcal{H}$为当前拾贴周期工作的贴片头索引集。
|
||||
|
||||
如前所述,多轴独立工作共同决定了贴装过程的移动用时,为计算悬臂在连续贴装点作业的用时,记当前访问贴装点$p$的坐标为$\left(X_p, Y_p\right)$,旋转角度为$R_p$,贴片头为$h$;下一访问贴装点$\hat{p}$的坐标为$\left(X_{\hat{p}}, Y_{\hat{p}}\right)$,旋转角度为$R_{\hat{p}}$,贴片头为$\hat{h}$。
|
||||
记$\delta \left(p, \hat{p}, h, \hat{h} \right)$表示贴片头$h$完成元件$p$的贴装后,用贴片头$\hat{h}$贴装点$\hat{p}$的移动用时。
|
||||
如果$p$或$\hat{p}$为拾取点,即$p = \Theta$ 或$\hat{p} = \Theta$,则当前移动路径为拾取位置到贴装位置之间的往返路径之一,有
|
||||
\begin{equation}
|
||||
\delta \left(\Theta, p, \bullet, h \right) = \delta \left(p, \Theta, h, \bullet\right) = \max \left( \frac{\left| X_p - X_\Theta - \left( h - 1 \right) \cdot \rho \right|}{V^{\rm{X}}}, \frac{\left| Y_p - Y_\Theta \right|}{V^{\rm{Y}}} \right)
|
||||
\end{equation}
|
||||
否则,对于非同轴运动贴装过程的移动路径,即$\lceil h / 2 \rceil \neq \lceil \hat{h} / 2 \rceil$,有
|
||||
\begin{equation}
|
||||
\delta \left(p, \hat{p}, h, \hat{h} \right) = \max \left( \frac{\left| X_p - X_{\hat{p}} - \left( h - \hat{h} \right) \cdot \rho \right|}{V^{\rm{X}}}, \frac{\left| Y_p - Y_{\hat{p}} \right|}{V^{\rm{Y}}}\right)
|
||||
\end{equation}
|
||||
否则,对于同轴运动贴装过程的移动路径,将进一步考虑R轴转动的用时,有
|
||||
\begin{equation}
|
||||
\delta \left(p, \hat{p}, h, \hat{h} \right) = \max \left( \frac{\left| X_p - X_{\hat{p}} - \left( h - \hat{h} \right) \cdot \rho \right|}{V^{\rm{X}}}, \frac{\left| Y_p - Y_{\hat{p}} \right|}{V^{\rm{Y}}}, \frac{\left| R_p - R_{\hat{p}} \right|}{V^{\rm{R}}}\right)
|
||||
\end{equation}
|
||||
其中$V^{\rm{X}}$,$V^{\rm{Y}}$和$V^{\rm{R}}$分别对应X、Y、R三轴运动的平均速度。记$\mathcal{P}_{kh}$为拾贴周期$k$的贴片头$h$拾贴元件的贴装点索引,令贴片头0对应拾取位置,即$\mathcal{P}_{k0}=\Theta$。
|
||||
拾贴周期动态规划的访问点集合由贴片头及拾取起始位置构成,贴片头与贴装点存在对应关系,由此构成了作业贴片头集合$\mathcal{H} \cup \left\{ 0 \right\} $。
|
||||
% \begin{equation}
|
||||
% \hat{\mathcal{P}} = \left\{ \mathcal{P}_{kh} \mid \mathcal{P}_{kh} > 0, h \in H \right\} \cup \left\{ \Theta \right\}
|
||||
% \label{dynamic_set_equation}
|
||||
% \end{equation}
|
||||
|
||||
基于给定的访问点集合和移动过程用时函数,可构造动态规划的状态转移方程,如式\eqref{dynamic_init_equation}--\eqref{dynamic_trans_equation}所示。
|
||||
$\mathcal{F} \left( p, \mathcal{H} \right)$表示从点$p$出发,访问集合$\mathcal{H}$中贴片头对应的贴装点有且仅有一次,最后返回点$p$的最短路径长度。
|
||||
\begin{equation}
|
||||
\mathcal{F} \left( \Theta, \left\{ 0 \right\} \right) = 0
|
||||
\label{dynamic_init_equation}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\mathcal{F} \left( \mathcal{P}_{kh}, \mathcal{H}^{\rm{SUB}} + \left\{ h \right\} \right) = \min_{\hat{h} \in \mathcal{H}^{\rm{SUB}}} \left\{ \mathcal{F} \left( \mathcal{P}_{k\hat{h}}, \mathcal{H}^{\rm{SUB}} \right) + \delta \left(\mathcal{P}_{kh}, \mathcal{P}_{k\hat{h}}, h, \hat{h} \right) \right\} \\
|
||||
\mathcal{H}^{\rm{SUB}} \subseteq \mathcal{H} \cup \left\{ 0 \right\}, h \in \mathcal{H} \cup \left\{ 0 \right\}, h \notin \mathcal{H}^{\rm{SUB}}
|
||||
\end{aligned}
|
||||
\label{dynamic_trans_equation}
|
||||
\end{equation}
|
||||
式中,$\mathcal{H}^{\rm SUB}$为$\mathcal{H}$的子集。对于小规模的类旅行商问题,状态压缩法常用于基于动态规划的路径规划问题求解中,通过求解状态转移方程可得,拾贴周期内的最小移动用时为
|
||||
\begin{equation}
|
||||
\min_{\mathcal{P}_{kh} \in \mathcal{H}} \left\{ \mathcal{F} \left( h, \mathcal{H} \backslash \left\{ h \right\} \right) + \delta \left( \Theta, \mathcal{P}_{kh}, h, \bullet \right) \right\}
|
||||
\end{equation}
|
||||
在求解过程中记录不同状态对应的访问贴装点的先后顺序,即可确定拾贴周期路径规划的最优访问顺序。
|
||||
|
||||
\subsection{基于多源贪心的动态导向集束搜索路径规划算法}[Path planning algorithm based on the multi-point greedy beam search with dynamic orientation]
|
||||
|
||||
\subsubsection{多源贪心启发式}
|
||||
动态规划用于解决拾贴周期内的路径规划,本节将介绍拾贴周期分配贴装点的相关算法。在为贴片头分配贴装点时,朴素的贪心算法是选取一个贴片头分配任一贴装点,按照最近邻的分配原则对其它贴片头进行贴装点分配。
|
||||
% 基于动态集束的多区域的启发式路径规划方法在此基础上,遍历所有起始位置和迭代方向增加搜索的多样性,并在其中引入动态集束搜索,扩大解的多样性。其具体实现方式包含以下步骤:
|
||||
多源贪心搜索通过选择不同的搜索方向调整起始搜索点和贴片头的分配顺序,以满足电路板不同贴装点分布特性的实际要求。
|
||||
根据待贴装电路板确定有效贴装区域, 可确定其左边界和右边界的X坐标为$X^{\rm{LB}}$和$X^{\rm{RB}}$,搜索步长为 $\left( X^{\rm{RB}} - X^{\rm{LB}} \right) / \left( 2 \cdot \left| H \right| \right)$。算法选取了3个不同的搜索方向完成优化,分别是自左向右搜索,自右向左搜索和自中心向两侧搜索。根据不同的搜索方向,可生成起始搜索点顺序列表 $ \hat{\mathcal{S}}$ 和贴片头访问顺序列表 $ \hat{\mathcal{H}} $,
|
||||
其中$\hat{\mathcal{H}}$ 表示贴片头分配贴装点的先后顺序。搜索方向和起始点、贴片头的分配先后顺序的对应关系如表~\ref{ch4:table:search-direction}所示。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:search-direction]{}{不同搜索方向的起始搜索点和贴片头分配顺序}{Table $\!$}{Starting point and head assignment sequence of different search directions}
|
||||
\begin{tabular}{p{2cm}<{\centering}p{10cm}<{\centering}}
|
||||
\toprule
|
||||
方向 & 起始点和贴片头分配顺序 \\
|
||||
\midrule
|
||||
\multirow{2}{*}{自左向右} & $ \hat{\mathcal{S}} = \left\{ X^{\rm{LB}} + \left( h - 1 \right) \cdot \rho \mid h \in H \right\} $ \\
|
||||
& $ \hat{\mathcal{H}} = H $ \\
|
||||
\cmidrule{1-2}
|
||||
\multirow{2}{*}{自右向左} & $ \hat{\mathcal{S}} = \left\{ X^{\rm{RB}} - \left( h - 1 \right) \cdot \rho \mid h \in H \right\} $ \\
|
||||
& $ \hat{\mathcal{H}} = \left\{ \left| H \right| + 1 - h \mid h \in H \right\} $ \\
|
||||
\cmidrule{1-2}
|
||||
\multirow{2}{*}{中心向两侧} & $ \hat{\mathcal{S}} = \left\{ \left(3 \cdot X^{\rm{LB}} + X^{\rm{RB}} \right) / 4 + \left( h - 1\right) \cdot \rho / 2 \mid h \in H \right\} $ \\
|
||||
& $ \hat{\mathcal{H}} = \left\{ \frac{\left| H \right|}{2} + (-1)^{h+1} \cdot \left( \lceil \frac{h}{2} \rceil - \frac{1}{2} \right) + \frac{\lceil \left( \left| H \right| + 1 \right) \ \rm{mod} \ 2 \rceil}{2} \mid h \in H \right\}$ \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
在进行贴装点分配时,首先置空贴片头上的贴装点,即令$\mathcal{P}_{kh} = 0$,$\forall k \in K$,$h \in H$,表示各拾贴周期所有贴片头均未分配贴装点;
|
||||
然后遍历不同的搜索方向,记对应搜索起点为 $\Psi \in \hat{\mathcal{S}} $,贴片头分配顺序列表为 $\hat{\mathcal{H}}$。对于拾贴周期$k$,当遍历到 $\hat{\mathcal{H}}$ 中的贴片头$h$时,其可访问的贴装点集合记为$P^\prime$。若 $h$ 为列表 $\hat{\mathcal{H}}$首个贴片头,则找出水平方向上距离搜索起始点最近的点,
|
||||
\begin{equation}
|
||||
P^\prime \leftarrow \left\{ p \mid \eta_{ip} = 1, i = \mathcal{C}_{kh}, p \in P \right\}
|
||||
\label{ch4:equation:first-point1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
p \leftarrow {\rm argmin}_{p^\prime \in P^\prime} \left| X_{p^\prime} - \left( h - 1 \right) \cdot \rho - \Psi \right|
|
||||
\label{ch4:equation:first-point2}
|
||||
\end{equation}
|
||||
否则,按移动过程单向访问的顺序,计算分配贴装点$p$后拾贴周期的移动路径长度,记集合$\mathcal{X}_{p}$和$\mathcal{Y}_{p}$为当前拾贴周期已分配的贴装点和在进行点$p$贴装作业时,悬臂所在位置的$X$坐标和$Y$坐标构成的有序集合,具体为
|
||||
\begin{equation}
|
||||
\mathcal{X}_{p} \leftarrow \left\{ X_{p^\prime} - \left( h^\prime - 1 \right) \cdot \rho \mid p^\prime = \mathcal{P}_{kh^{\prime}}, p^\prime \neq 0, h^{\prime} \in H \right\} \cup \left\{ X_{p} - \left( h - 1 \right) \right\}
|
||||
\label{ch4:equation:quick-sort1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\mathcal{Y}_{p} = \left\{ Y_{p^\prime} \mid p^\prime = \mathcal{P}_{kh^\prime}, p^\prime \neq 0, h^{\prime} \in H \right\} \cup \left\{ Y_{p} \right\}
|
||||
\label{ch4:equation:quick-sort2}
|
||||
\end{equation}
|
||||
记 $t$ 为 $\mathcal{X}$ 中 $X$坐标第 $t$ 小的索引,有
|
||||
\begin{equation}
|
||||
p \leftarrow {\rm argmin}_{ p^\prime \in P^\prime}\sum_{t=1}^{t < \left| \mathcal{X}_{p^\prime} \right| - 1} \max \left( \left| \mathcal{X}_{p^{\prime}t} - \mathcal{X}_{p^{\prime}\left( t + 1 \right)} \right|, \left| \mathcal{Y}_{p^{\prime}t} - \mathcal{Y}_{p^{\prime}\left( t + 1 \right)} \right| \right)
|
||||
\label{ch4:equation:quick-sort3}
|
||||
\end{equation}
|
||||
|
||||
根据最近邻或快排规划确定的贴装点$p$为贴片头分配吸嘴,即令$\mathcal{P}_{kh} = p$。
|
||||
|
||||
\subsubsection{动态导向的集束搜索}
|
||||
|
||||
% 概述
|
||||
集束搜索是一类启发式的图搜索算法,在邻域中具有较强的搜索能力。集束搜索通过保留预定数量的最佳局部解最为候选,在每一步深度扩展时进行进一步的更新和筛选,通常能找到问题得近似最优解。
|
||||
搜索过程中保留的结点个数被称为集束宽度,影响着搜索的效率和最终解的质量。当集束宽度为无穷大时,集束搜索等同于广度优先搜索;而当集束搜索宽度为1时,则其退化为贪心算法。
|
||||
贴装过程作为贴片头任务分配约束下的路径规划问题,其对贴片头的贴装点分配可视为搜索树的结点。
|
||||
本节将集束搜索运用于此过程中,进一步完善多源贪心的路径规划算法,通过引入动态导向的搜索策略,在扩展集束搜索宽度的同时,以最佳解引导集束搜索的方向,提升解的质量。
|
||||
|
||||
% 多源贪心
|
||||
算法\ref{ch4:algorithm:greedy-beam}将多源贪心启发式与动态导向集束搜索算法相结合,用于路径规划可行解的生成。其中多源贪心算法构成了算法的基本框架,集束搜索则体现在单个贴片头同时分配多个较优的贴装点,扩大搜索范围。
|
||||
贴片头数量的有限性为集束搜索创造了条件,一方面,集束搜索的剪枝过程可在拾贴周期元件分配完成后进行,避免了单一贴片头分配完成后过早剪枝造成的搜索的短视性,较低的复杂度可以进一步扩充集束宽度;另一方面,采用动态规划确定各周期的拾贴顺序,在贴装点数量有限的情况下效率很高,拾贴周期分配结束后,动态规划法会比快排规划策略更为准确地计算贴装过程时间,有利于保留高质量的解。去重过程则用于分配中消除集束搜索到的相同解,提升搜索效率。
|
||||
|
||||
\vspace{1em}
|
||||
\begin{algorithm}[H]
|
||||
\small
|
||||
\AlgoBiCaption{多源贪心动态导向集束启发式路径规划算法}{Multi-point greedy beam search algorithm with dynamic orientation}
|
||||
\label{ch4:algorithm:greedy-beam}
|
||||
|
||||
\Input{贴片头元件分配解 $\mathcal{C}$,周期组索引集 $\mathcal{K}$,贴装点坐标$\left( X_{p}, Y_{p} \right)$,$p \in P$}
|
||||
\Output{贴片头分配贴装点 $\mathcal{P}$ 和贴装先后顺序 $\mathcal{Q}$}
|
||||
|
||||
令集束索引集 $B \leftarrow \left\{ 1, 2, \cdots, \right\}$ , $\left| B \right|$ 为集束宽度,
|
||||
令 导向贴片头分配点 $\mathcal{P}^{\rm{REF}}$ 为空 \;
|
||||
|
||||
\For {遍历不同的集束搜索宽度$\beta \in B$}
|
||||
{
|
||||
令 $\mathcal{P}\left( b \right)$ 为大小 $\left| \mathcal{K} \right| \times \left| H \right| $ 值均为0的矩阵,表示贴片头分配的贴装点,对应地,$\mathcal{Q} \left( b \right)$ 为贴片头贴装顺序,$\mathcal{T} \left( b \right)$为贴装过程用时,$b \in \left\{ 1, 2, \cdots, \beta + 1\right\}$ \;
|
||||
令 $P \left( b \right) \leftarrow P$表示不同集束未分配的点集,$b \in \left\{ 1, 2, \cdots, \beta + 1\right\}$ \;
|
||||
\For {遍历各拾贴周期$k \in \mathcal{K}$}
|
||||
{
|
||||
\For{遍历不同的搜索方向}
|
||||
{
|
||||
\tcc{根据搜索方向,遍历不同的搜索起始点和贴片头分配顺序}
|
||||
\For{$\Psi \in \hat{\mathcal{S}} $,$h \in \hat{\mathcal{H}}$}
|
||||
{
|
||||
\uIf{$\sum_{h^\prime \in H} \mathcal{P} \left(1\right)_{kh^\prime} = 0$}
|
||||
{
|
||||
按最近邻规则,以式\eqref{ch4:equation:first-point1}--\eqref{ch4:equation:first-point2}确定贴片头$h$分配的$p$,令$\mathcal{P} \left( b \right) _{kh} \leftarrow p$,$ b \in \left\{1, 2, \cdots, \beta \right\}$ \;
|
||||
}
|
||||
\Else
|
||||
{
|
||||
按快排规划算法,以式\eqref{ch4:equation:quick-sort1}--\eqref{ch4:equation:quick-sort3}分配移动路径最小的前$\beta$个贴装点至贴片头$h$,令$\mathcal{P} \left( b \right) _{kh} \leftarrow p_b$,$ b \in \left\{1, 2, \cdots, \beta \right\}$ \;
|
||||
}
|
||||
从$P\left( b \right)$中移除已分配的贴装点,$ b \in \left\{ 1, 2, \cdots, \beta \right\}$ \;
|
||||
\If{$\mathcal{P}^{\rm{REF}}$非空}
|
||||
{
|
||||
根据参考点分配贴片头贴装点,令$\mathcal{P} \left( \beta + 1 \right) _{kh} \leftarrow \mathcal{P}^{\rm{REF}} _{kh}$ 作为候选解 \;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
运用动态规划从候选解中筛选出前$\beta$个总移动用时最小的贴装点分配解$\mathcal{P}\left( b \right)$,对应的贴片头贴装顺序为$\mathcal{Q}\left( b \right)$,对应的贴装过程用时为$\mathcal{T} \left( b \right)$ \;
|
||||
更新集束未分配点集 $P \left( b \right) $,$b \in \left\{ 1, 2, \cdots, \beta\right\}$ \;
|
||||
}
|
||||
以当前最优解作为新的参考点 $\mathcal{P}^{\rm{REF}} \leftarrow \mathcal{P} \left( {\rm argmin}_{b \in \left\{1,\cdots,\beta + 1 \right\}} \mathcal{T} \left( b \right) \right)$ \;
|
||||
}
|
||||
\end{algorithm}
|
||||
\vspace{0.6em}
|
||||
% 动态导向
|
||||
集束搜索通过扩充集束宽度增加了搜索解的多样性,动态导向则以集束宽度增加前的已知最优解作为参考,在此基础上进行扩展搜索。图\ref{ch4:figure:beam-process}演示了动态导向的集束搜索过程。在为贴片头分配贴装点时,搜索树在迭代过程中对已知最优解进行了扩展,同时在剪枝过程中保留了当前最佳节点。
|
||||
集束搜索宽度的增加会对搜索树的搜索方向产生影响,贪心式地截断搜索树的结点可能会降低解的质量,本节在集束搜索中引入了最佳解作为导向点,引导搜索过程扩展结点,同时不会改变宽度增加可能引入的效率降低。
|
||||
可以说,动态导向的搜索过程避免了集束搜索的盲目性,有助于保留高质量的拾贴周期规划解,进而提升整体解的质量。
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.6]{chapter4/beam-search-process.eps}
|
||||
\bicaption[ch4:figure:beam-process]{}{具有导向点的贴装过程集束搜索过程示意图}{Fig. $\!$}{Schematic diagram of beam search process with guide points of placement process}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\subsection{基于自适应大邻域搜索的聚合路径重构算法}[Aggregated route relink algorithm based on adaptive large neighborhood search]
|
||||
|
||||
以贪心为基础的动态导向集束搜索确定了高质量的路径规划可行解,基于此,本节将进一步讨论路径的改进方案。为克服贪心式搜索的局限性,路径重构技术用于破坏和修复不同拾贴周期的已分配贴装点。重构过程是基于固定的供料器和ANC配置的优化,其同样受到贴片头任务分配结果的约束。本节提出的自适应大邻域聚合路径重构算法可作为贴装过程的在线优化方案,用于持续提升组装效率。
|
||||
|
||||
在邻域搜索过程中,路径重构本质上也是不断破坏和修复周期内拾贴路径的过程,与之对应的破坏和修复算子通常成对出现。
|
||||
传统的邻域搜索算法中,单一的邻域搜索策略仅能满足小部分解空间搜索的要求,容易陷入局部最优解。即使引入局部跳出策略,由于搜索空间的约束性和广泛性,算法找到全局最优解的概率仍然较小。变邻域搜索法通过引入多种邻域算子,大幅提升了搜索范围,自适应大邻域搜索则在此基础上,根据邻域解的质量调整不同邻域搜索算子的执行概率,运用启发式的信息指导搜索过程,算子间的相互竞争自适应生成当前解的邻域结构。
|
||||
|
||||
|
||||
算法\ref{ch4:algorithm:alns}给出了自适应大邻域聚合路径重构算法的整体框架。算法以大邻域搜索为基础,通过使用试探法交替地破坏和修复解来探索复杂邻域,改进初始解的质量。聚合过程以拾贴周期的移动路径和贴片头中心偏移量为基础,破坏算法从拾贴周期中移除已分配的贴装点,修复算法则在满足贴片头任务分配约束下,对移除的贴装点执行再分配的操作。自适应算法在搜索过程中,融合了Metropolis抽样稳定接受准则,通过调整破坏和修复算子的权重,实现搜索初期的大范围搜索,并最终迭代收敛至稳定解。
|
||||
|
||||
% \vspace{1em}
|
||||
\begin{algorithm}[!ht]
|
||||
\small
|
||||
\AlgoBiCaption{自适应大邻域搜索的聚合路径重构算法}{Adaptive large neighborhood search and aggregated route relink algorithm}
|
||||
\label{ch4:algorithm:alns}
|
||||
|
||||
\Input{贴片头元件分配解 $\mathcal{C}$, 贴片头贴装点分配解 $\mathcal{P}$}
|
||||
\Output{贴片头贴装点分配解 $\mathcal{P}^{*}$和贴装顺序解 $\mathcal{Q}^{*}$}
|
||||
以式\eqref{ch4:equation:cycle-center}--\eqref{ch4:equation:head-derivate}和$\mathcal{P}$计算拾贴周期中心$\left(\overline{X}, \overline{Y} \right)$,移动距离$\mathcal{D}$和中心偏移$\varrho$ \;
|
||||
|
||||
令$\mathcal{P}^{*} \leftarrow \mathcal{P}$, $\mathcal{D}^{*} \leftarrow \mathcal{D}$,$\overline{X}^{*} \leftarrow \overline{X}$,$\overline{Y}^{*} \leftarrow \overline{Y}$,$\mathcal{P}^{\prime}\leftarrow \mathcal{P}$, $\widetilde{\mathcal{D}}^{\prime} \leftarrow \mathcal{D}$,$\overline{X}^{\prime} \leftarrow \overline{X}$,$\overline{Y}^{\prime} \leftarrow \overline{Y}$\;
|
||||
|
||||
|
||||
\For{遍历最多迭代次数}
|
||||
{
|
||||
\While {未达到迭代终止条件}
|
||||
{
|
||||
令被移除贴装点集$P^{\rm{RM}} \leftarrow \varnothing$, 令$\mathcal{P} \leftarrow \mathcal{P}^{\prime}$,$\mathcal{D} \leftarrow \mathcal{D}$,$\overline{X} \leftarrow \overline{X}^{\prime}$,$\overline{Y} \leftarrow \overline{Y}^{\prime}$ \;
|
||||
|
||||
依概率 $\kappa^{-}$ 从集合$\Omega^{-}$选择破坏算子$l$,
|
||||
并根据$\mathcal{D}$和$\varrho$,选择若干拾贴周期-贴片头对$\left( k,h\right)$,构成集合$\Xi$\;
|
||||
|
||||
令$P^{\rm{RM}} \leftarrow P^{\rm{RM}} \cup \left\{ \mathcal{P}_{kh} \right\}$,$\mathcal{P}_{kh} \leftarrow 0$,$\forall \left(k, h\right) \in \Xi$,
|
||||
以式\eqref{ch4:equation:destroy-center1}--\eqref{ch4:equation:destroy-center2}更新$\left(\overline{X}, \overline{Y} \right)$ \;
|
||||
|
||||
|
||||
依概率 $\kappa^{+}$ 从$\Omega^{+}$选择修复算子$l$ \;
|
||||
|
||||
\For {遍历被移除贴装点$p \in P^{\rm{RM}}$}
|
||||
{
|
||||
以式\eqref{ch4:equation:quick-sort1}--\eqref{ch4:equation:quick-sort2}确定$\left(k, h\right) \in \Xi $时$p$ 对应的$\mathcal{X}_p$和$\mathcal{Y}_p$,记$t$为$\mathcal{X}_p$中值第$t$大的索引 \;
|
||||
|
||||
根据算子$l$和
|
||||
$\sum_{t=1}^{t=\left|\mathcal{X}_p\right|-1} \max \left( \left| \mathcal{X}_{pt} - \mathcal{X}_{p\left( t + 1 \right)} \right|, \left| \mathcal{Y}_{pt} - \mathcal{Y}_{p\left( t + 1 \right)} \right| \right) $的值,
|
||||
选择$k$和$h$,满足$\eta_{ip} = 1$, 其中$i = \mathcal{C}_{kh}$,
|
||||
令$\mathcal{P}_{kh} \leftarrow p$,$ \Xi \leftarrow \Xi \backslash \left\{ \left(k, h\right) \right\}$ \;
|
||||
}
|
||||
|
||||
|
||||
以式\eqref{ch4:equation:head-derivate}更新$\varrho$,以式\eqref{ch4:equation:repair-center1}--\eqref{ch4:equation:repair-center2}更新$\left(\overline{X}, \overline{Y} \right)$ \;
|
||||
|
||||
\If {满足式\eqref{ch4:equation:metropolis-equation}的{\rm Metropolis}接受准则}
|
||||
{
|
||||
令$\mathcal{P}^{\prime} \leftarrow \mathcal{P}$,$\mathcal{D}^{\prime} \leftarrow \mathcal{D}$,$\overline{X}^{\prime} \leftarrow \overline{X}$,$\overline{Y}^{\prime} \leftarrow \overline{Y}$ \;
|
||||
}
|
||||
\If {$\sum_{k \in K}\mathcal{D}_k < \sum_{k \in K}\mathcal{D}^{*}_k$}
|
||||
{
|
||||
令$\mathcal{P}^{*} \leftarrow \mathcal{P}$,$\mathcal{D}^{*} \leftarrow \mathcal{D}$,$\overline{X}^{*} \leftarrow \overline{X}$,$\overline{Y}^{*} \leftarrow \overline{Y}$,以动态规划确定$\mathcal{Q}^{*}$ \;
|
||||
}
|
||||
根据$\mathcal{D}$以及$\mathcal{P}$是否被接受,以式\eqref{ch4:equation:destroy-weight-update}--\eqref{ch4:equation:repair-weight-update}更新$\kappa^{-}$和$\kappa^{+}$,
|
||||
以式\eqref{ch4:equation:anls-prob-update}更新$\vartheta$ \;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
\end{algorithm}
|
||||
% \vspace{0.6em}
|
||||
|
||||
|
||||
|
||||
路径重构过程以拾贴周期为基本单位,路径的破坏以拾贴周期$k$的移动路径$\mathcal{D}_k$为依据,修复则以贴装点到拾贴周期$k$的中心位置$\left( \overline{X}_{k}, \overline{Y}_{k} \right)$为准,具体为
|
||||
\begin{equation}
|
||||
\overline{X}_{k} \leftarrow \sum_{h \in H} \frac{X_{\mathcal{P}_{kh}} - \left(h - 1 \right) \cdot \rho}{\left| H \right|}, \quad \overline{Y}_{k} \leftarrow \sum_{h \in H} \frac{Y_{\mathcal{P}_{kh}}}{\left| H \right|} \quad \forall k \in K
|
||||
\label{ch4:equation:cycle-center}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\mathcal{D}_{k} \leftarrow \sum_{q=\left(h_1, h_2\right) \in \mathcal{Q}_{k}} \max \left( \left| X_{\mathcal{P}_{kh_1}} - X_{\mathcal{P}_{kh_2}} - \left( h_1 - h_2 \right) \cdot \rho \right|, \left| Y_{\mathcal{P}_{kh_1}} - Y_{\mathcal{P}_{kh_2}} \right| \right) \quad \forall k \in K
|
||||
\label{ch4:equation:cycle-distance}
|
||||
\end{equation}
|
||||
选择破坏的拾贴周期时,共有三种不同的方案:随机选取,加权选取和贪心选取。加权和贪心的选取方式根据拾贴周期移动路径$\mathcal{D}$的长度进行选择破坏。贴装点的选取与拾贴的贴片头及其位置相关,根据中心位置偏移量$\varrho$确定,即
|
||||
\begin{equation}
|
||||
\varrho_{kh} \leftarrow
|
||||
\begin{cases}
|
||||
\infty & \mathcal{P}_{kh} = -1 \\
|
||||
\max \left\{ \overline{X}_k - X_p + \left( h - 1 \right) \cdot \rho, \overline{Y}_k - Y_p \right\} & p = \mathcal{P}_{kh} \neq 1
|
||||
\end{cases}
|
||||
\quad \forall k \in K, h \in H
|
||||
\label{ch4:equation:head-derivate}
|
||||
\end{equation}
|
||||
被选取的贴装点同对应的贴片头$h$相关,即$p = \mathcal{P}_{kh}$,未分配元件的贴片头不在选取之列。同理,选择被破坏路径的拾贴周期和对应的贴装点也有三种不同的方案——依据$\varrho$随机选取、加权选取和最远选取,不同的拾贴周期和贴片头的选取方案构成了9种不同的破坏-修复算子对。破坏过程选取一定比例的贴装点,增加邻域搜索的多样性。拾贴周期移除贴装点$p$后,其对应的拾贴周期$k$平均坐标点也随之调整,即
|
||||
\begin{equation}
|
||||
\overline{X}_k \leftarrow \left( 1 + \frac{1}{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) - 1}} \right) \cdot \overline{X}_k - \frac{ X_p - \left( h - 1 \right) \cdot \rho}{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) - 1}}
|
||||
\label{ch4:equation:destroy-center1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\overline{Y}_k \leftarrow \left( 1 + \frac{1}{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) - 1}} \right) \cdot \overline{Y}_k - \frac{ Y_p }{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) - 1}}
|
||||
\label{ch4:equation:destroy-center2}
|
||||
\end{equation}
|
||||
|
||||
对应地,移除拾贴周期$k$的贴片头$h$上的贴装点$p$,令$\mathcal{P}_{kh} \leftarrow 0$,将贴装点加入未分配点集。修复算子与破坏算子执行相反的操作,修复算子将未分配点集中的贴装点分配至空的贴片头上。修复算子本质上是发生在同类型元件贴装点之间的交换操作,其中交换的范围根据随机移除元件类型和贴装点数确定。
|
||||
贴片头分配新的贴装点$p$后,更新对应的拾贴周期$k$平均坐标。
|
||||
\begin{equation}
|
||||
\overline{X}_k \leftarrow \left( 1 - \frac{1}{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) + 1}} \right) \cdot \overline{X}_k + \frac{ X_p - \left( h - 1 \right) \cdot \rho}{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) + 1}}
|
||||
\label{ch4:equation:repair-center1}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\overline{Y}_k \leftarrow \left( 1 - \frac{1}{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) + 1}} \right) \cdot \overline{Y}_k + \frac{ Y_p }{\sum_{h^\prime \in H}{\left( \mathcal{P}_{kh^\prime} \neq 0 \right) + 1}}
|
||||
\label{ch4:equation:repair-center2}
|
||||
\end{equation}
|
||||
修复算子操作完成后,拾贴周期$k$对应的移动路径长度$\mathcal{D}_k$和贴片头拾贴先后顺序$\mathcal{Q}_k$由\ref{subsection:dynamic-program-route}节提出的动态规划法重新计算获得。
|
||||
|
||||
Metropolis抽样稳定准则在用于决定系统是否接受新状态,从而影响随机搜索的方向和收敛速度,其以一定概率$\chi$接受使整体优化目标变差的解,随着搜索过程的深入,接受差解的概率逐步降低,重复搜索过程,直到满足终止准则,得到改进的路径规划问题的较优解。记当前迭代解的拾贴周期$k$的移动路径为$\mathcal{D}_k$,完成修复-破坏后新解的拾贴周期$k$的移动路径长度为$\widetilde{\mathcal{D}}_k$,有
|
||||
\begin{equation}
|
||||
\chi =
|
||||
\begin{cases}
|
||||
1& \sum_{k \in K} \widetilde{\mathcal{D}}_k < \sum_{k \in K} \mathcal{D}_k \\
|
||||
e^{\left(- \sum_{k \in K} \frac{ \widetilde{\mathcal{D}}_k - \mathcal{D}_k }{T} \right)}& \sum_{k \in K} \widetilde{\mathcal{D}}_k \geq \sum_{k \in K} \mathcal{D}_k
|
||||
\end{cases}
|
||||
\label{ch4:equation:metropolis-equation}
|
||||
\end{equation}
|
||||
|
||||
记破坏算子和修复算子集合分别为$\Omega^{-}$和$\Omega^{+}$,搜索过程中,破坏算子和修复算子根据其对解产生的实际效果自适应地调整其动态权重$\kappa^{-}$和$\kappa^{+}$,破坏算子和修复算子的更新过程如式\eqref{ch4:equation:destroy-weight-update}和式\eqref{ch4:equation:repair-weight-update}所示。
|
||||
\begin{equation}
|
||||
\kappa^{-}_l \leftarrow \alpha \kappa^{-}_l + \left( 1 - \alpha \right) \cdot \Gamma \quad \forall l \in \Omega^{-}
|
||||
\label{ch4:equation:destroy-weight-update}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\kappa^{+}_l \leftarrow \alpha \kappa^{+}_l + \left( 1 - \alpha \right) \cdot \Gamma \quad \forall l \in \Omega^{+}
|
||||
\label{ch4:equation:repair-weight-update}
|
||||
\end{equation}
|
||||
其中$\alpha$表示算子权重的更新系数,$\Gamma$的取值与算子的执行效果相关,$\Gamma = \Gamma_1$时表示改善最优解,$\Gamma = \Gamma_2$时表示改善当前解,$\Gamma = \Gamma_3$时表示接受当前解,$\Gamma = \Gamma_4$时表示拒绝当前解,不同情况的取值互斥且满足$\Gamma_1 > \Gamma_2 > \Gamma_3 > \Gamma_4$。
|
||||
第$l$个破坏算子被调用的概率$\vartheta_l$根据权重决定,即
|
||||
\begin{equation}
|
||||
\vartheta_l =
|
||||
\begin{cases}
|
||||
\kappa^{-}_l / \sum_{l^\prime=1}^{\left|\Omega^{-}\right|} \kappa_{l^\prime}^{-} & l \in \Omega^{-} \\
|
||||
\kappa^{+}_l / \sum_{l^\prime=1}^{\left|\Omega^{+}\right|} \kappa_{l^\prime}^{+} & l \in \Omega^{+}
|
||||
\end{cases}
|
||||
\label{ch4:equation:anls-prob-update}
|
||||
\end{equation}
|
||||
|
||||
自适应聚合路径重构的过程作为一种启发式搜索算法,融合了贴装点布局的结构特征,动态调整路径破坏和重连的算子权重,根据算子的历史表现和搜索次数选择下次迭代的算子,通过算子间的相互竞争生成复杂的邻域结构,从而加速了更优解决方案的搜索过程。
|
||||
|
||||
\section{实验设计}[Experimental design]
|
||||
|
||||
本章提出的多源贪心的动态导向集束搜索(Multi-Point Greedy Beam Search with Dynamic Orientation,MPGBS-DO)算法和自适应大邻域聚合路径重构(Adaptive Large Neighborhood Aggregated Route Relink,ALNARR)算法分别用于生成和改进路径规划的解。
|
||||
为说明提出算法的实际效果,本章选取了四组不同的贴装过程路径优化算法,分别为同类型贴片机生产制造商发布的工业软件内置的元件贴装顺序优化器(Component Place Sequence Optimizer,CPSO),Ashayeri等\cite{ashayeri_aggregated_2011}提出的贪心分级贴装启发式(Greedy Level Placing Heuristic,GLPH)算法,Guo等\cite{geng_mcvrp-based_2019}提出的贴装聚类排序贪心启发式(Placement Cluster and Sequence Greedy Heuristic,PCSGH)算法和Gao等\cite{gao_hierarchical_2021}提出的贴装分配排序启发式(Place Allocation and Sequence Heuristic,PASH)算法。
|
||||
|
||||
实验程序运行和参数配置同第2章相同。
|
||||
本章所研究的以及用于对比的算法均是在贴片头任务分配约束下进行的路径规划算法,如无特殊说明,实验所用的贴片头任务分配结果均选用第3章提出的算法获得。
|
||||
对比实验所用的10组PCB数据组5参数如表\ref{ch4:table:pcb-data}所示,各类型元件的可用供料器数均为1。其中,第一组数据为IPC-9850,该数据是由表面贴装设备标准集成设备附属委员会提出的,用以描述组装机器性能的标准化测试数据。
|
||||
在实际验证中,各组电路板数据的组装用时取最近三次运行的稳定结果,以其平均值作为比较所用的指标。
|
||||
% 为说明算法的实际运行结果的组装效率,
|
||||
% 本节在自主研发的表面贴装设备实验平台上开展了对比实验,实验平台如图\ref{ch4:figure:platform}所示。
|
||||
|
||||
|
||||
\begin{table}[!hb]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:pcb-data]{}{PCB数据的基本参数}{Table $\!$}{Basic parameters of PCB data}
|
||||
\begin{tabular}{p{2.5cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}}
|
||||
\toprule
|
||||
PCB & 5-1 & 5-2 & 5-3 & 5-4 & 5-5 & 5-6 & 5-7 & 5-8 & 5-9 & 5-10 \\
|
||||
\midrule
|
||||
吸嘴类型数 & 1 & 1 & 1 & 2 & 3 & 3 & 3 & 3 & 4 & 3 \\
|
||||
元件类型数 & 1 & 7 & 18 & 4 & 5 & 6 & 16 & 20 & 10 & 24 \\
|
||||
贴装点数 & 400 & 564 & 176 & 352 & 384 & 336 & 114 & 150 & 196 & 236 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\subsection{基于启发式的贴装过程路径规划的对比实验}[Comparative experiments on heuristic-based path planning for placement process]
|
||||
|
||||
MPGBS-DO算法是一类基于规则的启发式路径规划,用于比较的集束宽度设定为4。
|
||||
贴片头的任务分配结果作为贴装过程的约束条件之一,限制了贴装过程解优化目标的边界值,确定了贴片头的拾取过程的路径,而并未对其贴装路径及基座-电路板间的往返路径进行优化。本章提出的路径规划算法同时对贴装过程和往返过程进行了优化,表\ref{ch4:table:route-same-head}比较了相同贴片头任务分配下不同启发式路径规划算法结果,CPSO因未开源实现方式不在比较之列。实验结果表明,本章提出的MPGBS-DO路径规划的贴装用时$ \mathcal{T}^{\rm{BASE}} $相较于GLPH和PCSGH的贴装过程用时$ \mathcal{T}^{\rm{GLPH}} $和$ \mathcal{T}^{\rm{PCSGH}} $分别缩短了14.41\%和14.97\%,和同为考虑了贴片头线性排列的PASH的结果$ \mathcal{T}^{\rm{PASH}} $在贴装过程用时上缩短了2.77\%。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:route-same-head]{}{相同贴片头任务下MPGBS-DO算法和其他算法的贴装过程用时比较}{Table $\!$}{\centering Comparison of placement process time between MPGBS-DO algorithm and other algorithm in the same PAP head task}
|
||||
\begin{tabular}{p{0.7cm}<{\centering}p{2.3cm}<{\centering}p{1.5cm}<{\centering}p{1cm}<{\centering}p{1.6cm}<{\centering}p{1cm}<{\centering}p{1.5cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & MPGBS-DO & \multicolumn{2}{c}{GLPH} & \multicolumn{2}{c}{PCSGH} & \multicolumn{2}{c}{PASH} \\
|
||||
\cmidrule(lr){2-2} \cmidrule(lr){3-4} \cmidrule(lr){5-6} \cmidrule(lr){7-8}
|
||||
& $ \mathcal{T}^{\rm{BASE}} $ (s) & $\mathcal{T}^{\rm{GLPH}}$ (s) & $ \mathcal{G} $ (\%) & $\mathcal{T}^{\rm{PCSGH}}$ (s) & $ \mathcal{G} $ (\%) & $ \mathcal{T}^{\rm{PASH}} $ (s) & $ \mathcal{G} $ (\%) \\
|
||||
\midrule
|
||||
5-1 & 40.01 & 61.42 & 34.86 & 59.35 & 32.59 & 42.32 & 5.46 \\
|
||||
5-2 & 69.93 & 86.05 & 18.73 & 92.71 & 24.47 & 73.16 & 4.41 \\
|
||||
5-3 & 28.29 & 33.30 & 15.07 & 30.92 & 8.52 & 28.99 & 4.41 \\
|
||||
5-4 & 50.31 & 59.26 & 15.10 & 61.72 & 18.48 & 50.56 & 0.50 \\
|
||||
5-5 & 58.26 & 66.17 & 11.95 & 70.04 & 16.81 & 60.74 & 4.07 \\
|
||||
5-6 & 51.04 & 57.35 & 11.00 & 60.07 & 15.03 & 51.59 & 1.06 \\
|
||||
5-7 & 17.59 & 18.98 & 7.32 & 19.53 & 9.93 & 17.88 & 1.64 \\
|
||||
5-8 & 24.38 & 29.33 & 16.89 & 27.08 & 9.99 & 24.79 & 1.64 \\
|
||||
5-9 & 33.93 & 36.31 & 6.60 & 37.94 & 10.62 & 35.05 & 3.25 \\
|
||||
5-10 & 33.38 & 35.74 & 6.60 & 34.49 & 3.21 & 34.48 & 3.19 \\
|
||||
\cmidrule(lr){1-8}
|
||||
AVG & & & 14.41 & & 14.97 & & 2.77 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
% 贴装过程的路径规划结果受到贴片头任务分配的影响,二者之间存在较强的耦合关系。
|
||||
由于贴片头任务分配与贴装路径规划之间存在关联,本节将进一步讨论在不同贴片头任务分配约束条件下,路径规划算法的组装效率对比。此前已分析了影响组装效率的关键性能指标,验证了不同贴片头任务分配算法在子目标之间存在显著差异,故直接对比贴装过程中的移动路径用时缺乏公平性。在评估组装效率的主要指标体系中,拾贴周期数是评价基座-供料器往返移动路径及贴装路径之和对组装效率影响的指标之一。因此,在比较不同贴片头约束下的路径规划算法时,本节选取拾贴周期的平均移动用时作为评价标准,此参数同时也对应贴片头任务分配模型中拾贴周期数的权重系数,且值更为准确。
|
||||
|
||||
表\ref{ch4:table:diff-head}以拾贴周期平均贴装过程用时为指标比较了不同的路径规划方法,其中的差距值$\mathcal{G}$是相较于MPGBS-DO得到的结果。由表可知,本章提出的MPGBS-DO得到的平均贴装过程用时优于工业软件内置的CPO-CPSO的结果$\mathcal{T}^{\rm{CC}}$,与CDGA-PASH的结果$\mathcal{T}^{\rm{CP}}$有相近的表现。在具有相近子目标的贴片头优化算法中,AMIP-GLPH在拾贴周期和吸嘴更换上与MPGBS-DO对应的贴片头任务分配结果接近,然而,AMIP-GLPH平均贴装过程移动用时$\mathcal{T}^{\rm{AG}}$更长,且更多的拾取次数和贴装过程移动用时使AMIP-GLPH组装效率较低。HGA-PCSGH得到的结果$\mathcal{T}^{\rm{HP}}$则是在基于禁止吸嘴更换和构造同步拾取组的方案下进行的路径规划,较多的拾贴周期数导致其平均拾贴周期的移动用时指标值较优,而悬臂频繁的基座-供料器往返移动会降低整体组装效率。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:diff-head]{}{不同贴片头任务下路径规划算法的拾贴周期平均贴装过程用时的比较}{Table $\!$}{\centering
|
||||
Comparison of average placement time of PAP cycle of different path planning algorithms with different PAP head task}
|
||||
\small
|
||||
\begin{tabular}{p{1cm}<{\centering}p{1cm}<{\centering}p{1.5cm}<{\centering}p{1cm}<{\centering}p{1.5cm}<{\centering}p{1cm}<{\centering}p{1.5cm}<{\centering}p{1cm}<{\centering}p{1.5cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & \multicolumn{2}{c}{CPO-CPSO} & \multicolumn{2}{c}{AMIP-GLPH} & \multicolumn{2}{c}{HGA-PCSGH} & \multicolumn{2}{c}{CDGA-PASH} \\
|
||||
\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
|
||||
& \makecell[c]{ $ \mathcal{T}^{\rm{CC}} $ \\ (ms)} & $ \mathcal{G} $ (\%) &\makecell[c]{ $\mathcal{T}^{\rm{AG}}$ \\ (ms)} & $ \mathcal{G} $ (\%) & \makecell[c]{$\mathcal{T}^{\rm{HP}}$ \\ (ms)} & $ \mathcal{G} $ (\%) &\makecell[c]{ $ \mathcal{T}^{\rm{CP}} $ \\ (ms)} & $ \mathcal{G} $ (\%) \\
|
||||
\midrule
|
||||
5-1 & 596.3 & -0.14 & 916.3 & 34.83 & 424.1 & -40.80 & 834.1 & 28.41 \\
|
||||
5-2 & 765.9 & 2.86 & 996.8 & 25.37 & 508.9 & -46.20 & 783.4 & 5.03 \\
|
||||
5-3 & 916.7 & -2.85 & 1230.7 & 23.39 & 920.2 & -2.47 & 870.1 & -8.36 \\
|
||||
5-4 & 788.9 & -2.86 & 901.7 & 10.01 & 803.7 & -0.97 & 721.3 & -12.50 \\
|
||||
5-5 & 715.2 & -13.14 & 915.5 & 11.61 & 975.9 & 17.08 & 869.5 & 6.94 \\
|
||||
5-6 & 827.7 & 3.64 & 968.4 & 17.64 & 915.2 & 12.85 & 838.3 & 4.86 \\
|
||||
5-7 & 893.5 & 17.99 & 836.2 & 12.37 & 809.1 & 9.43 & 770.8 & 4.93 \\
|
||||
5-8 & 905.6 & 15.88 & 1092.0 & 30.24 & 518.1 & -47.03 & 820.9 & 7.20 \\
|
||||
5-9 & 902.5 & 16.49 & 811.5 & 7.13 & 814.1 & 7.43 & 519.2 & -45.16 \\
|
||||
5-10 & 760.4 & 2.44 & 901.9 & 17.75 & 732.9 & -1.21 & 757.6 & 2.07 \\
|
||||
\cmidrule(lr){1-9}
|
||||
AVG & & 4.03 & ~ & 19.03 & ~ & -9.19 & ~ & -0.66 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
表\ref{ch4:table:diff-beam}进一步分别比较了集束宽度为1、4、7和10情形下的拾贴周期贴装过程平均用时$\mathcal{T}$以及不同搜索策略对整体组装效率的影响,当集束搜索过程无动态导向时,算法可视为多源贪心集束搜索(Multi-Point Greedy Beam Search,MPGBS),而当集束宽度为1时,算法则进一步退化为多源贪心搜索(Multi-Point Greedy Search,MPGS)。由表可知,集束宽度的增加将缩短拾贴周期的平均贴装过程的移动用时,无动态导向的集束搜索会盲目搜索低质量的解,导致集束宽度增加对解的质量改进有限。动态导向的引入通过调整搜索方向进一步提升了解的质量。表\ref{ch4:table:diff-beam}中MPGS和MPGBS对应的$\mathcal{G}$分别表示由贪心搜索调整为集束搜索和在集束搜索中引入动态导向的效率改进值。当集束宽度由1增加至4,电路板的贴装过程用时平均缩短1.30\%,动态导向的引入则将贴装过程用时进一步缩短了1.85\%,二者结合共同构成了有确定性解的多源贪心动态导向集束路径规划算法。
|
||||
|
||||
\begin{table}[htb]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:diff-beam]{}{不同集束宽度和搜索策略对路径规划解的质量影响比较}{Table $\!$}{\centering Comparison of effectiveness of different beam width and search strategies on the quality of path planning solutions}
|
||||
\small
|
||||
\begin{tabular}{p{0.7cm}<{\centering}p{1.7cm}<{\centering}p{1.7cm}<{\centering}p{1.7cm}<{\centering}p{1.7cm}<{\centering}p{2cm}<{\centering}p{2cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & \multicolumn{4}{c}{MPGBS} & MPGS & MPGBS-DO \\
|
||||
\cmidrule(lr){2-5} \cmidrule(lr){6-6} \cmidrule(lr){7-7}
|
||||
& \makecell[c]{ $\mathcal{T} : \beta = 1 $ \\ (ms)} & \makecell[c]{ $\mathcal{T} : \beta = 4 $ \\ (ms)} & \makecell[c]{ $\mathcal{T} : \beta = 7 $ \\ (ms)} & \makecell[c]{ $\mathcal{T} : \beta = 10 $ \\ (ms)} & $ \mathcal{G} $ (\%) & $ \mathcal{G} $ (\%) \\
|
||||
\midrule
|
||||
5-1 & 625.3 & 620.7 & 617.3 & 617.3 & 0.74 & 3.96 \\
|
||||
5-2 & 796.3 & 787.7 & 787.7 & 787.7 & 1.09 & 5.88 \\
|
||||
5-3 & 1000.0 & 990.1 & 978.7 & 978.6 & 1.00 & 5.01 \\
|
||||
5-4 & 819.9 & 811.3 & 803.2 & 803.2 & 1.06 & -0.02 \\
|
||||
5-5 & 821.0 & 804.3 & 797.9 & 797.9 & 2.07 & -0.60 \\
|
||||
5-6 & 815.1 & 807.7 & 806.7 & 803.3 & 0.92 & 1.27 \\
|
||||
5-7 & 768.0 & 746.1 & 746.1 & 746.1 & 2.93 & 1.82 \\
|
||||
5-8 & 768.0 & 763.2 & 763.2 & 762.3 & 0.63 & 0.18 \\
|
||||
5-9 & 760.4 & 746.5 & 746.5 & 746.4 & 1.86 & -0.94 \\
|
||||
5-10 & 762.3 & 756.6 & 754.6 & 750.7 & 0.75 & 1.99 \\
|
||||
\cmidrule(lr){1-7}
|
||||
AVG & ~ & ~ & ~ & ~ & 1.30 & 1.85 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
|
||||
\subsection{基于邻域搜索的贴装过程路径规划的对比实验}[Comparative experiments on the neighborhood search-based path planning for placement process]
|
||||
|
||||
自适应大邻域搜索用于在线持续更新路径迭代过程的解,表\ref{ch4:table:alns-parm}列出了自适应大邻域搜索相关的参数,其中各轮搜索的最大迭代次数为2000。根据路径规划解的数值,Metropolis稳定性准则的初始温度设定为1,迭代终止温度为0.2,降温系数为0.8。在每轮搜索中,30\%的拾贴周期中单个贴片头的路径被破坏和修复。在自适应搜索过程中,改善已知最优解和当前最优解的奖励分数分别为3和2,采用概率接受的奖励分数为0.8,拒绝当前解奖励分数为0.2,修复和破坏算子的权重更新系数为0.5。所有算子的调用概率均根据其权重系数确定。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:alns-parm]{}{自适应大邻域聚合路径重构搜索参数}{Table $\!$}{Parameters of adaptive large neighborhood aggregation route relink search}
|
||||
\begin{tabular}{p{3.2cm}<{\centering}p{2cm}<{\centering}p{3.2cm}<{\centering}p{2cm}<{\centering}}
|
||||
\toprule
|
||||
参数 & 设定值 & 参数 & 设定值\\
|
||||
\midrule
|
||||
最大迭代次数 & 2000 & 改善最优解分数 & 3 \\
|
||||
迭代最终温度 & 1 & 改善当前解分数 & 2\\
|
||||
迭代终止温度 & 0.2 & 接受当前解分数 & 0.8 \\
|
||||
降温系数 & 0.8 & 拒绝当前解分数 & 0.2 \\
|
||||
拾贴周期破坏比率 & 0.3 & 算子权重更新系数 & 0.5 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
为说明自适应大邻域搜索的实际效果,本节比较了随机生成(Random Generation,RG)与启发式规则构造(Heuristic Rule Construction,HRC)分别作为初始解在自适应搜索过程中的迭代效果,其中,后者采用本章提出的MPGBS-DO路径规划算法,对应的拾贴周期平均贴装过程用时分别被记为$\mathcal{T}^{\rm{RG}}$和$\mathcal{T}^{\rm{HRC}}$。迭代搜索过程共重复5次取平均值,结果如表\ref{ch4:table:alns-compare}所示。由表可知,本章所提出的大邻域搜索算法相较于规则构造的初始解平均可缩短贴装过程时间1.85\%,即使是随机构造生成的初始解,邻域搜索算法仍可将其迭代收敛至与已知最优解平均误差4.50\%,最大误差11.04\%以内。自适应大邻域搜索给构造启发式的解带来的提升相对较少,主要是由于其已产生质量较高的解,可供邻域搜索解提升范围有限。即使是较小的提升在较多拾贴周期中也有一定的累积。此外,邻域搜索虽然也能提升随机生成解的质量,但由于初始解的不确定性,导致算法在早期阶段无法有效地缩小搜索范围,从而影响收敛速度、进而降低解的质量,构造解则有效地规避了这一问题。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:alns-compare]{}{随机生成和启发式规则构造初始解在迭代过程中的优化结果}{Table $\!$}{\centering Optimization result of initial solutions of random generation and heuristic rule construction in the iterative process}
|
||||
\small
|
||||
\begin{tabular}{p{0.7cm}<{\centering}p{2cm}<{\centering}p{1.5cm}<{\centering}p{2cm}<{\centering}p{1.5cm}<{\centering}p{2cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & \multicolumn{2}{c}{HRC + ALNARR} & \multicolumn{2}{c}{RG + ALNARR} & MPGBS-DO \\
|
||||
\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-6}
|
||||
& $\mathcal{T}^{\rm{HRC}}$ (ms) & $\mathcal{G}$ (\%) & $\mathcal{T}^{\rm{RG}}$ (ms) & $\mathcal{G}$ (\%) & $\mathcal{T}$ (ms) \\
|
||||
\midrule
|
||||
|
||||
5-1 & 590.8 & 1.06 & 656.1 & 11.04 & 597.1 \\
|
||||
5-2 & 742.8 & 0.16 & 801.7 & 7.93 & 744.0 \\
|
||||
5-3 & 916.3 & 2.90 & 941.6 & 2.76 & 942.8 \\
|
||||
5-4 & 803.3 & 1.01 & 847.2 & 5.46 & 811.5 \\
|
||||
5-5 & 785.8 & 2.98 & 821.3 & 4.51 & 809.2 \\
|
||||
5-6 & 783.3 & 1.82 & 808.4 & 3.20 & 797.6 \\
|
||||
5-7 & 721.1 & 1.62 & 758.4 & 5.18 & 732.8 \\
|
||||
5-8 & 748.2 & 1.82 & 763.6 & 2.06 & 761.8 \\
|
||||
5-9 & 724.8 & 3.98 & 735.4 & 1.46 & 753.6 \\
|
||||
5-10 & 733.5 & 1.13 & 743.7 & 1.39 & 741.9 \\
|
||||
\midrule
|
||||
AVG & ~ & 1.85 & ~ & 4.50 & ~ \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
图\ref{ch4:figure:curve}进一步比较了10组数据的ALNARR搜索过程的收敛曲线。贴片头的任务分配限制了初始解的生成,对于单类元件有较多贴装点的情形,其随机初始解效果远差于构造初始解,进而降低最终解的质量。本章提出的ANLARR具有快速收敛的能力,在有限次迭代内,随机初始解能快速接近构造初始解的值。构造启发式已经获得了质量较高的初始解,自适应搜索过程仍能在此基础上持续优化,获得更优解,且解的质量始终优于随机生成解的迭代结果。
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\begin{minipage}{0.32\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-1 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-1}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.32\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-2 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-2}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.32\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-3 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-3}
|
||||
\end{minipage}
|
||||
\vspace{2pt}
|
||||
\begin{minipage}{0.32\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-4 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-4}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.32\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-5 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-5}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.32\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-6 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-6}
|
||||
\end{minipage}
|
||||
\vspace{2pt}
|
||||
\begin{minipage}{0.33\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-7 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-7}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.33\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-8 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-8}
|
||||
\end{minipage}
|
||||
\vspace{2pt}
|
||||
\begin{minipage}{0.33\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-9 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-9}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.33\linewidth}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter4/PCB5-10 Iteration.eps}}
|
||||
\vspace{-0.5em}
|
||||
\centerline{PCB 5-10}
|
||||
\end{minipage}
|
||||
\vspace{0.5em}
|
||||
\bicaption[ch4:figure:curve]{}{自适应大邻域聚合路径重构随机初始值和构造初始值收敛曲线图}{Fig. $\!$}{\centering Convergence curves of adaptive large neighborhood aggregated route relink with random and constructive initial values}
|
||||
\end{figure}
|
||||
|
||||
基于表\ref{ch4:table:diff-head},表\ref{ch4:table:real-platform}进一步比较了各类贴片头任务-贴装过程路径规划相结合优化得到的解在贴片机平台上的实际组装效率,其中组装时间被转换为了标准的单位芯片/每小时(Chip Per Hour,CPH)。本文提出的贴片头任务分配结果与ALNARR算法相结合,在标准速度测试数据IPC-9850上组装效率指标优于工业优化求解器的组装效率$\mathcal{E}^{\rm{CC}}$,在整体组装效率上相较其平均提升7.72\%。随着问题规划的扩大,电路板贴装元件类型更加复杂,其在组装效率上提升的优势也更加显著。AMIP-GLPH和HGA-PCSGH分别作为数学规划法和(元)启发式算法的代表,二者的组装效率分别记为$\mathcal{E}^{\rm{AG}}$和$\mathcal{E}^{\rm{HP}}$。然而,前者未考虑贴片头的同步拾取,后者则未平衡好贴片头的吸嘴更换与同步拾取,使得其整体组装效率不高,本文提出的方法相较其分别提升39.25\%和23.00\%。CDGA-PASH相对全面的考虑了组装过程,其组装效率记为$\mathcal{E}^{\rm{CP}}$,该算法的输出结果存在不确定性,在处理复杂元件数据时的优化结果并不理想,本文提出的方法相较于其平均提升23.16\%。
|
||||
图\ref{ch4:figure:time-comparison}比较了不同优化方法的平均组装效率分布,由图可知,本文提出的算法和工业求解器的结果输出比较稳定,且平均组装效率更高。基于进化算法的优化方法结果输出相对不稳定,而基于数学规划的优化方法对其中影响组装效率的主要因素拾取数考虑不足,在所有的优化方法中组装效率最低。
|
||||
从整体上来说,贴片头任务分配优化的目标在组装效率中仍为主要因素,贴装过程路径在其中的影响占比相对较小,本文提出的方法整体效率上优于工业软件和主流研究的优化算法。
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:real-platform]{}{不同贴片头元件分配和贴装过程路径规划算法组合的实际组装效率比较}{Table $\!$}{\centering Comparison of the actual assembly efficiency of different combinations of head task assignment and placement path planning algorithms}
|
||||
\small
|
||||
\begin{tabular}{p{0.7cm}<{\centering}p{1.5cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB} & ALNARR & \multicolumn{2}{c}{CPO-CPSO} & \multicolumn{2}{c}{AMIP-GLPH} & \multicolumn{2}{c}{HGA-PCSGH} & \multicolumn{2}{c}{CDGA-PASH} \\
|
||||
\cmidrule(lr){2-2} \cmidrule(lr){3-4} \cmidrule(lr){5-6} \cmidrule(lr){7-8} \cmidrule(lr){9-10}
|
||||
& \makecell[c]{$\mathcal{E}^{\rm{ALNARR}}$ \\ (CPH)} & \makecell[c]{ $\mathcal{E}^{\rm{CC}}$ \\ (CPH) } & $\mathcal{G} (\%) $ & \makecell[c]{$\mathcal{E}^{\rm{AG}}$ \\ (CPH)} & $\mathcal{G} (\%) $ & \makecell[c]{$\mathcal{E}^{\rm{HP}}$ \\ (CPH)} & $\mathcal{G} (\%) $ & \makecell[c]{$\mathcal{E}^{\rm{CP}}$ \\ (CPH)} & $\mathcal{G} (\%) $ \\
|
||||
\midrule
|
||||
5-1 & 12627 & 12604 & 0.19 & 10681 & 18.22 & 7005 & 80.26 & 11733 & 7.62 \\
|
||||
5-2 & 11306 & 11255 & 0.45 & 6991 & 61.72 & 7035 & 60.71 & 10673 & 5.93 \\
|
||||
5-3 & 16023 & 16003 & 0.12 & 11460 & 39.81 & 14958 & 7.12 & 12462 & 28.57 \\
|
||||
5-4 & 14527 & 14648 & -0.82 & 12527 & 15.97 & 13582 & 6.96 & 13115 & 10.77 \\
|
||||
5-5 & 15023 & 11716 & 28.23 & 11742 & 27.94 & 14054 & 6.90 & 12917 & 16.30 \\
|
||||
5-6 & 15631 & 15799 & -1.06 & 9741 & 60.46 & 15512 & 0.77 & 15034 & 3.97 \\
|
||||
5-7 & 15263 & 13022 & 17.21 & 9932 & 53.67 & 12346 & 23.62 & 11372 & 34.21 \\
|
||||
5-8 & 13839 & 11627 & 19.02 & 8843 & 56.50 & 10457 & 32.34 & 7556 & 83.15 \\
|
||||
5-9 & 13811 & 13059 & 5.76 & 11613 & 18.22 & 13379 & 3.23 & 12764 & 8.20 \\
|
||||
5-10 & 13065 & 12087 & 8.09 & -- & -- & 12087 & 8.09 & 9830 & 32.90 \\
|
||||
\midrule
|
||||
AVG & & & 7.72 & & 39.25 & & 23.00 & & 23.16 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\includegraphics[scale=0.5]{figures/chapter4/cph-trend-comparison.eps}
|
||||
\bicaption[ch4:figure:time-comparison]{}{不同优化方法的平均表面组装效率分布比较}{Fig. $\!$}{\centering Comparison of average surface assembly efficiency distribution of different optimization methods}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\subsection{运行效率分析}[Analysis of solving efficiency]
|
||||
|
||||
最后,本节比较了基于启发式规则和基于邻域搜索的贴装过程路径规划搜索用时,如表\ref{ch4:table:time-compare}所示。相较于已有的路径规划方法,本章提出的MPGBS-DO搜索范围更广、用时更长且获得的解的质量更高,其与ALNARR算法的运算时间仍在可接受范围内。主流研究中的贴装过程路径规划方法虽然搜索速度快,但是解的质量偏低,对贴装过程的考虑不全面。集束搜索过程用时和集束宽度之间存在着正相关关系,其增幅主要取决于不同元件对应的贴装点数。对于前2个数据PCB5-1和5-2,其各类元件对应的贴装点数较多,贴片头可分配贴装点的候选解较多,因而随着集束宽度的增加,其搜索用时也随之迅速增加,限制了集束搜索宽度的进一步扩大。在实际应用中,根据不同类型元件的贴装点数,调整单一贴片头的贴装点分配策略或将同类元件进行分组,将有助于缩短搜索用时。自适应大邻域搜索整体用时较长,可作为在线运行算法在表面组装过程中实时改进优化,进一步提高组装效率。
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\bicaption[ch4:table:time-compare]{}{基于启发式规则和基于邻域搜索的贴装过程路径规划求解时间}{Table $\!$}{\centering Solving time of path planning for placement process based on heuristic rules and neighborhood search}
|
||||
\begin{tabular}{p{1cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.8cm}<{\centering}}
|
||||
\toprule
|
||||
& \multicolumn{4}{c}{MPGBS-DO} & \multirow{2}{*}{ALNARR} \\
|
||||
\cmidrule(lr){2-5}
|
||||
PCB & $\beta = 1$ (s)& $\beta = 2$ (s) & $\beta = 3$ (s)& $\beta = 4$ (s) & (s) \\
|
||||
\midrule
|
||||
5-1 & 5.88 & 23.28 & 46.52 & 75.40 & 57.46 \\
|
||||
5-2 & 7.66 & 30.52 & 60.85 & 98.90 & 77.00 \\
|
||||
5-3 & 0.50 & 1.96 & 4.02 & 6.47 & 28.96 \\
|
||||
5-4 & 2.06 & 8.20 & 16.25 & 26.22 & 51.17 \\
|
||||
5-5 & 2.26 & 8.99 & 17.82 & 28.79 & 58.85 \\
|
||||
5-6 & 1.44 & 5.89 & 11.71 & 18.89 & 52.18 \\
|
||||
5-7 & 0.25 & 0.82 & 1.65 & 2.62 & 40.97 \\
|
||||
5-8 & 0.41 & 1.55 & 3.05 & 4.96 & 26.98 \\
|
||||
5-9 & 0.51 & 2.12 & 4.16 & 6.70 & 37.23 \\
|
||||
5-10 & 0.61 & 2.38 & 4.76 & 7.65 & 26.17 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\section{本章小结}[Summary of this chapter]
|
||||
本章研究了适用于表面组装的贴装过程路径规划的启发式算法,结合多轴运动的相关性和移动位置的可变性,提出了基于动态规划的周期内路径规划算法,保证了单个周期路径规划解的最优性。为确定各贴片头分配的贴装点,本章提出了基于多源贪心的动态导向集束路径规划算法,算法以贪心搜索为基础,通过不同的起始点搜索多种解,融合了集束策略并在搜索过程中动态调整搜索方向。为克服贪心式搜索的局限性,本章进一步提出了基于自适应大邻域搜索的聚合路径重构算法,以Metropolis接受准则跳出局部最优解,自适应地调整路径的破坏和修复算子权重,通过重新分配贴片头的贴装点改进解的质量。实验结果表明,多源贪心和动态导向的集束搜索有助于增加搜索解的多样性,进而获得了高质量的路径规划解;
|
||||
自适应大邻域路径重构则有效改进了拾贴周期贴装点分配不均的问题,实现了从全局角度对解的持续优化改进。
|
775
body/chapter5.tex
Normal file
775
body/chapter5.tex
Normal file
@ -0,0 +1,775 @@
|
||||
% !Mode:: "TeX:UTF-8"
|
||||
|
||||
\chapter{表面组装过程中生产线的负载平衡算法}[Workload balancing algorithm for the assembly line in surface assembly process]
|
||||
|
||||
\section{引言}[Introduction]
|
||||
|
||||
% === 研究内容和研究意义 ===
|
||||
在第3--4章中,本文已对并列式贴片机的组装过程优化算法开展了深入的研究。
|
||||
为进一步提升组装效率,制造商通常会将多个贴片机级联成生产线,而此过程涉及到生产线的负载平衡问题。
|
||||
负载平衡算法研究的是如何平衡多台贴片机之间的生产任务,通过调整元件在生产线上分配的贴片机,提升生产线中瓶颈设备的组装效率。
|
||||
负载平衡的结果决定了贴片机的生产任务,而贴片机的组装过程效率又用于评估负载平衡分配的结果,两个问题之间的耦合性增加了问题求解的难度。
|
||||
解空间的庞大性以及评估解质量的复杂性是表面组装生产线负载平衡优化任务的主要难点,本章将从组装元件的分配策略以及组装时间的估计两个角度开展研究,提出表面组装生产线的负载平衡算法。
|
||||
% 生产线负载平衡问题对算法的搜索效率提出了较高的要求。高效率的迭代搜索是算法求解复杂优化问题的关键,而贴片机的组装过程优化用时较长,在有限的时间内不足以全面评估所有负载平衡分配的结果来获取准确组装时间。因此,本章提出一种基于多特征融合集成时间预测的超启发式表面组装生产线负载平衡算法,有效地提升了表面组装生产线的组装效率。
|
||||
|
||||
|
||||
超启发式算法是一类解决复杂优化问题的通用算法,其通过高层次启发式来管理和操作一系列底层启发式算子,实现对大规模组合优化问题的寻优\cite{tansel_hyper_heuristic_2024},在复杂问题求解中展现出强大的适应性、有效性和可扩展性。
|
||||
% 被广泛应用于路径规划\cite{wang_explaining_2024}、车辆调度\cite{chen_cooperative_2023}、流水车间规划\cite{zhao_estimation_2023}等多个领域。
|
||||
算法由高层启发式和底层启发式构成。
|
||||
其中,高层启发式不依赖于具体问题,直接管理和操纵底层启发式算法,通常具有通用的求解结构和较高的求解效率;
|
||||
底层启发式算子的设计可根据问题特性,融合领域知识和专家经验等,构造多样化的搜索算子,以进一步提升算法的寻优能力。
|
||||
% 此外,底层启发式可扩展延伸集成更多的底层算子,使得超启发式算法具有较强的灵活性和可扩展性。
|
||||
超启发式算法通过决策底层算子的执行顺序,实现了对问题分阶段求解,并可根据解决方案的评估价值,调整底层算子操作的执行顺序。
|
||||
在表面组装过程中,贴装点分配构成了负载平衡的基本决策环节,超启发式算法通过确定不同阶段分配给生产线贴片机的贴装点元件类型和数量,得到了不同的负载分配解决方案。
|
||||
|
||||
|
||||
高效率的迭代搜索是算法求解复杂优化问题的关键,而执行贴片机的组装过程优化用时较长,在有限的时间内不足以全面评估所有负载平衡分配的结果来获取准确组装时间。
|
||||
% 解的质量影响着超启发式算法的搜索方向,生产线的负载平衡和贴片机的组装过程优化作为相对独立的问题,在可接受的时间代价内,无法通过完全执行贴片机的优化来评估生产线负载平衡解的质量,因此需要运用时间估计器评估解的质量。
|
||||
以机器学习为基础的时间估计器在各类产能预测问题中被广泛应用且具有较高的准确度,特别是在处理复杂、非线性以及多变量交互影响的估计问题上,其优势尤为明显。估计器通过学习历史数据的模式,自动调整模型参数,具备一定的泛化能力,并可以实现实时或接近实时的时间估计,适用于表面组装过程时间估计问题。
|
||||
|
||||
|
||||
\section{问题分析}[Problem analysis]
|
||||
|
||||
生产线的平衡优化通过对各工序的作业内容、时间和效率的分析,改进或调整其中瓶颈工序的作业顺序,以实现机器工作负载的平衡,在过去已有较为充分的研究\cite{boysen_assembly_2022}。
|
||||
表面组装生产线负载平衡问题可被视为一类特殊的生产线平衡优化问题,电路板上元件组装可被视为不同的生产工序。
|
||||
优化算法将元件分配至不同的贴片机完成装配过程,同类型的元件可被分配到多台贴片机以提高装配效率。
|
||||
表面组装生产线的负载平衡优化更为复杂之处在于装配时间的计算。生产线的效率取决于各贴片机的组装过程效率,以及贴片机类型、可用工具、待组装元件的类型和贴装点数,而贴片机的组装过程效率则与组装任务的元件类型、贴装点数和组装过程的调度优化算法相关。
|
||||
为了实现较高的求解效率,在组装生产线的平衡问题中,解的质量评估无法直接依赖于贴片机表面组装过程优化算法的执行结果,而是需要通过快速的预测算法进行评估。可以认为,组装生产线平衡问题本质上是两个子问题的组合——元件分配算法和组装时间估算器的设计。图\ref{ch5:figure:line-opt-structure}展示了组装生产优化中相关的输入/输出和主要决策问题。
|
||||
|
||||
\vspace{0.5em}
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.925]{chapter5/line-opt-structure.eps}
|
||||
\bicaption[ch5:figure:line-opt-structure]{}{表面组装生产线负载平衡优化问题框架}{Fig. $\!$}{\centering Framework of load balancing optimization problem for surface assembly lines}
|
||||
\end{figure}
|
||||
|
||||
% 影响生产线效率和制约因素
|
||||
表面组装生产线通常由印刷机,贴片机,回流焊和光学检测机等多种设备组成,其中,贴片机的组装时间最长,决定了整条生产线的效率。本文在第2章中已讨论了影响表面组装过程装配效率的因素,包括贴片机的拾贴周期数、元件拾取次数、吸嘴更换次数和贴装点数等组装效率指标。贴片机分配的元件的类型、贴装点数以及对应的吸嘴类型都会对组装效率指标产生较大的影响。
|
||||
元件分配算法用于确定贴片机上各类型元件的贴装点数,对于元件贴装点可重复分配的情形,贴装点的布局会对贴装移动路径产生影响,不同贴装点的分配结果同样会对生产线的组装效率产生影响。
|
||||
此外,表面组装生产线优化还涉及一系列约束,包括可用工具约束、贴片机类型约束和组装优先级约束。可用工具约束指的是供料器、吸嘴和其他可用组装工具的数量有限,直接限制了特定类型元件可分配贴片机的数量上限,而贴片机类型约束则适用于不同类型贴片机在生产线上协作组装的情形,必须由特定机器完成某一类元件的装配。受限于不同类型的元件高度、尺寸各不相同,表面组装生产线通常也存在优先级约束。
|
||||
|
||||
|
||||
% 元件分配和时间估算的难度
|
||||
表面组装生产负载平衡问题中,元件不同的组合分配方案数量庞大,设计高效率的搜索方法寻找高质量的解对生产线优化至关重要。
|
||||
而且随着问题规模的扩大,其求解的运算量也会迅速增加,即使是小规模的数据也需要大量的计算资源。
|
||||
启发式搜索算法已在组合优化问题中展现出较强的全局搜索能力,基于问题特征的搜索规则与超启发式算法结合,可以有效提升解的质量。
|
||||
表面组装过程优化通常需要较长的时间才能获取准确时间,即使是求解第3章中具有关键效率的贴片头任务分配算法,大量分配结果的组装过程运算的时间也较长,不适用于具有较大解空间的表面组装生产线优化问题中。
|
||||
在估算装配时间时,时间估计器必须考虑到并列式贴片机的特殊机械结构对组装效率的影响,分析影响组装效率的关键因素,设计提取数据特征,以提高组装时间的估计准确度。
|
||||
贴片机组装数据的元件类型、贴装点数均会对拾取效率、吸嘴更换等指标产生影响,传统的基于贴装点数量的线性拟合方法已不再适用。
|
||||
非线性的神经网络时间估计器已能解决特征项较多的拟合问题,通过进一步融合多个具有组装特性的特征参数,能实现快速、准确的表面组装时间估计。
|
||||
|
||||
\section{算法框架}[Algorithmic framework]
|
||||
|
||||
以多特征融合集成估计器为基础的超启发式表面组装生产线负载平衡算法流程如图\ref{ch5:figure:solution-framework}所示,负载平衡以进化算法为基本框架,底层启发式和组装时间估计器则是算法的主要组成部分。
|
||||
元件分组策略用于将同类型元件的贴装点划分为多个元件组,元件组是进行贴片机负载分配的最小单位,元件组分配先后顺序在不同的种群中随机生成以增加搜索的多样性。
|
||||
群体初始化用于确定底层启发式算子的组合方式和执行顺序,群体中个体的基因对应一个底层启发式算子,算子则根据不同的策略确定元件组分配的贴片机。
|
||||
更进一步,底层启发式算子可被分为数据驱动与目标驱动启发式,前者根据数据的基本参数进行分配,后者则基于组装过程子目标的比较结果进行分配。
|
||||
组装时间的估计基于Bagging集成学习器,其通过融合组装过程的多个特性准确估计组装时间,用于计算种群迭代个体的适应度。
|
||||
在迭代过程中,下一代的个体依据适应度进行加权随机选择,进化过程则以个体基因的截断交叉和突变完成。
|
||||
超启发式元件组分配确定了各类型元件分配的贴装点数量,自适应聚类分组用以确定贴装点分配的贴片机。
|
||||
多个群体的最佳解决方案作为候选解,进行表面组装过程优化确定准确装配时间,以降低时间估计器误差对最终结果产生的影响。
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[scale=0.95]{chapter5/solution-framework.eps}
|
||||
\bicaption[ch5:figure:solution-framework]{}{基于多特征融合集成组装时间估算器的超启发式优化算法流程}{Fig. $\!$}{\centering Flowchart of hyper heuristic optimization algorithm based on multifeature fusion ensembled assembly time estimator}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\section{基于超启发式的表面组装生产线元件分配算法}[Hyper-heuristic-based component allocation algorithm for surface assembly line]
|
||||
|
||||
\subsection{底层启发式算子}[Low-level heuristic operators]
|
||||
|
||||
底层启发式是超启发式算法的基本组成,启发式算子根据当前待分配元件的吸嘴类型、贴装点数等参数确定其分配的贴片机。其中,待分配元件类型和数量为预先设定的。本文将底层分配启发式进一步划分为数据驱动和目标驱动启发式。特别说明的是,底层启发式算子设计旨在平衡各贴片机间的工作负载,其在评估分配指标时仅对各贴片机的某项指标的相对大小进行比较,而对评估的绝对准确性不做要求。两类启发式算子的设计如下所示:
|
||||
|
||||
\subsubsection{数据驱动的底层启发式}
|
||||
|
||||
基于数据驱动的启发式与贴装点、元件类型和吸嘴类型相关,
|
||||
其分别将元件分配到已分配贴装点数最少、元件类型数最少、吸嘴类型数最少、元件类型和吸嘴类型数最小之比的贴片机上。
|
||||
在数据驱动的启发式算子中,分配贴装点数与贴装次数直接相关,是直接决定组装效率的因素之一。将元件组分配给元件类型少的贴片机,则有助于构成更多的同步拾取;将元件组分配给吸嘴类型少的贴片机,可用于规避吸嘴更换动作,提升整体的组装效率;元件类型数-吸嘴类型数之比则为平衡同步拾取与吸嘴更换的相互影响,单一类型吸嘴对应的元件过多会限制其同步拾取的构造,增加贴片头任务分配的可行解数,间接导致搜索空间变大,获得高质量解的难度也随之增大。
|
||||
|
||||
|
||||
\subsubsection{目标驱动的底层启发式}
|
||||
|
||||
目标驱动的底层启发式与表面组装过程装配效率影响因素相关,通过分析和比较关键子目标的值作为元件分配的基础。元件组分配的贴片机取决于子目标的相对大小,而无需确定子目标的具体值。启发式计算的子目标值旨在平衡各贴片机之间的工作负载。目标驱动的子目标包括拾贴周期数、吸嘴更换数和元件拾取次数,其与各类吸嘴分配的拾贴头数相关。基于第3章提出的算法\ref{ch3:algorithm:model-initialize},可确定各类型吸嘴对应的贴片头数,记已分配给贴片机 $m$ 的吸嘴类型 $j$ 的对应的贴片头数为 $\pi_{jm}$。
|
||||
|
||||
|
||||
目标驱动的底层启发式的实现如下:
|
||||
|
||||
\begin{enumerate}
|
||||
\item[1)] \emph{最少周期启发式}:将元件分配到拾贴周期数最少的贴片机$\hat{m}$上,即:
|
||||
\begin{equation}
|
||||
\hat{m} = {\arg \min}_{m \in M} \max_{j \in J} \left( \sum_{i \in I} \sum_{k \in K} \sum_{h \in H} \left( \mu_{ij} \cdot x_{ikhm} \right) / \pi_{jm} \right)
|
||||
\label{ch5:equation:min-cycle}
|
||||
\end{equation}
|
||||
组装任务的吸嘴类型单一时,最少周期启发式同时是最少贴装点分配启发式。在处理组装任务的有多种吸嘴类型时,算子在计算拾贴周期数时,禁用了贴片头的吸嘴更换动作,以各类型吸嘴分配的贴装点数均分贴片头得到的最大周期数作为评定标准,能平衡不同类型吸嘴分配点数,进而降低拾贴周期和吸嘴更换数。
|
||||
|
||||
\item[2)] \emph{最少吸嘴更换启发式}:将元件分配到吸嘴更换数最小的贴片机$\hat{m}$上,
|
||||
\begin{equation}
|
||||
\hat{m} = {\arg \min}_{m \in M} \sigma \left( \left\{ \overbrace{\sum_{i \in I} \sum_{k \in K} \sum_{h \in H} \left( \mu_{ij} \cdot x_{ikhm} \right) / \pi_{jm}, \cdots}^{\text{共 $\pi_{jm}$ 项}} \mid j \in J \right\} \right)
|
||||
\end{equation}
|
||||
|
||||
其中 $\sigma\left( \cdot \right)$ 表示集合的均方差。吸嘴更换和元件拾取次数存在关联,对吸嘴更换的判定依据主要为不同类型吸嘴分得的贴装点数。算子以各类型吸嘴分得的贴片头数,对其已分配的贴装点均分分组,并根据分组后组间贴装点的均方差值评估吸嘴更换可能性,均方差越大、对应的贴片机更有可能发生吸嘴更换。
|
||||
|
||||
\item[3)] \emph{最少拾取启发式}:将元件分配给拾取元件次数最小的贴片机。不同于前两种目标驱动启发式, 贴片机的拾取次数直接计算比较困难。算法\ref{ch5:algorithm:least-pickup}提出了一种分级贪心启发式的同步拾取次数估算的方法。
|
||||
算法根据各类吸嘴分配的贴片头数量,按贴装点数量递减的顺序将元件分配到吸嘴类型一致的贴片头。确定当前分配元件$i$对应的吸嘴$j$,记吸嘴$j$已分配的贴片头数为$\mathcal{A}_j$,当其分配满所有可用贴片头后,进入下一周期$c$进行分配,令吸嘴当前分配周期索引$\mathcal{L}_j$增加1,同时记录各个周期分配的贴装点数的最大值$\mathcal{K}_c$。算法结果中(同步)拾取次数等于各周期内分配到贴片头的元件对应的最大贴装点数之和。
|
||||
\end{enumerate}
|
||||
|
||||
\begin{algorithm}
|
||||
\small
|
||||
\AlgoBiCaption{分级贪心启发式同步拾取计算算法}{Level greedy heuristic simultaneous pick-up calculation algorithm}
|
||||
\label{ch5:algorithm:least-pickup}
|
||||
|
||||
\Input{吸嘴对应的贴片头数$\pi$,元件对应的贴装点数$\psi$和贴片机索引$m$}
|
||||
\Output{拾取次数}
|
||||
令 $\mathcal{L}$ 为大小 $1 \times \left| J \right| $ 的向量,$\mathcal{A}$ 为大小 $1 \times \left| J \right| $ 的向量,$\mathcal{K}$ 为 $1 \times \sum_{i \in I} \psi_i $ 全为0的向量; \\
|
||||
按贴装点数 $\psi_i$ 降序排列元件索引 $i \in I $;\\
|
||||
\For {$i \in I$}
|
||||
{
|
||||
$j \leftarrow \sum_{j^\prime \in J} \mu_{ij^\prime} \cdot j^\prime$ ;\tcp{分配元件对应的吸嘴类型}
|
||||
\If { $\mathcal{A}_j$ \rm{\textbf{mod}} $\pi_{jm} = 0$ }
|
||||
{
|
||||
$\mathcal{L}_j \leftarrow \mathcal{L}_j + 1 $; \tcp{当前周期吸嘴的贴片头分配已满,开始分配下一周期}
|
||||
}
|
||||
\tcc{更新当前分配周期的最大分配点数和已分配贴片头数}
|
||||
$c \leftarrow \mathcal{L}_j $,
|
||||
$\mathcal{K}_c \leftarrow \max \left(\mathcal{K}_c, \psi_i \right)$,$\mathcal{A}_j \leftarrow \mathcal{A}_j + 1$ ;\\
|
||||
}
|
||||
输出元件拾取次数 $\sum_{c = 1}^{c =\sum_{i \in I} \psi_i } \mathcal{K}_c$
|
||||
\end{algorithm}
|
||||
|
||||
上述的底层启发式规则用于确定元件组分配的贴片机,在分配过程中,底层启发式在评估不同贴片机的指标时如果出现相同的值,算子将先按贴片机已分配的贴装点数最少、再按贴片机组装先后顺序的规则进行元件组分配。
|
||||
|
||||
|
||||
\subsubsection{组装任务的元件分配过程}
|
||||
|
||||
如前所述,元件组是算法进行分配的最小单位,将同类型元件划分为多个元件组有助于贴片机之间的协作生产,平衡贴片机间的工作负载,进而提升组装效率。
|
||||
然而,由于生产线在拾贴元件的过程中同时受到可用贴片机、组装优先级和可用工具等条件的限制,直接按上述规则进行分配将导致负载平衡的解不可行。
|
||||
本节从元件分配优先级处理和可用组装工具限制两个角度对底层启发式算子进行完善。
|
||||
|
||||
1)\emph{元件分配优先级的处理}
|
||||
|
||||
不同于传统的生产线,表面组装生产线不存在复杂的优先级约束关系。
|
||||
组装过程中的优先级约束通常指元件尺寸小、高度低或精度要求低的元件的组装顺序需要先于其它元件,以保证元件组装位置的准确性。
|
||||
在实际生产中,不同类的元件通常被划为若干优先级组,按分组的优先级顺序进行组装作业。
|
||||
分配过程对元件组装优先级处理主要分为两个阶段。
|
||||
在第一阶段中,算法\ref{ch5:algorithm:component-priority}根据生产线的贴片机数、元件的贴装点数等参数,按贴装点在贴片机间进行均分的设定分组,并在此基础上调整允许偏差界限,确定了优先级约束下不同元件的可分配贴片机索引集合$\widetilde{M}^{\rm PR}$。按组装优先级限制元件可分配的贴片机索引,有助于平衡贴片机之间的负载,提升优先级约束下的搜索效率。
|
||||
|
||||
\vspace{0.6em}
|
||||
\begin{algorithm}[H]
|
||||
\small
|
||||
\AlgoBiCaption{优先级约束下的元件可分配贴片机构造算法}{Assignable surface mounters constructive algorithm for component under priority constraint}
|
||||
\label{ch5:algorithm:component-priority}
|
||||
|
||||
\Input{组装优先级分组$\mathcal{I}$,元件的贴装点数$\psi$,贴片机负载分配允许偏差$\varsigma$}
|
||||
\Output{元件可分配贴片机索引集合$\widetilde{M}^{\rm PR}$}
|
||||
|
||||
按组装先后顺序对元件优先级分组$\mathcal{I}_q$进行排序,$q \in Q$,按贴装点数非递减的顺序对$\mathcal{I}_q$组内元件$i$进行排序,$i \in \mathcal{I}_q$ ; \\
|
||||
|
||||
令元件优先级约束的可分配贴片机索引集合$\widetilde{M}^{\rm PR} \leftarrow \varnothing$,记录已遍历元件的贴装点数 $C\leftarrow 0$ ;\\
|
||||
|
||||
\For {遍历元件优先级组内的元件$i \in \mathcal{I}_q$,$q \in Q$}
|
||||
{
|
||||
\For {遍历组装线的贴片机$m \in M$}
|
||||
{
|
||||
\If{$m \cdot \sum_{i^\prime \in I} \psi_{i^\prime} / \left| M \right| - \varsigma \leq C $ \rm{\textbf{and}} $ C \leq m \cdot \sum_{i^\prime \in I} \psi_{i^\prime} / \left| M \right| + \varsigma$}
|
||||
{
|
||||
\tcc{已遍历的贴装点数在贴片机的贴装点均分的允许偏差范围内}
|
||||
\vspace{0.1em}
|
||||
$\widetilde{M}^{\rm PR} \leftarrow \widetilde{M}^{\rm PR} \cup \left\{ m \right\}$,$C \leftarrow C + \psi_i$ ; \\
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
\end{algorithm}
|
||||
\vspace{0.6em}
|
||||
|
||||
在第二阶段中,分配算子需依据待分配的元件组和既定的优先级约束关系,对元件组的负载平衡分配结果进行调整。
|
||||
算法\ref{ch5:algorithm:component-priority}确定了优先级约束下的元件可分配贴片机索引集,但其无法完全保证解的可行性。
|
||||
由于不同优先级的元件可分配至相同的贴片机完成组装作业,因此元件的可分配贴片机索引集$\widetilde{M}^{\rm PR}$间会有同一贴片机。
|
||||
为满足组装过程的优先级约束,根据各贴片机所分配元件的最高与最低优先级,本节引入了链式置换规则来优化元件组合的分配过程。
|
||||
|
||||
在具体实现过程中,对于当前待分配的元件,算法依据其分配目标贴片机进行比对:若前置贴片机的最低优先级高于当前元件的优先级,则将当前元件与前置贴片机的元件进行交换;类似地,若后置贴片机的最高优先级低于当前元件的优先级,则与后置贴片机的元件进行互换。
|
||||
重复上述操作,直至生产线上所有已分配的元件均满足优先级约束关系。
|
||||
在选择被置换的元件时,算法根据待分配元件的吸嘴类型和贴装点数,按照如下规则进行:若被置换出的贴片机已分配元件中存在同类型吸嘴的元件,则优先选择与当前待分配元件贴装点数最接近的元件进行交换;若不存在同类型吸嘴的元件,则从吸嘴对应已分配元件类型最多的类别中,选择与待分配元件组贴装点数最接近的元件进行置换。
|
||||
此规则旨在最大限度地减少因元件置换而引起的贴片机间组装效率的变化,从而保持生产线上贴片机之间的负载平衡状态。
|
||||
|
||||
|
||||
2)\emph{可用组装工具的限制}
|
||||
|
||||
可用贴片机约束限制了元件可分配的贴片机集合,底层启发式算子需在可用贴片机集合中完成分配。可用贴片机集合受到元件已分配贴片机和可用工具数的限制,元件供料器可用数等限制了元件可分配的贴片机数,记$\widetilde{r}_{im}$表示贴片机$m$是否已分配元件$i$的组装任务,记元件$i$的可用供料器数为$\phi_i$,则分配过程中可用组装工具限制的可分配贴片机索引集$\widetilde{M}^{\rm TL}$计算如式\eqref{ch5:equation:allocable-machine}所示,其在元件负载平衡分配的过程中被动态调整。
|
||||
\begin{equation}
|
||||
\widetilde{M}^{\rm TL}_i =
|
||||
\begin{cases}
|
||||
M & \sum_{m \in M} \widetilde{r}_{im} < \phi_i \\
|
||||
\left\{ m \mid \widetilde{r}_{im} > 0, m \in M \right\} & \sum_{m \in M} \widetilde{r}_{im} \geq \phi_i
|
||||
\end{cases}
|
||||
\label{ch5:equation:allocable-machine}
|
||||
\end{equation}
|
||||
|
||||
组装分配优先级和可用组装工具确定的可分配贴片机索引集共同确定了元件组可分配的贴片机。
|
||||
|
||||
|
||||
\subsection{可重复元件分配策略}[Duplicated component allocation strategy]\label{duplicate-allocation-section}
|
||||
|
||||
元件配备多个可用供料器用以提升组装效率,引出元件可重复分配的问题。当同类型元件的物料有多个可用供料器时,元件可分配至多个贴片机协同完成组装过程。元件分配的供料器数依据第3章中提出的算法\ref{ch3:algorithm:avl-feeder}确定。元件可重复分配策略包括进行元件分配前的分组策略和完成元件分配后的贴装点分配策略,具体为:
|
||||
|
||||
1)\emph{可重复元件分组策略}
|
||||
|
||||
贴装点分组是辅助决策贴片机分配的元件贴装点数的主要方式,分组后的元件组是超启发式分配的基本单位。
|
||||
贴装点的分组数并不仅取决于可用供料器数,而且与贴装点数有关。过少的分组数会压缩搜索解的搜索空间,导致算法无法搜索到高质量的解,无法平衡不同的贴片机之间的工作负载;过多的分组数则会导致搜索效率下降。记元件$i$可用的供料器数为$\phi_i$,对应的分组基准为$\hat{\phi}_i$,分组基准的计算方式如式\eqref{ch5:equation-div},其中$\varepsilon$为分组基准系数。贴装点数超过该分组基准的元件将被分配到一个元件组,各元件组的贴装点数均不超过分组基准,元件组是超启发式进行元件分配的最小单位。
|
||||
\begin{equation}
|
||||
\hat{\phi}_i = \max \left( \varepsilon \cdot \phi_{i^\prime} \cdot \psi_{i} / \sum_{i^\prime \in I} \psi_{i^\prime}, \phi_i \right) \quad \forall i \in I
|
||||
\label{ch5:equation-div}
|
||||
\end{equation}
|
||||
|
||||
|
||||
2)\emph{可重复元件贴装点的分配策略}
|
||||
|
||||
超启发式算法仅确定贴片机分配到的各类型元件的贴装点数,而贴装点的布局会对组装效率产生较大的影响,不同的贴装点分配方案同样限制着生产线组装效率的提升。
|
||||
元件可重复分配策略研究的另一方面就是对贴装点-贴片机的分配结果进行优化。
|
||||
包括本文在内的多数主流研究均将贴片机的表面组装过程划分为拾取过程和贴装过程两部分,而拾取过程优化通常与贴装点的分布位置关联度较低。
|
||||
算法\ref{ch5:algorithm:cluster-point}提出了一种基于聚合聚类启发式的可重复元件贴装点分配策略,其充分考虑了贴装点的位置分布特性和贴片头线性分布的特性,将位置集中的贴装点分配给同一台贴片机,能有效缩短表面组装移动路径长度,从而进一步提升贴片机的组装效率。
|
||||
|
||||
|
||||
\begin{algorithm}[!hbt]
|
||||
\small
|
||||
\AlgoBiCaption{可重复元件贴装点分配的聚合聚类算法}{Aggregated clustering algorithm for placement points of duplicated component}
|
||||
\label{ch5:algorithm:cluster-point}
|
||||
|
||||
\Input{元件的可用供料器数$\phi$,贴装点的位置$\left( X_p, Y_p \right)$,$p \in P$,元件-贴片机的分配结果$r$,贴片头元件分配$\mathcal{C}$和周期分配结果$\mathcal{W}$}
|
||||
\Output{机器分配的贴装点$\overline{\mathcal{P}}$}
|
||||
令贴片机$m$已分配的贴装点集 $\mathcal{P}_m \leftarrow \varnothing$,贴片机$m$的贴片头$h$已分配元件$i$的贴装点数$\Lambda_{ihm} \leftarrow 0$,元件贴装的贴片头偏移$\overline{h}_{im} \leftarrow 0$,$i \in I$,$h \in H$,$m \in M$ ;\\
|
||||
% 令贴片机$m$的贴片头$h$已分配元件$i$的贴装点数$\Lambda_{ihm} \leftarrow 0$,元件贴装的贴片头偏移$\overline{h}_{im} \leftarrow 0$ ;\\
|
||||
\For{$m \in M$}
|
||||
{
|
||||
\For{$i \in \left\{ i^\prime \mid r_{{i}^\prime m} = 1, \phi_{i^\prime} = 1, i^\prime \in I \right\}$}
|
||||
{
|
||||
% $\mathcal{U}_{im} \leftarrow \left|\left\{ p \mid \eta_{ip}=1,p\in P \right\} \right| $,
|
||||
$\mathcal{P}_m \leftarrow \mathcal{P}_m \cup \left\{ p \mid \eta_{ip}=1,p\in P \right\}$ ; \tcp{确定各贴片机的固定分配点}
|
||||
}
|
||||
\For{$k \in K$}
|
||||
{
|
||||
\For{$h \in H$}
|
||||
{
|
||||
记$i = \mathcal{C}_{khm}$,有$\Lambda_{ikm} \leftarrow \Lambda_{ikm} + \mathcal{W}_{km}$,
|
||||
|
||||
$\overline{h}_{im} \leftarrow \left( 1 - \mathcal{W}_{km} / \sum_{h \in H} \Lambda_{ihm} \right) \cdot \overline{h}_{im} + \mathcal{W}_{km} \cdot \left( h - 1 \right) / \sum_{h \in H} \Lambda_{ihm} $ ;\\
|
||||
}
|
||||
|
||||
}
|
||||
$\mathcal{X}_m \leftarrow \sum_{p \in \mathcal{P}_m} \left( X_p - \sum_{i \in I} \eta_{ip} \cdot \overline{h}_{im} \right) / \left| \mathcal{P}_m \right| $, $\mathcal{Y}_m \leftarrow \sum_{p \in \mathcal{P}_m} Y_p / \left| \mathcal{P}_m \right| $; \tcp{设置贴片机$m$的分配中心点}
|
||||
}
|
||||
\While{\bf{true}}
|
||||
{
|
||||
$\overline{\mathcal{X}} \leftarrow \mathcal{X}$, $\overline{\mathcal{Y}} \leftarrow \mathcal{Y}$,$\overline{\Lambda} \leftarrow \Lambda$,
|
||||
$\overline{\mathcal{P}} \leftarrow \mathcal{P}$ ; \\
|
||||
\For{$i \in \left\{ i^\prime \mid \theta_{i^\prime} > 1, i \in I \right\} $}
|
||||
{
|
||||
\For {$p \in \left\{ p^\prime \mid \eta_{ip^\prime} = 1, p^\prime \in P \right\} $}
|
||||
{
|
||||
\tcc{计算待分配贴装点的贴片机和贴片头索引}
|
||||
$\left(\hat{m}, \hat{h} \right) \leftarrow \arg \min_{m \in M, h \in H} \left\{ \left(\overline{\mathcal{X}}_{m} - X_p + \left(h - 1\right) \cdot \rho \right)^2 +
|
||||
\left(\overline{\mathcal{Y}}_{m} - Y_p \right)^2 \mid \right.$
|
||||
$ \left. \overline{\Lambda}_{ihm} > 0 \right\}$ ,
|
||||
$\overline{\mathcal{P}}_{\hat{m}} \leftarrow \overline{\mathcal{P}}_{\hat{m}}\cup \left\{ p \right\} $,$\overline{\Lambda}_{ihm} \leftarrow \overline{\Lambda}_{ihm} - 1$,$\hat{h} \leftarrow \hat{h} - 1$;
|
||||
|
||||
\tcc{更新已分配的贴装点参数和贴片机的分配中心位置}
|
||||
$\overline{\mathcal{X}}_{\hat{m}} \leftarrow \overline{\mathcal{X}}_{\hat{m}} + \left(X_p - \overline{\mathcal{X}}_{\hat{m}} - \hat{h} \cdot \rho \right) / \left| \overline{\mathcal{P}}_{\hat{m}} \right|$,
|
||||
$\overline{\mathcal{Y}}_{\hat{m}} \leftarrow \overline{\mathcal{Y}}_{\hat{m}} + \left(Y_p - \overline{\mathcal{Y}}_{\hat{m}} \right) / \left| \overline{\mathcal{P}}_{\hat{m}} \right|$;
|
||||
}
|
||||
}
|
||||
|
||||
\If{$\sum_{m \in M} \left( \left| \overline{\mathcal{X}}_m - \mathcal{X}_m \right| +\left| \overline{\mathcal{Y}}_m - \mathcal{Y}_m \right| \right) \leq 10^{-3} $}
|
||||
{
|
||||
\tcc{贴片机的分配中心位置未发生变化,退出搜索过程}
|
||||
\textbf{break};
|
||||
}
|
||||
}
|
||||
\end{algorithm}
|
||||
|
||||
|
||||
可重复元件贴装点的分配策略的输入为贴片机$m$在周期组$k$中贴片头$h$拾贴的元件类型为$\mathcal{C}_{khm}$,以及对应的拾贴周期数$\mathcal{W}_{km}$。据此,可确定各贴片机组装作业过程中,不同类型元件的贴装偏移量$\overline{h}_{im}$,其是元件组贴装点分配的基准。
|
||||
对于仅有单一供料器提供的元件的贴装点,其被分配至同一台贴片机,结合组装该类型元件贴片机的贴装偏移量$\overline{h}$,可确定各贴片机的初始中心点,
|
||||
而尚未分配任何贴装点的贴片机的初始中心点将被随机设定。
|
||||
算法分配的基本单位由贴片机进一步具体到贴片头,根据贴片头任务分配结果,可确定其拾贴元件$i$对应的贴装点数$\Lambda_{ihm}$。随后,元件的贴装点按最近邻原则,在负载平衡结果的约束下,分配到距离中心点最近的贴片机-贴片头索引对$\left(\hat{m}, \hat{h}\right)$,并在分配过程中动态调整中心点。
|
||||
算法不断重复上述过程,直至所有中心点的位置趋于稳定。
|
||||
|
||||
\subsection{超启发式优化算法}[Hyper-heuristic optimization algorithm]
|
||||
|
||||
在基于进化算法的超启发式架构中,个体的编码直接映射至一个底层的启发式操作算子。
|
||||
元件组作为同类型元件分配的基本单位,其分配顺序影响着负载平衡的结果。
|
||||
为适应复杂的分配需求,个体的基因长度随机生成。
|
||||
底层启发式算子与元件组相对应,当个体基因长度小于元件组数时,元件分配的过程将循环访问个体基因。
|
||||
个体的基因长度以及底层启发式算法的基因组合均在初始化阶段随机生成,以确保搜索的全面性和随机性。
|
||||
在进化流程中,算法依据适应度进行加权随机选择,确定参与交叉和变异的个体。
|
||||
% 超启发式的交叉和变异算子的操作过程如图\ref{ch5:figure:operation}所示。
|
||||
对于交叉操作,相关个体的基因将分别随机选择一个插入段交换基因段;对于变异操作,则在个体基因中随机选择一个插入点,插入一段随机生成的基因。二者在完成操作后,算法均会对基因长度超出元件组数的部分截断处理,以确保后续迭代过程中不会因为无效的基因段导致搜索的盲目性。
|
||||
|
||||
% \begin{figure}[H]
|
||||
% \centering
|
||||
% \includegraphics[scale=1]{chapter5/crossover-mutation.eps}
|
||||
% \bicaption[ch5:figure:operation]{}{进化过程中的交叉和变异操作示意图}{Fig. $\!$}{Schematic representation of crossover and mutation operations in evolutionary process}
|
||||
% \end{figure}
|
||||
|
||||
底层启发式操作算子与元件分配顺序直接相关,同时对启发式算子执行顺序和元件分配顺序编码,会增加编码的复杂性,导致算法难以找到算子和元件分配间的规律,进而增加了寻找高质量解的搜索时间。因此,本章并未将元件分配顺序作为基因编码的组成部分。对超启发式底层算子执行顺序的优化能将多数元件分配顺序优化到一个相对高质量的解。
|
||||
在算法设计时,超启发式采用多种群的优化方案,既可以实现并行搜索,又避免了单一元件组分配顺序在有限次迭代内无法获得高质量的解。
|
||||
不同种群迭代的最佳解决方案在估算的组装时间通常较接近,而应用多种群的方案可进一步筛选高质量的解,通过在少数候选解上执行表面组装过程优化算法获得更准确的装配时间。
|
||||
在具体实施时,算法将优先在估计的组装时间较长的贴片机上运行组装过程优化算法,以进一步提升运行效率。
|
||||
|
||||
\section{基于多特征融合的集成表面组装时间估计器}[Surface assembly time ensemble estimator based on multifeature fusion]
|
||||
|
||||
\subsection{数据的生成与准备}[Data generation and preparation]
|
||||
|
||||
组装数据用于组装时间估计器模型的训练过程。估计器通过处理和分析数据,学习其特征并建立预测模型。生产数据的数量、质量和多样性直接影响着时间估计器预测的性能和效果,更多的训练数据意味着网络能学习到更为复杂的特性,从而提升神经网络的泛化性能。高质量的数据通常噪声少,结果准确,有助于网络更准确地学习。对于表面组装过程问题,直接获取大量的实际生产数据较为困难,且生产数据的组装时间不可避免的受到噪声的影响。在实际应用中,本章以贴片机软件内置的组装过程模拟器,计算生产数据的组装过程用时,以获得更为准确的预测模型。
|
||||
|
||||
在数据生成方面,用以训练的数据兼顾吸嘴类型单一到多样,不同元件的贴装点数相近到不等,贴装点分布位置随机分布的特点进行生成,避免贴装点布局对预测结果产生偏差,进而影响整体的预测效果。
|
||||
在训练模型之前,有必要检测并清除可能影响机器学习模型的异常值,偏离中心位置的点会增加训练结果的不确定性。本章运用四分位距的规则(Interquartile Range Rule,IRR)\cite{li_predicting_2020}检测和剔除异常值,其中装配时间$\mathcal{T}$大于 $\mathcal{T}_3 + 1.5 \cdot \left( \mathcal{T}_3 - \mathcal{T}_1 \right)$或小于 $\mathcal{T}_1 - 1.5 \cdot \left( \mathcal{T}_3 - \mathcal{T}_1 \right)$的数据点会被移除,$\mathcal{T}_1$ 和 $\mathcal{T}_3$ 分别代表第一四分位数和第三四分位数。
|
||||
|
||||
|
||||
\subsection{组装过程的特征提取}[Feature extraction of assembly process]
|
||||
特征选择是预测拟合问题的关键步骤,其对于提高模型的准确性、可解释性和计算效率都至关重要。特征提取涉及从生产数据中选择对于预测组装时间最有用或最具代表性的特征,其与表面组装过程优化算法相关。组装过程的复杂性使某些生产过程特性难以被揭示,因而本章提出一种基于集成学习框架的多特征数据融合时间估计器,将数据的基本参数和估计的性能指标参数等同时作为网络输入数据。其中,启发式算法用于评估性能指标,提高拟合精度。用于训练和测试的数据特征主要包含以下内容:
|
||||
\begin{itemize}
|
||||
\item 贴装点数、元件类型数和吸嘴类型数
|
||||
\item 贴装区域的长度、宽度和面积
|
||||
\item 预估的拾贴周期数、拾取次数、吸嘴更换次数等子目标
|
||||
\item 各类型元件对应的吸嘴类型编码和贴装点数
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\begin{algorithm}[htb]
|
||||
\small
|
||||
\AlgoBiCaption{吸嘴更换次数评估启发式算法}{Heuristic algorithm for estimating the number of nozzle changes}
|
||||
\label{ch5:algorithm:nozzle-change}
|
||||
|
||||
\Input{吸嘴的贴片头数 $\pi$,元件的贴装点数 $\psi$}
|
||||
\Output{吸嘴更换次数 $\iota^{*}$}
|
||||
令 $\mathcal{H}^{\rm{PT}} $ 为 $1 \times \left| H \right|$ 的全0向量, $\mathcal{H}^{\rm{NZ}}$ 为 $1 \times \left| H \right|$ 的向量; \tcp{分别表示贴片头上的贴装点数和吸嘴类型数}
|
||||
|
||||
令 $V \leftarrow 0$,$V^{*} \leftarrow \infty$, $\iota^{*} \leftarrow 0$; \tcp{分别表示评估指标、最优评估指标和对应的吸嘴更换次数}
|
||||
|
||||
\While{$V \leq V^{*}$} {
|
||||
令吸嘴组$\mathcal{Z}_{j}$为大小$1 \times \pi_j$ 的元素值为 $ \sum_{i \in I} \psi_i \cdot \mu_{ij} / \pi_j$ 的向量, $\forall j \in J$; \\
|
||||
\For {$n \in \mathcal{Z}_j, j \in J$}
|
||||
{
|
||||
|
||||
$h \leftarrow \arg \min_{h^\prime \in H} \left\{\mathcal{H}^{\rm{PT}}_h \right\}$,
|
||||
$\mathcal{H}^{\rm{NZ}}_h \leftarrow j$, $\mathcal{H}^{\rm{PT}}_h \leftarrow \mathcal{H}^{\rm{PT}}_h + n$ \tcp{分配吸嘴组至各贴片头}
|
||||
}
|
||||
$V \leftarrow \max_{h \in H} \mathcal{H}^{\rm{PT}}_h$ \tcp{设置拾贴周期数}
|
||||
\While{\rm{\textbf{true}}} {
|
||||
\tcc{平衡已分配贴装点数最多的贴装和最少的贴片头}
|
||||
$h_1 \! \leftarrow \! \arg \max_{h \in H} \mathcal{H}^{\rm{PT}}_h$ , $ h_2 \! \leftarrow \! \arg \min_{h \in H} \mathcal{H}^{\rm{PT}}_h $ ;\\
|
||||
\If { $\mathcal{H}^{\rm{NZ}}_{h_1} = \mathcal{H}^{\rm{NZ}}_{h_2}$ }
|
||||
{
|
||||
\textbf{break};
|
||||
}
|
||||
\tcc{比较周期减少与吸嘴更换的加权值,确定最优方案}
|
||||
$\mathcal{H}_1 \leftarrow \left\{ h \mid \mathcal{H}^{\rm{NZ}}_h = \mathcal{H}^{\rm{NZ}}_{h_1} , h \in H \right\} $,
|
||||
$\mathcal{H}_2 \leftarrow \left\{ h \mid \mathcal{H}^{\rm{NZ}}_h = \mathcal{H}^{\rm{NZ}}_{h_2} , h \in H \right\} $;
|
||||
|
||||
\If {$ T^{\rm{CY}} \cdot \left( \mathcal{H}^{\rm{PT}}_{h_1} - \mathcal{H}^{\rm{PT}}_{h_2} \right) > T^{\rm{NC}} \cdot \left( \left| \left| \mathcal{H}_2 \right| - \left| \mathcal{H}_1 \right| \right| \right) $ }
|
||||
{
|
||||
\textbf{break};
|
||||
}
|
||||
\tcc{计算吸嘴更换数和吸嘴更换后的分配结果}
|
||||
$\iota \leftarrow \left| \left| \mathcal{H}_2 \right| - \left| \mathcal{H}_1 \right| \right|$,$V \leftarrow V - T^{\rm{CY}} / T^{\rm{NC}} \cdot \left( \mathcal{H}^{\rm{PT}}_{h_1} - \mathcal{H}^{\rm{PT}}_{h_2} \right) + \iota $,
|
||||
$\hat{\mathcal{H}}^{\rm{PT}} \leftarrow \mathcal{H}^{\rm{PT}}$; \\
|
||||
\For{$h \in \mathcal{H}_1 \cup \mathcal{H}_2$}
|
||||
{
|
||||
$\mathcal{H}^{\rm{PT}}_h \leftarrow \sum_{h^{\prime} \in \mathcal{H}_1 \cup \mathcal{H}_2} \hat{\mathcal{H}}^{\rm{PT}}_{h^{\prime}} / \left( \left| \mathcal{H}_1 \right| + \left| \mathcal{H}_2 \right| \right)$, $\mathcal{H}^{\rm{NZ}}_h \leftarrow \mathcal{H}^{\rm{NZ}}_{h_1}$;\ \\
|
||||
}
|
||||
}
|
||||
\tcc{增加吸嘴组数目,重新进行分配}
|
||||
\If { $V < V^{*}$ }
|
||||
{
|
||||
$V^{*} \leftarrow V$,$\iota^{*} \leftarrow \iota$, $\pi_{j} \leftarrow \pi_{j} + 1$,其中$j = \arg \max_{j \in J} \psi_j / \pi_j $;
|
||||
}
|
||||
}
|
||||
\end{algorithm}
|
||||
|
||||
生产数据的基本参数类型包含贴装点数、元件类型数、吸嘴类型数和电路板尺寸等与组装信息密切相关的数据,同时包含组装过程优化的子目标等性能参数。与底层启发式为了满足任务负载均衡的设计不同,用于拟合特征更侧重于估计结果的准确性。
|
||||
目标项在编码过程中主要用于反映组装过程优化算法的性能,
|
||||
在目标数据特征中,拾贴周期数可参照式\eqref{ch5:equation:min-cycle},根据贴装点数和吸嘴分配的贴片头数确定,应用算法\ref{ch5:algorithm:least-pickup}可进一步确定评估的同步拾取次数,算法\ref{ch5:algorithm:nozzle-change}则提出了一种吸嘴更换计算启发式。
|
||||
|
||||
吸嘴更换计算启发式首先将具有相同吸嘴类型的元件的贴装点均分形成不同的吸嘴组,其中吸嘴$j$对应的吸嘴组集合记为$\mathcal{Z}_j$。
|
||||
吸嘴组按照贴片头工作平衡的原则进行分配,算法先从空吸嘴头开始,依次分配给已分配贴装点数量最少的贴片头。
|
||||
初次分配完成后,算法平衡贴片头上的贴装点,并评估均分后整体指标的变化。如果均分后减少的拾贴周期带来的效率提升大于增加吸嘴更换带来的效率损失,那么此次均分是有效的,重复均分过程直至出现无效的操作。随后,增加平均贴装点数最多的吸嘴的分组数,重复上述操作过程,并记录搜索过程中加权值最优对应的吸嘴更换次数,直到总体效率没有增加为止。
|
||||
|
||||
|
||||
\subsection{集成学习估计器的结构设计}[Structure design of the ensemble learning estimator]
|
||||
|
||||
\begin{figure}[!bt]
|
||||
\centering
|
||||
\includegraphics[scale=0.825]{chapter5/neural-network.eps}
|
||||
\bicaption[ch5:figure:network-structure]{}{基于集成学习的多特征融合组装时间估计器结构}{Fig. $\!$}{Structure of ensemble learning-based multifeature fusion assembly time estimator}
|
||||
\end{figure}
|
||||
|
||||
集成学习通过结合多个学习器的预测结果提供了一种提高预测性能的学习范式,可以降低模型的泛化误差。在机器学习算法中,全连接神经网络以其简单的结构、高效的运算速度、强大的特征提取能力等优势,在数据拟合和预测等领域中发挥着重要作用。本章中,融合多数据特征的Bagging集成学习器用于估计表面组装时间;集成学习共由5个基模型并行训练,其中的基模型采用具有双隐藏层的全连接神经网络,并取基模型输出结果的平均值作为最终组装时间预测结果。
|
||||
在估计器的输入数据的编码上,分为基本数据类型,目标数据类型和扩展数据类型三部分。其中,基本数据类型包含元件类型数、吸嘴类型数和贴装点数;目标数据类型则采用前一节估算的同步拾取数、吸嘴更换数等特征;扩展数据类型则包含不同元件的吸嘴类型、元件类型等参数。在扩展数据类型中,各吸嘴、元件类型的编码按贴装点数降序进行编号。
|
||||
图\ref{ch5:figure:network-structure}展示了估计器的输入参数和基本结构。估计器的输入数据设定为足够长的编码,以确保不同数据输入的一致性,并用零补充冗余位。最终的输出结果则采用标准化的单位时间贴装点数进行归一化处理。
|
||||
|
||||
|
||||
|
||||
\section{实验设计}[Experimental design]
|
||||
|
||||
为说明本章提出的基于多特征融合集成时间估计器的超启发式组装线优化(Hyper-Heuristic Assembly Line Optimization based on Multifeature Fusion Ensemble Estimator,HHALO-MFEE)算法的实际效果,本节将对比分析组装时间估计器的拟合精度,将生产线负载平衡算法的运行结果同模型的性能指标加权最优解进行比较,最后将HHALO-MFEE同主流的相关研究进行比较。
|
||||
对比实验中参数设置和程序运行配置同第3--4章相同。表\ref{ch5:table:exp-para}列出了超启发式元件分配和多特征融合集成组装时间估计器的基本参数。10组随机生成的元件分配序列用于迭代搜索元件分配的最优解,种群的个体数为20,种群迭代的总次数为100,交叉和变异发生的概率为60\%和10\%。超启发式元件分配过程中,元件分组基准的系数$\varepsilon=1.5$。组装时间估计器的基模型时采用双中间层的全连接神经网络,各层的神经元个数为1000,网络的不同层中使用相同的Relu作为激活函数,并运用Adam梯度下降算法自适应地调整学习率。
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\small
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:exp-para]{}{神经网络和超启发式算法的参数}{Table $\!$}{Parameters of neural networks and hyper-heuristic algorithm}
|
||||
|
||||
\begin{tabular}{p{3cm}<{\centering}p{4.25cm}p{2.25cm}<{\centering}}
|
||||
\toprule
|
||||
方法 & \makecell[c]{参数} & 设定值 \\
|
||||
\midrule
|
||||
\multirow{4}{*}{超启发式} & 种群大小 & 10 \\
|
||||
& 个体数 & 20 \\
|
||||
& 交叉率 | 变异率 & 0.6 | 0.1 \\
|
||||
& 迭代次数 & 100 \\
|
||||
\cmidrule(lr){1-3}
|
||||
|
||||
\multirow{2}{*}{神经网络} & 学习率& $10^{-5}$ \\
|
||||
& 迭代次数 & 8000 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
在实验数据选取上,15组来自实际表面组装生产线的数据用于评估生产线负载平衡算法的实际效果,其中前5组小规模数据用于模型对比验证,后10组大规模数据用于算法效果对比,数据的基本参数包括元件类型数、吸嘴类型数、贴装点数和可用供料器数。当可用供料器数多于元件类型数时,元件可重复分配至不同的贴片机完成组装任务。三条不同的表面组装生产线用于比较算法的实际效果,
|
||||
% 生产线的组成如图\ref{ch5:figure:real-assembly-line}所示,
|
||||
其中\emph{L}1、\emph{L}2和\emph{L}3分别配备有2、3 和 4 台贴片机。
|
||||
本节仅以各优化算法在一般应用场景下的实际效果作对比分析,不计组装优先级、可用贴片机等约束。
|
||||
% 本节比较提出算法在实践中的最优效果,因而优先级约束、可用贴片机约束等条件不在比较过程中被考虑。
|
||||
由于元启发式算法和部分对比算法结果的随机性,所有比较指标均取10次运行的平均值作为最终结果。
|
||||
|
||||
|
||||
\subsection{组装时间估计器的对比实验}[Comparative experiments on the assembly time estimators]
|
||||
|
||||
如前所述,MFEE的训练数据和测试数据均为随机生成,组装任务的拾贴顺序采用第3--4章提出的表面组装过程优化算法。通过运行贴片机内置的模拟器,估计组装过程的运动和动作用时,结合电机参数、机械运动特性等获取更为准确的组装时间。
|
||||
表\ref{ch5:table:data-para}列出了训练数据和测试数据的样本数、异常比、均值等组装时间相关的参数,二者具有相似的分布特性,数据的异常值是通过IRR检测和剔除的。贴装点的分布位置随机生成避免点稀疏或集中的分布特征对拟合方法泛化性能的影响。
|
||||
|
||||
\begin{table}[H]
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:data-para]{}{训练数据和测试数据的参数}{Table $\!$}{Parameters of training data and testing data}
|
||||
|
||||
\begin{tabular}{p{1.4cm}p{1.4cm}<{\centering}p{1.4cm}<{\centering}p{1.4cm}<{\centering}p{1.4cm}<{\centering}p{1.4cm}<{\centering}p{1.4cm}<{\centering}p{1.4cm}<{\centering}}
|
||||
\toprule
|
||||
& 样本数 & 异常比 & 平均值 & 中位数 & 最小值 & 最大值 & 均方差 \\
|
||||
\midrule
|
||||
训练集 & 2000 & 11.25 & 128.67 & 130.13 & 2.71 & 302.94 & 71.67 \\
|
||||
测试集 & 400 & 10.75 & 126.76 & 127.11 & 3.80 & 311.38 & 72.23 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
时间估计器的准确性会影响元件分配的搜索方向和最终解的质量。4种具有代表性的组装时间估计器用于和MFEE进行比较。本节所提出的组装时间估计器的准确度记为$E_1$,为说明提出的特征融合的有效性,具有相同结构的,以贴装点数、元件类型数、吸嘴数、电路板大小等基本参数为输入的神经网络的拟合准确度记为$E_2$。文献\inlinecite{guo_integrated_2012}和文献\inlinecite{toth_reconfiguring_2010}中提出的启发式估计器选取不同的特征对组装时间进行估计,其均采用线性拟合的方式进行估计,本节中以最小二乘法计算线性拟合的系数,组装时间估计的准确度分别记为$E_3$和$E_4$。在最新的研究中, 文献\inlinecite{li_predicting_2020}提出一种基于共生搜索的支持向量回归的集成学习算法,其时间估计准确度记为$E_5$。
|
||||
|
||||
表\ref{ch5:table:estimator-compare}列出了不同组装时间估计器在训练数据和测试数据的平均绝对误差和最大绝对误差。 组装时间估计器在测试数据上的表现可用于评价时间估计器的准确性。
|
||||
可以看出,以神经网络为基础的组装时间估计器在准确度上更有优势,与输入基本参数的方法相比,所提出的MFEE方法将测试数据上获得的组装时间的平均绝对误差从 5.16\% 降低到 3.43\%。 基于启发式的线性回归拟合方法在预测效果上差于神经网络估计器,对估计特征的考虑不全面和自身结构的简单导致拟合结果不佳,平均绝对误差分别为 9.41\% 和 9.44\% 。
|
||||
基于共生生物搜索算法的支持向量回归算法尽管已经验证在组装车间生产线上对组装时间的预估结果更为准确,但由于其忽略了单个电路板的组装过程的特性,因此拟合精度最低。
|
||||
需要指出,由于贴装点分布的随机性,本章提出的MFEE和用于对比的组装时间估计方法,在预测准确度上均存在误差。
|
||||
|
||||
\begin{table}[htbp]
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:estimator-compare]{}{多特征融合集成组装时间估计器和其他估计器的准确度比较}{Table $\!$}{\centering Comparison of the accuracy of the multifeature fusion ensemble assembly time estimator and other estimators}
|
||||
\begin{tabular}{p{1cm}<{\centering}p{5cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
类别 & 参数 & $E_1$ & $E_2$ & $E_3$ & $E_4$ & $E_5$ \\
|
||||
\midrule
|
||||
\multirow{2}{*}{训练集} & 平均绝对误差 (\%) & 2.01 & 5.09 & 8.75 & 8.75 & 45.30 \\
|
||||
& 最大绝对误差 (\%) & 18.80 & 21.28 & 37.61 & 37.68 & 214.94 \\
|
||||
% Mean Square Error (\%) & & & & & \\
|
||||
\cmidrule(lr){1-7}
|
||||
\multirow{2}{*}{测试集} &平均绝对误差 (\%) & 3.43 & 5.16 & 9.41 & 9.44 & 45.99 \\
|
||||
& 最大绝对误差 (\%) & 16.57 & 18.65 & 27.65 & 28.82 & 183.98\\
|
||||
% Mean Square Error (\%) & & & & &\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
\subsection{生产线元件分配算法的对比实验}[Comparative experiments on the line component allocation algorithms]
|
||||
|
||||
\subsubsection{同数学规划法比较}
|
||||
|
||||
数学规划法可以最优地求解小规模的组合优化问题,为说明本章提出的算法与理论最优值的差距,本节将其同第2章组装线负载平衡模型进行比较,该模型是通过提取影响表面组装过程效率的关键子目标建立的数学模型,建立模型的结果接近实际组装时间,模型的权重设定与第2章相同。在比较过程中,模型和所提出的算法均不计贴装点布局对装配效率的影响。表\ref{ch5:table:small-data-para}列出了用于比较的小规模电路板PCB数据组6,其元件类型数和对应点数均较少。模型和超启发式算法求解所得的加权性能指标分别记为$\mathcal{O}^{\rm{M}}$ 和 $\mathcal{O}^{\rm{H}}$ ,如表\ref{ch5:table:model-compare}所示。
|
||||
同模型所得的最优解相比,超启发式负载平衡在3条生产线上同最优解的平均差距记为$\mathcal{G} = \left( \mathcal{O}^{\rm{H}} / \mathcal{O}^{\rm{M}} - 1 \right) \cdot 100 \% $,分别是7.28\% 、6.58\% 和 3.44\%。由此可见,超启发式算法在求解小规模数据时的性能接近模型求解的结果,而其更高的求解效率使得其可以应用于更大规模的组装数据的优化。
|
||||
|
||||
\begin{table}
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:small-data-para]{}{小规模PCB组装生产线的数据参数}{Table $\!$}{Small-scale data parameters for PCB assembly lines}
|
||||
\begin{tabular}{p{3cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}p{1.5cm}<{\centering}}
|
||||
\toprule
|
||||
PCB & 6-1 & 6-2 & 6-3 & 6-4 & 6-5 \\
|
||||
\midrule
|
||||
元件类型数 & 4 & 4 & 5 & 5 & 5 \\
|
||||
吸嘴类型数 & 3 & 3 & 3 & 2 & 2\\
|
||||
贴装点数 & 28 & 34 & 34 & 30 & 30 \\
|
||||
可用供料器数 & 10 & 6 & 8 & 7 & 5 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\begin{table}
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:model-compare]{}{加权关键性能指标数学模型与超启发式负载平衡算法的比较}{Table $\!$}{\centering Comparison of weighted key metrics between mathematical model and hyper heuristic workload balancing algorithm}
|
||||
\begin{tabular}{p{1.6cm}<{\centering}p{0.9cm}<{\centering}p{0.9cm}<{\centering}p{1.2cm}<{\centering}p{0.9cm}<{\centering}p{0.9cm}<{\centering}p{1.2cm}<{\centering}p{0.9cm}<{\centering}p{0.9cm}<{\centering}p{1.2cm}<{\centering}}
|
||||
\toprule
|
||||
\multirow{2}{*}{生产线} & \multicolumn{3}{c}{\emph{L}1} & \multicolumn{3}{c}{\emph{L}2} & \multicolumn{3}{c}{\emph{L}3} \\
|
||||
\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-10}
|
||||
& $\mathcal{O}^{\rm{M}}$ & $\mathcal{O}^{\rm{H}}$ & $\mathcal{G}$ (\%) & $\mathcal{O}^{\rm{M}}$ & $\mathcal{O}^{\rm{H}}$ & $\mathcal{G}$ (\%) & $\mathcal{O}^{\rm{M}}$ & $\mathcal{O}^{\rm{H}}$ & $\mathcal{G}$ (\%) \\
|
||||
\midrule
|
||||
6-1 & 2.585 & 2.626 & 1.59 & 1.758 & 1.837 & 4.49 & 1.676 & 1.813 & 8.17\\
|
||||
6-2 & 3.286 & 3.672 & 11.75 & 2.785 & 3.122 & 12.10 & 2.473 & 2.514 & 1.66 \\
|
||||
6-3 & 2.719 & 2.998 & 10.26 & 2.218 & 2.445 & 10.23 & 1.947 & 2.054 & 5.50
|
||||
\\
|
||||
6-4 &2.744 & 3.017 & 9.95 & 2.202 & 2.314 & 5.09 & 2.202 & 2.243 & 1.86
|
||||
\\
|
||||
6-5 & 2.933 & 3.017 & 2.86 & 2.432 & 2.456 & 0.99 & 2.432 & 2.432 & 0.00
|
||||
\\
|
||||
\midrule
|
||||
平均值 & & & 7.28 & & & 6.58 & & & 3.44 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\subsubsection{同其它元件分配算法比较}
|
||||
|
||||
生产线负载平衡的任务是将元件分配到生产线的贴片机中,以实现其中生产瓶颈的贴片机组装时间最小化的目标。
|
||||
本节将比较提出的HHALO和主流研究在实际生产中的表现,表\ref{ch5:table:large-pcb-data}列出了用于比较的大规模PCB数据组7的基本参数,用于对比的元件分配算法包括集成选择式分配启发式(Integrated Selective Allocation Heuristic,ISAH)算法, 混合重构式产线优化(Hybrid Reconfiguration Assembly Line Optimization,HRALO)算法以及组装线负载平衡求解器(Assembly Line Workload Balancing Solver,ALWBS)。
|
||||
其中,ALWBS是某贴片机生产制造商于2022年发布的内置于生产线管理软件的负载平衡优化器;
|
||||
HRALO算法以T\'{o}th等\cite{toth_reconfiguring_2010}提出的混合优化算法为基本框架,进一步结合了Mumtaz等\cite{mumtaz_hybrid_2020, zhong_multi-objective_2022}提出的PCB组装线优化中的混合蜘蛛猴算法的编码规则与搜索方式;
|
||||
Guo 等\cite{guo_integrated_2012}提出的ISAH则是适用于表面组装生产线的基于进化的改进方法,其通过设计启发式算子搜索解的可行域,为 PCB 组装线优化提供实用有效的解决方案。HHALO、ALWBS和ISAH均提供了元件可重复分配的解决方案,HRALO则未给出解决方案,因此在对比实验中采用了\ref{duplicate-allocation-section}节所提出的分组策略。在贴片机组装过程优化方面,ALWBS通过内置程序优化表面组装过程,其余方法则采用第3--4章提出的表面组装过程优化方法。
|
||||
|
||||
|
||||
\begin{table}[H]
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:large-pcb-data]{}{大规模PCB组装生产线的数据参数}{Table $\!$}{Large-scale data parameters for PCB assembly lines}
|
||||
\begin{tabular}{p{2.5cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.75cm}<{\centering}p{0.8cm}<{\centering}}
|
||||
\toprule
|
||||
PCB & 7-1 & 7-2 & 7-3 & 7-4 & 7-5 & 7-6 & 7-7 & 7-8 & 7-9 & 7-10 \\
|
||||
\midrule
|
||||
元件类型数 & 16 & 29 & 7 & 24 & 45 & 7 & 47 & 40 & 10 & 40\\
|
||||
吸嘴类型数 & 3 & 3 & 3 & 3 & 4 & 4 & 4 & 2 & 3 & 4 \\
|
||||
贴装点数 & 78 & 165 & 192 & 236 & 209 & 320 & 390 & 546 & 720 & 1510 \\
|
||||
可用供料器数 & 19 & 30 & 12 & 28 & 47 & 14 & 54 & 50 & 19 & 40\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
HHALO在不同的生产线配置上均取得的有益的效果,记其组装时间为$\mathcal{T}^{\rm{HHALO}}$,对比方法ALWBS、HRALO和ISAH的组装时间分别被记为$\mathcal{T}^{\rm{ALWBS}}$,$\mathcal{T}^{\rm{HRALO}}$和$\mathcal{T}^{\rm{ISAH}}$,表\ref{ch5:table:assembly-compare}列出了上述4种算法在不同组装生产线上的大规模电路板数据的负载平衡优化所得的装配时间,相较于此三种算法,本章所提出的HHALO算法适用于不同生产配置的并列式贴片机组装生产线,在组装效率上分别提高了 7.21\%,8.67\% 和 9.47\%。
|
||||
随着生产线装配的贴片机数量的增加,负载分配的可行解空间也随之增加,而HHALO算法在搜索高质量的解的方面也更具优势。
|
||||
由表可知,HHALO和同类型的工业软件中的ALWBS有着相近的表现,虽然存在少量数据的HHALO的解不如ALWBS,但HHALO整体上平均组装效率更优。
|
||||
ISAH和HRALO均是基于进化算法的搜索框架,而其算子的设计相对简单,对并列式贴片机组装效率的影响因素考虑不足,加之对搜索到的解的时间评估也不准确,因而整体组装时间较长。
|
||||
|
||||
\begin{table}[!hb]
|
||||
\centering
|
||||
\small
|
||||
% \caption{超启发式组装线优化器与主流算法的装配时间比较}{Table~\ref{ch5:table:assembly-compare} Comparison of assembly time between the hyper-heuristic assembly line optimizer and mainstream algorithms}\label{ch5:table:assembly-compare}
|
||||
% ==========================================================
|
||||
\bicaption[ch5:table:assembly-compare]{}{超启发式组装线优化器与主流算法的装配时间比较}{Table $\!$}{\centering Comparison of assembly time between the hyper-heuristic assembly line optimizer and mainstream algorithms}
|
||||
\begin{tabular}{p{0.6cm}<{\centering}p{1cm}<{\centering}
|
||||
p{1.8cm}<{\centering}
|
||||
p{1.2cm}<{\centering}p{1.3cm}<{\centering}
|
||||
p{1.2cm}<{\centering}p{1.3cm}<{\centering}
|
||||
p{1.2cm}<{\centering}p{1.3cm}<{\centering}
|
||||
}
|
||||
\toprule
|
||||
\multirow{2}{*}{PCB}& \multirow{2}{*}{产线} & HHALO & \multicolumn{2}{c}{ALWBS} & \multicolumn{2}{c}{ISAH} & \multicolumn{2}{c}{HRALO} \\
|
||||
\cmidrule(lr){3-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
|
||||
& & \makecell[c]{$\mathcal{T}^{\rm{HHALO}}$ \\ (s)} & \makecell[c]{$\mathcal{T}^{\rm{ALWBS}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ & \makecell[c]{$\mathcal{T}^{\rm{ISAH}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ & \makecell[c]{$\mathcal{T}^{\rm{HRALO}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ \\
|
||||
\midrule
|
||||
& \emph{L}1 & 10.14 & 12.91 & 27.36 & 10.91 & 7.57 & 14.97 & 47.62 \\
|
||||
7-1 & \emph{L}2 & 8.06 & 8.41 & 4.34 & 9.42 & 16.87 & 8.41 & 4.34 \\
|
||||
& \emph{L}3 & 6.21 & 6.56 & 5.68 & 7.17 & 15.39 & 6.83 & 10.03 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 19.55 & 20.78 & 6.27 & 19.89 & 1.74 & 20.61 & 5.40 \\
|
||||
7-2 & \emph{L}2 & 14.28 & 14.75 & 3.29 & 14.93 & 4.57 & 14.75 & 3.29 \\
|
||||
& \emph{L}3 & 11.61 & 12.95 & 11.48 & 12.42 & 6.95 & 12.35 & 6.35 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 21.15 & 21.19 & 0.17 & 23.39 & 10.57 & 23.18 & 9.59 \\
|
||||
7-3 & \emph{L}2 & 18.06 & 18.77 & 3.90 & 18.26 & 1.07 & 18.77 & 3.90 \\
|
||||
& \emph{L}3 & 12.59 & 14.44 & 14.72 & 14.92 & 18.54 & 14.72 & 16.93 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 26.10 & 26.29 & 0.71 & 28.14 & 7.83 & 29.37 & 12.54 \\
|
||||
7-4 & \emph{L}2 & 17.85 & 18.66 & 4.50 & 19.17 & 7.40 & 18.66 & 4.50 \\
|
||||
& \emph{L}3 & 13.87 & 13.96 & 0.62 & 14.38 & 3.66 & 14.86 & 7.13 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 27.86 & 32.32 & 16.03 & 33.48 & 20.18 & 32.57 & 16.93 \\
|
||||
7-5 & \emph{L}2 & 19.33 & 19.59 & 1.33 & 21.29 & 10.14 & 19.59 & 1.33 \\
|
||||
& \emph{L}3 & 15.35 & 15.79 & 2.88 & 16.89 & 10.05 & 16.66 & 8.58 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 38.63 & 44.42 & 14.97 & 39.11 & 1.24 & 45.05 & 16.62 \\
|
||||
7-6 & \emph{L}2 & 26.53 & 27.91 & 5.22 & 27.34 & 3.07 & 27.91 & 5.22 \\
|
||||
& \emph{L}3 & 22.83 & 23.02 & 0.80 & 22.44 & -1.72 & 24.22 & 6.08 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 50.15 & 53.91 & 7.49 & 58.73 & 17.12 & 57.76 & 15.19 \\
|
||||
7-7 & \emph{L}2 & 34.12 & 36.93 & 8.25 & 40.79 & 19.55 & 36.93 & 8.25 \\
|
||||
& \emph{L}3 & 26.23 & 26.85 & 2.36 & 29.72 & 13.30 & 31.32 & 19.40 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 71.32 & 73.96 & 3.69 & 72.02 & 0.97 & 75.09 & 5.28 \\
|
||||
7-8 & \emph{L}2 & 48.08 & 51.16 & 6.40 & 51.91 & 7.96 & 51.16 & 6.40 \\
|
||||
& \emph{L}3 & 39.42 & 40.18 & 1.92 & 40.28 & 2.18 & 42.76 & 8.47 \\
|
||||
\cmidrule(lr){1-9}
|
||||
& \emph{L}1 & 85.69 & 91.18 & 6.41 & 94.66 & 10.47 & 91.95 & 7.31 \\
|
||||
7-9 & \emph{L}2 & 60.91 & 63.91 & 4.93 & 66.08 & 8.48 & 63.91 & 4.93 \\
|
||||
& \emph{L}3 & 46.07 & 52.57 & 14.09 & 53.05 & 15.14 & 47.10 & 2.23 \\
|
||||
\cmidrule(lr){1-9}
|
||||
\multirow{3}{*}{7-10} & \emph{L}1 & 176.99 & 179.94 & 1.67 & 185.07 & 4.56 & 188.01 & 6.23 \\
|
||||
& \emph{L}2 & 117.93 & 125.79 & 6.66 & 128.07 & 8.59 & 125.79 & 6.66 \\
|
||||
& \emph{L}3 & 90.78 & 116.23 & 28.04 & 96.73 & 6.56 & 97.54 & 7.44 \\
|
||||
\midrule
|
||||
AVG & & & & 7.21 & & 8.67 & & 9.47 \\
|
||||
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
% % ==========================================================
|
||||
\end{table}
|
||||
% \vspace{-1.5em}
|
||||
% \begin{longtable}{p{0.6cm}<{\centering}p{1cm}<{\centering}
|
||||
% p{1.8cm}<{\centering}
|
||||
% p{1.2cm}<{\centering}p{1.3cm}<{\centering}
|
||||
% p{1.2cm}<{\centering}p{1.3cm}<{\centering}
|
||||
% p{1.2cm}<{\centering}p{1.3cm}<{\centering}
|
||||
% }
|
||||
|
||||
% \toprule
|
||||
% \multirow{2}{*}{PCB}& \multirow{2}{*}{产线} & HHALO & \multicolumn{2}{c}{ALWBS} & \multicolumn{2}{c}{HRALO} & \multicolumn{2}{c}{ISAH} \\
|
||||
% \cmidrule(lr){3-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
|
||||
% & & \makecell[c]{$\mathcal{T}^{\rm{HHALO}}$ \\ (s)} & \makecell[c]{$\mathcal{T}^{\rm{ALWBS}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ & \makecell[c]{$\mathcal{T}^{\rm{ISAH}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ & \makecell[c]{$\mathcal{T}^{\rm{HRALO}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ \\
|
||||
% \midrule
|
||||
% \endfirsthead
|
||||
% \multicolumn{9}{r}{续表\autoref{ch5:table:assembly-compare}}\\
|
||||
% \multicolumn{9}{c}{(接上页)}\\
|
||||
% \toprule
|
||||
% \multirow{2}{*}{PCB}& \multirow{2}{*}{产线} & HHALO & \multicolumn{2}{c}{ALWBS} & \multicolumn{2}{c}{HRALO} & \multicolumn{2}{c}{ISAH} \\
|
||||
% \cmidrule(lr){3-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
|
||||
% & & \makecell[c]{$\mathcal{T}^{\rm{HHALO}}$ \\ (s)} & \makecell[c]{$\mathcal{T}^{\rm{ALWBS}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ & \makecell[c]{$\mathcal{T}^{\rm{HRALO}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ & \makecell[c]{$\mathcal{T}^{\rm{ISAH}}$ \\ (s)} & $\mathcal{G}\left(\%\right)$ \\
|
||||
% \midrule
|
||||
% \endhead
|
||||
% \bottomrule
|
||||
% \multicolumn{9}{c}{(接下页)}
|
||||
% \endfoot
|
||||
% \bottomrule
|
||||
% \endlastfoot
|
||||
% & \emph{L}1 & 10.14 & 12.91 & 27.36 & 10.91 & 7.57 & 14.97 & 47.62 \\
|
||||
% 7-1 & \emph{L}2 & 8.06 & 8.41 & 4.34 & 9.42 & 16.87 & 8.41 & 4.34 \\
|
||||
% & \emph{L}3 & 6.21 & 6.56 & 5.68 & 7.17 & 15.39 & 6.83 & 10.03 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 19.55 & 20.78 & 6.27 & 19.89 & 1.74 & 20.61 & 5.40 \\
|
||||
% 7-2 & \emph{L}2 & 14.28 & 14.75 & 3.29 & 14.93 & 4.57 & 14.75 & 3.29 \\
|
||||
% & \emph{L}3 & 11.61 & 12.95 & 11.48 & 12.42 & 6.95 & 12.35 & 6.35 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 21.15 & 21.19 & 0.17 & 23.39 & 10.57 & 23.18 & 9.59 \\
|
||||
% 7-3 & \emph{L}2 & 18.06 & 18.77 & 3.90 & 18.26 & 1.07 & 18.77 & 3.90 \\
|
||||
% & \emph{L}3 & 12.59 & 14.44 & 14.72 & 14.92 & 18.54 & 14.72 & 16.93 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 26.10 & 26.29 & 0.71 & 28.14 & 7.83 & 29.37 & 12.54 \\
|
||||
% 7-4 & \emph{L}2 & 17.85 & 18.66 & 4.50 & 19.17 & 7.40 & 18.66 & 4.50 \\
|
||||
% & \emph{L}3 & 13.87 & 13.96 & 0.62 & 14.38 & 3.66 & 14.86 & 7.13 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 27.86 & 32.32 & 16.03 & 33.48 & 20.18 & 32.57 & 16.93 \\
|
||||
% 7-5 & \emph{L}2 & 19.33 & 19.59 & 1.33 & 21.29 & 10.14 & 19.59 & 1.33 \\
|
||||
% & \emph{L}3 & 15.35 & 15.79 & 2.88 & 16.89 & 10.05 & 16.66 & 8.58 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 38.63 & 44.42 & 14.97 & 39.11 & 1.24 & 45.05 & 16.62 \\
|
||||
% 7-6 & \emph{L}2 & 26.53 & 27.91 & 5.22 & 27.34 & 3.07 & 27.91 & 5.22 \\
|
||||
% & \emph{L}3 & 22.83 & 23.02 & 0.80 & 22.44 & -1.72 & 24.22 & 6.08 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 50.15 & 53.91 & 7.49 & 58.73 & 17.12 & 57.76 & 15.19 \\
|
||||
% 7-7 & \emph{L}2 & 34.12 & 36.93 & 8.25 & 40.79 & 19.55 & 36.93 & 8.25 \\
|
||||
% & \emph{L}3 & 26.23 & 26.85 & 2.36 & 29.72 & 13.30 & 31.32 & 19.40 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 71.32 & 73.96 & 3.69 & 72.02 & 0.97 & 75.09 & 5.28 \\
|
||||
% 7-8 & \emph{L}2 & 48.08 & 51.16 & 6.40 & 51.91 & 7.96 & 51.16 & 6.40 \\
|
||||
% & \emph{L}3 & 39.42 & 40.18 & 1.92 & 40.28 & 2.18 & 42.76 & 8.47 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% & \emph{L}1 & 85.69 & 91.18 & 6.41 & 94.66 & 10.47 & 91.95 & 7.31 \\
|
||||
% 7-9 & \emph{L}2 & 60.91 & 63.91 & 4.93 & 66.08 & 8.48 & 63.91 & 4.93 \\
|
||||
% & \emph{L}3 & 46.07 & 52.57 & 14.09 & 53.05 & 15.14 & 47.10 & 2.23 \\
|
||||
% \cmidrule(lr){1-9}
|
||||
% \multirow{3}{*}{7-10} & \emph{L}1 & 176.99 & 179.94 & 1.67 & 185.07 & 4.56 & 188.01 & 6.23 \\
|
||||
% & \emph{L}2 & 117.93 & 125.79 & 6.66 & 128.07 & 8.59 & 125.79 & 6.66 \\
|
||||
% & \emph{L}3 & 90.78 & 116.23 & 28.04 & 96.73 & 6.56 & 97.54 & 7.44 \\
|
||||
% \midrule
|
||||
% AVG & & & & 7.21 & & 8.67 & & 9.47
|
||||
% \end{longtable}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\begin{minipage}{0.48\linewidth}
|
||||
\vspace{2pt}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter5/assembly-efficiency-L01.eps}}
|
||||
\centerline{\emph{L}1}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.48\linewidth}
|
||||
\vspace{2pt}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter5/assembly-efficiency-L02.eps}}
|
||||
\centerline{\emph{L}2}
|
||||
\end{minipage}
|
||||
\begin{minipage}{0.48\linewidth}
|
||||
\vspace{2pt}
|
||||
\centerline{\includegraphics[width=\textwidth]{chapter5/assembly-efficiency-L03.eps}}
|
||||
\centerline{\emph{L}3}
|
||||
\end{minipage}
|
||||
\vspace{3pt}
|
||||
\bicaption[ch5:figure:assmebly-boxplot]{}{不同方法的装配效率优化结果在三条印刷电路板装配线上的分布比较}{Fig. $\!$}{\centering Comparison of the distribution of assembly efficiency optimization results of different methods on three PCB assembly lines}
|
||||
\end{figure}
|
||||
|
||||
此外,图\ref{ch5:figure:assmebly-boxplot}比较了不同优化算法在3条表面组装生产线上优化得到的装配时间的数据分配情况。在包含随机搜索算子的优化算法中,HHALO算法解的分布更为集中,且整体优于其他两种组装优化算法。
|
||||
ISAH和HRALO作为基于进化搜索的优化算法,搜索过程中的随机算子扩大了算法的搜索范围,但也导致解的分布方差较大、输出的结果不稳定。
|
||||
虽然ISAH部分解的质量优于HRALO的解,但ISAH的优化结果不稳定使其平均表现最差。
|
||||
ALWBS作为工业优化求解方法,其内部采用了确定性的启发式优化方法,解的整体质量优于ISAH和HRALO,但不如本章提出的HHALO优化算法。
|
||||
在多数情况下,HHALO算法单次运行得到的优化结果优于其他方法,即使单次运行存在质量相对较差的解,其与其他方法最优解的差距也相对较小。
|
||||
|
||||
\subsection{运行效率分析}[Analysis of solving efficiency]
|
||||
|
||||
求解效率是衡量算法性能的重要指标之一,特别是对于大规模组合优化问题,高效的求解效率有助于算法的部署推广。表\ref{ch5:table:solving-compare}比较了HHALO,ISAH和HRALO算法的求解时间,由于ALWBS未开源具体的实现方式,因此不在比较之列。由表可知,HRALO具有最高的求解效率,但其选用了相对简单的搜索方式,以较低的时间估计准确度为代价快速搜索。HHALO和ISAH均采用了更为复杂的时间预估方式,且在搜索过程中融入了更为多样的搜索算子,能实现对解空间更充分的搜索,获得解的质量更高,搜索时间在可接受的范围内。相比较而言,本章所提出的HHALO比ISAH搜索效率更高、解决方案的质量更好。此外,HHALO在评估候选解时调用表面组装过程优化算法造成了求解时间的增加,通过缩短单台贴片机的搜索时间或提升组装时间估计器的准确度,将有助于进一步提升算法的求解效率。
|
||||
|
||||
\begin{table}[ht]
|
||||
\centering
|
||||
\small
|
||||
\bicaption[ch5:table:solving-compare]{}{超启发式表面组装线优化算法与其他主流算法的求解时间比较}{Table $\!$}{\centering Comparison of solving times between hyper-heuristic surface assembly line optimization algorithms and other mainstream algorithms}
|
||||
\begin{tabular}{p{1.2cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}<{\centering}p{1cm}<{\centering}p{1.2cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}p{1cm}<{\centering}}
|
||||
\toprule
|
||||
& \multicolumn{3}{c}{HHALO} & \multicolumn{3}{c}{HRALO} & \multicolumn{3}{c}{ISAH} \\
|
||||
\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-10}
|
||||
PCB & \emph{L}1 (s) & \emph{L}2 (s) & \emph{L}3 (s) & \emph{L}1 (s) & \emph{L}2 (s) & \emph{L}3 (s) & \emph{L}1 (s) & \emph{L}2 (s) & \emph{L}3 (s) \\
|
||||
\midrule
|
||||
7-1 & 17.28 & 20.95 & 24.26 & 15.84 & 18.97 & 21.69 & 54.13 & 59.35 & 62.99 \\
|
||||
7-2 & 33.98 & 31.35 & 30.71 & 63.45 & 63.70 & 68.54 & 64.05 & 68.51 & 75.21 \\
|
||||
7-3 & 13.98 & 15.62 & 19.64 & 26.56 & 32.01 & 37.27 & 50.74 & 54.99 & 63.95 \\
|
||||
7-4 & 21.51 & 23.73 & 26.20 & 9.31 & 11.08 & 12.26 & 64.05 & 68.17 & 76.23 \\
|
||||
7-5 & 100.22 & 81.51 & 87.45 & 23.49 & 28.06 & 32.57 & 85.59 & 90.02 & 96.65 \\
|
||||
7-6 & 21.32 & 18.32 & 21.74 & 49.13 & 56.61 & 65.24 & 63.57 & 67.34 & 73.92 \\
|
||||
7-7 & 93.22 & 70.93 & 68.72 & 12.80 & 14.17 & 16.01 & 100.31 & 96.79 & 104.06 \\
|
||||
7-8 & 40.19 & 42.99 & 38.08 & 55.18 & 59.92 & 65.67 & 91.20 & 95.64 & 104.69 \\
|
||||
7-9 & 29.20 & 27.52 & 30.12 & 40.48 & 48.99 & 55.56 & 89.30 & 92.85 & 101.16 \\
|
||||
7-10 & 135.98 & 76.67 & 76.71 & 25.48 & 24.94 & 24.90 & 144.55 & 155.60 & 171.15 \\
|
||||
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
|
||||
\section{本章小结}[Summary of this chapter]
|
||||
|
||||
本章提出了基于多特征融合集成组装时间估计器的超启发式表面组装生产线负载平衡算法,将估计器的的高准确度与超启发式的大邻域搜索能力相结合,提供了高质量的解决方案。
|
||||
本章分析了生产线的工作特性,设计了以进化算法为基本框架的超启发式负载平衡算法,通过多种群迭代增加搜索多样性,提出了数据驱动和目标驱动的元件分配底层启发式,并在分配过程中结合了组装优先级、可用组装工具等约束。对于元件可重复分配的情形,元件分组策略用于确定底层算子操作的基本对象,聚合聚类启发式用于确定贴装点分配的贴片机。估计器以集成学习为框架、以神经网络为基模型,在编码中融合了启发式估计的子目标等多维特征,用于估计组装时间。实验结果表明,本章提出的估计器的结果准确度更高,超启发式分配算法在处理小规模数据时与模型获得的最优解的质量接近;与其他主流研究相比,算法能在可接受的求解时间内获得装配效率更高和更为稳定的结果。
|
581
body/introduction.tex
Normal file
581
body/introduction.tex
Normal file
@ -0,0 +1,581 @@
|
||||
% !Mode:: "TeX:UTF-8"
|
||||
|
||||
\chapter{示例文档}[Example]
|
||||
|
||||
这是 \hithesis\ 的示例文档,基本上覆盖了模板中所有格式的设置。建议大家在使用模
|
||||
板之前,除了阅读《\hithesis\:哈尔滨工业大学学位论文模板》\footnote{即
|
||||
hithesis.pdf文件},本示例文档也最好能看一看。此示例文档尽量使用到所有的排版格式
|
||||
,然而对于一些不在我工规范中规定的文档,理论上是由用户自由发挥,这里不给出样例
|
||||
。需要另行载入的宏包和自定义命令在文件`hithesis.sty'中有示例,这里不列举。
|
||||
|
||||
\section{关于数字}[Number]
|
||||
|
||||
按《关于出版物上数字用法的试行规定》(1987年1月1日国家语言文字工作委员会等7个单位公布),除习惯用中文数字表示的以外,一般数字均用阿拉伯数字。
|
||||
(1)公历的世纪、年代、年、月、日和时刻一律用阿拉伯数字,如20世纪,80年代,4时3刻等。年号要用四位数,如1989年,不能用89年。
|
||||
(2)记数与计算(含正负整数、分数、小数、百分比、约数等)一律用阿拉伯数字,如3/4,4.5%,10个月,500多种等。
|
||||
(3)一个数值的书写形式要照顾到上下文。不是出现在一组表示科学计量和具有统计意义数字中的一位数可以用汉字,如一个人,六条意见。星期几一律用汉字,如星期六。邻近两个数字并列连用,表示概数,应该用汉字数字,数字间不用顿号隔开,如三五天,七八十种,四十五六岁,一千七八百元等。
|
||||
(4)数字作为词素构成定型的词、词组、惯用语、缩略语等应当使用汉字。如二倍体,三叶虫,第三世界,“七五”规划,相差十万八千里等。
|
||||
(5)5位以上的数字,尾数零多的,可改写为以万、亿为单位的数。一般情况下不得以十、百、千、十万、百万、千万、十亿、百亿、千亿作为单位。如~\num{345000000}~公里可改写为3.45亿公里或~\num{34500}~万公里,但不能写为3亿~\num{4500}~万公里或3亿4千5百万公里。
|
||||
(6)数字的书写不必每格一个数码,一般每两数码占一格,数字间分节不用分位号“,”,凡4位或4位以上的数都从个位起每3位数空半个数码(1/4汉字)。“\num{3000000}”,不要写成“3,000,000”,小数点后的数从小数点起向右按每三位一组分节。一个用阿拉伯数字书写的多位数不能从数字中间转行。
|
||||
(7)数量的增加或减少要注意下列用词的概念:1)增加为(或增加到)过去的二倍,即过去为一,现在为二;2)增加(或增加了)二倍,即过去为一,现在为三;3)超额80%,即定额为100,现在为180;4)降低到80%,即过去为100,现在为80;5)降低(或降低了)80%,即原来为100,现在为20;6)为原数的1/4,即原数为4,现在为1,或原数为1,现在为0.25。
|
||||
应特别注意在表达数字减小时,不宜用倍数,而应采用分数。如减少为原来的1/2,1/3等。
|
||||
|
||||
|
||||
\section{索引示例}[Index]
|
||||
|
||||
为便于检索文中内容,可编制索引置于论文之后(根据需要决定是否设置)。索引以论文中
|
||||
的专业词语为检索线索,指出其相关内容的所在页码。索引用中、英两种文字书写,中文在
|
||||
前。\sindex[china]{qi!乔峰}\sindex[english]{Xu Zhu}\sindex[english]{Qiao Feng}
|
||||
中文按各词汉语拼音第一个字母排序,英文按该词第一个英文字母排序。
|
||||
|
||||
\section{术语排版举例}[Glossaries and index]
|
||||
|
||||
术语的定义和使用可以结合索引,灵活使用。
|
||||
例如,\gtssbp 是一种应用于狄利克雷过程抽样的算法。
|
||||
下次出现将是另一种格式:\gtssbp 。
|
||||
还可以切换单复数例如:\gscnas ,下次出现为:\gscnas 。
|
||||
此处体现了\LaTeX\ 格式内容分离的优势。
|
||||
|
||||
\section{引用}[Cite]
|
||||
|
||||
\sindex[china]{du!段誉}引文标注遵照GB/T7714-2005,采用顺序编码制。正文中引用文献的标示应置于所引内容最后一个字的右上角,所引文献编号用阿拉伯数字置于方括号“[ ]”中,用小4号字体的上角标。要求:
|
||||
|
||||
(1)引用单篇文献时,如“二次铣削\cite{cnproceed}”。
|
||||
|
||||
(2)同一处引用多篇文献时,各篇文献的序号在方括号内全部列出,各序号间用“,”,如
|
||||
遇连续序号,可标注讫序号。如,…形成了多种数学模型\cite{cnarticle,cnproceed}…
|
||||
注意此处添加\cs{inlinecite}中文空格\inlinecite{cnarticle,cnproceed},可以在cfg文件中修改空格类型。
|
||||
|
||||
(3)多次引用同一文献时,在文献序号的“[ ]”后标注引文页码。如,…间质细胞CAMP含量
|
||||
测定\cite[100-197]{cnarticle}…。…含量测定方法规定
|
||||
\cite[92]{cnarticle}…。
|
||||
|
||||
(4)当提及的参考文献为文中直接说明时,则用小4号字与正文排齐,如“由文献\inlinecite{hithesis2017}可知”
|
||||
|
||||
\section{定理和定义等}[Theorem]
|
||||
\begin{theorem}[\cite{cnproceed}]
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{theorem}
|
||||
\begin{definition}[(霍金)]
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{definition}
|
||||
\begin{assumption}
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{assumption}
|
||||
\begin{lemma}
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{lemma}
|
||||
\begin{corollary}
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{corollary}
|
||||
\begin{exercise}
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{exercise}
|
||||
\begin{problem}[(Albert Einstein)]
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{problem}
|
||||
\begin{remark}
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{remark}
|
||||
\begin{axiom}[(爱因斯坦)]
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{axiom}
|
||||
\begin{conjecture}
|
||||
宇宙大爆炸是一种爆炸。
|
||||
\end{conjecture}
|
||||
\section{图片}[Pictures]
|
||||
图应有自明性。插图应与文字紧密配合,文图相符,内容正确。选图要力求精练,插图、照
|
||||
片应完整清晰。机械工程图:采用第一角投影法,严格按照GB4457~GB131-83《机械制图》
|
||||
标准规定。数据流程图、程序流程图、系统流程图等按GB1526-89标准规定。电气图:图形
|
||||
符号、文字符号等应符合附录3所列有关标准的规定。流程图:必须采用结构化程序并正确
|
||||
运用流程框图。对无规定符号的图形应采用该行业的常用画法。坐标图的坐标线均用细实线
|
||||
,粗细不得超过图中曲线;有数字标注的坐标图,必须注明坐标单位。照片图要求主题和主
|
||||
要显示部分的轮廓鲜明,便于制版。如用放大或缩小的复制品,必须清晰,反差适中。照片
|
||||
上应有表示目的物尺寸的标度。引用文献中的图时,除在正文文字中标注参考文献序号以外
|
||||
,还必须在中、英文表题的右上角标注参考文献序号。
|
||||
|
||||
\subsection{博士毕业论文双语题注}[Doctoral picture example]
|
||||
\begin{figure}[htpb]
|
||||
\centering
|
||||
\includegraphics[width = 0.4\textwidth]{golfer}
|
||||
\bicaption[golfer1]{}{打高尔夫球球的人(博士论文双语题注)}{Fig.$\!$}{The person playing golf (Doctoral thesis)}
|
||||
\end{figure}
|
||||
|
||||
每个图均应有图题(由图序和图名组成),图题不宜有标点符号,图名在图序之后空1个半
|
||||
角字符排写。图序按章编排,如第1章第一个插图的图号为“图1-1”。图题置于图下,硕士论
|
||||
文只用中文,博士论文用中、英两种文字,居中书写,中文在上,要求中文用宋体5号字,
|
||||
英文用Times New Roman 5号字。有图注或其它说明时应置于图题之上。引用图应注明出处
|
||||
,在图题右上角加引用文献号。图中若有分图时,分图题置于分图之下或图题之下,可以只
|
||||
用中文书写,分图号用a)、b)等表示。图中各部分说明应采用中文(引用的外文图除外)或
|
||||
数字符号,各项文字说明置于图题之上(有分图时,置于分图题之上)。图中文字用宋体、
|
||||
Times New Roman字体,字号尽量采用5号字(当字数较多时可用小5号字,以清晰表达为原
|
||||
则,但在一个插图内字号要统一)。同一图内使用文字应统一。图表中物理量、符号用斜体
|
||||
。
|
||||
\subsection{本硕论文题注}[Other picture example]
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width = 0.4\textwidth]{golfer}
|
||||
\caption{打高尔夫球的人,硕士论文要求只用汉语}
|
||||
\end{figure}
|
||||
|
||||
\subsection{并排图和子图}[Abreast-picture and Sub-picture example]
|
||||
\subsubsection{并排图}[Abreast-picture example]
|
||||
|
||||
使用并排图时,需要注意对齐方式。默认情况是中部对齐。这里给出中部对齐、顶部对齐
|
||||
、图片底部对齐三种常见方式。其中,底部对齐方式有一个很巧妙的方式,将长度比较小
|
||||
的图放在左面即可。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\begin{minipage}{0.4\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{golfer}
|
||||
\bicaption[golfer2]{}{打高尔夫球的人}{Fig.$\!$}{The person playing golf}
|
||||
\end{minipage}
|
||||
\centering
|
||||
\begin{minipage}{0.4\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{golfer}
|
||||
\bicaption[golfer3]{}{打高尔夫球的人。注意,这里默认居中}{Fig.$\!$}{The person playing golf. Please note that, it is vertically center aligned by default.}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\begin{minipage}[t]{0.4\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{golfer}
|
||||
\bicaption[golfer5]{}{打高尔夫球的人}{Fig.$\!$}{The person playing golf}
|
||||
\end{minipage}
|
||||
\centering
|
||||
\begin{minipage}[t]{0.4\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{golfer}
|
||||
\bicaption[golfer8]{}{打高尔夫球的人。注意,此图是顶部对齐}{Fig.$\!$}{The person playing golf. Please note that, it is vertically top aligned.}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\begin{minipage}[t]{0.4\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth,height=\textwidth]{golfer}
|
||||
\bicaption[golfer9]{}{打高尔夫球的人。注意,此图对齐方式是图片底部对齐}{Fig.$\!$}{The person playing golf. Please note that, it is vertically bottom aligned for figure.}
|
||||
\end{minipage}
|
||||
\centering
|
||||
\begin{minipage}[t]{0.4\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{golfer}
|
||||
\bicaption[golfer6]{}{打高尔夫球的人}{Fig.$\!$}{The person playing golf}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{子图}[Sub-picture example]
|
||||
注意:子图题注也可以只用中文。规范规定“分图题置于分图之下或图题之下”,但没有给出具体的格式要求。
|
||||
没有要求的另外一个说法就是“无论什么格式都不对”。
|
||||
所以只有在一个图中有标注“a),b)”,无法使用\cs{subfigure}的情况下,使用最后一个图例中的格式设置方法,否则不要使用。
|
||||
为了应对“无论什么格式都不对”,这个子图图题使用“minipage”和“description”环境,宽度,对齐方式可以按照个人喜好自由设置,是否使用双语子图图题也可以自由设置。
|
||||
|
||||
\begin{figure}[!h]
|
||||
\setlength{\subfigcapskip}{-1bp}
|
||||
\centering
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
\subfigure{\label{golfer41}}\addtocounter{subfigure}{-2}
|
||||
\subfigure[The person playing golf]{\subfigure[打高尔夫球的人~1]{\includegraphics[width=0.4\textwidth]{golfer}}}
|
||||
\hspace{2em}
|
||||
\subfigure{\label{golfer42}}\addtocounter{subfigure}{-2}
|
||||
\subfigure[The person playing golf]{\subfigure[打高尔夫球的人~2]{\includegraphics[width=0.4\textwidth]{golfer}}}
|
||||
\end{minipage}
|
||||
\centering
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
\subfigure{\label{golfer43}}\addtocounter{subfigure}{-2}
|
||||
\subfigure[The person playing golf]{\subfigure[打高尔夫球的人~3]{\includegraphics[width=0.4\textwidth]{golfer}}}
|
||||
\hspace{2em}
|
||||
\subfigure{\label{golfer44}}\addtocounter{subfigure}{-2}
|
||||
\subfigure[The person playing golf. Here, 'hang indent' and 'center last line' are not stipulated in the regulation.]{\subfigure[打高尔夫球的人~4。注意,规范中没有明确规定要悬挂缩进、最后一行居中。]{\includegraphics[width=0.4\textwidth]{golfer}}}
|
||||
\end{minipage}
|
||||
\vspace{0.2em}
|
||||
\bicaption[golfer4]{}{打高尔夫球的人}{Fig.$\!$}{The person playing gol}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
\begin{minipage}{.7\linewidth}
|
||||
\setlength{\subfigcapskip}{-1bp}
|
||||
\centering
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
\subfigure{\label{golfer45}}\addtocounter{subfigure}{-2}
|
||||
\subfigure[The person playing golf]{\subfigure[打高尔夫球的人~1]{\includegraphics[width=0.4\textwidth]{golfer}}}
|
||||
\hspace{4em}
|
||||
\subfigure{\label{golfer46}}\addtocounter{subfigure}{-2}
|
||||
\subfigure[The person playing golf]{\subfigure[打高尔夫球的人~2]{\includegraphics[width=0.4\textwidth]{golfer}}}
|
||||
\end{minipage}
|
||||
\vskip 0.2em
|
||||
\wuhao 注意:这里是中文图注添加位置(我工要求,图注在图题之上)。
|
||||
\vspace{0.2em}
|
||||
\bicaption[golfer47]{}{打高尔夫球的人。注意,此处我工有另外一处要求,子图图题可以位于主图题之下。但由于没有明确说明位于下方具体是什么格式,所以这里不给出举例。}{Fig.$\!$}{The person playing golf. Please note that, although it is appropriate to put subfigures' captions under this caption as stipulated in regulation, but its format is not clearly stated.}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=0.3\textwidth]{golfer}};
|
||||
\begin{scope}[x={(image.south east)},y={(image.north west)}]
|
||||
\node at (0.3,0.5) {a)};
|
||||
\node at (0.8,0.2) {b)};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
\bicaption[golfer0]{}{打高尔夫球球的人(博士论文双语题注)}{Fig.$\!$}{The person playing golf (Doctoral thesis)}
|
||||
\vskip -0.4em
|
||||
\hspace{2em}
|
||||
\begin{minipage}[t]{0.3\textwidth}
|
||||
\wuhao \setlist[description]{font=\normalfont}
|
||||
\begin{description}
|
||||
\item[(a)]子图图题
|
||||
\end{description}
|
||||
\end{minipage}
|
||||
\hspace{2em}
|
||||
\begin{minipage}[t]{0.3\textwidth}
|
||||
\wuhao \setlist[description]{font=\normalfont}
|
||||
\begin{description}
|
||||
\item[(b)]子图图题
|
||||
\item[(b)]Subfigure caption
|
||||
\end{description}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{figure}[!h]
|
||||
\centering
|
||||
\begin{sideways}
|
||||
\begin{minipage}{\textheight}
|
||||
\centering
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\fbox{\includegraphics[width=0.2\textwidth]{golfer}}
|
||||
\bicaption[golfer7]{}{打高尔夫球的人(非规范要求)}{Fig.$\!$}{The person playing golf (Not stated in the regulation)}
|
||||
\end{minipage}
|
||||
\end{sideways}
|
||||
\end{figure}
|
||||
|
||||
\clearpage
|
||||
|
||||
如果不想让图片浮动到下一章节,那么在此处使用\cs{clearpage}命令。
|
||||
|
||||
\section{如何做出符合规范的漂亮的图}
|
||||
关于作图工具在后文\ref{drawtool}中给出一些作图工具的介绍,此处不多言。
|
||||
此处以R语言和Tikz为例说明如何做出符合规范的图。
|
||||
|
||||
\subsection{Tikz作图举例}
|
||||
使用Tikz作图核心思想是把格式、主题、样式与内容分离,定义在全局中。
|
||||
注意字体设置可以有两种选择,如何字少,用五号字,字多用小五。
|
||||
使用Tikz作图不会出现字体问题,字体会自动与正文一致。
|
||||
|
||||
\begin{figure}[thb!]
|
||||
\centering
|
||||
\begin{tikzpicture}[xscale=0.8,yscale=0.3,rotate=90]
|
||||
\small
|
||||
\draw (-22,6.5) node[refcell]{参考基因组};
|
||||
\draw[refline] (-23, 5) -- (27, 5);
|
||||
\draw (-22,3.75) node[tscell]{肿瘤样本};
|
||||
\draw (-20,3.75) node[tncell]{正常细胞};
|
||||
\draw[tnline] (-21, 2.5) -- (27, 2.5);
|
||||
\draw (-20,1.25) node[ttcell]{肿瘤细胞};
|
||||
\rcell{2}{6};
|
||||
\draw[fakeevolve] (4.5, 5.25) -- (4.5, 4.8);
|
||||
\ncell{2}{4};
|
||||
\draw[evolve] (4.5, 3) .. controls (4.5,2.8) and (-3.5,2.9) .. (-3.5, 2);
|
||||
\draw[evolve] (4.5, 3) .. controls (4.5,2.8) and (11.5,2.9) .. (11.5, 2);
|
||||
\tcellone{-6}{1.5};
|
||||
\draw (-9, 2) node[ttcell]{1};
|
||||
\draw[evolve] (-3.5, 0) .. controls (-3.5,-0.2) and (-12,-0.1) .. (-12, -1.5);
|
||||
\draw[evolve] (-3.5, 0) .. controls (-3.5,-0.2) and (1.5,-0.1) .. (1.5, -1.5);
|
||||
\tcellthree{7}{1.5};
|
||||
\draw (4, 2) node[ttcell]{2};
|
||||
\draw[evolve] (11, 0.5) .. controls (11,0.3) and (19,0.4) .. (19, -1.5);
|
||||
\tcellfive{-16}{-2};
|
||||
\draw (-19, -1.5) node[ttcell]{3};
|
||||
\tcelltwo{-1}{-2};
|
||||
\draw (-4, -1.5) node[ttcell]{4};
|
||||
\tcellfour{12}{-2};
|
||||
\draw (9, -1.5) node[ttcell]{5};
|
||||
\end{tikzpicture}
|
||||
\begin{minipage}{.9\linewidth}
|
||||
\vskip 0.2em
|
||||
\wuhao 图中,带有箭头的淡蓝色箭头表示肿瘤子种群的进化方向。一般地,从肿瘤组织中取用于进行二代测序的样本中含有一定程度的正常细胞污染,因此肿瘤的样本中含有正常细胞和肿瘤细胞。每一个子种群的基因组的模拟过程是把生殖细胞变异和体细胞变异加入到参考基因组中。
|
||||
\vspace{0.6em}
|
||||
\end{minipage}
|
||||
\bicaption[tumor]{}{肿瘤组织中各个子种群的进化示意图}{Fig.$\!$}{The diagram of tumor subpopulation evolution process}
|
||||
\end{figure}
|
||||
|
||||
\subsection{R作图}
|
||||
R是一种极具有代表性的典型的作图工具,应用广泛。
|
||||
与Tikz图~\ref{tumor}~不同,R作图分两种情况:(1)可以转换为Tikz码;(2)不可转换为Tikz码。
|
||||
第一种情况图形简单,图形中不含有很多数据点,使用R语言中的Tikz包即可。
|
||||
第二种情况是图形复杂,含有海量数据点,这时候不要转成Tikz矢量图,这会使得论文体积巨大。
|
||||
推荐使用pdf或png非矢量图形。
|
||||
使用非矢量图形时要注意选择好字号(五号或小五),和字体(宋体、新罗马)然后选择生成图形大小,注意此时在正文中使用\cs{includegraphics}命令导入时,不要像导入矢量图那样控制图形大小,使用图形的原本的
|
||||
宽度和高度,这样就确保了非矢量图形中的文字与正文一致了。
|
||||
|
||||
为了控制\hithesis\ 的大小,此处不给出具体举例,
|
||||
|
||||
\section{表格}
|
||||
|
||||
表应有自明性。表格不加左、右边线。表的编排建议采用国际通行的三线表。表中文字用宋
|
||||
体~5~号字。每个表格均应有表题(由表序和表名组成)。表序一般按章编排,如第~1~章第
|
||||
一个插表的序号为“表~1-1”等。表序与表名之间空一格,表名中不允许使用标点符号,表名
|
||||
后不加标点。表题置于表上,硕士学位论文只用中文,博士学位论文用中、英文两种文字居
|
||||
中排写,中文在上,要求中文用宋体~5~号字,英文用新罗马字体~5~号字。表头设计应简单
|
||||
明了,尽量不用斜线。表头中可采用化学符号或物理量符号。
|
||||
|
||||
|
||||
\subsection{普通表格的绘制方法}[Methods of drawing normal tables]
|
||||
|
||||
表格应具有三线表格式,因此需要调用~booktabs~宏包,其标准格式如表~\ref{table1}~所示。
|
||||
\begin{table}[htbp]
|
||||
\bicaption[table1]{}{符合研究生院绘图规范的表格}{Table$\!$}{Table in agreement of the standard from graduate school}
|
||||
\vspace{0.5em}\centering\wuhao
|
||||
\begin{tabular}{ccccc}
|
||||
\toprule[1.5pt]
|
||||
$D$(in) & $P_u$(lbs) & $u_u$(in) & $\beta$ & $G_f$(psi.in)\\
|
||||
\midrule[1pt]
|
||||
5 & 269.8 & 0.000674 & 1.79 & 0.04089\\
|
||||
10 & 421.0 & 0.001035 & 3.59 & 0.04089\\
|
||||
20 & 640.2 & 0.001565 & 7.18 & 0.04089\\
|
||||
\bottomrule[1.5pt]
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
全表如用同一单位,则将单位符号移至表头右上角,加圆括号。表中数据应准确无误,书写
|
||||
清楚。数字空缺的格内加横线“-”(占~2~个数字宽度)。表内文字或数字上、下或左、右
|
||||
相同时,采用通栏处理方式,不允许用“〃”、“同上”之类的写法。表内文字说明,起行空一
|
||||
格、转行顶格、句末不加标点。如某个表需要转页接排,在随后的各页上应重复表的编号。
|
||||
编号后加“(续表)”,表题可省略。续表应重复表头。
|
||||
|
||||
\subsection{长表格的绘制方法}[Methods of drawing long tables]
|
||||
|
||||
长表格是当表格在当前页排不下而需要转页接排的情况下所采用的一种表格环境。若长表格
|
||||
仍按照普通表格的绘制方法来获得,其所使用的\verb|table|浮动环境无法实现表格的换页
|
||||
接排功能,表格下方过长部分会排在表格第1页的页脚以下。为了能够实现长表格的转页接
|
||||
排功能,需要调用~longtable~宏包,由于长表格是跨页的文本内容,因此只需要单独的
|
||||
\verb|longtable|环境,所绘制的长表格的格式如表~\ref{table2}~所示。
|
||||
|
||||
注意,长表格双语标题的格式。
|
||||
|
||||
\vspace{-1.5bp}
|
||||
\ltfontsize{\wuhao[1.667]}
|
||||
\wuhao[1.667]\begin{longtable}{ccc}%
|
||||
\longbionenumcaption{}{{\wuhao 中国省级行政单位一览
|
||||
}\label{table3}}{Table$\!$}{}{{\wuhao Overview of the provincial administrative
|
||||
unit of China}}{-0.5em}{3.15bp}\\
|
||||
%\caption{\wuhao 中国省级行政单位一览}\\
|
||||
\toprule[1.5pt] 名称 & 简称 & 省会或首府 \\ \midrule[1pt]
|
||||
\endfirsthead
|
||||
\multicolumn{3}{r}{表~\thetable(续表)}\vspace{0.5em}\\
|
||||
\toprule[1.5pt] 名称 & 简称 & 省会或首府 \\ \midrule[1pt]
|
||||
\endhead
|
||||
\bottomrule[1.5pt]
|
||||
\endfoot
|
||||
北京市 & 京 & 北京\\
|
||||
天津市 & 津 & 天津\\
|
||||
河北省 & 冀 & 石家庄市\\
|
||||
山西省 & 晋 & 太原市\\
|
||||
内蒙古自治区 & 蒙 & 呼和浩特市\\
|
||||
辽宁省 & 辽 & 沈阳市\\
|
||||
吉林省 & 吉 & 长春市\\
|
||||
黑龙江省 & 黑 & 哈尔滨市\\
|
||||
上海市 & 沪/申 & 上海\\
|
||||
江苏省 & 苏 & 南京市\\
|
||||
浙江省 & 浙 & 杭州市\\
|
||||
安徽省 & 皖 & 合肥市\\
|
||||
福建省 & 闽 & 福州市\\
|
||||
江西省 & 赣 & 南昌市\\
|
||||
山东省 & 鲁 & 济南市\\
|
||||
河南省 & 豫 & 郑州市\\
|
||||
湖北省 & 鄂 & 武汉市\\
|
||||
湖南省 & 湘 & 长沙市\\
|
||||
广东省 & 粤 & 广州市\\
|
||||
广西壮族自治区 & 桂 & 南宁市\\
|
||||
海南省 & 琼 & 海口市\\
|
||||
重庆市 & 渝 & 重庆\\
|
||||
四川省 & 川/蜀 & 成都市\\
|
||||
贵州省 & 黔/贵 & 贵阳市\\
|
||||
云南省 & 云/滇 & 昆明市\\
|
||||
西藏自治区 & 藏 & 拉萨市\\
|
||||
陕西省 & 陕/秦 & 西安市\\
|
||||
甘肃省 & 甘/陇 & 兰州市\\
|
||||
青海省 & 青 & 西宁市\\
|
||||
宁夏回族自治区 & 宁 & 银川市\\
|
||||
新疆维吾尔自治区 & 新 & 乌鲁木齐市\\
|
||||
香港特别行政区 & 港 & 香港\\
|
||||
澳门特别行政区 & 澳 & 澳门\\
|
||||
台湾省 & 台 & 台北市\\
|
||||
\end{longtable}\normalsize
|
||||
\vspace{-1em}
|
||||
|
||||
此长表格~\ref{table2}~第~2~页的标题“编号(续表)”和表头是通过代码自动添加上去的,无需人工添加,若表格在页面中的竖直位置发生了变化,长表格在第~2~页
|
||||
及之后各页的标题和表头位置能够始终处于各页的最顶部,也无需人工调整,\LaTeX~系统的这一优点是~word~等软件所无法比拟的。
|
||||
|
||||
\subsection{列宽可调表格的绘制方法}[Methods of drawing tables with adjustable-width columns]
|
||||
论文中能用到列宽可调表格的情况共有两种,一种是当插入的表格某一单元格内容过长以至
|
||||
于一行放不下的情况,另一种是当对公式中首次出现的物理量符号进行注释的情况,这两种
|
||||
情况都需要调用~tabularx~宏包。下面将分别对这两种情况下可调表格的绘制方法进行阐述
|
||||
。
|
||||
\subsubsection{表格内某单元格内容过长的情况}[The condition when the contents in
|
||||
some cells of tables are too long]
|
||||
首先给出这种情况下的一个例子如表~\ref{table3}~所示。
|
||||
\begin{table}[htbp]
|
||||
\centering
|
||||
\bicaption[table4]{}{最小的三个正整数的英文表示法}{Table$\!$}{The English construction of the smallest three positive integral numbers}\vspace{0.5em}\wuhao
|
||||
\begin{tabularx}{0.7\textwidth}{llX}
|
||||
\toprule[1.5pt]
|
||||
Value & Name & Alternate names, and names for sets of the given size\\\midrule[1pt]
|
||||
1 & One & ace, single, singleton, unary, unit, unity\\
|
||||
2 & Two & binary, brace, couple, couplet, distich, deuce, double, doubleton, duad, duality, duet, duo, dyad, pair, snake eyes, span, twain, twosome, yoke\\
|
||||
3 & Three & deuce-ace, leash, set, tercet, ternary, ternion, terzetto, threesome, tierce, trey, triad, trine, trinity, trio, triplet, troika, hat-trick\\\bottomrule[1.5pt]
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
tabularx环境共有两个必选参数:第1个参数用来确定表格的总宽度,第2个参数用来确定每
|
||||
列格式,其中标为X的项表示该列的宽度可调,其宽度值由表格总宽度确定。标为X的列一般
|
||||
选为单元格内容过长而无法置于一行的列,这样使得该列内容能够根据表格总宽度自动分行
|
||||
。若列格式中存在不止一个X项,则这些标为X的列的列宽相同,因此,一般不将内容较短的
|
||||
列设为X。标为X的列均为左对齐,因此其余列一般选为l(左对齐),这样可使得表格美观
|
||||
,但也可以选为c或r。
|
||||
|
||||
\subsubsection{对物理量符号进行注释的情况}[The condition when physical symbols
|
||||
need to be annotated]
|
||||
|
||||
为使得对公式中物理量符号注释的转行与破折号“———”后第一个字对齐,此处最好采用表格
|
||||
环境。此表格无任何线条,左对齐,且在破折号处对齐,一共有“式中”二字、物理量符号和
|
||||
注释三列,表格的总宽度可选为文本宽度,因此应该采用\verb|tabularx|环境。由
|
||||
\verb|tabularx|环境生成的对公式中物理量符号进行注释的公式如式(\ref{eq:1})所示。
|
||||
\begin{equation}\label{eq:1}
|
||||
\ddot{\boldsymbol{\rho}}-\frac{\mu}{R_{t}^{3}}\left(3\mathbf{R_{t}}\frac{\mathbf{R_{t}\rho}}{R_{t}^{2}}-\boldsymbol{\rho}\right)=\mathbf{a}
|
||||
\end{equation}
|
||||
\begin{tabularx}{\textwidth}{@{}l@{\quad}r@{———}X@{}}
|
||||
式中& $\boldsymbol{\rho}$ &追踪飞行器与目标飞行器之间的相对位置矢量;\\
|
||||
& $\boldsymbol{\ddot{\rho}}$&追踪飞行器与目标飞行器之间的相对加速度;\\
|
||||
& $\mathbf{a}$ &推力所产生的加速度;\\
|
||||
& $\mathbf{R_t}$ & 目标飞行器在惯性坐标系中的位置矢量;\\
|
||||
& $\omega_{t}$ & 目标飞行器的轨道角速度;\\
|
||||
& $\mathbf{g}$ & 重力加速度,$=\frac{\mu}{R_{t}^{3}}\left(
|
||||
3\mathbf{R_{t}}\frac{\mathbf{R_{t}\rho}}{R_{t}^{2}}-\boldsymbol{\rho}\right)=\omega_{t}^{2}\frac{R_{t}}{p}\left(
|
||||
3\mathbf{R_{t}}\frac{\mathbf{R_{t}\rho}}{R_{t}^{2}}-\boldsymbol{\rho}\right)$,这里~$p$~是目标飞行器的轨道半通径。
|
||||
\end{tabularx}\vspace{3.15bp}
|
||||
由此方法生成的注释内容应紧邻待注释公式并置于其下方,因此不能将代码放入
|
||||
\verb|table|浮动环境中。但此方法不能实现自动转页接排,可能会在当前页剩余空间不够
|
||||
时,全部移动到下一页而导致当前页出现很大空白。因此在需要转页处理时,还请您手动将
|
||||
需要转页的代码放入一个新的\verb|tabularx|环境中,将原来的一个\verb|tabularx|环境
|
||||
拆分为两个\verb|tabularx|环境。
|
||||
|
||||
\subsubsection{排版横版表格的举例}[An example of landscape table]
|
||||
|
||||
\begin{table}[p]
|
||||
\centering
|
||||
\begin{sideways}
|
||||
\begin{minipage}{\textheight}
|
||||
\bicaption[table2]{}{不在规范中规定的横版表格}{Table$\!$}{A table style which is not stated in the regulation}
|
||||
\vspace{0.5em}\centering\wuhao
|
||||
\begin{tabular}{ccccc}
|
||||
\toprule[1.5pt]
|
||||
$D$(in) & $P_u$(lbs) & $u_u$(in) & $\beta$ & $G_f$(psi.in)\\
|
||||
\midrule[1pt]
|
||||
5 & 269.8 & 0.000674 & 1.79 & 0.04089\\
|
||||
10 & 421.0 & 0.001035 & 3.59 & 0.04089\\
|
||||
20 & 640.2 & 0.001565 & 7.18 & 0.04089\\
|
||||
\bottomrule[1.5pt]
|
||||
\end{tabular}
|
||||
\end{minipage}
|
||||
\end{sideways}
|
||||
\end{table}
|
||||
|
||||
|
||||
\section{公式}
|
||||
与正常\LaTeX\ 使用方法一致,此处略。关于公式中符号样式的定义在`hithesis.sty'有示
|
||||
例。
|
||||
|
||||
\section{其他杂项}[Miscellaneous]
|
||||
|
||||
\subsection{右翻页}[Open right]
|
||||
|
||||
对于双面打印的论文,强制使每章的标题页出现右手边为右翻页。
|
||||
规范中没有明确规定是否是右翻页打印。
|
||||
模板给出了右翻页选项。
|
||||
为了应对用户的个人喜好,在希望设置成右翻页的位置之前添加\cs{cleardoublepage}命令即可。
|
||||
|
||||
\subsection{算法}[Algorithms]
|
||||
我工算法有以下几大特点。
|
||||
|
||||
(1)算法不在规范中要求。
|
||||
|
||||
(2)算法常常被使用(至少计算机学院)。
|
||||
|
||||
(3)格式乱,甚至出现了每个实验室的格式要求都不一样。
|
||||
|
||||
此处不给出示例,因为没法给,在
|
||||
\href{https://github.com/dustincys/PlutoThesis}{https://github.com/dustincys/PlutoThesis}
|
||||
的readme文件中有不同实验室算法要求说明。
|
||||
|
||||
\subsection{脚注}[Footnotes]
|
||||
不在再规范\footnote{规范是指\PGR\ 和\UGR}中要求,模板默认使用清华大学的格式。
|
||||
|
||||
\subsection{源码}[Source code]
|
||||
也不在再规范中要求。如果有需要最好使用minted包,但在编译的时候需要添加“
|
||||
-shell-escape”选项且安装pygmentize软件,这些不在模板中默认载入,如果需要自行载入
|
||||
。
|
||||
\subsection{思源宋体}[Siyuan font]
|
||||
如果要使用思源字体,需要思源字体的定义文件,此文件请到模板的开发版网址github:
|
||||
\href{https://github.com/dustincys/hithesis}{https://github.com/dustincys/hithesis}
|
||||
或者oschia:
|
||||
\href{https://git.oschina.net/dustincys/hithesis}{https://git.oschina.net/dustincys/hithesis}
|
||||
处下载。
|
||||
|
||||
\subsection{专业绘图工具}[Processional drawing tool]
|
||||
\label{drawtool}
|
||||
推荐使用tikz包,使用tikz源码绘图的好处是,图片中的字体与正文中的字体一致。具体如
|
||||
何使用tikz绘图不属于模板范畴。
|
||||
tikz适合用来画不需要大量实验数据支撑示意图。但R语言等专业绘图工具具有画出各种、
|
||||
专业、复杂的数据图。R语言中有tikz包,能自动生成tikz码,这样tikz几乎无所不能。
|
||||
对于排版有极致追求的小伙伴,可以参考
|
||||
\href{http://www.texample.net/tikz/resources/}{http://www.texample.net/tikz/resources/}
|
||||
中所列工具,几乎所有作图软件所作的图形都可转成tikz,然后可以自由的在tikz中修改
|
||||
图中内容,定义字体等等。实现前文窝工规范中要求的图中字体的一致性的终极目标。
|
||||
|
||||
|
||||
\subsection{术语词汇管理}[Manage glossaries]
|
||||
推荐使用glossaries包管理术语、缩略语,可以自动生成首次全写,非首次缩写。
|
||||
|
||||
\subsection{\TeX\ 源码编辑器}[\TeX editor]
|
||||
推荐:(1)付费软件Winedt;(2)免费软件kile;(3)vim或emaces或sublime等神级编
|
||||
译器(需要配置)。
|
||||
|
||||
\subsection{\LaTeX\ 排版重要原则}[\LaTeX\ typesetting rules]
|
||||
格式和内容分离是\LaTeX\ 最大优势,所有多次出现的内容、样式等等都可以定义为简单命
|
||||
令、环境。这样的好处是方便修改、管理。例如,如果想要把所有的表示向量的符号由粗体
|
||||
\cs{mathbf}变换到花体\cs{mathcal},只需修改该格式的命令的定义部分,不需要像MS
|
||||
word那样处处修改。总而言之,使用自定义命令和环境才是正确的使用\LaTeX\ 的方式。
|
||||
|
||||
\section{关于捐助}
|
||||
各位刀客和大侠如用的嗨,要解囊相助,请参照图~\ref{zfb}~中提示操作(二维码被矢量化后之后去
|
||||
除了头像等冗余无用的部分~)。
|
||||
|
||||
\begin{figure}[!h]
|
||||
\centering\includegraphics[width=0.4\textwidth]{zfb}
|
||||
\vspace{0.2em}
|
||||
\bicaption[Donation]{}{捐助,注意此处是子图只用汉语图题的形式,我工规定可以不用
|
||||
英语图题}{Fig.$\!$}{Donation, please note that it is OK to use Chinese caption
|
||||
only}
|
||||
\end{figure}
|
||||
|
||||
|
||||
% Local Variables:
|
||||
% TeX-master: "../main"
|
||||
% TeX-engine: xetex
|
||||
% End:
|
Reference in New Issue
Block a user