📄 concrete_section.m
字号:
%截面参数
breadth=300 ;
height=500 ;
section_a01=25 ;
section_a02=25 ;
section_ya=height/2-section_a02 ;
height0=height-section_a02 ;
steel_diameter=18.0 ;
section_As01=3*pi*(steel_diameter/2.0).^2 ;
section_As02=5*pi*(steel_diameter/2.0).^2 ;
%受力参数
eccentricity=400 ;%单位为mm
press_force=20000 ;%单位为N
force_moment=press_force*eccentricity ;%单位为 N*mm
%砼材料常数
concrete_ft=1.5 ;%砼抗拉强度 ft,单位为N/mm2
concrete_fc=15 ;%砼抗压强度 fc,单位为N/mm2
peak_press_strain=1.6*10.^(-3) ;%峰值压应变
peak_tension_strain=65*10.^(-6)*concrete_ft.^0.54 ;%峰值拉应变
parameter_a01=1.7 ;
parameter_a02=0.8 ;
parameter_a03=0.312*concrete_ft*concrete_ft ;
%钢材的材料常数
steel_fy=240 ;%钢筋强度设计值
steel_Es=2.1*10.^5 ;%钢材的弹性模量
steel_stainy=steel_fy/steel_Es ;%钢筋的屈服应变
%第一步:给出截面顶端砼的压应变press_strain0
x=0.1 ;% x为应变无量纲坐标
kk=0 ;
while x<=6 % while 2
kk=kk+1 ;
% 第二步:假设压区高度系数k_rate
k_rate=0.5;
calculate_e0=0 ;
while abs(calculate_e0-eccentricity)>=5
press_strain0=x*peak_press_strain ;
section_angle=press_strain0/k_rate/height0 ;%seciton_angle为截面相对转角
%第三步:将截面从上到下分成1000份
section_number=1000 ;
d_height=height/section_number ;%每一份的高度
%求相对于中和轴的坐标coordinate_y和相应的应变concrete_strain、无量纲应变concrete_strain_x,大于0为压,小于0为拉
for n=1:section_number
coordinate_y(n)=k_rate*height0-((n-1)*d_height+d_height/2.0) ;
concrete_strain(n)=section_angle*coordinate_y(n) ;
if concrete_strain(n)>0
concrete_strain_x(n)=concrete_strain(n)/peak_press_strain ;
else
concrete_strain_x(n)=concrete_strain(n)/peak_tension_strain ;
end
end
%figure ;
%plot(coordinate_y,concrete_strain) ;
%title(' 截面应变图') ;
%hold off ;
%figure ;
%plot(coordinate_y,concrete_strain_x) ;
%title(' 截面无量纲应变图') ;
%hold off ;
%求砼应力
for n=1:section_number
if concrete_strain_x(n)>0
if abs(concrete_strain_x(n))<=1
concrete_stress_y(n)=parameter_a01*concrete_strain_x(n)+(3-2*parameter_a01)*concrete_strain_x(n)*concrete_strain_x(n)+(parameter_a01-2)*(concrete_strain_x(n)).^3. ;
concrete_stress(n)=concrete_stress_y(n)*concrete_fc ;
else
concrete_stress_y(n)=concrete_strain_x(n)/(parameter_a02*(concrete_strain_x(n)-1).^2+concrete_strain_x(n)) ;
concrete_stress(n)=concrete_stress_y(n)*concrete_fc ;
end
else
if abs(concrete_strain_x(n))<=1
concrete_stress_y(n)=-(1.2*abs(concrete_strain_x(n))-0.2*(abs(concrete_strain_x(n))).^6.) ;
concrete_stress(n)=concrete_stress_y(n)*concrete_ft ;
else
concrete_stress_y(n)=-(abs(concrete_strain_x(n))/(parameter_a03*(abs(concrete_strain_x(n))-1).^1.7+abs(concrete_strain_x(n))) ) ;
concrete_stress(n)=concrete_stress_y(n)*concrete_ft ;
end
end
end
%figure ;
%plot(coordinate_y,concrete_stress_y) ;
%title(' 截面无量纲应力图') ;
%hold off ;
%figure ;
%plot(coordinate_y,concrete_stress) ;
%title(' 截面应力图') ;
%hold off ;
%上、下钢筋的应变steel_strain01 ;steel_strain02及相应的应力steel_stress01 steel_stress02 ;
steel_strain01=section_angle*(k_rate*height0-section_a01) ;
steel_strain02=section_angle*(1-k_rate)*height0 ;
if steel_strain01<=steel_stainy
steel_stress01=steel_strain01*steel_Es ;
else
steel_stress01=steel_fy ;
end
if steel_strain02<=steel_stainy
steel_stress02=steel_strain02*steel_Es ;
else
steel_stress02=steel_fy ;
end
%求轴力axis_force ;以压力为正
axis_force=steel_stress01*section_As01-steel_stress02*section_As02 ;
for n=1:section_number
axis_force=axis_force+concrete_stress(n)*breadth*d_height ;
end
%求对受拉钢筋的弯矩section_moment
section_moment=steel_stress01*section_As01*(height0-section_a01)-axis_force*section_ya ;
for n=1:section_number
section_moment=section_moment+concrete_stress(n)*breadth*d_height*(height0-k_rate*height0+coordinate_y(n)) ;
end
calculate_e0=section_moment/axis_force ;
if calculate_e0<0
k_rate=k_rate+0.1 ;
else
if calculate_e0>eccentricity
k_rate=k_rate+0.001 ;
else
k_rate=k_rate-0.001 ;
end
end
end % while end
if mod((kk-1),10)==0
figure ;
plot(coordinate_y,concrete_stress,'k') ;
title(' 截面应力图','FontSize',20) ;
xlabel('截面坐标yi(mm)','FontSize',20) ;
ylabel('截面应力(N/mm2)','FontSize',20) ;
hold off ;
end
result_01(kk)=section_angle ;
result_02(kk)=section_moment ;
x=x+0.1 ;
end % while 2 end
figure ;
plot(result_01,result_02,'k') ;
title('曲率-弯矩图','FontSize',20) ;
xlabel('曲率','FontSize',20) ;
ylabel('弯矩','FontSize',20) ;
hold off ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -