¿Cómo funciona el algoritmo PID?

¿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:

  1. Ajustar la potencia de un aire acondicionado para alcanzar una temperatura
  2. Acelerar o frenar para alcanzar una velocidad
  3. Ajustar las RPM de los motores de un dron para alcanzar cierta velocidad de rotación

Algunos conceptos:

  1. La «fuerza»: la salida del sistema PID, también llamada suma PID; es, literalmente, la suma de los tres componentes P, I y D.
  2. El estado deseado: la consigna

Algunos hechos:

  1. Es un algoritmo iterativo: hay que reevaluar constantemente la salida según el estado actual.
  2. 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

Diagrama 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);
Español