0% encontró este documento útil (0 votos)
47 vistas10 páginas

Bucles

El documento presenta el código MATLAB para generar el diagrama de interacción de una columna rectangular de concreto armado. El código solicita los datos geométricos y mecánicos de la columna, realiza los cálculos para determinar los puntos del diagrama y traza la gráfica resultante.

Cargado por

beto_santana_27
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas10 páginas

Bucles

El documento presenta el código MATLAB para generar el diagrama de interacción de una columna rectangular de concreto armado. El código solicita los datos geométricos y mecánicos de la columna, realiza los cálculos para determinar los puntos del diagrama y traza la gráfica resultante.

Cargado por

beto_santana_27
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

*Media.

m
% Autor: Diego Viadero Lucas
% Descripcion: Programa que recoja nmeros del usuario hasta que se introduzca un 0
y despus devuelva la media de los nmeros introducidos.
% Fecha: 18102012
% Inicio
n=input('Dame un valor: ')
% Nombramos una variable que cuente el numero de veces que se realiza el
% ciclo (contador)
c=1;
% Nombramos una variable pra que se acumule n en cada ciclo
v=0;
while n~=0
c=c+1;
v=v+n;
n=input('Dame un valor: ')
end
% Calculamos la media y la imprimimos en pantalla
m=v/c;
disp('La media es: ')
disp(m)
% Fin
disp('Fin de programa')
*Decremento.m
% Autor: Diego Viadero Lucas
% Descripcion:programa que pida un nmero y vaya decrementando su
valor en una unidad hasta que llegue a cero
% Fecha: 18102012
% Inicio
n=input('Dame un valor: ')
% Crear un bucle que haga un decremento de una unidad por ciclo.
while n~=0

n=n-1;
disp(n)
end
% Fin
dips('Fin de programa')
*Primo.m
% Autor: Diego Viadero Lucas
% Descripcion:Programa que pida un numero y compruebe si ese
numero es primo
% Fecha: 18102012
% Inicio
n=input('Dame un valor: ');
% Introducir un valor por el cual empezar a dividir el numero n
c=n/2;
% Operar y comprobar si n es primo
while mod(n,c);
c=c-1;
end
% Ahora al salir del bucle debemos diferenciar si c es 1 o no
if c==1
disp('Es primo')
else
disp('No es primo')
end
disp('Fin del programa')
*NumeroCorrecto.m
% Autor: Diego Viadero
% Descripcion:Programa que pida un nmero hasta que este nmero sea mayor que
cero, indicando con un mensaje que el nmero introducido no es mayor de cero
% Fecha: 18102012
% Inicio
n=input('Dame un valor: ');
% comprobar que el numero introducido es menor que cero

if n>=0
disp ('El numero introducido es mayor que cero o es cero')
else
while n<0
n=input('Reintroduce el valor correcto: ');
end
disp('El numero introducido es mayor que cero')
end
disp('Fin del programa')

*CalcularSucesionFibonacci.m

%Descripcion: realizar un programa que pida un numero y que calcule la


%
sucesion de Fibonacci
%Autor: Diego Viadero Lucas
%Fecha: 20121019

%Inicio
N=input('Dame un numero de N: ');
X=0;
Y=1;
C=0;
while C<N
C=X+Y;
disp(C)
Y=X;
X=C;
end
dis('Fin de programa')
*CalcularFactorial.m

%Descripcion: realizar un programa que calcule el factorial de un numero X


%Autor: Diego Viadero Lucas
%Fecha: 20121019
%Inicio
%Pedir un valor y guardarlo en la variable N
N=input ('Dame un numero para hayar su factotial');
T=1;
S=1;
while S<=N
T=T*S;
S=S+1;

end
disp ('El factorial es: ')
disp (T)
disp ('Fin de programa');
*CombinacionesDeNumeros.m

%Descripcion: realizar un programa que pida un numero y que combinando


%
otros dos numero te de el valor del numero que se pidio
%Autor: Diego Viadero Lucas
%Fecha: 20121019
%Inicio
N=input ('Dame un valor');
M=0;
while M<=N
S=0;
while S<=N
if N==M+S;
fprintf('Combinacion: %d=%d+%d\n',M+S,M,S)
%disp(M)
%disp(S)
end
S=S+1;
end
M=M+1;
end
disp ('Fin de programa')
*TablaDeMultiplicar.m

