martes, 12 de enero de 2016

Diagrama de Interacción de Columnas con Matlab

Código para dibujar el diagrama de interacción de una columna rectangular, con cuantillas distribuidas.

1) Código MatLab:

% PROGRAMA PARA DIBUJAR EL DIAGRAMA DE INTERACCIÓN DE UNA COLUMNA
% COLUMNAS RECTANGULARES DE CONCRETO ARMADO
disp('CÓDIGO PARA DIBUJAR EL DIAGRAMA DE INTERACCIÓN DE COLUMNAS RECTANGULARES')
disp('CODDISA INGENIEROS S.A.C.')
disp('INGRESO DE DATOS')
fc=input ('Resistencia del Concreto Kg/cm2:');
fy=input ('Resistencia del Acero Kg/cm2:');
b=input ('Base de Columna cm:');
h=input ('Altura de Columna cm:');
nvs=input ('Numero de Varilla Superior:');
dvs=input ('Diámetro de Varilla Superior Pulg:');
nvm=input ('Numero de Varilla Medio:');
dvm=input ('Diámetro de Varilla Medio Pulg:');
nvi=input ('Numero de Varilla Inferior:');
dvi=input ('Diámetro de Varilla Inferior Pulg:');
Ass=nvs*(dvs*2.54)^2*pi/4;
Asm=nvm*(dvm*2.54)^2*pi/4;
Asi=nvi*(dvi*2.54)^2*pi/4;
Ast=Ass+Asm+Asi;
Eu=input ('Deformación última del concreto Eu:');
Ey=input ('Deformación última del acero Ey:');
Es=input ('Módulo de elasticidad del acero Es:');
% SE CALCULAS LOS MOMENTOS Y CARGAS NOMINALES
disp('CÁLCULOS')
disp('1) Fuerza Neta en Ton')
P0=(0.85*fc*(b*h)+Ast*fy)/1000
M0=0
e0=M0/P0
disp('2) Falla Balanceada')
d=h-(4+dvi*2.54/2);
Cb=(Eu*d)/(Ey+Eu)
a=0.85*Cb
% Condicionante para ver que aceros están en tracción y compresión
if Cb>h/2
    disp('2.1) Acero en Tracción')
    As1=Asi; % Área en Tracción
    Es1=Eu*(d-Cb)/Cb;
    fs1=Es*Es1;
    if fs1<fy
        fs1;
    else
        fs1=fy;
    end
    disp('2.1) Acero en Compresión')
    As2=Asm; % Área en Compresión
    Es2=Eu*(Cb-h/2)/Cb;
    fs2=Es*Es2;
    if fs2<fy
        fs2;
    else
        fs2=fy;
    end
    As3=Ass; % Área en Compresión
    Es3=Eu*(Cb-h+d)/Cb;
    fs3=Es*Es3;
    if fs3<fy
        fs3;
    else
        fs3=fy;
    end
    Pb=(0.85*fc*a*b+As2*fs2+As3*fs3-As1*fs1)/1000
    Mb=(0.85*fc*a*b*(h/2-a/2)+As3*fs3*(d-h/2)+As1*fs1*(d-h/2))/1000
    eb=Mb/Pb      
else
    disp('2.1) Acero en Tracción')
    As1=Asi; % Área en Tracción
    Es1=Eu*(d-Cb)/Cb;
    fs1=Es*Es1;
    if fs1<fy
        fs1;
    else
        fs1=fy;
    end
    As2=Asm; % Área en Tracción
    Es2=Eu*(h/2-Cb)/Cb;
    fs2=Es*Es2;
    if fs2<fy
        fs2;
    else
        fs2=fy;
    end    
    disp('2.1) Acero en Compresión')
    As3=Ass; % Área en Compresión
    Es3=Eu*(Cb-h+d)/Cb;
    fs3=Es*Es3;
    if fs3<fy
        fs3;
    else
        fs3=fy;
    end  
    Pb=(0.85*fc*a*b+As3*fs3-As1*fs1-As2*fs2)/1000
    Mb=(0.85*fc*a*b*(h/2-a/2)+As3*fs3*(d-h/2)+As1*fs1*(d-h/2))/1000
    eb=Mb/Pb
