TP 05 — SUIVEUR DE LIGNE
Objectifs : identifier les constituants d'une boucle, régler une consigne, conduire des essais reproductibles, caractériser précision, stabilité et rapidité, puis comparer les effets des actions P, I et D.

Un robot EV3 doit suivre le bord d'une ligne noire sur un support clair. Vous jouez le rôle de l'opérateur chargé de mettre en service une boucle de régulation et d'en régler les paramètres. Vous devez obtenir un suivi régulier et fiable, puis justifier le choix du correcteur à partir de résultats expérimentaux.
Préparation et programmation du robot
- Allumer le robot en appuyant sur le bouton du milieu.
- Télécharger le programme PID_v2.py.
- Lancer l'application Thonny et ouvrir le fichier.
- Dans le menu cliquer sur "Outils", puis "Gérer les plugins".
- Rechercher "pybricks" sur Pypi et installer cette librairie

- Depuis le menu "Exécuter", "configurer l'interpréteur" comme suit :

Entrer le mot de passe maker que vous pouvez sauvegarder.
Le robot devrait être connecté et vous devez voir le message suivant dans la console :

- Cliquer sur le bouton vert de l'application Tonny pour téléverser le programme dans la brique EV3.
- Attendre que la brique affiche le menu de sélection avec le choix du mode.
- Débrancher le câble USB qui relie la brique EV3 à l'ordinateur.
Tous les réglages de l'activité sont sélectionnés directement avec les boutons haut/bas/gauche et droit de l'EV3. Le bouton central permet de démmarer ou d'arrêter le robot.
1. Comprendre le système et la boucle
- La grandeur mesurée Y est la lumière réfléchie, elle varie de 0 à 100 %.
- La consigne W correspond à une valeur moyenne entre le noir et le blanc.
- Le robot suit donc un bord de la ligne, et non son centre.
- La mesure lumineuse est un indicateur de position locale ; elle n'est pas directement une distance en millimètres.
- Le régulateur pourra être configuré en TOR ou PID depuis le menu du robot
- Erreur : $epsilon = W − Ym$ (mode direct)
- Correction PID (parallèle) : $u(t) = Kp * epsilon + Ki * ∫ epsilon dt + Kd * (depsilon)/"dt"$
- Vitesses des roues :
- $vg(t) = V − SENS ⋅ u(t)$ (roue gauche)
- $vd(t) = V + SENS ⋅ u(t)$ (roue droite)
Le programme utilise un PID parallèle, une dérivée filtrée et une limitation de la correction. L'intégrale est limitée par une logique anti-emballement. Les vitesses sont exprimées en degrés par seconde, pas en pourcentage de puissance. Le temps est exprimé en secondes dans les actions I et D.
Question. Compléter les champs vides avec Y, u, vg/vd, Y, ε et W.
2. Mise en service et choix de la consigne
Moteurs arrêtés, relever trois mesures sur le noir puis trois sur le blanc, sans modifier la hauteur du capteur ni l'éclairage. Calculer les moyennes puis W = (moyenne noir + moyenne blanc) / 2. Arrondir W à l'entier le plus proche et le saisir dans le menu.
| Surface | Mesure 1 (%) | Mesure 2 (%) | Mesure 3 (%) | Moyenne (%) |
|---|---|---|---|---|
| Noir | ||||
| Blanc |
Question. Indiquez la consigne calculée, le contraste blanc − noir et l’intérêt de cette calibration.
Dans le menu du robot, définir la consigne en % déterminée précédemment, choisir une vitesse de 150 °/s, une correction maximale de 140 °/s et, pour les modes PD/PID, un filtre D de 0,05 s. Ces valeurs sont des points de départ pour les essais.
Placer le capteur sur le bord à suivre et tester brièvement le sens de suivi (1 ou -1) en mode P avec Kp = 2. Trouver le meilleur sens de rotation et le suivi gauche ou droit de la ligne.
3. Définir un protocole commun
Repérer une ligne de départ et une ligne d'arrivée, une zone droite d'observation et un virage. Conserver le même bord, la même position de départ, le même éclairage, la même hauteur de capteur, la même consigne, la même vitesse et la même limite de correction pendant la comparaison initiale.
Pour chaque réglage exploratoire, réaliser un passage. Pour les réglages retenus dans la comparaison finale, réaliser trois passages. Modifier un seul gain à la fois et revenir au menu entre deux essais.
| Indicateur | Méthode commune |
|---|---|
| Réussite du suivi | Compter les passages terminés sans sortie de ligne ni intervention. Une sortie correspond à la perte du bord sans reprise autonome dans les 2 s ; arrêter alors l'essai. |
| Rapidité | Chronométrer le passage de l'axe des roues sur les repères de départ et d'arrivée. Ne calculer un temps moyen que sur les essais réussis ; noter les échecs séparément. |
| Régularité / oscillations | Dans la même zone droite, compter les alternances gauche/droite visibles. Une oscillation complète est un aller-retour ; noter aussi les saccades dans le virage. |
| Précision locale | Sur une vidéo prise de dessus avec un repère gradué, estimer l'écart maximal du centre du capteur au bord choisi. Sans vidéo exploitable, noter une appréciation qualitative et inscrire « non mesuré » pour l'écart. |
Ne pas déduire une erreur statique lumineuse ou un temps de réponse à 5 % à partir du seul temps de parcours : le programme n'enregistre pas les courbes y(t) et e(t). Un suivi en virage est un régime variable, pas un équilibre statique.
4. Commande tout ou rien (TOR)
En TOR, la correction prend deux valeurs : +A lorsque $epsilon$ ≥ 0 et −A lorsque $epsilon$ < 0. Il n'y a pas d'hystérésis dans le programme fourni. Les gains Kp, Ki et Kd ne sont pas utilisés.
Depuis le menu tu robot :
- Choisir TOR, vitesse 150, limite 140 et la consigne calculée.
- Tester successivement des corrections TOR de 50, 100 et 140 °/s.
- Relever les résultats, puis retenir la correction qui donne le meilleur compromis sur cette piste.
| Indicateur | A = 50 | A = 100 | A = 140 |
|---|---|---|---|
| Temps si réussite (s) | |||
| Oscillations en zone droite | |||
| Sorties de ligne (nombre) | |||
| Observations (virage - saccades ...) |
Question. Quelle correction TOR retenez-vous ? Expliquez pourquoi une correction trop faible peut empêcher de suivre le virage et pourquoi une correction forte peut augmenter le zigzag.
5. Correction proportionnelle (P)
Depuis le menu tu robot :
- Choisir P. La correction est u = Kp × e, limitée à ±140 °/s;
- Mettre la vitesse = 150 °/s;
- Tester Kp = 1, 2 puis 3 avec les mêmes conditions, puis compléter le tableau.
Si un essai perd la ligne, arrêter le robot et noter l'échec.
| Indicateur | Kp = 1 | Kp = 2 | Kp = 3 |
|---|---|---|---|
| Temps si réussite (s) | |||
| Oscillations en zone droite | |||
| Sorties de ligne (nombre) | |||
| Observations (virage - saccades ...) |
Question. Indiquez le Kp retenu et comparez la correction P au TOR : progressivité de la commande, tenue du virage et oscillations. Une augmentation de Kp améliore-t-elle toujours le suivi ?
6. Correction proportionnelle et intégrale (PI)
Depuis le menu tu robot :
- Choisir PI;
- Conserver le Kp que vous avez retenu précédemment;
- Tester Ki = 0,1 puis 0,3 ; comparer avec le résultat de la correction P (Ki = 0). L'intégrale cumule l'erreur dans le temps. Elle peut aider à corriger un décalage persistant, mais aussi prolonger une correction après un virage.
Observer particulièrement la sortie du virage. Si aucun décalage persistant n'apparaît en P, ne cherchez pas à démontrer à tout prix une amélioration avec I : l'absence de bénéfice est un résultat expérimental.
| Indicateur | P : Ki = 0 | PI : Ki = 0,1 | PI : Ki = 0,3 |
|---|---|---|---|
| Temps si réussite (s) | |||
| Oscillations en zone droite | |||
| Sorties de ligne (nombre) | |||
| Observations (virage - saccades ...) |
Question. L’intégrale améliore-t-elle votre suivi ? Décrivez son effet sur le décalage, les oscillations et la sortie du virage.
7. Correction proportionnelle et dérivée (PD)
Depuis le menu tu robot :
- Choisir PD;
- conserver le Kp retenu en mode P et le filtre D à 0,05 s;
- Tester Kd = 0,02 puis 0,05 et comparer avec P (Kd = 0).
Ki n'est pas utilisé dans ce mode. La dérivée réagit à la variation de l'erreur ; le filtre atténue sa sensibilité aux variations rapides de mesure.
| Indicateur | P : Kd = 0 | PD : Kd = 0,02 | PD : Kd = 0,05 |
|---|---|---|---|
| Temps si réussite (s) | |||
| Oscillations en zone droite | |||
| Sorties de ligne (nombre) | |||
| Observations (virage - saccades ...) |
Question. La dérivée réduit-elle les oscillations et les saccades ? Quel Kd retenez-vous ? Expliquez pourquoi une dérivée excessive ou une mesure bruitée peut rendre la commande irrégulière.
8. Correction PID et compromis de réglage
Depuis le menu tu robot :
- Choisir PID;
- Partir du Kp retenu et du Kd retenu en mode PD, puis ajouter Ki = 0,1.
Comparer au PD retenu. Ajuster un seul paramètre à la fois, noter chaque modification et limiter l'optimisation à trois essais supplémentaires.
Conserver les limites, le filtre, la consigne et la vitesse de référence. Si le meilleur résultat est obtenu avec Ki = 0, indiquer qu'il s'agit effectivement d'un PD, même si le menu affiche PID. Le mode PID n'est pas nécessairement le meilleur pour cette piste.
| Essai | Kp | Ki | Kd | Temps réussi (s) | Oscillations / sorties / virage |
|---|---|---|---|---|---|
| PID initial | |||||
| Ajustement 1 | |||||
| Ajustement 2 | |||||
| Ajustement 3 |
Question. Justifiez le réglage retenu. A-t-il amélioré la fiabilité, la régularité et la rapidité par rapport au PD ? Précisez si la correction atteint sa limite ou si le robot perd le bord.
9. Recherche d'une vitesse exploitable
Retenir les deux modes les plus performants. Avec leurs gains inchangés, augmenter la vitesse par pas de 50 °/s à partir de 150 ; s'arrêter à la première perte de suivi et ne pas dépasser 400 °/s pour cette activité. Revenir au dernier palier réussi et le confirmer sur trois passages. Garder la correction maximale à 140 pour cette comparaison.
La valeur obtenue est la plus grande vitesse testée et confirmée dans ces conditions, pas une limite absolue du moteur ou du mode. Si un réglage des gains est modifié, il faut recommencer la validation.
| Mode retenu | Gains | Dernier palier confirmé (°/s) | Réussite (/3) | Temps moyen réussi (s) | Premier palier en échec / observation |
|---|---|---|---|---|---|
| Mode 1 | |||||
| Mode 2 |
Pour la référence à 150 °/s, les vitesses commandées restent entre 10 et 290 °/s puisque la correction est limitée à ±140. Si l'on autorisait ±250, une roue pourrait recevoir −100 °/s et reculer.
Question. Quel compromis mode/gains/vitesse recommandez-vous pour une production exigeant un suivi fiable ? Expliquez comment l’augmentation de la vitesse réduit le temps disponible pour corriger et peut demander une différence de vitesse entre roues plus importante dans les courbes.
10. Transférer les observations aux procédés industriels
Le robot sert de support expérimental pour analyser une boucle de régulation. Un procédé de niveau, de débit ou de température possède toutefois d'autres dynamiques et contraintes : les gains trouvés ici ne se transposent pas numériquement.
BTS PILOTAGE DES PROCEDES