如何將三維彈塑性本構應用于平面應力問題中
瀏覽:2563 評論:3 收藏:13
1 本構理論
本文講解如何將三維的率無關彈塑性理論應用到平面應力問題中。對于平面應變和軸對稱問題,由于是相應的應變分量為0,因為可以直接使用三維的本構,只需將相應的應變分量設為0作為本構的輸入即可。然后,對于平面應力問題,是相應的應力分量為0,由于本構是由應變驅動求得對應的應力,相應應力分量為0相當于對系統施加了相應的約束,因此三維的本構理論不可直接應用于平面應力問題中,需要將相應的約束考慮其中進行求解。
1.1 平面應力理論
對于線彈性情況,由三維本構方程推導平面應力方程如下:

1.2 應力更新算法
采用一種嵌套迭代的方法進行應力更新。我們將平面外應變仍然作為本構的輸入,此時可調用三維的本構方程,得到對應的應力。如果得到的平面外應力不為0,則使用牛頓迭代法對平面外應變進行更新,持續此過程,直至滿足平面應力假設。算法流程如下:

1.3 一致性切線剛度矩陣

2 UMAT代碼
include "plastic_iso_pack.f90"
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)
use plastic_iso_pack
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)
!*******************************************************************************
! 材料參數
integer :: n_pt ! 硬化曲線的數據點個數
real(8) :: hard_data(int((nprops-2)/2),2) ! 硬化曲線的數據點表格
real(8) :: E,nu
real(8) :: mu,kappa
! 狀態變量
real(8) :: statev_dummy(8)
! 調用三維塑性理論
real(8) :: strain_n0(6)
real(8) :: strain_inc(6)
real(8) :: stress_n1(6)
real(8) :: ddsdde_n1(6,6)
! 平面應力循環
real(8) :: strain_33
real(8) :: stress_33
real(8) :: jac
integer :: i,j
real(8),parameter :: ITER_TOL = 0.1**12
integer,parameter :: ITER_MAX = 100
! 計算一致性切線剛度模量所需變量
real(8) :: D11(3,3)
real(8) :: D12(3)
real(8) :: D21(3)
real(8) :: D1221(3,3)
real(8) :: D22
! 從props數組中讀取材料參數
n_pt = int((nprops-2)/2)
E = props(1)
nu = props(2)
j=3
do i = 1, n_pt
hard_data(i,1) = props(j)
hard_data(i,2) = props(j+1)
j = j + 2
enddo
! 更新應力,狀態變量以及一致性切線剛度模量
mu = E / (1.0 + nu) / 2.0
kappa = E / (1.0 - 2.0*nu) / 3.0
! 調用三維塑性本構
strain_33 = statev(9)
strain_n0(1:6) = 0.0d0
strain_n0(1:2) = stran(1:2) ! 11,22
strain_n0(3) = strain_33
strain_n0(4) = stran(3) ! 12
strain_inc(1:6) = 0.0d0
strain_inc(1:2) = dstran(1:2) ! 11,22
strain_inc(4) = dstran(3) ! 12
! 平面應力循環
do i=1,ITER_MAX
statev_dummy(1:8) = statev(1:8)
! resume stress
stress_n1(1:2) = stress(1:2)
stress_n1(4) = stress(3)
call plastic_iso_umat(mu,kappa, n_pt,hard_data, strain_n0,strain_inc, stress_n1,statev_dummy,ddsdde_n1)
stress_33 = stress_n1(3)
if (abs(stress_33) < ITER_TOL) then
exit
endif
jac = ddsdde_n1(3,3)
strain_33 = strain_33 - stress_33 / jac
strain_n0(3) = strain_33
stress_n1(3) = stress_33
enddo
! 更新應力
stress(1:2) = stress_n1(1:2)
stress(3) = stress_n1(4)
! 計算一致性切線剛度模量
D11(1:2,1:2) = ddsdde_n1(1:2,1:2)
D11(1,3) = ddsdde_n1(1,4)
D11(3,1) = D11(1,3)
D11(2,3) = ddsdde_n1(2,4)
D11(3,2) = D11(2,3)
D11(3,3) = ddsdde_n1(4,4)
D12(1) = ddsdde_n1(1,3)
D12(2) = ddsdde_n1(2,3)
D12(3) = ddsdde_n1(4,3)
D21(1) = ddsdde_n1(3,1)
D21(2) = ddsdde_n1(3,2)
D21(3) = ddsdde_n1(3,4)
do i=1,3
do j=1,3
D1221(i,j) = D12(i) * D21(j)
enddo
enddo
D22 = ddsdde_n1(3,3)
ddsdde = D11 - D1221 / D22
! 更新狀態變量
statev(1:8) = statev_dummy(1:8)
statev(9) = strain_33
return
end subroutine UMAT
其中plastic_iso_umat即為三維的彈塑性本構,見
3 測試
3.1 帶孔板單軸拉伸
von Mise 應力的對比結果如下(左邊為Abaqus內置塑性本構計算結果,右邊為umat計算結果)

等效塑性應變的對比結果如下:

可見二者的計算結果完全一致。
4 參考書籍
Neto, E. A. de Souza, D. R. J. Owen, and D. Peric. , 'Computational Methods for Plasticity: Theory and Applications'
技術鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP
4
3
13




















