将完整的真应力-应变曲线转换为塑性应变-应力曲线,并基于0.2%屈服应力准则的方法如下:
步骤概述
- 读取数据:加载真应力-应变数据。
- 计算屈服应力:确定0.2%应变偏移线,并找到与真应力-应变曲线的交点。
- 转换为塑性应变:计算塑性应变。
- 绘制曲线:绘制塑性应变-应力曲线。
Matlab代码如下
id3='true-stress-strain-300-900-1.xlsx';
% 假设你的真应力-应变数据存储在文件 'stress_strain_data.txt' 中
% 文件格式:两列,第一列为应变,第二列为应力
data = readtable(id3);
data=table2array(data);
strain = data(:,1)/100; % 第一列是应变
stress = data(:,2); % 第二列是真应力
% 0.2% 屈服应力准则
offset_strain = 0.002;
% 线性拟合应力-应变曲线的初始部分(假设弹性部分)
elastic_region = strain <= offset_strain * 2;
p = polyfit(strain(elastic_region), stress(elastic_region), 1);
E = p(1); % 杨氏模量
% 计算0.2%偏移线
offset_line = E * (strain - offset_strain);
% 找到屈服应力(即偏移线与真应力-应变曲线的交点)
difference = abs(stress - offset_line);
[~, idx_yield] = min(difference);
yield_stress = stress(idx_yield);
yield_strain = strain(idx_yield);
% 计算塑性应变
plastic_strain = strain - yield_strain;
% 只保留塑性应变区域的数据
plastic_region = plastic_strain >= 0;
plastic_strain = plastic_strain(plastic_region);
plastic_stress = stress(plastic_region);
% 确定0.2%偏移线的交点
intersection_strain = strain(1:idx_yield);
intersection_offset_line = offset_line(1:idx_yield);
id002region=intersection_strain>0.002;
intersection_strain=intersection_strain(id002region);
intersection_offset_line=intersection_offset_line(id002region);
% 绘制结果
figure;
hold on;
% 原始应力-应变曲线
plot(strain, stress, 'b-', 'LineWidth', 2);
% 0.2% 偏移线(只画到交点)
plot(intersection_strain, intersection_offset_line, 'r--', 'LineWidth', 2);
% 处理后的塑性应变-应力曲线
plot(plastic_strain, plastic_stress, 'g-', 'LineWidth', 2);
% 标出屈服点
plot(yield_strain, yield_stress, 'ro', 'MarkerSize', 8, 'LineWidth', 2);
% 添加标签和图例
xlabel('Strain');
ylabel('Stress (MPa)');
grid on;
legend('Original Stress-Strain Curve', '0.2% Offset Line', 'Plastic Strain-Stress Curve', 'Yield Point');
% 输出屈服应力
fprintf('Yield Stress: %.2f MPa\n', yield_stress);
hold off;
结果