Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Arrondir/adoucir changement pente courbe

Résolu !
Accéder à la solution

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



"Don't be silly. I'm a fan of anything that tries to replace actual human contact." Sheldon cooper
0 Compliments
Message 1 sur 11
3 183 Visites

faire une moyenne sur 3 ou 5 valeurs consécutives par exemple, ça devrait fonctionner!

0 Compliments
Message 2 sur 11
3 158 Visites

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".

Message 3 sur 11
3 142 Visites

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 ?

0 Compliments
Message 4 sur 11
3 130 Visites

Avec cette méthode d'interpolation et un filtre Savitzky-Golay on peut obtenir une courbe de cette allure :Ex2.jpg

 

Evidemment l'effet peut être modifié par les paramètres du filtre. Un exemple avec un filtrage plus important :Ex3.jpg 

Pas si mal, non ?

Message 5 sur 11
3 114 Visites

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



"Don't be silly. I'm a fan of anything that tries to replace actual human contact." Sheldon cooper
0 Compliments
Message 6 sur 11
3 101 Visites

Pas de souci, je te le transmets volontiers. Quelle version de LabVIEW ?

0 Compliments
Message 7 sur 11
3 098 Visites

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.



"Don't be silly. I'm a fan of anything that tries to replace actual human contact." Sheldon cooper
0 Compliments
Message 8 sur 11
3 097 Visites
Solution
Accepté par l'auteur du sujet B_From

Le voici en LV2015.

Lissage courbe.png

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.

 

0 Compliments
Message 9 sur 11
3 092 Visites

Serait-il possible de me le convertir en VI? le snipet ne marche pas il me l'importe que en image je ne comprend pas pourquoi.

Merci



"Don't be silly. I'm a fan of anything that tries to replace actual human contact." Sheldon cooper
0 Compliments
Message 10 sur 11
3 084 Visites