Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 24/12/2020 2:15:50

exCorbac
Membre
Lieu : Felletin (23500)
Inscription : 6/02/2019
Messages : 26

Calcul des changements de cap et de vitesse en fonction du vent

Bonjour à tous,

Il n'est pas rare de devoir naviguer sans l'aide d'un VOR ou d'un NDB, par exemple pour rejoindre un aérodrome secondaire sans aide de navigation à proximité.
Pour cela, à l'aide de la carte du simulateur, on définit une direction (cap) théorique à une vitesse moyenne connue, pour pouvoir atteindre l'objectif en temps et en heure. Cependant, il est bien entendu que le vent (de vitesse et de direction constante dans ce modèle), s'il y en a, dévie la trajectoire théorique et modifie la vitesse moyenne désirée. Il est donc nécessaire de corriger sa direction et sa vitesse pour contrecarrer les effets du vent et arriver à l'objectif selon le temps imparti.

Le problème pour calculer les variations de direction et de vitesse nécessaires peut être résolu graphiquement avec la méthode du triangle (voir la figure):
- le premier côté (en bas sur la figure) correspond à la vitesse théorique moyenne orientée selon le cap théorique,
- le deuxième côté (à droite sur la figure) correspond à la vitesse du vent orientée selon la direction du vent, (attention : la direction du vent donnée par la météo est la PROVENANCE du vent, donc sa direction réelle est sa provenance - 180, en degrés)
- le troisième côté (en haut sur la figure) correspond à la vitesse pratique moyenne orientée selon le cap pratique. C'est ce dernier côté qui donne les informations dont on a besoin : vitesse pratique (Vp) et déviation du cap pratique par rapport au cap théorique (θ).

Cependant, il n'est pas très pratique d'avoir une planche à dessin, un rapporteur et une règle graduée dans le cockpit (ou chez vous devant votre ordinateur) hmm
Heureusement, une calculatrice scientifique peut suffire car on peut calculer tout cela grâce à la trigonométrie et au théorème de Pythagore smile

