• Aucun résultat trouvé

Travaux pratiques Régulation de la vitesse du robot suiveur de ligne Automatique linéaire continue

N/A
N/A
Protected

Academic year: 2022

Partager "Travaux pratiques Régulation de la vitesse du robot suiveur de ligne Automatique linéaire continue"

Copied!
17
0
0

Texte intégral

(1)

Travaux pratiques

Régulation de la vitesse du robot suiveur de ligne

Automatique linéaire continue

Université Abdelmalek Essaâdi Département génie électrique Université Abdelmalek Essaâdi (FST) Département Génie Électrique Pr.Dr.-Ing.habil Mohammed Bsiss

(2)

2

Sommaire

1 Introduction ... 3

2 Les types des correcteurs (régulateurs) ... 5

3 Robot suiveur de ligne ... 10

3.1 Modules du RJ RoBot ... 11

(3)

1 Introduction

Tout abord un grand merci à la société Datatec (www.datatec.ma) pour avoir sponsorisé cinq robots RJ RoBot.

Selon le schéma de principe simplifié, comme il est souvent utilisé dans l'ingénierie de con- trôle, une boucle de contrôle se compose :

Régulateur : C'est la partie de la boucle de contrôle qui prend les mesures correctives pour la correction de l'écart de contrôle, en tenant compte des propriétés dynamiques du système contrôlé.

Système a commandé (définit par sa fonction de transfert) : Est la partie de la boucle de contrôle qui doit être corrigée par le régulateur.

La consigne (w) : Est la valeur spécifiée à laquelle la variable contrôlée doit être conservée par le contrôle. C'est une variable qui n'est pas influencée par la régulation et qui est alimen- tée de l'extérieur.

La grandeur mesurée x : Est la variable de sortie du système contrôlé, qui est enregistrée à la fin de contrôle et renvoyée pour comparaison. Dans de nombreux cas, un dispositif de mesure (capteur) est également dessiné dans la rétroaction, qui détecte la valeur réelle, ici omise pour des raisons de simplicité.

Écart de contrôle e : La différence entre la variable de référence et la variable contrôlée e = w - x, constitue la variable d'entrée réelle du régulateur.

Variable de commande y : Le signal de commande transfère l'effet du régulateur sur le sys- tème.

Perturbation z : Variable à action externe qui modifie la valeur réelle de la variable contrô- lée et déclenche un processus de contrôle.

(4)

4

Le système contrôlé : Le système contrôlé représente le système à contrôler ou le processus à contrôler et comprend normalement un certain nombre d'éléments individuels. Les liens sont caractérisés en fonction de leur comportement temporel.

(5)

2 Les types des correcteurs (régulateurs)

Le correcteur a pour tâche de mesurer la variable contrôlée, de la comparer avec la consigne et, en cas d'écarts, de modifier la variable manipulée de sorte que la consigne et la valeur réelle de la variable contrôlée correspondent à nouveau ou que la différence devienne mi- nime. Le choix d'un type de contrôleur spécifique dépend du temps d’action et d’interaction qu’ainsi de la précision de la chaine de contrôle du système contrôlé. Vous trouverez ci- dessous un résumé des types de contrôleurs classiques les plus importants :

Régulateur proportionnel P

Le régulateur proportionnel multiplie l'écart de contrôle par son facteur de gain Kp et trans- met le résultat sans délai. Il s’agit en circuit électrique d’amplificateur. On peut dire aussi que le correcteur est assez rapide par rapport aux autres réglementations. Le problème est la déviation permanente !

Code à implémenter au sein du microcontrôleur : y = Kp * e

Régulateur Intégral I

Le correcteur intégré additionne l'écart de contrôle dans le temps et multiplie la somme (c'est-à-dire l'intégrale) par le facteur Ki. Plus l'écart de contrôle est long, plus la variable manipulée du contrôleur I est grande. Le circuit régulé par I est lent par rapport à d'autres réglementations. Cependant, il présente l'avantage que l'écart est complètement éliminé.

(6)

6

Code à implémenter au sein du microcontrôleur :

esum = esum + e y = Ki * Ta * esum

