Discussions au sujet des autres produits NI

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

Echantillonnage à cadence variable

Résolu !
Accéder à la solution
Bonjour,

Je heurte à un problème que je n’arrive pas à résoudre.
Je voudrai afficher une mesure en modifiant la fréquence d'acquisition via une commande. Je m'explique : la commande doit me permettre de m'afficher 1 point tous les secondes jusqu'à 10 secondes sur un graphe qui conserve 60 dernières valeurs.

J'ai essayé avec le VI que je vous mets à votre disposition via les nœuds de propriétés mais cela ne fonctionne pas.

Par ailleurs, est ce que gérer cela avec une boucle cadencé variable est fiable?

Merci d'avance de l'aide que vous pourriez m'apporter!
0 Compliments
Message 1 sur 20
4 124 Visites

Salut,

 

Ton problème peut se résoudre simplement. Fais une acquisition à fréquence fixe (le plus grand multiple commun de toutes tes fréquences possibles), et supprime des points par programmation. En gros, fais une acquisition à 1Hz dans ton cas, et par programmation, supprime 2 points sur 3 si tuveux une période de 3Hz.

 

Tu peux aussi utiliser un timing soft (boucle cadencée ou autre). Vu que tes acquisitions se font à des fréquences très lentes, ça ne pose pas de soucis.

 

Quoi qu'il en soit, je ne pense pas que tu puisses modifier à la volée la fréquence d'une tâche DAQmx qui est déjà en cours d'utilisation.

 

Bonne continuation.

0 Compliments
Message 2 sur 20
4 107 Visites

Bonjour,

 

Tout comme l'a proposé Mathieu Steiner, il est conseillé de sur-échanillonner les mesures pour se rapprocher au plus prèt de la la fréquence voulue. Il existe des modules de décimation continue, unique ou de tableau 1D (voir imprim. écran joint). Vous devriez trouver ce dont vous avez besoin avec la décimation en continue.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

0 Compliments
Message 3 sur 20
4 097 Visites

Bonjour et merci pour votre réponse.

Je ne suis pas sur d'avoir bien compris pour les valeurs des paramètres. J'ai déjà des difficultés à maîtriser les notions de bases (rate = vitesse, samples per channel = échantillons par voies et sample mode = nombre d'échantillons)   Pourriez vous metttre à ma disposition un VI afin de facilité la compréhension.

 

Cordialement.

0 Compliments
Message 4 sur 20
4 094 Visites

Bonjour,

 

Pour les notions de bas :

  • Rate : fréquence d'échantillonnage. C'est le nombre de fois par seconde que chaque échantillon va être acquis. A 1kHz, ça sous entend que 1000 points peuvent être acquis en 1sec donc qu'il y aura 1ms entre chaque échantillonnage.
  • Samples per channel : nombre d'échantillons à acquérir. Si vous mesurez une voie et que Samples per channel = 100 alors après avoir acquis 100 mesures, la tâche vous retournera un tableau de ces 100 points.
  • Sample mode : type d'acquisition. Soit elle est finie donc après avoir acquis"Sample per channel" échantillons la tâche s'arrête d'elle même. Soit elle est continue dans ce cas après avoir acquis les 100 échantillons elle relance automatiquement les acquisitions jusqu'à ce que soit vous qui stoppiez cette tâche.

Pour vos acquisitions, quelle est la plage des fréquences d'acquisitions que vous utiliserez? Rate et Samples per channel pourront être calculés selon cette plage.
Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

Message 5 sur 20
4 086 Visites

Bonjour,

 

Merci d'avoir répondu à mon problème. Votre réponse est vraiment pertinence, cela m'a permis de me rafraichir la mémoire.

 

Je souhaite d'acquérir un échantillon (point de mesure) tous les secondes jusqu'à 10 secondes. Pour le cas d'une seconde, je déduit que la fréquence d'acquisition est de 1Hz et de 0.1Hz pour 10 secondes.

 

Cordialement

0 Compliments
Message 6 sur 20
4 060 Visites

Bonjour,

 

Donc le principe de la décimation serait d'acquérir de manière fixe les données puis de prendre un point sur X pour obtenir une periode d'acquisition différente.

 

Supposons que Fe soit 1Hz, que le nombre d'échantillons soit de 10 dans le cas où vous voulez :

  • acquérir à 1sec : pas compliqué vous prenez tous les points qui arrivent
  • acquérir à 10sec : il suffit de prendre le premier point du tableau et ainsi de suite (tableau de 10points, 1sec entre chaque points donc si vous n'en prenez qu'un ça fait un rapport de 1x10 = 10sec)
  • acquérir à 1.25sec : là il n'y a pas de possibilité car on ne pet pas prendre tous les "1.25" points soit 1 point sur 2 ou 1 point sur 1 (soit 1sec ou 2sec, ça donne une grande marge d'erreur). On voit que Fe est trop petite.

 

Pour pallier au dernier souci il faut prendre un Fe plus grand, par exemple avec Fe = 100Hz et le nombre de points à 1000 :

  • acquérir à 1sec : prendre 1 point sur 100 ((1/100)*(1/1))
  • acquérir à 10sec : prendre 1 point sur 1000 ((1/100)*(1/10))
  • acquérir à 1.25sec :prendre 1 point sur 125 ((1/100)*(1/1.25))

 

Le VI joint pourrait vous être utile.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

0 Compliments
Message 7 sur 20
4 052 Visites

Bonjour,

Une solution est de faire l'acquisition à une fréquence de 1Hz et de faire un petit algorithme afin de sélectionner les échantillons voulus( tous pour 1 point toute les secondes, 1 sur 10 pour un point toute les 10 secondes) et limités le nombre d'échantillons à 60.

Voici un petit Vi d'exemple.

Cordialement

Yann C.

France

0 Compliments
Message 8 sur 20
4 050 Visites

Bonjour,

 

Merci beaucoup pour votre contribution et votre rapidité à tous les deux.

Vous proposez deux bonne méthodes que je conserve dans mes archives.

 

Par ailleurs, j'ai utilisé la méthode de YannC pour simplifier mon code car j'ai plusieurs courbes à afficher. Mais j'ai un petit souci d'incompatibilité quand j'envoie sur le registre à décalage.

Je vous le mets en pièce jointe.

 

Merci d'avance pour votre aide.

Tout télécharger
0 Compliments
Message 9 sur 20
4 012 Visites

Salut,

 

Clique droit sur la primitive "Array to cluster" puis sélectionne "Cluster size..."

Il faut qu'elle matche la taille de 10 que tu as défini dans ta constante avant la boucle.

 

Plus de fil brisé après ça

 

A+

Message Edited by Mathieu Steiner on 05-27-2009 05:35 PM
0 Compliments
Message 10 sur 20
4 001 Visites