当前位置:文档之家› Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释
Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )?

很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

UMAT 子程序具有强大的功能,使用UMAT 子程序:

(1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。

(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。

(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。

(4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。

2、需要哪些基础知识?

先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话:

Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如:

应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。

3、UMAT 的基本任务?

我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

第I 个应力分量带来的变化。该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然得不到结果)。

4、怎样建立自己的材料模型?

本构方程就是描述材料应力应变(增量)关系的数学公式,不是凭空想象出来的,而是根据实验结果作出的合理归纳。比如对弹性材料,实验发现应力和应变同步线性增长,所以用一个简单的数学公式描述。为了解释弹塑性材料的实验现象,又提出了一些弹塑性模型,并用数学公式表示出来。

对各向同性材料(Isotropic material),经常采用的办法是先研究材料单向应力-应变规律(如单向拉伸、压缩试验),并用一数学公式加以描述,然后把该规律推广到各应力分量。这叫做“泛化“(generalization)。

5、一个完整的例子及解释

由于主程序与UMAT之间存在数据传递,甚至一些公共变量,因此必须遵循有关UMAT的书写格式,UMAT 中常用的变量在文件开头予以定义,通常格式为:SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,

1 RPL, DDSDDT, DRPLDE, DRPLDT,

2 STRAN, DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,

3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

INCLUDE 'ABA_PARAM.INC'

CHARACTER*80 CMNAME

DIMENSION STRESS(NTENS),STATEV(NSTATV),

1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),

2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),

3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)

user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD

and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT

RETURN

END

COORDS 当前积分点的坐标

DDSDDE ( NTENS NTENS)大小为NTENS×NTENS的Jacobian矩阵(ε

σΔ?

?/),D

Δ

DSDDE(I,J) 定义了第J个应变分量的微小变化对第I 个应

力分量带来的变化。通常Jacobian矩阵是一个对称矩阵,

除非在“*USER MATERIAL”语句中加入了“UNSYM

M”参数;需要更新

DROT对Finite strain问题,应变应该排除旋转部分,该矩阵提

供了旋转矩阵,详见下面的解释;已知

DSTRAN (NTENS)应变增量

dε,已知

n

1+

DTIME增量步的时间增量dt;已知

KSTEP,KINC 传到用户子程序当前的STEP和INCREMENT值

NDI直接应力、应变个数,对三维问题、轴对称问题自然是3

(11,22,33),平面问题是2(11,22);已知

NOEL,NPT 积分点所在单元的编号和积分点的编号

NSHR剪切应力、应变个数,三维问题时3(12,13,23),轴对称问

题是1(12);已知

NTENS=NDI+ NSHR,总应力分量的个数;已知

PNEWDT可用来控制时间步的变化。如果设置为小于1的数,则程

序放弃当前计算,并用新的时间增量DTIME X PNEWDT

作为新的时间增量计算;这对时间相关的材料如聚合物等

有用;如果设为大余1的数,则下一个增量步加大DTIM

E为DTIME X PNEWDT。可以更新。

PROPS (NPROPS)材料常数数组,如模量啊,粘度系数等等;材料参数的个

数,等于关键词“*USER MATERIAL”中“CONSTANT

S”常数设定的值;矩阵中元素的数值对应于关键词“US

ER MATERIAL”下面的数据行。作为已知量传入;已知SSE,SPD,SCD 分别定义每一增量步的弹性应变能,塑性耗散和蠕变耗

散。它们对计算结果没有影响,仅仅作为能量输出STATEV (NSTATEV)状态变量矩阵,用来保存用户自己定义的一些变量,如累

计塑性应变,粘弹性应变等等。增量步开始时作为已知量

传入,增量步结束应该更新

STRAN (NTENS)当前应变数组

ε,已知

n

STRESS (NTENS)应力张量数组,对应NDI个直接分量和NSHR个剪切分

σ中的数值通过U

量。在增量步的开始,应力张量矩阵n

MAT和主程序之间的接口传递到UMAT中,在增量步的

σ。对于包含刚

结束UMAT将对应力张量矩阵更新为1+n

体转动的有限应变问题,一个增量步调用UMAT之前就

已经对应力张量进行了刚体转动,因此UMAT中只需处

理应力张量的共旋部分。UMAT中应力张量的度量为柯

西(真实)应力。

下面这个UMAT取自ABAQUS手册,是一个用于大变形下的弹塑性材料模型,注意的是这里需要了解J2理论。

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT,

1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,

2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,

3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

定义了一些相关参数与变量什么,从ABAQUS安装目录下的子文件夹“…\site”中可找到

C

CHARACTER*8 CMNAME

C

DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),

1 DDSDDT(NTENS)(应变矩阵),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS)(应变增量矩阵),

2 PREDEF(1),DPRED(1),PROPS(NPROPS)(材料常数矩),COORDS(3),DROT(3,3)(旋

转矩阵),

3 DFGRD0(3,3),DFGRD1(3,3)

