Lissage des mesures analogiques

De GCE Electronics
Aller à la navigation Aller à la recherche

Introduction

Lissage numérique

Fonction lissage.jpg
Nom Lissage numérique
Famille IPX800 V5
Wiki créé le 14/12/2023
Wiki mis à jour le 14/12/2023
Auteur @fgtoul

Les capteurs analogiques sont souvent très sensibles à l'environnement dans lequels ils sont installés. Même en soignant le câblage et en essayant de minimiser les pertubations, il est très fréquent que les données remontées subissent du bruit et fluctent anormalement.

Il est possible de créer un lissage des données grâce à un filtre numérique afin d'avoir des courbes plus lisibles permettant l'exécution de scénario selon des seuils hauts ou bas prédéfinis.

Nous utiliserons des moyennes mobiles réalisées sur un échantillonnage rapide.


Principe

Prenons par exemple un échantillonnage réalisé à raison d'une mesure chaque milliseconde.

La valeur relevée est alors additionnée dans un objet compteur pendant une seconde.

Lorsque le temps est écoulé, un objet fonction divise ce total par 1000 afin de récupérer une valeur moyenne des mesures relevées pendant une seconde.

Cette méthode permet de récupérer une mesure moyenne pendant la seconde écoulée.

Grâce à cette méthode, Il est possible de récupérer un grand nombre de valeurs sur un temps assez court afin d'éliminer les pics dus au bruit.

Cependant, lorsque la seconde est écoulée, il faut réinitialiser le compteur pour reinitialiser le calcul de la moyenne sur la nouvelle seconde en cours, ce qui nous fait perdre les bénéfices du lissage.

Pour contourner cela, nous pouvons utiliser 2 compteurs qui seront alors activés alternativement.

Pendant qu'un compteur gardera en mémoire la moyenne calculée sur la seconde précédente, l'autre compteur permettra le calcul sur la seconde en cours.


Voici le diagramme :


Lissage numérique- diagramme 1.jpg


Fonctionnement

Le clignotant "MESURES" permet un échantillonnage des mesures à la milliseconde. A chaque front montant, la valeur du capteur est incrémentée dans le compteur dont l'entrée Enable est activée.

L'activation alternative des compteurs est faite par le clignotant "ALTERNANCE". Ce dernier se charge de désactiver un compteur pendant qu'il active et réinitialise l'autre.

La fonction récupère alors la valeur du compteur désactivé pour calculer la moyenne sur la seconde écoulée. Vous noterez dans la formule que la valeur d'un compteur est utilisée uniquement si c'est l'autre qui est actif.

Le résultat de la fonction sera réactualisé à chaque seconde écoulée.


En fonction des valeurs mesurées et du bruit généré par l'environnement (visible sur les courbes de mesures), il sera possible d'allonger les variables Ta et TB du clignotant ALTERNANCE.

Il faudra penser à réajuster la formule de l'objet fonction.

Dans l'exemple, nous avons une moyenne de 1000 valeurs car nous avons bien 1 mesure par milliseconde pendant une seconde.

Nous pourrions automatiser cela en ajoutant un paramètre définissant la période durant laquelle les valeurs seront prises en compte dans la moyenne.

Si nous réglons par exemple à 2 secondes, nous aurons alors un échantillonnage de 2000 valeurs.

La formule de la fonction a été ajustée pour calculer automatiquement la moyenne sur un nombre variable de valeurs.

Lissage numérique- diagramme 2.jpg