APP下载

基于Python的ABAQUS二次开发方法与应用*

2011-01-15李四超

舰船电子工程 2011年2期
关键词:弯角脚本二次开发

张 强 马 永 李四超

(海军驻郑州地区军事代表室1) 郑州 450015)

(中国船舶重工集团公司第七一三研究所2) 郑州 450015)

基于Python的ABAQUS二次开发方法与应用*

张 强1)马 永2)李四超1)

(海军驻郑州地区军事代表室1)郑州 450015)

(中国船舶重工集团公司第七一三研究所2)郑州 450015)

ABAQUS为二次开发用户提供了Python脚本接口。在ABAQUS环境下执行Python脚本,可方便地实现自动化创建、重复、修改模型及分析任务,实现参数化研究,访问结果数据库等功能。以某支架为例,介绍了基于Python的ABAQUS二次开发原理与方法。

ABAQUS;Python脚本;二次开发;结果数据库;参数化研究

Class NumberTP311

1 引言

ABAQUS软件具有很强的通用性和模拟性能,拥有丰富的单元类型及材料模型,有ABAQUS/CAE(前处理器)、ABAQUS/Standard(隐式求解器)和ABAQUS/Explicit(显式分析求解器)、ABAQUS/Viewer(后处理器)等模块,可以解决从相对简单的线性分析到高度非线性系统的模拟等各种问题。ABAQUS的前、后处理器为用户提供了广泛的功能,但有些功能需要通过二次开发或使用其它软件才能实现,如自动、重复化建模[1],执行参数化研究[2],访问结果数据库[3~4]等。对ABAQUS进行二次开发,可以实现许多软件未提供的功能,提高模拟分析效率,扩展ABAQUS应用等。

ABAQUS为二次开发用户提供了Python语言接口。Python是一种面向对象的脚本语言,它有高级的数据类型和简单有效的面向对象程序设计方法,功能强大、扩展性强,而被广泛应用。ABAQUS有限元程序通过集成Python脚本向二次开发用户提供了丰富的库函数,可直接操纵ABAQUS内核,实现建模、划分网格、指定材料属性、提交作业、后处理分析等功能。

本文以某支架的参数化分析为例,详细介绍了在ABAQUS中用Python脚本进行二次开发的原理与方法。

2 方法

2.1 ABAQUS与Python

Python是一种非常流行的面向对象的编程语言,ABAQUS脚本接口(ABAQUS Script Interface)就是基于Python语言的扩展,它允许用户绕过ABAQUS/CAE的GUI(graphical user interface)直接与内核交互。使用Python编写的包含脚本接口命令的程序可实现如下功能:

1)用Python脚本定制、修改ABAQUS环境文件(abaqus_v6.env)。

2)在ABAQUS输入文件(Input file)中,用Python脚本定义关键词*PARAMETER项下的数据行。

3)ABAQUS的参数化研究(Parameter Study)需要编写和执行ABAQUS脚本(.psf)文件。

4)ABAQUS/CAE在rpy文件中用Python脚本方式记录操作命令。

5)用Python脚本自动化创建、重复、修改模型及运行分析任务等。从ABAQUS/CAE中执行脚本文件,有以下几种方式:

·从主菜单中执行File→Run Script;

·从宏管理器(Macro Manager)中执行;

·从命令行接口(command line interface)中执行。

6)用Python脚本访问结果数据库(Output database)等功能。

2.2 ABAQUS结果数据库对象模型

结果数据库由ABAQUS分析得到,其中包含了模型数据(Model Data)和结果数据(Result Data)。模型数据描述了分析中使用的模型,包括零件、装配等。结果数据描述了分析得到的结果,包括分析步(Step)、帧(frame)、场变量输出(field output)和历史变量输出(history output)等。其中ABAQUS结果对象数据库对象模型,如图1所示[5~6]。

图1 ABAQUS结果数据库对象模型

因此,用Python脚本访问ABAQUS结果数据库,可以完成以下功能:

1)读取零件及装配的几何模型数据,如节点坐标、单元连接及单元类型等;

2)读取零件及装配的截面及材料模型数据;

3)从选定的分析步(Step)、帧(frame)或区域中读取场变量输出数据;

4)读取历史变量输出数据;

5)对场变量输出数据及历史变量输出数据进行访问及适当的操作;

6)对已存在或新的结果数据文件写入模型数据、场变量输出数据或历史变量输出数据。

对后处理的二次开发,就是读取odb对象中的数据,进行计算等相应的处理,然后输出相应形式供用户查看。

2.3 ABAQUS二次开发原理与方法

对ABAQUS二次开发,可先使用ABAQUS进行数值模拟:根据所要模拟的问题类型进行建模,如建立几何模型、分配材料属性、施加载荷及边界条件、设定分析步和划分网格等;然后形成输入文件等。ABAQUS/CAE在rpy文件中用Python脚本方式记录所有操作命令,用记事本打开rpy文件,然后根据需要进行简单的修改,即可形成二次开发的程序代码。

