我正试图绘制标准线性固体模型的蠕变函数。下面是图片:
从https://www.sciencedirect.com/topics/materials-science/viscoelasticity获得
但我的图却大不相同,尽管遵循了图中的方程。有谁能帮我找出我的代码哪里出错了吗?
下面是我的代码:
import numpy as np
import matplotlib.pyplot as plt
t0 = 15
t = np.linspace(t0, 100, 100)
t1 = 85
E1 = 10
E2 = 8
eta = 4
sigma = 20
eps0 = 10
tau = eta / E1 + eta/E2
# creep function
creep = np.zeros(len(t))
for i in range(len(t)):
if t[i] < t0:
creep[i] = sigma / (E1 + E2)
elif t0 < t[i] < t1:
creep[i] = (eps0 - sigma / (E1 + E2)) * (1 - np.exp(-(t[i] - t0) / tau))
elif t[i] == t1:
creep[i] = sigma/(E1+E2)
elif t[i] > t1:
creep[i] = (eps0 - sigma / (E1 + E2)) * np.exp(-(t1 - t[i]) / tau)
# plot graph
plt.plot(t, creep)
plt.xlabel('Time')
plt.ylabel('Creep')
plt.title('Creep Function of Standard Linear Solid Model')
plt.show()
字符串
我已经尝试了大量的改变图形,甚至尝试使用不同的公式,但我就是不能让形状匹配。
1条答案
按热度按时间zpgglvta1#
如评论中所述:你的数学不符合方程,方程也不符合情节。有根据地猜测哪些部分是正确的,哪些部分是错误的
字符串
的数据
但你真的需要找一个更权威的来源。