前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >双线性弹塑性模型(三)

双线性弹塑性模型(三)

作者头像
fem178
发布2021-07-01 10:27:52
2.7K0
发布2021-07-01 10:27:52
举报
文章被收录于专栏:数值分析与有限元编程

本节用Python来实现基于随动硬化模型的当前应力计算。

[算例] 一根各向同性杆,一端固定,另一端施加轴向力做拉伸试验,荷载分级来加。某一时刻应力

\sigma^{n}=200MPa

,塑性应变

\epsilon_p^n = 1E-4

,

\alpha^{n}=2.5MPa

.当应变增量

\Delta \epsilon = -0.003

,计算应力和塑性应变。

E=200GPa,H=25GPa,\sigma_Y^0=250MPa

代码语言:javascript
复制
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)

手算结果在前一篇

双线性弹塑性模型(二)

在一维拉伸试验中,一旦材料变形超过弹性极限,它就显示出复杂的应力-应变关系。例如,金属表明初始应力随应变而增大。当材料达到弹性极限(也称屈服应力)后,材料开始变形塑性的,在塑性变形的第一阶段,应力进一步增加应变比,但坡度(应变硬化)要小得多,直到达到极限强度。在这之后,应力开始逐渐减小(应变软化),直到材料断裂。此外,如果材料塑性后施加的载荷降低(卸载),则不遵循先前的应力-应变曲线;材料立即变为弹性。如果施加循环荷载,材料的行为就会变得越来越复杂。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档