Simulador interactivoPrincipiante

Simulador de controlador PID para sistemas de robótica

Sintoniza ganancias proporcional, integral y derivativa visualizando respuesta temporal, error, saturación y perturbaciones en un simulador PID interactivo.

Categoría
Sistemas de control
Tiempo
60–120 min
Plataforma
Browser · Arduino
Esquema técnico de Simulador de controlador PID para sistemas de robóticaRESPONSETIMESETPOINT

01 / Empieza aquí

Introducción

El control PID es ubicuo en robótica: velocidad de ruedas, rumbo, posición de articulaciones y balance dependen de la retroalimentación. Este proyecto convierte la teoría de control en un experimento visual interactivo. Modifica ganancias, perturba la planta y relaciona la curva resultante con el código que implementarías en un Arduino o microcontrolador embebido.

Live lab / Deterministic sampled control loop

PID controller simulator

Drive a second-order plant toward a setpoint. Tune each gain, inject a load, and watch response, error, and control effort in real time.

Browser native
This simulator plots a PID controller's response, error, and control effort over time. Use the controls below to run it, or read the full theory and algorithm after this lab.

Three stacked plots share a scrolling time axis: measured output against the setpoint line, tracking error around zero, and control effort inside the shaded actuator-limit band.

Simulation

Paused. Press Start or Step to begin.

Setpoint & timing
PID gains
Disturbance
Setpoint
1.00
Measured
0.000
Error
1.000
Control
0.000
Overshoot
0%
Steady-state error
1.000

Keyboard: focus the plots, then use Space to run/pause, N to step, R to reset, G to toggle the load, and F for full screen.

Controles

El simulador expone la consigna, las ganancias proporcional, integral y derivativa, el intervalo de muestreo, el límite del actuador y la magnitud de la perturbación. Las gráficas alineadas muestran la consigna, la salida medida, el error y el esfuerzo de control. Reiniciar limpia la memoria del controlador para que los experimentos sigan siendo comparables.

Teoría

Un controlador por realimentación calcula el error como consigna menos medición. La acción proporcional reacciona de inmediato, la acción integral acumula el error persistente, y la acción derivativa responde a la velocidad de cambio. Su suma se convierte en la orden al actuador.

El rendimiento del controlador está limitado por la planta. Muestrear demasiado despacio oculta el movimiento; excitarse por encima del límite del actuador provoca saturación; las mediciones ruidosas hacen inestable un término derivativo sin filtrar. Por eso la sintonización es un experimento que implica tanto al controlador como al sistema.

Gráfica de respuesta al escalón que compara tres sintonizaciones de un sistema de segundo orden. Una curva con ganancia alta sobrepasa la consigna y oscila antes de asentarse. Una curva bien sintonizada sube rápido con un ligero sobreimpulso y se asienta rápido. Una curva con ganancia baja sube con lentitud y nunca sobrepasa.
La amortiguación da forma a la respuesta al escalón: demasiada ganancia sobrepasa y oscila, demasiado poca resulta perezosa, y una sintonización equilibrada se asienta rápido. Descargar SVG

Algoritmo

  1. Lea la medición a un intervalo fijo y calcule el error.
  2. Acumule una integral acotada usando el paso de tiempo real.
  3. Estime la derivada a partir de la medición o del error y aplique el filtrado adecuado.
  4. Sume los tres términos ponderados y acote al rango del actuador.
  5. Aplique la orden, guarde la muestra anterior y registre las métricas.
  6. Reinicie la integral y el historial cuando cambien sustancialmente el modo de control o la planta.

Código fuente

Esta implementación incluye una condición sencilla de anti-windup:

float updatePid(float setpoint, float measured, float dt) {
  const float error = setpoint - measured;
  const float derivative = (error - previousError) / dt;
  const float candidateIntegral = integral + error * dt;
  const float raw = kp * error + ki * candidateIntegral + kd * derivative;

  const float output = constrain(raw, outputMin, outputMax);
  if (raw == output) integral = candidateIntegral;
  previousError = error;
  return output;
}

Los controladores de producción también definen el comportamiento ante mediciones inválidas, desbordamientos de temporizador, transiciones de modo y averías de actuador.

Suposiciones y diferencias con el hardware

La planta de aquí es un modelo limpio de segundo orden con masa, amortiguación y retardo conocidos que usted fija con los deslizadores, no un motor real con fricción, zona muerta, par que se desvanece con la velocidad y un driver que se calienta. El muestreo es fijo por construcción, así que el término derivativo se mantiene bien comportado; en un Arduino, delay() u otro trabajo bloqueante hace que el intervalo oscile y que el término D se mal comporte aunque las ganancias no cambien. La saturación del actuador se modela como un recorte duro con anti-windup incluido, pero un sistema físico también tiene límites de corriente, caída de alimentación y calor que cambian el límite mientras funciona. Ajuste la forma aquí y después verifique en hardware, donde la planta solo se conoce de forma aproximada.