end
for i=1:1:49
    C(i)=h-d+(2*d-h)*i/50;
    a=0.85*C(i);
    if C(i)>h/2
    disp('2.1) Acero en Tracción')  
    As1=Asi; % Área en Tracción
    Es1=Eu*(d-C(i))/C(i);
    fs1=Es*Es1;
    if fs1<fy
        fs1;
    else
        fs1=fy;
    end
    disp('2.1) Acero en Compresión')
    As2=Asm; % Área en Compresión
    Es2=Eu*(C(i)-h/2)/C(i);
    fs2=Es*Es2;
    if fs2<fy
        fs2;
    else
        fs2=fy;
    end
    As3=Ass; % Área en Compresión
    Es3=Eu*(C(i)-h+d)/C(i);
    fs3=Es*Es3;
    if fs3<fy
        fs3;
    else
        fs3=fy;
    end
    P(i)=(0.85*fc*a*b+As2*fs2+As3*fs3-As1*fs1)/1000
    M(i)=(0.85*fc*a*b*(h/2-a/2)+As3*fs3*(d-h/2)+As1*fs1*(d-h/2))/1000
    eb(i)=M(i)/P(i)      
    else
    disp('2.1) Acero en Tracción')
    As1=Asi; % Área en Tracción
    Es1=Eu*(d-C(i))/C(i);
    fs1=Es*Es1;
    if fs1<fy
        fs1;
    else
        fs1=fy;
    end
    As2=Asm; % Área en Tracción
    Es2=Eu*(h/2-C(i))/C(i);
    fs2=Es*Es2;
    if fs2<fy
        fs2;
    else
        fs2=fy;
    end    
    disp('2.1) Acero en Compresión')
    As3=Ass; % Área en Compresión
    Es3=Eu*(C(i)-h+d)/C(i);
    fs3=Es*Es3;
    if fs3<fy
        fs3;
    else
        fs3=fy;
    end  
    P(i)=(0.85*fc*a*b+As3*fs3-As1*fs1-As2*fs2)/1000
    M(i)=(0.85*fc*a*b*(h/2-a/2)+As3*fs3*(d-h/2)+As1*fs1*(d-h/2))/1000
    eb(i)=M(i)/P(i)
    end
end
Pn=[P P0];
Mn=[M M0];
dint=plot(Mn,Pn,'marker','o'); % Grafica El diagrama de Interacción
text(Mb/3,1.5*Pb,'Falla a Compresión');
text(2*Mb/3,Pb/4,'Falla a Tracción');
xlabel('Mn(Ton-m)');
ylabel('Pn(Ton)');
title('DIAGRAMA DE INTERACCIÓN DE COLUMNA RECTANGULAR');
hold on
fbal=plot(Mb,Pb,'marker','o'); % Grafica el Punto de la Falla Balanceada
x=0:100:Mb;
y=(Pb/Mb)*x;
recta=plot(x,y); % Grafica la Recta de la Falla Balanceada
legend('Diagrama de Interacción','Falla Balanceada','Límite de Falla');
set(dint,'LineWidth',2,'LineStyle','-','Color','g','MarkerEdgeColor','r');
set(fbal,'LineWidth',2,'LineStyle','o','Color','b','MarkerFaceColor','b');
set(recta,'LineWidth',1,'LineStyle','-','Color','b');
grid on
disp('FIN DE PROGRAMA')

2) INGRESO DE DATOS:

DIAGRAMA DE INTERACCIÓN DE COLUMNAS RECTANGULARES
CODDISA INGENIEROS S.A.C.
INGRESO DE DATOS
Resistencia del Concreto Kg/cm2:210
Resistencia del Acero Kg/cm2:4200
Base de Columna cm:30
Altura de Columna cm:50
Numero de Varilla Superior:3
Diámetro de Varilla Superior Pulg:1
Numero de Varilla Medio:2
Diámetro de Varilla Medio Pulg:1
Numero de Varilla Inferior:3
Diámetro de Varilla Inferior Pulg:1
Deformación última del concreto Eu:0.003
Deformación última del acero Ey:0.0021
Módulo de elasticidad del acero Es:2E+6

3) RESULTADO:
Fig. 1.0: Resultado final, diagrama de interacción de columna rectangular.






3 comentarios:

  1. buen programa solo hay un pero las unidades de tonelada metro creo que esta en tonelada cm

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar