Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction Traitement de signal

Détection d'évanouissement ou de pic

    2 août 2018 à 7:54:13

    Bonjour à tous, 

    Mon problème est un problème appliqué à la physique mais ma question va porter sur les outils mathématiques.

    Contexte :

    Je serai amené dans un futur proche à recevoir des signaux qui seront des mesures prises sur des machines industrielles (Voltage, Ampérage etc...).

    La fréquence d'échantillonnage sera de 200Khz (200 000 mesures par secondes).

    Je souhaiterais disposer d'un outils mathématiques qui puisse détecter les pics et les chutes de tension ou courant, aussi courts que soient-il (de l'ordre de la milliseconde).

    La stabilité des grandeurs est un point crucial de la qualité sur le produit fini.

    J'ai trouvé un travail similaire en ligne fait par une entreprise mais les algorithmes et outils utilisés ne sont pas cités.

    Voici un screen de leur travail 

    (la partie supérieur représente les mesures, la partie inférieure / le traitement des mesures par l'outil qui m'intéresse...)

    Au vu des courbes, j'ai d'abord pensé à des moyennes mobiles, mais vu l'échelle de l'axe des ordonnées, il s'agit d'une échelle logarithmique apparemment.

    Sur la première photo, un des axe se nomme "Log Likelihood", qui se traduit par "log de vraisemblance".

    Dans mon esprit le log de vraisemblance s'utilise pour de la détection de une fois le signal filtré, démodulé etc...

    Ma question est quel outil mathématique est utilisée pour ce faire selon vous ?

    Je compte travailler en python si vous connaissez des librairies qui permettent de faire ce genre de chose,  et pourquoi pas en temps réel, je suis preneur.

    Je vous remercie d'avance,

    Cordialement

    Tack

    • Partager sur Facebook
    • Partager sur Twitter
    "On apprend de tout, tout s'apprend,l'apprentissage est un tout."
      3 août 2018 à 10:21:57

      Bonjour, 

      J'avais réalisé un travail sur le même sujet, je peux vous donner quelques qui avaient plutôt bien fonctionné. Un bon réflexe à adopter lorsqu'on s'occupe de signaux expérimentaux est le pré-traitement : ça revient surtout à enlever les outliners et à lisser légèrement les données. Dans votre cas, c'est particulièrement important, vu que vous vous concentrez sur le comportement de la courbe en elle même, et donc ça évitera les "faux-positifs". Ensuite pour la détection en elle même, Il y a plusieurs moyens, mais celui que j'avais gardé est l'utilisation d'un switch : un booléen b =0, lorsque l'ordonnée est spécifique (très haut ou très bas par rappport à celle d'un régime stationnaire) alors on met le switch à 1. tant qu'on reste au dessus de cette valeur critique, le switch reste à 1. lorsqu'on revient dans une ordonnée qui relève à nouveau du non spécifique, le switch retourne à 0 et ainsi de suite. pour la valeur de départ, prenez juste la première valeur, ou faites une moyenne sur les quelques premiers points, en spécifiant qu'il y a une période d'apprentissage sur votre algo. On pourrait utiliser des dérivées, mais ça me semble compliqué vu les saccades que comporte vos graphes. 

      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2018 à 2:36:29

        Bonjour Jean Charles, 

        Je vous remercie de votre reponse, oui les derive et le switch ne conviennent pas parfaitement du fait des frequences elevees.

        Cependant j'ai trouve la fonction findchangepts sur Matlab qui utilise les maximum de vraisemblance. Cela resout mon probleme. Merci encore 

        Desole je nai pas d'accent car j'ecris depuis un clavier QWERTY.

        Tack

        • Partager sur Facebook
        • Partager sur Twitter
        "On apprend de tout, tout s'apprend,l'apprentissage est un tout."

        Fonction Traitement de signal

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown