Pat_du_03 Posté(e) 11 décembre 2014 Partager Posté(e) 11 décembre 2014 Bonjour, Je souhaiterais savoir quelle est la formule mathématique "officielle" permettant de calculer la direction moyenne du vent à partir de mesures ponctuelles pendant un intervalle de temps donné. Par exemple, supposons que j'effectue une mesure de la direction du vent exprimée en degrés (0-360°) toutes le minutes, quelle sera formule pour obtenir la direction moyenne du vent sur une heure (60 mesures) ? Evidemment, si j'ai deux mesures de direction donnant par exemple 5° et 355°, la direction moyenne n'est pas (5+355)/2 ! Merci Lien à poster Partager sur d’autres sites More sharing options...
@lain29 Posté(e) 11 décembre 2014 Partager Posté(e) 11 décembre 2014 Bonjour, Il faut réaliser une moyenne vectoriel. J'utilise par exemple le code C suivant pour mes calculs : //----------------------------------------------------------------------------- // Calcul de la vitesse moyenne et de la direction moyenne du vent // // moyenne vectorielle (composantes sur les axes est/ouest (X) et sud/nord (Y)) // // la direction du vent est référencée par rapport au nord magnétique ; // il s'agit de la direction de provenance du vent. //----------------------------------------------------------------------------- void Calcul_Vent_moyen(double *tab_val, double *tab_dirv, int nb_vent, double *vvent_moy, double *vvent_max, double *dirmoy_vent) { int i, j; double Vx, Vy, sVx, sVy, V, Vmax; sVx = sVy = Vmax = 0.0; if (nb_vent == 0) // pas de mesures ? { *vvent_max = *vvent_moy = 0.0; *dirmoy_vent = 0.0; return; } // somme des vecteurs et détermination de la vitesse maxi for (i=0; i { // composantes X et Y Vx = tab_val * cos((270.0 - tab_dirv) * DEG_EN_RAD); Vy = tab_val * sin((270.0 - tab_dirv) * DEG_EN_RAD); // somme des composantes sVx += Vx; sVy += Vy; // détermination de la vitesse maxi V = sqrt(Vx*Vx + Vy*Vy); if (V > Vmax) Vmax = V; } *vvent_max = Vmax; // calcul de la direction moyenne if ((sVx != 0.0) && (sVy != 0.0)) *dirmoy_vent = 270.0 - atan2(sVy, sVx) * RAD_EN_DEG; else *dirmoy_vent = 0.0; if (*dirmoy_vent > 360.0) *dirmoy_vent -= 360.0; // calcul de la vitesse moyenne *vvent_moy = sqrt(sVx*sVx + sVy*sVy) / ((double)nb_vent * 1.0); } Il y a peut-être plus simple mais ce calcul fonctionne très bien avec un capteur Vaisala WXT510 Alain Lien à poster Partager sur d’autres sites More sharing options...
adri34 Posté(e) 11 décembre 2014 Toulouse Partager Posté(e) 11 décembre 2014 Tu peux faire la somme des résultantes Nord Ouest Est et Sud. Je m'explique, c'est assez simple. Tu prends un repère Ouest ->est en abscisse et Sud -> nord dans l'ordre de croissance. Pour calculer une résultante, par exemple Nord, il faut additionner : (f N= fréquence vent du Nord ...) RN = f N +0.92 * f NNO + 0.92* f NNE + 0.707 f NO + 0.707* f NE + 0.38* f ONO + 0.38* f ENE <=> RN = f N + 0.92* (f NNO + f NNE) + 0.707* (f NE +f NE) + 0.38* (f ENE+ f ONO) Faire de même pour l'ouest l'est le sud. Ensuite résultante sud nord R SN = RN-RS (positif si plus de vent de nord, négatif si plus de vent de sud. Résultante ouest est R OE = RE-RO (positif si plus à l'est et négatif vers ouest. On a un vecteur de coordonnées (R OE ; R SN) partant de l'origine, c'est la direction moyenne du vent. Ce n'est pas si compliqué. Il faut juste calculer la fréquence de chaque vent mais ça sur excel c'est facile. Après c'est juste un calcul assez simple, des soustractions des additions des multiplications ^^ Lien à poster Partager sur d’autres sites More sharing options...
Pat_du_03 Posté(e) 17 décembre 2014 Auteur Partager Posté(e) 17 décembre 2014 Merci à vous deux, Je pense que je vais plutôt m'orienter vers le calcul de la direction dominante plutôt que la moyenne, nettement plus simple à déterminer. Lien à poster Partager sur d’autres sites More sharing options...
Pierre_Madrague Posté(e) 29 novembre 2015 Partager Posté(e) 29 novembre 2015 Bonjour, Il faut réaliser une moyenne vectoriel. J'utilise par exemple le code C suivant pour mes calculs : //----------------------------------------------------------------------------- // Calcul de la vitesse moyenne et de la direction moyenne du vent // // moyenne vectorielle (composantes sur les axes est/ouest (X) et sud/nord (Y)) // // la direction du vent est référencée par rapport au nord magnétique ; // il s'agit de la direction de provenance du vent. //----------------------------------------------------------------------------- void Calcul_Vent_moyen(double *tab_val, double *tab_dirv, int nb_vent, double *vvent_moy, double *vvent_max, double *dirmoy_vent) { int i, j; double Vx, Vy, sVx, sVy, V, Vmax; sVx = sVy = Vmax = 0.0; if (nb_vent == 0) // pas de mesures ? { *vvent_max = *vvent_moy = 0.0; *dirmoy_vent = 0.0; return; } // somme des vecteurs et détermination de la vitesse maxi for (i=0; i { // composantes X et Y Vx = tab_val * cos((270.0 - tab_dirv) * DEG_EN_RAD); Vy = tab_val * sin((270.0 - tab_dirv) * DEG_EN_RAD); // somme des composantes sVx += Vx; sVy += Vy; // détermination de la vitesse maxi V = sqrt(Vx*Vx + Vy*Vy); if (V > Vmax) Vmax = V; } *vvent_max = Vmax; // calcul de la direction moyenne if ((sVx != 0.0) && (sVy != 0.0)) *dirmoy_vent = 270.0 - atan2(sVy, sVx) * RAD_EN_DEG; else *dirmoy_vent = 0.0; if (*dirmoy_vent > 360.0) *dirmoy_vent -= 360.0; // calcul de la vitesse moyenne *vvent_moy = sqrt(sVx*sVx + sVy*sVy) / ((double)nb_vent * 1.0); } Il y a peut-être plus simple mais ce calcul fonctionne très bien avec un capteur Vaisala WXT510 Alain Bonjour, Je recherche moi aussi une façon de calculer la direction moyenne du vent. Votre calcul m'intéresse et je souhaiterais savoir pourquoi est-ce que la valeur de l'angle est soustraite à 270 (cos((270.0 - tab_dirv) ou sin((270.0 - tab_dirv) puis dans le calcul moyen (*dirmoy_vent = 270.0 - atan...) est encore soustrait de 270. Quelle en est l'explication ? Merci d'avance Pierre Lien à poster Partager sur d’autres sites More sharing options...
marcoco Posté(e) 1 décembre 2015 Léguevin (31) Partager Posté(e) 1 décembre 2015 Bonjour, celà provient du décallage entre le 0° à "l'Est" du cercle trigonométrique et le 0° au Nord pour le vent. L'utilisation des sinus, cosinus, tangente etc... nous donne une valeur trigonométrique de l'angle par rapport à l'Est. J'espère avoir été clair. Lien à poster Partager sur d’autres sites More sharing options...
Pierre_Madrague Posté(e) 2 décembre 2015 Partager Posté(e) 2 décembre 2015 Merci, c'est très clair ! Pierre Lien à poster Partager sur d’autres sites More sharing options...
adri34 Posté(e) 16 décembre 2015 Toulouse Partager Posté(e) 16 décembre 2015 Tu peux prendre le 0 où tu veux et n'importe quel angle dans n'importe quel sens possède un sinus cosinus tangente. Dans la méthode que j'ai donné plus haut les nombres 0.38 0.707 et 0.92 correspondent à cos77.5 cos45 cos22.5 correspondant aux composantes par rapport à l'axe centre -> nord sud est ou ouest des directions de la rose des vents Lien à poster Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant