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
Cargas aplicadas: Pd (Ton), Pl (Ton), Md (ton*m), Ml (ton*m)
Mu=1.2*Md+1.6*Ml
L/B Pu=1.2*Pd+1.6*Pl
Propiedades de los materiales: qa (kg/cm), f ’c (kg/cm2), fy (kg/cm2)
Almacena en matrices B y L
qo=qo1
qo=qo2
si B=B1 qo1>qo2 si
Propiedades del plinto: Cf (m), LCol (cm), BCol(cm)
no
B1>B2
B=B2 Calculo 2 valores de esfuerzo bruto
Calculo de B en función de L A=B*L M=Md+Ml P=Pd+Pl e=M/P lmin=6*e
si Relacion L/B<2
Ho (m) Ø (mm) qplin=dh*Ho qrell= ds*Cf-Ho*ds qn=qad-qplin-qrell
no
L y B= penúltimos valores de la matriz de almacenamiento
no
d2
eu=Mu/Pu Vu
ØVn
ByL redondeados
bo=ta+tb+d
A=ta*tb si
A=B*L esquina
no
centro
qsu
si
Caso de zapata para corte bidireccional
Caso de zapata para corte unidireccional
bo=2*(2d+tb+ta)
A=(ta+d)(tb+d)
ØVn
Vu
ØVn d1 d2 centro
si
no
m=(B-ta)
A=(tb+d)(ta+d/2)
bo=2*ta+tb+2d
m=(B-ta)/2 ØVn
Vu
A=L*m d2 Vu
AsB=As d=d2
d1>d2
si AsB=Asmi
As1>Asmin
d=d1 As1 d asumido Ma con esfuerzo pseudoultimo en forma trapezoidal
H
H asumido C
m2=(L-ta)/2
si
pesos
Columna en el centro
no
m2=(L-ta)
Carga total
Esfuerzo bruto
qo>qa
si Valores mayores de B y L
Momento sentido de análisis en B
no
Mismos valores de B y L
As min
Diametro de varilla
Numero de varillas en B
fin
Espaciamiento en B
Espaciamiento en L
Momento sentido de análisis en L As min 2
Columna esquinera
Numero de varillas en L
no m1=(B-tb)/2 Diametro de varilla
si
m1=(B-tb) AsL=As2 Ma2 con esfuerzo pseudoultimo en forma rectangular
AsL=Asmin2
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