这将是关于线性粘弹性系列的第 1 篇~!。事实证明,线性粘弹性(LVE)理论非常简单,很容易从第一原理推导出来。通过提出理论背后的思想,将更容易理解线性粘弹性何时起作用,何时不应该使用。在第一部分中,我将重点介绍小应变单轴载荷。在后面的部分中,我将把这个理论扩展到其他更一般的情况。
推导 - 一维加载
线性粘弹性是将线性弹性与粘弹性相结合的一种模型。它基于图 1 中所示的假设。
图1.路德维希·玻尔兹曼(Ludwig Boltzmann,1844-1906)假设每个加载步骤都独立地对最终状态做出贡献。
让我们从考虑以下思想实验开始。让我们应用阶跃应变(在 time=0),然后保持该应变恒定。同时测量应力随时间的变化。对于大多数高分子聚合物,响应类似于图2所示。然后,我们可以从以下公式定义应力松弛模量:Er(t)=σ(t)/ε0。正如我将在下面展示的,应力松弛模量是完全确定任何应变历史的应力所需的全部。
图2.应力在阶 跃应变下逐渐松弛
为了使它更有用,我们需要能够分析一般的应变历史,执行此操作的第一步是将施加的应变写为应变跳跃的总和:
图3.施加的应变历史可以通过多次应变跳跃来近似
通过使用玻尔兹曼的叠加思想,总应力只是每个应变跳跃的应力之和:
这个方程可以转换为积分,因为我们对无限个小应变跳跃求和:
该方程可以通过除以并乘以 dτ 转换为时间积分:
这个主方程向我们展示了如何根据任何单轴应变历史计算应力。很酷!
示例 1:应力松弛
让我们测试主线性粘弹性方程(1),以测试在时间为0时应变跳跃的情况(如图2左侧所示)。为了计算应力响应,我们还需要有一个应力松弛模量随时间变化的方程。假设以下形式:
这个方程特别方便,因为指数函数的积分也是一个指数函数。如果执行计算,将得到以下应力方程:
结果如图4所示。
图4.预测不同τ0的应力松弛响应
示例 2:单调张力
作为第二个示例,考虑一种线性粘弹性材料,该材料在拉伸中加载了恒定的应变速率:
如果我将其代入主线性粘弹性方程 (1),我会得到以下应力表达式:
在非常大的应变下,应力达到的稳态值,初始杨氏模量为 E0。
图5.单调张力下的预测应力
示例 3:任意应变历史
任意应变历史引起的应力响应可以使用公式(1)计算。在一般情况下,应力不能以封闭形式表示,而必须用数值计算。一种方法是使用如下所示的代码。在这种情况下,我使用了与示例 1 和 2 中相同的应力松弛方程,但我应用了加载-卸载循环。应变速率为0.01/s,最大应变为0.1。请注意,此处提供的代码可能是计算应力的最低效方法。
using QuadGK
using Plots
function strain(t)
maxStrain = 0.1
strainRate = 0.01
t1 = maxStrain / strainRate
if t <= t1
return strainRate * t
else
return maxStrain - (t - t1) * strainRate
end
end
function strainRate(t1)
dt = 1.0e-4
return (strain(t1+dt) - strain(t1)) / dt
end
function integrand(tau)
global t
E0 = 10
tau0 = 4.0
ER = E0 * exp(-(t-tau)/tau0)
return ER * strainRate(tau)
end
N = 100
time = range(0, 20, length=N)
ee = zeros(N)
ss = zeros(N)
for (i,tt) in enumerate(time)
global t
t = tt
ee[i] = strain(t)
val, err = quadgk(integrand, 0, t, rtol=1.0e-3)
ss[i] = val
end
plot(ee, ss, label="LVE Prediction", linewidth=2)
plot!(size=(1000,800), framestyle=:box)
plot!(tickfontsize=14, guidefontsize=16, xlabel="Strain", ylabel="Stress")
savefig("LVE1.png")
总结
很容易从第一原理推导出线性粘弹性的一维公式: