基于ABAQUS的橡胶垫隔震支座单元二次开发

合集下载

AbaqusCAE二次开发功能与应用实例

AbaqusCAE二次开发功能与应用实例

Abaqus/CAE二次开发功能与应用实例作者:黄霖来源:《计算机辅助工程》2011年第04期摘要:为实现复杂的有限元前后处理功能,介绍基于Abaqus/CAE进行内核脚本和GUI 的程序开发,并阐述这两种开发方式的特点和相互关系.用双动拉深杯形件和汽车覆盖件两个实例说明Python和Abaqus GUI Toolkit在Abaqus/CAE二次开发中的应用;通过二次开发实现将CFD计算得到的热边界条件向实体单元网格模型表面映射的功能.对开发过程和程序流程进行的详细描述可为用户进行Abaqus/CAE二次开发提供参考.关键词: Abaqus/CAE;二次开发;有限元;前处理;后处理; Python中图分类号: TB115.1; TP391.7文献标志码: BSecondary development functions and applications ofAbaqus/CAEHUANG 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; Python0引言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机上应用该插件,仅用103s就完成整个排气歧管内表面温度、换热系数的映射.在映射结果基础上进行稳态传热分析,得到排气歧管温度分布,见图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.(编辑于杰)。

ABAQUS二次开发基础

ABAQUS二次开发基础

第9章 ABAQUS二次开发基础知识要点:;ABAQUS二次开发概述;ABAQUS用户子程序接口;ABAQUS用户子程序介绍;应用举例本章导读:本章主要介绍了大型有限元软件ABAQUS二次开发的基本情况,主要包括:ABAQUS二次开发概述、ABAQUS用户子程序接口、ABAQUS用户子程序介绍等,最后给出两个算例,介绍采用ABAQUS进行二次开发以及建立ABAQUS主程序与用户子程序之间口的基本过程。

9.1 ABAQUS二次开发概述随着计算技术和计算机的快速发展,有限元软件的发展速度迅速,功能日渐强大。

目前国际上被广泛采用的通用有限元软件有 ANSYS、MSC、ABAQUS 等。

利用商业软件进行计算现在已是科学研究中的一项重要手段。

由于工程问题的千差万别,不同的用户有不同的专业背景和发展方向,通用软件不免在具体的专业方面有所欠缺,针对这些不足,大部分的通用软件都提供了二次开发功能,以帮助用户减少重复性的编程工作、提高开发起点、缩短研发周期、降低开发成本,并能简化后期维护工作,给用户带来很多方便。

基于通用软件平台进行开发,是目前研究的一个重要发展方向。

ABAQUS 也提供了若干用户子程序(User Subroutines)接口,它是一个功能非常强大且适用的分析工具,与命令行的程序格式相比,用户子程序的限制少得多,从而使用更加灵活方便。

ABAQUS不仅提供标准的有限元分析程序,而且具有良好的开放性,可利用它提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛应用。

ABAQUS 允许用户通过子程序以代码的形式来扩展主程序的功能,并给用户提供了强大而又灵活的用户子程序接口和应用程序接口(Utility Routine),ABAQUS共有42个用户子程序接口,15个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数值交换等等。

abaqus二次开发

abaqus二次开发

Abaqus 使用FQA:Q: abaqus的图形如何copy?A: file>print>file格式为png,可以用Acdsee打开。

Q: 用Abaqus能否计算[Dep]不对称的问题?A: 可以,并且在step里面的edit step对话框other里面的matrix solver有个选项。

Q: 弹塑性矩阵【D】与ddsdde有何联系?A: stress=D*stran;d(stress)=ddsdde*d(stran)。

Q: 在abaqus中,如果采用umat,利用自己的本构,如何让abaqus明白这种材料的弹塑性应变,也就是说,如何让程序返回弹性应变与塑性应变,好在output中输出,我曾想用最笨地方法,在uvarm中定义输出,利用getvrm获取材料点的值,但无法获取增量应力,材料常数等,研究了帮助中的例子,umatmst3.inp,umatmst3.for,他采用mises J2 流动理论,我在output history 显示他已进入塑性状态,但他的PE仍然为0!!?A: 用uvar( )勉强成功。

Q: 本人在用umat作本构模型时,*static,1,500,0.000001,0.1 此时要求的增量步很多,即每次增量要很小,*static1,500 时,在弹性向塑性过度时,出现错误,增量过大,出现尖点.?A: YOU CAN TRY AS FOLLOWS:*STEP,EXTRAPOLA TION=NO,INC=2000000*STA TIC0.001,500.0,0.00001,0.1。

Q: 模型中存在两个物体的接触,计算过程中报错,怎么回事?A: 接触问题不收敛有两个方面不妨试试:一、在*CONTACT PAIR 里调试ADJUST参数;二、调一些模型参数,比如FRICTION等。

Q: 在边界条件和加载时,总是有initial这个步,然后是我们自己定义的加载步,请问这个initial步,主要作用是什么?能不能去掉?A: 不能去掉,所有的分析都有,是默认的步。

基于ABAQUS的圆柱形橡胶堆参数化建模的二次开发

基于ABAQUS的圆柱形橡胶堆参数化建模的二次开发

