Différences entre les versions de « Lissage des mesures analogiques »

De GCE Electronics
Aller à la navigation Aller à la recherche
 
(15 versions intermédiaires par le même utilisateur non affichées)
Ligne 11 : Ligne 11 :
  | auteur = @fgtoul
  | 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.
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.


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.
Pour l'utilisation des variables dans les formules d'objets fonctions, je vous invite à consulter [https://wiki.gce-electronics.com/index.php?title=Utilisation_des_variables 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.


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


Prenons par exemple un échantillonnage  réalisé à raison d'une mesure chaque milliseconde.
Les valeurs relevées sont alors additionnées dans un objet compteur pendant une seconde.


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 10 afin de récupérer une valeur moyenne des mesures relevées pendant cette 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.
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.
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.
Pour contourner cela, nous pouvons utiliser 2 compteurs qui seront alors activés alternativement.
Ligne 36 : Ligne 33 :
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.
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 : ==
Voici le diagramme :




[[Fichier:Lissage numérique- diagramme 1.jpg|sans_cadre|1250x1250px]]
[[Fichier:Lissage numérique- diagramme 1.jpg|sans_cadre|1250x1250px]]


 
== Fonctionnement ==
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.
 
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.
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.
Ligne 51 : Ligne 45 :
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.
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.
Le résultat de la fonction sera réactualisé à chaque seconde écoulée lors de la prise en compte du compteur suivant.
 




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.
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.


Il faudra penser à réajuster la formule de l'objet fonction.
Le même effet peut être obtenu en modifiant la fréquence d'échantillonnage (clignotant Echantillonnage)


Dans l'exemple, nous avons une moyenne de 1000 valeurs car nous avons bien 1 mesure par milliseconde pendant une seconde.
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.


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 la période à 2 secondes, nous aurons alors un échantillonnage de 20 valeurs.


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 en prenant compte des paramètres ajustables.


La formule de la fonction a été ajustée pour calculer automatiquement la moyenne sur un nombre variable de valeurs.
[[Fichier:Lissage numérique- diagramme 2.jpg|sans_cadre|1164x1164px]]


[[Fichier:Lissage numérique- diagramme 2.jpg|sans_cadre|1354x1354px]]
== Autre méthode sans compteurs ==
[https://forum.gce-electronics.com/t/fonction-de-lissage-des-valeurs-analogiques/17909?u=fgtoul Voici une méthode de lissage par moyenne pondérée présentée par @Michel94]

Version actuelle datée du 15 décembre 2023 à 08:57

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