02-17-2015 10:33 AM - modifié 02-17-2015 10:34 AM
Bonjour à tous,
Je suis amené à effectuer la lecture d'encodeurs pour réaliser le contrôle de 4 moteurs DC.
Afin de réaliser quelques premiers tests, j'ai créé un VI qui ne consiste qu'à lire les encodeurs, tracer un graphique avec la position d'un des encodeurs et un autre graphique indiquant si la boucle cadencée (10kHz) finit dans les temps. Malgré le peu d'exécutions à effectuer, la boucle finit en retard en fin d'expérience (cf Figure). Ces retards ne sont pas observés à chaque expérience.
Auriez-vous une idée expliquant le caractère ponctuel du problème et comment le résoudre?
D'avance merci!
le 02-17-2015 04:34 PM
Hello Alvarvs,
Il y a assez peu de chance que les réponses que vous obtiendrez soient pertinentes, si vous ne nous donner pas plus de grains à moudre 😉
Avez-vous au moins un petit bout de code et quelques détails sur la configuration matérielle?
Merci
Flo
le 02-19-2015 08:13 AM
Bonjour,
Voici le Vi dans lequel se fait la configuration des encodeurs (module PXI TB-2715) ainsi que le VI où se fait la lecture de ceux-ci.
Merci pour votre aide!
le 02-20-2015 03:20 PM
Hello Alvarvs,
Nul besoin de boucle cadencée, ce n'est pas au soft de cadencé l'acquisition matérielle, la fonction de lecture renvoie les valeurs quand elles sont disponibles; une boucle while classique suffit.
Dans LabVIEW Aide>>Rercherche d'exemples... en recherchant "encodeur vous trouverez le vi suivant "Compteur - Lecture d'encodeur (horloge continue).vi"
Bonne soirée
Flo
le 02-21-2015 03:22 AM
Hello,
Merci pour votre réponse!
Le but final est de réaliser le contrôle des quatre moteurs, j'ai donc besoin d'avoir une boucle cadencée afin d'obtenir une période constante et d'assurer la stabilité de la régulation (Filtre de Kalman, régulateur PD, etc.).
Cependant, j'étais surpris de ne pas pouvoir atteindre une fréquence de plus d'1kHz sans retard dans la boucle.
J'ai donc disséquer le VI pour trouver les éléments problématiques et j'en suis arrivé aux encodeurs qui utilisés seuls ne permettaient pas de candencer à 1kHz. Après plusiseurs essais j'ai découvert qu'en supprimant la configuration du Z index, l'on pouvait cadencer à 1kHz, 10kHz étant par contre toujours problématique (cf figure du premier post).
Compte tenu des vi envoyés, voyez-vous une raison à ce problème et en particulier au fait que ces retards se trouvent en fin d'expérience et ne se produisent pas à chaque expérience?
Merci!
le 02-24-2015 09:37 AM
Etes-vous sur un système RT ou sur Windows?
ça me parait ambitieux de récuprérer un point toutes les 100µs sur un système cadencé sof si c'est en windows.
Pourquoi ne pas faire une acquisition bufferisée plutôt?
Flo