本节摘要:应力越过弹性极限后,材料进入塑性:卸载留下永久变形。本节讲清塑性理论的三大组件——屈服准则(何时屈服)、流动法则(往哪流)、硬化准则(如何变强),并用 Mises 与 Tresca 两把尺子对典型应力状态做可复算的判读。
弹性世界里应力应变一一对应,卸载原路返回;塑性世界打破了这个一一对应——应变不仅取决于当前应力,还取决于走过的路径。拉伸试件越过屈服后卸载,应力沿斜率近似等于 E 的直线回落,但应变只回到残余值:那部分塑性应变永久留存。本构关系从"状态方程"变成了"路径积分",这就是塑性计算远比弹性繁琐的根源。
塑性理论要回答三问,缺一不可。何时屈服:给定六分量应力状态,判它是否越线——答案由屈服准则给出。往哪流:屈服后塑性应变增量的方向——由流动法则给出。如何变强:继续加载,屈服面怎么扩大或移动——由硬化准则给出。三问合成一套"流动理论",是第九章有限元非线性分析的引擎。
金属的拉伸与压缩屈服强度几乎相同,且静水压强几乎不引起屈服(深海里的钢块不会被压"屈服",只会被压小体积)。据此,屈服由偏应力主导,两大经典准则应运而生。
Tresca 准则(最大剪应力):最大主应力与最小主应力之差达到 2 倍单轴屈服应力即屈服。几何上是主应力空间里的六棱柱。判读简单,偏保守,手算常用。
Mises 准则(畸变能):偏应力第二不变量 J2 达到临界值即屈服,等效应力 σe 等于根号下 3J2,与单轴屈服应力比较。几何上是圆柱面,光滑连续,实验吻合度略优,数值计算(第九章有限元)默认用它。平面应力下两者只差约百分之十五——对大多数工程判读,这个差距不改变结论。

给出四个典型工况,用两把尺子同时判读,材料取 Q235(屈服应力 235 兆帕)。
# Mises 与 Tresca 屈服判读 import math sigma_y = 235.0 # 屈服应力 MPa def judge(name, s1, s2, s3=0.0): s = sorted([s1, s2, s3], reverse=True) # Mises 等效应力 se = math.sqrt(0.5 * ((s[0]-s[1])**2 + (s[1]-s[2])**2 + (s[2]-s[0])**2)) # Tresca 最大剪应力之半换算 tr = s[0] - s[2] f_m = "屈服" if se >= sigma_y else "弹性" f_t = "屈服" if tr >= sigma_y else "弹性" print(f"{name}: Mises 等效应力 {se:6.1f} MPa {f_m};" f"Tresca 主应力差 {tr:6.1f} MPa {f_t}") judge("单向拉伸 200 MPa", 200, 0, 0) judge("单向拉伸 250 MPa", 250, 0, 0) judge("等双轴等压 300 MPa", -300, -300, -300) judge("纯剪 140 MPa", 140, -140, 0)
单向拉伸 200 MPa: Mises 等效应力 200.0 MPa 弹性;Tresca 主应力差 200.0 MPa 弹性 单向拉伸 250 MPa: Mises 等效应力 250.0 MPa 屈服;Tresca 主应力差 250.0 MPa 屈服 等双轴等压 300 MPa: Mises 等效应力 0.0 MPa 弹性;Tresca 主应力差 0.0 MPa 弹性 纯剪 140 MPa: Mises 等效应力 242.5 MPa 屈服;Tresca 主应力差 280.0 MPa 屈服
判读四行记录:单向 250 兆帕,两把尺子一致判屈服,这正是屈服应力的定义工况;三向等压 300 兆帕,等效应力为零——静水压再深金属也不屈服,偏应力主导论的直接证据;纯剪 140 兆帕时 Mises 已判屈服(242.5 恰约等于 235 乘 1.032,接近纯剪屈服理论值 235 除以根号 3 约等于 136),Tresca 却要到 235 的主应力差即纯剪约 117.5 兆帕才屈服——注意两把尺子在纯剪下的排名相反,Tresca 更保守的说法只在部分工况成立,判读必须代入实际应力状态。
屈服后塑性应变增量方向的规则叫流动法则,Mises 塑性采用关联流动:塑性应变增量垂直于屈服面。物理直观是"体积不变"——金属塑性变形几乎不改变体积,泊松比等效逼近零点五。冲压件变薄、挤压件出飞边,都是体积守恒在几何上的兑现。
硬化准则回答"继续加载会怎样"。各向同性硬化:屈服面整体均匀扩大,单轴曲线表现为屈服应力随塑性应变升高,卸载再反向加载时,反向屈服点也随之前移——模型简单,适合单调加载。随动硬化:屈服面不扩大只平移,反向加载时屈服提前(包辛格效应)——适合循环加载,低周疲劳分析(第八章)的标配。选错硬化准则,循环计算会在几个循环后发散或失真。
# 双线性随动硬化:一次拉-压循环的应力应变响应 E = 200e9 # 弹性模量 Pa Et = 2e9 # 硬化模量(切线)Pa sigma_y0 = 235e6 # 初始屈服应力 Pa def stress_strain(strain_path): s = 0.0 back = 0.0 # 屈服面中心(随动硬化背应力) prev_e = 0.0 out = [] for e in strain_path: de = e - prev_e prev_e = e trial = s + E * de if trial > back + sigma_y0: # 正向屈服 d_ep = (trial - (back + sigma_y0)) / (E + Et) s = back + sigma_y0 + Et * d_ep back += Et * d_ep elif trial < back - sigma_y0: # 反向屈服 d_ep = (trial - (back - sigma_y0)) / (E + Et) s = back - sigma_y0 + Et * d_ep back += Et * d_ep else: s = trial out.append((e, s)) return out # 拉到 0.004,卸载并反向压到 -0.004,再卸回零 path = ([0.004*i/20 for i in range(21)] + [0.004 - 0.008*i/40 for i in range(1, 41)] + [-0.004 + 0.004*i/20 for i in range(1, 21)]) res = stress_strain(path) for i in (0, 8, 20, 30, 40, 60, 80): e, s = res[i] print(f"应变 {e:+.4f}:应力 {s/1e6:+7.1f} MPa")
应变 +0.0000:应力 +0.0 MPa 应变 +0.0016:应力 +235.8 MPa 应变 +0.0040:应力 +240.6 MPa 应变 +0.0020:应力 -159.4 MPa 应变 +0.0000:应力 -232.7 MPa 应变 -0.0040:应力 -240.6 MPa 应变 +0.0000:应力 +232.7 MPa
逐行判读这份循环记录:拉到应变 0.0016 时越过初始屈服(235.8 兆帕),此后沿硬化模量缓升到峰值 240.6 兆帕(硬化);卸载段先沿斜率 E 弹性回落,到应变为正的 0.0020 时应力已翻负——还没回到零应变就提前进入了反向屈服(流动与包辛格效应);反向压满后卸回零,残余应力 +232.7 兆帕,塑性应变清晰留痕。若把随动硬化换成各向同性硬化,反向屈服会推迟到 -235 兆帕附近,滞回环形状完全不同——循环荷载下硬化准则的选择不是细节,是结论。这正是第八章疲劳计算对材料卡片挑剔的原因。
档案三套齐全。下一章转到几何侧:变形怎么测量、怎么判读。