Professional Documents
Culture Documents
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.
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.
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
Ø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
As2>As min2
As2
SCRIPT
clear all;
close all;
clc
%% 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;
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
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);
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;
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
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);
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);
Resultados