Material_test-data-processing
@[toc]
0.1. 材料試験数据处理¶
钢材的材料试验自动数据处理python脚本
可以实现大量数据的一键处理,算出自动算出材料试验的屈服强度,最大强度,弹性模量,泊松比,最后自动出图,并输出结果在excel表李
Google colab ソースコードsource_code
0.1.1. 導入¶
最开始从csv的初始数据里,读取必要的数据然后根据截面积算出载荷对应的应力,应变。然后算各应变的平均值。
在这里,原始数据得来的ch. 为了更好实现一键化处理,增加了横向应变和纵向应变的判定。通过判断中间段数据应变的正负来判断拉应变还是压应变,以此区分横向应变和纵向应变
1 | from glob import glob |
0.1.2. 屈服强度的计算¶
对于标准的材料试验,根据弹塑性力学原理,一般来说,钢材的应变在4000左右是处在屈服点之后,应变强化之前。所以对于屈服强度的判定,如以下:
应变在4000之前的最大应力则为屈服强度
拉升强度则为整个实验的最大应力值
1 | sigma_y = 0 |
0.1.3. 通过最小二乘法计算弹性模量E¶
- 为了去除实验初期载荷的不规律变化,以及屈服点附近的塑性变形的影响。试验数据一般采用$[0.2\sigma_y - 0.7\sigma_y]$的范围作为弹性变形的范围,并截取这一段的数据来计算弹性模量以及泊松比。
- 通过最小二乘法计算,应力应变曲线的斜率$k_1$,来获得弹性模量:
$$[k_1 =\frac{n \sum_{i=1}^{n} x_{i} y_{i}-\sum_{i=1}^{n} x_{i} \sum_{i=1}^{n} y_{i}}{n \sum_{i=1}^{n} x_{i}{2}-\left(\sum_{i=1}{n} x_{i}\right)^{2}}$$
-
为了更直观的表示以上计算式,在代码里改写为以下.
$$ k_1 = \frac {na1 - a21\times a22} {nb1 - a21^2}$$ -
另外,对于決定係数$R^2$的计算,通过1减去离差平方和除以偏差减去数据的平均值$\overline{y}$的平方和来获得,如以下计算式:
$$R^{2} = 1-\frac{\sum_{i=1}{N}\left(y_{i}-f_{i}\right){2}}{\sum_{j=1}{N}\left(y_{j}-\bar{y}\right){2}}$$
1 | i = 0; a1 = 0; a21 = 0; a22 = 0; k1 = 0; b1 = 0; n=0;pc = 0 |
0.1.4. 出图¶
通过 matplotlib自动画出应力应变图
1 | ############## |
0.2. Full Code¶
完整代码如以下,大致的结构流程为
- 对文件夹内的
.csv
文件进行查找,取得所有csv的文件名。 - 读取原始数据,并开始数据处理
- 从原始数据中算出应变的平均值以及计算出应力。
- 算出屈服强度以及最大强度
- 通过最小二乘法计算出弹性模量以及泊松比
- 自动画出应力应变图,并输出保存为
.svg
- 计算结果以及原始数据保存在Excel文档里输出报告
1 | from glob import glob |
0.2.1. Matlab ver.¶
Matlabのバージョンも作っています.考え方は基本一緒.
1 | %% |