基于ABAQUS二次开发的旋压参数化加工研究

2015-03-14 06:46:36邵培于存贵魏浩
机械制造与自动化 2015年1期
关键词:脚本语言

邵培,于存贵,魏浩

(南京理工大学 机械工程学院,江苏 南京 210094)



基于ABAQUS二次开发的旋压参数化加工研究

邵培,于存贵,魏浩

(南京理工大学 机械工程学院,江苏 南京 210094)

摘要:Python语言是ABAQUS软件二次开发的脚本语言及开发平台,旋压加工是机械加工的新型加工方式。以旋压加工仿真实例说明了Python脚本语言在ABAQUS前、后处理模块二次开发中的应用,通过编写Python脚本语言实现了自动化的建模、定义材料、装配、划分网格、定义边界条件和载荷及结果数据库输出等参数化研究,并采用软件自带的求解方法及网格自适应技术来模拟旋压加工的过程,通过结果数据得到的应力及能量图,为实际生产提供了合理的工艺依据,并为后续的机械旋压加工提供加工方法。

关键词:显示分析;脚本语言;结果数据库;网格自适应

0引言

ABAQUS是功能强大的进行工程模拟的有限元软件,有ABAQUS/CAE(前处理器)、ABAQUS/Standard(隐式求解器)和ABAQUS/Explicit(显示分析求解器)、ABAQUS/Viewer(后处理器)等模块,可以解决从相对简单的线性分析到许多复杂的非线性问题的分析。其中ABAQUS/Explicit可以进行显示动态分析,适用于求解复杂非线性动力学问题和准静态问题,特别用于模拟短暂、瞬时的动态问题,如模拟板料冲压、旋压等制造过程[1]。

自适应有限元法(adaptive finite element method)是一种能通过自适应分析自动调整算法以改进求解过程的数值方法。它以常规有限元法为基础,以误差估计和自适应网格改进技术为核心,具有较高的识别能力和选择最优参数的能力,以尽量少的计算量达到所要求的精度[2]。

Abaqus脚本语言—Python是一种模块化的可扩展语言,功能强大,可用于独立程序,也可用于脚本程序。通过Python语言调用库函数,可以直接操纵ABAQUS内核,实现建模、划分网格、指定材料属性、提交作业、后处理分析结果等操作,可以对ABAQUS的GUI用户界面进行二次开发,也可以编写适合自己的脚本应用程序等。

1ABAQUS/CAE处理过程和二次开发接口介绍

ABAQUS/CAE模块式一个完整的ABAQUS环境,提供简单一致的接口,可以用来创建、提交、监视和评价ABAQUS模拟所得到的结果。Python语言是一种面向对象的程序设计语言,ABAQUS的脚本接口是Python语言的扩展,可以利用ABAQUS脚本接口绕过ABAQUS/CAE GUI,直接对ABAQUS内核进行操作,能用Python语言编制ABAQUS脚本接口可以执行的程序。

ABAQUS二次开发有如下几种途径:1) 通过用户子程序可以开发新的模型,控制ABAQUS计算过程和计算结果;2) 通过环境初始化文件可以改变ABAQUS的许多缺省设置;3) 通过内核脚本可以实现前处理建模和后处理分析计算结果;4) 通过GUI脚本可以创建新的图形用户界面和用户交互[3]。

本文通过编写Python脚本语言控制ABAQUS内核实现自动前处理。

ABAQUS脚本接口是一个基于对象的程序库,内嵌脚本语言Python,提供了一套应用程序编程接口 (API)来操作ABAQUS/CAE实现建模/后处理等功能。接口编程采用Python的语法编写脚本,但扩展了Python脚本语言,额外提供了大约500个对象模型。对象模型之间关系复杂,图1展示了这些对象模型之间的层次结构和相互关系。其中,Container表示容器,里面包含有其他的对象;Singular object表示单个对象。整个对象模型被分成三类,其中,session对象用来定义视图,远程队列,用户定义的视图等,mdb对象包括 计算模型对象和作业对象,odb对象包括计算模型对象和计算结果数据。每一类对象下面又包括各类子对象,比如mdb对象下面的计算模型models对象又包括很多子对象,如图2所示[4]。

图1 ABAQUS对象模型

图2 mdb对象模型

2应用举例

通过一个例子来详细分析Python脚本的编写和常用ABAQUS对象模型的使用,从中可以体会到ABAQUS二次开发的强大功能和开发过程的简捷明了。

