You are on page 1of 19

21-11-2017 RUTINA DE UNA

ZAPATA A
FLEXIÓN EN
MATLAB

Andrea Lucero
PUCE
FACULTAD DE INGENIERIA
ESCUELA CIVIL
CIMENTACIONES PARALELO 1
Contenido
INTRODUCCIÓN ............................................................................................................................. 1
DESCRIPCIÓN ................................................................................................................................. 1
DIAGRAMA DE FLUJO ................................................................................................................ 3
SCRIPT........................................................................................................................................ 7
EJEMPLO DE APLICACIÓN ............................................................................................................ 17
Datos: ...................................................................................................................................... 17
Resultados ............................................................................................................................... 17

INTRODUCCIÓN
Diseñar una cimentación manualmente a veces puede resultar un tanto tedioso, como analizar
los casos de cimentaciones que se pueden presentar, o realizar procesos iterativos, y después
al cambiar las condiciones a las que está sometida la cimentación como diferentes cargas o
diferentes esfuerzos volver a realizar todo un proceso para obtener un nuevo diseño.

Por ello se ha realizado una automatización del diseño de uno de los tipos de cimentación que
existen, se trata de una zapata sometida a una carga y un momento, es decir flexión. Este
informe detalla el procesamiento que se ha seguido para automatizar el diseño de esta zapata.

Para verificar la efectividad del procesamiento se analiza un ejemplo realizado en el curso de


cimentaciones, con sus respectivos resultados, comparando los obtenidos en el curso y
calculados manualmente con los obtenidos del procesamiento mecanizado.

DESCRIPCIÓN
El programa se ha elaborado en la herramienta informática Matlab, en donde se ha
programado de tal forma que la persona pueda ingresar los datos del caso para el que desee
analizar, por ejemplo, cargas, momentos, profundidad de desplante, etc.

Se analiza para los siguientes casos:

 Cuando se trata de una columna en el centro de la zapata

 Cuando la columna es esquinera


 Cuando la columna es de borde

Nota: el programa está elaborado de forma tal que reconozca los diferentes casos de zapatas, pero tal cual se
describen en las gráficas la posición de la columna. Las variables que identifican las medidas de la zapata en los
otros casos son las mismas que en el primero.

Para iniciar el programa se impuso un Ho, también se tomó en cuenta la relación L/B, asi como
los redondeos correspondientes según la dimensión, para lo cual se le dio la capacidad a la
rutina de preguntar al usuario que valor escogería a partir de los calculados, e ingresarlos para
recalcular lo que sea necesario.
DIAGRAMA DE FLUJO

Inicio

Mu=1.2*Md+1.6*Ml
Cargas aplicadas:
Pd (Ton),
Pl (Ton),
Md (ton*m), L/B
Ml (ton*m)
Cargas aplicadas: Pu=1.2*Pd+1.6*Pl
Pd (Ton),
Pl (Ton),
Md (ton*m), Almacena en
Ml (ton*m) matrices B y L
Propiedades de los qo=qo1 qo=qo2
materiales:
qa (kg/cm),
si
f’c (kg/cm2),
fy (kg/cm2)
B=B1
Ml (ton*m)
qo1>qo2 no
Cargas aplicadas:
Pd (Ton), si
Pl (Ton),
Md (ton*m),
Propiedades
Ml (ton*m) no B=B2
del plinto: B1>B2
Cf (m),
Calculo 2 valores
LCol (cm),
de esfuerzo bruto
BCol(cm)

Calculo de B en función de L
A=B*L
M=Md+Ml
P=Pd+Pl
e=M/P si
lmin=6*e
L y B= penúltimos
Relacion
no valores de la matriz
L/B<2
de almacenamiento

Ho (m)
Ø (mm)
qplin=dh*Ho

qrell= ds*Cf-Ho*ds

qn=qad-qplin-qrell
d2

eu=Mu/Pu
ØVn Vu

ByL
redondeados
bo=ta+tb+d A=ta*tb

si
A=B*L
esquina no centro

qsu si

Caso de zapata bo=2*(2d+tb+ta) A=(ta+d)(tb+d)


para corte
Caso de zapata bidireccional
para corte
unidireccional
ØVn Vu

ØVn
d1

d2

centro no m=(B-ta)

bo=2*ta+tb+2d A=(tb+d)(ta+d/2)
si
m=(B-ta)/2

ØVn Vu

A=L*m

d2

Vu
AsB=As
1
d1>d2 d=d2
si

AsB=Asmi As1>Asmin
n

d=d1

As1

d asumido

Ma con esfuerzo
pseudoultimo en forma
trapezoidal
H

H asumido
C m2=(L-ta)/2

si
pesos

Columna en no
el centro m2=(L-ta)
Carga total

Esfuerzo
Momento sentido
bruto
de análisis en B

