Discussions au sujet des autres produits NI

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

Générer et Lire des signaux tout en utilisant la mesure pour asservir le signal généré

Résolu !
Accéder à la solution

Bonjour,

 

j'utilise une carte NI USB 6212 16 bits (http://www.ni.com/fr-fr/support/model.usb-6212.html) me permettant de générer des signaux "propres" jusqu'à 25kHz car elle à une fréquence d'échantillonnage de 250kHz, elle permet de faire des acquisitions jusqu'à 400kHz (40kHz "propre" pour des signaux périodiques).

 

Mon problème est le suivant :

 

Je souhaite générer deux signaux sinusoïdaux de même fréquence appelés V et Vref sur les voies AO0 et AO1 et en même temps faire une mesure différentielle qui correspond à V - Vref sur la voie AI0 de la carte. Cette mesure me permettra ensuite d'asservir à chaque itération l'amplitude de la tension V afin que V - Vref = 0.

 

J'ai pendant plusieurs jours cherché, regardé des exemples et des idées que je trouvais sur le forum ce qui m'a permis de trouver un programme qui me permet de générer deux sinus et d'en acquérir la différence (sans utiliser l'assistant DAQmx) mais cela ne résout pas le problème.

 

En effet, le programme me permet de générer et de lire mais comme seule la lecture est dans la boucle while je n'ai pas moyen d'asservir la génération (elle ne prend en compte que les conditions initiales et ne s'actualise pas), j'ai essayé de la mettre dans la boucle, en vain je me retrouve avec des erreurs de tâche déjà en cours d’exécution...

 

De plus, je n'arrive pas à utiliser l'horloge d'échantillonnage de ma carte j'utilise ce qui est appelé la OnBoardClock (je pense que c'est celle du PC) en tant que source de mon horloge, dès que j'utilise d'autres voies comme les PFI, AO0SampleClock j'ai des erreurs lorsque j'arrête le programme et en lecture j'ai 0 ou bien aucun signal, j'utilise pour l'instant 250kHz pour la génération et la lecture. Pour finir, j'utilise un Trigger qui est je pense censé stabiliser ma mesure comme sur un oscilloscope mais cela ne fonctionne pas également surement à cause des autres problèmes cités auparavant. N'hésitez pas à me demander si je n'ai pas été assez clair/précis.

 

Je vous transmets mon VI en pièce jointe et je suis ouvert à toutes suggestions.

 

Merci d'avance,

 

NC

0 Compliments
Message 1 sur 3
2 686 Visites
Solution
Accepté par l'auteur du sujet Nicolas_Cn

Depuis j'ai trouvé comment asservir le système mais c'est un asservissement très lent pour ceux qui sont intéressés par la potentielle suite de la discussion et mon VI : https://forums.ni.com/t5/Discussions-au-sujet-de-NI/Optimiser-la-vitesse-d-%C3%A9xecution-de-boucles...

0 Compliments
Message 2 sur 3
2 640 Visites

Bonjour,  as tu essayé  les files d'attente avec la structure producteur - consommateur...?  Au pire avec un producteur- double consommateur 

0 Compliments
Message 3 sur 3
2 534 Visites