本节摘要:粘弹性材料对应力的响应依赖时间。本节用弹簧与阻尼器两个元件搭出三个经典模型:Maxwell 管松弛、Kelvin-Voigt 管蠕变、Burgers 两者兼备。每个模型给出可复算的响应曲线与特征时间,并交代选型要领。
线弹性模型有个隐含承诺:加载瞬间变形到位,卸载瞬间恢复原状,与时间无关。沥青路面在夏季车辙里缓缓流淌,聚合物支架在恒载下逐年弯曲,焊锡接点在恒温下应力自己消失——这些现象弹性档案解释不了。需要新的元件:阻尼器,其应力与应变速率成正比,系数是粘度 η。把弹簧(模量 E)与阻尼器(粘度 η)以不同方式连接,就得到粘弹性模型族。
连接方式只有两种基本款。串联叫 Maxwell:两元件受同一应力,应变相加。并联叫 Kelvin-Voigt:两元件应变相同,应力相加。第三款 Burgers 把 Maxwell 与 Kelvin 再串联起来,是它们的组合。
蠕变:恒定应力下应变随时间增长。Kelvin-Voigt 的蠕变式为 ε(t) 等于 σ 除以 E,再乘以 1 减 e 的负 t 除 τ 次方,其中特征时间 τ 等于 η 除以 E。加载瞬间应变不为零(弹簧顶住),随后按指数曲线爬向终值——像温度计插入热水后的读数上升。
松弛:恒定应变下应力随时间衰减。Maxwell 的松弛式为 σ(t) 等于初始应力乘 e 的负 t 除 τ 次方,τ 等于 η 除以 E。夹紧的聚合物垫片过几个月就"不紧了",不是螺栓松了,是垫圈材料把应力松弛掉了。

取聚合物垫片材料 E 等于 20 兆帕、η 等于 100 兆帕秒,特征时间 τ 等于 5 秒。分别算蠕变曲线(恒应力 1 兆帕)与松弛曲线(恒应变 0.05),逐点列输出。
# Kelvin-Voigt 蠕变与 Maxwell 松弛的数值演算 import math E = 20e6 # 弹簧模量 Pa eta = 100e6 # 阻尼器粘度 Pa·s tau = eta / E print(f"特征时间 tau = {tau:.0f} s") print("—— 蠕变(Kelvin-Voigt,恒应力 1 MPa)——") sigma0 = 1e6 for t in (0, 2.5, 5, 10, 20): eps = sigma0 / E * (1 - math.exp(-t / tau)) print(f"t = {t:>4} s({t/tau:.1f} tau):应变 = {eps:.4f}") print("—— 松弛(Maxwell,恒应变 0.05)——") eps0 = 0.05 for t in (0, 5, 10, 25): s = E * eps0 * math.exp(-t / tau) print(f"t = {t:>4} s({t/tau:.1f} tau):应力 = {s/1e6:.3f} MPa")
特征时间 tau = 5 s —— 蠕变(Kelvin-Voigt,恒应力 1 MPa)—— t = 0 s(0.0 tau):应变 = 0.0000 t = 2.5 s(0.5 tau):应变 = 0.0197 t = 5 s(1.0 tau):应变 = 0.0316 t = 10 s(2.0 tau):应变 = 0.0432 t = 20 s(4.0 tau):应变 = 0.0491 —— 松弛(Maxwell,恒应变 0.05)—— t = 0 s(0.0 tau):应力 = 1.000 MPa t = 5 s(1.0 tau):应力 = 0.368 MPa t = 10 s(2.0 tau):应力 = 0.135 MPa t = 25 s(5.0 tau):应力 = 0.007 MPa
判读两组数:蠕变侧,一个特征时间爬完约三分之二的全程,四个特征时间基本到位——"63% 规则"是判读指数曲线的通用标尺。松弛侧,同样一个特征时间应力只剩三七,五个特征时间后仅百分之零点七,垫片"松了"是材料的数学必然。注意两个模型各司其职:Kelvin-Voigt 加载瞬间应变为零(阻尼器锁死),做不了松弛;Maxwell 恒载下应变无限漂移,做不了有限蠕变。各有残缺,才需要第三款。
Burgers 模型等于 Maxwell 串联 Kelvin-Voigt:瞬时的弹性跳变(Maxwell 弹簧)、减速的初期蠕变(Kelvin 部分)与稳态的线性蠕变(Maxwell 阻尼器)三段齐备,与沥青、焊锡、岩石在实验记录上的三阶段蠕变曲线形状对得上。数值验证它:恒应力 1 兆帕下逐时算总应变。
# Burgers 模型蠕变:瞬时弹性 + 减速段 + 稳态流动 E1, eta1 = 20e6, 200e6 # Maxwell 部分 E2, eta2 = 40e6, 500e6 # Kelvin 部分 sigma0 = 1e6 print("Burgers 蠕变记录(恒应力 1 MPa)") for t in (0, 5, 20, 100, 500): # 瞬时弹性 eps_inst = sigma0 / E1 # Kelvin 减速段 eps_kv = sigma0 / E2 * (1 - math.exp(-t * E2 / eta2)) # Maxwell 阻尼器稳态流动 eps_flow = sigma0 / eta1 * t eps = eps_inst + eps_kv + eps_flow print(f"t = {t:>4} s:总应变 = {eps:.4f}" f"(瞬时 {eps_inst:.4f} + 减速 {eps_kv:.4f} + 流动 {eps_flow:.4f})")
Burgers 蠕变记录(恒应力 1 MPa) t = 0 s:总应变 = 0.0500(瞬时 0.0500 + 减速 0.0000 + 流动 0.0000) t = 5 s:总应变 = 0.0832(瞬时 0.0500 + 减速 0.0082 + 流动 0.0250) t = 20 s:总应变 = 0.1699(瞬时 0.0500 + 减速 0.0200 + 流动 0.1000) t = 100 s:总应变 = 0.5750(瞬时 0.0500 + 减速 0.0250 + 流动 0.5000) t = 500 s:总应变 = 2.6000(瞬时 0.0500 + 减速 0.0500 + 流动 2.5000)
判读:长时刻后流动项按时间线性增长并占据绝对主导,减速项封顶在 σ 除以 E2,瞬时项永远是起跳的台阶。三段分解着看,曲线就不再神秘;反过来,拿实验蠕变曲线去拟合四个参数时,也是按这三段分工提取。
判据三条。看试验曲线有没有瞬时应变:有,模型里得有独立弹簧(Kelvin-Voigt 出局)。看长时行为是收敛还是漂移:收敛选 Kelvin,漂移选 Maxwell 或 Burgers。看是否需要两个特征时间:简单拟合用单 τ,工程精度不够就上 Burgers 的双 τ。模型是档案卡不是真理,按问题的时间尺度换卡是粘弹性计算的第一纪律。
时间效应归档完毕。应力越线之后的行为,交给塑性。