4. 金属塑性高级专题

在单调加载下,金属塑性通常用等向硬化加Mises屈服面就能描述得不错。但一旦载荷发生反复、方向改变,甚至出现平均应力不为零的循环,等向硬化会给出明显偏保守或偏危险的结论。本节围绕四个层层递进的问题展开:循环塑性下屈服面如何移动、棘轮效应为什么发生、非线性随动硬化如何描述它、记忆表面模型如何补上多轴与循环稳定的短板,最后落到UMAT这一实现入口。

一、从等向硬化到随动硬化:屈服面在应力空间中的运动

先约定参照:应力以拉为正、压为负,Mises等效应力与背应力张量α均按此符号体系定义。等向硬化只改变屈服面半径,圆心固定在原点;随动硬化则保持屈服面大小不变,让圆心随塑性流动平移。循环加载时,反向屈服强度由“当前背应力位置”决定,这正是包辛格效应的来源。

线性随动硬化(A-F模型)用α = C·εp描述背应力随塑性应变线性增长,能给出稳定的滞回环,但无法反映循环软化/硬化和棘轮。非线性随动硬化(Armstrong-Frederick型)引入动态回复项:

dα = (2/3)·C·dε_p − γ·α·dp
dp = |dε_p|(等效塑性应变增量)

其中C控制初始硬化斜率,γ控制背应力饱和速度。当γ较大时,背应力很快趋于饱和值2C/(3γ),滞回环迅速稳定;γ较小时,背应力持续漂移,棘轮应变随之增大。这两个参数是循环塑性标定的核心。

循环塑性屈服面运动与棘轮效应示意(σ-ε 与应力空间) 应力—应变滞回环(拉压循环) ε σ 棘轮应变累积方向 应力空间:屈服面随背应力平移 σ₁ σ₂ 初始屈服面 当前屈服面 α dε_p 屈服面半径不变,圆心随α移动

二、棘轮效应:平均应力下的塑性应变单向累积

棘轮效应指在非对称应力循环(平均应力σm≠0)下,每个循环都会产生一个不可恢复的塑性应变增量,应变随循环数单调累积,最终可能导致结构尺寸超差或疲劳寿命骤降。判断是否出现棘轮,关键看滞回环是否“不闭合”:若每个循环的起点应变持续右移,就是棘轮;若滞回环逐渐闭合,则趋于弹性安定或塑性安定。

影响棘轮速率的主要因素包括:平均应力越大、应力幅越接近屈服、γ越小、C越大,棘轮应变增长越快。工程上常用“棘轮应变率”(每循环塑性应变增量)作为评价指标,例如某压力管道示例中,内压恒定、温度循环产生轴向非对称应力,若每循环棘轮应变率超过1×10⁻⁵,就需重新评估安定性。

三、非线性随动硬化与记忆表面模型

单一非线性随动硬化能描述单轴棘轮,但在多轴比例加载下会高估棘轮,在非比例加载下又可能失真。为此引入记忆表面(Memory Surface)概念:在应力空间中定义一个以原点为中心、半径为Rm的记忆面,记录历史最大等效应力。当当前应力点位于记忆面内部时,硬化参数按较低速率演化;一旦触及或超出记忆面,记忆面扩张,硬化速率提高。这样就把“曾经达到过的最大载荷水平”作为状态变量带入本构,使模型能区分小幅循环与大幅循环。

记忆面模型通常与非线性随动硬化叠加使用,其核心状态量包括:背应力α、记忆面半径Rm、累积塑性应变p。在UMAT中,这些量都需要作为状态变量(SDV)存储并随增量更新。

四、UMAT入门:把本构写进Abaqus

UMAT是Abaqus/Standard提供的用户材料子程序接口,适用于需要自定义本构、且必须提供一致切线刚度(Jacobian)的场景。其基本调用流程为:Abaqus在每个增量步把应变增量DSTRAN、当前应力STRESS、状态变量STATEV等传入UMAT,用户在子程序内完成应力更新和切线刚度DDSDDE计算,再返回给求解器。

一个最小可用的非线性随动硬化UMAT骨架如下(示例参数,非实测):

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
     2 TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,
     4 DROT,PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,
     5 KSTEP,KINC)
      INCLUDE 'ABA_PARAM.INC'
      DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),
     1 DSTRAN(NTENS),PROPS(NPROPS)
C     材料参数:E, nu, sig0, C, gamma
      E  = PROPS(1)
      NU = PROPS(2)
      SIG0 = PROPS(3)
      C  = PROPS(4)
      GAMMA = PROPS(5)
C     读取状态变量:背应力(6个分量) + 等效塑性应变
      DO I=1,6
        ALPHA(I) = STATEV(I)
      END DO
      P = STATEV(7)
C     弹性试探应力
      CALL ELASTIC_STRESS(...)
C     计算等效应力与屈服函数
      SEQ = SQRT(1.5*SDEV:SDEV)
      FYLD = SEQ - (SIG0 + ...)
      IF (FYLD .LE. 0) THEN
C       弹性:DDSDDE为弹性刚度
      ELSE
C       塑性:返回映射,更新ALPHA和P
C       dα = (2/3)*C*dεp - GAMMA*ALPHA*dp
      END IF
C     写回状态变量
      DO I=1,6
        STATEV(I) = ALPHA(I)
      END DO
      STATEV(7) = P
      RETURN
      END

实现时最容易出问题的三个点:一是DDSDDE必须与应力更新算法一致,否则收敛会变差甚至不收敛;二是状态变量编号要与INP中*DEPVAR定义的数量严格对应;三是塑性乘子Δλ的求解要用牛顿迭代并设置合理的容差(如1×10⁻⁸)。

五、简单案例:单轴循环加载下的棘轮验证

以一个单单元模型为例:材料E=210 GPa,ν=0.3,σ0=250 MPa,C=8000 MPa,γ=80。施加应力控制循环:σmax=300 MPa,σmin=-100 MPa,即平均应力100 MPa、应力幅200 MPa,循环20次。预期结果是:前几个循环滞回环不闭合,每循环产生约0.02%的塑性应变增量,随循环数增加棘轮率逐渐减小并趋于稳定。若把γ改为20,棘轮率会明显增大,说明γ对棘轮抑制起关键作用。

验证建议:提取每个循环结束时的等效塑性应变PEEQ,绘制PEEQ-循环数曲线。若曲线斜率单调下降并趋于零,说明模型进入弹性安定;若斜率保持正值,则仍在棘轮。同时检查能量平衡(ALLIE与ALLKE)是否合理,排除数值伪影。
注意:UMAT中应力、应变均为工程剪应变约定,编写DDSDDE时剪应变分量需乘2;若使用*DEPVAR定义状态变量,数量必须≥实际使用数,否则会覆盖内存导致结果异常。

掌握以上内容后,面对循环载荷问题就能判断该用等向、随动还是记忆面模型,并能通过UMAT把自定义本构真正跑起来,用棘轮率和滞回环闭合性来验证实现是否正确。