本节用Python来实现基于随动硬化模型的当前应力计算。
[算例]一根各向同性杆,一端固定,另一端施加轴向力做拉伸试验,荷载分级来加。某一时刻应力 ,塑性应变 , .当应变增量 ,计算应力和塑性应变。。
import math
#定义符号函数
def Sgn(x):
if x > 0 :
return 1
elif x < 0 :
return -1
else :
return 0
def KinematicHard1D(MP,deps, stressN,alphaN, epsN):
E = MP[0] #弹性模量
H = MP[1] #塑性模量
Y0 = MP[2] #初始屈服应力
stress_tr = stressN + E*deps
eta_tr = stress_tr - alphaN
f_tr = math.fabs(eta_tr ) - Y0
if f_tr < 0:
stress = stress_tr
alpha = alphaN #alpha不变
ep = epsN #塑性应变不增加,为0
flag = 0 # 处于弹性状态的标志
else:
dep = f_tr / ( E + H )
stress = stress_tr - Sgn(eta_tr) * E * dep
alpha = alphaN + Sgn(eta_tr) * H * dep
ep = epsN + dep
flag = 1 # 处于塑性状态的标志
return stress, alpha, ep, flag
E = 200E3; H = 25E3; sYield = 250
Et = E*H / (E+H)
mp = [E, H, sYield]
#上一步的应力,塑性应变以及alpha值
nS = 200
nep = 1E-4
nA = 2.5
delta_eps = -0.003
Snew, Anew, epnew, flag = KinematicHard1D(mp,delta_eps,nS,nA,nep)
print(Snew, Anew, epnew, flag)
手算结果在前一篇
在一维拉伸试验中,一旦材料变形超过弹性极限,它就显示出复杂的应力-应变关系。例如,金属表明初始应力随应变而增大。当材料达到弹性极限(也称屈服应力)后,材料开始变形塑性的,在塑性变形的第一阶段,应力进一步增加应变比,但坡度(应变硬化)要小得多,直到达到极限强度。在这之后,应力开始逐渐减小(应变软化),直到材料断裂。此外,如果材料塑性后施加的载荷降低(卸载),则不遵循先前的应力-应变曲线;材料立即变为弹性。如果施加循环荷载,材料的行为就会变得越来越复杂。