Abaqus/CAE二次开发功能与应用实例

时间:2022-10-19 07:22:07

Abaqus/CAE二次开发功能与应用实例

摘要: 为实现复杂的有限元前后处理功能,介绍基于Abaqus/CAE进行内核脚本和GUI的程序开发,并阐述这两种开发方式的特点和相互关系.用双动拉深杯形件和汽车覆盖件两个实例说明Python和Abaqus GUI Toolkit在Abaqus/CAE二次开发中的应用;通过二次开发实现将CFD计算得到的热边界条件向实体单元网格模型表面映射的功能.对开发过程和程序流程进行的详细描述可为用户进行Abaqus/CAE二次开发提供参考.

关键词: Abaqus/CAE; 二次开发; 有限元; 前处理; 后处理; Python

中图分类号: TB115.1; TP391.7文献标志码: B

Secondary development functions and applications of

Abaqus/CAE

HUANG Lin

(Shanghai Office, DS SIMULIA Co., Shanghai 200120, China)

Abstract: To implement complex finite element pre-processing and post-processing functions, the program development of kernel script and GUI based on Abaqus/CAE is introduced with their characteristics and correlation. The application of Python and Abaqus GUI Toolkit in secondary development of Abaqus/CAE is described by the samples of double-action deep drawing cup-shaped parts and automotive panel; the function of mapping thermal boundary conditions obtained by CFD software calculation to surface of solid element mesh model is implemented by secondary development. The detailed introduction of development process and programming flow can provide reference for user’s secondary development based on Abaqus/CAE.

Key words: Abaqus/CAE; secondary development; finite element; pre-processing; post-processing; Python

0引言

Abaqus是国际上先进的大型通用有限元软件之一,具有丰富的、可模拟任意几何形状的单元库及各种类型的材料模型库,能解决结构、传热、热-固耦合、质量扩散、热-电耦合、声学、岩土力学和压电介质等的线性与非线性复杂问题.

Abaqus/CAE作为Abaqus自带的有限元前、后处理程序,全面支持其分析功能,为用户提供图形化的建模、分析和后处理等人机交互平台.同时,Abaqus/CAE建立在开放、可拓展的平台上,用户可以将成熟的工作流程通过多种途径的二次开发,形成命令脚本和图形化用户操作界面,实现有限元分析前、后处理的流程化和自动化处理.基于Python的Abaqus自动化前、后处理二次开发已应用于诸多领域,如钣金成形[1-2],复合材料构件设计与工艺仿真[3-5]以及其他自动化建模分析应用[6-9].

Abaqus/CAE的前、后处理二次开发功能基于Python语言实现.Python是功能强大的面向对象、直译式程序设计语言,具有语法简洁清晰、内置模块库丰富、可扩展性强以及跨平台移植性好等优点.此外,由于对C/C++的良好支持,Python也可作为一种“胶水语言”(glue language)使用,即使用C++或FORTRAN编写执行性能要求高的程序,并使用Python进行集成和封装.该优点对需作大规模数据处理的有限元前、后处理应用显得尤为可贵.[9]

1Abaqus/CAE二次开发基础介绍

Abaqus/CAE的前、后处理二次开发包含内核脚本程序(Scripting)开发和GUI程序开发2种方式.

1.1Abaqus/CAE内核脚本程序开发

Abaqus/CAE会将用户在Abaqus/CAE图形界面中进行的各种操作转化成内核命令解释执行,因此可将需要多次重复执行的一系列繁杂的前、后处理操作过程编写成Abaqus/CAE内核脚本程序,用户只需执行该脚本并设定相应参数,就能快捷、方便地完成同一前、后处理流程的多次重复操作.

Abaqus/CAE内核脚本采用Python语言.针对Abaqus的具体应用,对Python进行扩展,增加500多个新的类模型.这些类模型关系复杂,总体上可分为mdb,odb和session等3大类,分别对应于分析模型数据库、计算结果数据库和图形显示界面元素,见图1.内核脚本程序的执行最终以完成对Abaqus对象的各种操作来实现各种前、后处理功能.

程序开发

Abaqus/CAE GUI程序开发为用户提供一个交互式的图形操作界面,方便用户进行相关操作,其最终目的仍是通过执行Abaqus/CAE内核命令实现复杂的有限元前、后处理流程.Abaqus/CAE GUI界面与内核命令之间的交互方式见图2.

