¿Qué intenta resolver el PID en general? En pocas palabras, el PID permite responder a esta pregunta: ¿cuánta «fuerza» hay que aplicar para pasar de un estado a otro deseado?
Algunos ejemplos:
- Ajustar la potencia de un aire acondicionado para alcanzar una temperatura
- Acelerar o frenar para alcanzar una velocidad
- Ajustar las RPM de los motores de un dron para alcanzar cierta velocidad de rotación
Algunos conceptos:
- La «fuerza»: la salida del sistema PID, también llamada suma PID; es, literalmente, la suma de los tres componentes P, I y D.
- El estado deseado: la consigna
Algunos hechos:
- Es un algoritmo iterativo: hay que reevaluar constantemente la salida según el estado actual.
- Cuanto mayor es la frecuencia, más suave es la señal de control, dentro de las limitaciones del componente que ejecuta esa señal: el actuador.
A continuación se muestra un diagrama de bloques del algoritmo PID
A continuación se muestra una implementación sencilla del algoritmo
const dt = time - this._prevTime;
const error = setpoint - measurement;
this._i += error * dt;
const p = this.kp * error;
const i = this.ki * this._i;
const d = this.kd * (measurement - this._prevMeasurement) / dt;
const f = this.kf * (command - this._prevCommand) / dt;
this._prevCommand = command;
this._prevTime = time;
return (p + i + d + f);