Calculons d'abord la vitesse pratique moyenne qui convient :
Regardons la figure. Selon Pythagore, la longueur du troisième côté (autrement dit la vitesse pratique moyenne Vp qu'il va falloir tenir), élevée au carré, est égale à la somme des carrés de :
- d'une part, la vitesse théorique Vt moyenne additionnée de la composante de la vitesse du vent Vv par le cosinus de 180-l'angle α en degrés entre le cap théorique et la direction du vent (cos(180-α)),
- d'autre part, la composante de la vitesse du vent Vv par le sinus de 180-l'angle α en degrés (sin(180-α)).
Attention : pour calculer α, il faut toujours soustraire la direction du vent au cap théorique. Sinon, les calculs donneront des résultats erronés.
On peut simplifier cela en sachant que :
- le cosinus de 180-l'angle α en degrés est égal à - le cosinus de l'angle α : cos(180-α) = - cos(α),
- le sinus de 180-l'angle α en degrés est égal au sinus de l'angle α : sin(180-α) = sin(α).
Traduisons tout cela algébriquement :
Vp^2 = (Vt - Vv cos(α))^2 + (Vv sin(α))^2
Puis, selon le calcul exposé sur la figure : Vp^2 = Vt^2 - 2VtVv cos(α) + Vv^2
On peut donc calculer Vp comme étant la racine carrée de l'expression précédente.

Calculons maintenant la variation d'angle θ entre le cap théorique et le cap pratique :
On sait que la tangente d'un angle est égale au rapport entre le sinus de l'angle et le cosinus de l'angle. Sur notre figure, tan(θ) = (Vv sin(α))/(Vt - Vv cos(α)). En utilisant la fonction inverse de tangente (tan^-1), sur votre calculatrice scientifique, vous pouvez calculer θ = tan^-1((Vv sin(α))/(Vt - Vv cos(α))).

Exemple :
Vous souhaitez voler à une vitesse moyenne de 110kt selon le cap théorique de 72°. Le vent constant observé a une vitesse de 9kt en provenance de 200° (et se dirige donc vers 20°). L'angle α est donc de 200 - 180 - 72 = 52°.
Vp^2 = (110 -9 cos(52))^2 + (9 sin (52))^2 = 10962
En calculant la racine carrée de ce nombre, on obtient une vitesse pratique moyenne de 104,7kt. Il va donc falloir diminuer un peu votre vitesse pour ne pas arriver en avance à votre objectif.
La variation du cap est θ = tan^-1((9 sin(52))/(120 - 9 cos(52))) = 3,87°. Vous devez donc corriger votre direction de 3,87°, c'est à dire vous diriger vers le cap 72+3,87 = 75,87°

Je vous propose un script bash (utilisable sur Ubuntu et dérivés) pour calculer tout cela rapidement. Malheureusement, je n'ai pas trouvé comment obtenir dans le script la fonction tan^-1(x). A moins que l'un d'entre-vous ait un tuyau pour cela, il vous faudra donc juste utiliser votre calculatrice scientifique pour calculer θ à partir de sa tangente donnée par le script.

#!/bin/bash

calc () {
    eval "$1=$(echo "$2" | bc -l)"
}
REPEAT=1
while [ $REPEAT = "1" ]
do
    echo "VARIATIONS CAP ET VITESSE EN FONCTION DU VENT"
    echo "Vitesse du vent                  :"; read VV
    echo "Direction du vent                :"; read capv
    echo "Vitesse de l'avion (théorique)   :"; read VA
    echo "Direction de l'avion (théorique) :"; read capa
    calc pi "scale=10; 4*a(1)"
    calc alpha "($capa - $capv)*$pi/180"
    calc VP "scale=4; sqrt($VA^2 + $VV^2 - 2*$VA*$VV*c ($alpha))"
    calc tantau "scale=5; (($VV*s ($alpha))/($VA-($VV*c ($alpha))))"
    echo
    echo "Vitesse de l'avion (pratique)                                   =" $VP
    echo "tanTau = tangente de la variation d'angle (°) sur la direction théorique de l'avion =" $tantau
    echo
    echo "Répéter ? (y/n)"
    read QREPEAT
    if [[ ! $QREPEAT = "y" ]] && [[ ! $QREPEAT = "Y" ]]; then REPEAT=0; fi
done
unset all
exit

Enregistrez ce code dans un nouveau fichier texte. Une fois ce fichier fermé, donnez lui une permission d'éxecution afin de pouvoir le lancer directement dans un terminal.

J'espère que cette publication vous sera utile smile

Bons vents et vols à tous.

Dernière modification par exCorbac (27/12/2020 3:11:33)


-=exCorbac=-
"The owls are not what they seem. Especially in FlightGear." (David Lynch & exCorbac)
Version FG: next, OS: Linux Mint 20.2 64-bit (cinnamon 5.0.7), GC: AMD Radeon R9 380X 4Go, CPU: AMD FX8350 8-core 4GHz, RAM: 12Go DDR3 1333MHz, Ecrans: Samsung U28E590DS 2560x1440 (Freesync, DP), Dell 2407WFP-HC 1920x1200 (DVI), Thrustmaster T.Flight Stick X

Hors ligne

#2 24/12/2020 11:17:28

ctesc356
Membre
Inscription : 18/05/2010
Messages : 3 483

Re : Calcul des changements de cap et de vitesse en fonction du vent

Bonjour,
intéressant mais... suis allergique aux maths smile

Malheureusement, je n'ai pas trouvé comment obtenir dans le script la fonction tan^-1(x). A moins que l'un d'entre-vous ait un tuyau pour cela, il vous faudra donc juste utiliser votre calculatrice scientifique pour calculer θ à partir de sa tangente donnée par le script.

On peut exécuter  du code python dans un script bash:
https://unix.stackexchange.com/question … ash-script
c'est peut-être une solution... ou carrément écrire le script en python qui semble mieux fourni question fonctions mathématiques.

Dernière modification par ctesc356 (24/12/2020 11:18:03)


Intel i5-9400F, 16Go Ram, Nvidia GTX1660Ti, Linux Mint

Hors ligne

#3 24/12/2020 14:04:06

rominet
Membre
Inscription : 23/03/2019
Messages : 186

Re : Calcul des changements de cap et de vitesse en fonction du vent

Une autre possibilité depuis le shell ou un script : utiliser la fonction 'a' de la bibliothèque mathématique de bc :

$ echo '4*a(1)' | bc -l
3.14159265358979323844

(car Arctan(1) = pi/4...).


Debian GNU/Linux, driver libre pour carte Radeon HD 4670, FG 'next', 8 Go de RAM

Hors ligne

#4 24/12/2020 15:49:10

exCorbac
Membre
Lieu : Felletin (23500)
Inscription : 6/02/2019
Messages : 26

Re : Calcul des changements de cap et de vitesse en fonction du vent

Finalement, j'ai trouvé la fonction a (x) dans bc qui permet de calculer l'arctangente (ou tan^-1). Merci de m'avoir aiguillé, Rominet smile Je ne devais pas avoir les yeux en face des trous lorsque j'ai consulté la documentation de bc roll
Voici donc le script bash finalisé, intégrant cette fonction.

#!/bin/bash

calc () {
    eval "$1=$(echo "$2" | bc -l)"
}
REPEAT=1
while [ $REPEAT = "1" ]
do
    echo "VARIATIONS CAP ET VITESSE EN FONCTION DU VENT"
    echo "Vitesse du vent                   :"; read VV
    echo "Provenance du vent (donnée METAR) :"; read capv
    echo "Vitesse de l'avion (théorique)    :"; read VA
    echo "Direction de l'avion (théorique)  :"; read capa
    calc pi "scale=10; 4*a(1)"
    calc capv "$capv-180"
    calc alpha "($capa - $capv)*$pi/180"
    calc VP "scale=3; sqrt($VA^2 + $VV^2 - 2*$VA*$VV*c ($alpha))"
    calc tau "scale=5; (a (($VV*s ($alpha))/($VA-($VV*c ($alpha)))))*180/$pi"
    echo
    echo "Vitesse de l'avion (pratique)                              =" $VP
    echo "Variation d'angle Tau entre les caps théorique et pratique =" $tau"°"
    echo
    echo "Répéter ? (y/n)"
    read QREPEAT
    if [[ ! $QREPEAT = "y" ]] && [[ ! $QREPEAT = "Y" ]]; then REPEAT=0; fi
done
unset all
exit

Bons vents et vols à tous smile

Dernière modification par exCorbac (27/12/2020 3:14:37)


-=exCorbac=-
"The owls are not what they seem. Especially in FlightGear." (David Lynch & exCorbac)
Version FG: next, OS: Linux Mint 20.2 64-bit (cinnamon 5.0.7), GC: AMD Radeon R9 380X 4Go, CPU: AMD FX8350 8-core 4GHz, RAM: 12Go DDR3 1333MHz, Ecrans: Samsung U28E590DS 2560x1440 (Freesync, DP), Dell 2407WFP-HC 1920x1200 (DVI), Thrustmaster T.Flight Stick X

Hors ligne

Pied de page des forums