2. 连续介质热力学基础

损伤本构模型不是凭经验拼凑出来的应力—应变公式,它必须服从热力学基本定律。连续介质热力学为损伤建模提供了一套“合法性判据”:哪些变量可以自由选取,哪些演化方向被允许,哪些参数组合会导致模型在循环加载中凭空产生能量。理解这套框架,是判断一个损伤模型能否用于工程计算的前提。

状态势:把可逆能量存进一个标量函数

在等温小变形假设下,最常用的状态势是Helmholtz自由能密度 ψ。它取为状态变量(应变 ε、温度 T)和内变量(损伤 D、塑性应变 εp、背应力 α 等)的函数:

ψ = ψ(ε, T, ε^p, D, α, …)

对损伤建模而言,关键是把损伤变量放进 ψ 中。以各向同性损伤为例,一种常见形式是

ψ = (1 - D) · ψ₀(ε^e)
  = (1 - D) · (1/2) · ε^e : C₀ : ε^e

其中 C₀ 为无损弹性刚度张量,εe = ε − εp 为弹性应变。这个写法直接给出两个重要结果:应力 σ = ∂ψ/∂εe = (1 − D) C₀ : εe,即损伤以刚度折减方式进入本构;同时得到损伤的共轭热力学力(损伤驱动力)

Y = −∂ψ/∂D = (1/2) · ε^e : C₀ : ε^e = ψ₀(ε^e) ≥ 0

Y 就是弹性应变能密度,恒非负。这说明损伤驱动力天然由弹性储能提供,而不是人为设定的“损伤阈值函数”。若把 ψ 写成 (1 − D)² 形式,则 Y 会变成 2(1 − D)ψ₀,驱动力随损伤增大而衰减,模型在软化段的响应会明显不同。因此状态势的具体形式,直接决定损伤演化的强弱与路径。

耗散不等式:约束演化方向

Clausius–Duhem 不等式(等温、小变形)要求总耗散非负:

Φ = σ : ε̇ − ψ̇ ≥ 0

将 ψ 的链式展开代入,并利用 σ = ∂ψ/∂εe,可把不等式整理为内变量耗散的求和形式:

Φ = σ : ε̇^p + Y · Ḋ + A : α̇ + … ≥ 0

其中 A 为背应力的共轭力。对损伤项,由于 Y ≥ 0,只要保证 Ḋ ≥ 0,损伤耗散 Y·Ḋ 就自动非负。这给出损伤建模中最基本的约束:损伤变量必须单调不减,即损伤不可逆。任何允许 D 减小的“愈合型”模型,若没有额外引入愈合机制和对应的能量项,都会违反耗散不等式。

进一步,若同时存在塑性,塑性耗散 σ:ε̇p 与损伤耗散 Y·Ḋ 必须各自或联合满足非负。工程中常见的做法是采用关联流动或非关联势,并保证损伤乘子 λ̇D ≥ 0。这样,损伤演化方程通常写成

Ḋ = λ̇_D · ∂F_D/∂Y ,  λ̇_D ≥ 0 ,  F_D ≤ 0 ,  λ̇_D · F_D = 0

这就是损伤的 Kuhn–Tucker 加载/卸载条件:只有当损伤势 FD 达到零且继续加载时,损伤才演化;卸载或 FD < 0 时,Ḋ = 0,损伤冻结。

内变量理论:把不可逆历史压缩成有限个变量

内变量理论的核心思想是:材料当前状态不仅取决于当前可观测的 ε 和 T,还取决于加载历史。但历史不能无限存储,于是用有限个内变量 q = (εp, D, α, …) 来代表历史效应。状态势 ψ = ψ(ε, T, q),而 q 的演化由耗散不等式约束下的演化方程给出。

对损伤建模,内变量选取直接决定模型能力:

  • 标量 D:各向同性损伤,适合微孔洞型损伤,如延性金属、混凝土受压。
  • 张量 D(二阶或四阶):各向异性损伤,适合复合材料、轧制板材。
  • 多个损伤变量 D₁、D₂:分别描述不同机制,如基体开裂与纤维断裂。
  • 塑性应变 εp 与 D 耦合:延性损伤中,塑性变形驱动孔洞长大。

