← Volver Control · Parcial 2 · Taller 23
0 / 7
Taller 23 · Control

Saturación y anti-windup

Un motor no da más de 12 V y una válvula no abre más del 100 %. Cuando u se topa con ese límite, el lazo queda abierto, pero la integral sigue acumulando error. Cuando por fin hace falta bajar, primero hay que «desenrollar» todo lo acumulado. Eso es el windup, y en este taller lo ves pasar y lo arreglas de cuatro maneras.

⏱ 60 minutos
De dónde sale esto. M. Caparroz, K. Soltesz, T. Hägglund y J. L. Guzmán, «Anti-windup in PID control» (arXiv 2606.01959, 2026): planta e^{-0{,}5s}/(3s+1), PI Lambda con \lambda=0{,}2T, tres escenarios y la regla 2 para T_t. Åström & Hägglund, Control PID avanzado, cap. 3. Verificado en verif/verif_control_p2.py.
En este taller

1 Para qué sirve esto y cuándo se usa

Todo lo que diseñaste hasta ahora supone que el actuador entrega cualquier u. Ninguno lo hace. En el levitador el PWM no pasa de 100 %; en tu motor del laboratorio hay zona muerta y tope de voltaje. Con integral y saturación, el windup aparece sí o sí.

Ruta: «si el actuador no obedece, la integral no acumula»
  1. Identifica si u satura (mira u_{max} del diseño contra el límite del actuador).
  2. Si satura y hay I: pon anti-windup. Back-calculation es la opción por defecto.
  3. Escoge T_t: T_i (clásico) o la regla 2 del paper si conoces cuánto satura.
  4. Comprueba en los tres escenarios: referencia alcanzable, inalcanzable y perturbación.

2 El simulador: tres escenarios, cuatro métodos

Planta \dfrac{e^{-0{,}5s}}{3s+1} con PI Lambda (K_p=2{,}727, T_i=3\ \text{s}). Escoge el escenario y qué métodos ver. La tabla compara todos.

Prueba esto

1) Referencia alcanzable: «sin anti-windup» se pasa a 1,2; la integral (abajo) sube de más y tarda en bajar. 2) Referencia inalcanzable: sin anti-windup, al bajar r a 1 la salida tarda muchísimo, porque la integral se fue lejos mientras pedías 2. 3) Perturbación: usa el botón de la calculadora (sección 5) y mira el IAE del back-calculation bajar al menor de todos.

3 El problema, paso a paso

  1. Pides un cambio grande. El controlador calcula u_c mayor que el máximo y el actuador entrega u_{sat}=u_{max}.
  2. Como u_{sat} ya no crece aunque u_c crezca, la realimentación no tiene efecto: el sistema va en lazo abierto.
  3. Mientras tanto e>0 y u_I sigue creciendo, aunque no sirva de nada.
  4. La salida llega a la referencia, el error cambia de signo, pero u_I es enorme: tarda en bajar y la salida se pasa.
Qué significa cada símbolo
u_c
lo que calcula el PID [las del actuador]
u_{sat}
lo que de verdad entrega el actuador, recortado al límite [las del actuador]
u_I
el estado del integrador [las del actuador]
Mnemotecnia «Si el actuador no obedece, la integral no acumula.» Es lo que hacen todos los métodos, cada uno a su manera. Se comprueba en la gráfica de abajo del simulador: con anti-windup, u_I se queda cerca del límite mientras hay saturación.

4 Las soluciones

MétodoQué haceParámetro
Back-calculationLe resta a la integral \frac{1}{T_t}(u_c-u_{sat}): la devuelve hacia el límite con constante T_tT_t
ClampingLo mismo con T_t=T_s: la integral se recorta de inmediatoninguno
Integración condicionalCongela la integral mientras esté saturado y el error empuje hacia afueraninguno
Híbrido (paper)Condicional más back-calculationT_t
\begin{gathered}u_I(k)=u_I(k-1)+K_iT_s\,e(k)\\ {}+\frac{T_s}{T_t}\big(u_{sat}(k)-u_c(k)\big)\end{gathered}

Sin saturación, u_{sat}=u_c y el último término vale cero: el PI funciona normal. Solo actúa cuando el actuador no obedece.

Qué significa cada símbolo
T_t
constante de tiempo del anti-windup: qué tan rápido se desenrolla la integral [s]
T_s
periodo de muestreo del controlador digital (aquí 0,01 s) [s]

5 ¿Cuánto vale T_t? La regla 2 del paper

La regla clásica es T_t=T_i (PI) o T_t=\sqrt{T_iT_d} (PID). El paper encuentra que, para rechazar perturbaciones, el mejor T_t casi siempre es menor que T_i, y lo escribe como T_t=\alpha T_i.

  1. Razón de saturación: R_S=\dfrac{u_f-u_{lim}}{u_f-u_0}: qué fracción del esfuerzo necesario no se puede dar.
  2. Agresividad: x=\lambda/T. Un x pequeño es un controlador agresivo.
  3. Regla 2, cuando no conoces la duración de la perturbación:
    \begin{gathered}\alpha=\max\left\{a,\ \frac{T_s}{T_i}\right\}\\ a=-0{,}3-0{,}63\,x+1{,}5\,R_S\\ T_t=\alpha\,T_i\end{gathered}
  4. Si R_S es pequeño, gana T_s/T_i: lo óptimo es el clamping.
Qué significa cada símbolo
u_0
acción antes de la perturbación [las del actuador]
u_f
acción que haría falta sin límite [las del actuador]
u_{lim}
el tope del actuador [las del actuador]
R_S
razón de saturación, entre 0 y 1 [sin unidades]
Calculadora de la regla 2

En el escenario de perturbación: u_0=0, u_f=-0{,}8, u_{lim}=-0{,}5, así que R_S=0{,}375 (valor por defecto).

Ningún método gana siempre

En el primer escenario el clamping queda con más IAE que no hacer nada (2,95 contra 2,61): recorta tanto la integral que la salida llega tarde. En el de perturbación pasa lo contrario: con la regla 2 (T_t\approx0{,}41\ \text{s}) el back-calculation queda con el menor IAE (2,78, contra 3,26 con T_t=T_i). La conclusión del paper: el instantáneo y el condicional van mejor con retardos grandes o poca saturación; el dinámico con un T_t bien escogido, con controladores agresivos y mucha saturación.

6 Ahora tú

7 Ponte a prueba

8 La receta para el día del parcial

  1. Explica el windup en tres frases: el actuador satura, el lazo queda abierto, la integral sigue acumulando.
  2. Back-calculation: \dot u_I=K_i\,e+\frac{1}{T_t}(u_{sat}-u_c).
  3. T_t: clásico T_i; regla 2 con R_S y x.
  4. Clamping = T_t=T_s. Condicional = congelar mientras satura hacia afuera.
Si solo te llevas dos frases

1. «Si el actuador no obedece, la integral no acumula.»

2. Para perturbaciones, T_t menor que T_i.

Responde las siete preguntas para cerrar el taller.

Siguiente: Taller 24 · Simulacro del Parcial 2 →

← Volver al panel