声明矩阵的尺寸

C

C LOCAL ARRAYS

C ----------------------------------------------------------------

C EELAS - ELASTIC STRAINS

C EPLAS - PLASTIC STRAINS

C FLOW - DIRECTION OF PLASTIC FLOW

C ----------------------------------------------------------------

C

局部变量,用来暂时保存弹性应变、塑性应变分量以及流动方向

DIMENSION EELAS(6),EPLAS(6),FLOW(6)

C

PARAMETER(ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0,

1 ENUMAX=.4999D0,NEWTON=10,TOLER=1.0D-6)

C

C ----------------------------------------------------------------

C UMAT FOR ISOTROPIC ELASTICITY AN

D ISOTROPIC MISES PLASTICITY

C CANNOT BE USE

D FOR PLAN

E STRESS

C ----------------------------------------------------------------

C PROPS(1) - E

C PROPS(2) - NU

C PROPS(3..) - SYIEL

D AN HARDENING DATA

C CALLS HARDSUB FOR CURVE OF YIEL

D STRESS VS. PLASTIC STRAIN

C ----------------------------------------------------------------

C

C ELASTIC PROPERTIES

C

获取杨氏模量,泊松比,作为已知量由PROPS 向量传入

EMOD=PROPS(1) E

ENU=PROPS(2) ν

EBULK3=EMOD/(ONE-TWO*ENU) 3K )21(3ν?=E

k

EG2=EMOD/(ONE+ENU) 2G )1(2υ+=E

G EG=EG2/TWO G )1(2υ+=E

G EG3=THREE*EG 3G

ELAM=(EBULK3-EG2)/THREE λ 3

)23(G k ?=λ DO K1=1,NTENS

DO K2=1,NTENS

DDSDDE(K1,K2)=ZERO

END DO

END DO 弹性部分,Jacobian 矩阵很容易计算

?????????

???????????+++=G G G J 2G 2G 2G λλλλλλλλλ 注意,在ABAQUS 中,剪切应变采用工程剪切应变的定义j,i i,j ij u u +=γ,所以剪切部分模量是G 而不是2G

C Jacobian 矩阵的程序

C ELASTIC STIFFNESS

C

DO K1=1,NDI

DO K2=1,NDI

DDSDDE(K2,K1)=ELAM

END DO

DDSDDE(K1,K1)=EG2+ELAM

END DO

DO K1=NDI+1,NTENS

DDSDDE(K1,K1)=EG

END DO

C

C RECOVER ELASTIC AN

D PLASTIC STRAINS AND ROTAT

E FORWARD

C ALSO RECOVER EQUIVALENT PLASTIC STRAIN

C

读取弹性应变分量,塑性应变分量,并旋转(调用了ROTSIG ),分别保存在EELAS 和EPLAS 中;

CALL ROTSIG(STATEV( 1),DROT,EELAS,2,NDI,NSHR)

CALL ROTSIG(STATEV(NTENS+1),DROT,EPLAS,2,NDI,NSHR)

读取等效塑性应变

EQPLAS=STATEV(1+2*NTENS)

先假设没有发生塑性流动,按完全弹性变形计算试算应力 .1σσσεJ σΔ+=Δ=Δ+n n

C

C CALCULATE PREDICTOR STRESS AN

D ELASTIC STRAIN

C

DO K1=1,NTENS

DO K2=1,NTENS

STRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)

END DO

EELAS(K1)=EELAS(K1)+DSTRAN(K1)弹性应变分量

END DO

C计算Mises应力

C CALCULATE EQUIVALENT VON MISES STRESS

C

SMISES=(STRESS(1)-STRESS(2))**2+(STRESS(2)-STRESS(3))**2

1 +(STRESS(3)-STRESS(1))**2

DO K1=NDI+1,NTENS

SMISES=SMISES+SIX*STRESS(K1)**2

END DO

SMISES=SQRT(SMISES/TWO)

C 根据当前等效塑性应变,调用HARDSUB得到对应的屈服应力

C GET YIEL

D STRESS FROM TH

E SPECIFIED HARDENING CURVE

C

NVALUE=NPROPS/2-1

CALL HARDSUB(SYIEL0,HARD,EQPLAS,PROPS(3),NVALUE)

C

C DETERMINE IF ACTIVELY YIELDING

C 如果Mises应力大余屈服应力,屈服发生,计算流动方向

IF (SMISES.GT.(ONE+TOLER)*SYIEL0) THEN

C

C ACTIVELY YIELDING

C SEPARATE THE HYDROSTATIC FROM THE DEVIATORIC STRESS C CALCULATE THE FLOW DIRECTION

C

SHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE

DO K1=1,NDI

FLOW(K1)=(STRESS(K1)-SHYDRO)/SMISES

END DO

DO K1=NDI+1,NTENS

FLOW(K1)=STRESS(K1)/SMISES

END DO

