Capítulo 12
De vuelta a la ducha
¿Por qué oscilábamos, y a qué distancia estamos del abismo?
Capítulo 12: De vuelta a la ducha ↗
La ducha, con otros ojos
June: Puse el PID de nuestro dron en la ducha (la misma respuesta ágil, escalada a unidades de mando). Osciló caliente, fría, caliente… igual que Mika en el capítulo 0. ¡El dron nunca hizo eso!
Theo: El dron no tiene un retardo grande. La ducha tiene 2,5 segundos de tubería. Averigüemos de una vez qué hace un retardo.
La ducha tiene dos partes lentas: la tubería, un retardo puro de 2,5 s, y el suavizador, el cabezal y las paredes de la tubería calentándose con la constante de tiempo del capítulo 3, s (al cabo de 1 s ha cerrado el 63 % de la distancia hasta una temperatura nueva).
Primero, una confesión sobre la "mano normal" del capítulo 0. Giraba el mando a una velocidad proporcional a lo mal que se sentía el agua: velocidad del mando , con del mando por segundo y por °C. Una velocidad proporcional al error significa que la posición del mando es el montón de error pasado. Eso es un controlador I, con .
Mika: Espera, ¿entonces en el capítulo 0 yo era un controlador PID? Bueno, un controlador I. Uno con demasiadas ganas.
El retardo es un desfase en la oscilación
Theo: Yo sigo pensando que un retardo solo lo hace todo más lento. No debería poder volver inestable nada.
Primero aislemos el retardo puro de la tubería. Imagina una onda senoidal que va desde la entrada de la tubería hasta el cabezal sin suavizarse: la salida conserva la misma forma, pero llega 2,5 s tarde. ¿Cuánto representa ese retardo respecto de una oscilación completa?
Capítulo 12: De vuelta a la ducha ↗
Theo: Espera. Con una oscilación de 5 segundos, el agua caliente llega justo cuando el mando pide fría. Eso no es más lento. Es al revés.
El retardo de la tubería sigue siendo de 2,5 s, pero su desfase depende de lo rápido que oscile la onda. Llamemos al desfase y al retardo. Si una oscilación dura segundos (aquí es un tiempo, no una temperatura), su velocidad angular es radianes por segundo. Un desfase positivo significa que la salida va por detrás de la entrada. Los ingenieros escriben el desfase como un ángulo negativo, por eso las gráficas de abajo bajan.
Una oscilación entera es una vuelta completa de la flecha giratoria del capítulo 5: 360°, o 2π radianes. Así que lo que importa es qué fracción de una oscilación cubre el retardo: .
Capítulo 12: De vuelta a la ducha ↗
Para una oscilación de 5 segundos, 2,5 s es media oscilación: 180°. En este modelo de retardo puro, cada cresta de la salida coincide con un valle de la entrada. El suavizador de la ducha además encoge las oscilaciones rápidas\; eso lo añadimos enseguida.
Mika: O sea, los mismos 2,5 s son un empujoncito para una oscilación perezosa y una vuelta completa del revés para una rápida. La tubería no cambia nunca. ¡La que cambia es la oscilación!
Midiendo la ducha oscilación a oscilación
Ahora añade el suavizador al retardo de la tubería. El cabezal y las paredes de la tubería tardan en calentarse, así que la ducha completa retrasa y suaviza los cambios del mando. El plan: mover el mando en vaivén a una velocidad, esperar a que el ritmo se asiente y medir dos números:
- Ganancia (la misma palabra que la ganancia del controlador: tamaño que sale ÷ tamaño que entra): lo grande que es la oscilación de temperatura comparada con la oscilación de la mezcla de agua que pedimos.
- Fase: cuánto va por detrás, como ángulo: su fracción de una oscilación entera, por 360°.
Cada medida pone un punto en dos gráficas. Mide al menos cinco velocidades, lentas y rápidas.
Capítulo 12: De vuelta a la ducha ↗
El suavizador encoge las oscilaciones rápidas, mientras la tubería sigue añadiendo desfase. Estas curvas de ganancia y fase frente a la velocidad de oscilación forman un diagrama de Bode. Juntas son la respuesta en frecuencia de la ducha: cómo trata cada velocidad de oscilación. Aquí la entrada es la temperatura del agua mezclada, así que las oscilaciones lentas tienen ganancia 1. Si usáramos como entrada la fracción de mando, la ganancia sería 45 veces mayor. Para sacar la respuesta en frecuencia de la fórmula, pon : el mismo truco que encontró el borde del capítulo 11. (Funciona porque la ducha, por sí sola, es estable, así que sus oscilaciones se asientan en un ritmo constante que podemos medir.)
Lo que el suavizador le hace a una flecha giratoria
Theo: Otra vez el truco del capítulo 4: supongamos que la respuesta es la misma flecha giratoria, solo que con otro tamaño y otro ángulo.
Mete la flecha giratoria en la regla del suavizador y la flecha tiene que cumplir . Con las flechas del capítulo 7: mide y apunta hacia arriba con el ángulo . Dividir entre ella encoge en esa longitud y gira hacia atrás ese ángulo. Las oscilaciones lentas casi ni lo notan. Las rápidas quedan aplastadas y se retrasan hasta casi un cuarto de vuelta, pero nunca más.
Capítulo 12: De vuelta a la ducha ↗
June: ¡Lo encontré! Cerca de 0,95 rad/s, la ducha por sí sola pone una oscilación del revés. Hay que recordar esa velocidad.
¿A qué distancia del abismo?
Ahora cerremos el lazo: mano → mando → tubería → piel → mano. Sigue una oscilación por todo el lazo. Para la mano del capítulo 0, el viaje alrededor del lazo es (un circulito por lazo, porque ya es el retardo):
El montón de una oscilación
Mika: Mi mano va amontonando error. ¿Qué le hace un montón a una oscilación?
El área bajo un coseno es un seno, un cuarto de oscilación por detrás: 90° de desfase, a cualquier velocidad. Y el montón es mayor para las oscilaciones lentas, porque cada joroba dura más antes de compensarse: el tamaño va como . El capítulo 5 decía que la velocidad es veces la posición. Amontonar es lo contrario: dividir entre . Ese es el del lazo.
La realimentación resta (error = objetivo − temperatura). Eso es un ×(−1), la media vuelta del capítulo 5, así que la onda se invierte una vez. Si el viaje alrededor del lazo además la retrasa exactamente 180°, las dos inversiones se anulan y cada corrección llega perfectamente a compás con la oscilación, como cuando empujas un columpio justo en el momento adecuado. Si el lazo devuelve la onda a tamaño completo (ganancia 1), la oscilación se mantiene sola; con más de 1, crece. Es otra vez el del capítulo 10, sobre la recta : un viaje que regresa invertido y a tamaño completo es .
June: En este lazo sencillo de ducha, la fase cruza −180° a una velocidad de oscilación relevante. Busca esa velocidad en la gráfica de fase y lee la ganancia del lazo a la misma velocidad en la gráfica de ganancia. ¿Está por debajo o por encima de 1?
Capítulo 12: De vuelta a la ducha ↗
Desliza hasta que el total pase de 180°, entre 0,45 y 0,46 rad/s. En el cruce exacto, hacia 0,457 rad/s, la oscilación vuelve 0,72 veces más grande, así que la mano podría ser unas 1 ÷ 0,72 ≈ 1,4 veces más fuerte antes de llegar al borde.
Palabras nuevas
- Margen de ganancia
- Cuántas veces podrías multiplicar la ganancia del controlador antes de que la ganancia del lazo llegue a 1 a la velocidad de −180°. Por debajo de 1 = has caído por el abismo.
- Margen de fase
- A la velocidad en que la ganancia del lazo vale exactamente 1, cuánto desfase extra haría falta para llegar a −180°. Más es más seguro\; 45°–60° es un objetivo habitual (el desvío de abajo explica por qué).
El margen de fase es amortiguamiento disfrazado
June: ¿Por qué de 45° a 60°? ¿Quién eligió eso?
En los lazos sencillos del capítulo 7, el margen de fase y el coeficiente de amortiguamiento van de la mano. Unos 43° corresponden a ζ = 0,4 (25 % de sobreimpulso), 52° a ζ = 0,5 (16 %) y 59° a ζ = 0,6 (menos del 10 %). Estas parejas son exactas para el lazo más sencillo del capítulo 7, . Así que un margen de 45°–60° significa ζ ≈ 0,4–0,6: más saltarín que el 0,7–1 del capítulo 7. Aun así es un objetivo habitual, porque un margen también es una distancia de seguridad al abismo (cuánto puede equivocarse el modelo), no solo una promesa sobre el sobreimpulso. Con una tubería en el lazo es una buena guía, no una ley exacta.
En nuestra ducha, la fase de llega a −180° en rad/s, un periodo de oscilación de unos 13,8 s. La mano normal () tiene un margen de ganancia de solo unos 1,4, y un margen de fase de unos 22° (donde su ganancia del lazo vale 1, a 0,34 rad/s, la fase es −158°). ¡Muy cerca del borde! La mano más brusca duplica la ganancia: 1,4 ÷ 2 = 0,7, abismo abajo. Justo por eso no se estabilizaba nunca.
¡Primero, predice! Supón que la tubería fuera el doble de larga (un retardo de 5 s). ¿Qué le pasa a la mayor ganancia de la mano que sigue siendo estable?
Capítulo 12: De vuelta a la ducha ↗
Capítulo 12: De vuelta a la ducha ↗
Mika: El doble de tubería, más o menos la mitad de mano. Y las oscilaciones en el borde también se vuelven más lentas: ¡casi 24 segundos!
Theo: Vale, retiro lo dicho. Un retardo no solo hace las cosas más lentas: se come el margen de fase, y el margen de fase es lo único que hay entre tú y una oscilación.
Tu ducha del capítulo 0, explicada
Aquí tienes tu propio intento del capítulo 0. Si tus oscilaciones estaban cerca del borde, su periodo debería parecerse a lo que predice el lazo. Pero hay un giro: no todas las personas son el mismo tipo de controlador.
Capítulo 12: De vuelta a la ducha ↗
Una mano de velocidad (girar el mando mientras el agua se sienta mal) es un controlador I: su borde está en oscilaciones de 13,8 s. Una mano de posición ("está demasiado caliente, pon el mando aquí") actúa como un controlador P: . Una mano de posición no tiene montón, así que tampoco sus propios 90°: la tubería y el suavizador solos tienen que llegar a 180°, y eso ocurre con una oscilación más rápida, rad/s (la velocidad del revés de June). Eso da oscilaciones de 6,6 s, para cualquier por encima de unos 0,031 de mando por °C. La mayoría de la gente es una mezcla. (La mano robot normal oscila algo más despacio que 13,8 s, unos 15,5 s, porque está justo por dentro del borde\; las oscilaciones de la mano brusca, de unos 11,6 s, quedan aplastadas porque el mando choca con sus topes.)
Capítulo 12: De vuelta a la ducha ↗
Mika: Así que cuando daba tirones al mando directo a un punto, yo era una mano de posición. Mis oscilaciones de seis segundos eran la tubería y el suavizador, no unos dedos torpes.
Diseña una ducha robot
Ahora vamos a ganarles a nuestras propias manos. El robot usa PI: P reacciona al error de temperatura actual, e I recuerda el error acumulado. Juntos dejan que el mando responda enseguida mientras I encuentra el ajuste duradero correcto.
June: Fácil. Usaré ganancias grandes, como en el dron: rápido y ágil. Ya están puestas. ¡Mira esto!
Capítulo 12: De vuelta a la ducha ↗
June: …oscila sin parar, caliente–fría–caliente, cada 6 segundos, como una mano de posición en el capítulo 0. Las ganancias grandes empujaron la velocidad de ganancia 1 más allá de la velocidad de −180°. Nada de margen de fase.
10 s en el papel, 6 s en la ducha
Las ganancias de June tienen por segundo, que es justo . El cero del PI cae sobre el polo del suavizador y lo cancela, y queda . En el papel, ese lazo llega a −180° en , una oscilación de 10 s. Pero su lazo está muy pasado el borde, así que el mando va de tope a tope, y esas oscilaciones a golpes llegan cada 6,3 s más o menos: cerca de los 6,6 s de la mano de posición.
Theo: El dron aguantaba ganancias grandes porque casi no tenía retardo. Aquí, robusto significa suave: deja margen para el retardo. Prueba mis ganancias suaves, más o menos y .
P reacciona al ahora\; I, al montón. Añadir un poco de ahora mueve el mando un poco antes, y eso devuelve fase: adelanto de fase, unos 37° a la antigua velocidad de −180° con las ganancias de Theo.
Un PI con buen margen se pone a gusto en unos 9,4 segundos, sin grandes oscilaciones repetidas. Eso le gana a la mano normal (que se pasó casi un minuto oscilando antes de calmarse) y a la mayoría de los humanos. Pero no puede ganarle a la física: nada puede reaccionar a un agua que aún no ha llegado. Los ingenieros sí tienen un truco para retardos largos, el predictor de Smith, que ejecuta una pequeña simulación de la tubería dentro del controlador. Pero eso es historia para otro cuaderno.
La robustez es la verdadera lección. Tu modelo de la ducha nunca es perfecto: la tubería podría ser más larga, el calentador más débil. Un margen dice cuánto puede equivocarse el modelo, con un número que se puede sentir. El margen de fase (en radianes) dividido entre la velocidad de ganancia 1 es un margen de retardo: cuántos segundos de tubería extra aguanta el lazo.
Capítulo 12: De vuelta a la ducha ↗
Theo: La mano normal solo aguanta 1,1 s de tubería extra, más o menos. Mi robot suave aguanta 3,5 s. Eso es ser robusto.
¿Tubería más corta o calentador más rápido?
Mika: ¿Y si compramos un calentador más rápido y ya?
Reducir a la mitad el tiempo de suavizado (τ = 0,5 s) solo sube el borde de la mano de velocidad de 1,12 a 1,21 %/(°C·s). Reducir a la mitad la tubería (1,25 s) lo sube a 2,06. Para una mano de posición, el calentador más rápido es incluso peor: su borde baja de 0,031 a 0,025 de mando por °C, porque el suavizador estaba encogiendo en silencio las oscilaciones rápidas. El enemigo es el retardo, no la lentitud.
Cómo gira de verdad el mando el robot
El código del robot escribe PI como velocidad del mando: I sigue moviéndolo mientras haya error y P responde a un cambio del error. Al arrancar, P también da un primer movimiento según el error actual. Esto coincide con la regla en posición, salvo cuando el mando llega a un tope.
Lo que entendemos ahora
Lo que descubrimos
- Un retardo desfasa una oscilación en : nada para las oscilaciones lentas, mucho para las rápidas.
- Un montón (I) retrasa cualquier oscilación 90°\; un suavizador, hasta 90°\; una tubería, , sin límite.
- Meter ondas senoidales y medir ganancia y fase da la respuesta en frecuencia; dibujada, es un diagrama de Bode, y no es más que .
- En este lazo sencillo de ducha, una oscilación sostenida empieza cuando la fase del lazo llega a −180° con ganancia 1; con más ganancia, las oscilaciones crecen hasta que intervienen los límites.
- Los márgenes de ganancia y de fase miden la distancia a ese abismo. Más retardo significa menos margen, así que necesitas un control más suave.
- Nuestras oscilaciones del capítulo 0 eran un controlador (nosotros) con demasiado poco margen.
Ya tenemos todas las herramientas: realimentación, PID, polos, márgenes. Hora de la prueba de verdad: viento, un paquete que se suelta y un sensor con ruido. ¿Puedes mantener el dron a 2 m?