2.1 面开发方式的确定
Rubber: C10:
Poissons Ratio:
C01:
D1:
Load1
对橡胶堆进行二次开发的界面开发的方式主要有以
博看网 . All Rights
Reserved.
下两种 [6] ꎮ
Load1:
1) 创建 Plug-ins 插件程序ꎻ
2) 创建用户应用程序ꎮ
对于第 2 种 方 法ꎬ 利 用 创 建 其 他 的 应 用 程 序 ( 如
h
H2
H3:
Layers:
O
图 2 圆柱形橡胶堆的
H1
D2
D1
x
Cancel
OK
图 3 Model setting 界面
受载示意图
2 橡胶堆仿真模块的设计
Rubber pile
Model setting
Material and load setting
Steel: Youngs Modulus:
(3)
赋予材料、边界条件、施加载荷及网格划分等操作ꎬ并自动
界面的设置和输入相关参数ꎬ程序将快速完成几何建模、
将作业提交分析ꎬ从而得出所需要的分析结果ꎮ
Rubber pile
Model setting Material and load setting
z
D1:
D2:
R
H1:
D3
H2
2r
H3
D3:
R:
y
SONG Ying1ꎬ2 ꎬ RONG Jigang2 ꎬ MA Qiucheng1 ꎬ HUANG Youjian2 ꎬ WANG Jinhui 2
(1. Xiangtan Universityꎬ Xiangtan 411105ꎬ Chinaꎻ

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan ShengbaoPython2.72017年12月目录第一章Python程序基本语法 (1)1.1Python语法结构 (1)1.2Python元组 (1)1.3Python列表 (1)1.4Python字典 (2)1.5Python集合 (3)1.6Python字符串 (3)1.7Python分支语句 (4)1.8Python循环语句 (5)1.8.1for循环 (5)1.8.2while循环 (5)1.9Python定义函数 (5)1.10Python模块 (6)1.11Python包 (7)1.12Python文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python异常处理 (8)第二章ABAQUS/Python二次开发 (9)2.1ABAQUS执行Python程序 (9)2.2编写ABAQUS/Python程序 (10)2.3ABAQUS录制Python程序 (10)2.4ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part模块常用函数 (16)第一章Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。

下面是一段Python程序示例:#-*- coding:utf-8 -*-for i in range(1,10):for j in range(1,i+1):print str(j)+'x'+str(i)+' = '+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”是约定文档的编码方式。

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan Shengbao2017年12月目录第一章 Python程序基本语法 (1)1.1 Python语法结构 (1)1.2 Python元组 (1)1.3 Python列表 (2)1.4 Python字典 (3)1.5 Python集合 (3)1.6 Python字符串 (4)1.7 Python分支语句 (5)1.8 Python循环语句 (5)1.8.1for循环51.8.2while循环51.9 Python定义函数 (6)1.10 Python模块 (7)1.11 Python包 (7)1.12 Python文件和目录 (7)1.12.1 目录操作 (7)1.12.2 文件操作 (8)1.13 Python异常处理 (8)第二章 ABAQUS/Python二次开发 (9)2.1 ABAQUS执行Python程序 (9)2.2 编写ABAQUS/Python程序 (10)2.3 ABAQUS录制Python程序 (10)2.4 ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5 ABAQUS完整二次开发示例 (14)2.6 ABAQUS二次开发常用函数 (16)。

2.6.1 Part模块常用函数 (16)3ABAQUS(Python语言)二次开发教程第一章 Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。

下面是一段Python程序示例:#-*- coding:utf-8 -*-for i in range(1,10):for j in range(1,i+1):print str(j)+'x'+str(i)+' = '+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”是约定文档的编码方式。

Abaqus二次开发介绍

Abaqus二次开发介绍

Abaqus⼆次开发介绍ABAQUS提供了两种⼆次开发的接⼝,⼀是⼦程序接⼝(user subroutine),⼀种是脚本接⼝(Abaqus scripting interface),Abaqus的脚本语⾔是在python语⾔的基础上进⾏的定制开发,它扩充了python的对象模型和数据类型,使Abaqus脚本接⼝的功能更加强⼤,⼀般来说,Abaqus脚本接⼝可以实现以下功能①创建、修改ABAQUS模型中的属性,如部件、材料、荷载和分析步等②创建、修改和提交分析作业③读取和写⼊ABAQUS输出数据⽂件④查看分析结果Abaqus中python脚本的通信关系如下图所⽰从图中可以看出,ABAQUS可以通过三种⽅式运⾏脚本⽂件(1)GUI。

Abaqus在采⽤GUI进⾏建模的同时,会⽣成⼀个rpy格式的脚本⽂件。

当然,也可以通过macro管理器录制⼀段宏命令(2)命令⾏。

在abaqus CAE界⾯底端的命令⾏键⼊python命令,点击回车后即可⾃动运⾏。

(3)编辑脚本⽂件。

预先编辑好脚本⽂件,在start session 对话框或者file按钮⾥选择run script运⾏脚本。

也可以在ABAQUS command窗⼝中键⼊命令运⾏脚本Abaqus cae script=myscript.pyAbaqus cae startup=myscript.py启动CAE界⾯并运⾏脚本Abaqus viewer script=myscript.pyAbaqus viewer startup=myscript.py启动Viewer并运⾏脚本Abaqus cae noGUI=myscript.pyAbaqus viewer noGUI=myscript.py不启动CAE或者Viewer运⾏脚本此外,ABAQUS也提供了⼀个python编译器,可以通过file→abaqus pde运⾏详细的python命令,⼤家可以通过帮助⽂件中的Abaqus Scripting Reference Guide进⾏查看。

abaqus-python二次开发方法

abaqus-python二次开发方法

abaqus-python二次开发方法(超实用)基于的二次开发对于很多新手来说都是一个神秘的,感觉是高难度的问题,致使很多新手对二次开发的研究都处于初级了解阶段,或完全不感冒阶段。

其实二次开发很简单,某种意义上讲,常用的ABAQUS二次开发方式有两种,(1)直接修改inp文件,这种方式需要对inp文件中大量的节点和单元进行操作,一般不建议采用inp文件进行二次开发(除非有特殊的关键字或标识符,其实关键字也可以用python语言来进行二次开发,笔者亲证)。

采用inp文件进行二次开发数据量大,行数多,一旦发生问题难以检测错误原因(2)采用abaqus语言,自编脚本,简单容易,非常适合初学者。

这里主要介绍python入门python语言的开发远没有想象中的难,其实基于abaqus语言的二次开发更像是word或excel里的VBA,我们只要通过录制一段宏文件,就可以简单迅速的完成一个模型的建立,当我们人为的对这段宏文件进行修改,就可以完成对该模型的修改,非常适合有大量相同或类似模型的建立,防止用户一遍又一遍繁琐的建模操作。

简单的步骤如下:1.在建模前先打开file--Macro Manager,然后新建一个宏文件(在Home或Work都行,只要你最终能找到这个文件),此时会弹出Record Macro对话框,托至不碍事的地方2.进行正常的cae建模就行,至到建模完成3.点击Record Macro对话框的Stop Mecording,此时命令栏会显示“Macro "Macroname" has been added to "E:\Temp\Macroname.py"”,前期任务搞定4.此时用文本编辑器打开此py文件,py文件中有些文字是没有用的,把“def Macro1 ...import connectorBehavior”都可以删掉,每行字前的空格都要去掉(文本编辑器里一般有列模式,用列模式可以对整个文本的进行操作)5.复制你新生成的python文件,并对该文件中的参数进行修改,在提交给abaqus--cae就可以完成重复建模了,如此可以无限重复,其实python语言都是大白话,你能看懂的需要指出的是:1.可以结合其它编程语言如VB、VC 配合修改参数并生成py文件,使用更为灵活2.生成py文件可以直接在cae中选择file-run script,选择你生成的python文件3.可以用python文件直接生成cae模型文件,可在py文件最后添加"mdb.saveAs(pathName='" *** "')"4.可以通过cmd命令直接将py文件提交个abaqus内核,让abaqus进行运算,cmd命令为“Shell"C:\Windows\SysWOW64\cmd.exe /k abaqus cae noGUI=" **** ".py ", vbHide等待abaqus运算的py语言"myJob.submit(consistencyChecking=OFF, datacheckJob=True)"。

ABAQUS后处理二次开发在结构弹塑性分析中的应用

ABAQUS后处理二次开发在结构弹塑性分析中的应用

第33卷增刊2013年12月防灾减灾工程学报Journal of Disaster Prevention and Mitigation EngineeringVol.33Suppl.Dec.2013ABAQUS后处理二次开发在结构弹塑性分析中的应用*滕 军1,2,张 何3,李祚华2(1.福建工程学院,福州350108;2.哈尔滨工业大学深圳研究生院,广东深圳518055;3.中铁第四勘察设计研究院集团有限公司,武汉430063)摘要:在弹塑性分析的后处理阶段,通常需要依托大量的分析结果数据对结构进行抗震性能评价,而目前通用有限元软件ABAQUS的后处理功能无法详细提供结构设计过程中所需的数据。

为高效、准确的提高结构大震弹塑性分析的效率,节省工程人员在后处理分析时所花费的时间和精力,利用面向对象的脚本语言Python对有限元软件ABAQUS进行了二次开发,实现层间位移角和结构损伤指标的自动计算,并将计算结果以曲线方式输出。

文中讨论了ABAQUS自定义功能内核脚本的编写方法和图形用户界面开发的基本方法和流程,分析了插件程序开发中的问题及解决措施,并通过两个算例验证开发插件的正确性。

关键词:ABAQUS/CAE;GUI程序开发;后处理;结构损伤分析中图分类号:TU311.41 文献标识码:A 文章编号:1672-2132(2013)增刊-0009-06The Application of Secondary Development of Post-processingof ABAQUS in Structural Elastoplastic AnalysisTENG Jun1,2,ZHANG He3,LI Zuo-hua2(1.Fujian University of Technology,Fuzhou 350108,China;2.Shenzhen Graduate School Harbin Institute of Technology,Shenzhen 518055,China;3.China Railway Siyuan Survey and Design Group Co.Ltd,Wuhan 430063,China)Abstract:After calculation and analysis by ABAQUS,data such as inter-story drift angle anddamage index should be extracted to evaluate seismic performance of the structure.The basicpost-processing function of ABAQUS usually can not provide the result data for structure designin the elastoplastic analysis.In order to improve the accuracy and efficiency of elastoplastic analy-sis,this paper conducted secondary development based on ABAQUS using Python.The Python,the scripting language of ABAQUS,can realize the automatic processing of inter-story drift angleand structural damage value.Two basic methods for secondary development of ABAQUS and de-sign flow of plug-in program were introduced in this paper,and the correctness of the plug-inprogram for inter-story drift angle and structural damage evaluation was verified by two exact ex-amples.Key words:ABAQUS/CAE;GUI program development;post-processing;structural damageanalysis*收稿日期:2013-05-10;修回日期:2013-09-04基金项目:国家自然科学基金项目(50938001、51008048)资助作者简介:滕 军(1962-),男,教授,博导。

基于ABAQUS的橡胶减振器参数化优化设计

基于ABAQUS的橡胶减振器参数化优化设计
品开发周期 。
关键词 : 橡胶减振器 ; 参数化 ; 尺寸优化 ; 二次开发
中 图 分类 号 : T D 4 2 1 . 5+4 ; T P 3 9 1 . 9 文献 标 识 码 : B
Ru b b e r S h o c k Ab s o r b e r B a s 。针对上 述现状 , 分析 了橡胶减振器 的静 、 动 态特性和参 数选择 与设计 , 并以P y t h o n 为工
具, 基于 A B A Q U S 二次开发技术完成 了橡胶减振器参数化优化设计系统 及橡胶减 振器动态 刚度计算 系统。前者实 现了在
满足指定三 向静态刚度要求下 , 对形状复杂橡 胶减振 器的尺寸优化设计 ; 后者实现 了在指定预载及激励下 , 橡胶减振器动态 刚度的计算 。既满足了形状复杂橡胶减 振器的设计要求 , 且整个设计计算过程 自动快速 , 有效地提高了设计效率 , 缩短了产
第3 0 卷 第1 O 期
文章编号 : 1 0 0 6— 9 3 4 8 ( 2 0 1 3 ) 1 0— 0 1 9 9— 0 4



仿

2 0 1 3 年1 0 月
基于 A B AQU S的橡 胶 减 振 器 参 数 化 优化 设计
余 天超 , 刘 夫云 , 孙 永 厚
( 桂林 电子科技大学机电工程学院 , 广西 桂林 5 4 1 0 0 4 ) 摘要 : 关于发动机减振器优化设计问题 , 在橡胶减振器 的设计 中, 大多采用 经验 设计和试验修 正的方法 , 效率低 下且无法应
G u i l i n 5 4 1 0 0 4 ,C h i n a )
ABS T RACT : Re c e n t l y,t h e e x p e i r e n c e d e s i g n a n d t e s t c o r r e c t i o n me t h o d a r e u s e d mo s t l y i n t h e d e s i n g p r o c e s s o f r u b b e r s h o c k a b s o r b e r ,b u t t h i s me t h o d h a s l o w e ic f i e n c y a n d c a n n o t b e u s e d i n c o mp l e x s h a p e o f r u b b e r s h o c k a b - s o r b e r d e s i n .I g n t h i s p a p e r w e a n a l y z e d t h e r u b b e r s h o c k a b s o r b e r o f s t a t i c,d y n a mi c p e r f o r ma n c e a n d p a r a me t e r s e —

基于abaqus二次开发的钢筋混凝土框架结构弹塑性分析

基于abaqus二次开发的钢筋混凝土框架结构弹塑性分析
Keywords: Dynamic Time-history Analysis; ABAQUS; Constitutive; Fiber Model; Secondary Development
声 明
本人声研究成果除加以标注和致谢的地方外,不包含其他 人已经发表或撰写过的研究成果,也不包括本人为获得其它学位 而使用过的材料。与我共同工作过的同志对本研究所做的任何贡
沈阳建筑大学 硕士学位论文 基于ABAQUS二次开发的钢筋混凝土框架结构弹塑性分析 姓名:潘天林 申请学位级别:硕士 专业:结构工程 指导教师:王强;刘明
2010-01
硕士研究生学位论文
摘要
I
摘要
我国是世界上地震灾害最为严重的国家之一,有地震发生区域广阔而分散、地震强度 高、震源浅、发生频繁等特点。如何抵御地震、减小地震带来的损失更是地震工作者继续 解决的难题。目前我国城市建设的不断发展,出现了越来越多的复杂高层建筑结构,超出 了现行规范的要求。对于那些超限结构,需要对其进行结构的非线性动力时程分析研究, 来预测强震作用下结构的反应和受力情况。这样可以在很大程度上预现结构在将来所遭受 地震灾害时的破坏情况,调整结构的设计方案或加固方法,减少人民生命财产的损失。
弹塑性时程分析方法已发展有半个世纪,然而,由于结构材料弹塑性本构关系和弹塑 性计算的复杂性、人们对弹塑性性能的了解和掌握还不充分及计算工具的限制等原因,使 得弹塑性时程分析方法仍处于研究阶段,在工程上仍处于较低水平。本文依托大型有限元 软件二次开发平台,编写混凝土与钢筋的本构关系程序,并使之与 ABAQUS 软件成功连 接。进行一些算例分析与研究,具体工作如下:
关键词:动力时程分析;ABAQUS;本构关系;纤维模型;二次开发
硕士研究生学位论文

基于ABAQUS的橡胶隔振器静态特性分析

基于ABAQUS的橡胶隔振器静态特性分析

、材料:至产与工密)信息记录材料2019年5月第20卷第5期基于ABAQUS的橡胶隔振器静态特性分析郭阳阳(武汉职业技术学院湖北武汉430074)【摘要】本文对橡胶材料的非线性本构关系进行了分析,应用有限元软件ABAQUS建立橡胶隔振器模型,选用Mooney-Rivlin超弹性模型模拟橡胶的材料属性,仿真分析了橡胶隔振器的垂向静刚度随预载荷变化的关系。

