Discussions au sujet de NI LabVIEW

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

Question : equation de courbe xy ; Est-ce possible?

Bonjour,

 

Je vous remercie d'avance de m'aider sur cette question.

 

Je suis actuellement embêté, je ne sais pas ce que je souhaite est possible, je vous explique :

 

-J'ai actuellement acquis des données qui sont enregistrés sur un Graph XY

 

Capture - presque parfait - courbe.png

 

Après l'acquisition, je suis en train de créer l'analyse des courbes.

 

Ma question est-ce qu'il y'a moyen de déterminer l'équation de la courbe rouge.

 

J'ai essayé plusieurs méthode mais aucune ne m'a données l'équation de celle-ci, peut être que l'ajustement sur ce type de courbe n'existe pas?

 

Voici le dernier code que j'ai utilisé :

 

Test.png

 

Peut être que je m'embête pour rien, à l'origine je voulais utiliser l'équation pour trouver les indices et les valeurs en abscisses pour y = 0.

 

Merci d'avance pour votre aide.

0 Compliments
Message 1 sur 15
4 645 Visites

Salut,

 

Je crois effectivement que tu t'embêtes pour rien. Pour trouver y=0, il te suffit de passer ton tableau de valeurs à la moulinette, et de recherche les indices des points où tu détectes un changement de signe, cad lorsque signe(y(n)) est différent de signe(y(n+1)).

Ceci étant fait, tu sais que y a pris la valeur 0 entre les indices n et n+1. Tu peux estimer un indice relatif en interpolant par rapport aux valeur n et n+1. Par exemple, si y(5) = -1 et y(6) = 4, on peut dire que y=0 pour un "indice relatif" de 5.2. Il te suffit ensuite de rechercher, toujours par interpolation, le x associé à cet indice de 5.2 pour avoir l'abssice. Si x(5)=10 et x(6) =12, apr exemple, x(5.2)=10.4.

 

J'espère avoir été clair!

Francis M
Message 2 sur 15
4 641 Visites

Oui, j'y avais pensé mais je n'arrivais pas à comparer tout mon tableau, je n'arrivais pas à comparer toutes les valeurs (mais je viens de penser à essayer l'incrémentation, faut que j'essaye ^^)

 

C'est la méthode que j'utilisais sur Excel

 

Le soucis avec cette méthode, c'est que lorsque ma courbe change de signe, j'aurai plusieurs 0 à un même changement de signe. je ne sais pas si tu me comprends?

 

1.PNG

 

quand tu dis moulinette, c'est une recherche dans un tableau 1D ?

0 Compliments
Message 3 sur 15
4 638 Visites

Oui, je parlais bien d'un tableau 1D, dans une boucle for.

 

Effectivement, si ton signal (bruité) coupe plusieurs fois de suite l'axe y=0 à des abscisses très proches, tu auras plusieurs valeurs de x très proches. Pour éviter ça, il te faudra soit filtrer le signsl y (petite moyenne glissante par exemple), soit déterminer une règle qui prenne, par exemple, la valeur moyenen de plusieurs x trouvés lorsqu'elles sont très proches.

Francis M
Message 4 sur 15
4 636 Visites

J'essaye ça ce soir, et je te tiens au courant

 

Merci 🙂

0 Compliments
Message 5 sur 15
4 636 Visites

Bonjour,

 

Je pense avoir trouver le code qu'il faut pour trouver les changements de signe mais je ne peux pas tester, il me manque un tunnel et je ne sais quoi mettre ^^

 

Vrai.PNG

 

 

Voici le cas vrai qui va comparer l'indice n et l'indice n+1, si c'est vrai je vais aller chercher dans mon tableau la valeur X correspondante à l'indice puis l'écrire dans un tableau.

 

Mais dans ma condition faux, je ne sais pas quoi mettre ... car si c'est faux, je ne veux rien

Faux.PNG

 

0 Compliments
Message 6 sur 15
4 612 Visites

Il ne faut pas faire une indexation auto en sortie de ta boucle for, mais utiliser un registre à décalage. Tu l'initialise ac un tableau de taille 0, et tu n'ajoutes un élément au tableau que si tu es dans la condition true. A false, tu gardes le tableau tel quel. Quelle version de Labview tu utilises? à partir de LV13, tu peux aussi faire une indexation conditionnelle...

Francis M
0 Compliments
Message 7 sur 15
4 609 Visites

Je ne connaissais l'indexation conditionnel, et j'utilise très peu les registres à décalages.

 

Après un petit tour sur google pour l'indexation, j'ai réaliser ceci :

 

Captureerreur.PNG

 

Le soucis c'est que je ne plus rien faire ni même enregistrer pour redémarrer labview ... même pas aller dans l'aide x) je pense que je me suis louper quelques part

 

J'ai couper labview et rallumer, et pu récupérer mon fichier, après essai je n'ai que des 0 dans mon zéros condition

0 Compliments
Message 8 sur 15
4 602 Visites

Essaie ça:

 

zeros.png

 

J'ai mis un graphe où on peut voir ce que ça donne:

graph.png

 

Francis M
0 Compliments
Message 9 sur 15
4 599 Visites

Par contre le pb de mémoire est peut-être du à la taille de ton tableau... attention aussi si tu utilises N = taille tableau dans ta boucle for, tu vas avoir du mal à trouver l'indice n+1 à la dernière itération... il faut en faire une de moins.

Francis M
0 Compliments
Message 10 sur 15
4 596 Visites