旋压成型过程是将金属坯料装在芯模的顶部,旋轮通过轴向运动和径向运动,使旋转坯料在旋轮滚压作用下产生连续塑性变形,最终获得所要求的的薄壁回转体零件[5]。旋压作为金属塑性加工的一个重要分支,具有柔性好、成本低廉等优点,适合加工多种金属材料,是一种经济、快速成型薄壁回转体零件的方法。旋压加工技术作为近代塑性加工中的一个新工艺,在生产薄壁回转体高精度零件上具有突出的优点,已在航天、航空、造船、汽车、工程机械等领域中得到广泛应用。本文描述的是旋压加工模型,采用反旋,即毛坯下部施加固定约束,旋压从上向下移动,材料的流动方向和旋轮方向相反。

下面开始分析每一条脚本命令[6]。

from abaqus import*

from abaqusConstants import*

from caeModules import*

为了使用ABAQUS提供的对象模型,首先需要导入几个重要的模块。导入abaqus模块后,可以在脚本使用mdb对象,导入abaqusConstants模块后,可以在脚本中使用ABAQUS预定义的一些常量,通常情况下会调用mdb对象。调用mdb对象的方法:Model创建一个模型,命名为Model-1,然后创建一个sketch对象,命名为Sketch-1。

s=mdb.models['Model-1']. ConstrainedSketch(name='__profile__',sheetSize=0.2)

s.sketchOptions.setValues(decimalPlaces=3)

s.ConstructionLine(point1=(0,-0.1),point2=(0,0.1))

s.rectangle(point1=(0.06,0),point2=(0.07,0.08))

s=mdb.models['Model-1']. ConstrainedSketch(name='__profile__',sheetSize=0.2)

s.sketchOptions.setValues(decimalPlaces=3)

s.ConstructionLine(point1=(0.0, -0.1), point2=(0.0, 0.1))

s.Line(point1=(0.0, 0.0), point2=(0.06, 0.0))

s.Line(point1=(0.06, 0.0), point2=(0.06, 0.15))

以上是按照实际模型的几何尺寸,采用Python脚本语言创建两个sketch草绘模型,分别是毛坯、芯模,包括毛坯的倒角、过渡圆角、芯模的圆角半径等。同时还要创建两个旋轮,创建语句类似,不再赘述。

p=mdb.models['Model-1']. Part(name='roughcast', dimensionality=THREE_D,

type=DEFORMABLE_BODY)

p.BaseSolidRevolve(sketch=s, angle=360.0,flipRevolveDirection=OFF)

delmdb.models['Model-1']. sketches['__profile__']

p=mdb.models['Model-1']. Part(name='mould', dimensionality=THREE_D,

type=ANALYTIC_RIGID_SURFACE)

p.AnalyticRigidSurfRevolve(sketch=s)

delmdb.models['Model-1']. sketches['__profile__']

根据创建的sketch草绘模型将毛坯旋转为三维实体模型,将芯模旋转为三维解析刚体实体模型,同时两旋轮也为解析刚体模型。

mdb.models['Model-1']. Material(name='steel')

mdb.models['Model-1']. materials['steel']. Density(table=((7800.0, ), ))

mdb.models['Model-1']. materials['steel']. Elastic(table=((206000000000.0, 0.3),))

以上通过Python脚本语言定义了毛坯的材料属性为钢,弹性模量为206MPa,泊松比为0.3。因为旋轮和芯模是解析刚体实体模型,不需要进行材料的赋予。

a=mdb.models['Model-1']. rootAssembly

p=mdb.models['Model-1']. parts['mould']

a.Instance(name='mould-1', part=p, dependent=ON)

a.translate(instanceList=('roller02-1', ), vector=(0.167, 0.0, 0.0))

a=mdb.models['Model-1']. rootAssembly

region1=a.instances['roller01-1']. surfaces['roller01-outer']

region2=a.instances['roughcast-1']. surfaces['rough-outer']

mdb.models['Model-1']. SurfaceToSurfaceContactExp(name='roller01-roughcast',createStepName='Initial', master=region1,slave=region2,mechanicalConstraint=KINEMATIC, sliding=FINITE,

interactionProperty='IntProp-1', initialClearance=OMIT, datumAxis=None,

clearanceRegion=None)

a=mdb.models['Model-1']. rootAssembly