Diagrama de circuito

El sensor de realimentación informa de la salida real; no es un sustituto de la limitación de corriente ni de una parada de seguridad por hardware. El controlador compara la consigna con la lectura condicionada del sensor, y después maneja el actuador a través de una etapa PWM dimensionada para la carga.

Diagrama de bloques de un lazo de realimentación PID cerrado. La consigna entra en un sumador, el error resultante alimenta al controlador PID, su salida maneja un actuador y una etapa PWM, esa maneja la planta, y un sensor mide la salida de la planta y la realimenta al sumador con signo negativo.
El lazo PID cerrado: el sensor cierra el camino desde la salida de la planta de vuelta al sumador, donde la realimentación se resta de la consigna. Descargar SVG

Experimentos guiados

Leer sobre el sobreimpulso no es lo mismo que producirlo a propósito. Cada experimento de abajo tarda un par de minutos y aísla exactamente un efecto.

1. Hallar la ganancia última

Ponga Ki y Kd a cero. Suba Kp hasta que la salida oscile con amplitud constante, ni creciendo ni decreciendo. Anote esa ganancia (Ku) y el periodo de oscilación (Tu).

Esos dos números son todo lo que necesita para una primera sintonización:

Controlador Kp Ki Kd
PID (clásico) 0.6 Ku 1.2 Ku / Tu 0.075 Ku Tu
PID (sin sobreimpulso) 0.2 Ku 0.4 Ku / Tu 0.066 Ku Tu

Introdúzcalos y compare. La fila clásica es agresiva y sobrepasa entre un 20 % y un 40 %; la segunda llega sin sobreimpulso y tarda más. Ninguna de las dos es «correcta»: son respuestas distintas a requisitos distintos, que es justo la idea.

2. Ver cómo ocurre el windup integral

Ponga el límite del actuador bajo —alrededor del 20 % de su rango— y luego mande un escalón grande de consigna. Mire la gráfica del esfuerzo de control: se satura de inmediato y se queda ahí, mientras la integral sigue acumulando error sobre el que no puede actuar. Cuando la salida por fin alcanza la consigna, toda esa acción almacenada se descarga y el sistema se pasa de largo.

Ahora suba el límite del actuador y repita con las mismas ganancias. El sobreimpulso desaparece en su mayor parte. No ha cambiado nada del controlador, y esa es la lección. El windup es una propiedad de la interacción entre el controlador y un actuador que satura, no de las ganancias.

3. Demuestre que lo que mata al lazo es la latencia, no el ruido

Suba el intervalo de muestreo desde su valor mínimo en escalones, con las ganancias fijas. La respuesta se degrada mucho antes de que la gráfica parezca ruidosa: primero crece el sobreimpulso, después aparece la oscilación y luego se vuelve inestable.

Intervalo de muestreo Lo que ve con una sintonización por lo demás buena
5 ms Limpia, tal como se sintonizó
20 ms Algo más de sobreimpulso
50 ms Oscilación visible
100 ms Oscilación sostenida
200 ms Inestable

Por eso quitar un delay() del bucle de un robot a menudo mejora el seguimiento más que cualquier cantidad de sintonización. La información obsoleta no la recupera una ganancia.

4. Dele ruido al término derivativo

Suba la magnitud de la perturbación con Kd a cero, y luego suba Kd. La traza del esfuerzo de control se vuelve escarpada mucho antes de que lo haga la salida: está viendo cómo la derivación amplifica contenido de alta frecuencia, exactamente como debe.

Ese comportamiento es la razón de que la gente concluya que D no sirve y lo ponga a cero. La solución real está aguas arriba: filtre la medición, o filtre el propio término derivativo.

Qué debería observar

Ajuste Forma esperada Si ve otra cosa
Solo Kp, bajo Sube despacio, se asienta por debajo de la consigna —
Solo Kp, alto Sobrepasa, oscila, decae Una oscilación que crece significa que ha pasado de Ku
Kp + Kd Subida rápida, poco sobreimpulso, pequeño desvío permanente Un esfuerzo escarpado significa que D está amplificando ruido
Kp + Ki Alcanza la consigna exacta, más despacio Pasarse de largo significa windup o demasiado Ki
PID completo Rápido, sobreimpulso mínimo, sin desvío —

El desvío permanente con P y D pero sin I merece la pena producirlo a propósito una vez. Es la demostración más clara de para qué sirve realmente el término integral: la acción proporcional necesita un error distinto de cero para producir alguna salida, así que necesariamente aparca ligeramente corto.

Llevarlo al hardware