%Descripcion: realizar un programa que despliegue la tabla de multiplicar


%
de un nmero X
%Autor: Diego Viadero Lucas
%Fecha: 20121019
%Inicio
%Pedir un valor y guardarlo en la variable N
N=input ('dame un numero para multiplicar ');
S=0 ;
%Dar un valor para que realice la multiplicacion en forma de bucle
while S<=10
A=N*S;
disp (A)
S=S+1;

end
disp ('Fin de programa');

Diagrama de Interaccin de Columnas con Matlab


Cdigo para dibujar el diagrama de interaccin de una columna rectangular, con cuantillas
distribuidas.
1) Cdigo MatLab:
% PROGRAMA PARA DIBUJAR EL DIAGRAMA DE INTERACCIN DE UNA COLUMNA
% COLUMNAS RECTANGULARES DE CONCRETO ARMADO
disp('CDIGO PARA DIBUJAR EL DIAGRAMA DE INTERACCIN 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 ('Dimetro de Varilla Superior Pulg:');
nvm=input ('Numero de Varilla Medio:');
dvm=input ('Dimetro de Varilla Medio Pulg:');
nvi=input ('Numero de Varilla Inferior:');
dvi=input ('Dimetro 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 ('Deformacin ltima del concreto Eu:');
Ey=input ('Deformacin ltima del acero Ey:');
Es=input ('Mdulo de elasticidad del acero Es:');
% SE CALCULAS LOS MOMENTOS Y CARGAS NOMINALES
disp('CLCULOS')
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 estn en traccin y compresin
if Cb>h/2
disp('2.1) Acero en Traccin')
As1=Asi; % rea en Traccin
Es1=Eu*(d-Cb)/Cb;
fs1=Es*Es1;
if fs1<fy
fs1;
else

fs1=fy;
end
disp('2.1) Acero en Compresin')
As2=Asm; % rea en Compresin
Es2=Eu*(Cb-h/2)/Cb;
fs2=Es*Es2;
if fs2<fy
fs2;
else
fs2=fy;
end
As3=Ass; % rea en Compresin
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 Traccin')
As1=Asi; % rea en Traccin
Es1=Eu*(d-Cb)/Cb;
fs1=Es*Es1;
if fs1<fy
fs1;
else
fs1=fy;
end
As2=Asm; % rea en Traccin
Es2=Eu*(h/2-Cb)/Cb;
fs2=Es*Es2;
if fs2<fy
fs2;
else
fs2=fy;
end
disp('2.1) Acero en Compresin')
As3=Ass; % rea en Compresin
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 Traccin')
As1=Asi; % rea en Traccin
Es1=Eu*(d-C(i))/C(i);
fs1=Es*Es1;
if fs1<fy
fs1;
else
fs1=fy;
end
disp('2.1) Acero en Compresin')
As2=Asm; % rea en Compresin
Es2=Eu*(C(i)-h/2)/C(i);
fs2=Es*Es2;
if fs2<fy
fs2;
else
fs2=fy;
end
As3=Ass; % rea en Compresin
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 Traccin')
As1=Asi; % rea en Traccin
Es1=Eu*(d-C(i))/C(i);
fs1=Es*Es1;
if fs1<fy
fs1;
else

fs1=fy;
end
As2=Asm; % rea en Traccin
Es2=Eu*(h/2-C(i))/C(i);
fs2=Es*Es2;
if fs2<fy
fs2;
else
fs2=fy;
end
disp('2.1) Acero en Compresin')
As3=Ass; % rea en Compresin
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 Interaccin
text(Mb/3,1.5*Pb,'Falla a Compresin');
text(2*Mb/3,Pb/4,'Falla a Traccin');
xlabel('Mn(Ton-m)');
ylabel('Pn(Ton)');
title('DIAGRAMA DE INTERACCIN 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 Interaccin','Falla Balanceada','Lmite 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 INTERACCIN 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
Dimetro de Varilla Superior Pulg:1
Numero de Varilla Medio:2
Dimetro de Varilla Medio Pulg:1
Numero de Varilla Inferior:3
Dimetro de Varilla Inferior Pulg:1
Deformacin ltima del concreto Eu:0.003
Deformacin ltima del acero Ey:0.0021
Mdulo de elasticidad del acero Es:2E+6
3) RESULTADO:

Fig. 1.0: Resultado final, diagrama de interaccin de columna rectangular.

También podría gustarte