Abaqus/CAE的图形界面库是在FOX Toolkit的基础上扩充形成的.在编写Abaqus/CAE GUI程序时,以FX开头命名的类是FOX Toolkit自身包含的类,以AFX开头命名的类是Abaqus扩充的类.

2Abaqus/CAE二次开发实例

2.1钣金成形切边线逆求插件

在应用Abaqus/Explicit进行钣金成形仿真分析后,常需要进行切边回弹分析并将成形过程引入的残余应力、塑性应变和厚度减薄等应用于结构分析.处理这两类问题的难点在于:

(1)钣金零件成形后需要切边,会使零件外形发生变化.但是,切边线与用于成形仿真的网格通常相互交叉,因此需精确地确定出切边后零件的外形轮廓并进行网格重新划分,同时将成形仿真结果映射到新的网格单元上.

(2)用于结构分析的单元尺寸通常比用于成形仿真的单元尺寸大许多,因此也涉及网格重新划分和计算结果映射的问题.

针对以上2点,可采用如图3所示的流程进行分析.其中,步骤1和4均为常规建模仿真技术,而步骤2和3所需的功能可通过Abaqus/CAE二次开发实现.

采用Python与C++相结合的方式进行该插件的开发:Python与Abaqus/CAE二次开发接口相配合,实现模型数据的输入/输出和几何模型划分等操作;算法中涉及的映射搜索算法采用执行效率较高的C++代码实现;Pyhton与C++之间采用二进制临时数据文件进行大规模数据交换传递.插件的GUI界面见图4,用户需指定钣金成形仿真结果数据文件(odb文件)及其中的板料零件表面、板料原始几何模型、各条切边线及切边方向,软件即可根据成形过程逆求切边线,将逆求得到的切边线向板料原始几何模型映射,并使用映射所得曲线对毛料平面进行剖切.

算例1双动拉深杯形件.如图5所示,使用所开发的插件分析处理某双动拉深杯形件.由成形后的零件、切边线以及初始毛料逆求出切边线在初始毛料上的位置和形状并剖切毛料,以便重新划分网格;然后,应用Abaqus/Standard的submodel技术加载边界条件并进行计算,以获得成形过程中在实际零件上形成的残余应力和厚度硬化等参数的分布情况,结果见图6,可知,经过切边、网格重新划分和重新加载计算后,实际零件上的应变、板厚分布均与成形计算结果一致.

算例2某汽车覆盖件.在完成某汽车覆盖件冲压成形分析后,需将成形后的残余应力、塑性应变和厚度分布等映射到切边后的零件网格模型上.在对该零件进行切边线逆求时,需同时逆求零件上一些主要的特征线,保证在其后的网格划分中能在这些特征线上散布节点,以达到精确控制网格质量的目的.图7所示为逆求切边线/特征线以及采用submodel计算得到的零件形状与切边线/特征线的对比,可知,利用本文所开发的插件既可以精确逆求零件的切边线,又可以精确逆求几何特征线.图8为成形分析与切边重新计算后,零件上塑性应变、板料厚度分布的对比,二者的结果高度一致.

2.2热边界条件映射插件

在发动机排气歧管的热应力分析中,通常先采用CFD软件对排气歧管内流场进行分析,以获得排气歧管内壁上的温度分布和换热系数分布,然后将这些热边界条件加载于排气歧管内表面,即可计算得到排气管内部的温度分布和温差引起的热应力分布情况.某发动机厂商在使用AVL-Fire进行发动机排气歧管内流场分析后,由于AVL-Fire仅支持将热边界条件映射到壳单元,不能直接映射到排气歧管有限元网格模型的实体单元表面.因此,需要先将AVL-Fire的计算结果映射到与排气歧管内表面相一致的壳单元上,再进行大量的手动操作,以将壳单元上的温度和换热系数数据加载到相应的排气歧管实体单元模型内表面上,费时费力.

仍然采用Python与C++相结合的方式,开发一套能将壳单元上的热边界条件映射到排气歧管实体单元模型内表面上的Abaqus/CAE插件.该插件的工作流程见图9.其中,前期的数据准备和最后的建模工作由Python结合Abaqus/CAE的二次开发接口实现,而对大量单元面片进行遍历搜索的计算由效率较高的C++代码完成.开发的用户图形界面及需要用户选取与设定的参数见图10.其中,用户可对最近单元搜索容差Mapping Tolerance进行设置,当设计人员对排气歧管的几何形状进行少量调整后,可将该容差设为一个较大值,但仍能使用之前CFD计算得到的热边界条件进行映射计算.采用某款排气歧管模型对本插件的功能及映射效率进行验证,见图11(a).该排气歧管模型采用四面体单元划分,内表面包含25 144个单元面片,与用于AVL-Fire进行热边界条件分析的表面相比略有修改.在某台普通PC机上应用该插件,仅用103 s就完成整个排气歧管内表面温度、换热系数的映射.在映射结果基础上进行稳态传热分析,得到排气歧管温度分布,见图11(b).

