| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import math
- def moment_inertie(b, h):
- """
- Calcule le moment d'inertie pour une section rectangulaire.
- """
- return (b * h**3) / 12
- def fleche_maximale(E, I, L, w):
- """
- Calcule la flèche maximale d'une planche sous une charge uniformément répartie.
- """
- return (5 * w * L**4) / (384 * E * I)
- def poids_reparti(P, L, g=9.81):
- """
- Calcule la charge uniformément répartie en fonction du poids total.
- """
- return (P * g) / L
- def epaisseur_planche_combinee(E_bois, E_verre, b, L, w, delta_max, h_verre):
- """
- Calcule l'épaisseur nécessaire de la planche en bois doublée de verre pour respecter la flèche maximale admissible.
- """
- # Calcul du moment d'inertie de la section en verre
- I_verre = moment_inertie(b, h_verre)
- A_verre = b * h_verre
-
- # Résoudre pour h en utilisant une méthode itérative pour la contribution combinée
- h_bois = 0.01 # Initialiser une épaisseur initiale pour le bois
- for _ in range(100): # Effectuer une itération pour convergence
- I_bois = moment_inertie(b, h_bois)
- A_bois = b * h_bois
-
- d_bois = h_bois / 2
- d_verre = h_verre / 2 + h_bois
-
- I_total = I_bois + I_verre + A_bois * d_bois**2 + A_verre * d_verre**2
- E_total = (E_bois * I_bois + E_verre * I_verre) / I_total
-
- # Calculer la flèche maximale pour la configuration actuelle
- delta = fleche_maximale(E_total, I_total, L, w)
-
- if delta <= delta_max:
- break
-
- h_bois += 0.001 # Augmenter l'épaisseur du bois et réévaluer
- return h_bois, delta
- def main():
- # Propriétés matérielles et dimensions pour le contreplaqué marine et le verre
- E_bois = 5430000000 # Module de Young en Pascals pour le contreplaqué marine
- E_verre = 70e9 # Module de Young en Pascals pour le verre
- b = 0.8 # Largeur de la planche en mètres
- L = 0.63 # Longueur de la planche en mètres
- P = (250+200+1200)/3
- # Poids total en kilogrammes
- delta_max = 0.001 # Flèche maximale admissible en mètres (par exemple, 1 mm
- h_verre = 0.015 # Épaisseur du verre en mètres (15 mm)
- # Calcul de la charge uniformément répartie
- w = poids_reparti(P, L)
- # Calcul de l'épaisseur nécessaire de la planche en bois doublée de verre
- h_bois, delta = epaisseur_planche_combinee(E_bois, E_verre, b, L, w, delta_max, h_verre)
- # Calcul du moment d'inertie combiné avec l'épaisseur trouvée
- I_bois = moment_inertie(b, h_bois)
- I_verre = moment_inertie(b, h_verre)
- A_bois = b * h_bois
- A_verre = b * h_verre
- d_bois = h_bois / 2
- d_verre = h_verre / 2 + h_bois
- I_total = I_bois + I_verre + A_bois * d_bois**2 + A_verre * d_verre**2
- print(f"L'épaisseur nécessaire de la planche en bois est de: {h_bois*1000} mm")
- #print(f"Le moment d'inertie total de la section est de: {I_total} m^4")
- #print(f"La charge uniformément répartie est de: {w:.4e} N/m")
- print(f"La flèche maximale est de: {delta*1000} mm")
- if __name__ == "__main__":
- main()
|