Parcours d'apprentissageIntermédiaire

Commande PID pour robots : un parcours d'apprentissage

Transformez une mesure bruitée en signal d'erreur lissé et réglez un contrôleur PID stable qui suit sans osciller.

Un contrôleur PID est le cheval de trait de la robotique : il convertit l’écart entre où un robot est et où il devrait être en correction. Mais un contrôleur ne vaut que le signal sur lequel il agit, donc ce parcours commence par nettoyer les lectures bruitées des capteurs, puis vous apprend à régler les termes proportionnel, intégral et dérivé pour que le robot suive en douceur au lieu d’osciller.

Les nœuds pratiques sont là où l’ordre compte. Réglez d’abord une boucle PID nue où une consigne unique et un système unique permettent de voir dépassement, oscillation et erreur statique isolément. Ensuite seulement, portez les mêmes trois gains sur le suiveur de ligne, où le système se défend et où l’erreur arrive d’un vrai capteur — et c’est là que le réglage cesse d’être propre.

Le parcours se termine ensuite quelque part où les nœuds précédents ne peuvent pas vous mener. Chaque système jusque-là est stable : ignorez-le et il reste là, donc le réglage consiste à faire mieux que ne rien faire. Un robot auto-équilibré n’est pas stable — laissez-le seul une seconde et il est au sol. Ce seul changement fait d’un bon réglage une obligation plutôt qu’une amélioration, et il impose l’idée structurelle sur laquelle ce parcours se termine : quand vous ne pouvez pas commander la grandeur qui vous importe, vous emboîtez deux boucles, et vous laissez la boucle externe déplacer la cible de la boucle interne.

Avant de commencer

Vous devez déjà savoir lire un capteur et piloter un moteur à une vitesse commandée — le parcours de commande des moteurs couvre les deux. Apportez un robot ou un simulateur où vous pouvez changer un nombre et voir aussitôt ce qu’il fait.

Ce que vous saurez faire

  • Régler P, puis I, puis D dans un ordre réfléchi, plutôt que de changer trois nombres à la fois en espérant.
  • Lire une courbe de réponse et nommer le défaut d’après sa forme : dépassement, oscillation entretenue, ou erreur statique qui ne se referme jamais.
  • Reconnaître l’emballement de l’intégrale quand l’actionneur sature, et le corriger en bornant plutôt qu’en baissant le gain jusqu’à masquer le symptôme.
  • Emboîter deux boucles pour qu’un contrôleur externe déplace la consigne d’un contrôleur interne.

Où l’on se heurte

Régler les trois gains ensemble. Avec trois boutons en interaction et une seule sortie, tout changer à la fois ne vous apprend rien du résultat. Montez P jusqu’à l’oscillation puis redescendez ; ajoutez D ensuite seulement ; ajoutez I en dernier et seulement s’il reste un écart persistant.

Dériver l’erreur. Quand la consigne fait un pas, l’erreur fait un pas avec elle, et sa dérivée est brièvement énorme — le robot donne une saccade sans raison physique. Dérivez la mesure à la place. Les maths sont presque identiques et l’à-coup disparaît.

Donner à D un signal bruité. La dérivation amplifie le bruit. Si votre capteur est instable, D transforme cette instabilité en commandes moteur. Filtrez d’abord — c’est pourquoi ce parcours commence par le bruit des capteurs plutôt que par le contrôleur.

Supposer que les gains se transfèrent. Les gains sont des propriétés d’un système particulier. Des batteries fraîches, un châssis plus lourd ou une autre surface changent tous le système, et le réglage parfait d’hier ne sera plus celui d’aujourd’hui.

Une période de boucle irrégulière. I et D dépendent tous deux du temps écoulé. Si votre boucle tourne quand elle finit par finir, les deux termes sont calculés sur un mensonge. Fixez l’intervalle, ou mesurez-le et injectez le temps réel écoulé dans les calculs.

Ce qu’il vous faut

Quoi Pourquoi ce parcours en a besoin Notes
Un système à exciter Quelque chose qui répond à une commande et se stabilise — un moteur, un chauffage, un robot Les simulateurs remplacent les trois si vous n’en avez aucun
Un moyen de tracer Régler en regardant un robot, c’est deviner ; régler en lisant une courbe, non Traceur série, ou les laboratoires de ce parcours
Un intervalle de boucle fixe I et D sont calculés sur le temps écoulé. Une boucle qui tourne quand elle finit calcule les deux sur un mensonge Le motif millis()
La patience d’un bouton à la fois Toute la méthode —