同时与经验公式对比分析,有限元仿真结果与计算结果在误差范围之内,表明有限元计算方法能较理想的获得橡胶隔振器静态特性,可为优化悬置系统的整体性能提供依据.【关槌词】橡胶隔振器;ABAQUS;静态特性【中图分类号】TQ33【文献标识码】A【文章编号】1009-5624(2019)05-0050-021引言汽车悬置系统为发动机与车身的弹性连接,其主要作用不仅是支撑动力总成,而且是双向隔离动力总成跟车架之间传递的振动和噪声的重要组成。

橡胶隔振器静态特性可以反映出不同预载荷下,隔振器静刚度的变化,可以为后续研究橡胶隔振器的动态特性提供基础,可为优化悬置系统的整体性能提供依据。

2橡胶隔振器的静刚度静刚度是表示在静载荷下的材料或构件抵抗变形的能力。

通常结构的静刚度与几何形状、载荷作用形式、材料的弹性模量等因素密切相关。

金属的静刚度在各个载荷下基本上是一样的,我们称之为线性材料。

然而橡胶件的静刚度在不同载荷下不一样,我们称之为非线性材料。

对于发动机悬置系统来说,它的静刚度考量的原则是(1)支撑作用,那么其设计的时候就要考虑到许用弹性载荷、动力总成角度、最大位移量等要素。

