Bonjour, donc voilà dans le cadre de mon projet de BAC je dois faire un programme qui me permettra la chose suivante: je reçois des information qui viennent d'une éolienne et je doit faire la moyenne par heure de l'énergie produite en kw.h, la vitesse de rotation en tr/s et la vitesse du vent en km/h, puis la même chose pour une année. Donc voilà si une personne pourrais me venir en aide. Merci.
Pour avoir une moyenne glissante sur une heure l'idée c'est, pour une valeur donnée (vitesse par exemple) d'avoir un tableau qui contient les échantillons nécessaires pour 1h de données.
Si tu as une mesure par seconde, par exemple, tu auras besoin d'un tableau de 60 éléments.
Ensuite il faut implémenter ce qu'on appelle un "ring buffer", une sorte de tampon qui contiendra les 60 dernières valeurs, les plus anciennes étant automatiquement effacées.
Ca se fait avec 2 indexes qui pointent sur le premier et le dernier élément utilisés dans le tableau, qu'on fait repasser au début quand ils atteignent le dernier élément.
Avec ces deux indexes et un peu de calcul, tu sais combien d'éléments tu as effectivement dans ton ring buffer.
Il est alors facile d'en calculer la moyenne.
Cette méthode est la plus simple à comprendre, pas la plus économique en terme de mémoire. Un autre algo est décrit de façon plus formelle ici:
On n'a plus besoin de tableau mais simplement de garder un nombre réduit d'échantillons (dépendant de la taille de la fenêtre de moyenne et de la vitesse d'échantillonnage)
Bonjour TheBatmanPanda,
Donnes nous un peu plus de détails:
-Quelles sont les informations que tu reçois ?
-Dans quels formats ? à quelle fréquence ?
-Une fois les moyennes calculées, tu va en faire quoi ?
PS: puisque c'est pour le BAC, fais gaffe à l'orthographe.
Voilà, donc je reçois des valeurs float numérique d'un autre programme, qui fait les calculs et moi il me reste plus qu'à faire la moyenne de ses valeurs sur une heure. Et ensuite mes moyennes que j'ai calculé je dois les afficher sur un afficheur LED: http://www.adafruit.com/products/772
Désolé, mais tu n'as pas répondu complètement:
-Quelles sont les informations que tu reçois ?
-Dans quels formats ? à quelle fréquence ?
Par exemple:
je reçois le vitesse du vent en km/h en ASCII sur le port série toutes les secondes (faudra préciser le format)
Je reçois la vitesse de rotation de ..XXXX. en analogique (faudra préciser le nombre de volts par tr/mn).
etc.. etc..
Ensuite pour l'affichage, dire exactement ce que tu veux afficher et si il y à plusieurs pages d'écran.
Si ces données proviennent d'un autre programme, il faut savoir si c'est sur la même machine. Et dans ce cas, (c'est le cas le plus simple) dans quel format, tableaux ?