Vous pouvez accomplir chaque nœud de ce parcours dans le navigateur. Les trois laboratoires sont de vrais contrôleurs sur de vrais systèmes (simulés), et la procédure de réglage se transfère directement au matériel — ce qui est l’intérêt de la faire d’abord ici.

Pourquoi le parcours suit cet ordre

L’ordre est choisi pour que chaque étape ajoute exactement une difficulté nouvelle.

Le filtrage vient en premier parce qu’un contrôleur ne vaut que son entrée, et que D est le terme qui vous punit d’avoir sauté cette étape. La dérivation amplifie le bruit : un capteur avec ±2 points d’instabilité échantillonné toutes les 10 ms produit une estimation de dérivée oscillant de 200 points par seconde, et D la convertit directement en commandes moteur. Régler un contrôleur sur un signal non filtré enseigne la mauvaise leçon — que D est inutile.

La boucle nue vient avant le robot parce qu’elle isole le contrôleur. Une consigne, un système, trois gains, et ni géométrie de direction, ni placement de capteur, ni glissement des roues. Quand la réponse dépasse ici, la cause est dans les gains, et elle ne peut être nulle part ailleurs.

Le suiveur de ligne vient ensuite parce qu’il ajoute deux choses à la fois, deux ajouts honnêtes : l’erreur vient désormais d’un vrai capteur avec un champ de vision limité, et le système se défend — le mouvement propre du robot change l’erreur plus vite que le contrôleur ne l’attend. C’est là qu’un réglage qui semblait terminé cesse de l’être.

Le robot équilibré vient en dernier, et c’est tout l’objet du parcours. Chaque système précédent est stable : ignorez-le et il reste là, donc le réglage est une optimisation. Un pendule inversé n’est pas stable — laissez-le seul une seconde et il est au sol. Ce seul changement fait d’un bon réglage une obligation plutôt qu’une amélioration, et il impose l’idée structurelle sur laquelle le parcours se termine : quand vous ne pouvez pas commander la grandeur qui vous importe, vous emboîtez deux boucles.

Étapes : comment savoir qu’une étape est acquise

Étape Le test Ce à quoi ressemble la réussite
Filtrage Tracez le signal brut et filtré sur les mêmes axes en perturbant le capteur Vous pouvez désigner le retard que coûte votre filtre, en millisecondes, et dire pourquoi il vaut la peine d’être payé
P seul Montez P jusqu’à l’oscillation entretenue, notez la valeur, divisez-la par deux Vous avez un nombre pour le gain critique, et la réponse dépasse désormais puis se stabilise
Ajout de D Augmentez D jusqu’à amortir le dépassement Le dépassement chute sans que la réponse devienne molle ; trop de D et elle devient hachée
Ajout de I Seulement s’il reste un écart persistant L’écart se referme, et vous avez borné l’accumulateur avant de tester près de la saturation
Lire une courbe Regardez trois réponses et nommez le défaut de chacune Vous distinguez dépassement, oscillation entretenue et erreur statique à la seule forme
Emballement Commandez une consigne bien au-delà de ce que l’actionneur peut atteindre, puis relâchez Le système ne dépasse pas au relâchement — s’il le fait, votre borne manque
Période de boucle Affichez votre intervalle réel sur une minute Il est fixe, ou vous injectez le temps réel mesuré dans les calculs
Cascade Commandez une position sur un système équilibré La boucle interne tourne plusieurs fois plus vite que la boucle externe, et vous pouvez donner le rapport

Où ce parcours s’arrête

Le PID est le cheval de trait, pas tout le domaine, et ce parcours est honnête sur ses limites.

Il s’arrête à la commande mono-entrée, mono-sortie. Les vrais robots ont souvent plusieurs boucles couplées qui interfèrent entre elles, et il existe toute une discipline pour cela que le PID ne traite pas.

Il ne couvre pas la précompensation, qui est la plus grande amélioration pratique manquant à la plupart des boucles de robots. Le PID est réactif par construction — il ne peut agir que lorsqu’une erreur existe. Si vous connaissez déjà le mouvement commandé, vous pouvez calculer l’essentiel de la sortie requise à l’avance et laisser le PID ne corriger que la différence. Le tutoriel sur les profils de mouvement est la première moitié de cette idée.

Il ne couvre pas la commande basée sur modèle — LQR, placement de pôles, ou tout ce qui commence par écrire les équations du système. Ceux-ci donnent de meilleurs résultats quand on dispose d’un modèle précis, et la plupart des petits robots n’en ont pas.

