陈俊皓,贾晓亮
(西北工业大学,西安 710072)
航空制造业是尖端产业,具有技术密集度高、产业关联范围广、辐射带动效应大等特点,是国家工业发展、科技能力以及国防水平的重要标志和综合体现[1]。飞机是航空制造业的代表性产品,其复杂性决定了在制造过程中不同于一般机械产品。通常一般机械产品的装配工作量占制造总劳动量20%左右,然而,由于飞机零件和连接件的数量往往以百万计,飞机装配工作量占制造总劳动量的50%~60%以上[2]。因此,对于飞机产品来说,提高装配效率对缩短生产周期、降低制造成本具有非常重要的价值和意义。
装配工艺的制定和产品的装配质量直接受到装配序列规划结果的影响。目前常用的装配序列规划方法有基于规则或本体重用的方法[3]、基于实例推理的方法[4]和基于启发式算法的方法[5]等。然而,这些方法存在一些不足,如规则重用需要积累大量的专家经验,实例重用难以解决在实例库中找不到足够相似实例的新问题,基于遗传算法的求解复杂问题时间过长等。因此,本文提出一种基于实例学习的飞机装配序列框架,通过将实例重用和遗传算法推理相结合来合理规划飞机装配顺序,减少飞机装配工艺设计时间,提升飞机产品装配效率和质量。
飞机装配指将大量零散的零件按照技术要求,通过合理的工艺流程进行组合,生成符合设计要求的组件、部件或者整机产品的过程。飞机的装配序列规划作为装配工艺设计中的核心内容,主要解决飞机零部件之间的装配顺序的确定以及装配工装的选择等问题。由于飞机的结构及零部件的特殊性,相比于普通机械产品,飞机的装配过程更加烦琐,装配精度要求更高。具体而言,现有的装配序列规划特点及问题主要表现如下。
(1)飞机装配过程中零件众多且涉及庞杂装配工具。首先,飞机通常分为前机身、中机身、后机身、机翼、尾翼和翼盒等大型部件,并在各大型部件中还包含多个段件和子部件,每个段件和子部件又由多种零件组成,最终致使飞机零件数目极其庞大。其次,由于飞机多选用薄壁类钣金材料,刚度小、装配过程易发生变形,为保证飞机产品严苛的装配精度要求,装配过程中需要大量的标准工艺装备和专用工艺装备来辅助装配。
而飞机本身装配零件繁多加上庞杂的装配工具,使装配序列产生“组合爆炸”现象,即求解装配序列时搜索空间极其庞大。而当前基于启发式算法的装配序列规划方法在求解搜索空间巨大的飞机装配序列规划问题时,由于求解搜索的盲目性,例如遗传算法中随机的交叉算子或突变算组,致使求解速度缓慢。
(2)飞机研制具有复杂的构型管理,除基本型外,还因用途扩展、技术更新或系列发展而拥有众多改型。如客机改为货机、预警机或多用途飞机改为抢险救灾专用飞机等,苏联的客机“安–24”就曾改成货机“安–26”。同时,为了满足客户的个性化需求,飞机的装配结构在基本型上可能存在很多更新及程度较大的更改。
面对多型号小批量飞机装配过程,首先,当前常见的基于规则类知识重用的装配序列规划方法需要大量的专家参与才能总结出相关知识,致使效率低下。其次,当前基于本体的知识重用方法需要结合生成规则进行装配序列规划。然而,当生成规则不完整时,装配序列规划有效性就很低。再次,虽然基于实例类知识重用的装配序列规划方法能够免于繁复的规则知识总结工作,但其面对改型结构更改程度较大时,过去装配序列规划实例可能无法直接重用。综上所述,现有基于知识重用的装配序列规划方法面对改型众多的飞机装配序列规划问题,缺乏知识重用的灵活性,使知识难以得到有效重用,而使飞机装配规划难以得到高效解决。
考虑到装配序列规划的重要性以及实例学习的巨大潜力,本文提出一种基于实例学习的装配序列规划框架,主要包括基础信息层、信息感知层和应用服务层,如图1所示。在此框架下,基础信息层包括描述新飞机装配体和过往装配序列规划结果的工艺信息;然后,信息感知层获取相关工艺信息以执行实例获取、实例重用和序列推理等功能;最后,用户可通过应用服务层高效完成飞机装配序列规划。基于实例学习的装配序列规划框架是将实例类知识重用和启发式算法相结合,不仅能够重用过去的实例类知识,还能依靠过去的实例类知识进行新的推理,从而达到实例学习。当新飞机装配序列规划问题可以找到充分相似过去实例时,重用并修改充分相似过去实例的装配序列,从而快速进行装配序列规划。当新飞机装配序列规划问题无法找到充分相似过去实例时,在过去实例中收集装配序列片段,使用这些片段加速遗传算法求解,从而高效完成装配序列规划。总的来说,基于实例学习的飞机装配序列规划方法无需提前总结相关规则,更能在解决新问题后将其当作新的实例加入实例库中。因此,实例积累的越多,系统解决问题的能力越强。
图1 基于实例学习的飞机装配序列规划框架Fig.1 Aircraft assembly sequence planning framework based on case-based learning
基础信息层主要包括描述新飞机装配体和过去装配序列规划结果的相关工艺信息。新飞机装配体的工艺信息包括描述结构的几何工艺信息和描述产品名称、设计说明和装配序列规划要求等方面的非几何工艺信息。过去装配序列规划结果包括描述过去装配体和相应装配序列的工艺信息。过去装配体描述工艺信息包括关于结构的几何工艺信息和关于产品名称、设计说明和装配过程等方面的非几何工艺信息。装配序列工艺信息记录了零件装配顺序、相应装配方向和装配工具。
信息感知层在基础信息层提供的工艺信息基础上,执行实例获取、实例重用和序列推理等功能。首先,解析所有过去装配序列规划结果的工艺信息,构建出装配序列规划实例并组成实例库。然后,解析新飞机装配体的工艺信息,构建出新飞机装配体的描述。对于能够在实例库中找到可重用装配序列规划实例的新飞机装配体,检索并重用相似装配序列规划实例的装配序列。对于无法在实例库中找到可重用装配序列规划实例的新飞机装配体,融合实例片段和遗传算法进行装配序列推理。
应用服务层将基础信息层和信息感知层的工艺信息和功能与其他辅助系统进行集成,以实现飞机装配序列规划中各个拓展应用。其主要包括:新飞机装配体管理,提供对新飞机装配体描述的各种工艺信息进行管理的功能;装配序列规划实例构建,提供从装配序列规划结果中提取装配序列规划实例的功能;装配序列规划实例管理,提供对实例库中装配序列规划实例的描述和装配序列相关工艺信息进行管理的功能;装配序列规划实例检索,提供为新飞机装配体寻找可重用的装配序列规划实例功能;装配序列规划实例片段发现,提供为新飞机装配体发现可重用的装配序列规划实例片段的功能;装配序列推理,提供结合实例片段和遗传算法为新飞机装配体进行装配序列推理功能。
飞机装配序列规划实例是基于实例学习的装配序列规划实现的基础。飞机装配序列规划实例的核心问题是如何快速获取过去飞机装配序列规划结果所有相关的工艺信息,并在系统中合理表达和存储这些信息以便后续使用。随着数字技术的迅速发展,存储过去飞机装配序列规划结果相关信息的信息源变成了异构信息源,如文字、三维模型、图像和视频。
为了深入且全面描述过去装配序列规划结果,本文提出了一种基于异构信息源的飞机装配序列规划实例获取方法,如图2所示。首先,总结了飞机装配序列规划过程中常见的异构信息源格式,其主要包括5种信息源,即文本、表格、图像、三维模型和视频。某些信息源可能不完全是纯粹的单一格式,而是融合了多种单一格式的复合信息源,如装配工序模型可能具有三维模型和标注文本。然后,将包含过去飞机装配序列规划结果相关工艺信息的复合信息源分解为单一信息源;利用自然语言处理[6]、图像目标检测[7]和模型分割[8]解析出相应单一格式信息源中的可用装配工艺信息。最后,根据获取的装配工艺信息构建出飞机装配序列规划实例。一个完整的飞机装配序列规划实例包含以往装配体描述和相应装配序列。以往装配体描述具体包括多层拓扑结构[9]表示的几何工艺信息和语义化[10]的非几何工艺信息。
图2 基于异构信息源的飞机装配序列规划实例获取Fig.2 Case acquisition of aircraft assembly sequence planning based on heterogeneous information sources
对于不同的复合信息源采取相应的分解方法。本文主要针对的4种复合信息源为复合图像、表格、视频和复合模型。复合图像主要指一个图片文件中包含了图形信息和文字信息。将复合图像分解为单一图像和文本的过程: (1)通过考察图像的每个像素在某个邻域内灰度的变化,即利用边缘邻近一阶或二阶方向导数变化规律,可以识别图像边缘[11]; (2)采用字符特征[11],例如图像中的字符通常按水平排列或垂直对齐、同行或同列大小基本相等,识别出文字区域; (3)将文字区域对原图像进行求余运算,获取复合图像中的图形信息; (4)使用模板匹配法[12]将文本区域内像素和字符模板库中的模板依次比较,获得复合图像中的文本信息。表格可以视为多个单元格的合成。每个信息单元格可能只包含文字信息,也可能是包含了图形信息和文字信息的复合图像。将复合图像分解为单一图像和文本的过程: (1)基于边缘检测与模板匹配识别表格单元格顶点; (2)根据表格单元格顶点将表格分解为多个单元格; (3)使用复合图像分解方法将每个单元格分解,得到每个单元格包括的单一图像和文本; (4)汇总所有单元格对应的单一图像和文本,获得表格包含的单一图像和文本。视频本身可以看作是多张复合图像的集合。将视频分解为单一图像和文本的过程: (1)基于灰度熵提取出视频关键帧[13],即视频中一系列重要的复合图像; (2)使用复合图像分解方法将每个视频关键帧分解,得到每个视频关键帧包含的单一图像和文本; (3)汇总所有视频关键帧对应的单一图像和文本,获得视频包含的单一图像和文本。复合三维模型除了表达几何结构的模型信息外,还有表达非几何信息的文字信息。复合三维模型中文字信息主要包含属性形式和标注形式两种存储形式。以UG为例,将复合三维模型分解为单一三维模型和文本的过程: (1)对于以属性形式存储在模型层次结构中的文本,可以采用UF_ATTR_ask_part_attrs遍历所有零件的属性; (2)对于用绘图模块在模型上进行标注显示的文本,采用UF_DRF_ask_dim_info遍历所有标注信息; (3)在所有文字信息遍历完后,获得复合模型包含的单一三维模型和文本。
根据相关统计,有40%的产品可以直接重用过去的设计。因此,在新飞机装配体的装配序列规划过程中,重用以前的装配序列实例可以有效避免过去的错误并提高装配序列规划质量。飞机装配序列实例重用是指从现有飞机装配序列实例库中检索与新装配体类似的以往装配体,然后修改检索到的以往装配体的装配序列以生成新装配体装配序列的过程。基于工艺相似度的飞机装配序列规划实例重用过程如图3所示。首先,计算新飞机装配体描述和装配序列规划实例中以往飞机装配体描述之间的工艺相似度。然后,根据工艺相似度对实例进行排序,当有多个相似实例时,选择工艺相似度最高的实例进行重用。最后,最相似的装配序列规划实例的装配序列经过少量的人机交互修改,即可获得新飞机装配体的装配序列。
图3 基于工艺相似度的飞机装配序列规划实例重用Fig.3 Aircraft assembly case reuse process based on process similarity
新的飞机装配体和装配实例中以往装配体工艺相似度由几何工艺相似度和非几何工艺相似度组成,即
式中,SimT(Ti)指几何工艺信息相似度;SimS(Si)指非几何工艺信息相似度。
新的飞机装配体描述中的一个工艺信息和装配实例中过往飞机装配体描述的一个工艺信息的相似度通过领域本体来计算[14]。领域本体可以看作是有向图,两个装配工艺信息的相似度由这两个装配工艺信息和最小共同信息的之间的节点距离决定,即
式中,len(d1)为C1与最小共同信息之间的最短距离;len(d2)为C2与最小共同信息之间的最短距离。
新的飞机装配体和装配实例中以往装配体几何工艺信息相似度通过子图同构方法计算[15]。将新装配体与以往装配体的拓扑结构进行匹配,以找到相似的子图。匹配的子图指在拓扑结构不同层中的相似节点群。通过匹配子图相似度来确定新装配体与装配序列实例之间的几何工艺信息相似度,即
式中,Sim(go,Tj(go))为位于新装配体与以往装配体拓扑结构的第g层匹配节点群之间的几何工艺信息相似度;Sim(eu,Tj(eu))为匹配节点群中第eu个匹配节点对的几何工艺信息相似度。把匹配节点对对应的名字看作是两个单一的装配工艺信息对,通过式(1)即可得到匹配节点对的几何工艺信息相似度。
新的飞机装配体和装配实例中以往装配体的非几何工艺信息相似度通过加权二分图计算。将新装配体和装配序列实例的非几何工艺信息分别视为一个集合,构造新装配体和装配序列实例的相似矩阵,当找到新装配体和装配序列实例的之间的非几何工艺信息最大相似对和时,获得新装配体和装配序列实例的非几何工艺信息相似度,即
maxL={ms1,x1,ms2,x2,…,msn,xn} (7)式中,S为两个非几何工艺信息集合Q和L的相似度矩阵;msi,x1指相似度矩阵S的第i行的相似度值中的最大值;sij为新装配体非几何工艺信息qi与装配序列实例非几何工艺信息lj之间的相似度,可以通过式(1)计算得到。
当飞机装配序列规划实例库无法为新飞机装配体提供足够相似和足够具有参考价值的过往实例时,传统的基于实例推理的解决能力会受到限制。然而采用元启发式算法(如遗传算法)直接进行具有“组合爆炸”的飞机装配序列推理也是低效的。事实上,虽然无法直接重用低相似度的飞机装配序列规划实例,但是其中也可能蕴含着能够加速遗传算法求解的可重用知识。以往飞机装配序列规划实例的装配序列片段一定程度上可以被当作新产品装配序列解的局部解,因为其可能包含了部分零件的装配优先顺序。通过重用低相似度飞机装配序列规划实例中的知识,可以促使遗传算法向正确的方向探索,从而提高遗传算法求解飞机装配序列问题的效率。
多目标飞机装配序列规划数学模型以减少装配工具改变次数和装配方向改变次数为优化目标、以零件间是否发生装配干涉为约束。
飞机装配序列规划优化目标为
飞机装配序列规划约束为
式中,TN为装配工具改变次数;DN为装配方向改变次数;N为零件数目;tcpi为边界值,如果第i个零件与第i+1个零件装配工具不同为1,否则为0;DBPS为方向边界零件的集合;ti为第i个零件的可行装配工具;d(k)为潜在装配方向集合;Vd(k)(pi)为在装配方向d(k)上,第i个零件与之前零件的干涉值和;IPjPid(k)为干涉值,如果零件pi已经装配了,零件pj在方向d(k)上装配时,pi与pj发生干涉则为1,否则为0;Di为第i个零件的可行装配方向集合;v(pi)为判断第i个零件是否存在可行装配方向的值。
基于实例片段和遗传算法的飞机装配序列推理过程,如图4所示。第1步,从过去的装配序列实例中收集装配序列片段,并存储到片段池中。在装配序列实例中寻找和新飞机装配体相同的零件,假如相同的零件在装配序列实例的装配序列中构成了连续的片段,该片段即为实例片段。第2步,生成装配序列规划初始种群。第3步,通过交叉操作、突变操作和选择操作生成新的种群。种群中个体适应度和可行性由飞机装配序列规划数学模型决定。第4步,选择待改进的个体。第5步,为待改进的个体从装配序列片段池中筛选正向装配序列片段,并使用学习操作改进该个体。正向实例片段指经过转化操作进入个体后能提高个体适应度的实例片段。实例片段筛选按照实例片段池中的片段长度从长到短依次将片段采用学习操作插入待改进个体,直到该个体适应度提高,即找到正向实例片段。转化操作过程如下,首先在选择个体中寻找和正向实例片段中第1个零件相同的零件,然后将正向实例片段插入,最后删去原个体中和正向实例片段重复的零件。第6步,如果不满足终止条件,则重复第3步。终止条件为达到给定的种群代数或每个目标的平均适应度变化小于0.01。以上过程不断迭代,直到获得装配序列规划的帕累托最优解。
图4 基于实例片段和遗传算法的飞机装配序列推理Fig.4 Aircraft assembly sequence reasoning based on case fragment and genetic algorithm
为了验证本文建立的基于实例学习的飞机装配序列规划框架的有效性,基于Visual Studio 2018开发了基于实例学习的飞机装配序列规划原型系统AASPS(Aircraft assembly sequence planning system),并以某飞机制造公司已有产品装配序列规划的结果为基础,通过该系统的应用验证,分析了该框架对飞机装配序列规划效率、装配工艺设计时间以及装配工艺设计质量提升的可行性。
基于开发的AASPS系统,从该飞机制造企业所有以往产品装配序列规划结果提取装配序列规划实例。图5为记录该飞机制造企业的某型起落架产品的某个装配序列规划结果的视频。利用开发的AASPS系统从视频中提取出该规划结果对应的装配序列规划实例,该实例包括实例描述和相应的装配序列。该实例描述由包含20个零件节点的几何工艺信息和64个语义概念的非几何工艺信息组成。该实例的装配序列为“减震支柱—活塞杆—上收放动作筒—下收放动作筒—上减震器—下减震器—上扭力壁臂—下扭力臂—轮胎支架—轮毂—轮胎—收放动作筒连接件Ⅰ—收放动作筒连接件Ⅱ—收放动作筒连接件Ⅲ—减震器连接件Ⅰ—减震器连接件Ⅱ—减震器连接件Ⅲ—扭力臂连接件Ⅰ—扭力臂连接件Ⅱ—扭力臂连接件Ⅲ”,相应的装配工具变换次数为4,装配方向变换次数为3。
图5 起落架装配序列规划实例获取Fig.5 Case collection of undercarriage assembly sequence planning
基于AASPS系统,新的飞机装配体某型起落架的装配序列规划过程如图6所示。首先,如图6(a)所示,该新飞机装配体某型起落架设计结果由表格记录。然后,如图6(b)所示,从表格中提取出该新飞机装配体某型起落架的新装配体描述。该新装配体描述由包含17个零件节点的几何工艺信息和1个语义概念的非几何工艺信息组成。再后,如图6(c)所示,通过工艺相似度计算,在装配序列规划实例库中检索到两个装配序列规划实例。两个装配序列规划实例相似度与新飞机装配体某型起落架之间的相似度,分别为21%和17%。由于检索到的两个装配序列规划实例与新飞机装配体某型起落架之间的相似度较低,装配序列规划实例的装配序列无法直接重用,因此需要融合实例片段和遗传算法推理新飞机装配体某型起落架的装配序列。首先,如图6(d)所示,在装配序列规划实例库中寻找可重用的装配序列规划实例片段。对于新的飞机装配体某型起落架,装配序列规划实例库提供了两个可重用的装配序列规划实例片段,分别是“轮毂—轮胎”和“轮胎—轮毂”。同时,作为融合实例片段和遗传算法的装配序列推理的基础,输入新飞机装配体某型起落架的装配工具和干涉矩阵,如图6(e)所示。该新的飞机装配体某型起落架零件与装配工具的对应关系为:底座、右挡板和左挡板的装配工具为T3;前收放器臂轴承、后收放器臂、前收放器臂、轮毂、轮胎和前收放器臂轴承盖的装配工具为T2;连接杆轴承、密封圈、挡圈、支撑杆、连接轴承Ⅰ、连接杆、连接轴承Ⅱ和底座螺栓的装配工具为T1。该新飞机装配体某型起落架各个潜在装配方向上干涉矩阵表达了装配序列规划的装配优先约束,可通过观察新飞机装配体某型起落架结构得出。最后,如图6(f)所示,利用装配序列规划实例片段和遗传算法求解得到新飞机装配体某型起落架的装配序列。其中一条装配序列为底座—右挡板—前收放器臂轴承—后收放器臂—前收放器臂—前收放器臂轴承盖—轮毂—轮胎—连接杆轴承—密封圈—挡圈—支撑杆—连接轴承Ⅰ—连接杆—连接轴承Ⅱ—左挡板—底座螺栓。该装配序列对应的装配工具依次为T3—T3—T2—T2—T2—T2—T2—T2—T1—T1—T1—T1—T1—T1—T1—T3—T1。该装配序列的方向边界零件DBPS的集合为{底座螺栓},即在装配序列中底座螺栓之前装配所有零件时可以使用同一个装配方向,而装配底座螺栓时必须改变装配方向。因此,该装配序列对应的装配方向依次为–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—–x—+z。综上所述,该装配序列的装配工具变换次数TN为4且装配方向变换次数DN为1。
图6 新起落架装配序列规划Fig.6 Assembly sequence planning of an undercarriage
为了进一步验证基于实例学习的飞机装配序列规划方法的有效性,本文将其与基于知识重用的飞机装配序列规划方法[4]和基于遗传算法的飞机装配序列规划方法[5]进行对比。本文统计了每种方法完成不同零件数目的飞机装配体装配序列规划的时间。再与完全人工对比,计算得到每种方法对于飞机装配序列规划提升的效率,如图7所示。可以看出,由于基于知识重用的飞机装配序列规划方法依赖预先总结的知识,虽然能一定程度提高飞机装配序列规划效率,但是由于仍需大量的人工交互进行修改,所以当新飞机装配体零件数目增多时,基于知识重用的飞机装配序列规划方法提升效率有限。由于基于遗传算法的飞机装配序列规划方法在推理开始前需要大量的人工交互定义干涉矩阵,因此在新飞机装配体零件数目较少时,基于遗传算法的飞机装配序列规划方法提升效率有限。而基于实例学习的飞机装配序列规划框架不仅能够重用过去的知识去直接解决相似问题,更能够使用过去的知识加速算法推理去快速求解全新问题。因此,基于实例学习的飞机装配序列规划框架可以有效提高飞机装配序列规划效率,以缩短装配工艺设计时间,提升装配工艺设计质量。
图7 基于实例学习、基于知识重用和基于遗传算法的飞机装配序列规划效率改进效果对比Fig.7 Comparison of efficiency improvement of aircraft assembly sequence planning based on case learning, knowledge reuse and genetic algorithm
本文通过分析飞机装配过程的特点和飞机装配序列规划知识重用等方面存在的问题,构建了基于实例学习的飞机装配序列规划框架,通过基于异构信息源的飞机装配序列规划实例获取、考虑工艺相似度的飞机装配序列规划实例重用以及融合实例片段和遗传算法的飞机装配序列推理等技术,设计开发了基于实例学习的飞机装配序列规划系统,初步解决了从异构信息源中获取飞机装配序列规划实例、重用相似实例解决新的飞机装配序列规划的问题,可应用于新飞机型号的装配序列规划并通过实例片段和遗传算法的结合支持快速求解。通过基于某飞机制造企业的实例分析,验证了基于实例学习的飞机装配序列规划系统的有效性,有望在后续的应用中缩短飞机装配序列规划的时间,并支持飞机产品装配效率和质量的提升。