🎛️ Controlador PID
Simulador interactivo de controlador PID: ajusta Kp, Ki, Kd en plantas térmicas, mecánicas y de tanque. Observa el sobrepico, el tiempo de estabilización, el wind-up y el autoajuste de Ziegler-Nichols.
Acerca de esta simulación
Esta simulación modela un controlador PID (Proporcional-Integral-Derivativo) impulsando una de tres plantas reales: una masa térmica de primer orden, un carrito con resorte y amortiguador de segundo orden, o un tanque de líquido con válvula. En cada ciclo de control, el controlador mide el error e = r − y entre el punto de consigna r y la salida de la planta y, y luego calcula u = Kp·e + Ki·∫e·dt + Kd·de/dt, limitado a los límites del actuador con anti-windup para que el término integral deje de acumularse una vez que la salida se sature. El osciloscopio traza el punto de consigna y la respuesta durante los últimos 20 segundos, mientras que Escalón, Perturbar y el autoajuste de Ziegler–Nichols te permiten explorar el compromiso clásico de ajuste entre el tiempo de subida, el sobrepico, el tiempo de estabilización y el error de estado estacionario.
🔬 Qué muestra
Un lazo de realimentación en vivo: el gráfico de la planta (termómetro, carrito sobre un riel o tanque) muestra la variable controlada y persiguiendo el punto de consigna r, las dos barras laterales muestran la señal de control instantánea u y el error e, y el osciloscopio traza r (discontinuo) frente a y (sólido) en una ventana móvil de 20 segundos. Las estadísticas de abajo informan el tiempo de subida, el porcentaje de sobrepico, el tiempo de estabilización y el error de estado estacionario, calculados en vivo a partir de cada prueba Escalón.
🎮 Cómo usarlo
Elige una planta (Masa térmica, Carrito con resorte y amortiguador, o Tanque + válvula), luego arrastra los controles deslizantes Kp, Ki y Kd para cambiar las ganancias proporcional, integral y derivativa, y el control deslizante Punto de consigna para mover el objetivo. Pulsa Escalón para ordenar un salto del punto de consigna y medir la subida/sobrepico/estabilización, Perturbar para inyectar una perturbación externa repentina (pérdida de calor, empujón o fuga según la planta), y Autoajuste ZN para rellenar automáticamente Kp/Ki/Kd con las reglas de ganancia última de Ziegler–Nichols. Activa Ruido de medición para ver cómo la acción derivativa amplifica el ruido del sensor, y usa Escala de tiempo para acelerar o ralentizar la simulación.
💡 ¿Sabías que…?
El método de Ziegler–Nichols, publicado en 1942, ajusta un controlador PID a partir de solo dos números — la ganancia última Ku y el periodo último Tu en los que un lazo solo-P empieza a oscilar — dando Kp = 0,6·Ku, Ki = 1,2·Ku/Tu, Kd = 0,075·Ku·Tu. Los lazos PID están en todas partes: el control de crucero, los termostatos domésticos, la estabilización de vuelo de drones y el control de procesos industriales dependen todos de la misma ley de realimentación de tres términos que implementa esta simulación.
Preguntas frecuentes
¿Qué hacen realmente los términos P, I y D en un controlador PID?
El término proporcional Kp·e reacciona al error actual y proporciona la mayor parte de la corrección inmediata, pero un controlador solo-P se estabiliza con un error de estado estacionario persistente porque necesita cierto error residual para seguir produciendo salida. El término integral Ki·∫e·dt acumula el error pasado a lo largo del tiempo y lleva ese error de estado estacionario a cero, a costa de más sobrepico y una respuesta más lenta si la ganancia es demasiado alta. El término derivativo Kd·de/dt reacciona a la rapidez con que cambia el error, amortiguando la oscilación y acelerando la estabilización, pero también amplifica el ruido de medición, por lo que esta simulación incluye un interruptor de ruido.
¿Qué es el anti-windup y por qué esta simulación lo necesita?
El windup del integrador ocurre cuando el actuador se satura (alcanza su límite uMin/uMax) mientras el error todavía tiene el mismo signo, haciendo que el término integral siga creciendo mucho más allá de lo que la planta puede usar realmente. Cuando el error finalmente se invierte, el controlador tiene que "deshacer" ese exceso de integral antes de poder responder, produciendo un gran sobrepico. La lógica anti-windup de esta simulación congela la actualización de la integral siempre que la señal de control tentativa empujaría aún más hacia la saturación en la misma dirección que el error existente, de modo que la integral solo crece cuando todavía puede hacer un trabajo útil.
¿Qué son el tiempo de subida, el sobrepico, el tiempo de estabilización y el error de estado estacionario?
Estos cuatro números, medidos automáticamente al pulsar Escalón, resumen la respuesta escalón de un lazo de control. El tiempo de subida es lo que tarda la salida en ir del 10% al 90% del camino hacia el nuevo punto de consigna. El sobrepico es cuánto se dispara la salida más allá del objetivo, como porcentaje del tamaño del escalón. El tiempo de estabilización es lo que tarda la salida en entrar y permanecer dentro de una banda del 2% alrededor del objetivo durante al menos un segundo. El error de estado estacionario es la diferencia restante entre el punto de consigna y la salida una vez que el transitorio se ha disipado — llevada hacia cero por el término integral.
¿Por qué las tres plantas de esta simulación se comportan de forma tan diferente?
La planta térmica es de primer orden (τ·dy/dt + (y − ambiente) = ganancia·u), por lo que solo puede aproximarse suavemente a su objetivo sin sobrepico natural de la propia planta — cualquier sobrepico que veas proviene únicamente del controlador. El carrito con resorte y amortiguador es de segundo orden (m·a + c·v + k·x = u), por lo que tiene su propia oscilación natural y puede sobrepasar y oscilar incluso con un controlador bien ajustado. La planta de tanque es no lineal porque el caudal de salida depende de la raíz cuadrada del nivel de líquido (A·dh/dt = entrada − kSal·√h), por lo que su velocidad de respuesta cambia con el nivel de llenado, lo cual es una buena prueba de cuán robusto es realmente un conjunto fijo de ganancias PID.
¿Cómo elige el autoajuste de Ziegler–Nichols Kp, Ki y Kd?
El método clásico de Ziegler–Nichols encuentra la ganancia última Ku y el periodo de oscilación último Tu — el punto en que un lazo solo-proporcional se sitúa al borde de una oscilación sostenida — y luego deriva las ganancias PID mediante razones simples: Kp = 0,6·Ku, Ki = 1,2·Ku/Tu, Kd = 0,075·Ku·Tu. El botón de autoajuste ZN de esta simulación usa valores representativos de Ku/Tu para cada planta en lugar de ejecutar una prueba de relé en vivo, y luego aplica esas mismas fórmulas clásicas para rellenar instantáneamente los controles deslizantes de Kp/Ki/Kd, de modo que puedas comparar el ajuste manual con la regla del libro de texto.
El caballo de batalla del control industrial: u = Kp·e + Ki·∫e + Kd·ė. Lleva un calentador, un carrito con resorte y amortiguador o un tanque hasta el punto de consigna; observa cómo cambian el sobrepico, la oscilación y el error de estado estacionario al ajustar las ganancias.
3D · Renderizador Three.js / WebGL · Objetivo de 60 FPS · funciona totalmente en el cliente, sin instalación