Test Data & Analytics

Détecter la dérive des mesures avec TofuPilot

Découvrez comment TofuPilot évalue la dérive des mesures sur la ligne de base de chaque série, et comment écrire des tests qui la révèlent tôt.

JJulien Buteau
intermediate8 min de lecture14 mars 2026

La dérive des mesures est un glissement progressif de vos données de test au fil du temps. Les pièces passent encore aujourd'hui, mais la distribution se rapproche d'une limite de spécification. TofuPilot évalue automatiquement la dérive de chaque série de mesures numériques : la question n'est donc plus de savoir si quelqu'un a pensé à regarder le graphique. Ce guide explique ce qui déclenche une alerte de dérive, et comment écrire des tests qui rendent un vrai glissement visible tôt.

Causes de la dérive

La dérive a des causes physiques réelles. Les connaître vous aide à investiguer lorsqu'une alerte se déclenche.

Le vieillissement des instruments est la cause la plus fréquente. L'étalonnage d'un multimètre dérive sur plusieurs mois. Une résistance de mesure de courant change de valeur avec les cycles thermiques. Un capteur de force perd en rigidité avec l'usage.

L'usure des montages compte également. Les pointes pogo perdent leur force de ressort après des milliers de contacts. Les supports de test développent des connexions intermittentes. Les éléments d'alignement s'usent, modifiant le positionnement du DUT.

Les variations environnementales sont plus subtiles. Les changements saisonniers de température affectent les mesures analogiques. Les variations d'humidité impactent les lectures à haute impédance. Les fluctuations de tension du réseau ajoutent du bruit.

La variation des lots de composants provient de votre chaîne d'approvisionnement. Une nouvelle bobine de résistances d'un lot différent décale légèrement le comportement de votre circuit. Les composants sont tous dans les spécifications, mais le centre de la distribution s'est déplacé.

Comment TofuPilot détecte la dérive

Il n'y a aucun seuil à configurer. Chaque série de mesures est jugée par rapport à son propre historique, et non à une limite absolue.

TofuPilot entretient une moyenne lissée de la série et rejoue cette même statistique en de nombreux points du passé de la mesure. Ce rejeu répond à la seule question qui compte : de combien cette mesure bouge-t-elle habituellement ? L'écart actuel entre la moyenne lissée et cette ligne de base est ensuite exprimé en σ (sigma), c'est-à-dire en multiples de la variation normale propre à la série.

SévéritéSe déclenche à
Info≥ 3σ
Warning≥ 4σ
Critical≥ 5σ

Comme l'échelle est relative, un décalage de 2 mV sur une référence très stable et un décalage de 200 mV sur un rail bruité peuvent relever de la même sévérité. C'est précisément l'objectif : un seuil correct pour une mesure est faux pour la suivante.

Deux propriétés méritent d'être connues quand vous lisez une alerte :

  • Chaque référence a sa propre série. Deux variantes produit testées par une même procédure sont deux populations physiques : elles ne partagent jamais de ligne de base. L'alerte nomme la référence sur laquelle elle s'est déclenchée.
  • Les stations sont regroupées. Deux bancs qui exécutent la même procédure partagent une ligne de base, ce qui maximise la couverture mais dilue un problème confiné à un seul banc. Si le volume d'une station justifie sa propre ligne de base, ciblez-y une règle personnalisée.

Une série a besoin d'au moins 70 valeurs pour être évaluée, et de 100 pour débloquer l'échelle de sévérité complète. Si une nouvelle ligne ne produit aucune alerte de dérive, c'est généralement la raison. La méthode complète, y compris les garde-fous qui suppriment délibérément certaines alertes, est documentée dans la détection automatique.

Une alerte par événement, pas par mesure

Une cause physique unique déplace rarement une seule mesure. Un montage qui se dégrade ou un après-midi chaud déplacent d'un coup tout ce qui se trouve en aval.

TofuPilot regroupe la dérive automatique en une alerte par procédure et par référence. Chaque mesure qui dérive s'y rattache avec sa propre entrée dans la chronologie, et l'alerte nomme la plus forte. Elle ne se résout qu'une fois que toutes les mesures rattachées sont revenues à la normale. Une mauvaise nuit sur une ligne se lit donc comme un incident unique listant six mesures, et non comme six notifications distinctes.

Écrire des tests qui révèlent la dérive

La détection de dérive nécessite des mesures cohérentes et répétables avec une résolution suffisante pour voir de petits décalages. Utilisez des unités physiques, définissez des limites avec de la marge et évitez les arrondis.

