flambage.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import math
  2. def moment_inertie(b, h):
  3. """
  4. Calcule le moment d'inertie pour une section rectangulaire.
  5. """
  6. return (b * h**3) / 12
  7. def fleche_maximale(E, I, L, w):
  8. """
  9. Calcule la flèche maximale d'une planche sous une charge uniformément répartie.
  10. """
  11. return (5 * w * L**4) / (384 * E * I)
  12. def poids_reparti(P, L, g=9.81):
  13. """
  14. Calcule la charge uniformément répartie en fonction du poids total.
  15. """
  16. return (P * g) / L
  17. def epaisseur_planche_combinee(E_bois, E_verre, b, L, w, delta_max, h_verre):
  18. """
  19. Calcule l'épaisseur nécessaire de la planche en bois doublée de verre pour respecter la flèche maximale admissible.
  20. """
  21. # Calcul du moment d'inertie de la section en verre
  22. I_verre = moment_inertie(b, h_verre)
  23. A_verre = b * h_verre
  24. # Résoudre pour h en utilisant une méthode itérative pour la contribution combinée
  25. h_bois = 0.01 # Initialiser une épaisseur initiale pour le bois
  26. for _ in range(100): # Effectuer une itération pour convergence
  27. I_bois = moment_inertie(b, h_bois)
  28. A_bois = b * h_bois
  29. d_bois = h_bois / 2
  30. d_verre = h_verre / 2 + h_bois
  31. I_total = I_bois + I_verre + A_bois * d_bois**2 + A_verre * d_verre**2
  32. E_total = (E_bois * I_bois + E_verre * I_verre) / I_total
  33. # Calculer la flèche maximale pour la configuration actuelle
  34. delta = fleche_maximale(E_total, I_total, L, w)
  35. if delta <= delta_max:
  36. break
  37. h_bois += 0.001 # Augmenter l'épaisseur du bois et réévaluer
  38. return h_bois, delta
  39. def main():
  40. # Propriétés matérielles et dimensions pour le contreplaqué marine et le verre
  41. E_bois = 5430000000 # Module de Young en Pascals pour le contreplaqué marine
  42. E_verre = 70e9 # Module de Young en Pascals pour le verre
  43. b = 0.8 # Largeur de la planche en mètres
  44. L = 0.63 # Longueur de la planche en mètres
  45. P = (250+200+1200)/3
  46. # Poids total en kilogrammes
  47. delta_max = 0.001 # Flèche maximale admissible en mètres (par exemple, 1 mm
  48. h_verre = 0.015 # Épaisseur du verre en mètres (15 mm)
  49. # Calcul de la charge uniformément répartie
  50. w = poids_reparti(P, L)
  51. # Calcul de l'épaisseur nécessaire de la planche en bois doublée de verre
  52. h_bois, delta = epaisseur_planche_combinee(E_bois, E_verre, b, L, w, delta_max, h_verre)
  53. # Calcul du moment d'inertie combiné avec l'épaisseur trouvée
  54. I_bois = moment_inertie(b, h_bois)
  55. I_verre = moment_inertie(b, h_verre)
  56. A_bois = b * h_bois
  57. A_verre = b * h_verre
  58. d_bois = h_bois / 2
  59. d_verre = h_verre / 2 + h_bois
  60. I_total = I_bois + I_verre + A_bois * d_bois**2 + A_verre * d_verre**2
  61. print(f"L'épaisseur nécessaire de la planche en bois est de: {h_bois*1000} mm")
  62. #print(f"Le moment d'inertie total de la section est de: {I_total} m^4")
  63. #print(f"La charge uniformément répartie est de: {w:.4e} N/m")
  64. print(f"La flèche maximale est de: {delta*1000} mm")
  65. if __name__ == "__main__":
  66. main()