基于图神经网络的机匣特征自动识别方法
2023-02-21邓岩王波兴
邓岩,王波兴
华中科技大学机械科学与工程学院
1 引言
机匣是航空发动机的关键零件之一,作为航空发动机的支撑部分,其结构复杂、特征繁多且难以加工[1],导致制造环节中工艺规划的难度很大。目前,在机匣的数控加工自动编程系统中仍需要通过人机交互来选取特征并指定加工区域[2],过程繁琐且效率低,因此研究机匣零件的特征自动识别技术,对提高机匣数控加工自动编程效率与加工质量具有工程意义。
近些年,学者们针对特征自动识别的方法进行了大量研究,最受关注的是基于属性邻接图的特征识别方法。郭付龙等[3]提出基于内环和凹凸面属性的分解算法,提高了特征识别效率。刘雪梅等[4]在属性邻接图基础上,使用特征因子聚类的方式完成缸体类零件的特征自动识别。王俊琳[5]针对箱体类零件的凸起类特征不能有效分解的问题,提出了基于凹凸边连接环的图分解算法。Zhang Y.等[6]提出一种改进遗传算法的数控加工特征识别方法,将属性邻接图分解后的特征子图编码输入BP神经网络中完成子图识别。Jian C.等[7]提出基于NBA算法优化的BP神经网络特征识别方法,对图分解后的特征子图编码进行了更细致的编排。
上述特征识别方法均以零件的属性邻接图为基础,通过图匹配或BP神经网络的方法进行特征子图识别,虽然可以完成特征自动识别,但对于特征复杂且繁多的机匣零件仍存在问题:①基于图匹配方法的特征识别时间较长,机匣数控编程的效率难以提高;②基于人工神经网络方法的识别效率较基于图匹配的方法高[8],但其特征编码繁琐,且存在特征编码二义性的情况[6,7],不能准确区分机匣特征;③机匣特征复杂,如何利用图属性关系完成机匣零件的属性邻接图分解有待研究。
针对上述问题,通过研究机匣零件的特点,依照面内环和凸边的属性关系,对机匣零件的属性邻接图进行分解,提出一种基于图神经网络的特征子图识别方法,将特征子图的识别问题转换为基于图神经网络的子图分类问题,利用图神经网络的天然拓扑学习机制简化特征子图编码,实现机匣特征准确自动识别。
2 机匣零件特征及相关定义
2.1 机匣零件特征分类
机匣按照结构分类可以分为环形机匣和箱体机匣,环形机匣还可以分为整体式、对开式和带整流支板式[9],本文主要研究整体环形机匣。依照零件设计、工艺设计和制造设计等环节,分为形状特征、材料特征和制造特征等[5],形状特征是具有几何和拓扑的连接面集合[10],可以对零件的形状精确描述,本文描述的特征对象为形状特征。为贴合实际加工需要,机匣特征分类如图1所示。
图1 机匣形状特征分类
2.2 概念定义
为描述机匣特征自动识别方法,给出一些概念定义:
①属性邻接图为一种表达零件模型的数据存储方式,属性邻接图AAG的定义为G=(V,E,P),V是G中面的集合,E是G中边的集合,P表示G中V和E的属性集合;
②内环面为具有内环边属性的面;
③重构面的两个邻接面为回转面,两个邻接面的凹凸属性相同且轴线共线;
④回转基面为机匣零件的回转类型面中,具有最大半径和的同轴面集合。
3 机匣特征自动识别方法
属性邻接图的机匣零件表达是本文特征识别方法的核心(见图2),识别流程为:抑制机匣上的过渡特征,简化模型;提取机匣Brep模型中面和边的拓扑与几何信息,转换到属性邻接图中存储;根据属性图中内环面和凸边的属性对其进行两阶段分解,并依照重构面的属性对特征子图重构,获取全部的机匣特征子图;按照几何信息对特征子图的面边节点编码,以图向量的形式输入到图神经网络结构中,实现机匣特征识别。
图2 机匣特征识别流程
3.1 构建属性邻接图
现有的属性邻接图表示方法是将模型的面表示为节点,面与面之间采用弧相连,并赋予边的凹凸属性信息[11]。在此基础上将机匣零件的面和边抽象为节点,以邻接表的方式维护节点间邻接关系来构建机匣属性邻接图,表1为部分面边节点属性信息。图3为某环形机匣模型及其属性邻接图,图3a中的机匣零件为抑制过渡特征后的模型(为便于叙述后续机匣特征子图提取算法,仅展示部分特征),图3b所示机匣属性邻接图仅展示面节点,用连接边代替边节点表示面节点间的邻接关系。
表1 部分面边节点属性
(a)环形机匣零件模型
3.2 特征子图提取算法
为获取机匣全部的特征子图,需对构建好的属性邻接图进行分解。整体环形机匣的特征主要分布在内外环壁和两侧安装板上,基于属性邻接图中的面内环和凸边属性可以对其分解得到特征子图,由于存在过度分解的情况,因此需要重构特征子图,恢复拓扑关系。
整体的特征子图提取方法分为基于面内环分解、基于凸边分解和基于重构面重构三个阶段,在对凸边分解的过程中,若对所有凸边进行分解,会导致凸台类特征拓扑关系被破坏,因此本文只对具有回转基面属性的面节点进行凸边分解。
算法流程为:①输入为机匣简化属性邻接图G;②获取G中具有内环面属性的集合I,I={i1,i2,…,ij,…,in}。遍历集合I,获取ij中的内环边集合E,E={e1,e2,…,ei,…,en},遍历集合E,断开边ei;③获取G中具有回转基面属性的集合O,O={o1,o2,…,oi,…,on},遍历集合O,获取oi的边集合A,A={a1,a2,…,ai,…,an},遍历集合A,若ai具有凸边属性且没有被断开,则断开边ai;④获取G中具有重构面属性的集合C,C={c1,c2,…,ci,…,cn}。遍历集合C,恢复ci与断开内环边对应面节点的拓扑关系;⑤以具有断开属性的边节点为边界,遍历G中的面集合,得到连通子图集合R并返回。
以图3a的环形机匣为例说明机匣属性邻接图的特征子图提取过程。如图4所示,具体过程为:①获取图3b中内环面集合{1,5,7,10,12,14,16,17,19,33,35},经过内环面的内环边分解后(见图4a),可以得到机匣内外环壁上的特征及部分孔特征{{14},{32,33},{34},{35},{20~23},{24~28}},但矩形环槽特征{10,11,12}和组合孔特征{4,5,6}由于存在内环面导致其特征子图被过度分解,修复办法在图4c中;②获取图3b中回转基面集合{2,8,9,11,13,15,16,18,35},断开回转基面的凸边,可以得到两侧安装板上的槽特征及单特征面{{1},{2},{3},{13},{18,19},{29,30,31}}(见图4b);③获取重构面属性集合{5,7,10,12,17},恢复重构面内环边的拓扑关系(见图4c),可以恢复环槽和组合孔的特征子图,保证其完整性。
(a)内环面分解
3.3 基于图神经网络的特征子图识别
通过上述属性邻接图分解和重组算法可以得到机匣特征子图,为了识别特征子图,本文提出一种基于图神经网络的特征子图识别方法。在基于BP神经网络识别特征子图的传统方法中,输入为一维向量,因此需要设置启发式面值向量函数[10,12,13],对特征子图的几何与拓扑信息统计编码,不仅编码计算复杂度较高,且容易忽略属性信息导致编码的二义性[6,7]。图神经网络与BP神经网络不同,具有天然的拓扑学习机制,输入为图向量,因此对特征子图编码时,只需关注特征子图节点的几何属性,在降低编码计算的同时可以更充分地表达特征子图。本节的主要任务是:①编码机匣特征子图得到特征图向量,让图向量既可以作为图神经网络输入,又可以严格区分各类特征;②设计图神经网络结构,将特征图向量经图神经网络转换成一个全图表示向量,完成特征子图分类。
3.3.1 特征子图编码
特征是具有几何和拓扑的连接面集合[10],几何信息包括面、边的类型和凹凸性等,拓扑信息包括面、边、点的连通性。图神经网络具有直接学习特征子图拓扑信息的能力,因而对特征子图编码仅需考虑机匣模型面和边的几何信息。考虑到本文属性邻接图以邻接表存储,机匣模型的面和边均对应为一个节点数据结构,因此用面边节点共同表示特征子图,用连接边表示拓扑关系,如表2中属性图所示。
表2 部分特征子图编码表示
图神经网络的输入需保证子图中各节点的特征向量维度一致,故机匣特征子图中面边节点的向量应具有相同维度。具体的面边节点的编码信息如表3和表4所示,特征维度表示特征子图中面边节点向量的维度,均为3,在相同的特征维度下,不同的特征描述对应不同的编码数值。面节点的3个维度表示面的类型、面是否闭合及面的凹凸性,边节点的3个维度表示边的类型、边是否闭合及边的二面角。为了区分燕尾槽、梯形槽、矩形槽这类几何相同但拓扑不同的特征,对边节点的二面角信息做了更细致的划分;为了区分圆形通孔和椭圆通孔这类几何不同但拓扑相同的特征,增加了面节点中类型信息的编码。表2中编码表示的含义为特征子图作为图神经网络的输入形式。
表3 面节点编码信息
表4 边节点编码信息
3.3.2 图神经网络结构
按照自定义分值对机匣的特征子图编码后,特征子图在图神经网络中的输入形式得到统一。本节的主要任务是建立图神经网络结构,训练具有标签的机匣特征子图集,获得优秀的特征子图向量表示,完成对特征子图的分类。
使用图神经网络完成图分类,其网络模型应包括卷积层、池化层和全连接层。卷积层从空域角度来说是迭代式聚合节点信息的过程,如图5所示。
图5 图神经网络空域卷积
卷积函数为
(1)
式中,t表示第t次空域卷积;f(t)(v)∈1×e为节点v在第t次卷积后的特征向量;f(t-1)(v)∈1×d为节点v在t-1次卷积后的特征向量;σ为非线性激活函数;d×e和d×e为t次卷积的参数矩阵;w∈N(v)为节点v的邻居节点;f(t-1)(w)∈1×d为节点w在t-1次卷积后的特征向量。
t越大表示图节点的卷积次数越多,聚集到的邻接节点信息越远。当t达到某个阈值后,每个节点都能够覆盖并收敛到全图节点,造成过平滑问题,需要设置合理的卷积层数,避免分类错误。考虑到构建的机匣特征子图集图深度,本文构建的图神经网络结构共有3个卷积层、2个池化层和2个全连接层,如图6所示。
图6 图神经网络模型结构
卷积层由Pytorch Geometric基于1-GNNs[14]实现GraphConv,空域运算为
(2)
由于本文将特征子图的边抽象成一个节点进行编码,所以并不考虑带有权重的边,即ej,i的值为1或者0。
网络输入为编码后的特征子图向量,N表示特征子图的节点数,3为特征子图节点向量维度。经过三层卷积运算,每层卷积后使用relu进行激活(见式3),特征子图节点的向量维度变为HC。
relu(x)=max(x,0)
(3)
为了更充分表示子图信息,获得更优的收敛效果,三层卷积运算后将得到的向量进行拼接,拼接后分别进行max和mean池化,最后应用两个全连接层完成特征子图的分类,输出为NF维的向量,NF表示特征子图的种类数。
max和mean池化的计算方式为
(4)
(5)
式中,Ni为第i个特征子图的节点总数;xn∈1×n表示节点特征向量。
max和mean池化均基于全局池化的操作,全局池化将卷积后的数据当成平整且规则的结构进行运算,虽然与图结构相违背,却更适合机匣特征子图这样的小图数据训练,原因为小图数据中的图节点数量不多,结构也较单一,全局池化可以充分提取特征向量;三层卷积运算后,子图中各节点均接近全局表达,全局池化后可以得到优秀的子图表示向量。
4 实验分析及实例验证
4.1 图神经网络实验分析
按照常见特征分类,如凸台系、孔系、槽系、通腔系和盲腔系,总结归纳了24种机匣类特征,共计54个特征子图,其中41个子图用于训练,13个用于测试验证图神经网络对特征子图识别的泛化能力。
编码后的特征子图输入网络前,为加速收敛,对每个特征子图节点的向量进行标准化处理,使特征节点向量每一维度的值位于[0.05,0.95]区间,表达式为
(6)
式中,nnorm为节点ni标准化处理之后的特征向量;ni为特征子图中的第i个节点;nmin为特征子图中所有节点所有维度上的最小值;nmax为特征子图中所有节点所有维度上的最大值。
本文基于Pytorch Geometric构建图神经网络模型,隐藏层的层数HC为64,特征类别NF为24,使用交叉熵损失函数进行误差计算,使用adam优化器更新网络的参数矩阵,学习率为5.5e-4。训练过程中训练集的识别准确率、误差和迭代次数的关系如图7所示。
(a) 准确率和迭代次数关系曲线
由图7a可知,迭代次数达到85时,训练集的准确率为100%。由图 7b可知,迭代次数达到285时,损失精度达到1e-3;迭代次数达到788时,损失精度达到1e-4。由此可见,构建的图神经网络结构可以很好地完成对特征子图的分类,且收敛速度快、训练效率高。
为了验证图神经网络对特征子图识别具有一定的泛化性,将测试集中13个特征子图输入训练过的图神经网络中,特征子图识别全部正确,可见本文设计的图神经网络结构对机匣特征的识别具有一定的泛化能力。以表2的矩形环槽、燕尾环槽、梯形环槽为例展示识别结果数据,如表5所示。
表5 部分槽特征识别结果数据
4.2 实例验证
应用上述特征识别方法,在VS2017平台上对NX1926进行二次开发,构建一个特征识别模块。属性邻接图部分的算法以UG软件提供的接口实现,神经网络部分算法在Python软件实现。图8为以某环形机匣为例的特征识别结果,共识别2个通腔特征、34个槽特征、15个凸台特征和79个孔系特征,总用时3.3s。
图8 某机匣特征识别结果界面
应用传统图匹配的算法VF2识别该机匣零件特征共用时4.5s,可见本文提出的基于图神经网络的方法可以自动高效识别机匣类零件特征,具有工程可行性。
5 结语
本文提出一种基于图神经网络的机匣特征自动识别方法,构建机匣模型的属性邻接图,利用图中内环面和凸边的属性对其进行分解,利用重构面属性对特征子图重构,获取完整的机匣特征子图;然后搭建并训练图神经网络模型,识别编码后的特征子图。特征自动识别是数控加工自动编程的前提,针对机匣零件提出的特征自动识别方法可以减少由人工选取特征引发的编程错误,提高编程效率。未来还可以针对数控加工工艺建立完善的知识库,将自动识别的机匣特征与工艺方案、刀具选取联系起来,推进机匣数控加工的实际应用。