(2)限位效果,也就是说可以固定动力总成。

(3)设计动刚度预订值,如果悬置系统完全是弹性体,由于弹性材料的动静刚度比是固定的,就可以通过调控静刚度来预设其动刚度。

3橡胶材料的非线性分析3.1橡胶材料的本构关系橡胶是一种高弹性的聚合物材料,具有可逆形变的能力和非线性特性。

当受到较小的应力作用时,它会呈现出较大的变形量,它的伸长率极限可以达到5~10倍[3]o 它不再遵循虎克定律,它的变化是非线性的。

abaqus 二次开发详解

abaqus 二次开发详解

#开头的为注释行.第一步, 建立建模环境, 这一步中py将从abaqus中导入建模所需的所有程序模块.from part import *接下来定义草图环境mdb.models['Model A'].Sketch(name='__profile__', sheetSize=200.0)mdb.models['ModelA'].sketches['__profile__'].sketchOptions.setValues(constructionGeometry=ON, decimalPlaces=2, dimensionTextHeight=5.0, grid=ON,gridFrequency=2, gridSpacing=5.0, sheetSize=200.0, viewStyle=AXISYM)上面的设定为大小200*200, 格栅间距为5, 文字标注高度为5.mdb.models['Model A'].sketches['__profile__'].ObliqueConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))本句语句设定轴对称模型的对称轴线位置mdb.models['Model A'].sketches['__profile__'].rectangle(point1=(0.0, 0.0),point2=(40.0, -40.0))该语句绘制矩形, 从点0,0 至点40,-40mdb.models['Model A'].Part(dimensionality=AXISYMMETRIC, name='Boden',type=DEFORMABLE_BODY)定义模型为轴对称, 名字为boden,为可变形体mdb.models['Model A'].parts['Boden'].BaseShell(sketch=mdb.models['ModelA'].sketches['__profile__'])del mdb.models['Model A'].sketches['__profile__']绘图完成不要忘记收回建模环境所占的内存第二节: 材料定义 -------------------- 2楼第三节: 装配 -------------------- 3楼第四节: 分析步定义 -------------------- 4楼第五节: 接触定义 -------------------- 5楼第六节: 荷载边界定义 ----------------- 6楼第七节: 网格划分控制 ------------------ 7楼第八节, 任务提交及杂项功能 -------- 8楼关于如何在python中提交多个任务的问题 9楼第二节, 材料定义from material import *from section import *从ABAQUS提供的接口中导入材料库和组件库mdb.models['Model-A'].Material(name='Boden')定义材料名mdb.models['Model A'].materials['Boden'].Density(table=((2000.0, ), ))定义材料密度mdb.models['Model A'].materials['Boden'].Elastic(table=((210546.3, 0.3333), ))定义材料线弹性模量和泊松比, 其它的材料, 如弹塑性, 粘弹性材料均对应不同的对象函数. mdb.models['Model A'].HomogeneousSolidSection(material='Boden',name='boden',thickness=1.0)mdb.models['ModelA'].parts['Boden'].assignSection(region=Region(faces=mdb.models['ModelA'].parts['Boden'].faces[0:1]), sectionName='boden')设定组件为坐标无关性材料,厚度为单位厚度, 并将属性附给所用的组件第三节, 装配from assembly import *首先, 导入装配所用到的对象mdb.models['ModelA'].rootAssembly.DatumCsysByThreePoints(coordSysType=CYLINDRICAL, origin=(0.0, 0.0, 0.0), point1=(1.0, 0.0, 0.0), point2=(0.0,0.0, -1.0))定义坐标类型为柱坐标, 原点0,0,0,另外两个为单位向量, 确定该坐标轴的方向.mdb.models['Model A'].rootAssembly.Instance(name='Boden-1',part=mdb.models['Model A'].parts['Boden'])生成草图对像boden的实体, 名字叫Boden-1. 无偏移插入第四节, 定义分析步from step import *象其它步一样, 先导入分析步要用到的模块mdb.models['Model A'].ImplicitDynamicsStep(initialInc=0.005,maxNumInc=1024,name='Step-1', noStop=OFF, nohaf=OFF,previous='Initial',timeIncrementationMethod=FIXED, timePeriod=5.12)定义对动力隐式分析, 时长为0.005*1024=5.12个时间单位, 前一步为Initialmdb.models['Model A'].fieldOutputRequests['F-Output-1'].setValues(variables=('U',))定义输出到ODB文件的数据, 这里只定义了位移输出mdb.models['Model A'].fieldOutputRequests['F-Output-1'].setValues(frequency=1)定义位移输出的频率为每步都输出mdb.models['Model A'].steps['Step-1'].Restart(frequency=1, overlay=ON)定义重启动析, 每一步记录, 只记录最后一次的正确状态第五节, 定义接触from interaction import *依然是先导入所用的模块mdb.models['Model A'].rootAssembly.PartitionEdgeByParam(edges=(mdb.models['Model A'].rootAssembly.instances['Boden-1'].edges[3], ), parameter=0.975)在上部即第3面的97.5%的地方设定一个点, 用于定义接触mdb.models['Model A'].ContactProperty('IntProp-1')定义接触属性名mdb.models['Model A'].interactionProperties['IntProp-1'].TangentialBehavior(formulation=FRICTIONLESS)mdb.models['Model A'].interactionProperties['IntProp-1'].NormalBehavior(allowSeparation=OFF, augmentedLagrange=OFF, pressureOverclosure=HARD)定义接触特性,为无摩擦硬接触不允许分开mdb.models['Model A'].SurfaceToSurfaceContactStd(adjustMethod=NONE,createStepName='Initial', interactionProperty='IntProp-1', master=Region(side1Edges=mdb.models['Model A'].rootAssembly.instances['fun-1'].edges[0:1]), name='Int-1', slave=Region(side1Edges=mdb.models['Model A'].rootAssembly.instances['Boden-1'].edges[4:5]), sliding=FINITE)这一句是建立接触对, 分别为两个面上的一条边, 这里边的定义由ABAQUS内定, 具体可以查阅参考手册第六节, 荷载边界定义from load import *mdb.models['Model A'].PeriodicAmplitude(a_0=1.0, data=((3.0, 1.1), (3.2, 1.7)), frequency=2.454, name='Fourier',start=0.0, timeSpan=STEP)定义fourier级数表示的荷载mdb.models['Model A'].Pressure(amplitude='Fourier', createStepName='Step-1', distribution=UNIFORM, magnitude=50.0, name='Load-1', region=Region(side1Edges=mdb.models['Model A'].rootAssembly.instances['fun-1'].edges[2:3]))定义压强, 设定加载的分析步,区域及放大系数mdb.models['Model A'].DisplacementBC(amplitude=UNSET,createStepName='Initial',distribution=UNIFORM, localCsys=None, name='BC-1', region=Region(edges=mdb.models['Model A'].rootAssembly.instances['Boden-1'].edges[0:1]+\mdb.models['Model A'].rootAssembly.instances['Boden-1'].edges[2:3]+\mdb.models['Model A'].rootAssembly.instances['fun-1'].edges[3:4]),u1=SET,u2=UNSET, ur3=UNSET)mdb.models['Model A'].DisplacementBC(amplitude=UNSET, createStepName='Initial', distribution=UNIFORM, localCsys=None, name='BC-2', region=Region(edges=mdb.models['Model A'].rootAssembly.instances['Boden-1'].edges[1:2]),u1=UNSET, u2=SET, ur3=UNSET)设定边界位移为0的边界条件, 注意语法中对象相加的方法.第七节, 网格划分控制from mesh import *import mesh导入网格划分模块elemType1 = mesh.ElemType(elemCode=CAX8,elemLibrary=STANDARD,secondOrderAccuracy=OFF, hourglassControl=STIFFNESS, distortionControl=OFF)elemType2 = mesh.ElemType(elemCode=CAX6M, elemLibrary=STANDARD)a1 = mdb.models['Model A'].rootAssemblyf1 = a1.instances['Boden-1'].facesfaces1 = f1[0:1]regions =(faces1, )a1.setElementType(regions=regions, elemTypes=(elemType1, elemType2))定义其中一个物体的网格为二次8结点单元, 如果其中有无法划分成四边形单元的情况, 则用三角形二次6结点单元.elemType1 = mesh.ElemType(elemCode=CAX4, elemLibrary=STANDARD)elemType2 = mesh.ElemType(elemCode=CAX3, elemLibrary=STANDARD)a1 = mdb.models['Model A'].rootAssemblyf1 = a1.instances['fun-1'].facesfaces1 = f1[0:1]regions =(faces1, )a1.setElementType(regions=regions, elemTypes=(elemType1, elemType2))定义其中一个物体的网格为一次4结点单元,如果其中有无法划分成四边形单元的情况, 则用三角形一次3结点单元.mdb.models['Model A'].rootAssembly.seedPartInstance(regions=(mdb.models['Model A'].rootAssembly.instances['fun-1'], ), size=0.5)mdb.models['Model A'].rootAssembly.seedPartInstance(regions=(mdb.models['Model A'].rootAssembly.instances['Boden-1'], ), size=1)定义网格划分全局单元大小.mdb.models['Model A'].rootAssembly.generateMesh(regions=(mdb.models['ModelA'].rootAssembly.instances['Boden-1'],mdb.models['ModelA'].rootAssembly.instances['fun-1']))按照定义划分单元第八节, 任务提交及杂项功能mdb.models.changeKey(fromName='Model A', toName='Fall-Muster')修改模型名称mdb.Model(name='Fall-015', objectToCopy=mdb.models['Fall-Muster'])拷贝模型mdb.models['Fall-015'].materials['Boden'].elastic.setValues(table=((210546.3, 0.15),))修改模型中的材料属性mdb.Job(contactPrint=OFF, description='', echoPrint=OFF, explicitPrecision=SINGLE, historyPrint=OFF, model='Fall-015', modelPrint=OFF,multiprocessingMode=THREADS, name='Job-015', nodalOutputPrecision=SINGLE, numCpus=1, numDomains=1, parallelizationMethodExplicit=LOOP,parallelizationMethodStandard=TREE, preMemory=1024.0, scratch='',standardMemory=2048.0, standardMemoryPolicy=MODERATE, type=ANALYSIS,userSubroutine='')生成任务mdb.saveAs(pathName='D:/temp/FundamentSchwingungStudie')保存模型mdb.jobs['Job-015'].submit()提交任务关于如何在python中提交多个任务的问题:如果您使用下面这样的命令做的提交mdb.jobs['Job-01'].submit()mdb.jobs['Job-02'].submit()mdb.jobs['Job-03'].submit()你就会看到, 所有的任务是一次性提交的, 多个任务在一起运行, 这肯定不是你想看到的结果, 如何完成一个接着一个的提交呢, 其实很简单, 在每个任务后面加上一句mdb.jobs['Job-01'].waitForCompletion()就可以了.那么上面的语句就改为mdb.jobs['Job-01'].submit()mdb.jobs['Job-01'].waitForCompletion()mdb.jobs['Job-02'].submit()mdb.jobs['Job-02'].waitForCompletion()mdb.jobs['Job-03'].submit()mdb.jobs['Job-03'].waitForCompletion()......就一切OK了。

