Chapitre 12
Retour à la douche
Pourquoi on oscillait, et à quelle distance du bord sommes-nous ?
Chapitre 12 : Retour à la douche ↗
La douche, avec un regard neuf
June: J'ai mis le PID de notre drone sur la douche (le même côté nerveux, remis à l'échelle du robinet). Elle a oscillé chaud, froid, chaud… exactement comme Mika au chapitre 0. Le drone n'a jamais fait ça !
Theo: Le drone n'a pas de gros retard. La douche a 2,5 secondes de tuyau. Découvrons enfin ce que fait un retard.
La douche a deux parties lentes : le tuyau, un retard pur de 2,5 s, et le lisseur (un « système du premier ordre », disent les manuels) : le pommeau et les parois du tuyau qui se réchauffent, avec la constante de temps du chapitre 3, s (au bout d'1 s, il a comblé 63 % de l'écart vers une nouvelle température).
D'abord, un aveu à propos de la « main normale » du chapitre 0. Elle tournait le robinet à une vitesse proportionnelle à quel point l'eau semblait mal réglée : vitesse du robinet , avec du robinet par seconde et par °C. Une vitesse proportionnelle à l'erreur veut dire que la position du robinet est le tas d'erreur passée. C'est un correcteur I, avec .
Mika: Attends, donc au chapitre 0, j'étais un correcteur PID ? Enfin, un correcteur I. Un correcteur I trop zélé.
Un retard, c'est un décalage dans l'oscillation
Theo: Je pense toujours qu'un retard rend juste tout plus lent. Il ne devrait pas pouvoir rendre quoi que ce soit instable.
Isolons d'abord le retard pur du tuyau. Imagine une onde sinusoïdale à l'entrée du tuyau qui arrive au pommeau sans être lissée : la sortie garde la même forme, avec 2,5 s de retard. Ce retard représente combien, par rapport à une oscillation ?
Chapitre 12 : Retour à la douche ↗
Theo: Attends. Pour une oscillation de 5 secondes, l'eau chaude arrive pile quand le robinet demande du froid. Ce n'est pas plus lent. C'est à l'envers.
Le retard du tuyau reste de 2,5 s, mais son déphasage dépend de la vitesse d'oscillation. Appelons ce déphasage et le retard . Si une oscillation dure secondes (ici, est une durée, pas une température), sa pulsation vaut radians par seconde. Un déphasage positif signifie que la sortie suit l'entrée avec du retard. Les ingénieurs l'écrivent comme un angle négatif : les courbes ci-dessous descendent donc.
Une oscillation complète, c'est un tour entier du tourniquet du chapitre 5 : 360°, soit 2π radians. Ce qui compte, c'est donc quelle fraction d'une oscillation le retard recouvre : .
Chapitre 12 : Retour à la douche ↗
Pour une oscillation de 5 secondes, 2,5 s, c'est une demi-oscillation : 180°. Dans ce modèle de retard pur, chaque sommet de la sortie coïncide avec un creux de l'entrée. Le lisseur de la douche rétrécit aussi les oscillations rapides ; ajoutons-le juste après.
Mika: Donc les mêmes 2,5 s, c'est une pichenette pour une oscillation paresseuse et un retournement complet pour une rapide. Le tuyau ne change jamais. C'est l'oscillation qui change !
Mesurer la douche, une oscillation à la fois
Ajoutons maintenant le lisseur au retard du tuyau. Le pommeau et les parois du tuyau mettent du temps à se réchauffer : la douche complète retarde donc et lisse les changements du robinet. Voici le plan : faire osciller le robinet à une vitesse, attendre un rythme stable, puis mesurer deux nombres :
- Gain (le même mot que le gain du correcteur : taille en sortie ÷ taille en entrée) : la taille de l'oscillation de température, comparée à l'oscillation du mélange d'eau qu'on a demandée.
- Phase : de combien elle est en retard, sous forme d'angle : sa fraction d'une oscillation complète, fois 360°.
Chaque mesure pose un point sur deux graphiques. Mesure au moins cinq vitesses, lentes et rapides.
Chapitre 12 : Retour à la douche ↗
Le lisseur rétrécit les oscillations rapides, pendant que le tuyau continue d'ajouter du déphasage. Ces courbes de gain et de phase en fonction de la vitesse d'oscillation forment un diagramme de Bode. Ensemble, elles sont la réponse en fréquence de la douche : la façon dont elle traite chaque vitesse d'oscillation. Ici, l'entrée est la température de l'eau mélangée, donc les oscillations lentes ont un gain de 1. Si on prenait la fraction de robinet comme entrée, le gain serait 45 fois plus grand. Pour obtenir la réponse en fréquence à partir de la formule, on pose : la même astuce qui a trouvé le bord au chapitre 11. (Ça marche parce que la douche toute seule est stable, donc ses oscillations se calent sur un rythme régulier qu'on peut mesurer.)
Ce que le lisseur fait à un tourniquet
Theo: L'astuce du chapitre 4, encore : on devine que la réponse est le même tourniquet, juste avec une autre taille et un autre angle.
Mets le tourniquet dans la règle du lisseur : la flèche doit vérifier . Les flèches du chapitre 7 : a pour longueur et pointe vers le haut avec l'angle . Diviser par elle rétrécit de cette longueur et fait tourner en arrière de cet angle. Les oscillations lentes le remarquent à peine. Les rapides sont écrasées et prennent un retard qui tend vers un quart de tour, sans jamais le dépasser.
Chapitre 12 : Retour à la douche ↗
June: Trouvé ! Vers 0,95 rad/s, la douche toute seule met une oscillation à l'envers. Retenons cette vitesse.
À quelle distance de la falaise ?
Maintenant, fermons la boucle : main → robinet → tuyau → peau → main. Suis une oscillation sur tout le tour. Pour la main du chapitre 0, le tour de la boucle donne (un petit rond pour boucle, parce que est déjà le retard) :
Le tas d'une oscillation
Mika: Ma main empile de l'erreur. Qu'est-ce qu'un tas fait à une oscillation ?
L'aire sous un cosinus est un sinus, en retard d'un quart d'oscillation : 90° de retard, à toutes les vitesses. Et le tas est plus gros pour les oscillations lentes, parce que chaque bosse dure plus longtemps avant d'être compensée : la taille varie comme . Le chapitre 5 disait que la vitesse, c'est fois la position. Empiler, c'est l'inverse : diviser par . C'est le de la boucle.
La rétroaction soustrait (erreur = cible − température). C'est un ×(−1), le demi-tour du chapitre 5 : la vague est retournée une fois. Si le tour de la boucle la retarde aussi d'exactement 180°, les deux retournements s'annulent, et chaque correction arrive parfaitement en rythme avec l'oscillation, comme quand on pousse une balançoire pile au bon moment. Si la boucle rend la vague à sa taille d'origine (gain 1), l'oscillation s'entretient toute seule (les automaticiens disent que la boucle pompe) ; au-delà de 1, elle grandit. C'est encore le du chapitre 10, sur la droite : un tour qui revient retourné et à pleine taille, c'est .
June: Pour cette boucle de douche simple, la phase traverse −180° à une vitesse d’oscillation qui nous intéresse. Repère cette vitesse sur le graphique de phase, puis lis le gain de boucle à la même vitesse sur le graphique de gain. Est-il inférieur ou supérieur à 1 ?
Chapitre 12 : Retour à la douche ↗
Fais glisser jusqu'à ce que le total dépasse 180°, entre 0,45 et 0,46 rad/s. Au croisement exact, vers 0,457 rad/s, l'oscillation revient 0,72 fois aussi grande : la main pourrait donc être environ 1 ÷ 0,72 ≈ 1,4 fois plus forte avant d'atteindre le bord.
Nouveaux mots
- Marge de gain
- Combien de fois on pourrait multiplier le gain du correcteur avant que le gain de boucle atteigne 1 à la vitesse à −180°. En dessous de 1 = on est tombé de la falaise.
- Marge de phase
- À la vitesse où le gain de boucle vaut exactement 1, combien de retard en plus il faudrait pour atteindre −180°. Plus, c'est plus sûr ; 45° à 60° est une cible courante (le détour ci-dessous explique pourquoi).
La marge de phase, c'est de l'amortissement déguisé
June: Pourquoi 45° à 60° ? Qui a choisi ça ?
Pour les boucles simples du chapitre 7, la marge de phase et le taux d'amortissement bougent ensemble. Environ 43° va avec ζ = 0,4 (25 % de dépassement), 52° avec ζ = 0,5 (16 %), et 59° avec ζ = 0,6 (moins de 10 %). Ces paires sont exactes pour la boucle la plus simple du chapitre 7, . Donc une marge de 45° à 60° veut dire ζ ≈ 0,4 à 0,6 : plus rebondissant que le 0,7 à 1 du chapitre 7. C'est pourtant une cible courante, parce qu'une marge est aussi une distance de sécurité avant la falaise (de combien le modèle peut se tromper), pas seulement une promesse sur le dépassement. Avec un tuyau dans la boucle, c'est un bon repère, pas une loi exacte.
Pour notre douche, la phase de atteint −180° à rad/s, soit une période d'oscillation d'environ 13,8 s. La main normale () n'a qu'une marge de gain d'environ 1,4, et une marge de phase d'environ 22° (là où son gain de boucle vaut 1, à 0,34 rad/s, la phase est de −158°). Tout près du bord ! La main énergique double le gain : 1,4 ÷ 2 = 0,7, tombée de la falaise. C'est exactement pour ça qu'elle ne se stabilisait jamais.
Prédis d'abord ! Imagine que le tuyau soit deux fois plus long (un retard de 5 s). Que devient le plus grand gain de main encore stable ?
Chapitre 12 : Retour à la douche ↗
Chapitre 12 : Retour à la douche ↗
Mika: Deux fois plus de tuyau, environ deux fois moins de main. Et au bord, les oscillations ralentissent aussi : presque 24 secondes !
Theo: D'accord, je retire ce que j'ai dit. Un retard ne rend pas juste les choses plus lentes : il mange la marge de phase, et la marge de phase est la seule chose entre toi et une oscillation.
Ta douche du chapitre 0, expliquée
Voici ton propre essai du chapitre 0. Si tes oscillations étaient proches du bord, leur période devrait être proche de ce que prédit la boucle. Petite subtilité : les gens ne sont pas tous le même genre de correcteur.
Chapitre 12 : Retour à la douche ↗
Une main vitesse (tourner le robinet tant que ça semble faux) est un correcteur I : son bord correspond à des oscillations de 13,8 s. Une main position (« c'est trop chaud, mets le robinet ici ») agit comme un correcteur P : . Une main position n'a pas de tas, donc pas de 90° à elle : le tuyau et le lisseur doivent atteindre 180° tout seuls, ce qui arrive pour une oscillation plus rapide, rad/s (la vitesse « à l'envers » de June). Cela donne des oscillations de 6,6 s, pour tout au-dessus d'environ 0,031 robinet par °C. La plupart des gens sont un mélange. (La main robot normale oscille un peu plus lentement que 13,8 s, environ 15,5 s, parce qu'elle est juste à l'intérieur du bord ; les oscillations de la main énergique, environ 11,6 s, sont écrasées par le robinet qui arrive en butée.)
Chapitre 12 : Retour à la douche ↗
Mika: Donc quand je donnais un coup sec au robinet vers une position précise, j'étais une main position. Mes oscillations de six secondes, c'était le tuyau et le lisseur, pas des doigts maladroits.
Concevoir une douche robot
Essayons maintenant de battre nos mains. Le robot utilise PI : P réagit à l’erreur de température actuelle, et I garde en mémoire l’erreur accumulée. Ensemble, ils font réagir vite le robinet tandis que I trouve le réglage durable.
June: Facile. Je vais mettre de gros gains, comme sur le drone : rapide et nerveux. Ils sont déjà réglés. Regardez ça !
Chapitre 12 : Retour à la douche ↗
June: …elle pompe : chaud–froid–chaud, toutes les 6 secondes, comme une main position au chapitre 0. Les gros gains ont poussé la vitesse à gain 1 au-delà de la vitesse à −180°. Plus aucune marge de phase.
10 s sur le papier, 6 s sous la douche
Les gains de June ont par seconde, exactement . Le zéro du PI tombe sur le pôle du lisseur et l'annule, ce qui laisse . Sur le papier, cette boucle atteint −180° à , une oscillation de 10 s. Mais la boucle est loin au-delà du bord, donc le robinet claque d'une butée à l'autre, et ces oscillations en butée reviennent environ toutes les 6,3 s : tout près des 6,6 s de la main position.
Theo: Le drone supportait de gros gains parce qu'il n'avait presque pas de retard. Ici, robuste veut dire doux : il faut laisser de la marge pour le retard. Essaie mes gains doux, environ et .
P réagit à maintenant, I au tas. Ajouter un peu de maintenant fait bouger le robinet un peu plus tôt, ce qui rend de la phase : c'est l'avance de phase, environ 37° à l'ancienne vitesse à −180° avec les gains de Theo.
Un PI avec de bonnes marges devient confortable en environ 9,4 secondes, sans grandes oscillations répétées. C'est mieux que la main normale (qui a passé presque une minute à osciller avant de se calmer) et que la plupart des humains. Mais il ne peut pas battre la physique : rien ne peut réagir à de l'eau qui n'est pas encore arrivée. Les ingénieurs ont bien une astuce pour les longs retards, le prédicteur de Smith, qui fait tourner une petite simulation du tuyau à l'intérieur du correcteur. Mais c'est une histoire pour un autre carnet.
La robustesse, c'est la vraie leçon. Ton modèle de la douche n'est jamais parfait : le tuyau est peut-être plus long, le chauffe-eau plus faible. Une marge dit à quel point le modèle peut se tromper, avec un nombre qu'on peut sentir. La marge de phase (en radians) divisée par la vitesse à gain 1 donne une marge de retard : combien de secondes de tuyau en plus la boucle peut encaisser.
Chapitre 12 : Retour à la douche ↗
Theo: La main normale ne supporte qu'environ 1,1 s de tuyau en plus. Mon robot tout doux en supporte 3,5 s. Voilà ce que veut dire robuste.
Tuyau plus court ou chauffe-eau plus rapide ?
Mika: On ne pourrait pas juste acheter un chauffe-eau plus rapide ?
Diviser par deux le temps de lissage (τ = 0,5 s) ne fait monter le bord de la main vitesse que de 1,12 à 1,21 %/(°C·s). Diviser le tuyau par deux (1,25 s) le fait monter à 2,06. Pour une main position, le chauffe-eau plus rapide est même pire : son bord descend de 0,031 à 0,025 robinet par °C, parce que le lisseur rétrécissait discrètement les oscillations rapides. L'ennemi, c'est le retard, pas la lenteur.
Comment le robot tourne vraiment le robinet
Le code du robot écrit PI comme une vitesse du robinet : I continue de le déplacer tant que l’erreur persiste, et P répond à un changement d’erreur. Au départ, P donne aussi un premier mouvement selon l’erreur actuelle. Cela correspond à la règle de position, sauf quand le robinet atteint une butée.
Ce qu'on comprend maintenant
Ce qu'on a compris
- Un retard décale une oscillation de : rien pour les oscillations lentes, beaucoup pour les rapides.
- Un tas (I) retarde chaque oscillation de 90° ; un lisseur, de 90° au plus ; un tuyau, de , sans limite.
- Envoyer des sinusoïdes et mesurer gain et phase donne la réponse en fréquence ; tracée, c'est un diagramme de Bode, et c'est simplement .
- Dans cette boucle de douche simple, une oscillation entretenue commence quand la phase de boucle atteint −180° avec un gain de 1 ; un gain plus grand fait croître les oscillations jusqu’à l’intervention des limites.
- Les marges de gain et de phase mesurent la distance à cette falaise. Plus de retard veut dire moins de marge, donc il faut une commande plus douce.
- Nos oscillations du chapitre 0, c'était un correcteur (nous) avec trop peu de marge.
On a maintenant tous les outils : rétroaction, PID, pôles, marges. Place au vrai test : du vent, un colis largué et un capteur bruité. Arriveras-tu à garder le drone à 2 m ?