C根据J2理论并应用Newton-Rampson方法求得等效塑性应变增量

C SOLVE FOR EQUIVALENT VON MISES STRESS

C AN

D EQUIVALENT PLASTIC STRAIN INCREMENT USING NEWTON ITERATIO N

C

SYIELD=SYIEL0

DEQPL=ZERO

DO KEWTON=1,NEWTON

RHS=SMISES-EG3*DEQPL-SYIELD

DEQPL=DEQPL+RHS/(EG3+HARD)

CALL HARDSUB(SYIELD,HARD,EQPLAS+DEQPL,PROPS(3),NVALUE)

IF(ABS(RHS).LT.TOLER*SYIEL0) GOTO 10

END DO

C

C WRITE WARNING MESSAGE TO THE .MSG FILE

C

WRITE(7,2) NEWTON

2 FORMAT(//,30X,'***WARNING - PLASTICITY ALGORITHM DID NOT ',

1 'CONVERGE AFTER ',I3,' ITERATIONS')

10 CONTINUE

σ,应变分量

C更新应力

n

1+

C UPDATE STRESS, ELASTIC AN

D PLASTIC STRAINS AND

C EQUIVALENT PLASTIC STRAIN

C

DO K1=1,NDI

STRESS(K1)=FLOW(K1)*SYIELD+SHYDRO

EPLAS(K1)=EPLAS(K1)+THREE/TWO*FLOW(K1)*DEQPL

EELAS(K1)=EELAS(K1)-THREE/TWO*FLOW(K1)*DEQPL

END DO

DO K1=NDI+1,NTENS

STRESS(K1)=FLOW(K1)*SYIELD

EPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL

EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL

END DO

EQPLAS=EQPLAS+DEQPL

C

C CALCULATE PLASTIC DISSIPATION

C

SPD=DEQPL*(SYIEL0+SYIELD)/TWO

C

C 计算塑性变形下的Jacobian矩阵

FORMULATE THE JACOBIAN (MATERIAL TANGENT)

C FIRST CALCULATE EFFECTIVE MODULI

C

EFFG=EG*SYIELD/SMISES

EFFG2=TWO*EFFG

EFFG3=THREE/TWO*EFFG2

EFFLAM=(EBULK3-EFFG2)/THREE

EFFHRD=EG3*HARD/(EG3+HARD)-EFFG3

c...

if (props(7).lt..001) go to 99

c...

DO K1=1,NDI

DO K2=1,NDI

DDSDDE(K2,K1)=EFFLAM

END DO

DDSDDE(K1,K1)=EFFG2+EFFLAM

END DO

DO K1=NDI+1,NTENS

DDSDDE(K1,K1)=EFFG

END DO

DO K1=1,NTENS

DO K2=1,NTENS

DDSDDE(K2,K1)=DDSDDE(K2,K1)+EFFHRD*FLOW(K2)*FLOW(K1) END DO

END DO

c...

99 continue

c...

ENDIF

C将弹性应变,塑性应变分量保存到状态变量中,并传到下一个增量步

C STORE ELASTIC AN

D (EQUIVALENT) PLASTIC STRAINS

C IN STATE VARIABLE ARRAY

C

DO K1=1,NTENS

STATEV(K1)=EELAS(K1)

STATEV(K1+NTENS)=EPLAS(K1)

END DO

STATEV(1+2*NTENS)=EQPLAS

C

RETURN

END

c...

c...子程序,根据等效塑性应变,利用插值的方法得到对应的屈服应力

SUBROUTINE HARDSUB(SYIELD,HARD,EQPLAS,TABLE,NVALUE)

C

INCLUDE 'ABA_PARAM.INC'

C

DIMENSION TABLE(2,NVALUE)

C

PARAMETER(ZERO=0.D0)

C

C SET YIEL

D STRESS TO LAST VALU

E O

F TABLE, HARDENIN

G TO ZERO C

SYIELD=TABLE(1,NVALUE)

HARD=ZERO

C IF MORE THAN ONE ENTRY, SEARCH TABLE

C

IF(NVALUE.GT.1) THEN

DO K1=1,NVALUE-1

EQPL1=TABLE(2,K1+1)

IF(EQPLAS.LT.EQPL1) THEN

EQPL0=TABLE(2,K1)

IF(EQPL1.LE.EQPL0) THEN

WRITE(7,1)

