Asservissement numérique d'un moteur
Asservissement de vitesse numérique pour système embarqué
On cherche à réaliser l'asservissement de vitesse numérique d'un moteur à courant continu, associé à un réducteur, entraînant les roues d'un robot mobile.
Codeur incrémental Moteur à courant continu
Roue
Réducteur
Le moteur à courant continu, à aimants permanents, est commandé par sa tension d'induit U. Le codeur incrémental est utilisé comme capteur de vitesse. La boucle d'asservissement est réalisée ainsi :
E Consigne X Codeur incrémental Microcontroleur
ε
+ Régulateur
U1 Hacheur
U Moteur
Vitesse moteur Ω
-
R(z)
Un microcontroleur permet de réaliser : - le comptage des impulsions, en sortie du codeur incrémental, pendant des durées successives de 5 ms. X est une variable numérique, résultat du comptage de ces impulsions. - par interruption (toutes les 5 ms), l'élaboration de la consigne numérique E, le calcul de la variable numérique d'écart ε = (E-X), le calcul de la variable numérique U1 résultant du choix de l'algorithme de régulation (U1 est codée sur 10
bits) et la génération de signaux de sortie en PWM qui permettent de commander un hacheur (fréquence de la PWM = 10 kHz). La durée de l'interruption correspond à la période d'échantillonnage : T = 5ms. Si la valeur de U1 calculée est négative, alors la polarité du hacheur est inversée. Si le sens de rotation du moteur est inversé, le bit de direction du codeur incrémental permet d'interpréter X comme une valeur négative. Le rapport de réduction du réducteur n'intervient pas dans l'étude de l'asservissement car il est situé en dehors de la boucle. 1 – Capteur de vitesse Un codeur incrémental permet de mesurer la vitesse et d'indiquer le sens de rotation. Il fournit 1024 pulsations par tour moteur. La mesure de vitesse est effectuée par comptage de ces impulsions sur une durée de 5ms. La mesure de la vitesse est donc donnée à + 1 impulsion/5ms. A quelle variation de vitesse correspond 1