import numpy as np
import [Link] as plt
# Constantes
f_yk = 500 # Résistance caractéristique de l'acier en MPa
f_ck = 25 # Résistance caractéristique du béton en MPa
gamma_s = 1.15 # Coefficient de sécurité pour l'acier
gamma_c = 1.5 # Coefficient de sécurité pour le béton
alpha_cc = 0.85 # Coefficient de réduction pour le béton
# Données d'entrée
b = 300 # Largeur de la poutre en mm
h = 600 # Hauteur de la poutre en mm
L = 5000 # Longueur de la travée en mm
n_appuis = 2 # Nombre d'appuis
V_Ed = 200 # Effort tranchant de calcul en kN
A_sw = 100 # Section d'acier transversale en mm² (étriers)
# Calcul de la résistance de calcul du béton et de l'acier
f_cd = alpha_cc * f_ck / gamma_c
f_yd = f_yk / gamma_s
# Méthode de Caquot pour l'espacement des cadres
def calcul_espacement_caquot(V_Ed, A_sw, f_yd, b, h):
# Calcul de la résistance au cisaillement du béton
V_Rd_c = 0.12 * (100 * 0.01 * f_ck)**(1/3) * b * h / 1000 # en kN
# Vérification de la résistance du béton
if V_Ed > V_Rd_c:
print("L'effort tranchant dépasse la résistance du béton. Il faut
augmenter les dimensions de la poutre ou la résistance du béton.")
return None
# Calcul de la résistance des étriers
V_Rd_s = A_sw * f_yd * h / (1000 * 1000) # en kN
# Calcul de l'espacement des cadres selon Caquot
s = (V_Rd_s / V_Ed) * 1000 # en mm
# Appliquer les règles de Caquot pour l'espacement
s_max = min(0.75 * h, 300) # Espacement maximal selon Caquot
s = min(s, s_max)
return s
# Calcul de l'espacement des cadres
espacement = calcul_espacement_caquot(V_Ed, A_sw, f_yd, b, h)
if espacement:
print(f"L'espacement des cadres selon Caquot est de {espacement:.2f}
mm")
# Ferraillage longitudinal
def calcul_ferraillage_longitudinal(b, h, L, n_appuis):
# Calcul des moments fléchissants (simplifié)
q = 20 # Charge répartie en kN/m (exemple)
M_max = q * L**2 / 8 # Moment maximal en kN.m
# Calcul de la section d'acier longitudinal
d = h - 30 # Hauteur utile en mm (en supposant un enrobage de 30
mm)
z = 0.9 * d # Bras de levier
A_s = (M_max * 1e6) / (f_yd * z) # Section d'acier en mm²
return A_s
# Calcul des armatures longitudinales
A_s = calcul_ferraillage_longitudinal(b, h, L, n_appuis)
print(f"La section d'acier longitudinal nécessaire est de {A_s:.2f} mm²")
# Représentation graphique du ferraillage longitudinal
def tracer_ferraillage_longitudinal(L, A_s):
x = [Link](0, L, 100) # Longueur de la poutre
y = A_s * np.ones_like(x) # Section d'acier constante (simplifié)
[Link](figsize=(10, 5))
[Link](x, y, label="Section d'acier longitudinal (mm²)", color="blue")
plt.fill_between(x, y, color="lightblue", alpha=0.5)
[Link]("Ferraillage longitudinal de la poutre")
[Link]("Longueur de la poutre (mm)")
[Link]("Section d'acier (mm²)")
[Link]()
[Link]()
[Link]()
# Tracer le ferraillage longitudinal
tracer_ferraillage_longitudinal(L, A_s)