le 02-28-2014 03:10 AM
Bonjour à tous,
j'ai besoin d'un petit coup de main s'il vous plait.
J'ai un tableau de valeurs que je visualise sous forme de XY Graph. Mes données de départs X décroissent puis croissent dans le tableau, et j'aimerai pouvoir comparer les Y pour chaque X donné par chaque rampe.
Voici les graphes pour exemple :
Dans mon example j'ai un Y de 0.662 pour X=30 dans un sens, et Y=0.666 pour X=30 dans l'autre sens.
J'aimerai pouvoir déterminer le DeltaY à chaque X. Histoire d'etre encore plus drole, quand je dis X=30, ca peut etre 30.001 dans un sens et 29.998 dans l'autre sens... Mais à la limite, peu importe la valeur de X, j'aimerai surtout m'axer sur le Y que l'on voit sur le XY Graph.
Des idées ?
Merci d'avance,
David.
le 02-28-2014 03:24 AM
1 - pour chaque tableau, recherche valeurs et donc les indices immédiatement supérieures et inférieures (ou égales) à 30.
2 - De ces valeurs, calculer pente et interception et ainsi trouver le y correspondant à x=30.
3 - faire la différence.
Je sais pas si c'es très claire mais si tu as un peu de patience, je peux voir pour un vi d'exemple.
Je fais cela très régulièrement mais sous Excel.
le 02-28-2014 03:27 AM
Salut,
je te conseille d'utiliser le VI d'interpolation pour harmoniser tes tableaux Y avec les même valeur de X, puis de faire simplement la différence des 2 tableaux Y pour avoir le delta.
Cordialement,
Adeline.
le 02-28-2014 03:40 AM
Merci les amis,
cependant n'oubliez pas que je n'ai qu'un tableau, et l'indice du tableau où le X change de sens de variation n'est pas constant.
Je pense quand meme pouvoir séparer mon tableau en 2 tableau distincts, mais meme après interpolation, comment devrai-je faire pour soustraire les Y pour un X donné, ce n'est pas sur que chaque tableau commence au meme X ?
Je vous joins mon vi où sont mes valeurs si vous voulez mieux comprendre.
le 02-28-2014 04:14 AM
Voici un petit vi d'exemple.
Il peut être optimisé ou adapté pour ton besoin Mais il est là pour illustrer le principe.
le 02-28-2014 04:19 AM
Bon, pour éviter d'etre plus royaliste que le roi, ce que je cherche c'est que l'hystérésis entre ses 2 sens ne soit pas trop important, pas plus qu'une certaine valeur donnée. Donc meme si les X ne sont pas tout à fait égaux, ce n'est pas bien grave, du moment que les Y se trouvant proche du X n'ont pas trop d'écart.
le 02-28-2014 04:43 AM
et ca ?
adeline.
le 02-28-2014 10:49 AM
Adeline,
ta fonction a l'air de fonctionner, mais j'aurai besoin de qqs explications. Tu peux me détailler un peu le fonctionnement ? On a pas moyen de faire autrement qu'avec un noeud de rétroaction ?
le 03-03-2014 03:09 AM
voila, j'ai ajouté des commentaires... (mea culpa)
et une solution un peu plus efficace sans registre à décalage.
Par contre, il y a un effet de bord à 70. Je te laisse trouver une solution.
Pour accélérer l'execution, j'ai activé le parallélisme de la boucle For.
Pour accélérer davantage, tu peux diminuer l'échantillonnage (le nombre de points calculés)
A toi d'adapter maintenant.
Cordialement,
Adeline.
le 03-04-2014 07:38 AM
Merci Adeline,
après avoir retravaillé mon idée, en m'insiprant de vos solutions je suis arrivé à ceci.
En fait, comme je n'ai pas les memes X dans un sens comme dans l'autre, je ne pourrai jamais comparer les Y points à points. J'ai donc changer d'idée. J'ai trié mon tableau 2D dans l'ordre croissant des X, si bien que mes sens se trouvent mélangés, mais ce n'est pas grave, car je vais faire une analyse d'amplitude du nouveau tableau Y.
J'ai pour cela utilisé une fonction de tri 2D d'OpenG.
Ca marche bien, il me restera à faire une mise en forme conditionnelle de mon indicateur suivant la valeur mesurée.
Merci à vous deux.
David.