VB二次开发ANSYS:Duncan-Chang本构模型算法介绍

所谓的本构模型是指材料的应力应变关系,比如遵循虎克定律的线弹性应力应变关系就是一种常用的本构模型。ANSYS为用户提供了许多本构模型,但在某些特殊领域,现有的本构模型却很少,完全不能满足分析要求。为了解决这个问题,ANSYS为用户提供了usermat等UPFs用户子程序,这些用户子程序拥有强大的二次开发功能,可以实现各种复杂本构模型的开发。但是,对于一些简单的本构模型,用户也可以利用APDL语言进行开发,比如Duncan-Chang本构模型。


Duncan-Chang本构模型介绍

对于应力应变关系复杂的材料而言,变形主要是由颗粒间位置的变化引起的,不同应力水平下相同的应力增量引起的应变增量并不相同,从而表现出复杂的非线性特征。为了反映材料特性,人们提出了许多本构模型,以期更好的反映材料的应力应变规律。

Duncan-Chang本构模型主要优点是可以利用常规三轴固结排水剪试验确定模型参数,因此在工程实践中得到了广泛应用。Duncan-Chang本构模型是非线性弹性模型,弹性矩阵中的弹性系数不再是常量,而是随应力状态而改变。由于不考虑塑性变形,所以一般只适用于载荷不大的情况(即不太接近破坏的情况)。Duncan-Chang模型有E-V和E-B模型两类。

当然,该模型也存在一些缺陷,如无法反应不同应力路径的影响、加卸载判断不明确等,不可避免造成了计算分析误差,长期以来许多学者试图来对其进行修正。有限元软件通常采用传统塑性理论的应力符号,以拉应力为正,下面对Duncan-Chang模型采用有限元软件的应力形式进行说明。



Duncan-Chang本构模型算法

该模型是Duncan和Chang根据Konder关于岩土材料的三轴试验的偏应力与轴向应变近似呈双曲线的假定而提出的。根据Konder的建对应变硬化的模型,其试验的应力应变可用双曲线关系来近似地描述,如图3-1所示,即在不变时:基于VB的ANSYS二次开发之Duncan-Chang本构模型算法介绍的图1

1.png

式中a和b是试验常数。

上式也可以写成

2.png

基于VB的ANSYS二次开发之Duncan-Chang本构模型算法介绍的图4其斜率为b,截距为a。

5.png

6.png

基于VB的ANSYS二次开发之Duncan-Chang本构模型算法介绍的图7Duncan和Chang利用上述关系推导出了弹性模量公式:

7.png

可见增量虎克定律中所用的弹性模量实际是常规试验曲线的切线斜率。这样的模量叫切线弹性模量,可用基于VB的ANSYS二次开发之Duncan-Chang本构模型算法介绍的图9来表示,

8.png



生成并调用宏文件

在编程实现本构模型的过程中,需要重复执行某一部分,用户可以将该部分独立编写后放入指定位置,由APDL命令来调用,也可以通过*CREATE命令创建宏文件,并用*END命令结束宏的创建。利用*USE命令调用宏文件,并向宏文件传递参数:

*USE,Name,ARG1,ARG2,ARG3,ARG4,ARG5,ARG6,ARG7,ARG8,ARG9,AR10,AR11,AR12,AR13,AR14,AR15,AR16,AR17,AR18

其中,Name是宏文件名,ARGI到AR18是宏文件用到的参数值。我们将用*CREATE命令创建名为Duncan-Chang的宏文件,其中包含9个参数,使用*USE命令对模型内的每个单元反复调用Duncan-Chang宏文件,不断计算得到新的切线模量。




APDL实现过程

Duncan-Chang E-v模型是一种建立在增量广义虎克定律基础上的非线性变弹性模型,是通过不断改变其切线弹性模量来实现非线性的,完全可以通过ANSYS APDL进行编程分析。计算过程中主要通过如下方式来实现:取初始材料参数,施加第一步载荷,计算并读取单元应力,根据单元的当前应力调用Duncan-Chang模型宏命令计算新的材料参数(主要是材料的弹性模量和泊松比),代替初始材料参数;施加第二步载荷,计算并读取应力增量,根据单元的当前应力调用Duncan-Chang模型宏命令计算新的材料参数,以此类推。下面给出了 Duncan-Chang E-v模型创建宏文件,并用来模拟压缩试验的APDL详细代码(\chp6\Duncan-E-v.inp):

!(1)定义单元类型:

/PREP7

ET,1,185

!(2)设置材料属性

MPTEMP,,,,,,,,

MPTEMP,1,0

MPDATA,EX,1,,2e11  

MPDATA,PRXY,1,,0.3

MPTEMP,,,,,,,,

MPTEMP,1,0

MPDATA,DENS,1,,7800

!3.建立几何模型

!(1)显示工作平面

WPSYYLE,,,,,,,,1

!(2)建立模型

BLOCK,0,10,0,20,0,2,

/REPLO

wpoff,3,5,0

/REPLO

CYLIND,1, ,0,10,0,360,

/REPLO

wpoff,0,10,0

CYLIND,1, ,0,10,0,360,

wpoff,0,-5,0

CYLIND,1, ,0,10,0,360,

wpoff,4,0,0

CYLIND,1, ,0,10,0,360,

wpoff,0,5,0