1 FORMAT(//,30X,'***ERROR - PLASTIC STRAIN MUST BE `,

1 `ENTERED IN ASCENDING ORDER')

CALL XIT

ENDIF

C

C CURRENT YIEL

D STRESS AND HARDENING C

DEQPL=EQPL1-EQPL0

SYIEL0=TABLE(1,K1)

SYIEL1=TABLE(1,K1+1)

DSYIEL=SYIEL1-SYIEL0

HARD=DSYIEL/DEQPL

SYIELD=SYIEL0+(EQPLAS-EQPL0)*HARD

GOTO 10

ENDIF

END DO

10 CONTINUE

ENDIF

RETURN

END

ABAQUS中Fortran子程序调用方法

第一种方法: / o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]" 2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc; # ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录; 4. 将.obj文件拷贝到工作目录; 5. 建立好输入文件.inp; 6. 运行abaqusjob=inp_name user=fortran name即可。 第二种方法: 在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select 按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。 , D8 i7 d/r c6 @" | 以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j 用户进行二次开发时,要在命令行窗口执行下面的命令: 4 O. R+ ^,@( ? abaqus job=job_name user=sub_name ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。 : j6 g' R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。 1子程序格式(程序后缀是.f; .f90; .for;.obj??) 答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Abaqus中,运行abaqusj=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。 如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。 2CAE中如何调用?Command下如何调用? 答:CAE中在creat job的jobmanager中的general中可以指定子程序; Command下用命令:abaqus j=jobnameuser=userfilename (无后缀); 3若有多个子程序同时存在,如何处理 答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册) 4我对VF不是很熟,是否可以用VC,C++编写子程序? A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。 据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UV ARM 和UFIELD这两个subroutine,显然会造成重复定义,请查实。 用户子程序的使用 假设你的输入文件为:a.inp b.for 那么在ABAQUS Command 中的命令应该是这样的: abaqusjob=a user=b

本人学习abaqus五年的经验总结-让你比做例子快十倍

第二章 ABAQUS 基本使用方法 [2](pp15)快捷键:Ctrl+Alt+左键来缩放模型;Ctrl+Alt+中键来平移模型;Ctrl+Alt+右键来旋转模型。 ②(pp16)ABAQUS/CAE 不会自动保存模型数据,用户应当每隔一段时间自己保存模型以避免意外丢失。 [3](pp17)平面应力问题的截面属性类型是Solid(实心体)而不是Shell(壳)。 ABAQUS/CAE 推荐的建模方法是把整个数值模型(如材料、边界条件、载荷等)都直接定义在几何模型上。载荷类型Pressure 的含义是单位面积上的力,正值表示压力,负值表示拉力。 [4](pp22)对于应力集中问题,使用二次单元可以提高应力结果的精度。 [5](pp23)Dismiss 和Cancel 按钮的作用都是关闭当前对话框,其区别在于:前者出现在包含只读数 据的对话框中;后者出现在允许作出修改的对话框中,点击Cancel 按钮可关闭对话框,而不保存 所修改的内容。 [6](pp26)每个模型中只能有一个装配件,它是由一个或多个实体组成的,所谓的“实体”(instance) 是部件(part)在装配件中的一种映射,一个部件可以对应多个实体。材料和截面属性定义在部件上,相互作用(interaction)、边界条件、载荷等定义在实体上,网格可以定义在部件上或实体上,对求解过程和输出结果的控制参数定义在整个模型上。 [7](pp26) ABAQUS/CAE 中的部件有两种:几何部件(native part)和网格部件(orphan mesh part)。 创建几何部件有两种方法:(1)使用Part 功能模块中的拉伸、旋转、扫掠、倒角和放样等特征来直 接创建几何部件。(2)导入已有的CAD 模型文件,方法是:点击主菜单File→Import→Part。网格部件不包含特征,只包含节点、单元、面、集合的信息。创建网格部件有三种方法:(1)导入ODB 文件中的网格。(2)导入INP 文件中的网格。(3)把几何部件转化为网格部件,方法是:进入Mesh 功能模块,点击主菜单Mesh→Create Mesh Part。 [8](pp31)初始分析步只有一个,名称是initial,它不能被编辑、重命名、替换、复制或删除。在初始分析步之后,需要创建一个或多个后续分析步,主要有两大类:(1)通用分析步(general analysis step)可以用于线性或非线性分析。常用的通用分析步包含以下类型: —Static, General: ABAQUS/Standard 静力分析 —Dynamics, Implicit: ABAQUS/Standard 隐式动力分析 —Dynamics, Explicit: ABAQUS/ Explicit 显式动态分析 (2)线性摄动分析步(linear perturbation step)只能用来分析线性问题。在ABAQUS/Explicit 中 不能使用线性摄动分析步。在ABAQUS/Standard 中以下分析类型总是采用线性摄动分析步。 —Buckle: 线性特征值屈曲。 —Frequency: 频率提取分析。 —Modal dynamics: 瞬时模态动态分析。 —Random response: 随机响应分析。 —Response spectrum: 反应谱分析。 —Steady-state dynamics: 稳态动态分析。 [9](pp33)在静态分析中,如果模型中不含阻尼或与速率相关的材料性质,“时间”就没有实际的物 理意义。为方便起见,一般都把分析步时间设为默认的 1。每创建一个分析步,ABAQUS/CAE 就会自动生成一个该分析步的输出要求。 [10] (pp34)自适应网格主要用于ABAQUS/Explicit 以及ABAQUS/Standard 中的表面磨损过程 模拟。在一般的ABAQUS/Standard 分析中,尽管也可设定自适应网格,但不会起到明显的作用。 Step 功能模块中,主菜单Other→Adaptive Mesh Domain 和Other→Adaptive Mesh Controls 分别 设置划分区域和参数。 [11](pp37)使用主菜单Field 可以定义场变量(包括初始速度场和温度场变量)。有些场变量与分析步有关,也有些仅仅作用于分析的开始阶段。使用主菜单Load Case 可以定义载荷状况。载荷状况由一系列的载荷和边界条件组成,用于静力摄动分析和稳态动力分析。

ABAQUS子程序

Home 浅谈ABAQUS用户子程序 李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: ABAQUS JOB=[JOB] USER?[.FOR]?C 用户在编写用户子程序时,要注意以下几点: 1.用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程

abaqus简单umat子程序

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

ABAQUS实例分析(可编辑修改word版)

《现代机械设计方法》课程结业论文 ( 2011 级) 题目:ABAQUS 实例分析 学生姓名XXXX 学号XXXXX 专业机械工程 学院名称机电工程与自动化学院 指导老师XX 2013 年 5 月8 日

目录 第一章Abaqus 简介 (1) 一、Abaqus 总体介绍 (1) 二、Abaqus 基本使用方法 (2) 1.2.1Abaqus 分析步骤 (2) 1.2.2Abaqus/CAE 界面 (3) 1.2.3Abaqus/CAE 的功能模块 (3) 第二章基于Abaqus 的通孔端盖分析实例 (4) 一、工作任务的明确 (4) 二、具体步骤 (4) 2.2.1启动Abaqus/CAE (4) 2.2.2导入零件 (5) 2.2.3创建材料和截面属性 (6) 2.2.4定义装配件 (7) 2.2.5定义接触和绑定约束(tie) (10) 2.2.6定义分析步 (14) 2.2.7划分网格 (15) 2.2.8施加载荷 (19) 2.2.9定义边界条件 (20) 2.2.10提交分析作业 (21) 2.2.11后处理 (22) 第三章课程学习心得与作业体会 (23)

第一章: Abaqus 简介 一、 Abaqus 总体介绍 Abaqus 是功能强大的有限元分析软件,可以分析复杂的固体力学和结构力学系统,模拟非常庞大的模型,处理高度非线性问题。Abaqus 不但可以做单一零件的力学和多物理场的分析,同时还可以完成系统级的分析和研究。 Abaqus 使用起来十分简便,可以很容易的为复杂问题建立模型。Abaqus 具备十分丰富的单元库,可以模拟任意几何形状,其丰富的材料模型库可以模拟大多数典型工程材料的性能,包括金属、橡胶、聚合物、复合材料、钢筋混泥土、可压缩的弹性泡沫以及地质材料(例如土壤、岩石)等。 Abaqus 主要具有以下分析功能: 1.静态应力/位移分析 2.动态分析 3.非线性动态应力/位移分析 4.粘弹性/粘塑性响应分析 5.热传导分析 6.退火成形过程分析 7.质量扩散分析 8.准静态分析 9.耦合分析 10.海洋工程结构分析 11.瞬态温度/位移耦合分析 12.疲劳分析 13.水下冲击分析 14.设计灵敏度分析 二、 Abaqus 基本使用方法 1.2.1Abaqus 分析步骤 有限元分析包括以下三个步骤: 1.前处理(Abaqus/CAE):在前期处理阶段需要定义物理问题的模型,并生 成一个 Abaqus 输入文件。提交给 Abaqus/Standard 或 Abaqus/Explicit。 2.分析计算(Abaqus/Standard 或 Abaqus/Explicit):在分析计算阶段, 使用 Abaqus/Standard 或Abaqus/Explicit 求解输入文件中所定义的

ABAQUS用户子程序

当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS 调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序: (1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩

Abaqus学习笔记

Abaqus学习笔记 Abaqus 使用日记Abaqus 标准版共有“部件(part)”、“材料特性(propoterty)”、“装配(assemble)”、“计算步骤(step)”、“交互(interaction)”、“加载(load)”、“单元划分(mesh)”、“计算(job)”、“后处理(visualization)”、“草图(sketch)”十大模块组成。建模方法:一个模型(model)通常由一个或几个部件(part)组成,部件又由一个或几个特征体(feature)组成,每一个部分至少有一个基本特征体(base feature),特征体可以是所创建的实体,如挤压体、切割挤压体、数据点、参考点、数据轴、数据平面、装配体的装配约束、装配体的实例等等。1.首先建立部件 (1)根据实际模型的尺寸决定部件的近似尺寸,进入绘图区。绘图区根据所输入的近似尺寸决定网格的间距,间距大小可以在edit菜单sketcher options 选项里调整。 (2)在绘图区分别建立部件中的各个特征体,建立特征体的方法主要有挤压、旋转、平扫三种。同一个模型中两个不同的部件可以有同名的特征体组成,也就是说不同部件中可以有同名的特征体,同名特征体可以相同也可以不同。部件的特征体包括用各种方法建立的基本特征体、数据点(datum point)、数据轴(datum axis)、数据平面(datum plane)等等。 (3)编辑部件可以用部件管理器进行部件复制,重命名,删除等,部件中的特征体可以是直接建立的特征体,还可以间接手段建立,如首先建立一个数据点特征体,通过数据点建立数据轴特征体,然后建立数据平面特征体,再由此基础上建立某一特征体,最先建立的数据点特征体就是父特征体,依次往下分别为子特征体,删除或隐藏父特征体其下级所有子特征体都将被删除或隐藏。特征体被删除后将不能够恢复,一个部件如果只包含一个特征体,删除特征体时部件也同时被删除。 2.建立材料特性 (1)输入材料特性参数弹性模量、泊松比等 (2)建立截面(section)特性,如均质的、各项同性、平面应力平面应变等等,截面特性管理器依赖于材料参数管理器 (3)分配截面特性给各特征体,把截面特性分配给部件的某一区域就表示该区域已经和该截面特性相关联 3.建立刚体 (1)部件包括可变形体、离散刚体和解析刚体三种类型,在创建部件时需要指定部件的类型,一旦建立后就不能更改其类型。采用旋转方式建立部件,在绘制轴对称部件的外形轮廓时不能超过其对称轴。

Abaqus材料用户子程序UMAT基础知识与手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 2、需要哪些基础知识? 先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

ABAQUS用户子程序

ABAQUS用户子程序 转自https://www.doczj.com/doc/738309860.html, 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1. F为用户定义的是每个积分点所作用的荷载的大小; 2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3. TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4. NOEL,NPT为积分点所在单元的编号和积分点的编号; 5. COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)2PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)3PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)4PLOAD

ABAQUS子程序UMAT的应用

A B A Q U S子程序U M A T 的应用 This model paper was revised by the Standardization Office on December 10, 2020

目录

摘要 ABAQUS软件功能强大,特别是能够模拟复杂的非线性问题,它包括了多种材料本构关系及失效准则模型,并具有良好的开放性,提供了若干个用户子程序接口,允许用户以代码的形式来扩展主程序的功能。 本文主要研究了ABAQUS用户子程序UMAT的开发方法,采用FORTRAN语言编制了各向同性硬化材料模型的接口程序,研究该类材料的弹塑性本构关系极其实现方法。 本文紧紧围绕UMAT的二次开发技术,首先对其接口原理做了详细介绍,然后针 对非线性有限元增量理论中的常刚度法和切线刚度法的算法理论做了深入的剖析,推导出了常刚度法和切线刚度法的算法理论的具体表达式,然后分别编制了两种算法的UMAT程序,最后建立了一个具体的验算模型,通过与ABAQUS自带弹塑性本构关系的计算结果相比较,验证两者的正确性。 本文还对常刚度法和切线刚度法得算法效率做了对比,得出了在非线性程度较高 时切线刚度法效率高于常刚度法的结论。 关键字: ABAQUS、UMAT、有限元、材料非线性、FORTRAN、切线刚度 ABSTRACT ABAQUS software powerful, especially to simulate complex non-linear problem, which includes a wide range of material constitutive model and failure criteria, and has a good open, providing a number of user subroutine interface that allows users to code form to expand the functions of the main program.

abaqus实例

一.创建部件 1.打开abaqus; 开始/程序/Abaqus6.10-1/Abaque CAE 2.Model/Rename/Model-1,并输入名字link4

3.单击Create part弹出Create part对话框, Name输入link-4; Modeling Space 选择2D Planar Type 选择Deformable Base Feature 选择Wire Approximate size 输入800;然后单击continue 4.单击(Create Lines:connected)通过点(0,0)、(400,0)、(400,300)、(0,300)单击(Create Lines:connected)连接(400,300)和(0,0)两点,单击提示区中的Done按钮(或者单击鼠标滚轮,也叫中键),形成四杆桁架结构

5.单击工具栏中的(Save Model Database),保存模型为link4.cae 二.定义材料属性 6.双击模型树中的Materials(或者将Module切换到Property,单击Create Material -ε) 弹出Edit Material对话框后。 执行对话框中Mechanical/Elasticity/Elastic命令, 在对话框底部出现的Data栏中输入Young’s Module为29.5e4, 单击OK.完成材料设定。

7.单击“Create Section ”,弹出Create Section对话框, Category中选择Beam; Type中选择Truss; 单击continue按钮 弹出Edit Section对话框, 材料选择默认的Material-1,输入截面积(Cross-sectional area)为100,单击ok按钮。

abaqus实例详细过程(铰链) 免费

铰链 一、创建部件 1、进入部件模块。。点击创建部件。 命名为Hinge-part,其他的选项选择如右下图所示。点击 “继续”,进入绘图区。 2、点击,在绘图区绘一个矩形。再点击,将尺寸改为 0.04*0.04。单击鼠标中键。 3、在弹出的对话框中输入0.04作为拉伸深度。点击”确定”。 4、点击创建拉伸实体,点击六面体的一个面,以及右侧的边。进入到绘图区域。 5、如下图那样利用创建三条线段。利用将两条横线都改为0.02mm长。 6、选择,做出半圆。 7、点击,以半圆的圆心为圆心,做圆。 8、点击为圆标注尺寸。输入新尺寸0.01。 9、在弹出的对话框里输入拉伸深度为0.02,拉伸方向:翻转。点击“确定”。 10、在模型树的部件里,选择圆孔部件。右击,编辑。将内孔直径改为0.012.。确定。

创建润滑孔 1、进入草图模块。创建名为hole的草图。如右图所示。单击“继续”。 2、单击做一个直径为0.012的圆。单击鼠标中键。进入部件模块。 3、选择主菜单栏的工具→基准。对话框选择格式如下图所示。 选择半圆形边。参数设为0.25。。单击中键,点就建好了。软件提示选择一个轴。那么,我们就创建一个基准轴。如上图右侧所示。选择刚刚建好的那一点以及圆孔的中心,过这两点创建一个轴。再在基准处点击如下图所示,选择刚刚建好的点和轴,那么面也就建好了。

4、点击,视图左下角的显示区显示,选择上一步中创建的基准面,再选一个边。如图所示。进入绘图区。 6、导入之前绘制的小润滑孔hole。利用将孔移植所需位置。单击中键。选择正确的翻 转方向。对话框按右下图设置。确定。 7、将部件的名称改成hinge-hole,并复制一个命名为hinge-solid。 将hinge-solid的模型树张开,删除其下的特征,即该部件不带孔。 8、创建第三个部件:刚体销。 点击创建部件按钮,命名为pin,解析刚体,旋转壳。具体见下图所示。单击“继 续”,在出现的旋转轴右侧画一条垂直向下的直线。用将该直线的长度改为0.06,与旋转轴的距离为0.012,点击确定,界面出现旋转之后的销。

abaqus6.12-典型实例分析

1.应用背景概述 随着科学技术的发展,汽车已经成为人们生活中必不可少的交通工具。但当今由于交通事故造成的损失日益剧增,研究汽车的碰撞安全性能,提高其耐撞性成为各国汽车行业研究的重要课题。目前国内外许多著名大学、研究机构以及汽车生产厂商都在大力研究节省成本的汽车安全检测方法,而汽车碰撞理论以及模拟技术随之迅速发展,其中运用有限元方法来研究车辆碰撞模拟得到了相当的重视。而本案例就是取材于汽车碰撞模拟分析中的一个小案例―――保险杠撞击刚性墙。 2.问题描述 该案例选取的几何模型是通过导入已有的*.IGS文件来生成的(已经通过Solidworks软件建好模型的),共包括刚性墙(PART-wall)、保险杠(PART-bumper)、平板(PART-plane)以及横梁(PART-rail)四个部件,该分析案例的关注要点就是主要吸能部件(保险杠)的变形模拟,即发生车体碰撞时其是否能够对车体有足够的保护能力?这里根据具体车体模型建立了保险杠撞击刚性墙的有限元分析模型,为了节省计算资源和时间成本这里也对保险杠的对称模型进行了简化,详细的撞击模型请参照图1所示,撞击时保险杠分析模型以2000mm/s的速度撞击刚性墙,其中分析模型中的保险杠与平板之间、平板与横梁之间不定义接触,采用焊接进行连接,对于保险杠和刚性墙之间的接触采用接触对算法来定义。

1.横梁(rail) 2.平板(plane) 3.保险杠(bumper) 4.刚性墙(wall) 图2.1 碰撞模型的SolidWorks图 为了使模拟结果尽可能真实,通过查阅相关资料,定义了在碰撞过程中相关的数据以及各部件的材料属性。其中,刚性墙的材料密度为7.83×10-9,弹性模量为2.07×105,泊松比为0.28;保险杠、平板以及横梁的材料密度为7.83×10-9,弹性模量为2.07×105,泊松比为0.28,塑形应力-应变数据如表2.1所示。 表2.1 应力-应变数据表 应力210 300 314 325 390 438 505 527 应变0.0000 0.0309 0.0409 0.0500 0.1510 0.3010 0.7010 0.9010 注:本例中的单位制为:ton,mm,s。 3.案例详细求解过程 本案例使用软件为版本为abaqus6.12,各详细截图及分析以该版本为准。3.1 创建部件 (1)启动ABAQUS/CAE,创建一个新的模型数据库,重命名为The crash simulation,保存模型为The crash simulation.cae。 (2)通过导入已有的*.IGS文件来创建各个部件,在主菜单中执行【File】→【Import】→【Part】命令,选择刚刚创建保存的的bumper_asm.igs文件,弹

ABAQUS子程序USDFLD

Abaqus/CAE User's Manual 12.8.5 Defining field variables at a material point (在一个材料点定义场变量) In Abaqus/Standard you can introduce dependence on solution variables with user subroutine USDFLD. This subroutine allows you to define field variables at a material point as functions of time, of any of the available material point quantities listed in “Abaqus/Standard output variable identifiers,” Section 4.2.1 of the Abaqus Analysis User's Manual, and of material directions. Material properties defined as functions of these field variables may, thus, be dependent on the solution. User subroutine USDFLD is called at each point for which the material definition includes a reference to the user subroutine. (在ABAQUS里面,你能够用子程序USDFLD来求解变量。USDFLD允许你将一个材料点上的场变量定义为时间函数,能够使用到的材料点在用户使用手册4.2.1节中“abaqus输出变量的标识码”中被提及到。材料的特性被定义作为场变量的函数,因此依赖于求解方法。) (在每个被定义材料性能的点USDFLD能够被调用) To include a reference to user subroutine USDFLD in a material definition: 1.From the menu bar in the Edit Material dialog box, select General User Defined Field. (For information on displaying the Edit Material dialog box, see “Creating or editing a material,” Section 12.7.1.) 2.Click OK to close the Edit Material dialog box. Alternatively, you can select another material behavior to define from the menus in the Edit Material dialog box (see “Browsing and modifying material behaviors,” Section 12.7.2, for more information). Abaqus/CAE User's Manual (子程序USDFLD在材料中的定义过程可参考下面:

Abaqus扩展有限元(XFEM)例子(裂缝发展)

Abaqus扩展有限元(XFEM)例子(裂缝发展) part模块中的操作: 1. 生成一个新的part,取名为plate,本part选取3D deformable solid extrusion类型(如图1) 2.通过Rectangle工具画出一长3,高6的矩形。考虑使用工具栏add-dimension和edit dimension来画出精确长度的模型。强烈建议此矩形的左上角坐标为(0,3),右下角坐标为(3,-3)(如图2) 3. 完成后拉伸此矩形,深度为1.(如图3) 4. 生成一个新的part,取名为crack,本part选取3D deformable shell extrusion类型(如图4)

5.生成一条线,此线的左端点坐标为(0,0.08),右端点坐标为(1.5,0.08) 6 . 完成后拉伸此线,深度为1.(如图6) 7.保存此模型为XFEMtutor(如图7),以后经常保存模型,不再累述。 8. 在part Plate中分别创建4个集合,分别为:all,bottom,top和fixZ,各部分的内容如图

8~11所示 Material模块中的操作: 1 创建材料elsa,其弹性参数为E=210GPa,泊松比为0.3(如图12) 2 最大主应力失效准则作为损伤起始的判据,最大主应力为84.4MPa(如图13)

3.损伤演化选取基于能量的、线性软化的、混合模式的指数损伤演化规律,有关参数为G1C= G2C= G3C=42200N/m,a=1.(如图14) 4.创建一个Solid Homogeneous 的section,名为solid(如图15),此section与材料elsa相

abaqus材料子程序

各向同性材料损伤本构模型 SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, + RPL,DDSDDT,DRPLDE,DRPLDT, + STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, + NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, + CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) INCLUDE 'ABA_PARAM.INC' CHARACTER*80 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV), + DDSDDE(NTENS,NTENS),DDSDDT(NTENS), + DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), + TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS), + COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3) DIMENSION STRANT(6),TSTRANT(4),PT(1) DIMENSION OLD_STRESS(6) DIMENSION DOLD_STRESS(6),D_STRESS(6) DIMENSION C(6,6),CD(6,6),DSTRESS(6),BSTRESS(6),ROOT(3), + DFMNDE(6),DDMDE(6),DCDDM(6,6),ATEMP1(6), ATEMP2(6) PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,FOUR=4.D0,HALF = 0.5D0) C start C IF (NPROPS.LT.2) THEN C WRITE(7,*) '** ERROR: UMAT REQUIRES *NPROPS=2' C STOP C EN D IF E11 =PROPS(1) V12 =PROPS(2) G12 =PROPS(1)/TWO/(ONE+PROPS(2)) C Critical values of stresses XT=PROPS(3) XC=PROPS(4) XS=PROPS(5) GX=PROPS(6) !Fracture energy in matrix ETA=0.001 C Current strain DO I = 1, NTENS STRANT(I) = STRAN(I) + DSTRAN(I) END DO C Stiffness DO I = 1, 6 DO J = 1, 6 C(I,J)=ZERO END DO END DO ATEMP = (1+V12)*(1-TWO*V12) C(1,1) = E11*(1-V12)/ATEMP C(2,2) = E11*(1-V12)/ATEMP C(3,3) = E11*(1-V12)/ATEMP C(1,2) = E11*V12/ATEMP

相关主题
相关文档 最新文档