PID Discreto

Partamos de la definición del PID en tiempo continuo $$ u(t) = K_P e(t) + K_I \int_0^t{e(\tau) d\tau} + K_D \frac{d}{dt} e(t), $$ donde \(u(t)\) es la señal de control calculada, \(e(t) = r(t) - y(t)\), \(r(t)\) es la referencia deseada, \(y(t)\) es la salida de la planta a controlar y \(K_P\), \(K_I\) y \(K_D\) son las ganancias del controlador.

Para transformar esta ecuación en tiempo discreto es necesario definir un Tiempo de muestreo \(T_s\), de modo que $$ e[k] = e(kT_s) $$ $$ r[k] - y[k] = r(kT_s) - y(kT_S) $$ donde \(k = 0, 1, 2, 3, \dots\).

Parte Proporcional: Se encarga de minimizar el error mientras lleva a la planta hacia el setpoint \(r[k]\).

Su forma en tiempo continuo \(u_P(t) = K_P e(t)\) queda como $$ u_P[k] = K_P e[k] $$ en tiempo discreto. Responde de manera instantánea al valor actual del error. No requiere memoria, no acumula nada.

Parte Integral: Elimina el error en estado estacionario.

Su forma en tiempo continuo \(u_I(t) = K_I \int_0^t{e(\tau) d\tau}\), se puede expresar como $$ K_i \int_0^t{e(\tau) d\tau} \approx \sum_{i=0}^k e[i] T_s, $$ usando el método de Euler hacia atrás.

Considerando, \(u_I[k] = K_I T_s \sum_{i=0}^k e[i]\), tenemos

para \(k=0\): \(u_I[0] = K_I T_s e[0]\),

para \(k=1\): \(u_I[1] = K_I T_s e[0] + K_I T_s e[1] = u_I[0] + K_I T_s e[1]\),

para \(k=2\): \(u_I[2] = K_I T_s e[0] + K_I T_s e[1] + K_I T_s e[2] = u_I[1] + K_I T_s e[2]\),

para \(k=3\): \(u_I[3] = K_I T_s e[0] + K_I T_s e[1] + K_I T_s e[2] + K_I T_s e[3] = u_I[2] + K_I T_s e[3]\),

por lo que, de forma general, la parte integral en discreto queda como $$ u_I[k] = u_I[k-1] + K_I T_s e[k]. $$

Acumula el error a lo largo del tiempo. El término \(u_I[k-1]\) guarda la memoria de lo acumulado hasta la muestra anterior.