CYLIND,1, ,0,10,0,360,

wpoff,0,-10,0  

CYLIND,1, ,0,10,0,360,

!(3)体布尔操作

FLST,3,6,6,ORDE,2  

FITEM,3,2  

FITEM,3,-7

VSBV,       1,P51X

!4.生成有限元模型

/REPLO

FINISH

/AUX12

FINISH

/PREP7

MSHAPE,1,3D

MSHKEY,0

CM,_Y,VOLU

VSEL, , , ,       8

CM,_Y1,VOLU

CHKMSH,'VOLU'  

CMSEL,S,_Y  

VMESH,_Y1    

CMDELE,_Y  

CMDELE,_Y1

CMDELE,_Y2

!5.加载以及求解

!(1)加载

//REPLO

VPLOT  

FINISH

/SOL

FLST,2,1,5,ORDE,1  

FITEM,2,3  

/GO

DA,P51X,ALL,0

/REPLO

FLST,2,1,4,ORDE,1  

FITEM,2,7  

/GO

FLST,2,1,5,ORDE,1  

FITEM,2,4  

/GO

!*

SFA,P51X,1,PRES,1000

!*

/STATUS,SOLU

SOLVE

(2) 创建Duncan-Chang计算

!***********

*dim,Str_max,array,120

*dim,S_max,ARRAY,120

*create,Duncan-Chang.mac     !创建Duncan-Chang计算的宏命令

*afun,deg                   !角度单位用度,不是弧度

*set,Pa,le5

*set,sigm1,-ArrS3(i)       !ArrS3为第三主应力,拉负压正

*set,sigm3,-ArrS3(i)       !ArrS3为第一主应力,拉负压正

     *if,sigm3,LT,0.1*Pa,then

          sigm3=0.1*Pa

     *endif

str=2*(c*cos(Fai)+sigm3*sin(Fai))/(1-sin(Fai))  !破坏时的主应力差

S=(sigml-sigm3)/Slr     !应力水平

*if,S.GT,0.95,then

S=0.95                  !应力水平最大取值

*endif

!判断加卸绫荷,如果(sigml-sigm3)、S均小于历史最大值时视为卸载一再加载过程

*if,Str_max(i),gl,sigml-sigm3,and,S_max(i),gt,S,thcn Et=Kur*Pa*(sigm3/Pa)**n    !卸载模置

*elseif,Str_max(i),gt,sigm1-sigm3,and,S_max(i),gt,S,then Ei=k*Pa*(sigm3/Pa)**n

Et=Ei*(l-Rf*S)**2          !加载情况的切线模量

S_max(i)=S                 !保存历史最大应力水平

*elseif,Str_max(i),le,sigml-sigm3,and,S_max(i),gt,S,then Ei=k*Pa*(sigm3/Pa)**n

Et=Ei*(1-Rf*S)**2          !加载情况的切线模量

Str_max(i)=sigm1-sigm3     !保存历史最大应力

*elseif,Str_max(i),gt,sigm1-sigm3,and,S_max(i),gt,S,then Ei=k*Pa*(sigm3/Pa)**n

Et=Ei*(l-Rf*S)**2          !加载情况的切线模量

Str_max(i)=sigm1-sigm3     !保存历史最大主应力差

S_max(i)=S                 !保存历史最大应力水平

*endif

Ei=k*Pa*(sigm3/Pa)**n

A=(sigm 1 -sigm3)*D/(Ei*( 1 -Rf*S))

Mu=(G-F*loglO(sigm3/Pa)/(l-A)**2       !计算泊松比

*if,Mu,GE,0.49,then

Mu=0.49

*endif

Mp,ex,I,Et           !修改单元i的Et

Mp,nuxy,I,Mu

Mpchg,i,i           !修改i单元的材料属性,mpchg,mat,elem

!

*vwrite,Et          !格式化输出Et,用于观察中间计算结果

(E13.5)

*end                 !结束创建宏文件

!*****************************************

*dim ArrSl,array,120

*dim ArrS3,array,120

*do,j,2,9              

!取出计算结果,修改弹性模*

/post1

etable,etabs 1,s,1      !取各单元第一主应力

etable,etabs 3,s,3      !取各单元第一主应力

   *do,num,1,120       !num为单元编号

   *get,Arrs1(num),elem,num,etab,etabs1  !将单元结果存入数组

   *get,Arrs3(num),elem,num,etab,etabs3

*enddo

/prep7

*do,i,1,120,1           !各单元依次计算

c=130E3

Fai=31.2

Rf=0.9

 k=538

n=0.35

Kur=645

G-0.33

F=0.033

 D=3.2

!c一粘聚力,Fai—内摩擦角,Rf—破坏比,k—初始切线模最数,

!n—指数,Mu-泊松比, Kur—考虑卸载再加载时的模量数,G、F、D一参数

*use,Duncan-Chang.mac,c,Fai,Rf,k,n,Kur,G,F,D!调用Duncan-Chang宏文件

*enddo

!*******************************************

/solu

Time,j             !定义第j载荷步

Nsubst,20,100,5     !指定子步数

Sfl,3,pres,3e5+le5*j      !施加载荷,增量100kPa,最终上表面压力为1.2MPa

Outres,all,all

Solve

*enddo

基于VB的ANSYS二次开发之Duncan-Chang本构模型算法介绍的图12


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空