计算结束后形成结果文件,使用Python脚本访问结果数据库,实现结果文件的控制与读写;然后根据实际问题和数据的存储路径,直径引用对象变量或使用数据对象得到要处理的数据;对数据进行适当运算等相应的处理,在ABAQUS/View中将结果用云图或曲线表的形式输出,方便分析和查看。ABAQUS对象类型有3种。其中,session对象用来定义窗口、远程队列及用户定义的窗口等;Mdb对象用来定义模型空间中的数据,包括Model对象和Job对象;Odb对象用来定义结构数据,包括模型对象和结果数据。如图2所示[5~6]。

图2 ABAQUS对象模型

3 应用举例

某支架的结构及尺寸,如图3所示。

图3 某支架结构及尺寸(单位:mm)

支架上下宽边沿固支,在A、B两个销钉孔沿x、y两个方向作用有如下载荷:Ax=6667.5N;Ay=333.75N;Bx=6667.5N;By=333.75N。

且支架尺寸满足以下关系式要求:

已知支架弯角ang变化范围在45°~90°,要求出弯角处最大Von Mises应力值随角度变化的敏感度曲线。

3.1 参数化模型

ABAQUS采用的是基于特征的建模方式。在ABAQUS的Sketch模块草绘如图3所示平面图时,为了保证角度变化时,各边尺寸及相对关系不发生改变,除了标注适当的尺寸外,还必须施加一定的约束,如四条竖直边施加Vertical约束等。

在A、B两个销钉孔圆心处添加参考点,参考点与相应圆边沿施加分布耦合约束;在参考点上施加x、y两个方向的集中力载荷;支架上下宽边沿施加固支约束。

在ABAQUS/CAE建立起基本模型后,通过简单修改rpy文件可实现对支架弯角的参数化建模,如下所示:

上述程序对支架弯角ang从 45°变化至90°范围,产生相应的模型文件、提交分析并得出分析结果。以ang等于65°为例,支架的Von Mises应力、变形云图如图4所示。

图4 某支架的分析结果

3.2 提取分析结果

得出分析结果后,通过访问odb下面的steps对象,遍历各个分析步和帧的Von Mises应力值,查找最大值,并将最大值添加至结果变量。程序代码如下所示:

3.3 形成结果曲线

根据分析结果,访问session对象,生成支架弯角与支架Von Mises应力最大值之间的敏感度曲线,程序代码如下所示:

图5 支架弯角与Von Mises应力最大值之间的敏感度曲线

由图5中可以看出,支架弯角从 45°增大至 90°时,支架弯角处的Von Mises应力最大值从305.8MPa减小至112.4MPa。

4 结语

本文叙述了用Python脚本对ABAQUS进行二次开发,实现自动化创建、重复和修改作业,以及访问ABAQUS结果数据库的原理与方法。以某支架为例,当支架弯角在45°~90°范围变化时,得出支架弯角与Von Mises应力最大值之间的敏感度曲线。

[1]钟同圣,等.Python语言和ABAQ US前处理二次开发[J].郑州大学学报(理学版),2006,38(1):61~64

[2]ABAQUS,Inc.ABAQUS Example Problems Manual.Version 6.9[M/CD].Pawtucket,USA:ABAQUS,Inc,2009:11.2-1~11.2-4

[3]连昌伟,等.ABAQUS后处理二次开发在塑性成形模拟中的应用[J].锻压技术,2006(4):111~114

[4]刘玉振,徐承强.多晶体材料三维微结构有限元分析的后处理[J].山东大学学报(工学版),2008,38(2):14~17

[5]ABAQUS,Inc.ABAQUS Scripting User's Manual.Version 6.9[M/CD].Pawtucket,USA:ABAQUS,Inc,2009:6-2,9-3

[6]ABAQUS,Inc.ABAQUS Scripting User's Reference Manual.Version 6.9[M/CD].Pawtucket,USA:ABAQUS,Inc,2009:31-1

Method and Application of Second-developed ABAQUS Based on Python

Zhang Qiang1)Ma Yong2)LiSichao1)
(Military Representatives Office of Navy in Zhengzhou1),Zhengzhou 450015)
(No.713 Research Institute of CSIC2),Zhengzhou 450015)

The Python Script Interface is provided by ABAUQS for programmers aimed at second-developed ABAQUS.Executing Python script at the ABAQUS environment,may automatically-setting-up、repeat and modify models and analysis tasks expediently,may perform parameter study,may access output database,etc.In this paper,some bracket is illustrated as an example to explain the principle and method of second-developed ABAUQS based on Python.

ABAQUS,Python-Script,second-developed,output-database,parameter-study

TP311

2010年9月19日,

2010年10月20日

张强,男,工程师,研究方向:导弹发射技术。马永,男,高级工程师,研究方向:水下发射技术。李四超,男,工程师,研究方向:导弹发射技术。

猜你喜欢

弯角脚本二次开发
酒驾
喷火怪兽迷宫
安奇奇与小cool 龙(第二回)
高山上的弯角侠
浅谈Mastercam后处理器的二次开发
自动推送与网站匹配的脚本
例谈课本习题的“二次开发”
掩星探测弯角和折射率同化对数值预报的影响
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
关于平面设计软件二次开发的分析