region=a.instances['mould-1']. sets['Set-RP-1']

mdb.models['Model-1']. DisplacementBC(name='BC-1', createStepName='Initial',

region=region, u1=SET, u2=SET, u3=SET, ur1=SET, ur2=SET, ur3=SET,

amplitude=UNSET, distributionType=UNIFORM,fieldName='', localCsys=None)

p = mdb.models['Model-1']. parts['roughcast']

c = p.cells

cells = c.getSequenceFromMask(mask=('[#1 ] ', ), )

pickedRegions =(cells, )

elemType1 = mesh.ElemType(elemCode=C3D8R, elemLibrary=EXPLICIT,

kinematicSplit=AVERAGE_STRAIN, secondOrderAccuracy=OFF,

hourglassControl=DEFAULT, distortionControl=DEFAULT)

elemType2 = mesh.ElemType(elemCode=C3D6, elemLibrary=EXPLICIT)

elemType3 = mesh.ElemType(elemCode=C3D4, elemLibrary=EXPLICIT)

p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2,

elemType3))

p = mdb.models['Model-1']. parts['roughcast']

p.generateMesh()

以上的语句分别为装配、定义相互作用关系、边界条件、网格划分。依据模拟计算的精度要求,将毛坯采用三维八节点六面体缩减积分单元C3D8R,旋轮和芯模为解析性刚体,无需选择单元类型及网格划分。

边界条件:采取等效转化方式把芯模与毛坯的旋转转化到旋轮上来,即采用芯模与毛坯固定不动,两个旋轮在作进给运动的同时绕毛坯旋转,使旋轮按照设定的运动轨迹对毛坯进行加工。

接触条件:旋压成型过程中的接触是边界条件高度非线性的复杂问题,要准确追踪接触前旋轮、芯模和毛坯多个物体的运动以及接触发生后这些物体之间的相互作用。ABAQUS/Explicit提供的动态显示接触对算法可以很好地模拟旋轮和毛坯、芯模与毛坯之间的接触关系,主面为刚度较大的旋轮和芯模表面,从面为毛坯表面,最后生成的模型如图3所示。

图3 旋压加工模型图

3仿真结果分析

旋压成型过程是将金属坯料装在芯模的顶部,旋轮通过轴向运动和径向运动,使旋轮坯料在旋轮滚压作用下产生局部连续塑料变形,最终获得所要求的薄壁回转体零件。旋压属于局部连续性加工,瞬间的变形区小,所需总的变形力较小,加工设备要求简单;变形区大部分处于压应力状态,为了提高零件的表面品质和成型极限,往往需要经多道次来完成。如图4所示是旋压的加工应力模型。

影响旋压成品成型精度的因素有很多,其中旋轮运动轨迹的合理确定是影响加工成败的关键因素。旋压的运动轨迹通常有直线型、曲线型、直线—曲线型、往复圆弧型4种。通过采用各种不同形状曲线进行多道次普旋加工证实,中间道次曲线选择不同曲率的圆弧曲线、Bessel曲线、渐开线等形式均可行,都优于直线变形。在多道次旋压加工过程中,旋轮的运动轨迹曲线通常由不同形式的线段组合而成,即有与工件外轮廓相同的局部线段和后端渐开线段组合形成。可以看出,影响旋轮轨迹渐开线段的主要参数为初期道次起始仰角H10、最终道次渐开线参数角Hz及基圆半径a等。其中H10角是一个非常重要的工艺参数,对旋压成型性能影响很大,如果选择过小,则初期道次工件易起皱;选择过大,则会增加后续道次的难度,使工件壁厚变薄,甚至开裂。Hz角的大小决定了旋轮渐开线轨迹曲率的大小,选择过小,工件初期道次旋压易起皱。反之,则后续道次壁厚易变薄。

本文采用的弹塑性有限元方法,运用网格自适应技术完成筒形件旋压加工过程的模拟,同时采用反选的往复圆弧型的运动轨迹,根据上面提到的在旋压加工过程中,变形区的大部分处于压应力状态,如图4—图7所示不同时刻的毛坯应力变形图,图中所显示的红色区域是应力变形最大的部位,毛坯与两旋轮接触的环形区域的应力最大。

图4 3.75s时刻的毛坯应力变形图

图5 18.75s时刻的毛坯应力变形图

图6 48.75s时刻的毛坯应力变形图

