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 lequel ils sont installés, ce qui peut entraîner des données bruyantes et fluctuantes. Pour lisser ces données, il est possible d’utiliser un filtre numérique, tel que les moyennes mobiles, pour obtenir des courbes plus lisibles. Les moyennes mobiles sont calculées en prenant la moyenne des données sur une fenêtre glissante de taille fixe. Cela permet de réduire les fluctuations et de rendre les données plus faciles à interpréter. Les moyennes mobiles peuvent être utilisées pour exécuter des scénarios basés sur des seuils prédéfinis sans que les parasites ne viennent en perturber le fonctionnement.


Pour l'utilisation des variables dans les formules d'objets fonctions, je vous invite à consulter cet article

Principe

Pour filtrer la courbe analogique nous devons la transformer en une série de valeurs. Pour cela nous pratiquerons un échantillonnage, c'est à dire que nous relèverons une valeur à intervalle de temps régulier.

Prenons par exemple un échantillonnage réalisé à raison d'une mesure toutes les 100 millisecondes.

Les valeurs relevées sont alors additionnées dans un objet compteur pendant une seconde.

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

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.

L'inconvénient de cette méthode est qu'il faut réinitialiser le compteur lorsque la seconde est écoulée, pour réaliser la moyenne sur la nouvelle seconde en cours.

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.

Le diagramme :

Lissage numérique- diagramme 1.jpg

Fonctionnement

Le clignotant "ECHANTILLONNAGE" permet un relevé des mesures toutes les 100 millisecondes. 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 lors de la prise en compte du compteur suivant.


En fonction de la nature 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 (durée de l'échantillonnage). Cela a pour effet d'augmenter le nombre de valeurs relevées pour le calcul de la moyenne.

Le même effet peut être obtenu en modifiant la fréquence d'échantillonnage (clignotant Echantillonnage)

Nous avons automatisé cela en ajoutant 2 paramètres définissant respectivement la période durant laquelle les valeurs seront prises en compte dans la moyenne et la fréquence d'échantillonnage.

Si nous réglons par exemple la période à 2 secondes, nous aurons alors un échantillonnage de 20 valeurs.

La formule de la fonction a été ajustée pour calculer automatiquement la moyenne sur un nombre variable de valeurs en prenant compte des paramètres ajustables.

Lissage numérique- diagramme 2.jpg

Autre méthode sans compteurs

Voici une méthode de lissage par moyenne pondérée présentée par @Michel94