基于全时程迭代的减震结构地震响应分析方法与ABAQUS二次开发

基于全时程迭代的减震结构地震响应分析方法与ABAQUS二次开发

基于全时程迭代的减震结构地震响应分析方法与ABAQUS二次开发在科技的海洋中,我们如同勇敢的航海者,不断探索未知的领域。

而今天,我要带大家驶向一个充满挑战的岛屿——基于全时程迭代的减震结构地震响应分析方法与ABAQUS二次开发。

首先,让我们来想象一下,如果地震是一头狂暴的野兽,那么减震结构就是勇士手中的盾牌,保护着我们的家园免受伤害。

然而,这面盾牌并非坚不可摧,它也需要经过精心的设计和锻造。

这就是我们今天要探讨的主题——如何通过全时程迭代的方法,对减震结构进行地震响应分析,并利用ABAQUS软件进行二次开发,以提升其性能。

在这个问题上,我们不能忽视的是,传统的减震结构设计方法往往像是在黑暗中摸索,缺乏精确的数据支持。

而全时程迭代的方法,就像是点亮了一盏明灯,让我们能够清晰地看到每一步的结果,从而做出更为准确的判断。

这种方法不仅提高了设计的精度,也大大缩短了研发周期,就像是给航海者的船装上了强劲的引擎,使其能够更快地到达目的地。