图7 75s时刻的毛坯应力变形图

为了更好的描述旋压加工过程中的应力变形,选择75s时刻节点5986到节点6006时的Mises应力曲线图,如图8所示。由此可见红色部分是变形最大的部位,且发生在两旋轮与毛坯的接触点部位,曲线中达到最高峰的那点应力最大,最大为648.1MPa。

图8 Mises应力

旋压在加工过程中,必然会损耗能量,如图9是毛坯在进行旋压加工时所产生的内能曲线图。由图9可以看出,随着时间的增加,其内能在逐渐上升;图10是毛坯的动能曲线,其呈现一种周期性振荡形式;图11是毛坯动能与内能比值的变化曲线,由图11可以看出随着内能增加,动荡将明显增加。

图9 毛坯内能曲线

图10 毛坯动能曲线

图11 毛坯动能与内能比值变化曲线

4结论

通过Python脚本语言进行旋压加工实例的建模,设定材料参数、截面属性、定义分析步、施加边界条件和载荷,实现网格自适应划分、设置接触等,实现了ABAQUS二次开发的前处理过程,有效节省前处理所花的时间,大大提高有限元分析效率。利用Python脚本语言除了能完成ABAQUS二次开发的前处理外,还能进行后处理,包括提交作业、后处理观察结果等。除此之外,本文还运用ABAQUS/Explicit进行显示动态分析,运用网格自适应技术完成筒形件旋压加工过程的模拟,显现了动态仿真的效果,为实际生产提供合理的工艺参数,并提前对旋压过程中可能出现的缺陷进行分析,便于延长旋压机的寿命,提高了产品品质和减少试加工过程的消耗。

参考文献:

[1] 庄茁,张帆,岑松,等. ABAQUS非线性有限元分析与实例[M]. 北京:科学出版社,2005.

[2] 鲍荣浩,卢文浩. ABAQUS前处理程序二次开发在蜂窝材料中的应用[J]. 工程设计学报,2003,10(6):330-333.

[3] 赵藤轮. ABAQUS6.6在机械工程中的应用[M]. 北京:中国水利水电出版社,2007.

[4] 肖建、林海波. Python编程基础[M]. 北京:清华大学出版社,2003.

[5] 刘建华,杨合,李玉强. 旋压技术基本原理的研究现状与发展趋势[J]. 重型机械,2002.

[6] Hibbitt,Karlsson,Sorensen.ABAQUS Scripting Commanence Version6.5.Paw Tucket,USA:HKS,2004.

Parametric Processing of Spinning Based on ABAQUS Secondary Development

SHAO Pei,YU Cun-gui,WEI Hao

(Nanjing University of Science and Technology, Nanjing 210094,China)

Abstract:Python language is scripting languages and development platforms of The spin processing is a new machining method. This paper takes the spinning process simulation for example to describe the application of the Python scripting language in ABAQUS before and after processing module secondary development. The language is used to realize the automated modeling, definition of material, assembly, meshing, boundary conditions and loads and results database research output and ABAQUS / Explicit solving methods and adaptive grid technology are used to simulate the process of spin processing. According to the resulting data, the stress and energy diagrams are abtained. a reasonable basis is provided for the actual production and the processing method is given to the subsequent mechanical spinning process

Keywords:ABAQUS / Explicit; script language; results database; adaptive grid

收稿日期:2013-09-23

中图分类号:TP391.9

文献标志码:B

文章编号:1671-5276(2015)01-0109-04

作者简介:邵培(1989-),女,江苏南通人,硕士研究生,主要研究领域为火箭炮的固有频率匹配及优化。

猜你喜欢
脚本语言
基于JavaScript在Web设计中应用
一种基于脚本的文书柔性生成技术
JavaScript的内存溢出与内存泄漏
锋绘(2019年11期)2019-12-20 03:04:57
浅谈自动编程后处理插件与机床匹配
一种面向SSC的电信增值业务的生成方法及实现
基于Unity3D的坦克大战游戏设计与实现
网站服务器维护措施探究
电子测试(2016年5期)2016-03-11 14:38:08
测控设备运行流程远程定制技术研究
无线电工程(2016年1期)2016-01-21 03:39:16
浅析计算机技术在flash动画中的应用
科技与创新(2015年9期)2015-06-02 22:40:54
基于FLASH AS 3的曲柄摇杆机构动画制作与分析