Outils pour utilisateurs

Outils du site


robotics:asservissement_d_un_moteur

Différences

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

robotics:asservissement_d_un_moteur [2014/09/22 14:04]
ldo [Action Intégrale]
robotics:asservissement_d_un_moteur [2014/09/23 15:55] (Version actuelle)
ldo [Conclusion]
Ligne 7: Ligne 7:
 Pour cela, nous avons réaliser un correcteur PID (Proportionnel Intégral Dérivé) Pour cela, nous avons réaliser un correcteur PID (Proportionnel Intégral Dérivé)
  
 +{{:​robotics:​asservissement_moteur_position.png?​400|}}
 ==== Action Proportionnelle ==== ==== 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. 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 ​violette) et Kp=5 (courbe bleue) +Pour notre exemple, nous avons pris Kp=1 (courbe rouge), Kp=4 (courbe ​verte) et Kp=5 (courbe bleue) 
-{{:​robotics:​courbe_kp.png?600|}}+{{:​robotics:​courbe_position_kp.png?400|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). 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 ​violette).+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 === === Profil de vitesse ===
Ligne 24: Ligne 25:
  
 Pour notre exemple, nous avons pris Kp=1 (courbe rouge) et Kp=4 (courbe verte) Pour notre exemple, nous avons pris Kp=1 (courbe rouge) et Kp=4 (courbe verte)
-{{:​robotics:​courbe_vitesse.png?​600|courbe de vitesse}}+{{:​robotics:​courbe_vitesse.png?​400|courbe de vitesse}}
  
 Plus Kp est grand, plus la décélération est forte. L'​accélération est identique. Plus Kp est grand, plus la décélération est forte. L'​accélération est identique.
Ligne 41: Ligne 42:
  
 Dans notre cas, on cherche a ne pas dépasser la position (donc pas d'​oscillation autour de la position). Dans notre cas, on cherche a ne pas dépasser la position (donc pas d'​oscillation autour de la position).
-{{:​robotics:​courbe_kd.png?600|}}+{{:​robotics:​courbe_position_kd.png?400|}}
  
 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. 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.
Ligne 54: Ligne 55:
  
 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). 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).
 +
 +{{:​robotics:​asservissement_moteur_position_vitesse.png?​600|}}
  
 ==== Limitation de vitesse ==== ==== Limitation de vitesse ====
-On limite donc la vitesse en sortie du correcteur de position.{{:​robotics:​courbe_asservissement_moteur.png?​600|}}+On limite donc la vitesse en sortie du correcteur de position. 
 + 
 +{{:​robotics:​courbe_asservissement_moteur.png?​400|}}
  
 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. 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.
Ligne 62: Ligne 67:
 ==== Action Proportionnelle ==== ==== 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). 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).
-{{:​robotics:​courbe_vitesse_kp.png?​600|}}+ 
 +{{:​robotics:​courbe_vitesse_kp.png?​400|}}
  
 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é. 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é.
Ligne 80: Ligne 86:
 ==== Action Dérivée ==== ==== 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 va nous permettre de diminuer toutes les oscillations en stabilisant le système.
 +
 +{{:​robotics:​courbe_vitesse_kd.png?​400|}}
 +
 +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.
 +{{:​robotics:​courbe_position_moteur.png?​400|}}
 +
 +===== 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.
 +
 +{{:​robotics:​asservissement_moteur_position_vitesse_acc.png?​600|}}
 +
 +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.
 +
 +{{:​robotics:​courbe_vitesse_acc.png?​400|}}
 +
 +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.1411387453.txt.gz · Dernière modification: 2014/09/22 14:04 par ldo