As min
Mismos
qo>qa no valores
de B y L

si

Valores mayores
de B y L
Diametro
de varilla

Numero de
varillas en B

Espaciamiento fin
en B

Espaciamiento
en L
Momento sentido
de análisis en L

As min 2 Numero de
varillas en L

no
Columna
esquinera m1=(B-tb)/2

Diametro
de varilla
si

m1=(B-tb)

AsL=As2

Ma2 con esfuerzo


pseudoultimo en forma AsL=Asmin2
rectangular

As2>As min2
As2
SCRIPT
clear all;
close all;
clc

fprintf('El programa siguiente contempla una carga y un momento aplicados\nen el centro de


la columna con un momento aplicado en el sentido\ndel eje x,entendiendose como eje x el eje
horizontal del plano')
fprintf('\nSe pide por favor ingrese los siguientes datos:');

%% Datos
display(' ');
display(' ');
Pd=input('Carga muerta aplicada en la columna\n Pd(ton)= ');%ton
Pl=input('Carga viva aplicada en la columna\n Pl(ton)= ');%ton
Md=input('Momento muerto aplicado en la columna\n Md(ton*m)= ');%ton*m
Ml=input('Momento vivo aplicado en la columna\n Ml(ton*m)= ');%ton8m

display(' ');
qa=input('Esfuerzo admisible del suelo\n qa(kg/cm)= ');%kg/cm
fc=input('Escuerzo de compresion del hormigón\n f´c(kg/cm2)= ');%kg/cm2
fy=input('Esfuerzo de fluencia del acero\n fy(kg/cm2)= ');%kg/cm2
display(' ');
Cf=input('Profundidad de desplante\n Cf(m)= ');%m
Collar=input('Medida de Columna en sentido x \n LCol(cm)= ');%cm
Colanc=input('Medida de Columna en sentido y \n BCol(cm)= ');%cm

dh=2.4;%T/m3
ds=1.8;%T/m3

M=Md+Ml;
P=Pd+Pl;
e=M/P;
lmin=6*e;
phi=16;%milimetros
clc

%% Esfuerzos

Ho=0.5;
qplin=dh*Ho;
qrell=ds*Cf-Ho*ds;
qad=10*qa;
qn=qad-qplin-qrell;
con1=0;
L=lmin;
%% Secciones de la Zapata
M=[];
i=0;
while con1<2
i=i+1
B1=(P/(L*qn))*(1+lmin/L);
B2=(P/(L*qn))*(1-lmin/L);
if B1>B2
B=B1;
else
B=B2;
end
M(i,1)=L;
M(i,2)=B;
con1=L/B;
L=L+0.01;

end
L=M(i-1,1);
B=M(i-1,2);

clc

%% Sentido de analisis
display(' ');
display(' ');
display('El sentido de analis es en el eje x');

%% Esfuerzo bruto
display ('Los valores iniciales de "L" y "B" (m) para la zapata son los siguientes:');
display (L);
display (B);
Ao=B*L;
qo1=P/Ao*(1+6*e/L);
qo2=P/Ao*(1-6*e/L);

if qo1>qo2
qo=qo1;
else
qo=qo2;
end

display ('El esfuerzo bruto en ton/m2 que se obtiene con esas medidas es:');
display (qo);
if qo>qa*10
display ('como qo > qa, es necesario que aumente las dimensiones de "B" y "L"\n
(recomendable aumentar en proporcion similar)');
else
display ('como qo < qa, la zapata esta bien dimensionada en relacion al esfuerzo bruto');
end
%% Mayoracion de cargas

Pu=1.2*Pd+1.6*Pl;
Mu=1.2*Md+1.6*Ml;
eu=Mu/Pu;

%% Esfurzo Pseudoultimo
display(' ');
display(' ');
fprintf ('Por razones constructivas se recomienda que "B" y "L" sean numeros redondos\nPor
favor ingrese:');
display(' ');
Lu=input(' la longitud "L" que escoja en metros (recomendable multiplos de 5)\n L= ');
display(' ');
Bu=input(' la base "B" que escoja en metros (recomendable multiplos de 5)\n B= ');
clc

Au=Lu*Bu;
qsu1=Pu/Au*(1+6*eu/Lu);
qsu2=Pu/Au*(1-6*eu/Lu);

%% Corte unidireccional
display(' ');
fprintf('Escoja el numeral correspondiente a la ubicacion de la columna:\n 1)esquina\n
2)centro\n 3)borde');
display(' ');
U=input('Ubicacion= ');
clc

ta=Collar/100;
tb=Colanc/100;
Vc=0.75*0.53*sqrt(fc)*Bu*10;

if U==2
qmV=(((qsu1-qsu2)/Lu)*(Lu-(L-ta)/2))+qsu2;
qmd=(qsu1-qsu2)/Lu;

a=qmd/2*-Bu*-1;
b=((qmd/2*((Lu-ta)/2)*Bu)+((qsu1+qmV)/2*-Bu)-Vc)*-1;
c=(qsu1+qmV)/2*((Lu-ta)/2)*Bu*-1;

d1=(-b+sqrt(b^2-4*a*c))/(2*a);
d2=(-b-sqrt(b^2-4*a*c))/(2*a);

if d1>0
du=d1;
else
du=d2;
end

else

qmV=(((qsu1-qsu2)/Lu)*(Lu-(L-ta)))+qsu2;
qmd=(qsu1-qsu2)/(Lu*2);

a=qmd/2*-Bu/2*-1;
b=((qmd/2*(Lu-ta)*Bu)+((qsu1+qmV)/2*-Bu/2)-Vc)*-1;
c=(qsu1+qmV)/2*(Lu-ta)*Bu*-1;

d1=(-b+sqrt(b^2-4*a*c))/(2*a);
d2=(-b-sqrt(b^2-4*a*c))/(2*a);

if d1>0
du=d1;
else
du=d2;
end

end

display(' ');
fprintf('La dimension de "d"(m) por corte unidireccional es:');
display(du);

%% Corte Bidireccional

if U==1
boV=ta+tb;
bod=1;

Vcnd=0.75*1.06*sqrt(fc)*boV*10;
Vcnd2=0.75*1.06*sqrt(fc)*bod*10;
ab=((qsu1+qsu2)/8)+Vcnd2;
bb=(((qsu1+qsu2)/2)*((ta+tb)/2))+Vcnd;
cb=-1*(Pu-(((qsu1+qsu2)/2)*ta*tb));

d3=(-bb+sqrt(bb^2-4*ab*cb))/(2*ab);
d4=(-bb-sqrt(bb^2-4*ab*cb))/(2*ab);

else

if U==2
boV=2*(ta+tb);
bod=4;

Vcnd=0.75*1.06*sqrt(fc)*boV*10;
Vcnd2=0.75*1.06*sqrt(fc)*bod*10;

ab=((qsu1+qsu2)/2)+Vcnd2;
bb=(((qsu1+qsu2)/2)*(ta+tb))+Vcnd;
cb=-1*(Pu-(((qsu1+qsu2)/2)*ta*tb));

d3=(-bb+sqrt(bb^2-4*ab*cb))/(2*ab);
d4=(-bb-sqrt(bb^2-4*ab*cb))/(2*ab);

else

boV=2*ta+tb;
bod=2;

Vcnd=0.75*1.06*sqrt(fc)*boV*10;
Vcnd2=0.75*1.06*sqrt(fc)*bod*10;

ab=((qsu1+qsu2)/4)+Vcnd2;
bb=(((qsu1+qsu2)/2)*(ta+tb/2))+Vcnd;
cb=-1*(Pu-(((qsu1+qsu2)/2)*ta*tb));

d3=(-bb+sqrt(bb^2-4*ab*cb))/(2*ab);
d4=(-bb-sqrt(bb^2-4*ab*cb))/(2*ab);

end

end

if d4>d3
db=d4;
else
db=d3;
end

display(' ');
fprintf('La dimension de "d"(m) por corte bidireccional es:');
display(db);

if db>du
display(' ');
df=input('Por favor escoja e ingrese el valor final de "d" en (m)\n se recomienda escoger el
"d" del corte bidireccional por ser el mayor: ');
else

display(' ');
df=input('Por favor escoja e ingrese el valor final de "d" en (m)\n se recomienda escoger el
"d" del corte unidireccional por ser el mayor: ');
end

clc

%% Diseño definitivo

display(' ');
rec=input('Por favor, ingrese la dimension del recubrimiento en cm: ');
clc

H=(1.5*(phi/1000))+df+rec/100;
r=0;

display(' ');
fprintf('El valor de "H"(m) obtenido es:');
display(H);
Hf=input('Ingrese el valor final de "H" (m)\ntome en cuenta que el valor se redondea a
multiplos de 5\npor facilidad constructiva\n Hf= ');

Pplin=Bu*Lu*H*dh;
Prell=Bu*Lu*(1-H)*ds;
Pf=Pplin+Prell+P;
qof1=Pf/Au*(1+6*e/Lu);
qof2=Pf/Au*(1-6*e/Lu);

if qof1>qof2
qof=qof1;
else
qof=qof2;
end
clc

display(' ');
fprintf('El valor del esfuerzo bruto final es qo(ton/m2):');
display(qof);

if qof>qa*10
fprintf('Debido a que "qof" es mayor a "qa" se debe aumentar las medidas de "L" y "B"');
display(' ');
fprintf('El valor de "L" anterior es:');
display(Lu)
Lf=input('ingrese el valor de Lf= ');
display (' ');
fprintf('El valor de "B" anterior es:');
display(Bu)
Bf=input('ingrese el valor de Bf= ');
else

fprintf('Debido a que "qof" es menor a "qa" se mantienen las medidas de "L" y "B"');
Bf=Bu;
Lf=Lu;
end

clc

%% Sentido de analisis en B

% Calculo de Momentos

if U==2
m2=(Lf-ta)/2;
else
m2=(Lf-ta);
end

qmp=((qsu1-qsu2)/Lf)*(Lf-m2);
qm=qsu2+qmp;
MA=((qsu2*m2^2/2)+(qmp*m2^2/2)+((qsu1-qm)*m2^2/3))*Bf;

%Calculo del Acero

Asmin=0.0018*Bf*100*df*100;
As=0.85*fc/fy*Bf*100*df*100*(1-sqrt(1-(2.36*MA*10^5)/(0.9*Bf*100*(df*100)^2*fc)));
if Asmin>As
Asf=Asmin;
else
Asf=As;
End

fprintf('Sentido de analisis "B"');


display(' ');
diamvB=input('Para el analisis del armado en el sentido de "B" por favor\ningrese el diametro
de la varilla en milimetros: ');

Asv=(pi*(diamvB/10)^2)/4;

nvar=round(Asf/Asv);
rec1=0.05;
s=(Bf-2*rec1-diamvB/1000)/(nvar-1)*100;

display(' ');
fprintf('El espaciamiento calculado en sentido "B" para ese diametro de varilla es:');
display(s);
sB=input('Ingrese valor de "s" que escoja en centimetros: ');

espa1=(Bf/2-ta/2-rec1)/(sB/100);

if espa1-floor(espa1)>0.04 && espa1-floor(espa1)<0.5


espaB=round(espa1)+1;
else
espaB=round(espa1);

end

totalVB=((espaB+1)*2)+1;
display(totalVB);

clc

%% Sentido de analisis en L
% Calculo de Momentos
if U==1
m1=(Bf-tb);
else
m1=(Bf-tb)/2;
end
MA2=(qsu1+qsu2)/2*m1^2/2*Lf;

%Calculo del Acero

Asmin2=0.0018*Lf*100*df*100;
As2=0.85*fc/fy*Lf*100*df*100*(1-sqrt(1-(2.36*MA2*10^5)/(0.9*Lf*100*(df*100)^2*fc)));

if Asmin2>As2
Asf2=Asmin2;
else
Asf2=As2;
end

fprintf('Sentido de analisis "L"');


display(' ');
diamvL=input('Para el analisis en el sentido L, por favor\ningrese el diametro de la varilla2 en
milimetros: ');
Asv2=(pi*(diamvL/10)^2)/4;

nvar2=round(Asf2/Asv2);
rec1=0.05;
s2=(Lf-2*rec1-diamvL/1000)/(nvar2-1)*100;

display(' ');
fprintf('El espaciamiento calculado en sentido "L" para ese diametro de varilla es:');
display(s2);
sL=input('Ingrese valor de "s" que escoja en centimetros: ');

espa2=(Lf/2-tb/2-rec1)/(sL/100);

if espa2-floor(espa2)>0.04 && espa2-floor(espa2)<0.5


espaL=round(espa2)+1;
else
espaL=round(espa2);

end

totalVL=((espaL+1)*2)+1;

clc
%% Armado

if U==1
fprintf('Armado de la zapata con columna esquinera\nLa posicion de la columna esquinera
se ha considerado en el\norigen de coordenadas del plano cartesiano y se tiene lo siguiente:');

else
if U==2
fprintf('Armado de la zapata con columna en el centro');
else
fprintf('Armado de la zapata con columna de borde\nla posicion de la columna esta
considerada en el origen del plano en relacion al eje x\ny en la mitad en relacion al eje y');
end
end

display(' ');
fprintf('Dimensiones del plinto:')
display(Bf);
display(Lf);
display(Hf);
fprintf('Detalles del armado:');
display(df);

fprintf(' Sentido L del plinto');


display(' ');
fprintf(' Diametro de varilla');
display(diamvL);
fprintf(' Espaciamiento entre varillas');
display(sL);
fprintf(' Total de varillas');
display(totalVL);

fprintf(' Sentido B del plinto');


display(' ');
fprintf(' Diametro de varilla');
display(diamvB);
fprintf(' Espaciamiento entre varillas');
display(sB);
fprintf(' Total de varillas');
display(totalVB);
EJEMPLO DE APLICACIÓN
Datos:
 Pd=75ton
 Pl=60ton
 Md=15ton
 Ml=10ton
 qa=2kg/cm
 f´c=210 kg/cm2
 fy=4200 kg/cm2
 Cf=1m
 ta=50cm
 tb=50cm

Resultados

You might also like