le 01-09-2019 07:38 AM
Bonjour,
Je réalise actuellement un petit programme qui permettrait d'arrondir ou adoucir les changements de pentes pour éviter d'avoir des variations brutal. J'aimerai donc que au voisinage d'un changement de pente (courbe théorique) pouvoir transformer la courbe pour avoir un changement plus doux. (pas très compréhensible comme explication je pense).
Je joins ce que j'ai déjà réalisé mais qui est bien trop brusque encore et mal proportionné. Si quelqu'un a ne serait ce qu'une idée de par ou commencer pour faire quelque chose de propre.
Merci
Résolu ! Accéder à la solution.
le 01-09-2019 12:50 PM
faire une moyenne sur 3 ou 5 valeurs consécutives par exemple, ça devrait fonctionner!
01-10-2019 08:12 AM - modifié 01-10-2019 08:21 AM
Puisque des droites relient les points, je calculerais des points intermédiaires par interpolation linéaire. Cela est assez simple. Ceci fait, un filtre médian avec une largeur à définir se chargera "d'arrondir les angles".
le 01-10-2019 09:27 AM
Petite précision, dans ce cas le médian n'est pas le filtre approprié. S'il a l'avantage de ne pas déphaser le signal, son effet de lissage ne sera pas suffisant.
Quelle devrait être l'allure approximative de la courbe adoucie ?
01-11-2019 07:58 AM - modifié 01-11-2019 07:59 AM
Avec cette méthode d'interpolation et un filtre Savitzky-Golay on peut obtenir une courbe de cette allure :
Evidemment l'effet peut être modifié par les paramètres du filtre. Un exemple avec un filtrage plus important :
Pas si mal, non ?
le 01-11-2019 08:48 AM
Bonjour et merci pour tes réponses je n'avais pas du tout le temps de passer sur le forum.
Et en effet c'est exactement ce que je cherchais à faire surtout pour la première courbe que tu as affiché. Pourrais-tu joindre le code ou du moins m'expliquer comment tu as fais ton interpolation?
Merci d'avance
le 01-11-2019 08:50 AM
Pas de souci, je te le transmets volontiers. Quelle version de LabVIEW ?
le 01-11-2019 08:57 AM
De préférence lv15
Pour info du pourquoi du comment : j'ai des courbes de températures client à faire sur un banc de test et l'objectif est "d'amortir" les transitions pour le matériels de façon à faire respecter les paliers de temps.
le 01-11-2019 09:10 AM
Le voici en LV2015.
Je suppose qu'il y aura une étuve. Si oui, elle lissera de toute manière la température, non ?
En tous les cas, s'il s'agit de lui envoyer des consignes de températures, définies par ce bout de code à transformer en VI avec des entrées et sorties, il faudra veiller à limiter le nombre de points lors de l'interpolation. Ou alors, il faut ajouter un post traitement pour réduire le nombre de points de cette courbe lissée sans quoi il ne sera de toute manière pas possible de les envoyer assez rapidement.
le 01-11-2019 09:38 AM