Et il ne couvre pas la programmation de gains, la réponse standard au fait que les gains ne se transfèrent pas : conserver plusieurs réglages et commuter entre eux selon la vitesse, la charge ou la tension de la batterie.

Parcours d'apprentissage

Le parcours

Suivez les nœuds dans l'ordre — chacun débloque le suivant une fois terminé. Votre progression est enregistrée sur cet appareil.

0 / 7 terminés

100%
Tutoriel

Filtrer et fusionner des lectures de capteurs bruitées

Tutoriel

Ouvrir le tutoriel
Objectif

Régler un contrôleur stable

Compétence débloquée

Questions courantes

Questions fréquentes

Dans quel ordre régler les gains PID ?

P, puis D, puis I, et un seul à la fois. Montez le gain proportionnel jusqu'à une oscillation entretenue de la réponse, puis redescendez à environ la moitié de cette valeur — c'est le point de départ classique de Ziegler–Nichols et il vous amène vite près du but. Ajoutez ensuite la dérivée pour amortir le dépassement laissé par P. Ajoutez l'intégrale en dernier, et seulement s'il reste un écart persistant que P seul ne referme pas. Changer les trois à la fois ne vous apprend rien, car avec trois boutons en interaction et une seule sortie, vous ne pouvez pas attribuer le changement observé au bouton tourné.

Pourquoi mon contrôleur PID oscille-t-il ?

Le plus souvent, un gain proportionnel trop élevé pour le retard du système. Chaque boucle a du retard — filtrage du capteur, inertie du moteur, période de la boucle elle-même — et P agit sur une erreur déjà périmée. Passé un certain gain, la correction arrive assez tard pour aggraver les choses, et la boucle résonne. Baissez P et ajoutez D, qui agit sur la vitesse de variation et donc anticipe. Si l'oscillation est rapide et hachée plutôt que lisse, suspectez plutôt du bruit parvenant à D : la dérivation amplifie le bruit, et un capteur instable devient des commandes moteur saccadées.

Qu'est-ce que l'emballement de l'intégrale et comment le corriger ?

Quand l'actionneur sature — moteurs déjà à pleine puissance — l'erreur cesse de diminuer, mais le terme intégral continue de l'accumuler. Au moment où la consigne est atteinte, l'intégrale contient une grande valeur stockée qu'il faut défaire, donc le système dépasse largement et met longtemps à revenir. La correction consiste à borner l'accumulateur intégral dans une plage raisonnable, ou à cesser d'accumuler dès que la sortie est saturée. Ce qu'il ne faut pas faire, c'est baisser le gain intégral jusqu'à masquer le symptôme, ce qui échange le dépassement contre un écart qui ne se referme jamais.

Mes gains PID se transfèrent-ils sur un autre robot ?

Non, et souvent même pas sur le même robot le lendemain. Les gains sont des propriétés du système, pas de l'algorithme, et le système comprend l'état de charge de la batterie, la masse du châssis, la surface et la température du réducteur. Un réglage parfait sur batteries fraîches sera mou sur batteries plates, parce que le même rapport cyclique produit alors moins de couple. C'est pourquoi ce parcours insiste sur un réglage par procédure plutôt que par copie de nombres — la procédure se transfère même si les gains ne le font pas.

Pourquoi dériver la mesure plutôt que l'erreur ?

Parce que quand la consigne fait un pas, l'erreur fait un pas avec elle, et la dérivée d'un pas est brièvement énorme. Le robot donne une saccade violente pour une raison sans rapport avec la physique — rien n'a réellement bougé, vous avez juste demandé autre chose. Dériver la mesure donne la même information sur la vitesse réelle d'évolution du système, sans aucun à-coup de consigne. Le changement tient en une ligne de code et c'est presque toujours le bon.

Qu'est-ce qu'un PID en cascade et quand en ai-je besoin ?

Deux boucles emboîtées, où la sortie de la boucle externe est la consigne de la boucle interne. Il vous en faut une dès que vous ne pouvez pas commander la grandeur qui vous importe vraiment. Sur un robot auto-équilibré, vous voulez commander la position, mais les moteurs commandent le couple des roues, et la seule façon d'avancer est de pencher délibérément — donc une boucle interne tient l'inclinaison à l'angle qu'on lui donne, et une boucle externe demande une inclinaison pour se déplacer. La boucle interne doit être plusieurs fois plus rapide que la boucle externe, sinon la boucle externe poursuit une cible que la boucle interne n'a pas encore atteinte.