L'arrondi mérite une insistance particulière : une valeur quantifiée sur une grille grossière ne porte aucune information en dessous d'un pas de cette grille, et TofuPilot ne signalera jamais un glissement plus fin que le pas qu'il détecte dans vos données. Enregistrer 2,4988 V plutôt que 2,5 V est ce qui rend la dérive précoce visible.

drift_sensitive_test.py
import openhtf as htffrom openhtf.util import unitsfrom tofupilot.openhtf import TofuPilot@htf.measures(    htf.Measurement("ref_voltage")    .with_units(units.VOLT)    .in_range(minimum=2.495, maximum=2.505),    htf.Measurement("temp_sensor")    .in_range(minimum=23.0, maximum=27.0),    htf.Measurement("adc_offset")    .in_range(minimum=-3, maximum=3),)def calibration_check(test):    """Mesure des points de référence sensibles à la dérive."""    test.measurements.ref_voltage = 2.4988    test.measurements.temp_sensor = 24.6    test.measurements.adc_offset = 1@htf.measures(    htf.Measurement("contact_resistance")    .in_range(maximum=0.100)    .with_units(units.OHM),    htf.Measurement("leakage_current")    .in_range(maximum=0.000001)    .with_units(units.AMPERE),)def fixture_health_check(test):    """Suivi des mesures liées au montage qui se dégradent avec le temps."""    test.measurements.contact_resistance = 0.0423    test.measurements.leakage_current = 0.00000012@htf.measures(    htf.Measurement("gain")    .in_range(minimum=19.5, maximum=20.5),    htf.Measurement("phase_margin")    .in_range(minimum=45.0),    htf.Measurement("output_impedance")    .in_range(maximum=2.0)    .with_units(units.OHM),)def analog_performance_test(test):    """Mesure des paramètres analogiques sujets à la variation des lots de composants."""    test.measurements.gain = 20.05    test.measurements.phase_margin = 52.3    test.measurements.output_impedance = 1.1def main():    test = htf.Test(        calibration_check,        fixture_health_check,        analog_performance_test,    )    with TofuPilot(test):        test.execute(test_start=lambda: "UNIT-1001")if __name__ == "__main__":    main()

La phase fixture_health_check est particulièrement utile. Une résistance de contact qui passe de 40 à 80 mohm en quelques semaines vous indique que le montage nécessite une maintenance, même si chaque lecture est encore conforme.

Séparer les mesures par canal plutôt que de les réduire à un seul pass/fail est l'autre habitude qui paie. Une dérive confinée au canal 3 est exploitable ; un générique « le test LED échoue plus souvent » ne l'est pas.

Investiguer une alerte de dérive

L'alerte vous dit qu'une série a bougé. Les données de mesure vous disent pourquoi.

Ouvrez la série dans TofuPilot et lisez d'abord le graphique de tendance : la dérive s'y manifeste par une pente constante. La carte de contrôle ajoute la vue statistique en signalant les motifs classiques de Western Electric — un point au-delà de 3σ, deux points sur trois consécutifs au-delà de 2σ du même côté, quatre sur cinq au-delà de 1σ du même côté, et huit points consécutifs du même côté de la ligne centrale.

Ciblez ensuite le périmètre avant de toucher au matériel. Filtrez par station et par plage de temps. Comme les stations partagent une ligne de base, une dérive causée par un seul montage usé apparaît comme un décalage global, et c'est le filtre par station qui sépare « le procédé a bougé » de « le banc 2 a bougé ».

Réagir à la dérive

Une fois la dérive confirmée, la réponse dépend de la cause.

Pour la dérive instrumentale, recalibrez et vérifiez avec une référence connue, puis vérifiez si votre intervalle d'étalonnage est trop long.

Pour l'usure du montage, inspectez et remplacez les composants usés. Suivez le nombre de cycles du montage et établissez la maintenance préventive à partir des données de dérive collectées.

Pour la dérive environnementale, corrélez avec les journaux de l'installation. Si la température est le facteur, améliorez le contrôle environnemental autour de la station ou ajoutez une compensation en température à la mesure.

Pour la variation des lots de composants, comparez les distributions avant et après le changement de lot. Si le décalage est significatif mais toujours dans les spécifications, la nouvelle ligne de base s'établira d'elle-même à mesure que la série accumule des valeurs. Si c'est limite, travaillez avec votre fournisseur sur des spécifications d'entrée plus strictes.

Une fois la cause corrigée, l'alerte se referme d'elle-même : la série doit mesurer un retour à la normale sur trois valeurs consécutives avant que TofuPilot ne la résolve, ce qui empêche une alerte de se fermer sur une seule lecture chanceuse.

Plus de guides

Mettez ce guide en pratique