然而,仅有先进的分析方法还不够,我们还需要一款强大的工具来实现这一目标。

这时,ABAQUS软件就像是一把锋利的剑,能够帮助我们切割问题的核心。

但是,即使是最锋利的剑,也需要经过磨砺才能发挥出最大的威力。

因此,我们对ABAQUS进行了二次开发,使其更加适应我们的分析需求,就像是为剑刃镀上了一层寒光,使其更加锐利。

在这个过程中,我们面临着无数的挑战和困难。

有时,数据的复杂性就像是一片浓雾,让我们难以看清前方的道路;有时,技术的局限性就像是一座高山,阻挡着我们前进的步伐。

但是,正是这些挑战激发了我们的创新精神,让我们不断地突破自我,最终达到了新的高度。

回顾整个研究过程,我深感责任重大。

因为我们知道,每一次技术的突破,都可能意味着在未来的地震中挽救无数的生命。

所以,我们不仅仅是在做研究,更是在守护着每一个生命的安全。

最后,我想说,科技的力量是无穷的,它像是一座灯塔,照亮了人类前进的道路。

使用python进行ABAQUS的二次开发的简要说明(byYoung2017.06.27)

使用python进行ABAQUS的二次开发的简要说明(byYoung2017.06.27)

使用python进行ABAQUS的二次开发的简要说明(byYoung2017.06.27)(所有用词以英文为准,翻译仅供参考)一、abaqus二次开发总述:首先最重要的知识点需要明确,abaqus在求解核心(Solver/ Kernel)和图形用户界面(GUI)之间使用的交互语言天然就是python,因此使用python进行abaqus二次开发是十分自然的选择(当然你也可以用C++,但是鉴于python所拥有的各类开源库函数的优势,python应当是二次开发的首选)。

abaqus已经使用python 写好了很多用于计算、建模、GUI等操作的模块,因此二次开发的重点在于灵活调用这些模块,完成自己的设计计算需求。

所以原则上,所有能通过abaqus/CAE交互完成的操作,使用脚本都可以实现。

并且由于Python提供的丰富的函数资源库,会使得很多复杂的建模的过程更加参数化,更加可控,有时候甚至更加简单。

其次二次开发的学习要点在于勤查手册,其中Abaqus Scripting User's Manual和Abaqus Scripting User's Reference Manual是查阅的重点,其中后者是abaqus中各个object内置方法,路径,输入参数等的详细说明。

