function [sigma_1, eps_1] = eps2sigma(filename, plot_handle)
% % 数据读取与处理部分
% clear,clc
eps_1 = xlsread(filename,'A:B') * 1e-6;
eps_3 = xlsread(filename,'C:D') * 1e-6;
% 对数据进行处理使之长度一致
% 应变数据长度不一样,缺少的部分用最后一个应变值代替,以下就是进行这一步工作
len_max = max([size(eps_1,1) size(eps_3,1)]);
for i = 1: 2
nan_ind = find(isnan(eps_1(:, i)), 1, 'first');
if nan_ind ~= 0
for j = nan_ind : len_max
eps_1(j,i) = eps_1(nan_ind - 1,i);
end
end
nan_ind = find(isnan(eps_3(:, i)), 1, 'first');
if nan_ind ~= 0
for j = nan_ind : len_max
eps_3(j,i) = eps_3(nan_ind - 1,i);
end
end
end
% 输入常数以及根据常数确定径向应变的值
E_s = 181 * 1e9;
fy = 383.1 * 1e6;
mu_s = 0.33;
mu_e = 0.5;
eps_y = 2117 * 1e-6;
eps_2 = -mu_s / (1 - mu_s) * (eps_1 + eps_3);
% 根据应变计算每个点的应力
% ind储存的即弹性与塑性的临界点的下标
sigma_1 = zeros(size(eps_1));
sigma_3 = zeros(size(eps_3));
critical_ind = zeros(1, 2);
for i = 1: 2
critical_ind(i) = 1;
sigma_1(1, i) = E_s/(1 - mu_s^2)*(eps_1(1,i) + mu_s * eps_3(1, i));
sigma_3(1, i) = E_s/(1 - mu_s^2)*(eps_3(1,i) + mu_s * eps_1(1,i));
sigma_eq = sqrt(sigma_1(1,i)^2+sigma_3(1,i)^2-sigma_1(1,i)*sigma_3(1,i));
while (sigma_eq <= fy)
critical_ind(i) = critical_ind(i) + 1;
sigma_1(critical_ind(i),i) = E_s/(1 - mu_s^2)*(eps_1(critical_ind(i),i) + mu_s * eps_3(critical_ind(i), i));
sigma_3(critical_ind(i),i) = E_s/(1 - mu_s^2)*(eps_3(critical_ind(i),i) + mu_s * eps_1(critical_ind(i),i));
sigma_eq = sqrt(sigma_1(critical_ind(i),i)^2+sigma_3(critical_ind(i),i)^2-sigma_1(critical_ind(i),i)*sigma_3(critical_ind(i),i));
end
critical_ind(i) = critical_ind(i) - 1;
eps_2(critical_ind(i): len_max, i) = - (eps_1(critical_ind(i): len_max, i) + eps_3(critical_ind(i): len_max, i));
for L = critical_ind(i) : len_max
eps_i = sqrt(2)/3*sqrt((eps_3(L,i)-eps_1(L,i))^2+(eps_1(L,i)-eps_2(L,i))^2+(eps_2(L,i)-eps_3(L,i))^2);
if L==critical_ind(i)
sigma_1y = 2 * fy / (3 * eps_i) * (eps_1(L, i) - eps_2(L, i));
sigma_3y = 2 * fy / (3 * eps_i) * (eps_3(L, i) - eps_2(L, i));
else
sigma_1(L, i) = 2 * fy / (3 * eps_i) * (eps_1(L, i) - eps_2(L, i));
sigma_3(L, i) = 2 * fy / (3 * eps_i) * (eps_3(L, i) - eps_2(L, i));
end
end
delta_sigma_1 = sigma_1y - sigma_1(critical_ind(i), i);
delta_sigma_3 = sigma_3y - sigma_3(critical_ind(i), i);
sigma_1(critical_ind(i)+1:len_max, i) = sigma_1(critical_ind(i)+1:len_max, i) - delta_sigma_1;
sigma_3(critical_ind(i)+1:len_max, i) = sigma_3(critical_ind(i)+1:len_max, i) - delta_sigma_3;
end
% 绘图部分
if plot_handle == 1
figure;
hold on;
line_type = ['--b' '--r'];
for i = 1: 2
plot(abs(eps_1(1:len_max, i)), abs(sigma_1(1:len_max, i)),line_type(i));
end
xlabel('应变','FontSize',16);
ylabel('应力','FontSize',16);
end
没有合适的资源?快使用搜索试试~ 我知道了~
约束混凝土_matlab_steelconcrete_约束混凝土本构模型_
共5个文件
m:5个
5星 · 超过95%的资源 10 下载量 77 浏览量
2021-10-04
08:16:27
上传
评论 1
收藏 5KB RAR 举报
温馨提示
基于约束混凝土理论,计算钢管约束混凝土应力-应变关系
资源详情
资源评论
资源推荐
收起资源包目录
约束混凝土.rar (5个子文件)
约束混凝土
active_concrete_check.m 2KB
LaiMH.m 2KB
active_concrete.m 2KB
eps2sigma.m 3KB
coreUHPC.m 2KB
共 5 条
- 1
何欣颜
- 粉丝: 69
- 资源: 4732
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3