力学

塑性力学:屈服准则、流动法则与径向回映算法

引言

金属在应力超过弹性极限后产生不可逆的永久变形,这一阶段的力学行为由塑性力学描述。与弹性力学不同,塑性变形具有路径相关性:最终状态取决于加载历史,本构关系必须以增量(率)形式书写,并引入内变量记录材料的历史记忆。塑性理论的三大支柱是:判断材料何时进入塑性的屈服准则、确定塑性应变增量方向与大小的流动法则、以及描述屈服面随变形演化的硬化定律。本文梳理这三大要素的数学结构,重点介绍 J2 塑性(von Mises 屈服、关联流动、各向同性硬化)及其在有限元中的标准数值积分算法——径向回映法。

单轴试验与理想化模型

低碳钢的单轴拉伸曲线经历线弹性、屈服平台、应变硬化与颈缩四个阶段。为便于分析,工程上将其理想化为两类模型:理想弹塑性模型假设屈服后应力恒等于 $\sigma_y$,适用于变形量不大且结构以限制承载能力为目标的问题;线性硬化弹塑性模型用直线段近似硬化段,切线模量 $E_t$ 远小于弹性模量 $E$。塑性加载与弹性卸载的本质区别在于:卸载沿斜率 $E$ 的直线进行,总应变扣除弹性应变后残余塑性应变 $\varepsilon^p$,即 $\varepsilon = \varepsilon^e + \varepsilon^p$ 的应变分解假设是小变形塑性理论的出发点。

屈服准则

多轴应力状态下,需要一个标量函数 $f(\sigma_{ij}) = 0$ 判定屈服的起始。由于金属屈服主要由形状改变驱动而与静水压力几乎无关,屈服函数通常用偏应力 $\boldsymbol{s} = \boldsymbol{\sigma} - \frac{1}{3}\mathrm{tr}(\boldsymbol{\sigma}),\boldsymbol{I}$ 的不变量表示,最常用第二不变量 $J_2 = \frac{1}{2}s_{ij}s_{ij}$。von Mises 准则为:

$$f = \sqrt{3J_2} - \sigma_y = \sigma_{\mathrm{eq}} - \sigma_y = 0, \qquad \sigma_{\mathrm{eq}} = \sqrt{\tfrac{3}{2}s_{ij}s_{ij}}$$

Tresca 准则则认为屈服由最大剪应力控制:$\max|\sigma_1 - \sigma_2, \sigma_2 - \sigma_3, \sigma_3 - \sigma_1| = \sigma_y$。两者在主应力空间中分别对应圆截面柱面与内接六边形柱面,差异在纯剪状态最大:von Mises 给出剪切屈服强度 $\tau_y = \sigma_y/\sqrt{3} \approx 0.577,\sigma_y$,Tresca 给出 $0.5,\sigma_y$,相差约 15%。

准则 数学表达 物理诠释 纯剪屈服 $\tau_y$ 特点
von Mises $\sqrt{3J_2} = \sigma_y$ 畸变能达到临界值 $0.577,\sigma_y$ 光滑、可微,便于数值计算
Tresca $\sigma_{\max} - \sigma_{\min} = \sigma_y$ 最大剪应力达临界值 $0.5,\sigma_y$ 分段线性、偏保守,角点不可微

对多数韧性金属,von Mises 准则与试验吻合更好,是金属塑性有限元分析的默认选择;Tresca 因形式简单常用于解析推导与极限分析。

流动法则与硬化定律

屈服准则只回答”何时屈服”,塑性应变增量的方向与大小由流动法则给出。关联流动法则假设塑性势面与屈服面重合,塑性应变增量沿屈服面外法线方向(正交性法则):

$$\mathrm{d}\varepsilon_{ij}^p = \mathrm{d}\lambda,\frac{\partial f}{\partial \sigma_{ij}}$$

对 von Mises 准则,$\partial f/\partial \sigma_{ij} = \frac{3s_{ij}}{2\sigma_{\mathrm{eq}}}$,代入即得 Prandtl–Reuss 方程:塑性应变增量与偏应力同向,且 $\mathrm{d}\varepsilon_{kk}^p = 0$,即塑性变形体积不变——这与位错滑移的微观机制一致。乘子 $\mathrm{d}\lambda$ 的大小由一致性条件(持续塑性加载时应力点始终位于屈服面上)确定,加载/卸载的判别由 Kuhn–Tucker 条件统一表述:$\mathrm{d}\lambda \geq 0$,$f \leq 0$,$\mathrm{d}\lambda,f = 0$。硬化定律描述屈服面的演化:各向同性硬化假设屈服面均匀膨胀,$\sigma_y = \sigma_y(\kappa)$,其中等效累积塑性应变 $\kappa = \int\sqrt{\frac{2}{3},\mathrm{d}\varepsilon_{ij}^p\mathrm{d}\varepsilon_{ij}^p},\mathrm{d}t$ 是记录变形历史的内变量;随动硬化(如 Armstrong–Frederick 模型)假设屈服面平移,用于描述循环加载下的包辛格效应。