esum est la somme de tous les écarts antérieurs de l’écart e. Le paramètre du contrôleur lo- giciel I dépend de l'étape de calcul Ta (temps d'échantillonnage). Plus le calcul est effectué souvent, plus il est ajouté (intégré). Un petit temps d'échantillonnage nécessite donc un fac- teur plus petit, qui est obtenu en le multipliant par Ta.

Régulateur PI (Proportionnel et Intégral) : Le régulateur PI est la combinaison des régula- teurs P et I, il combine l'avantage du régulateur P, à savoir une réponse rapide, avec l'avan- tage du régulateur I, la régulation exacte. Le circuit commandé par PI est donc précis et as- sez rapide.

(7)

Code à implémenter au sein du microcontrôleur :

esum = esum + e

y = Kp * e + Ki * Ta * esum

Régulateur PD

Le contrôleur proportionnel-différentiel combine le régulateur P avec une action dérivée D.

La composante D évalue la variation d'une déviation de contrôle (elle différencie) et calcule ainsi son taux de variation. Celui-ci est multiplié par le facteur Kd et ajouté à la composante P. Le contrôleur PD répond donc déjà aux annonces de changements.

La boucle contrôlée par PD est très rapide par rapport à d'autres contrôles, et certaines boucles de contrôle (celles avec double intégration) ne peuvent pas du tout être stabilisées sans le composant D. Le problème du contrôleur proportionnel, l'écart de contrôle perma- nent, existe toujours avec le contrôleur PD !

Un inconvénient de tous les contrôleurs avec un composant D peut être l'agitation dans le circuit. Si le signal du capteur est bruyant, ce bruit est encore amplifié par la différenciation puis renvoyé au circuit. Cela entraîne une charge plus élevée sur l'actionneur. Si le contrô- leur effectue de très grandes oscillations à la suite de changements rapides de la consigne, l'actionneur peut ne pas être en mesure de les mettre en œuvre - l'effet du composant D s'ef- fondrerait alors en raison de la limitation, et la réponse transitoire ne serait pas comme cal- culé, mais généralement plus lent. Mais cela ne s'applique qu'aux gros sauts. Dans les petits

(8)

8

processus de contrôle normaux pour compenser les interférences, le composant D agit comme prévu.

Code à implémenter au sein du microcontrôleur :

y = Kp * e + Kd * (e – ealt)/Ta ealt = e

Régulateur PID

Le contrôleur PID est le plus universel des contrôleurs classiques et combine les bonnes propriétés des autres contrôleurs. Voir les autres types de contrôleurs pour une description des propriétés des composants P, I et D. La boucle contrôlée PID est précise et très rapide.

Le contrôleur PID est donc utilisé dans la plupart des applications.

(9)

Code à implémenter au sein du microcontrôleur :

esum = esum + e

y = Kp * e + Ki * Ta * esum + Kd * (e – ealt)/Ta ealt=e

(10)

10

3 Robot suiveur de ligne

De nos jours les voitures électriques intégrant des correcteurs font partie du quotidien. Nous allons dans ces travaux pratiques commander le RJ RoBot de la société Datatec avec une régulation PID. La figure ci-dessous présente RJ RoBot avec ces composants. RJ RoBot se compose des éléments suivants :

• Capteur de lumière

• Capteur de vitesse

• Deux moteurs

• Un microcontrôleur de la famille Atmel

• Une carte de commande

• Module de communication Bluetooth

• Un capteur ultrasonique

(11)

3.1 Modules du RJ RoBot

Détecteur de ligne:

Le module de détection de ligne compose 2 capteurs à réflexion infrarouge pour situer le RJ RoBot. Il permet de détecter un marquage sombre trace au sol. Il est constitué par 2 photo- transistors et 2 LED infrarouges orientés vers le sol. Les 2 LED émettent un rayonnement infrarouge qui sera absorbé par un marquage noir au sol ou bien au contraire sera réfléchi par des zones claires. Les phototransistors associés à chaque LED détectent ou non le rayon- nement infrarouge.

CD CG CD CG

CD CG

Valeur numérique 10

Valeur numérique 00

Valeur numérique 01

Moteur à courant continue :

