Accueil

CORRECTION des ERREURS d'un ROBOT

par rapport a une référence théorique

(Méthode PID)

 

Dans beaucoup de processus industriels ou mécaniques on donne une valeur cible a atteindre et a maintenir dans le temps : direction d'un robot par rapport a une ligne, vitesse d'un robot, température d'un incubateur etc.. Pour maintenir le systéme en équilibre sur cette valeur il faut une méthode pour corriger les écarts par rapport a cette référence.

Par exemple lorsque le robot est a gauche de la ligne qu'il doit suivre le probléme est d'apporter une correction qui :

Pour résoudre les problémes de ce type on utilise une méthode de correction dite PID qui utilise 3 termes de correction simultanés: Proportional ,Integrated ,Derivate.

Pour comprendre comment ça se passe il est intéressant de tracer la courbe des écarts du robot par rapport a la direction de référence au cours du temps , dans le cas ou on ne fait aucune correction. On figure le trajet idéal du robot (en ligne droite pour faire simple) , par une droite horizontale paralléle a l'axe des temps et on note la position réelle du robot a intervalles de temps réguliers (toutes les 5 secondes ) pour tracer une courbe du déplacement réel pendant une minute. Supposons que le robot se déplace de droite a gauche sur le graphique et qu'il dévie a gauche: on aura une courbe qui s'écartera vers le haut, progressivement de la référence horizontale.

Au bout d'une minute on peut considérer les 3 facteurs qui vont permettre le calcul de la correction:

La correction totale a apporter est la somme des 3 corrections précédentes:

C:= Cp + Ci + Cd

Mais en fait on affecte chaque correction d'un coefficient "k" qui détermine son poids dans la correction globale et tout l'art est de bien choisir ces 3 facteurs pour avoir une correction adaptée.

C:=Cp* k1 + Ci * k2 + Ce * k3

Nous avons vu qu'en fait nous utiliseront essentiellement le premier facteur dit proportionnel : soit C:= Cp * k1

Et en fin de compte la correction dépendra de l'écart "delta" a un instant T (entre valeur théorique et valeur réelle) .On a donc quelque chose de la forme :

Cp:= delta * k1

Mais il faudra choisir :

Pour une correction de vitesse de moteurs en fonction des écarts au trajet théorique , on a :

Si Ldurée et Rduree sont les durées des impulsions vers les 2 sero moteurs .

Si elles sont initialisées a des valeurs _Linit et _Rinit de 1550 et 1372 .

Si on déclenche une correction a partir d'un écart de détection de la ligne de référence (distG) supérieur a un seuil .

Lduree:=_Linit ' en fait 1550 correpondant a une marche avant a la moitié de la vitesse max
Rduree:=_Rinit 'en fait 1372 correpondant a une marche avant a la moitié de la vitesse max

if (distG > seuil ) 'le robot est trop a droite > accélérer roue droite et ralentir roue gauche
correction:= distG * k1
Lduree:= (_Linit - correction) #> 1450 'on rapproche gauche de 1450 mais on doit rester au dessus de 1450
Rduree:= (_Rinit - correction ) #> 1250 'on éloigne droit de 1450 mais on doit rester au dessus de 1250

En fait on réglera par tatonnements la fréquence des corrections et le facteur de sensibilité k1.