Bonjour à tous,
Je ne sais pas si je suis dans le bon forum (sinon merci de m'indiquer la voie !), mais je souhaite trouver un moyen de supprimer des valeurs aberrantes, pas dans un ensemble de données, mais dans un flux de données.
Ce flux est généré par un régulateur PID, sous forme de signal dont je vous fais grâce des détails, mais qui fournit une valeur en % chaque seconde. Ces valeurs sont récupérées par un automate programmable, qui les exploite et peut en faire des calculs simples.
Le problème à résoudre : le régulateur envoie des données entachées d'un certain "bruit", et fournit parfois des valeurs carrément aberrantes. Exemple ci-dessous :
0,204253
0,204353
0,204057
0,203862
0,204146
0,203241
0,273856
0,269893
0,198947
0,204200
0,204540
0,205390
0,204444
0,204188
0,279051
0,204530
0,203454
0,208714
0,209387
0,210538
0,209179
0,208428
Je souhaite donc trouver un moyen (un algo en quelque sorte) de repérer ces valeurs et de les supprimer. J'ai fait un premier essai en "lissant" les données par une moyenne des 5 dernières valeurs glissantes. Cela permet de réduire les aberrations mais ce n'est pas efficace quand il y en a 4 ou 5 qui se suivent.
Autre élément important dans ce problème : la moyenne globale est susceptible de changer. Dans l'exemple ci-dessus, les valeurs "normales" tournent autour de 0,205, mais ce chiffre peut augmenter ou baisser dans la durée. Les valeurs aberrantes d'une période peuvent très bien être normales à un autre moment.
Auriez-vous des idées sur un moyen de résoudre ce défi ?
Merci d'avance pour votre aide, et toutes les idées, mêmes embryonnaires, sont les bienvenues !
Partager