基于Python脚本的ABAQUS参数化建模方法
基于Python脚本的ABAQUS参数化建模方法
摘要:本文总结了运用ABAQUS/CAE录制的脚本代码整理编译形成Python脚本,直接提交ABAQUS内核运算的几种常用简便方法。并将研究变量设置为Python脚本中的函数自变量,形成参数化建模计算脚本,通过改变关键参数即可改变研究变量,达到单因素改变快速建模分析运算的目的。最后通过一个悬臂梁实例的参数化建模和循环优化分析,验证了这一方法的可行性和高效性。
关键词:ABAQUS/CAEPython脚本;参数化建模;前处理
 
河北高考成绩查询入口ABAQUS 是一套功能强大的工程模拟的有限元软件,其解决问题的范围从相对简单的线性分析到许多复杂的非线性问题。ABAQUS 包括一个丰富的、可模拟任意几何形状的单元库。并拥有各种类型的材料模型库,可以模拟典型工程材料的性能,其中包括金属、钢筋混凝土以及土壤和岩石等地质材料,作为通用的模拟工具,除了能解决大量结构(应力 / 位移)问题,还可以模拟其他工程领域的许多问题[1]
Abaqus提供的用户图形界面CAE可以很方便的进行常规建模操作,但当用户需要建立大量单因素变量模型时,使用CAE建模方式就显得低效了。为了解决这一问题,本文将采用Python建筑安全员脚本的方式将建模参数化,达到改变关键变量快速建模分析的目的。
1Python语言在Abaqus中的应用
Abaqus软件包括三块:内核(kernel),GUI和分析过程[2][4]Python语言作为abaqus的内核脚本语言,将臭脚CAE中的所有操作以脚本(script)方式编译储存,提交Abaqus 内核进行计算。基于这样的原理,我们可以按照Python的编译方式人为编写我们需要的脚本代码,通过GUI直接提交Abaqus内核,可以达到与CAE同样的建模效果,在某些情况下甚至能完成一些在CAE操作中不能完成的功能。
运用Python脚本完成CAE操作的一般规则如下:
dels[‘Model-1’].Sketch(name=‘__profile__’, sheetSize=100.0)
上面这段代码的功能是将草图区域设置为大小100*100
以上只是列举一个简单的设置参数的脚本代码来说明运用Python脚本进行建模初始设置的方法,可以看出Python脚本语言非常简洁,易读性好。作为abaqus二次开发的一个重要方法,Python脚本正受到越来越多的学者和科研工作人员的学习和研究[3]
Python脚本编写与参数化
2.1 脚本编写简便方法
Python脚本语言虽然简单易懂,但我们进行二次开发并不需要完全逐行编写代码来完成建模操作,Abaqus软件自带的脚本录制工具可以方便的让我们获取大量脚本代码,通过删减和组合,即可完成Python脚本编译。目前常用的脚本录制方式有以下三种:
1)在abaqus/CAE中录制宏文件。启动Abaqus/CAE,在菜单中选择Macro Manager进行脚本录制,完成CAE建模操作后,点击停止即可保存本次CAE建模过程中的所有操作对应的脚本代码[3]
2)运用*.jnl文件创建Python脚本。
*.jnl文件是Abaqus的日志文件,里面包含了用于复制已存储模型数据库的ABAQUS/CAE命令。整理abaqus.jnl中记录的命令,可将其复制整理后直接粘贴到文本中,将文件后缀改为*.py即可提交运行。
3)运用*.rpy文件创建Python脚本。
*.rpy文件记录一次操作中几乎所有的ABAQUS/CAE命令。用文本编辑软件打开当前操作记录的abaqus.rpy文件,将有效部分脚本复制出来,将文件后缀改为*.py文件,即可直接提交运行。
以上三种是常用的利用ABAQUS/CAE进行脚本录制和创建Python脚本进行二次开发的方法。由于模型的复杂程度不同,会导致录制脚本的复杂程度不尽相同,据此,本文总结了以下几点需要注意的问题:
1)利用ABAQUS/CAE录制的脚本记录下了CAE操作中的所有命令和操作,其中包括视角转换操作代码和错误操作命令代码等,这需要我们在创建Python脚本时加以甄别和删减组合。
2)在记录脚本之前在CAE周公解梦 梦见掉牙齿建模之前先在脚本输入框中输入代码设置journalOptions。作用在于将CAE操作中所输入的数据以坐标方式记录到脚本中,方便后续建模参数化和变量替换。
2.2 参数化建模方法
首先,要建立建模环境,从Abaqus 中导入建模所需的所有程序模块。
其次,关键变量设置。如下例所示,将研究参数设置为变量,便于后期改变变量值完成重复性建模。
3建模实例
本文通过一个悬臂梁的Python脚本参数化建模并自动提交Abaqus重复计算以达到优化设计的实例来说明脚本语言建模的有效性和便捷性。
悬臂梁长度为2m,材料为圆钢管,截面外径为25mm,内经为设计参数,变化范围由20mm~25mm变化。悬臂梁左端固结,右端施加竖直向下集中荷载,大小为1kN。材料参
数:E=2.1e11v=0.3。优化设计目标,通过改变圆管内经大小,建立一组模型,提交计算后比较悬臂梁右端挠度值,当挠度值大于30mm时,增加内经,每次增加值为1mm,重新建模提交计算。
根据实例要求,将圆管内经设为自变量函数。
关键部分脚本代码如下:
def createBeam(inradium):
s=m.Sketch(name=‘__profile__’,sheetSize=200.0)
s.Line(point1=(0.0, 0.0), point2=(2.0, 0.0))
p.BaseWire(sketch=s)
以上几行代码的作用是引入以圆管内经为参数的函数,建立出悬臂梁几何模型。
radius = 0.025
m.PipeProfile(name=‘Profile-1’,r=radius,r0=inradium)
以上几行代码录入了悬臂梁截面形状,并将内径作为自变量引入横截面定义脚本程序。
while 1:
createBeam(inradium)
showDeflection(jobName, inradium, deflection)
if abs(deflection) <= 30:
break
radium = inradium + 0.001
上段脚本代码的作用是循环计算优化设计的关键部分,通过if函数进行条件判定并通过while函数执行循环操作。
本例以比较简单的挠度条件作为循环计算条件,旨在说明Python脚本语言重复建模的功能
使用,挠度计算结果如图1所示,与此同理,我们还可以建立更为复杂模型的判定和循环,以满足更多科研人员的研究项目需求。
1 悬臂梁实例挠度计算结果
4结论
1)本文总结了几种常用的利用ABAQUS/CAE建模过程录制脚本代码,并编译形成Python脚本的方法,并提出几点注意事项。
2)通过对一个模型实例的建模分析,介绍了运用Python脚本建立参数化模型并利用函数进行条件判别和循环建模提交Abaqus计算,当满足终止循环条件后跳出循环的基本方法。脚本代码运行正常,计算结果可靠,验证了脚本方法的正确性和高效性,可以为其他同类研究提供一定参考。
参考文献
庄茁, 张帆, 岑松. ABAQUS非线性有限元分析与实例 [M]. 北京天津市内旅游景点: 科学出版社, 2005.
ABAQUS standard users manual: ABAQUS 6.12 theory manual [M]. Hibbitt, Karlsson & Sorensen, Inc., 2012
曹凤金,王旭春,孔亮,等. Python语言在abaqus中的应用[M]. 机械工业出版社,2011dnf频道信息接收失败

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。