> ## Documentation Index
> Fetch the complete documentation index at: https://apuntes.simulab.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Controlador PID: acción proporcional, integral y derivativa y cómo ajustarlo

> El controlador PID explicado: acciones proporcional, integral y derivativa, qué hace cada una, función de transferencia, efecto sobre el error y la estabilidad, controladores P, PI, PD y PID, ajuste por Ziegler-Nichols y manual, windup integral, filtro derivativo y PID digital en un microcontrolador, con ejemplos resueltos.

Más del 90 % de los lazos de control de la industria usan un **PID**: regula la temperatura de un horno, la presión de una tubería, la velocidad de un motor, la altura de un dron o la posición del cabezal de una impresora 3D. Su idea es sencilla: actuar según el error **ahora** (P), según el error **acumulado** (I) y según hacia dónde **va** el error (D). Ajustar bien sus tres números es una de las tareas más comunes de un ingeniero de control.

## Lo que vas a aprender

* La ecuación del PID y su función de transferencia.
* Qué hace cada acción y qué problemas resuelve y crea.
* Cuándo usar P, PI, PD o PID.
* Cómo ajustar los parámetros, a mano y con Ziegler-Nichols.
* Los problemas prácticos: windup, ruido en la derivada y saturación.
* Cómo se programa un PID digital.

## Fundamentos teóricos

### La ley de control

Con el error $e(t) = r(t) - y(t)$ entre la referencia y la salida medida:

$$
u(t) = K_p\,e(t) + K_i\int_0^t e(\tau)\,d\tau + K_d\,\frac{de(t)}{dt}
$$

En Laplace:

$$
C(s) = K_p + \frac{K_i}{s} + K_d\,s = K_p\left(1 + \frac{1}{T_i\,s} + T_d\,s\right)
$$

La segunda forma, con el **tiempo integral** $T_i = K_p/K_i$ y el **tiempo derivativo** $T_d = K_d/K_p$, es la habitual en la industria.

### Qué hace cada acción

| Acción | Actúa según | Ventaja | Problema |
| - | - | - | - |
| **P** | El error actual | Respuesta inmediata | Deja error permanente; con mucha ganancia, oscila |
| **I** | El error acumulado | **Elimina el error permanente** | Hace el sistema más lento y oscilante |
| **D** | La velocidad del error | Anticipa, frena y amortigua | Amplifica el ruido |

**Proporcional.** Más error, más acción. Pero si la planta necesita una acción $u \ne 0$ para mantenerse (un horno necesita calor para compensar pérdidas), hace falta un error $\ne 0$ para producirla: queda un **error permanente** $\frac{1}{1 + K_p G(0)}$.

