Filtrage médian pour les valeurs de niveau de carburant

Le filtrage permet de lisser les valeurs du capteur de niveau de carburant pour éliminer les valeurs aberrantes des données (fluctuations du niveau de carburant) qui peuvent survenir en raison de divers facteurs. Ces facteurs incluent les vibrations du moteur, les surfaces de route irrégulières, l’accélération et le freinage, les montées et descentes, la précision d’étalonnage, la forme et le matériau du réservoir, les impuretés du carburant, les obstructions dans le réservoir et le système de carburant, les variations de température, et plus encore.

Il existe deux types de filtrage disponibles dans les propriétés du capteur de niveau de carburant : médian et médiane adaptatif. La différence réside dans le fait que, pour le premier type, vous devez spécifier manuellement le niveau de filtrage approprié. Pour le filtrage médian adaptatif, vous n’avez pas besoin de le faire, car le niveau de filtrage est sélectionné automatiquement en fonction des données de l’unité.

Cet article explique le filtrage médian ordinaire (non adaptatif).

Niveau de filtrage

Le niveau de filtrage détermine le nombre de messages qui doivent former la fenêtre de filtrage, c’est-à-dire être utilisés pour calculer la valeur lissée du niveau de carburant.

Plus le niveau de filtrage est élevé, plus les données sont lissées.

Si le niveau de filtrage est de 0, trois messages sont utilisés pour le lissage. Dans les autres cas, le nombre de messages formant la fenêtre de filtrage est calculé comme suit :

  • si la valeur du champ est un nombre impair de 1 à 255, elle est multipliée par 5 ;
  • si la valeur est un nombre pair de 2 à 254, elle est multipliée par 5 et 1 est soustrait du résultat.

Ainsi, plus le niveau de filtrage est élevé, plus de données sont utilisées pour calculer la valeur lissée.

Sélection d’un niveau de filtrage approprié

Vous devez sélectionner le niveau de filtrage en fonction de la fréquence à laquelle l’appareil génère des messages et de la précision des données fournies par le capteur de niveau de carburant. Plus les données sont précises, plus le niveau de filtrage nécessaire pour les lisser est faible.

Pour sélectionner un niveau de filtrage approprié, suivez les étapes ci-dessous :

  1. Créez un modèle de rapport avec un graphique sur le niveau de carburant. Pour ce faire, ajoutez un graphique du type Régulier au modèle de rapport et sélectionnez les éléments Niveau de carburant et Niveau carburant traité pour ce graphique.

  2. Exécutez ce rapport sur l’unité concernée pour afficher le tableau de niveau de carburant.

  3. Augmentez progressivement le niveau de filtrage à partir de 0, en réexécutant le rapport à chaque fois. Pour modifier le niveau de filtrage sans passer à un autre onglet, utilisez l’icône à côté du nom de l’unité pour accéder à ses propriétés.
    Lors du contrôle du résultat, analyser les intervalles de plusieurs jours avec les remplissages et les baisses.
    Exemple de graphique lorsque le niveau de filtrage est de 0 :

    Exemple de graphique lorsque le niveau de filtrage est de 2 :

  4. Cessez d’ajuster le niveau de filtrage lorsque la ligne Niveau carburant traité n’affiche plus de sauts brusques, mais s’aligne toujours sur les valeurs moyennes de la ligne Niveau de carburant.
    Exemple de graphique lorsque le niveau de filtrage est de 4 :

Utilisez le niveau de filtrage le plus bas qui vous convient. Un niveau de filtrage trop élevé peut fausser les relevés du capteur de niveau de carburant.

Algorithme de filtrage médian

