夏琴香 张义龙 肖刚锋† 程秀全
(1.华南理工大学机械与汽车工程学院,广东广州510640;2.广州民航职业技术学院飞机维修工程学院,广东广州510403)
壁厚偏差是指工件的实际壁厚与理论壁厚之间的差值,旋压件的壁厚偏差是评定旋压件成形质量好坏的重要指标之一[1-2]。随着有限元技术的发展,通过有限元模拟来预测旋压的成形结果能有效减少产品试制成本。由于旋压成形具有高度非线性接触的特点,因此Abaqus软件被广泛用来实现旋压成形过程的数值模拟[3-4]。目前,基于数值模拟的旋压件的壁厚测量主要是通过测量旋压件内外表面节点距离,以及将待测截面导出到三维软件[4]中等方法进行测量,但以上方法存在测量效率低下及无法对壁厚进行可视化显示以判断旋压成形时材料流向的问题,且采用测量旋压件内外表面节点距离的方法无法保证测量精度。因此,如何快速、准确地提取旋压件的壁厚,对于实现各类旋压件的高效、精确成形具有重要意义。
Abaqus提供了丰富的二次开发接口,通过编写脚本语言,可实现有限元模型前处理的自动建模及后处理数据的自定义输出。在Abaqus前处理开发方面,邵培等[5-6]采用Python语言对基于Abaqus的筒形件流动旋压及多道次拉深旋压成形数值模拟前处理过程进行了开发,实现了筒形件旋压成形时材料参数、截面属性、分析步、边界条件等步骤的自动设定。在Abaqus后处理开发方面,夏琴香等[7]利用Python语言,通过读取INP文件获得模型变形前的节点编号与坐标,实现了采用板形毛坯进行锥形件剪切旋压Abaqus后处理时的壁厚自动计算,但仅针对板形毛坯旋压,即旋压毛坯外表面为平面、网格节点的某一坐标值为定值,无法适用于筒形毛坯旋压时外表面为曲面的情况。
由于旋压 (如流动旋压)成形时毛坯的受力状态多为三向应力状态[8-9],沿厚度方向的应力、应变具有较大的差异,因而利用Abaqus对旋压毛坯进行网格划分时多采用实体单元 (如C3D8R)[3,10-12]。但目前 Abaqus 还不能实现基于实体单元的旋压件壁厚的自动测量。因此,本文在分析不同旋压工艺下旋压件有限元网格特征的基础上,通过研究旋压件壁厚自动测量算法,并借助于Abaqus平台,采用Python脚本语言开发出既适合板形毛坯又适合筒形毛坯的旋压件壁厚自动测量工具,实现了锥形件、带内筋筒形件等旋压件壁厚的自动测量;并通过云图的形式实现了旋压件壁厚在Abaqus软件上的可视化显示。
Abaqus包括SESSION、MDB及ODB 3种数据对象,其中本文主要对Abaqus后处理进行开发,主要涉及到ODB数据对象。ODB数据对象由模型数据和结果数据两部分组成[13],如图1所示。其中模型数据主要用于储存不同的部件以及部件中的节点及单元的信息 (编号、节点坐标、单元连接性、单元类型等);结果数据主要用于存储不同的分析步、帧数以及帧数所在的场输出 (fieldOutputs)与历史输出 (historyOutputs)等。
图1 ODB对象的数据结构Fig.1 Data structure of ODB object
Abaqus提供丰富的GUI图形界面接口,主要包括RSG对话框构造器及Abaqus GUI工具包。其中,RSG对话框构造器是Abaqus/CAE内嵌的GUI插件开发辅助工具,具有方便、快捷的优点[14]。内核文件与GUI文件的交互机制如图2所示[13]。
以采用Abaqus软件对旋压成形进行数值模拟后的旋压件的壁厚为研究对象,借助于Python语言对Abaqus ODB数据对象进行二次开发,制定出基于Abaqus的旋压件壁厚自动测量方法总体架构,如图3所示。
图2 内核文件与GUI文件的交互Fig.2 Interaction between kernel files and GUI files
图3 旋压件壁厚自动测量及可视化总体方案Fig.3 Overall scheme of automatic measurement and visualization of wall thickness of spun workpiece
有限元网格划分将连续的复杂曲面形状的几何部件离散成有限个网格单元,每个单元包含若干个节点。对于任意给定的旋压件有限元模型外表面节点1,计算出该节点相邻4(2)个单元所在平面的法向量,分别为 n1、n2、n3、n4(方向均指向旋压件外侧,如图4所示),则认为外表面上该节点的法向量nnor为上述4个向量的向量和,如式 (1)所示:
搜索与该外表面节点1距离最短的内表面节点1′,计算内外表面节点 (1与1′)的向量n11′(见图5),则该节点的壁厚h可用式 (2)表示:
图4 旋压件外表面节点相邻单元的法向量Fig.4 Normal vector of adjacent elements of nodes on the outer surface of spun workpiece
图5 旋压件外表面节点到内表面的距离 (算法1)Fig.5 Distance between the nodes on the outer surface and the inner surface of the spun workpiece(Algorithm 1)
该壁厚算法 (算法1)不需要保证旋压件外表面足够光滑,其适用于内外表面网格节点流动差别不大的旋压工艺。
搜索内表面节点1″,计算内外表面节点 (1与1″)的向量n11″,确保外表面节点法向量nnor与内外表面节点向量n11″的夹角θ最小 (见图6),则该节点的壁厚h可用式 (3)表示:
该壁厚算法 (算法2)需要保证旋压件外表面足够光滑,其测量精度取决于旋压件外表面的光滑程度,能用于带内径筒形件旋压等内外表面网格节点流动差别较大的旋压工艺的壁厚测量。
图6 旋压件外表面节点到内表面的距离 (算法2)Fig.6 Distance between the nodes on the outer surface and the inner surface of the spun workpiece(Algorithm 2)
图7 旋压件壁厚自动测量算法流程图Fig.7 Flow chart of algorithm for automatic measurement of wall thickness of spun parts
旋压件壁厚自动测量算法的流程图如图7所示。旋压件壁厚自动测量共分为:旋压件节点坐标计算、内外表面节点排序、相邻节点坐标提取、壁厚计算及壁厚可视化5个步骤。对于复杂的旋压有限元模型而言,若采用嵌套循环搜索外表面任意节点对应的内表面节点坐标,则会极大地增加计算量,并可能导致计算中断。由于ODB文件中节点的索引位置与其编号不完全匹配,导致无法通过节点索引直接获取内外表面对应的节点编号及坐标。因此,通过对旋压毛坯内外表面节点进行排序,以实现旋压毛坯的内外表面节点索引的初始化;通过提取相邻节点坐标,以计算外表面节点的法向量,并确定内表面节点的搜索范围。以下对内外表面节点排序方法及相邻节点坐标提取方法进行介绍。
根据旋压成形时毛坯的形状特点,将旋压毛坯分为板形旋压坯与筒形旋压坯,如图8所示。其中,采用板形毛坯的旋压工艺包括拉深旋压、剪切旋压,采用筒形毛坯的旋压工艺包括流动旋压、缩径旋压及特殊形状零件旋压 (如带内筋筒形件旋压)。
图8 旋压毛坯的分类Fig.8 Classification of spinning blank
旋压毛坯具备回转体特征,其网格划分沿径向呈放射状 (见图9(a)、10(a)),网格节点沿径向、母线方向 (轴向)均匀分布。因此,板形毛坯旋压成形时,可先对板形毛坯内外表面节点进行切向排序,保证内外表面节点沿切向的节点索引一致;在此基础上进行母线方向排序,以保证沿母线方向的节点索引也达到一致;筒形毛坯旋压成形时,可对筒形毛坯内外表面节点进行切向与轴向的排序。排序后的内外表面节点索引位置如图9(b)、10(b)所示。
图9 板形旋压毛坯排序方法Fig.9 Sorting method of plate blanks
图10 筒形旋压毛坯排序方法Fig.10 Sorting method of cylindrical blanks
由于Abaqus软件不能直接提取某一节点的相邻节点坐标,因此,采用Abaqus ODB对象中的OdbMeshElement object的 element.connectivity方法访问单元顶点处的节点,以此间接获取某一节点的相邻节点坐标。其中OdbMeshElement object与OdbMeshNode object的关系示意图如图11所示。
图11 OdbMeshElement与OdbMeshNode的关系Fig.11 Relationship between OdbMeshElement and OdbMesh-Node
采用Abaqus软件中的RSG对话框构造器对旋压件壁厚自动测量工具的图形界面GUI进行设计,采用Python语言将旋压件壁厚自动测量算法编写成内核 (Kernel)文件,从而开发出旋压件壁厚自动测量工具,并在Abaqus的plug-in菜单栏下进行调用,工具包界面如图12所示。其中:d1为坐标原点到旋压毛坯外表面的距离 (mm);d2为坐标原点到旋压毛坯内表面的距离 (mm)。
内表面网格搜索层数示意图如图13所示,对于内外表面网格节点流动差别较大的旋压工艺,可增大内表面网格搜索层数。
图12 旋压件壁厚自动测量工具包界面Fig.12 Interface of automatic measuring kit for wall thickness of spun workpieces
图13 内表面网格搜索层数示意图Fig.13 Schematic diagram of search layers of grid on the inner surface
图14 为旋压件壁厚测量结果。由图14可知,旋压件壁厚自动测量工具能准确地将锥形件、带内筋筒形件等旋压件的壁厚分布情况以云图的形式进行可视化显示。
图14 旋压件壁厚测量结果Fig.14 Measurement results of wall thickness of spun workpieces
以锥形件 (板形毛坯旋压)、带内筋筒形件(筒形件旋压)等旋压件为研究对象,采用以下3种方法测量其壁厚,以验证工具包的准确性。①方法1,采用Abaqus自带的“查询”功能,测量内外表面对应节点的距离;②方法2,采用本文开发的旋压件壁厚自动测量工具包进行测量;③方法3,采用Abaqus“视图切割”方式切割待测截面,并导出为3DXML格式,利用三维软件进行测量[4]。
从图15中可以发现,方法2与方法3所测的壁厚基本一致,最大相对偏差在5%以内,表明本文开发的旋压件壁厚自动测量工具包能准确测量各类形状旋压件的壁厚;而在图15(b)中,方法1与方法2、3所测壁厚的偏差较大,这是因为带内筋筒形件旋压成形时,内筋处的内外表面节点在成形过程中的位移不均[15],导致方法1在测量变形不均匀处的壁厚偏大。
由于采用了numpy科学计算包对ODB文件进行数据处理,因此,计算效率得到了有效提高,旋压件壁厚的计算时间与有限元模型的网格数量的关系如表1所示。采用方法3得到的旋压件壁厚计算时间与网格节点数无关,其壁厚的计算需要手动提取数据,因而效率较低。由此可见,本文所开发的旋压件壁厚测量工具能快捷地测量旋压件的壁厚分布。
图15 不同测量方法下的壁厚计算结果Fig.15 Calculation results of wall thickness under different measurement methods
采用Python脚本语言对基于Abaqus软件的旋压成形数值模拟后处理平台进行了二次开发,获得了旋压件壁厚自动测量方法,实现了旋压件壁厚的可视化显示,并对测量结果进行了验证,得出的主要结论如下:
(1)通过提取旋压件外表面节点相邻4个单元所在平面的法向量,得出该节点法向量为上述4个向量之和,并设计出了基于内外表面节点距离最短的壁厚算法,以及基于外表面节点法向量与内外表面节点向量夹角最小的壁厚算法。
(2)通过Python语言将旋压件壁厚自动测量算法编写成代码,并采用RSG对话框构造器定制菜单界面,开发出了基于Abaqus软件的旋压件壁厚自动测量工具,实现了锥形件、带内筋筒形件等旋压件壁厚的自动测量,并以云图的形式显示壁厚。
(3)利用所开发的壁厚自动测量工具所测得的壁厚,与采用切割待测截面并导出3DXML格式到三维软件测量壁厚的方法相比,其最大相对偏差在5%以内,且壁厚计算时间大幅度缩短。