Les moteurs à courant continu transforment l’énergie électrique en énergie mécanique de rotation. Le moteur à courant continu est composé de deux parties principales : le rotor (par- tie qui tourne) et le stator (partie qui ne tourne pas, statique). Pour contrôler la vitesse des deux moteurs il faut appliquer des signaux de type MLI (Modulation de largeur

d’impulsions, en anglais Pulse Width Modulation PWM) sur le moteur A à travers la sortie numérique 9 et sur le moteur B à travers de la sortie numérique 10.

Une sortie PWM sur un microcontrôleur est une sortie numérique dont les signaux ont tou- jours une valeur LOW ou HIGH. Mais le principe est de construire un signal qui est alterna- tivement LOW et HIGH et de répéter très vite cette alternance en faisant varier la fréquence du signal.

(12)

12

Dans le cas d'un moteur, la vitesse de rotation sera variable en fonction de la fréquence pa- ramétrée. A noter que le cycle est tellement rapide que la persistance rétinienne nous donne l’illusion d’un moteur toujours en marche.

Prenons par exemple une période de 10 ms, soit une fréquence de 100Hz. Si le moteur est en marche pendant 5ms et en arrêt pendant 5ms, Comme sur la figure ci-dessous,

l’impression sera une vitesse de rotation de 50% en maximum. En parle d’un rapport cy- clique (RP) de 50%.

Si le moteur est en marche pendant 1ms et en arrêt pendant 9ms, l’impression sera une luminosité de 10% comme sur

La figure ci-dessous.

Le pourcentage de temps passé à l’état HIGH sur la période du signal est appelé le rapport cyclique. Il varie donc de 0%, le signal est tout le temps LOW, à 100%, le signal est tout le temps HIGH.

(13)

Le tableau ci-dessous présent le rapport cyclique en % est sa valeur binaire sur un mot.

RP % 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100

8 bits 0 13 26 38 51 64 77 89 102 115 128 140 153 166 179 191 204 217 230 242 255

Procédure à suivre pour programmer un régulateur PID :

L’objectif ce travail pratique est de réaliser la régulation du robot suiveur de ligne pour être assez rapide et toujours stable. Pour en faire, il faut suivre les étapes suivantes :

1. Analyser le robot à contrôler et la mise en œuvre de la logique de capteur 2. Sélection le type de régulateur

3. Simulation et optimisation de la conception du régulateur 4. Test pratique

Correcteur P I D

+-

Capteur de lumière (la ligne) Position

La réponse du système Vitesse / Direction du moteur Consigne

Position

Le RJ RoBot suiveur de ligne a contrôlé contient deux capteurs de ligne, deux actionneurs par signaux PWM, deux moteurs avec leur engrenage. Le capteur de ligne réagit aux écarts par rapport à la ligne, c'est-à-dire aux changements d'itinéraire. Il est donc déjà clair qu'il s'agit d'un contrôle de position. Donc la consigne est le

Le tableau ci-dessous présente l’état possible des capteurs, qui va vous permet de générer la variable de l’erreur (l’écart entre la position souhaite (réponse du RJ RoBot) et l’état actuel).

(14)

14

État de capteur Erreur Description

CD CG

0 1 1 Le RJ RoBot doit tourner à gauche.

0 0 0 Le RJ RoBot est sur la ligne

1 0 -1 Le RJ RoBot doit tourner à droit.

La vitesse peut être contrôlée avec le moteur en utilisant les signaux PWM. Il reste donc un élément manquant dans la chaîne pour passer de la vitesse à la distance. Voilà on a besoin d’un intégrateur. Un intégrateur est utilisé pour la modélisation car la distance est l'intégrale de la vitesse dans le temps.

Commande par correcteur proportionnelle :

Réalisez pour le RJ RoBot une commande proportionnelle en suivant les consignes sui- vantes :

• Lorsque les deux capteurs détectent une couleur claire la valeur état suiveur est à 3, et le RJ RoBot s’arrête pour trouver la ligne, l’erreur soit de -2 ou bien +2.

• Lorsque le capteur de droite détecte une couleur foncée et le capteur de gauche dé- tecte une couleur claire la valeur état suiveur est à 2, le RJ RoBot doit tourner à droite, l’erreur est de -1. Pour ce faire le RJ RoBot doit diminuer la vitesse du mo- teur droite, ce qui signifie réduire la durée de l’impulsion PWM, et augmenter la vi- tesse du moteur de gauche.

