Enseigner la régulation PID aux équipes de robotique de lycée sans recourir au calcul différentiel

Nul besoin d'équations différentielles pour enseigner la régulation PID : trois notions intuitives suffisent : à quelle distance vous êtes de la cible, depuis combien de temps vous en êtes éloigné et à quelle vitesse vous vous en approchez.
Il n'est pas nécessaire de maîtriser le calcul différentiel pour enseigner la régulation PID à des lycéens. Un régulateur PID est simplement une formule qui détermine la force avec laquelle un moteur doit agir, à partir de trois questions intuitives : à quelle distance de la cible sommes-nous en ce moment ? Depuis combien de temps sommes-nous bloqués hors cible ? Et à quelle vitesse nous en rapprochons-nous ?
Lorsque les équipes de la FIRST Tech Challenge (FTC) ou les élèves en robotique découvrent le contrôle PID dans la documentation, ils se heurtent souvent à des symboles d'intégrales et de dérivées qui déroutent quiconque n'a pas suivi de cours de mathématiques expertes au lycée. En pratique, le code exécuté sur un robot ne résout pas d'équations différentielles continues. Il effectue de simples opérations arithmétiques toutes les quelques millisecondes. Dès lors que les élèves comprennent le rôle physique de P, de I et de D, ils peuvent écrire, régler et déboguer des boucles d'asservissement de manière fiable.
Le principe fondamental : l'erreur
Toute boucle d'asservissement vise à minimiser une seule et même valeur : l'erreur.
L'erreur correspond simplement à Cible - Position actuelle. Si un bras de robot est à 20 degrés et doit atteindre 90 degrés, l'erreur est de +70. Si un volant d'inertie doit tourner à 2 000 tr/min mais tourne à 2 100 tr/min, l'erreur est de -100. Chaque terme du PID prend cette valeur d'erreur et la convertit en puissance moteur.
1. Proportionnel (P) : le présent
Le terme proportionnel agit comme un simple élastique. Plus vous êtes éloigné de votre cible, plus il tire fort.
Si vous conduisez une voiture et déviez de cinq mètres vers la gauche par rapport au centre de votre voie, vous donnez un grand coup de volant vers la droite. Si vous n'avez dévié que de deux centimètres, vous appliquez un très léger ajustement. Dans le code, cela se traduit mathématiquement par kP * error.
Les limites du terme P employé seul :
- Dépassement et oscillation : si
kPest trop élevé, le robot accélère si brutalement vers la cible que son élan le fait dépasser le repère. Il applique alors une forte correction en sens inverse, dépasse à nouveau et se met à osciller violemment. - Erreur statique : si
kPest trop faible, la puissance délivrée au moteur diminue tellement au fur et à mesure que l'erreur rétrécit qu'elle ne suffit plus à vaincre les frottements physiques ou la gravité. Un mécanisme d'élévateur soulevant une pince de 500 grammes s'arrêtera tout simplement quelques centimètres en dessous de la cible, car la puissance du moteur s'équilibre avec la gravité et cale.
2. Dérivé (D) : le futur (les freins)
Le terme dérivé observe la vitesse à laquelle l'erreur évolue d'un cycle de boucle à l'autre. Son rôle est de servir d'amortisseur ou de frein.
Imaginez que vous garez une voiture dans un garage. Si le mur est à dix mètres, vous appuyez sur l'accélérateur. Mais si vous voyez le mur se rapprocher à toute vitesse, vous n'attendez pas que le pare-chocs soit à un centimètre de la brique pour appuyer sur le frein : vous freinez en fonction de votre vitesse d'approche.
Dans le code, derivative = (current_error - previous_error) / time_elapsed. Lorsque le robot fonce vers sa cible, l'erreur diminue rapidement, ce qui rend le terme dérivé négatif et soustrait de la puissance au moteur avant qu'il ne dépasse le repère. Le terme D amortit les oscillations et vous permet d'utiliser un gain P plus élevé sans faire vibrer le robot au point de le disloquer.
3. Intégral (I) : le passé (la mémoire)
Le terme intégral cumule l'erreur persistante au fil du temps. Si un robot reste légèrement en deçà de sa cible pendant plusieurs secondes, la somme intégrale augmente jusqu'à donner aux moteurs l'impulsion supplémentaire nécessaire pour surmonter les frottements ou la gravité.
Imaginez que vous poussiez un chariot sur une pente. Vous poussez (P), mais la gravité vous bloque juste avant le sommet. Si vous restez planté là pendant cinq secondes sans réussir à franchir la crête, le terme intégral dit en substance : « Nous sommes bloqués ici depuis trop longtemps ; augmentons la puissance jusqu'à ce que nous franchissions le sommet. »
Le piège : le terme intégral est dangereux s'il est mal maîtrisé. Si un bras se coince mécaniquement, la somme intégrale va s'envoler vers l'infini (un phénomène appelé « emballement de l'intégrale » ou "integral windup"). Lorsque le blocage cède, le moteur vient alors percuter violemment les butées mécaniques. En FTC et en robotique scolaire, il convient de plafonner l'intégrale à l'aide d'une limite d'accumulation, ou de ne l'activer qu'à l'intérieur d'une fenêtre d'erreur restreinte.
Une méthode de réglage en 4 étapes pour l'atelier
Ne tentez pas de deviner les trois valeurs en même temps. Faites suivre à vos élèves une procédure de réglage reproductible sur une batterie complètement chargée (les variations de tension modifiant la réponse des moteurs) :
| Step | Action | Target Behaviour | Signs It Is Wrong |
|---|---|---|---|
| 1. Mettre tous les gains à 0 | kP = 0, kI = 0, kD = 0 | Les moteurs ne font rien. | — |
| 2. Augmenter kP | Augmenter kP progressivement jusqu'à ce que le mécanisme atteigne rapidement la cible. | Atteint la cible avec un léger rebond ou une oscillation constante autour de la consigne. | Des secousses violentes indiquent que kP est trop élevé ; une absence de mouvement indique qu'il est trop faible. |
| 3. Ajouter kD | Augmenter graduellement kD jusqu'à éliminer le rebond. | Le mécanisme se verrouille rapidement en position et s'arrête net sans osciller. | Des cliquetis ou des bourdonnements à haute fréquence indiquent que kD est trop élevé (amplification du bruit de capteur). |
| 4. Ajouter kI (Uniquement si nécessaire) | Ajouter une très faible valeur de kI si le mécanisme s'arrête à 1 ou 2 mm de la cible en raison des frottements. | L'erreur statique résiduelle finale tombe à zéro. | Une oscillation lente et ondulante (pompage) indique que kI est trop élevé. |
Les pièges fréquents sur les robots d'élèves
- Bruit de capteur : les encodeurs optiques des châssis FTC fournissent généralement un signal propre, mais un jeu mécanique dans la transmission perturbera le terme dérivé. Si le réducteur présente du jeu, D réagira au flottement mécanique plutôt qu'au mouvement réel.
- Variabilité du temps de boucle : si le code de votre équipe exécute le traitement d'image en arrière-plan sur un seul thread, le temps de boucle peut passer de 10 ms à 80 ms de manière imprévisible, faussant ainsi les calculs du PID standard. Gardez vos boucles d'asservissement isolées et légères.
- Volants d'inertie vs bras : l'asservissement en vitesse (volants d'inertie) se comporte différemment de l'asservissement en position (bras). Les boucles de vitesse ont rarement besoin de D, car l'inertie du système agit déjà comme un filtre passe-bas ; elles fonctionnent de manière optimale avec un terme de précommande de base (feedforward, kV) associé à de modestes gains P et I.
Pour les équipes qui visent les compétitions régionales, la maîtrise de l'asservissement en boucle fermée fait toute la différence entre des mécanismes erratiques et des routines autonomes qui marquent des points de manière constante à chaque match. Si votre équipe prépare le circuit de compétition local et recherche un encadrement technique structuré sur la cinématique du châssis et l'intégration des capteurs, découvrez nos FTC robotics programmes pour bénéficier de cadres d'accompagnement pratiques.