3结束语

(1)对Abaqus/CAE的二次开发功能进行介绍,对于单一固定的功能可采用内核脚本程序形式进行开发;对于需要进行较多交互操作才能完成的功能,则采用GUI程序的形式进行开发.另外,对于需要进行大量数值运算的问题,可采用Python与C++和FORTRAN等编译执行语言相结合的形式进行开发,提高程序的执行效率.

(2)结合开发实例对利用二次开发接口在Abaqus/CAE基础上详细介绍实现某些复杂的前、后处理功能,为用户进行Abaqus/CAE前、后处理功能二次开发提供参考.参考文献:

[1]郭玲, 杨合, 邱, 等. 基于Python的Abaqus后处理研究开发及其在薄壁管数控弯曲中的应用[J]. 塑性工程学报, 2007, 14(5): 32-37.

GUO Ling, YANG He, QIU Xi, et al. Study and development on the application of Abaqus post-process in thin-walled tube NC bending based on Python[J]. J Plasticity Eng, 2007, 14(5): 32-37.

[2]石庆华, 曹正华, 丁立民. 基于Python复合材料多加筋整体构件Abaqus前处理二次开发[J]. 航空制造技术, 2009(S1): 36-39.

SHI Qinghua, CAO Zhenghua, DING Limin. The secondary development of Abaqus pre-process for composites stiffened structures based on Python[J]. Aeronautical Manufacturing Technol, 2009(S1): 36-39.

[3]宋岩新, 杨庆, 唐小微, 等. Abaqus后处理二次开发在海底管线稳定性分析中的应用[J]. 中国海洋平台, 2008, 23(4): 18-22.

SONG Yanxin, YANG Qing, TANG Xiaowei, et al. The application of Abaqus post-process secondary development in the stability analysis of submarine pipelines[J]. China Offshore Platform, 2008, 23(4): 18-22.

[4]吴向东, 刘志刚, 万敏, 等. 基于Python的Abaqus二次开发及在板料快速冲压成形模拟中的应用[J]. 塑性工程学报, 2009, 16(4): 68-72.

WU Xiangdong, LIU Zhigang, WAN Min, et al. Study and development on the application of Abaqus in the sheet metal rapid forming simulation based on Python[J]. J Plasticity Eng, 2009, 16(4): 68-72.

[5]马野, 许希武, 宁晋建. 基于Abaqus裂纹自动扩展二次开发及分析[J]. 飞机设计, 2009, 29(1): 21-24.

MA Ye, XU Xiwu, NING Jinjian. Second-developed program about crack growth simulation and analysis based on Abaqus[J]. Aircraft Des, 2009, 29(1): 21-24.

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

BAO Ronghao, LU Wenhao. Application of second-developed Abaqus Pre-process on honeycomb[J]. J Eng Des, 2003, 10(6): 330-333.

[7]王家林, 李平. Abaqus箱型桥梁的GUI二次开发[J]. 重庆交通大学学报: 自然科学版, 2009, 28(6): 1000-1004.

WANG Jialin, LI Ping. Secondary development for GUI of box girder bridge based on Abaqus[J]. J Chongqing Jiaotong Univ: Nat Sci, 2009, 28(6): 1000-1004.

[8]章继峰, 王振清, 周健生, 等. 基于Python-Abaqus复合材料代表性体积元的数值模型[J]. 宇航材料工艺, 2009, 39(3): 25-29.

ZHANG Jifeng, WANG Zhenqing, ZHOU Jiansheng, et al. Numerical modeling of composite Representative Volume Element (RVE) based on Python-Abaqus[J]. Aerospace Mat & Technol, 2009, 39(3): 25-29.

[9]LUTZ M, ASCHER D. Learning Python[M]. 2nd ed. Queensland: O’Reilly, 2003: 4-16.

上一篇:冷弯薄壁轻型钢结构住宅建筑CAD/CAM软件 下一篇:基于FINE/Turbo的高压涡轮叶片流热耦合分析