Outils pour utilisateurs

Outils du site


robotics:asservissement_d_un_moteur

Nous allons compléter l'article précédent sur l'asservissement par un exemple : l'asservissement d'un moteur à courant continu 12V-2A. Ce moteur est équipé d'un encodeur.

Asservissement de position

Nous allons asservir ce moteur en position (effectuer x tours). L'encodeur nous retourne le nombre de pulse correspondant à la position angulaire du moteur.

Pour cela, nous avons réaliser un correcteur PID (Proportionnel Intégral Dérivé)

Action Proportionnelle

Dans un premier temps, nous allons nous intéresser à l'action proportionnelle. Nous appliquons donc juste un correcteur P (les coefficients Ki et Kd sont nuls). Nous faisons varier Kp.

Pour notre exemple, nous avons pris Kp=1 (courbe rouge), Kp=4 (courbe verte) et Kp=5 (courbe bleue) courbe position kp

On voit bien que plus Kp est grand, plus le système converge vite vers sa valeur finale mais plus il oscille jusqu'à devenir instable (courbe bleue).

Il faut donc choisir un Kp grand mais pas trop pour garder la stabilité su système (ici Kp=4 courbe verte).

Profil de vitesse

L'action proportionnelle influence également le profil de vitesse.

Pour notre exemple, nous avons pris Kp=1 (courbe rouge) et Kp=4 (courbe verte) courbe de vitesse

Plus Kp est grand, plus la décélération est forte. L'accélération est identique.

Action Intégrale

L'action intégrale permet de supprimer l'erreur statique. L'erreur est intégrée (cumulée) depuis le début et ajoutée à la commande pour faire diminuer l'erreur statique au cours du temps jusqu'à l'annuler.

Dans notre cas, l'erreur statique est négligeable (0.001%) donc pas besoin d'action intégrale. En effet, nous avons appliqué une consigne de position constante (un échelon) donc une fois que le moteur a atteint sa position, il s’arrête (vitesse nulle) donc erreur statique nulle.

Dans la commande de position, il y a déjà un intégrateur “naturel” puisque le moteur est commandé en vitesse (la distance est l'intégrale de la vitesse).

Action Dérivée

L'action dérivée permet de stabiliser le système. Plus Kd est fort, plus les oscillations et dépassements sont faibles.

Dans notre cas, on cherche a ne pas dépasser la position (donc pas d'oscillation autour de la position).

On voit que la courbe rouge (kd=0) oscille un certain temps autour de la position finale. Les courbes verte (kd=5) et bleue (kd = 10) oscille moins et moins longtemps. La courbe violette (kd=15) n'oscille plus.

L'action dérivée peut légèrement ralentir le système. Elle est également sensible aux perturbations.

Conclusion

Le choix du correcteur et de ses coefficients sont très importants pour bien asservir un système.

Asservissement de vitesse

On voit que la vitesse du moteur est saturée par ses capacités physiques (vitesse de rotation maximale pour la tension de la batterie). On décide maintenant d'imposer une vitesse maximale au moteur (On prendra pour notre exemple 30).

Limitation de vitesse

On limite donc la vitesse en sortie du correcteur de position.

On voit bien que la vitesse est limitée (autour de 35) mais pas à la vitesse voulue. Pour cela, on va utiliser un asservissement PID pour la vitesse.

Action Proportionnelle

Comme pour l'asservissement de position, nous allons commencer par appliquer un correcteur P. En faisant varier Kp, nous obtenons les courbes suivantes (Kp=1 en rouge, Kp=2 en vert et Kp=3 en bleu).

La courbe rouge est très loin de la consigne (la moyenne de vitesse est de 19 alors que la consigne de vitesse est de 30). La courbe verte s'approche plus de la consigne (moyenne de 24). La courbe bleue est encore plus proche de la consigne mais le système devient instable car Kp est trop élevé.

Nous retiendrons une valeur de Kp=2.

Action Intégrale

Cette action intégrale a pour but de corriger l'erreur statique en régime permanent. On voit bien de l'erreur statique est très grande, nous avons donc besoin de cette action contrairement à la position. Comme pour le Kp, on augmente progressivement le Ki pour trouver la valeur qui asservisse le mieux le système.

On voit bien que l'action intégrale a bien annulé l'erreur statique (vitesse = consigne = 30). Le temps de montée de la courbe rouge (Ki=0.1) est assez long. En augmentant la valeur de Ki le temps de montée se raccourcit (système plus rapide). Cependant, en augmentant trop fortement le Ki, le système peut devenir instable en créant des dépassements et des changements brusques (courbe bleue).

Nous retiendrons la valeur Ki=0.2

Action Dérivée

L'action dérivée va nous permettre de diminuer toutes les oscillations en stabilisant le système.

L'action dérivée n'a pas eu l'effet attendu. Bien au contraire, le système oscille encore plus. Cela vient du fait que l'on amplifie les bruits d'accélération (la dérivée de la vitesse est multiplié par Kp). Ce bruit est typique des asservissement de vitesse.

L'action dérivée n'est pas recommandée pour le réglage de variables bruitées ou trop dynamiques (accélérations fortes) car en dérivant ce bruit, son amplitude risque de devenir plus forte que celle du signal utile.

Conclusion

Pour l'asservissement de vitesse d'un moteur, il faut un correcteur PI.

Pour revenir à la position, on voit que la courbe de position n'a pas été perturbée par l'ajout du correcteur de vitesse.

Accélération

Nous souhaitons maintenant limiter l'accélération du moteur pour éviter les a-coups mécaniques (profil trapézoïdal de vitesse). Nous allons donc générer une consigne vitesse en limitant l'accélération et la vitesse.

En limitant l'accélération, le moteur ne ralentira pas assez vite pour atteindre sa consigne de position. Il la dépassera et cela engendrera des oscillations autour de cette position. Pour éviter cela, il faut diminuer le Kp de position pour permettre au moteur de ralentir assez tôt.

Ces courbes de vitesse nous montre bien les oscillations. En baissant le Kp de position, les oscillations disparaissent.

Conclusion

Nous avons décrit les principales étapes d'un double asservissement de position/vitesse d'un moteur a courant continu. Il est très important de prendre le temps de régler les différents coefficients pour avoir un asservissement de qualité. Pour résumer :

  • Kp de position permet de contrôler la décélération
  • Kd de position stabilise la position
  • Kp de vitesse donne “la puissance au moteur” pour atteinte sa vitesse
  • Ki de vitesse annule l'erreur statique de vitesse
robotics/asservissement_d_un_moteur.txt · Dernière modification: 2014/09/23 15:55 par ldo