材料的名义(Nominal)应力、应变是基于变形前的数据计算得到,
其中 为试件初始截面面积, 为试件初始长度。名义应力、应变也叫工程(Engineering)应力、应变。
CAE软件需要采用基于变形后的应力、应变,即真实的应力、应变。
其中 为试件当前截面面积, 为试件当前长度。
两种应力、应变的转化公式为:
下面来推导这两个公式。
一) 了解定积分的精确定义。点击这里:
二) 根据试件的体积不变的原则可得 ,即
于是
三) 假设荷载 分为 个增量步,且每个增量步产生相同的伸长量 ,如图所示
总应变
再和定积分的精确定义比较
故
import math
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
# 名义应力应变
eps_N = np.array([0, 0.00060117, 0.0010815,0.0017279,0.0022288,0.0028608,0.00348034,
0.00404227,0.0045566,0.0051164,0.0058212,0.00674012,0.0078904,0.0092845,
0.010934,0.012828,0.014924,0.017178])
sigma_N = np.array([490.393,503.8289, 512.22608,520.62322,529.020377,537.41752,545.81467,554.21182,
562.60897,571.00612,579.40327,587.800419,596.197567,604.594716,612.99186,
621.3890,629.78616,638.18331])
n = len(sigma_N)
print(n)
#真实应力应变
sigma_T = np.zeros((n))
eps_T = np.zeros((n))
for i in range(n):
sigma_T[i] = sigma_N[i] *( 1 + eps_N[i] )
eps_T[i] = math.log( 1 + eps_N[i] )
v1 = np.array( [ 0 ] )
eps_N1 = np.hstack( (v1, eps_N) )
sigma_N1 = np.hstack( (v1, sigma_N) )
eps_T1 = np.hstack( (v1, eps_T) )
sigma_T1 = np.hstack( (v1, sigma_T) )
fig, axs = plt.subplots(1, 1, figsize=(14,6) )
axs.plot(eps_N1, sigma_N1, label="M1", linewidth = 2)
axs.plot(eps_T, sigma_T, label="M1", linewidth = 2, color = "dimgrey")
plt.legend(["Nominal","True"])
plt.xlim(-0.0001, 0.019)
plt.ylim(0, 760)
axs.set_xlabel('Strain', fontsize = 18)
axs.set_ylabel('Stress', fontsize = 18)
fig.savefig('./f118.png', dpi = 400) #保存图片
plt.show()
这里弹性应变很小,弹性段几乎成铅锤。