数值方法与实现:径向回映算法

塑性本构的率形式需在有限元每个积分点上做数值积分。应变驱动的径向回映(return mapping)算法分两步:弹性预测——冻结内变量,假设增量步完全弹性得到试探应力;塑性修正——若试探应力越出屈服面,则沿屈服面法向”回映”到更新后的屈服面上。对 J2 塑性与线性各向同性硬化,回映方向恰为试探偏应力方向(”径向”由此得名),塑性乘子有闭式解 $\Delta\gamma = f_{\mathrm{trial}}/(3\mu + H)$。下面的程序实现完整的三维径向回映,并在单轴应力路径(横向应变由 $\sigma_{22} = \sigma_{33} = 0$ 经 Newton 迭代确定)下复现双线性应力-应变曲线:

import numpy as np

# 材料参数:低碳钢
E, nu   = 210e3, 0.30          # MPa
sig_y0  = 235.0                # 初始屈服应力 MPa
H       = 1200.0               # 线性各向同性硬化模量 MPa
mu = E / (2 * (1 + nu))        # 剪切模量
I = np.eye(3)

def stress_update(eps, ep, kappa):
    """给定总应变与内变量,返回应力及更新后的内变量(J2 径向回映)"""
    p   = E / (1 - 2 * nu) * np.trace(eps) / 3     # 静水压力 K·tr(ε)
    e   = eps - np.trace(eps) / 3.0 * I            # 偏应变
    s_t = 2 * mu * (e - ep)                        # 弹性预测偏应力
    q_t = np.sqrt(1.5 * np.sum(s_t * s_t))         # von Mises 等效应力(试探)
    f_t = q_t - (sig_y0 + H * kappa)
    if f_t <= 0.0:                                 # 弹性步
        return p * I + s_t, ep, kappa
    dg = f_t / (3 * mu + H)                        # 塑性乘子增量(闭式解)
    n  = 1.5 * s_t / q_t                           # 回映方向(屈服面法向)
    return p * I + s_t - 2 * mu * dg * n, ep + dg * n, kappa + dg

# 单轴应力路径:轴向应变递增,横向应变由 σ22=σ33=0 确定
ep, kappa = np.zeros((3, 3)), 0.0
print("   eps11     sigma11 (MPa)     kappa")
for e11 in np.linspace(0.0, 0.01, 11):
    lat = -nu * e11                                # 横向应变初猜
    for _ in range(30):                            # Newton 迭代求 σ22 = 0
        sig, _, _ = stress_update(np.diag([e11, lat, lat]), ep, kappa)
        d = 1e-7
        sig_d, _, _ = stress_update(np.diag([e11, lat + d, lat + d]), ep, kappa)
        lat -= sig[1, 1] / ((sig_d[1, 1] - sig[1, 1]) / d)
        if abs(sig[1, 1]) < 1e-6:
            break
    sig, ep, kappa = stress_update(np.diag([e11, lat, lat]), ep, kappa)
    print(f"{e11:9.5f}  {sig[0,0]:13.2f}  {kappa:11.6f}")

程序输出的应力-应变曲线呈标准双线性:弹性段斜率为 $E = 210$ GPa,$\varepsilon_{11} \approx 1.12\times10^{-3}$ 处进入屈服,塑性段斜率为等效切线模量 $E_t = EH/(E+H) \approx 1193$ MPa,与理论值精确一致。值得注意两点算法细节:一是回映修正只作用于偏应力,静水压力全程保持弹性响应,这正是 J2 理论塑性体积不变假设的直接体现;二是该算法满足离散一致性条件,更新后的应力严格位于更新后的屈服面上,对大步长仍无条件稳定,这正是它成为商用有限元软件金属塑性默认积分方案的原因。

结论与展望

塑性力学以屈服准则、流动法则与硬化定律三要素构建了金属不可逆变形的完整数学框架,Kuhn–Tucker 条件与一致性条件则把加载卸载判别纳入统一体系。von Mises 屈服加关联流动的 J2 理论配合径向回映算法,构成了现代结构非线性有限元分析的基石。进一步的方向包括:描述循环塑性与包辛格效应的随动硬化模型、关联岩土材料的非关联流动法则、率相关黏塑性(如 Johnson–Cook 模型)以及面向复杂加载路径的多机制本构理论。读者可在本文算法框架上替换屈服函数与硬化律,直接推广到这些更复杂的情形。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注