Professional Documents
Culture Documents
Viga en L Marco Bayona
Viga en L Marco Bayona
Viga en L Marco Bayona
#centroide
y = ((b1*h2*h2/2))+(b2*(h1-h2)*(h2+(h1-h2)/2))/(b2*(h1-h2)+b1*h2)
y1 = h1-y
def fi(c):
et=ecu*(dt-c)/c
if et>=0.005:
fi = 0.9
elif et<=0.002:
fi = 0.65
else:
fi = np.interp(et,[0.002,0.005],[0.65,0.9])
return fi
def fs(d,c):
es = ecu*(c-d)/c
es = ecu*(c-d)/c
if es>0:
fs = min(Es*es, fy)-0.85*fc
else:
fs = max(Es*es,-fy)
return fs
if fc<=28*MPa:
beta1 = 0.85
else:
beta1 = max(0.85-0.05*(fc-28*MPa)/(7*MPa),0.65)
Ab = (pi/4)*db**2
#areas de barras
As = np.zeros(nbh1+1)
Ast = 0
for f in range (1 , nbh1+1):
if f==nbh1:
As[f] = nbb1*Ab
elif f==1:
As[f] = nbb2*Ab
elif f==1+(nbh1-nbh2):
As[f] = ((nbb1-nbb2)+2)*Ab
else:
As[f] = 2*Ab
Ast = As[f]+Ast
dp = rec+de+db/2
ds = (h1-2*dp)/(nbh1-1)
d = np.zeros(nbh1+1)
#espacios entre barras de acero
for f in range (1, nbh1+1):
if f==1:
d[f] = dp
else:
d[f] = d[f-1]+ds
dt = d[nbh1]
Ag = h2*(b1-b2)+h1*b2
fic = 0.65
fiPn_max = 0.75*fic*(0.85*fc*(Ag-Ast)+fy*Ast)
ind = 1
cv = np.arange(h1/100,1.6*h1,h1/100)
ncv = np.size(cv)
fiPn = np.zeros(ncv+1)
fiMn = np.zeros(ncv+1)
for c in cv:
fta = 0
mfta = 0
fia = fi(c)
if c<=h1-h2:
A_c = c*b2
elif c<=h2-dp and c>h1-h2:
A_c = b1*c-(h1-h2)*(b1-b2)
for f in range (1, nbh1+1):
fsa = fs(d[f],c)
fta = fsa*As[f] + fta
mfta = fsa*As[f]*(y1-d[f])+mfta
cc = 0.85*fc*A_c*beta1
fiPn[ind] = min(fia*(cc+fta),fiPn_max)
fiMn[ind] = fia*(cc*(y1-beta1*c/2)+mfta)
ind = ind+1
fig, ax = plt.subplots()
ax.plot(fiMn[1:ncv]/(kN*m),fiPn[1:ncv]/kN,color="blue",linewidth=5)
ax.set(xlabel='fiMn(kN*m)',ylabel='fiPn(kN)',title='Grafica de Interaccion')
ax.grid(True)
plt.show()