(15)

• Lorsque le capteur de droite détecte une couleur claire et le capteur de gauche détecte une couleur foncée la valeur état suiveur est à 1, le RJ RoBot doit tourner à gauche, l’erreur est de +1. Pour ce faire le RJ RoBot doit diminuer la vitesse du moteur à gauche, ce qui signifie réduire la durée de l’impulsion PWM, et augmenter la vitesse du moteur de droit.

• Lorsque les deux capteurs détectent une couleur foncée la valeur état suiveur est à 0, le RJ RoBot avance.

La fonction motrice sera :

erreur =readLFSsensors();

P = erreur;

RegP = (Kp*P) ;

previousError = erreur;

(16)

16

int leftMotorSpeed = BaseSpeed + RegP;

int rightMotorSpeed = BaseSpeed - RegP;

Commande par correcteur PID :

Réalisez pour le RJ RoBot une commande proportionnelle en suivant les intégrants les fonc- tions suivantes dans le programme principale:

Formule mathématique pour calculer la valeur de commande numérique PID:

void calculatePID() {

P = erreur ; I = I + erreur ;

D = erreur-previousError ;

PIDvalue = (Kp * P) + (Ki * I) + (Kd * D) ; previousError = erreur ;}

Affectation de la commande aux deux moteurs:

Void motorPIDcontrol() {

if (rightMotorSpeed > 255 ) rightMotorSpeed = 255; // Protéger le seuils Max 255 if (leftMotorSpeed > 255 ) leftMotorSpeed = 255;// Protégé le seuils Max 255 if (rightMotorSpeed < 0)rightMotorSpeed = 0; // Interdiction de la valeur negative if (leftMotorSpeed < 0)leftMotorSpeed = 0; // Interdiction de la valeur negative

int leftMotorSpeed = BaseSpeed + PIDvalue; // réponse de la motrice variation de la vitesse int rightMotorSpeed = BaseSpeed - PIDvalue;

}

Lire l’état du robot sur la ligne :

int readLFSsensors() {

int x=0;

lineData[0] = digitalRead(IR_Left_Sensor);// Valeur capteur de gauche Low active

(17)

lineData[1] = digitalRead(IR_Right_Sensor);

if((lineData[0]== 0 )&&(lineData[1]== 0 )) {x = 0;}// Le robot est sur la ligne

if((lineData[0]== 1 )&&(lineData[1]== 0 )) {x = 1;}//dépassement du cote gauche de la ligne if((lineData[0]== 0 )&&(lineData[1]== 1 )) {x = -1;}//dépassement du cote droit de la ligne return x;

}

Commander les moteurs de gauche et du droit:

void move(int motor, int speed, int direction){

boolean inPin1=HIGH;

boolean inPin2=LOW;

if(direction == 1){

inPin1 = HIGH;

inPin2 = LOW;

}

if(direction == 0){

inPin1 = LOW;

inPin2 = HIGH;

}

if(motor == 0){

digitalWrite(leftMotor1, inPin1);

digitalWrite(leftMotor2, inPin2);

analogWrite(leftMotorPWM, speed);

}

if(motor == 1){

digitalWrite(rightMotor1, inPin1);

digitalWrite(rightMotor2, inPin2);

analogWrite(rightMotorPWM, speed);

}}

Références

Documents relatifs

- Via a single 4.5V battery pack for both PICAXE &amp; outputs - Via two separate battery packs for PICAXE and outputs - Via a higher voltage battery pack, with 5V regulator fitted

1.20 ) Faire les calculs permettant de calculer la vitesse avec les autres réductions (en cm/mn), en utilisant une relation mathématique entre chaque case, dans la feuille de

Remarque importante : Dans cette dernière séquence de l’année (et donc du Collège), vous allez petit à petit modifier votre programme pour qu’il soit le plus performant

[r]

Illustrer avec des images découpées, le texte de l'histoire utilisant un vocabulaire spatial Associer chaque image au texte correspondant à la direction surveillée. e place les

[r]

En t’aidant de l’extrait du programme, explique ce que fait l’hélicoptère si le bord rouge de l’écran est touche.. Si le bord rouge de l’écran est touché

[r]