Discussions au sujet de NI LabVIEW

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

Dérivé d'une courbe

Bonjour,

 

J'ai un tableau de point issus d'un fichier .CSV à partir de ces données je effectue une dérivé, tout va bien sauf que dans le tableau du dérivé j'ai un point négatif à -4294967295 ce qui me parait un peu surprenant car je connais la forme que je devrai obtenir. Mise à part le dernier point tout est correcte. Avez vous une idée car je dois encore dériver 3 fois à partir de la courbe initial 'S_Curve.CSV' pour trouver en dernier lieu le Jerk. Merci d'avance. Ci-joint le VI et le fichier de la courbe initial. Je ne sais probablement pas utiliser la fonction de la dérivé    

Tout télécharger
0 Compliments
Message 1 sur 9
3 674 Visites

Salut

 

Je pense que c'est juste le VI qui est fait comme ça. Dans ma compréhension, il devrait te retourner en sortie un tableau plus petit que le tableau en entrée, car il ne peut pas calculer la différence sur quelque chose qui n'existe pas (le dernier élément)... Donc tes valeurs doivent être bonnes, sauf la dernière qui vaut -2^32.

 

Je ne sais pas si je suis clair.

CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 2 sur 9
3 643 Visites

@GSXR100038 wrote:

Bonjour,

 

J'ai un tableau de point issus d'un fichier .CSV à partir de ces données je effectue une dérivé, tout va bien sauf que dans le tableau du dérivé j'ai un point négatif à -4294967295 ce qui me parait un peu surprenant car je connais la forme que je devrai obtenir. Mise à part le dernier point tout est correcte. Avez vous une idée car je dois encore dériver 3 fois à partir de la courbe initial 'S_Curve.CSV' pour trouver en dernier lieu le Jerk. Merci d'avance. Ci-joint le VI et le fichier de la courbe initial. Je ne sais probablement pas utiliser la fonction de la dérivé    


La dernière valeur dans ton csv est 4294967295 et tu utilises 0 comme condition finale. C'est pour ça que tu obtiends -4294967295. Utilise la dernière valeur de ton csv comme valeur finale et la derive finiera à 0.

 

Ben64

0 Compliments
Message 3 sur 9
3 637 Visites

Bonjour Ben64,

Effectivement cela fait 0 si je rentre la dernière valeur de mon tableau en entrée (probablement il a besoin X(i+1) pour calculer les point ensuite), en revanche 2^32 (cela fait du 32 bits si je le fais un cast en 32 bits en entrée de la fonction dérivée et en sortie j'obtiens le même résultat. Un autre question mais qui est totalement liée. Si j'ai une fonction en entrée (de genre y= 1-cos(wt+angle)) quel VI dois je utiliser pour rentrer cette fonction afin de trouver la dérivée de cette fonction. Et à partir valeurs dans un tableau en connaissant la forme de l'équation est-ce qu'il est possible de retrouver la fonction ? Je pense à l'outil Matlab qui est un toolkit qu'on pourrait intégrer dans l'environnement de labVIEW par exemple. Merci d'avance de votre réponse.       

 

0 Compliments
Message 4 sur 9
3 620 Visites

Rebonjour,

 

Après avoir dérivé la fonction j'obtiens des valeurs dans un fichier (ce sont des valeurs de la vitesse : si on dérive une courbe de position). Maintenant si je prends les points de la courbe de la vitesse et que je fais l'intégrale dans ce cas je dois les points de ma courbe de position. Mais alors surpris je n'ai pas de tout les même valeurs. Encore une fois je sais probablement pas utiliser la fonction intégrale car je rentre les valeurs correctes en entrée de la fonction d'intégrale. Ci-joint le fichier Excel (la première colonne ce sont des valeurs à retrouver, la deuxième colonne ce sont des valeurs issues de l'intégrale), et le VI qui permet de réaliser cette opération.  Merci d'avance

  

Tout télécharger
0 Compliments
Message 5 sur 9
3 611 Visites

Por ton intégrale, je pense que tes conditions initiales ne sont pas bonnes. Sans celles-ci LabVIEW te renverras toujours un mauvais résultat.

 

Je ne suis pas sûr de comprendre tes deux autres questions :

  • Pour le y = 1 + cos(...), as-tu déjà le tableau de valeur ou veux tu d'abord calculer la dérivée de l'équation avant de calculer les valeurs ?
  • Tu voudrais retrouver l'équation d'une courbe à partir d'un tableau de points ?
CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 6 sur 9
3 602 Visites

Bonjour,

 

Je verrai pour les bornes de mon intégrale mais aussi les Règles : Règle trapézoïdale, Règle de Simpson, Règle de Simpson 3/8 et Règle de Bode. Je ne sais pas la quelle faut-il que je prenne ? Pour le y = 1+ cos(...) je n'ai pas de points dans un tableau ou fichier j'ai que cette équation et je voudrai dériver cette fonction pour 1000 points par exemple et stocker dans un tableau ou fichier, le but étant de chercher un profil de vitesse (que j'envoie au moteur). Quand je dérive une courbe de position de genre cos (..) en principe j'ai un -sin (..) qui représente la courbe de vitesse. Pour l'autre question "Tu voudrais retrouver l'équation d'une courbe à partir d'un tableau de points ?", je sais que vous êtes très doués et intelligents mais je crois qu'il y a des limites quand même ou alors ça existe mais dans les films.               

0 Compliments
Message 7 sur 9
3 595 Visites

Tu ne retrouveras pas les points exactes à l'aide de la fonction Integral x(t). Tu retrouveras une approximation tentant de minimiser l'erreur à l'aide des conditions initiale et finale. Par contre comme tu à utilisé la méthode directe de dérivation Yi = 1/dt*(Xi+1 - Xi) il est possible de créer une fonction permettant de retrouver les valeurs initiales:

Intégrale de la vitesse-1.pngIntégrale de la vitesse-2.png

Il n'y a pas de vi dans LabVIEW qui donnera la fonction résultante d'une opération de dérivation, cela nécessite un logiciel spécialisé comme Maple mais par contre si on a un tableau de point il me semble que c'est possible d'obtenir les coefficients d'une approximation polynomiale.

 

Ben64

 

0 Compliments
Message 8 sur 9
3 572 Visites

Bonjour Ben64,

 

Merci pour ta réponse, je n'ai pas essayé ton code mais j'imagine que c'est de retrouver les conditions (départ et finale) mais en revanche je ne vois pas pourquoi on ne pourra pas agir directement sur le VI (intégrale) en se renseignant sur les Règles : Règle trapézoïdale, Règle de Simpson, Règle de Simpson 3/8 et Règle de Bode. Mais aussi les conditions (départ et finale) comme tu le fais dans le diagramme que tu as posté. Je n'ai Maple mais en revanche j'ai un module LabVIEW MathScript RT Module je ne sais pas si je peux lire des datas (à partir d'un fichier qui représentent mes points de la Vitesse) et ensuite j'effectue une intégrale avec le module MathScript RT pour retrouver mes points de départ qui est la position. Que pensez vous de cette méthode ?       

0 Compliments
Message 9 sur 9
3 558 Visites