内变量越多,模型越灵活,但参数标定越困难,且必须逐一满足耗散约束。工程上常在“能描述主要机制”和“参数可标定”之间折中。

约束作用:热力学如何“管住”损伤模型

把上述框架落到建模实践,热力学给出四条硬约束:

  1. 状态势必须存在,且应力、损伤驱动力由它求导得到,不能独立随意指定。
  2. 损伤耗散非负,要求 Y·Ḋ ≥ 0;结合 Y ≥ 0,得 Ḋ ≥ 0。
  3. 损伤演化必须有加载条件,即 FD ≤ 0、λ̇D ≥ 0、互补条件成立。
  4. 耦合项不能破坏总耗散,塑性与损伤的交叉项需整体校验。
常见错误:先写一个好看的 D–ε 曲线,再反推演化方程,却不检查 Y·Ḋ 是否非负。这类模型在单轴拉伸下可能正常,但在循环或卸载再加载时会出现损伤回退或能量凭空产生,导致隐式求解不收敛。

一个可执行的校验示例

以 Lemaitre 延性损伤模型为例,取 ψ = (1−D)·(1/2)·εe:C₀:εe,损伤驱动力 Y = ψ₀。设损伤势

F_D = Y − Y₀ − K·(ε^p_eq)^n ≤ 0

其中 Y₀ 为损伤阈值,εpeq 为等效塑性应变,K、n 为材料参数。演化方程取

Ḋ = (Y / S)^s · ε̇^p_eq ,  当 F_D = 0 且 ε̇^p_eq > 0

校验耗散:Y·Ḋ = Y·(Y/S)s·ε̇peq。由于 Y ≥ 0、S > 0、ε̇peq ≥ 0,该乘积非负,满足约束。若把演化方程写成 Ḋ = (Y/S)s·ε̇peq 但允许 ε̇peq 为负(即塑性卸载时),则 Ḋ 会变负,违反不可逆性。因此实现时必须把损伤演化严格限制在塑性加载分支内。

在数值实现中,通常在每个积分点先更新塑性应变,再判断 FD 是否大于零;若大于零,则用返回映射把 D 更新到 FD = 0 的面上,并保证 ΔD ≥ 0。这样得到的切线刚度与热力学一致,隐式求解的收敛性也更好。

损伤本构的热力学约束链 状态势 → 共轭力 → 耗散不等式 → 演化条件 → 数值实现 状态势 ψ ψ = (1−D)·½εᵉ:C₀:εᵉ 自变量:ε, T, εᵖ, D, α 可逆能量存储 共轭热力学力 σ = ∂ψ/∂εᵉ Y = −∂ψ/∂D = ψ₀ ≥ 0 驱动力由储能提供 耗散不等式 Φ = σ:ε̇ᵖ + Y·Ḋ + A:α̇ ≥ 0 Y ≥ 0 ⇒ Ḋ ≥ 0 损伤不可逆 演化条件 F_D ≤ 0 λ̇_D ≥ 0 λ̇_D·F_D = 0 约束反馈:状态势形式与演化方程必须同时满足耗散非负 积分点数值实现:损伤演化的加载/卸载判断 F_D ≥ 0 ? 且 ε̇ᵖ_eq > 0 ? 是 返回映射更新 D ΔD ≥ 0 损伤继续演化 否 Ḋ = 0 损伤冻结 卸载/中性加载 校验:Y·Ḋ ≥ 0 且 ΔD ≥ 0,否则拒绝该增量步

把这张约束链记住,就能在阅读或构建损伤模型时快速定位问题:状态势决定驱动力形式,耗散不等式决定演化方向,内变量理论决定历史如何被压缩,而数值实现必须把加载/卸载条件严格翻译成 ΔD ≥ 0 的更新逻辑。热力学不是附加在模型外面的装饰,而是贯穿变量选取、方程构造和积分算法的一条主线。