**Integral.** Mientras quede algo de error, la integral sigue creciendo y la acción sigue aumentando. Solo se para cuando el error es **exactamente cero**. Añade un polo en el origen, que convierte el sistema en tipo 1 (ver [función de transferencia](https://apuntes.simulab.es/electronica/control/funcion-transferencia.md)).

**Derivativa.** Si el error se reduce deprisa, frena la acción antes de llegar, evitando que se pase. Es como mirar hacia delante.

### Efecto de aumentar cada ganancia

| Aumentar | Tiempo de subida | Sobreoscilación | Tiempo de establecimiento | Error permanente |
| - | - | - | - | - |
| $K_p$ | Baja | Sube | Poco efecto | Baja |
| $K_i$ | Baja | Sube | Sube | **Se elimina** |
| $K_d$ | Poco efecto | Baja | Baja | Ninguno |

Son tendencias orientativas; con plantas complicadas pueden cambiar.

### Variantes

| Controlador | Cuándo |
| - | - |
| P | Cuando se tolera algo de error (niveles de depósitos) |
| **PI** | El más usado: caudal, presión, temperatura, velocidad |
| PD | Posición, cuando la planta ya tiene un integrador (motores en posición) |
| PID | Cuando hace falta rapidez sin sobreoscilación y la medida tiene poco ruido |

### Ajuste de Ziegler-Nichols (método de oscilación)

1. Con solo acción P, sube $K_p$ hasta que la salida oscile de forma sostenida. Esa es la **ganancia crítica** $K_u$, y el periodo de oscilación, $T_u$.
2. Usa la tabla:

| Controlador | $K_p$ | $T_i$ | $T_d$ |
| - | - | - | - |
| P | $0{,}5\,K_u$ | | |
| PI | $0{,}45\,K_u$ | $T_u/1{,}2$ | |
| PID | $0{,}6\,K_u$ | $T_u/2$ | $T_u/8$ |

Da un ajuste agresivo (sobreoscilación del orden del 25 %), que suele usarse como punto de partida.

### Ajuste manual

1. Con $K_i = K_d = 0$, sube $K_p$ hasta una respuesta rápida con algo de oscilación.
2. Añade $K_d$ hasta que la oscilación se amortigüe.
3. Añade $K_i$ poco a poco hasta eliminar el error en un tiempo razonable.
4. Retoca.

### Problemas prácticos

* **Windup integral.** Si el actuador se satura (válvula abierta del todo, motor al 100 %), el error sigue y la integral crece sin control. Al recuperar, el sistema se pasa muchísimo. Solución: **anti-windup**, que congela o limita la integral mientras hay saturación.
* **Ruido en la derivada.** Derivar una medida con ruido da picos enormes. Se filtra: $K_d\frac{s}{1 + s\,T_d/N}$, con $N$ entre 5 y 20.
* **Golpe de derivada.** Un salto en la referencia hace la derivada del error infinita. Se deriva solo la **medida** $-y$, no el error.

### PID digital

En un microcontrolador, cada periodo de muestreo $T_s$:

```c theme={null}
error = referencia - medida;
integral += error * Ts;
integral = limitar(integral, -I_MAX, I_MAX);   // anti-windup
derivada = (medida_anterior - medida) / Ts;     // sobre la medida
u = Kp * error + Ki * integral + Kd * derivada;
u = limitar(u, U_MIN, U_MAX);
medida_anterior = medida;
```

$T_s$ debe ser bastante menor que la constante de tiempo del sistema, del orden de 10 a 20 veces.

## Ejemplos resueltos

> [accordion] Ejemplo 1 · Error con solo P
>
> Un horno con $G(s) = \frac{2}{100s + 1}$ (°C por % de potencia) y $K_p = 4$. Referencia: escalón de 100 °C.
>
> $e_{ss} = \frac{1}{1 + 4\cdot2} = 0{,}111$: se queda en 88,9 °C. Para un error del 1 % haría falta $K_p = 49{,}5$, y con retrasos reales el lazo oscilaría.

> [accordion] Ejemplo 2 · Con PI desaparece el error
>
> Añadiendo $K_i$: $C(s) = 4 + \frac{K_i}{s}$. El lazo abierto $C G$ tiene un polo en $s = 0$, así que
>
> $e_{ss} = \lim_{s\to0}\frac{1}{1 + C(s)G(s)} = 0$, para cualquier $K_i > 0$.
>
> Un ajuste habitual es colocar el cero del PI, $s = -K_i/K_p$, sobre el polo de la planta ($s = -0{,}01$): $K_i = 0{,}04$. Queda $CG = \frac{0{,}08}{s}$ y el lazo cerrado es un primer orden con $\tau = 12{,}5$ s y error nulo.

> [accordion] Ejemplo 3 · Ziegler-Nichols
>
> En un ensayo, la salida oscila de forma sostenida con $K_u = 8$ y periodo $T_u = 20$ s.
>
> PID: $K_p = 4{,}8$, $T_i = 10$ s, $T_d = 2{,}5$ s. Es decir, $K_i = 0{,}48$ s⁻¹ y $K_d = 12$ s.
>
> PI: $K_p = 3{,}6$, $T_i = 16{,}7$ s.

> [accordion] Ejemplo 4 · Control de posición de un motor (PD)
>
> Motor en posición: $G(s) = \frac{1}{s(s + 2)}$, con controlador PD $K_p + K_d s$.
>
> Lazo cerrado: $\frac{K_p + K_d s}{s^2 + (2 + K_d)s + K_p}$. Para $\omega_n = 10$ rad/s y $\zeta = 0{,}7$: $K_p = 100$ y $2 + K_d = 14$, es decir, $K_d = 12$.
>
> Sin la derivativa ($K_d = 0$), con $K_p = 100$ saldría $\zeta = 0{,}1$: se pasaría un 73 %.

> [accordion] Ejemplo 5 · Windup
>
> Un dron sujeto al suelo durante 5 s con el error de altura a 2 m y $K_i = 1$ s⁻¹: la integral acumula 10, y la acción integral pide un empuje enorme. Al soltarlo, sale disparado hacia arriba mucho más de lo que debería. Limitando la integral (anti-windup) el despegue es suave.

## Errores frecuentes

* **Subir $K_p$ para eliminar el error.** Solo lo reduce; para eliminarlo hace falta acción integral (o que la planta ya tenga un integrador).
* **Poner derivada con una medida ruidosa** sin filtrarla. El actuador vibra.
* **Olvidar el anti-windup.** Es la causa más común de sobreoscilaciones enormes en sistemas reales.
* **Ajustar con unidades mezcladas.** $K_i$ y $K_d$ dependen de si el tiempo va en segundos o milisegundos.
* **Muestrear demasiado despacio** en un PID digital: añade retraso y desestabiliza.

## Preguntas frecuentes

> [accordion] ¿Por qué casi nunca se usa la derivativa?
>
> Porque muchos procesos industriales (caudal, presión, nivel) son lentos y tienen medidas con ruido. Un PI bien ajustado basta y es más robusto. La derivativa se reserva para procesos con inercia, como la temperatura o la posición, donde sí ayuda a no pasarse.

> [accordion] ¿Hay alternativas al PID?
>
> Sí: el control predictivo (MPC), que optimiza las acciones futuras con un modelo; el control por realimentación de estados; el control robusto y el adaptativo. Pero el PID sigue siendo el estándar por ser sencillo, entendible y suficiente en la mayoría de los casos.

## Temas relacionados

> [card] [Función de transferencia](https://apuntes.simulab.es/electronica/control/funcion-transferencia.md)
>
> Estabilidad y respuesta temporal.

> [card] [Derivadas paso a paso](https://apuntes.simulab.es/matematicas/calculo/derivadas.md)
>
> La acción derivativa.

> [card] [Integrales paso a paso](https://apuntes.simulab.es/matematicas/calculo/integrales.md)
>
> La acción integral.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.