⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 concrete_section.m

📁 concrete_section.zip用于刚结构试验计算程序
💻 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 + -