Las ganancias encontradas aquí son un punto de partida, no una transferencia. Lo que se traslada perfectamente es el procedimiento; lo que no se traslada son los números, porque describen esta planta.

Este laboratorio Un robot real
El intervalo de muestreo es exacto Oscila salvo que mida dt y lo pase
La planta es un modelo limpio de segundo orden Fricción, zona muerta, par que se desvanece con la velocidad
El límite del actuador es un recorte duro También límites de corriente, caída de alimentación y calor
Sin ruido de sensor salvo que usted lo añada Siempre hay ruido, y rara vez gaussiano
La planta nunca cambia La tensión de la batería, la carga y la temperatura la cambian

La última fila es la que más confusión causa en la práctica. Una sintonización que es perfecta con pilas nuevas será perezosa con pilas descargadas, porque la misma orden ahora produce menos par. Eso no es un fallo del método: las ganancias son propiedades de la planta, y la planta se movió. Las respuestas profesionales son un lazo de velocidad por debajo, o el escalado de ganancias. Recorra cómo sintonizar un controlador PID para el procedimiento completo, y luego llévelo al laboratorio del seguidor de línea donde la planta responde.

Lista de hardware

Componentes

  • Microcontrolador con temporizador estable
  • Planta física instrumentada (motor de CC o servo)
  • Encoder, potenciómetro u otro sensor de retroalimentación
  • Etapa de potencia dimensionada para el actuador
  • Fuente de alimentación regulada y parada de emergencia

Explora el grafo

Dónde se usa este simulador

Los proyectos, rutas de aprendizaje y tutoriales que se basan en este laboratorio.

Sigue construyendo

Descargar recursos

Usa estas referencias de la página mientras trabajas en el proyecto. Los paquetes descargables del proyecto se añadirán solo cuando se publiquen su código fuente y su versión.

Preguntas comunes

Preguntas frecuentes

¿Qué parámetro debe sintonizarse en primer lugar?

Inicia con las ganancias integral y derivativa en cero. Incrementa la ganancia proporcional hasta obtener una respuesta rápida pero oscilatoria; a continuación, introduce amortiguación derivativa para suprimir el balanceo. Añade la ganancia integral en último lugar y solo si persiste un error estacionario sistemático. Regla práctica: P aporta rapidez, D reduce el sobreimpulso e I elimina el error permanente.

¿Cómo se elimina el sobreimpulso en un controlador PID?

El sobreimpulso suele deberse a un exceso de acción proporcional o acumulación integral. Reduce la ganancia proporcional primero y aumenta la derivativa para frenar la aproximación al setpoint. Si el sobreimpulso ocurre tras saturar el actuador al máximo, la causa es el windup integral y debe mitigarse acotando el término integral en saturación.

¿Por qué entra en oscilación sostenida mi lazo PID?

La oscilación constante casi siempre indica que la ganancia proporcional es excesiva para la dinámica del sistema o que el término derivativo es insuficiente para disipar la energía cinética. Disminuye la ganancia proporcional aproximadamente a la mitad e incrementa la derivativa. Periodos de muestreo lentos o con fluctuaciones temporales también desestabilizan el término derivativo.

¿Qué es el windup integral y cómo se previene?

El windup ocurre cuando el actuador satura a su límite físico (motor al 100 % de PWM), pero el error sigue integrándose en memoria. Al revertir el error, la acumulación masiva retarda la respuesta y genera un grave sobreimpulso. Se previene con técnicas de clamping (detener la integración si la salida calculada satura) o mediante recálculo inverso (back-calculation).

¿A qué frecuencia debe ejecutarse un lazo PID?

El lazo debe muestrear varias veces más rápido que la constante de tiempo dominante de la planta, a intervalos estrictamente regulares. Evita retardos bloqueantes como delay(): un periodo variable altera las constantes efectivas de integración y diferenciación aunque las ganancias fijas no varíen.

¿Se puede emplear control PID prescindiendo de algún término?

Sí. El control PD (sin integral) es habitual cuando se tolera un pequeño error permanente y se busca máxima agilidad sin riesgo de windup. El control PI (sin derivativo) se aplica en señales con ruido de alta frecuencia donde la derivada amplificaría perturbaciones. Emplea solo los términos que el problema demande.

¿Qué diferencia existe entre sintonización manual y el método Ziegler–Nichols?

La sintonización manual ajusta término a término observando la respuesta transitoria, siendo intuitiva y segura para el aprendizaje. Ziegler–Nichols es un método analítico que calcula las ganancias a partir de la oscilación crítica sostenida (Ku y Tu); es más rápido pero tiende a respuestas agresivas que luego deben suavizarse manualmente.

Lecturas adicionales

Referencias

Fuentes autorizadas para profundizar más allá del modelo educativo acotado de este simulador.