陈飞 王成雨 李伟刚 杨杰
摘要:针对在飞机弓形结构件喷九工艺中喷丸应力产生多余变形,需要频繁调整零件不同区域喷丸参数的问题,使用Python语言对Abaqus软件的前、后处理模块进行二次开发。所开发的插件可以自动快速实现Abaqus的前处理操作,包括几何建模、网格划分和初始应力施加等。该插件可在Abaqus后处理中自动输出弓形结构件沿半径方向的最大位移,该位移可视作喷丸强化引起的变形。采用试验方法验证所开发插件的有效性,为快速预测不同喷丸参数下弓形件喷丸强化的变形提供参考。
关键词:Abaqus二次开发;Python;喷丸;变形;弓形结构件
中图分类号:V260.5;V261.934文献标志码:B
0引言
在航空工业中,为提高工件的疲劳寿命,铝合金加工而成的薄壁弓形结构件需要进行喷丸强化处理。弓形结构为非对称结构,喷丸产生的表面残余应力会使结构件产生一定的多余变形,因此须调整不同位置的喷丸强度以减小整體变形。
喷丸残余应力是导致喷丸变形的直接因素,可以通过解析计算、数值模拟和试验等方法确定喷丸参数与喷丸残余应力之间的关系。在此基础上,可利用有限元模拟方法分析残余应力作用下的工件变形,具体方法有等效热载荷法、面内挤压法和直接应力法等。GARIEPY等采用分层壳单元直接应力法研究大尺寸零件的喷丸变形模拟,将弹丸撞击模拟获得的平均应力场引人大尺寸零件的有限元模型中模拟零件的变形。贾立勇等主要采用Python语言对Abaqus软件图形界面程序进行开发。秦宇等基于Abaqus的Plug-ins有限元插件程序,使用Python语言编写内核脚本程序,开发用户定制功能的切削仿真模块,并用实例验证所开发模块功能的有效性。
弓形件为变截面结构,其建模过程较为复杂,且喷丸残余应力的获得与施加过程比较繁琐。针对上述问题,本文利用Python和Fortran脚本语言,在Abaqus中开发用于航空铝合金弓形结构件喷丸强化变形模拟的仿真插件。该插件可以建立弓形结构件参数化模型,根据输人的模型参数和喷丸工艺参数自动完成喷丸强化变形模拟,并在后处理中输出弓形结构件喷丸强化后沿半径方向的最大变形,可有效简化弓形结构喷丸模拟繁琐的建模过程,并获得残余应力及其施加过程,为实际喷丸工艺中喷丸参数的确定提供参考。
1Abaqus二次开发和脚本接口
Abaqus是国际公认的大型通用非线性有限元软件之一,被广泛应用于机械制造、航空航天、汽车交通和土木工程等诸多领域。为进一步满足不同用户在软件使用过程中的新需求,Abaqus为用户提供开放的二次开发接口,包括基于Fortran语言的用户子程序和基于Python语言的脚本接口。前者主要方便用户开发自定义材料模型、自定义单元和复杂载荷等;后者主要方便用户根据自身需求开发前、后处理工具(GUI程序),或者辅助用户实现参数化建模和数据处理。
Abaqus二次开发有以下几种途径:(1)使用用户自定义子程序扩展Abaqus/CAE的功能;(2)通过修改环境初始文件改变Abaqus许多缺省的设置;(3)运行Python编写的内核脚本文件对前处理和后处理进行简化;(4)采用Python语言对Abaqus进行图形界面程序开发,包括GUI插件程序(Plug-ins)的开发和用户自定义GUI应用程序的开发。本文主要使用第(1)和第(4)中的GUI插件程序开发方法:利用Fortran语言编写用户自定义子程序SIGINI,用于施加喷丸残余应力;采用Python语言编写插件的注册文件、图形界面文件和内核执行文件。将编写好的程序直接拷贝到Abaqus工作目录下的Abaqus-plugins文件夹内,再次启动Abaqus,在CAE主窗口界面下的Plug-ins菜单内会自动出现喷丸模拟插件菜单,见图1。
2 喷丸应力数据库建立
采用直接应力法模拟弓形结构件的喷丸强化变形。通过多弹丸撞击模拟获得多组喷丸应力曲线(见图2),利用不同弹丸速度下的应力曲线分析喷丸参数与喷丸应力之间的关系,以此为基础建立喷丸应力数据库。利用有限元模拟快速预测弓形结构件在不同弹丸速度下的喷丸强化变形。有限元模拟需要设定喷丸的弹丸撞击速度,但喷丸工艺中的弹丸速度无法直接获得,因此采用KLEMENZ的经验公式推导,即
为使模拟结果接近实际的喷丸效果,建立多弹丸撞击靶材的三维有限元模型,见图3。弹丸为直径0.58mm的球体,初速度为40m/s;靶材的几何尺寸为5.50mm×5.50mm×2.00mm。为避免模型边界影响模拟结果,弹丸全部作用在靶材上表面中心2.00mm×2.00mm的区域内,且只统计中心1.00mm×1.00mm区域内的数据。靶材侧面设置为对称约束,靶材底面全固定。为确保计算结果的精度和最终所得应力曲线的平滑度,对弹丸撞击区域内的网格进行加密,单元尺寸为0.02mm,非撞击区域的网格尺寸为0.10mm,单元类型采用8节点的减缩单元C3D8R。弹丸和靶材的材料参数见表1,靶材采用Johnson-Cook本构模型,其本构参数设置见表2.
3 喷丸仿真模块设计
3.1弓形结构件喷丸面介绍
由于筋条面上的喷丸对工件的弯曲变形基本没有贡献,所以在有限元模拟中不考虑筋条的影响。为方便在插件中说明弓形件不同区域的喷丸参数,将弓形结构件喷丸区域分为外形外表面、外形内表面和腹板面(包括前、后2个面)3个部分,见图4。
3.2 用户图形界面设计
该喷丸模拟插件共有2个输入界面:界面一主要为模型参数输入界面,包括定义工作目录、模型半径、模型分段数和每一段的截面参数等;界面二为喷丸工艺参数输入界面,将弓形结构件的喷丸面分为3个部分,每个面的喷丸参数均包括喷嘴移动速度(mm/s)、弹流量(kg/min)、喷丸压力(MPa)、弹丸直径(mm)和喷丸角度(°)。根据实际喷丸工艺要求,可以选择只对工件的某个面进行喷丸强化模拟,具体插件使用界面见图5和6。
4 关键代码实现
4.1初始化环境
Python结合Abaqus软件进行二次开发时,需要用到Abaqus所属的很多模块。编写内核程序需要导人如下重要模块:其中:abaqus模块为Abaqus的核心模块;abaqusConstants模块为Abaqus内部常量模块;odbAccess模块为访问后处理结果模块;最后一个模块导人Python文件处理模块。
导人上述模块后可以在脚本语言中使用Abaqus控制界面、引用Abaqus预定义的常量和访问ODB数据库,同时也可以执行相关文件的操作命令。
4.2 建模方式
弓形结构件为圆弧状的变截面结构,采用分段扫描的方法创建几何体,使用壳单元进行建模,将各处的厚度赋值给壳单元模型。参考GARIEPY等的模拟方法,整个模型均采用3层结构的复合材料常规壳单元,外侧2个分层用于定义初始应力场,中间层用于调整模型每一段的厚度。为更好地施加残余应力,外侧2个分层再各自分为25层,逐层施加残余应力。部分相关代码如下:
4.3 边界条件和网格设置
在实际喷丸过程中,需要将工件固定在工作台上,而在有限元模拟时,为更接近实际的约束情况,边界条件选择约束弓形结构件3个顶点的位移自由度,以防止模型产生刚性位移。使用findAt()函數配合坐标点的方式选取相关节点并施加约束。网格划分采用用户自定义方式,用户可以根据自己的要求设置不同的网格尺寸。相关代码如下:
4.4 添加用户子程序
参考GARIEPY等对大尺寸零件的喷丸变形模拟方法,将不同喷丸参数下弹丸撞击单位面积靶材模拟获得的平均应力场写人数据库,然后通过Abaqus用户子程序SIGINI将沿深度变化的平均残余应力赋值到几何模型分层壳单元的每一层上,用户只需要输入相关喷丸参数,程序会自动将相应喷丸工艺参数下的平均残余应力引人工件,从而模拟弓形结构件的喷丸强化变形。相关代码如下:
4.5 后处理结果输出
测量实际喷丸变形结果一般采用在检夹模具上进行贴模的测量方法。为更直观地体现有限元模拟结果中弓形件沿半径方向的最大位移,在后处理中提取模型最右端节点沿水平方向和竖直方向的位移,然后通过三角关系计算沿半径方向的位移,相关代码如下:
5 应用实例
为验证该插件的正确性,以某弓形结构件为例,使用相同的喷丸参数对整个工件的表面进行喷丸强化数值模拟和试验,工件及其测点示意见图7。
以工件最左下方点为坐标原点、水平方向为x轴、竖直方向为y轴建立直角坐标系。图7中各个测点的位置坐标见表3。根据测点坐标在检夹模具上标记出各测点位置以便测量喷丸变形后测点具体位置坐标。具体的喷丸试验见图8,在喷丸工作台上对弓形件进行喷丸,然后使用检夹模具测量工件变形量。各个面的喷丸参数均设定为喷嘴移动速度1000mm/min、弹流量5kg/min、喷丸压力0.06MPa、弹丸直径0.58mm和喷丸角度45°,模拟结果见图9,弓形件不同位置的模拟结果和试验结果见表4。从表4中的数据对比可以看出,插件模拟得到的工件变形趋势与试验结果一致,证明插件有效。
6 结束语
针对航空弓形结构件建立喷丸仿真插件,可以快速模拟不同参数下的喷丸强化变形,实现喷丸过程的参数化建模,自动完成边界条件施加、网格划分和应力添加等前处理操作,快速、有效地预测弓形件在不同喷丸工艺参数下的喷丸强化结果。该插件可以对实际喷丸工艺中喷丸参数的确定提供指导。同时,结合文中相关方法,可以对Abaqus进行软件扩展,为其他形状工件在喷丸领域和相关加工领域的二次开发提供借鉴。