Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Arrondir/adoucir changement pente courbe

Solved!
Go to 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 Kudos
Message 1 of 11
(3,229 Views)

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

0 Kudos
Message 2 of 11
(3,204 Views)

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 of 11
(3,188 Views)

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 Kudos
Message 4 of 11
(3,176 Views)

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 of 11
(3,160 Views)

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 Kudos
Message 6 of 11
(3,147 Views)

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

0 Kudos
Message 7 of 11
(3,144 Views)

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 Kudos
Message 8 of 11
(3,143 Views)
Solution
Accepted by 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 Kudos
Message 9 of 11
(3,138 Views)

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 Kudos
Message 10 of 11
(3,130 Views)