Aller au contenu


Photo
- - - - -

Asservissement PID


  • Veuillez vous connecter pour répondre
1 réponse à ce sujet

#1 mysterious

mysterious

    Membre

  • Membres
  • 27 messages

Posté 14 juillet 2014 - 07:35

Bonjour,

J'ai pour projet de réaliser un robot sur lequel j'implémenterai un asservissement en vitesse type PID.

Comme ce sera mon premier robot embarquant un PID, je manque de recul et j'ai donc un souci sur le choix des motoréducteurs.

J'envisage d'acheter 2 motoréducteurs comme ceux-ci, chaque encodeur délivre 360 impulsions par tour de roue... mais 360 impulsions par tour de roue, est-ce suffisant pour faire tourner un PID correct ?

merci.

#2 Anatole

Anatole

    Nouveau membre

  • Membres
  • 2 messages

Posté 24 décembre 2014 - 05:33

Si tu veux utiliser deux moteurs, j'en déduis que tu veux réaliser la propulsion couplée à la commande de direction de ton robot;

 

Le plus simple pour utiliser un régulateur PID est de convertir les impulsions en signal analogique, par un simple circuit R/C et rentrer dans le µC par une entrée analogique, sur l'entrée "mesure" du PID. (cela pour chaque moteur, chacun ayant son régulateur de vitesse).

 

Les 360ppr données par les codeurs de roues ne sont pas très critiques, c'est largement suffisant pour obtenir un signal suffisamment lissé pour être utilisable par le régulateur: En fait, cela dépend surtout de la vitesse mini que tu souhaites contrôler: Moins il y a de ppr, plus le signal ana sera fluctuant à très petite vitesse, ce que le régulateur PID répercutera malencontreusement sur sa sortie et sur son moteur.

 

Au passage, un régulateur PID est un amplificateur sur lequel on entre un signal d'erreur, (ou une différence entre "ce que l'on veut" et "ce que l'on a"), et qui sort un signal de commande destiné à un actionneur qui agit sur "ce que l'on veut", en l'occurrence ici la vitesse des roues.

 

Ce signal de commande a 3 composantes dites "P, I et D":

 

1) La composante "P", ou "Proportionnelle": C'est simplement le signal d'erreur multiplié par un gain, (le paramètre P), qui peut être supérieur (amplificateur) ou inférieur (atténuateur) à 1.

2) La composante "I", ou "Intégrale": C'est l'intégration par rapport au temps du signal d'erreur: Le signal de sortie varie (augmente ou diminue) en permanence tant que ce signal d'erreur n'est pas nul, plus ou moins vite selon la valeur du paramètre "I".

3) La composante "D", ou "Dérivé"": C'est la dérivation par rapport au temps du signal d'erreur: le signal de sortie varie en fonction de la vitesse d'évolution du signal d'erreur, plus ou moins selon la valeur du paramètre "D".

 

Pour une régulation de vitesse où l'action (la variation de la vitesse du moteur) est répercutée immédiatement sur la mesure ( les pulses du codeur), l'action Dérivée est complètement inutile, même nuisible: elle risque de provoquer une instabilité de la régulation.

Le régulateur à utiliser est donc simplement un régulateur "PI".

 

En premier réglage, il faut mettre une action Intégrale nulle, et augmenter progressivement le gain (l'action "P") par essais successifs jusqu'à ce que la réponse soit idéale, un poil en-dessous de la mise en oscillation "avant-arrière".

Puis augmenter un peu l'action Intégrale "I", de façon à ce que le rattrapage de la vitesse après un échelon sur la consigne de vitesse (ce que l'on veut) se fasse sans qu'il reste d'écart (donc signal d'erreur nul) une fois la vitesse stabilisée, mais sans plus.

 

La commande en ligne droite se fait alors en augmentant simultanément les deux consignes des deux régulateurs de la même valeur, la commande de direction en décalant plus ou moins ces deux signaux dans un sens ou dans l'autre.

 

Avec ce système, il est possible d'avoir un léger effet de déviation à droite ou à gauche du robot lors d'une variation brusque de la commande de vitesse: C'est normal, c'est lié au fait que les deux ensembles motoréducteurs ne sont pas exactement identiques, ou ne répondent pas exactement de la même façon. (c'est pour cette raison que les réglages optimums trouvés pour les deux régulateursne sont pas forcément identiques).

 

Dans certains cas, cette déviation peut être gênante (sur des robots très rapides, par exemple). Il faut alors procéder à un "contrôle croisé" des régulateurs de vitesse: La consigne de vitesse d'un régulateur est limitée en fonction de la vitesse obtenue sur l'autre moteur, et vis-versa: chacun attend l'autre avant d'accélerer (ou ralentir) d'avantage.






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users