Dans le filtrage médian, le lissage des données est appliqué à chaque message en utilisant l’algorithme suivant :

  1. Le système détermine la fenêtre de filtrage, c’est-à-dire le nombre de messages qui seront utilisés pour obtenir la valeur lissée. Ce nombre dépend du niveau de filtrage. Par exemple, si le niveau de filtrage est de 2, la largeur de la fenêtre de filtrage est de 9 messages.
  2. Le système place la fenêtre de filtrage de sorte que le message pour lequel la valeur lissée est calculée soit au centre de la fenêtre. Autrement dit, il doit y avoir un nombre égal de messages avant et après ce message. Seuls les messages avec des valeurs valides de niveau de carburant sont pris en compte.
  3. Par exemple, sur l’image ci-dessous, vous pouvez voir comment la fenêtre de filtrage avec une largeur de 9 messages est positionnée. Le message pour lequel la valeur lissée du niveau de carburant est calculée est mis en surbrillance en bleu. Il est au centre de la fenêtre. Les messages en vert forment les parties gauche et droite de la fenêtre. Le rouge indique un message sans données de niveau de carburant (non pris en compte), tandis que le noir représente les messages qui ne sont pas inclus dans la fenêtre de filtrage.

  1. Les valeurs de tous les messages de la fenêtre de filtrage, y compris le message central, sont triées par ordre croissant. Par exemple, si la fenêtre de filtrage comprend les valeurs suivantes :
    41, 52, 49, 46, 50, 42, 42, 39, 47
    en ordre croissant, nous obtenons
    39, 41, 42, 42, 46, 47, 49, 50, 52
  2. Le système détermine la valeur au centre de la chaîne résultante (dans l’exemple ci-dessus, il s’agit de 46). Cette valeur est considérée comme le niveau de carburant lissé pour le message en question.

Lissage en temps réel

Lors du traitement des données en ligne, la valeur lissée est calculée uniquement lorsque le système reçoit suffisamment de messages de l’unité pour compléter la partie droite de la fenêtre de filtrage. Plus le niveau de filtrage spécifié dans les propriétés du capteur de niveau de carburant est élevé et moins fréquemment l’appareil envoie des données, plus ce processus prendra du temps.

Exemple : Un niveau de filtrage de 2 est spécifié dans les propriétés du capteur de niveau de carburant, et l’appareil envoie des données une fois par minute. Comme la largeur de la fenêtre de filtrage est de 9 messages (calculée par la formule 2×5-1), il doit y avoir 4 messages à gauche et 4 messages à droite de la valeur à lisser. Par conséquent, il faudra 4 minutes pour remplir la partie droite de la fenêtre de filtrage et obtenir la valeur lissée.

Lissage dans les rapports

Si le message dont la valeur doit être lissée se trouve au début de l’intervalle de rapport et qu’il n’y a pas suffisamment de messages avant lui pour former la partie gauche de la fenêtre de filtrage, alors la valeur du premier message dans l’intervalle est utilisée à la place des valeurs manquantes. Si le message dont la valeur doit être lissée est à la fin de l’intervalle et qu’il n’y a pas suffisamment de messages après lui pour former la partie droite de la fenêtre, alors la valeur du dernier message est utilisée à la place des valeurs manquantes.

Exemple : Sur l’image ci-dessous, la valeur lissée pour le message 7 est calculée.

L’intervalle de rapport inclut les messages 5 à 9, et la fenêtre de filtrage manque de deux messages à la fois dans les parties gauche et droite. Dans ce cas, la fenêtre de filtrage est complétée de la manière suivante : la valeur du message 5 est utilisée à la place des messages 3 et 4, et la valeur du message 9 est utilisée à la place des messages 10 et 11.

Comme les valeurs réelles des messages 3, 4, 10 et 11 diffèrent de celles utilisées dans la fenêtre de filtrage (comparez les lignes grises et noires), la valeur lissée finale pour le message 7 sera moins précise.

Ainsi, le résultat lissé sera moins précis au début et à la fin de l’intervalle si les données du capteur de niveau de carburant ont changé immédiatement avant et après l’intervalle.

Si vous générez un rapport pour un intervalle de temps relativement large, puis divisez cet intervalle en parties et générez des rapports pour chacune d’elles, le résultat lissé à la fin et au début des petits intervalles peut ne pas correspondre aux valeurs au même moment dans le rapport pour le grand intervalle.

Exemple : L’utilisateur exécute un rapport pour la semaine du 1er janvier au 7 janvier. Dans ce rapport, la valeur lissée du capteur de niveau de carburant est de 300 litres le 2 janvier à 00h00. L’utilisateur exécute ensuite un rapport uniquement pour le 2 janvier. Dans ce rapport, la valeur lissée à 00h00 est de 299 litres.

Si vous trouvez une erreur dans le texte, sélectionnez-la et appuyez sur Ctrl+Entrée.

Signaler une erreur

Votre message a été envoyé. Merci !

Une erreur s'est produite lors de l'envoi du formulaire

Télécharger le fichier PDF
Télécharger le document Word

Voir aussi