Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Moyenne de données sur un temps donné

Résolu !
Accéder à la solution

Bonjour !

 

Je voudrais savoir s'il était possible de faire une moyenne de données sur une intervalle définie;

 

En gros, mon programme général fais l'acquisition de pleins de données, toutes ces données finissent dans une boucle while "d'affichage". La période d'affichage se fait tout les 100ms.

 

J'ai un capteur assez sensible qui est compliqué de moyenner visuellement quand l'utilisateur fais tourner le programme, mais qui est nécéssaire pour avoir une idée en temps réel des valeurs que nous relevons.

Il m'a donc été demandé d'ajouter une fonctionnalité sur au programme, une sorte de bouton qui afficherait une moyenne des données que je perçois sur un temps donné.

 

Je vous met en pièce jointe ce que j'ai fais

 

Je comprends grossièrement LabVIEW, mais par exemple pour l'ajout de cette fonctionnalité j'hésitais entre une boucle condition et une structure évènement commandé par un booléen pour que l'utilisateur puisse avoir sa donnée.

 

Bref je vais m'arrêter là car je sens que je vais plus vous embrouiller qu'autre chose avec plus de détails...

Je reste alerte si vous avez d'autres questions concernant ma situation...

Merci d'avance !

0 Compliments
Message 1 sur 13
1 282 Visites

Bonjour,

 

Ci joint un exemple permettant de voir l'implémentation d'une moyenne glissante des X dernières données.

 

Try.png

0 Compliments
Message 2 sur 13
1 226 Visites
Solution
Accepté par l'auteur du sujet BgsLou

Bonjour,

 

Il existe la fonction moyenne PPP qui signifie point par Point. On ajoute chaque point de mesure par tour de boucle et récupère la moyenne sur le nombre de point spécifié. Cette fonction gère toute seule la période d'initialisation en attendant d'avoir tous les points de l'historique en ne faisant le calcul que sur les points déjà transmis.

 

Je pense que c'est exactement la fonction recherché

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 3 sur 13
1 215 Visites

J'oublie toujours les fonctions point par point ...

 

Dans la fonction précédement créée, cela me donne le même résultat pour un nombre de points fixe au démarage, par contre si je change le nombre de points ( exemple : chercher le meilleur profil en faisant varier le nombre de points dans l'historique) un décalage se crée. 

 

Si lors du changement de nombre de points la fonction Moyenne PPP est réinitialisée, le décalage n'existe que jusqu'à ce que le nouvel historique soit rempli.

 

Je ne saurais dire quelle solution est la plus "juste" lorsque le nombre de points varie mais pour un nombre fixe la solution de MaximeR est plus optimisée et surement celle à préférer par l'auteur.

Message 4 sur 13
1 212 Visites

Re, merci pour vos réponses !

 

Si je comprends bien le questionnement de Defaphe, et c'est d'ailleurs le plus gros obstacle qui se pose à ma situation ;

 

Ce n'est qu'à la première utilisation du bouton que la moyenne PPP se fera avec le nombre d'échantillon que je veux, en revanche, si je re-appuie sur le bouton, la moyenne garde l'ancien historique ? C'est ce que vous entendez par "décalage"?

 

L'utilisation de ce programme étant dans le cadre d'un banc de test moteur, si j'utilise cette moyenne sur le nombre de tour moteur par exemple, je suis à 1200 tr/min, je fais ma moyenne, puis je décide de faire un test à 2400 tr/min -> je re-appuie sur le bouton pour faire la moyenne -> aurais-je bien cette moyenne de n échantillons avec seulement mes points autour de 2400 ?

 

En vous remerciant par avance, 

 

Cordialement.

 

Lou

0 Compliments
Message 5 sur 13
1 206 Visites

Dans ce que nous proposons, la moyenne se calcule à chaque tour de boucle en ajoutant la nouvelle valeur aux anciennes.

Il n'y a pas de bouton calcul de moyenne, c'est du continu donc équivalent à une moyenne sur un nombre d'échantillons donné (assimilable à un temps). Cela peut visualiser des changements de vitesse d'un moteur en direct.

 

Si les données d'entrées sont un tableau alors une moyenne normale est suffisante. Cela correspond au test suivant :

- moteur tourne à XXX tr/min

- acquisition des données

- moyenne des données

- OK ou NOK

- recommencer pour autre valeur YYY tr/min

 

Par rapport au PNG de base, FF n'étant pas un tableau mais une donnée fixe, la moyenne n'a pas lieu d'être. 

 

Message 6 sur 13
1 199 Visites

Bonjour !

 

J'ai opté pour la méthode avec la moyenne PPP, je pense que je garderai les anciens indicateur, non lissés pour repérer les anomalies, et je les doublerais avec cette fameuse moyenne pour faciliter la prise de valeurs à régime constant...

 

En revanche, j'ai toujours un questionnement, à l'initialisation de mon programme, je rentre dans la commande "moyenne sur "x" secondes" le nombre de secondes sur lequel je veux mon échantillonnage (logique jusque là).

 

Comme indiqué sur ma pièce jointe, j'ai mis 3 indicateurs pour le nombre de tr/min, l'un directement à la source, l'autre avec une moyenne sur 1seconde, et le dernier avec une moyenne sur 10sec -> sur la face avant tout est raccord, l'aiguille 3 est en retard sur la 2, elle même en retard sur la 1.

 

En revanche, et c'est ici qu'est mon problème :

Une fois le programme lancé, j'ai beau changer la valeur de l'indicateur "moyenne sur "x" secondes", il ne s'actualise pas tant que je n'arrête pas le programme, et que je le relance... y'aurai-t-il un moyen de rendre cette fonctionnalité fonctionnelle ? Ou est-il impossible de changer la valeur du nombre d'échantillonnage de la moyenne PPP en cours de route ?

 

Merci d'avance,

 

Cordialement.

 

Lou

0 Compliments
Message 7 sur 13
1 188 Visites

Avec seulement un Png difficile de tout analysé. Par contre on voit deux commandes ayant le même nom, bien s'assurer de laquelle voit sa valeur changer. Avec une sonde il y a possibilité de voir l'heure de dernier passage dans la boucle et la valeur passée afin de s'assurer du fonctionnement.

Message 8 sur 13
1 186 Visites

Oui en effet désolé ! Le "moyenne sur "x" secondes" d'en dessous s'appelle en fait "moyenne sur "x" secondes 2" -> c'est juste l'étiquette qui n'est pas à la bonne taille pour voir le texte.

 

Mais comme mentionné dans mon dernier message, ce programme fonctionne comme je le veux ! C'est juste que je n'ai pas la possibilité de changer la valeur de la dite commande une fois que le programme est lancé...

0 Compliments
Message 9 sur 13
1 175 Visites

Le comportement de la fonction est normal. Il y a une option Initialisé en entrée. cette option est à vrai au premier appel et c'est à ce moment là que la longueur d'historique est prise en compte. Si tu veux changer à la volée la longueur d'historique, il faut mettre à vrai l'entrée Initialiser.

 

Tu peux faire en détectant que tu as changé la valeur de longueur d'historique.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Message 10 sur 13
1 174 Visites