Application d'analyse du risque de rupture du mouillage (AOT) avec jauges et animation temporelle
Hello,
je développe une application qui simule les forces exercées sur différents composants d'un voilier, comme la chaîne, les amarres, les manilles et l'émerillon via le vent, la houle direction et force etc. L'application permet à l'utilisateur de visualiser ces forces sous forme de jauges qui montrent si les composants dépassent leurs charges de travail ou de rupture.
Explication du fonctionnement :
Saisie des paramètres du voilier et des composants :
Dans la barre latérale, les utilisateurs peuvent définir les caractéristiques de leur voilier, telles que :
Longueur, largeur, tirant d'eau et poids du voilier.
Charges de rupture des composants (chaîne, émerillon, manilles, amarres). Les charges de travail sont automatiquement calculées comme étant la moitié de la charge de rupture.Paramètres environnementaux :
Les utilisateurs peuvent également ajuster les conditions environnementales, notamment :
Vitesse du vent moyenne et des rafales (en km/h).
Hauteur et période de la houle.
Vitesse du courant marin.
Direction du vent, de la houle et du courant (avec des choix de directions cardinales).Simulation temporelle :
Les utilisateurs peuvent choisir une durée de simulation (24h ou 48h) et ajuster l'heure simulée via un slider. Cela permet de simuler les variations de forces sur une période donnée.Calcul des forces environnementales :
Les forces appliquées au voilier sont calculées en fonction des conditions environnementales :
Force du vent moyen et des rafales : Ces forces varient de manière sinusoidale pour simuler des fluctuations naturelles sur la durée choisie.
Force de la houle : Varie également de manière cyclique pour simuler les changements dans les vagues.
Force du courant : Elle est calculée en fonction de la vitesse du courant et de la surface projetée du voilier sous l'eau.Répartition des forces :
Force totale exercée : La somme des forces du vent, des rafales, de la houle et du courant est calculée pour déterminer la force totale appliquée sur le voilier.
Cette force totale est répartie entre la chaîne et les amarres (50 % pour la chaîne et 50 % pour les amarres).Comparaison des forces avec les charges de travail :
Le script compare les forces actuelles avec les charges de travail des composants. Si la force exercée dépasse la charge de travail, l'élément est coloré en rouge pour indiquer un danger.Affichage des jauges :
Les jauges montrent graphiquement les forces exercées sur chaque composant :
Charges de travail : Les jauges indiquent en vert si les forces sont inférieures à la charge de travail, et en rouge si elles dépassent cette limite.
Charges de rupture : Une deuxième série de jauges affiche les forces en comparaison avec les charges de rupture.
Résumé des fonctionnalités :
Saisie dynamique des paramètres : Le voilier et les composants peuvent être personnalisés.
Simulation des forces environnementales : Les forces varient de manière réaliste sur une période de temps simulée.
Comparaison des forces avec les limites des composants : Cela aide à déterminer si les composants risquent de se rompre sous la pression.
Utilisation :
Personnaliser le voilier et les composants via la barre latérale.
Ajuster les conditions environnementales pour simuler des forces réalistes.
Utiliser la timeline pour observer les variations des forces au cours de la journée simulée.
Surveiller les jauges pour savoir si des composants dépassent leurs charges de travail ou de rupture.
Amélioration :
1) Plug à la météo temps réel
2) ?
Des avis, des questions, des incohérence ?
Voili voilou, sans prétention si ça peut servir, j'améliore sinon poubelle ! :-)
une partie du code pour les amateurs pour voir quelques calculs :
Calcul des forces environnementales avec des variations sinusoidales pour le vent, les rafales et la houle
def ajusterforceparangle(force, angledirection):
anglerad = np.radians(angledirection)
return force * np.cos(angle_rad)
def forcevent(vitessevent, anglevent, time):
# Variation sinusoidale pour le vent moyen (ralenti)
vitessevariee = vitessevent * (1 + 0.1 * np.sin(2 * np.pi * time / (dureesimulation * 60))) # Cycle complet toutes les 24 ou 48h
densiteair = 1.225 # kg/m^3
forcebrute = 0.5 * densiteair * surfaceprojetevoilier * coefficienttrainee * (vitessevariee ** 2)
return ajusterforceparangle(forcebrute, anglevent)
def forcerafale(rafalevent, anglevent, time):
# Variation plus rapide pour les rafales (cycle plus court)
vitessevariee = rafalevent * (1 + 0.3 * np.sin(2 * np.pi * time / 10)) # Cycle de rafale toutes les 10 minutes
densiteair = 1.225 # kg/m^3
forcebrute = 0.5 * densiteair * surfaceprojetevoilier * coefficienttrainee * (vitessevariee ** 2)
return ajusterforceparangle(forcebrute, angle_vent)
def forcehoule(hauteurhoule, periodehoule, inclinaison, anglehoule, time):
# Variation sinusoidale de la houle
hauteurvariee = hauteurhoule * (1 + 0.2 * np.sin(2 * np.pi * time / 15)) # Cycle complet toutes les 15 minutes
k = 0.5 # Coefficient empirique pour la force des vagues
inclinaisonrad = np.radians(inclinaison)
forcebrute = k * poidsvoilier * hauteurvariee / (periodehoule ** 2) * np.cos(inclinaisonrad)
return ajusterforceparangle(forcebrute, angle_houle)
def forcecourant(vitessecourant, anglecourant):
densiteeau = 1025 # kg/m^3, densité de l'eau de mer
surfaceprojetevoiliereau = largeurvoilier * tiranteau # surface latérale exposée au courant
forcebrute = 0.5 * densiteeau * surfaceprojetevoiliereau * (vitessecourant ** 2)
return ajusterforceparangle(forcebrute, anglecourant)
Conversion des vitesses du vent et du courant de km/h en m/s
vitesseventmoyenne = vitesseventmoyennekmh / 3.6
rafalevent = rafaleventkmh / 3.6
vitessecourant = vitessecourant_kmh / 3.6
Pour les forces dues au vent, est-ce cela prend en compte les mouvements d’essuie-glace qui font 1) que le bateau ne présente pas toujours sa surface frontale au vent, 2) que le bateau en fin d’essuie-glace exerce une traction dynamique et non statique ?
s'il y a une simulation a prendre en compte ,s'est la rupture du taquet du bateau ...
Qu en est il du fardage qui devrait être le vecteur le plus important des résultats (la force du vent s exerçant sur une surface c est un facteur qui influe au carré !!!!)
Si pas cette valeur …comment sont fait les calculs ?
Calcul des forces environnementales avec le fardage
def ajusterforceparangle(force, angledirection):
anglerad = np.radians(angledirection)
return force * np.cos(angle_rad)
def forcevent(vitessevent, anglevent, time):
vitessevariee = vitessevent * (1 + 0.1 * np.sin(2 * np.pi * time / (24 * 60))) # Variation lente du vent
densiteair = 1.225 # kg/m^3
forcebrute = 0.5 * densiteair * surfacefardagetotale * coefficienttrainee * (vitessevariee ** 2)
return ajusterforceparangle(forcebrute, angle_vent)
def forcerafale(rafalevent, anglevent, time):
# Variation plus rapide pour les rafales (cycle plus court)
vitessevariee = rafalevent * (1 + 0.3 * np.sin(2 * np.pi * time / 10)) # Cycle de rafale toutes les 10 minutes
densiteair = 1.225 # kg/m^3
forcebrute = 0.5 * densiteair * surfacefardagetotale * coefficienttrainee * (vitessevariee ** 2)
return ajusterforceparangle(forcebrute, angle_vent)
def forcehoule(hauteurhoule, periodehoule, inclinaison, anglehoule, time):
# Variation sinusoidale de la houle
hauteurvariee = hauteurhoule * (1 + 0.2 * np.sin(2 * np.pi * time / 15)) # Cycle complet toutes les 15 minutes
k = 0.5 # Coefficient empirique pour la force des vagues
inclinaisonrad = np.radians(inclinaison)
forcebrute = k * poidsvoilier * hauteurvariee / (periodehoule ** 2) * np.cos(inclinaisonrad)
return ajusterforceparangle(forcebrute, angle_houle)
def forcecourant(vitessecourant, anglecourant):
densiteeau = 1025 # kg/m^3, densité de l'eau de mer
surfaceprojetevoiliereau = largeurvoilier * tiranteau # surface latérale exposée au courant
forcebrute = 0.5 * densiteeau * surfaceprojetevoiliereau * (vitessecourant ** 2)
return ajusterforceparangle(forcebrute, anglecourant)
Conversion des vitesses du vent et du courant de km/h en m/s
vitesseventmoyenne = vitesseventmoyennekmh / 3.6
rafalevent = rafaleventkmh / 3.6
vitessecourant = vitessecourant_kmh / 3.6
Facteur de dérive basé sur la résistance hydrodynamique du bateau (approximation)
coefficient_derivation = 0.2 # Facteur de résistance à la dérive (quille + safran)
def calculderive(forceventlat, resistancehydrodynamique):
"""
Calcule l'angle de dérive basé sur la force latérale du vent et la résistance hydrodynamique du bateau.
"""
# Angle de dérive (en radians)
anglederiverad = np.arctan(forceventlat / resistancehydrodynamique)
anglederivedeg = np.degrees(anglederiverad) # Conversion en degrés
return anglederive_deg
Calcul de la force latérale du vent (perpendiculaire au bateau)
def forceventlateral(vitessevent, anglevent):
forcebrute = 0.5 * 1.225 * surfacefardagetotale * coefficienttrainee * (vitessevent ** 2)
anglelateral = 90 # On suppose que la force est maximale lorsqu'elle agit perpendiculairement au bateau
forcelat = ajusterforceparangle(forcebrute, anglelateral - anglevent) # Projeter la force latérale
return forcelat
Simulation d'une résistance hydrodynamique approximative basée sur la forme du bateau
resistancehydrodynamique = poidsvoilier * coefficient_derivation # Approximation simple basée sur le poids du bateau
Calcul de la force latérale du vent
forceventlat = forceventlateral(vitesseventmoyenne, directionscardinales[directionvent])
Calcul de l'angle de dérive
anglederive = calculderive(forceventlat, resistance_hydrodynamique)
Ajouter la force de tension supplémentaire due à la dérive
forcetensiondueaderive = forceventlat # La tension est proportionnelle à la force latérale du vent
Ajuster la force totale avec la force de tension due à la dérive
forcetotaleavecderive = forcetotale + forcetensiondueaderive
A améliorer...
Récap des calcules:
Paramètres du voilier :
longueurvoilier, largeurvoilier, et tiranteau : Ces variables définissent les dimensions physiques du voilier (longueur, largeur, et profondeur sous l'eau).
poidsvoilier : Le poids total du voilier, utilisé dans les calculs de résistance hydrodynamique et de forces dues à la houle.
hauteurmat, largeurmat : Les dimensions du mât du voilier, utilisées dans le calcul de la surface de fardage.Surface de fardage :
Surface de fardage totale est la surface exposée au vent et est calculée comme :
surfacefardagevoilier = longueurvoilier × largeurvoilier : la surface projetée du voilier.
surfacefardagemat = hauteurmat × largeurmat : la surface projetée du mât.
surfacefardageelements_pont : somme des surfaces projetées des éléments présents sur le pont (coffre, panneaux solaires, bimini, capote de roof).
La surface totale est la somme de toutes ces surfaces, influençant les forces appliquées par le vent.Charges de rupture et de travail :
Chaque composant (chaîne, émerillon, manilles, amarres) a une charge de rupture définie par l'utilisateur. La charge de travail est définie comme la moitié de la charge de rupture :
chargetravailchaine = chargerupturechaine / 2
chargetravailemerillon = chargeruptureemerillon / 2
chargetravailmanille28mm = chargerupturemanille28mm / 2
chargetravailamarre = chargeruptureamarre / 2
Paramètres environnementaux :
vitesseventmoyennekmh, rafaleventkmh, hauteurhoule, periodehoule, vitessecourant_kmh : Paramètres utilisés pour calculer les forces environnementales qui affectent le voilier (vent, houle, courant).
Les directions du vent, de la houle et du courant sont définies en points cardinaux et converties en angles pour ajuster les forces en fonction de leur direction relative par rapport au bateau.Calcul des forces environnementales :
Vent :
La force du vent est calculée en fonction de la densité de l'air (1.225 kg/m³), de la vitesse du vent (m/s), et de la surface de fardage totale. Elle est ajustée par un coefficient de traînée (1.2) et varie sinusoidalement dans le temps pour simuler des fluctuations du vent.
Formule pour la force du vent :
forcebrute = 0.5 * densiteair * surfacefardagetotale * coefficienttrainee * (vitessevariee ** 2)
Force des rafales : Calculée de manière similaire, mais avec une variation plus rapide (cycle toutes les 10 minutes).
Ajustement de la force en fonction de l'angle entre la direction du vent et le bateau :
adjustedforce = force * np.cos(np.radians(angledirection))
Houle :
La force de la houle dépend de la hauteur des vagues, de la période de la houle et du poids du voilier, avec un ajustement basé sur l'inclinaison du bateau.
Formule simplifiée :
forcebrute = k * poidsvoilier * hauteurvariee / (periodehoule ** 2)
Le terme k est un coefficient empirique (0.5 ici) qui modélise l'impact des vagues.
Courant :
La force du courant est fonction de la densité de l'eau (1025 kg/m³), de la surface latérale du voilier sous l'eau, et de la vitesse du courant.
- Calcul de la dérive : La dérive est causée par la force latérale du vent qui pousse le bateau de côté. Elle est calculée à partir de la force latérale :
forcebrute = 0.5 * densiteair * surfacefardagetotale * coefficienttrainee * (vitessevent ** 2)
Cette force latérale est ajustée par l'angle entre la direction du vent et le bateau, avec un angle latéral maximal de 90° pour une force perpendiculaire.
La résistance hydrodynamique du bateau, qui s'oppose à la dérive, est approximée par le poids du bateau multiplié par un coefficient empirique (coefficient_derivation = 0.2).
L'angle de dérive est ensuite calculé comme l'arc tangente de la force latérale divisée par la résistance hydrodynamique :
anglederiverad = np.arctan(forceventlat / resistance_hydrodynamique)
- Force totale et force de tension due à la dérive : La force totale exercée sur le voilier est la somme des forces dues au vent, aux rafales, à la houle, et au courant. On ajoute la force de tension due à la dérive (proportionnelle à la force latérale du vent) pour obtenir la force totale avec dérive :
forcetotaleavecderive = forcetotale + forcetensiondueaderive
- Répartition des forces sur les composants : La force totale est répartie équitablement entre la chaîne et les amarres :
forcechaineavecderive = forcetotaleavecderive / 2
forcechaqueamarreavecderive = forcetotaleavec_derive / 2 / 2
- Comparaison des forces avec les charges de travail et de rupture : Compare la force exercée sur chaque composant (chaîne, amarres, manilles, émerillon) avec leur charge de travail (la moitié de la charge de rupture). Si la force dépasse cette limite, cela indique un risque de rupture.
Apres un test ...je confirme que tu ne prends pas les bons parametres
Ci dessous un tableau ou je m'y retrouve qui donne la force exercee par le vent sur un bateau
Tant que ton calcul ne s'approchera pas de ça ....
Si un coefficient de 2 entre charge de travail et charge de rupture est acceptable pour de la chaîne, c'est notoirement insuffisant pour un cordage (de mémoire = 5).
Du coup c'est à jour avec:
Ajout de l'élasticité des amarres (réglable)
Les amarres peuvent s'étirer sous l'effet de la traction, ce qui réduit le choc de la force exercée sur elles. Dans mon cas mes amarres ont une élasticité de 42%. Cela signifie que la force appliquée aux amarres est réduite de 42% avant d'atteindre leur limite de charge.
Coefficient pour les amarres (réglable)
Le coefficient de sécurité pour les amarres est ajusté à 7, la charge maximale que peut supporter une amarre est la charge de rupture divisée par 7.
Pour le tableau de Salvetat, commme roberto, j'aurais bien voulu savoir le comment :-) mais bon, dans mes tests je suis dans les clous
Salut Ilan,
J'ai testé, mais je n'ai pas tout compris. Cela doit permettre d'égaliser les charges de ruptures en cherchant le bon dimensionnement de chaque composant ? Et pourquoi pas faire l'appli dans l'autre sens : déterminer les composants à charge de rupture idéale ?
Sur l'historique des ruptures de mouillages de notre AOT, sur 150 bateaux en 20 ans, j'en ai tiré quelques leçons :
- 2/3 de ruptures par vent du sud, donc avec forte houle, alors que le vent est rarement supérieur à 30 nds
- 1/3 de ruptures par mistral, sur eau lisse donc, mais avec des fortes rafales, doublant la vitesse moyenne du vent (typiquement 16 nds moyens, 30 nds en rafale).
- Pas de connaissance de rupture de l'ancrage sur le bloc ou de l'aussière principale.
- Généralement, ca casse entre la manille entre l'aussière principale et les aussières de pont et les taques de ponts. Soit la manille, soit l'émerillon, soit les aussières de pont, soit les taquets de ponts. Je me rappelle d'un cas où un morceau du pont a été arraché avec le taquet.
Quelques cas dans tout ca de pure négligence : bateau délaissé, mouillage qui part en morceau.
Quelques cas dont le proprio a été trop joueur : sale temps largement annoncés, quelques bateaux restent au mouillage. Le matin, temps toujours mauvais, 4 sur 5 sont à la plage. Le dernier les rejoint à midi alors qu'il était évident dès le matin qu'il fallait se barrer sans trainer.
Le mouillage est à Bandol.
J'en ai tiré quoi comme enseignement ?
- Ranger ses voiles. Ca limite énormément le fardage et elle sont protégées. Un génois qui se déroule dans un coup de vent et c'est l'assurance d'un problème sérieux. Hier, un voisin a perdu son taud de GV, en lambeau.
- Ranger le pont et tout attacher.
- Rentrer quand il y a un risque d'est virant sud. Ma bouée est protégée du mistral, moins de risque de ce coté.
- Surveiller la liaison bloc aussière principale (j'ai remplacé à la fin de l'hiver la manille qui avait 25 ans et dont le manillon avait perdu la moitié de son diamètre).
- supprimer l'émerillon, dont j'estime le risque de casse supérieur au bénéfice apporté. Mon bateau ne reste jamais plus de quelques semaines sans bouger, ce qui permet au mouillage de se détoronner, sachant qu'on n'est pas dans un coin où les bateaux tournent dans tous les sens. Cela dit, j'ai vu mon aussière détoronnée sur 1 m, elle s'est retoronnée toute seule quand ca a tiré, mais en formant des coques. Remplacement en cours, elle a aussi 25 ans. Et entre temps, je l'ai triplé avec une drisse Dyneema passée en double.
- 2 manilles pour les 4 aussières de pont, une en 3 torons et une en tressée, de chaque coté. Soit une manille pour chaque coté.
- Pas de bouée quand je suis au mouillage. Je la mousquetonne en partant. La bouée créait trop souvent un pataques entre les aussières de pont.
- Les 4 aussières de pont sont sur deux taquets, un par étrave, les aussières tressées sont assez longues pour me permettre de les nouer ensemble après avoir fait le tour du mat et des 2 winches à son pied. J'imagine que cela me fera gagner quelques heures si un taquet d'étrave venait à s'arracher.
Mais surtout, que stationner au mouillage n'est possible qu'à la belle saison, disons en gros d'avril à septembre, et en habitant suffisamment près pour aller voir au moindre risque. Au moins passer devant tous les jours. Et connaitre ses voisins, on a un wattsapp entre la plupart des bateaux du mouillage, et ca marche vraiment bien pour se tenir au courant.
En tout cas, sacré boulot ton appli !
Pour la partie textile le comportement est plus complexe, en particulier polyamide/polyester ce n'est pas si immédiat que cela.
Déjà en termes absolus quand on commence à cycler les charges: entre 0% et 40% de charge de rupture, le polyester très rapidement commence à travailler sur 3-4% d'allongement (entre 4.5% et 8%), le polyamide sur du 7%; on est bien loin des allongements-producteur.
Puis, le deux comportements en immersion sont différents, les deux résistances à fatigue, resistances à l'usure, etc sont différentes, cela change encore avec le type de construction du cordage (3 torons, 8 torons, multibrin) --> on peut être amenés à choisir toute sorte de combinaisons différentes comme matériel, tressage, diamètre/CR, etc.
Bref si on veut un ordre de grandeur je resterais sur des valeurs beaucoup plus prudentielles que les allongements annoncés pour du matériel neuf 10-20-30%.
Cela rejoint mon observation sur une expérience récente d’un mouillage par vent costaud avec fortes rafales (30 à 40 noeuds). Aucun souci avec l’ancre ou la chaîne, mais les aussières en patte d’oie passées dans les chaumards encaissaient des chocs violents et le ragage allait bon train. J’avais protégé les contacts avec du tuyau d’arrosage, mais celui-ci était rapidement tiré hors du chaumard par les glissements de l’aussière. J’ai passé des heures à les repositionner plusieurs fois par heure. Les calculs de rupture me semblent bien théoriques face à cette réalité d’une ligne de mouillage qui pourrait être mieux conçue sur nos bateaux.
L'été dernier j'ai pris un peu plus de 35 nds au mouillage. Le bateau faisait tellement l'essuie glace que les bouts de ma pâte d'oie en 22mm sonnaient comme des cordes à piano à chaque coup de rappel.
Cet été, j'ai de nouveau pris un peu plus de 35nds mais cette fois avec une voile de mouillage. Les mouvements du bateau et les efforts sur le mouillage n'ont absolument rien à voir. Pour l'avoir essayée, je suis maintenant plus que convaincu que la voile de mouillage (Banner Marine Findelta dans mon cas) est un indispensable pour qui fait régulièrement du mouillage forain.
Tout ceci pour dire que, pour des vents raisonnables du moins (aucune idée dans 100nds), ce qui tire le plus sur le mouillage n'est pas la simple traînée aérodynamique du bateau mais les décélérations du bateau lors de ses mouvements d'essuie glace. Ceci est confirmé par Pierre Lang qui, de mémoire, à pris 70 nds en Islande. Tous les bateaux ne se comportent pas de la même manière et un même bateau ne se comportera pas de la même manière avec l'annexe hissée sous le portique ou tout autre ajout de fardage loin sur l'arrière, avec un mouillage tout chaîne ou textile présentant de l'élasticité (qui amplifie les mouvements d'essuie-glace), etc. Même si je comprends l'intérêt sur le plan intellectuel, il me semble donc assez illusoire d'esperer dimensionner le mouillage au plus juste d'après un modèle avec pour seules donnés celles dont il est question ici.
Plutôt que de dimensionner au plus juste, pour ma part et même si c'est moins sexy du point de vue "équationnel", ce qui me permet de dormir sur mes deux oreilles c'est de dimensionner au plus fort possible dans la limite du raisonnable.
En effet l'appli et orienté mouillage sur coffre, ces pour cela que je ne parle pas d'ancre.
Pour faire suite à Erendil (voisin de coffre :-)) on vient d'essuyer 2 jours à 45 noeuds (max) sur Bandol, j'ai bien regardé la dérive du voilier sur la caméra (temps réel), j'ai vu sur un site américain une espèce de voile qui permet d'atténuer ce comportement, pas donné mais ça mériterais un test :-)
Sinon pour mon corps mort je pense qu'il est déjà bien suffisant, 5m chaînes de 20mm, manilles 28mm au extrémités et émerillon de 20mm avec manilles de 22mm, 8m d'haussières en 32mm 8 torons épissés de chaque coté avec cosse pour la jonction et protection contre le raguage.
Evidemment que tout ceci et théorique et que l'on peut juste essayer de ce "rapprocher" de la réalité.
Je vais faire une petite plongée demain pour vérifier tout ce petit monde quand même après c'est 4 jours bien venteux !
Ce fil m’inspire deux observations :
1) en complément de l’approche par le calcul, il me paraît utile (indispensable ?) que soit faite une approche empirique par une campagne de mesures avec un dynamomètre enregistreur sur la ligne de mouillage dans différents cas, ne serait-que pour valider et calibrer le modèle ; un modèle théorique aide à comprendre les phénomènes, mais ne suffit pas pour une application pratique.
2) pour un mouillage sur corps mort, le principal problème n’est pas tant la résistance de la ligne à la traction que l’usure de ses différents composants.
Ajout des vagues... j'obtiens rupture de l'émerillon à 1.80m sur période de 9s et une vitesse de 3m/s les manilles de 22mm sont pas loins :-)
- Traction due au Vent Force du vent sur la surface exposée (fardage) du bateau:
𝐹𝑣𝑒𝑛𝑡=0.0259×𝑉2×surface fardage
où :
𝑉 est la vitesse du vent en nœuds,
0.0259 est une constante déterminée empiriquement,
La surface de fardage est calculée en fonction des dimensions du bateau et de ses structures (mât, pont).
- Force due aux Vagues Les vagues impactent le bateau de trois façons principales :
Tangage : Mouvement de bascule du bateau dû à la hauteur de la vague.
Glissement : Force horizontale causée par la pente de la vague, qui déplace le bateau comme un surf.
Raccourcissement de la ligne de mouillage : La vague provoque un déplacement horizontal, réduisant la longueur effective de la ligne.
Calcul des forces liées aux vagues :
Tangage : La force est proportionnelle à la hauteur de la vague et à la longueur du bateau.
Glissement : La force est calculée à partir de l'accélération induite par la pente de la vague.
Raccourcissement : Ce calcul estime combien la ligne de mouillage se raccourcit à cause du tangage.
Formule :
𝐹𝑣𝑎𝑔𝑢𝑒=𝐹𝑡𝑎𝑛𝑔𝑎𝑔𝑒+𝐹𝑔𝑙𝑖𝑠𝑠𝑒𝑚𝑒𝑛𝑡+raccourcissement
où :
𝐹𝑡𝑎𝑛𝑔𝑎𝑔𝑒=𝑝𝑜𝑖𝑑𝑠×ℎ𝑎𝑢𝑡𝑒𝑢𝑟 𝑣𝑎𝑔𝑢𝑒 𝑙𝑜𝑛𝑔𝑢𝑒𝑢𝑟 𝑏𝑎𝑡𝑒𝑎𝑢
𝐹𝑔𝑙𝑖𝑠𝑠𝑒𝑚𝑒𝑛𝑡=𝑝𝑜𝑖𝑑𝑠 ×9.81×sin(𝑝𝑒𝑛𝑡𝑒𝑣𝑎𝑔𝑢𝑒)
- Force due au Courant La force exercée par le courant est proportionnelle à la surface latérale immergée du voilier (tirant d'eau multiplié par la largeur). La formule est :
𝐹𝑐𝑜𝑢𝑟𝑎𝑛𝑡=1-2×𝜌𝑒𝑎𝑢×𝑆𝑒𝑎𝑢×𝑉𝑐𝑜𝑢𝑟𝑎𝑛𝑡2
où :
𝜌𝑒𝑎𝑢=1025 𝑘𝑔/𝑚3 est la densité de l'eau de mer,
𝑆𝑒𝑎𝑢 est la surface projetée du voilier dans l'eau (largeur × × tirant d'eau),
𝑉𝑐𝑜𝑢𝑟𝑎𝑛t est la vitesse du courant en 𝑚/𝑠
- Élasticité des Amarres L'élasticité des amarres permet de réduire la force appliquée sur la ligne de mouillage. L'élasticité est définie par un pourcentage, par exemple 10%, ce qui signifie que la force est réduite de 10%.
Les forces totales sont la somme des forces dues au vent, aux vagues, et au courant, ajustées par l'élasticité des amarres.
Formule :
𝐹𝑡𝑜𝑡𝑎𝑙𝑒=𝐹𝑣𝑒𝑛𝑡+𝐹𝑣𝑎𝑔𝑢𝑒+𝐹𝑐𝑜𝑢𝑟𝑎𝑛𝑡
Puis ajustement avec l'élasticité des amarres :
𝐹𝑡𝑜𝑡𝑎𝑙𝑒_𝑎𝑗𝑢𝑠𝑡𝑒𝑒=𝐹𝑡𝑜𝑡𝑎𝑙𝑒×(1−eˊlasticiteˊ)
par contre il y a un point a voir dans la pratique des choses .
dans un premier temps les resultats des resistances et autre sont fait avec un calibrage neuf ..
que l'on defini comme étant le dimensionnement correcte a avoir ... mais quelques mois voir plusieurs mois apres il y a usure ..et jusqu'à quel pourcentage de diminution le systeme tient-il ?
Par contre il y a une autre approche ; on defini un echantillonnage minimum acceptable et on l'augmente du pourcentage de l'usure ..chez nous c'est 50% alors on remplace les elements (chaine,manilles etc
Une version plus poussé en cours avec :
calculforcerafale(vitesserafale, surfacefardage_totale):
Cette fonction calcule la force exercée par une rafale de vent sur le voilier.
Les rafales peuvent exercer des forces soudaines et intenses, potentiellement dangereuses pour l'amarrage.
La formule utilisée (0.5 * rhoair * vitesse^2 * surface * coefficienttrainee) est basée sur l'équation de la force de traînée en mécanique des fluides, adaptée aux conditions atmosphériques.
calcultensionamarres(forcetotale, nbamarres):
Cette fonction répartit la force totale entre les amarres.
Elle est importante pour évaluer si chaque amarre peut supporter la charge qui lui est imposée.
L'hypothèse d'une répartition égale est une simplification, mais elle donne une bonne estimation de base.
calculanglegite(forcelaterale, poidsvoilier, largeur_voilier):
Cette fonction utilise les principes de base de la statique pour estimer cet angle.
C'est une information importante car une gîte excessive peut compromettre la stabilité du bateau et modifier les forces sur l'amarrage.
evaluationrisque(chargeactuelle, charge_rupture):
Cette fonction catégorise le niveau de risque en fonction du rapport entre la charge actuelle et la charge de rupture. C'est un outil pour la prise de décision, permettant de visualiser rapidement les éléments les plus sollicités de l'amarrage.
calcullongueuronde(periode, profondeur) et calculnombreonde(longueur_onde):
Ces fonctions sont utilisées dans le modèle des vagues.
Elles sont basées sur la théorie des vagues en eau peu profonde pour comprendre comment les vagues interagissent avec le bateau.
theorie_airy(hauteur, periode, profondeur, x, t):
Cette fonction implémente la théorie des vagues d'Airy, qui est un modèle standard en océanographie pour décrire le mouvement des vagues.
Elle permet une modélisation plus précise des forces exercées par les vagues sur le bateau.
forcevagueamelioree(hauteurvague, periodevague, poidsvoilier, longueurvoilier, pente_vague, profondeur, time):
Cette fonction combine plusieurs aspects (pression dynamique, déplacement vertical, pente de la vague) pour donner une estimation plus complète de la force exercée par les vagues. C'est une amélioration significative par rapport à des modèles plus simples.
interactionventvagues(vitessevent, hauteurvague, periode_vague):
Cette fonction modélise l'interaction complexe entre le vent et les vagues. C'est un aspect qui peut avoir un impact significatif sur les forces totales exercées sur le bateau.
effetprofondeureau(vitesse_courant, profondeur):
Cette fonction ajuste la vitesse du courant en fonction de la profondeur.
Le comportement du courant change significativement en eau peu profonde, ce qui peut affecter les forces sur l'amarrage.
calculfrequencenaturelle(longueurvoilier, tiranteau) et detectionresonance(frequencenaturelle, periode_vague):
Fonction pour détecter les conditions de résonance, qui peuvent amplifier les mouvements du bateau.
La résonance est un phénomène physique complexe qui peut causer des dommages importants si elle n'est pas prise en compte.
distributionforcechaine(forcetotale, longueurchaine):
Cette fonction modélise la distribution non uniforme des forces le long de la chaîne.
La force est généralement plus élevée près du point d'attache au bateau.
effetabri(forcevent, anglevent, facteurabri):
Cette fonction prend en compte l'effet de protection offert par l'environnement.
C'est un facteur qui peut significativement réduire les forces du vent dans certaines configurations.
modelederiveavance(vitessevent, vitessecourant, anglevent, anglecourant, coefficient_forme):
Cette fonction offre un modèle plus complexe de la dérive du bateau, prenant en compte à la fois le vent et le courant.
La dérive affecte directement les forces exercées sur l'amarrage.
effetsdynamiques(masse, amortissement, raideur, forceexterne, t):
Cette fonction modélise les mouvements dynamiques du bateau (comme le pilonnement).
Par rapport à un modèle statique, les mouvements peuvent générer des charges cycliques importantes sur l'amarrage.
modelefatigue(charge, cycles, coefficientfatigue):
Cette fonction évalue l'accumulation de dommages dus à la fatigue des matériaux.
Pour l'évaluation à long terme de la sécurité de l'amarrage, car même des charges inférieures à la charge de rupture peuvent causer des défaillances si elles sont répétées sur de longues périodes.
Cette version n'est pas encore en ligne...
@calypso
L'usure est gérée de manière simplifiée :
Définition des coefficients d'usure :
l'utilisateur peut définir des coefficients d'usure pour différents composants :
kchaine = st.sidebar.numberinput("Coefficient d'usure de la chaîne (k)", minvalue=0.0001, maxvalue=0.01, value=0.001)
kamarre = st.sidebar.numberinput("Coefficient d'usure des amarres (k)", minvalue=0.0001, maxvalue=0.01, value=0.0005)
kmanille = st.sidebar.numberinput("Coefficient d'usure des manilles (k)", minvalue=0.0001, maxvalue=0.01, value=0.0008)
Ces coefficients représentent le taux d'usure de chaque composant.
Calcul de l'usure :
L'usure est calculée dans le modèle de fatigue, qui est appliqué différemment selon que l'option d'usure est activée ou non :
if applywear:
dommagefatiguechaine = modelefatigue(forcessegmentschaine[0], cycles, coefficientfatigue / kchaine)
dommagefatigueamarre = modelefatigue(tensionparamarre, cycles, coefficientfatigue / kamarre)
dommagefatiguemanille = modelefatigue(forcessegmentschaine[0], cycles, coefficientfatigue / kmanille)
dommagefatigue = max(dommagefatiguechaine, dommagefatigueamarre, dommagefatiguemanille)
else:
dommagefatigue = modelefatigue(forcetotale, cycles, coefficient_fatigue)
Modèle de fatigue :
La fonction modele_fatigue calcule l'accumulation de dommages dus à la fatigue :
def modelefatigue(charge, cycles, coefficientfatigue):
dommage = (charge / coefficient_fatigue) * cycles
return dommage
Ce modèle est basé sur la loi de Miner simplifiée, où le dommage cumulé est proportionnel à la charge appliquée et au nombre de cycles.
Impact de l'usure :
L'usure affecte le calcul du dommage par fatigue, qui est ensuite utilisé pour évaluer le risque global et fournir des avertissements à l'utilisateur. Par exemple :
if dommagefatigue > 0.1:
st.warning(f"Attention : Dommage par fatigue significatif détecté ({dommagefatigue:.4f}). Inspectez régulièrement les équipements d'amarrage.")
Limitations :
Ce modèle d'usure est simplifié et ne prend pas en compte des facteurs complexes comme les variations de conditions environnementales ou les différents types de matériaux...
L'usure est appliquée uniformément sur la durée de la simulation, ce qui peut ne pas refléter la réalité où l'usure pourrait être plus importante dans certaines conditions.
Améliorations possibles :
Intégrer un modèle d'usure plus sophistiqués qui tiennent compte de facteurs environnementaux spécifiques.
Permettre une variation dynamique des coefficients d'usure en fonction des conditions simulées.
Ajouter une visualisation de l'évolution de l'usure au fil du temps.