最后关于调用脚本的几种用法说明:(1)直接在命令行调用调用脚本并打开cae界面: abaqus cae script=myscript.py调用用于可视化操作脚本,打开显示界面(注意:此时只有visualization模块被激活): abaqus cae viewer=myscript.py 调用脚本在命令行执行,同时不打开GUI界面,但会进入python 交互界面:abaqus cae noGUI=myscript.py(2)在abaqus的GUI界面调用按照Main Menu: File->Run Script,选择需要调用的脚本文件,abaqus会进行执行(3)在abaqus的命令行交互界面调用(command line interface,在abaqus的GUI界面打开之后,窗口的最下方会有命令输入的位置,在这里也可以调用python脚本,执行方法是键入命令:execfile('myscript.py')abaqus的python脚本其实和其他应用场景下的python脚本没有太多区别,只不过有很多abaqus已经开发好的对象库可供使用,其学习过程和学习任何其他python库都是一致的。

基于abaqus的二次开发在直升机旋翼系统弹性轴承性能设计中的应用

基于abaqus的二次开发在直升机旋翼系统弹性轴承性能设计中的应用

2020年4期创新前沿科技创新与应用Technology Innovation and Application基于Abaqus 的二次开发在直升机旋翼系统弹性轴承性能设计中的应用孙文芳(中国直升机设计研究所,江西景德镇333000)1概述直升机旋翼球面推力弹性轴承由金属大接头、金属小接头、橡胶和金属隔片经过硫化粘接在一起,是旋翼桨毂的关键部件,其取代了传统铰接式桨毂的挥舞铰、摆振铰和变距铰,从而简化了桨毂结构,提高了使用寿命、维护性和可靠性。

传统球面推力弹性轴承性能指标包括轴向压缩刚度(axial spring stiffness )、径向刚度(radial spring stiff -ness )、弯曲刚度(cocking spring stiffness )和扭转刚度(tor -sional spring stiffness )[1],产品的刚度与弹性轴承的金属隔片/橡胶叠层结构尺寸及橡胶胶料的性能直接相关。

弹性轴承传统设计方法是基于传统经验公式进行尺寸打样,然后生产出产品,在试验室进行产品的刚度试验,看设计出的产品是否满足刚度指标要求。

如不满足要求,则需返回到最初阶段,调整产品的结构尺寸和橡胶胶料配方,重复上述过程重新验证。

可见,传统方法时间周期长、研发成本高。

随着计算机技术和有限元软件的不断成熟发展,在产品试制之前,采用有限元分析预期评估产品的刚度性能是很有必要的。

橡胶材料力学行为及其复杂,材料的本构关系是非线性的。

而Abaqus 是功能强大的有限元软件,可以处理高度非线性问题,在各行业中得到广泛应用,ABAQUS 具有丰富的单元库,其丰富的材料模型库可以模拟包括橡胶等材料的性能。

Abaqus 软件提供了两种二次开发接口,即用户子程序接口(User Surbroutine )和Abaqus 脚本接口(AbaqusScripting Interface )。

前者不在本文中过多描述,本文采用了后者,后者是在Python 语言的基础上进行的定制开发,主要是方便用户根据自身的需求开发前后处理工具(GUI 程序)或者辅助用户实现参数化的建模以及数据处理等工作,其影响的是CAE 分析过程的前后处理环节[2]。

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:FanShengbaoPython2.7精心整理目录第一章Python程序基本语法....................................................1.1Python语法结构......................................................1.2Python元组..........................................................1.3Python列表..........................................................1.4Python字典..........................................................2.4.2mdb对象........................................................2.4.3odb对象........................................................2.5ABAQUS完整二次开发示例..............................................2.6ABAQUS二次开发常用函数..............................................2.6.1Part模块常用函数...............................................精心整理第一章Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次tt1=(1,2,3,4,5)print tt1[1]程序执行结果:21.3P ython列表Python中的列表(list)相当于C语言中的数组,但比C语言中的数组使用起来更加方便灵活。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

fv
k1 = 10k2
k2
dv
Figure 2. Vertical mechanical properties of rubber isolation bearing 图 2. 隔震垫的竖向力学性能
112
k1 k= k2
(当dv ≥ 0时) (当dv < 0时)
基于 ABAQUS 的橡胶垫隔震支座单元二次开发
(4)
式中 k1 为压缩刚度, k2 为拉伸刚度。 d v 为压缩变形。 采用 Bouc-Wen 模型模拟水平恢复力特性,如图 3 所示。单元水平力–位移关系式为:
f = k y d + ( ke − k y ) e
(5)
其中: ke 为初始线性刚度; k y 为屈服后刚度; d 为水平总变形; d y 为屈服变形。 e 为水平弹性变形,并处于 ± d y 的范围内,它通过对下面微分方程在每个时间步长进行数值积分计算 出来:
3. 隔震支座单元
3.1. 隔震支座单元力学模型
采用线弹性模型模拟竖向的拉压刚度异性,如图 2 所示。单元的竖向力–位移关系式为:
f v = kd v
(3)
f
u
M
Figure 1. The hysteretic curve and sketch maps of Bouc-Wen model 图 1. Bouc-Wen 模型滞回曲线和示意图
Hans Journal of Civil Engineering 土木工程, 2014, 3, 110-121 Published Online July 2014 in Hans. /journal/hjce /10.12677/hjce.2014.34014
关键词
橡胶垫隔震,非线性滞回特性,ABAQUS,二次开发,仿真分析
1. 引言
随着隔震技术的广泛应用,针对隔震结构的非线性分析和设计显示出了日益重要的科学意义和工程 应用价值。采用隔震技术,可以使得结构在地震激励时其上部处于弹性状态,主要的变形和能耗都集中 在隔震层处,因此对这类结构的非线性分析,其关键在于能否正确模拟隔震支座的力学特性并将其结合 进大型有限元的动力分析软件中。对此,国内外学者进行了广泛的研究,发现隔震支座的水平恢复力表 现为的典型的非线性滞回特性[1]-[5], 并且不同种类的隔震支座的滞回特性还有所差异, 同时其竖向力学 性能具有表现为拉压异性的特点[2]。对于水平恢复力特性的描述,可以采用简单的分段线性模型,其不 足是模型存在拐点,使得在数值分析和有限元分析时处理相当复杂,且容易造成结果失真,另外一种方 案则是采用复杂的微分方程模型,如Bouc-Wen模型采用光滑的曲线处理了滞回曲线的拐点,可以较好的 模拟隔震支座的滞回特性,因而得到了广泛的应用。目前常用的大型结构分析有限元软件,如ETABS、 SAP2000和MIDAS均采用Bouc-Wen模型来描述隔震支座的力学特性。Bouc-Wen模型包含较多的参数, 其中有些参数对恢复力的滞回特性的影响很大,因此根据实际的隔震支座的力学性能,选择并设定合理 的参数是很有必要的。但是使用在ETABS和SAP2000时,只能调节橡胶隔震垫参数,无法调节Bouc-Wen 模型的滞回参数;在MIDAS软件中,可以调节参数 α 、 K 、 Fy 、 β 和 γ ,却无法调节参数A和n。而且 其竖向力学性能均为线弹性,无法模拟隔震支座的拉压异性问题。在现有的有限元软件中,ABAQUS的 非线性求解功能性能卓越,但它目前还没有直接可用的隔震支座单元,其自带的JOINTC连接单元由3个 平动弹簧构成,可以模拟两个节点之间的相互作用,但JOINTC连接单元只能模拟叠层橡胶支座,因为其 方向只能定义成线弹性或弹塑性,无法模拟非线性滞回耗能的力学行为。BUSHING单元能够同时定义6 个方向塑性行为和阻尼特性,但6个分量之间相关性太高,给应用带来诸多不便。因此要想利用ABAQUS 的强大的非线性求解功能进行隔震结构的分析,必须开发一种基于Bouc-Wen模型的隔震支座单元,并且 能进行滞回参数调节。 本文基于ABAQUS软件的用户单元子程序接口,采用Bouc-Wen模型作为水平恢复力模型,并考虑竖 向刚度的拉压异性,开发了基于Bouc-Wen模型的隔震支座单元UEL子程序,相关的模型参数可以根据实 际需要进行设置和调节的。应用所开发的程序,通过对一栋不规则结构进行了地震响应动力分析,研究 了相关参数对隔震效果的影响。
111
基于 ABAQUS 的橡胶垫隔震支座单元二次开发
2. Bouc-Wen 模型
1967 年 Bouc 首先提出了一种光滑迟滞模型[6],随后针对结构动力滞回性能的研究,Wen[7]通过对 Bouc 提出的模型进行归纳总结, 采用光滑的曲线处理了滞回曲线的拐点, 使得该模型得到了完善和发展, 在当前工程领域中被广泛使用[8]-[12],可以较好地模拟铅芯隔震橡胶支座的水平恢复力特性。根据 Wen 提出的微分滞回模型,结合铅芯橡胶支座的力学特点,其力学模型可由线性弹簧和滞回弹簧组合表示如 图 1 所示,数学表达式如下:
Keywords
Rubber Isolation, Non-Linear Hysteresis, ABAQUS, Secondary Development, Simulation
基于ABAQUS的橡胶垫隔震支座单元二次开发
王 晖,方明胜,孙作玉
广州大学土木工程学院,广州 Email: 601063037@, fangms89@, sunzuoyu@ 收稿日期:2014年5月26日;修回日期:2014年6月20日;录用日期:2014年6月28日
F= ( K p − Ke )U + KeU e
(9)
式中 U 为总变形矢量,U e 为弹性变形矢量,F 为节点力矢量,如式 10 所示。单元刚度矩阵 K 为 6 × 6 阶,由线性刚度矩阵 K e 和非线性刚度矩阵 K p 两部分组成。其中 K e 和 K p 均为 6 × 6 阶的对称矩阵,具 体形式如下:
F α K1u + (1 − α ) Qd z =
(1)
式中: F 为隔震支座水平恢复力; u 为水平剪切位移; K1 为屈服前刚度; α 为屈服后刚度与初始刚度的 比值; Qd 为屈服荷载; z 为无量纲滞回变量,该变量的范围满足 z ≤ 1 。满足如下微分方程:
−β u z y = zD Au
(7) (8)
= e
et − et −t t
3.2. 隔震支座子程序开发
隔震垫单元包含 2 个节点,如图 4 所示,第一个和第二个节点(a 和 b)各有 3 个平动自由度,如图 5 所示。对于轴向变形,其属性只能是线性的,两个剪切变形有耦合,均可定义线性和非线性行为。对于 两节点三自由度隔震支座而言,其在 ABAQUS 软件中的力–位移关系表示如下:
110
基于 ABAQUS 的橡胶垫隔震支座单元二次开发


橡胶垫隔震技术是减轻建筑结构在地面地震动激励下动力响应的有效措施, 得到了日益广泛的工程应用。 隔震的结构也由普通的低矮建筑拓展到一些复杂结构,如一些不规则的建筑场馆、桥梁,目前在高层建 筑中也得到了应用。这对结构的动力响应分析提出了越来越高的要求,特别是对大型复杂结构,如何模 拟橡胶垫的非线性特性,并结合到结构的有限元分析中,已成为影响橡胶垫隔震技术推广应用的一个关 键问题。本文基于ABAQUS的二次开发平台,采用Bouc-Wen模型描述其水平恢复力的滞回特性,同时考 虑竖向刚度的拉压异性,对橡胶垫隔震支座单元进行了二次开发,其中Bouc-Wen的参数可以根据需要 进行合理的调节和设置,基于所开发的软件,对一个不规则结构进行了仿真分析,探索了隔震的影响效 果。
n −1
z 支座的水平剪切位移的速度,n为控制滞回曲线弹性阶 式中, Dy 为屈服位移,满足 Qd = K1 Dy , u
段与塑性阶段过渡平滑的特性参数,A、 β 、 γ 描述滞回曲线的形状参数,通过合理地调整Bouc-Wen模 型的有关参数,可以较好地模拟铅芯隔震橡胶支座的力学性能。
Rubber Isolation Bearing Element Secondary Development Based on ABAQUS
Hui Wang, Mingsheng Fang, Zuoyu Sun
College of Civil Engineering of Guangzhou University, Guangzhou Email: 601063037@, fangms89@, sunzuoyu@ Received: May 26th, 2014; revised: Jun. 20th, 2014; accepted: Jun. 28th, 2014 Copyright © 2014 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). /licenses/by/4.0/
Abstract
Rubber isolation technology is an effective means to mitigate the dynamic responses of a building under seismic excitations, now it has been applied widely in engineering, from those lower stiff buildings to some complicated structures, such as large scale irregular stadium, bridges, and even high rise buildings recently. Such trends lead to higher requirements for dynamics response analysis, especially for those larger scale structure, the arisen key problem is how to simulate the nonlinear hysteresis property of the rubber bearing, and incorporate the programs in the finite element analysis. Based on the secondary development platform of ABAQUS, we program for the rubber bearing element, in which, the Bouc-Wen model is employed to describe the hysteresis behavior in lateral, while the strength-differences of vertical stiffness are treated as well. An iregular building is simulated to investigate the effects of base isolation by using the developed program.
相关文档
最新文档