Comment fonctionne l’algorithme PID ?

Quel problème le PID cherche-t-il à résoudre en général ? En termes simples, le PID permet de répondre à la question : quelle « force » appliquer pour passer d’un état à un état cible ?

Quelques exemples :

  1. Ajuster la puissance d’un climatiseur pour atteindre une température
  2. Accélérer ou freiner pour atteindre une vitesse
  3. Ajuster le régime des moteurs d’un drone pour atteindre une certaine vitesse de rotation

Quelques notions :

  1. La « force » : la sortie du système PID, aussi appelée somme PID ; c’est littéralement la somme des trois composantes P, I et D.
  2. L’état cible : la consigne

Quelques faits :

  1. Il s’agit d’un algorithme itératif : il faut constamment réévaluer la sortie en fonction de l’état actuel.
  2. Plus la fréquence est élevée, plus le signal de commande est lisse, dans les limites du composant qui exécute ce signal : l’actionneur.

Voici un schéma fonctionnel de l’algorithme PID

Schéma de l’algorithme PID



Voici une implémentation simple de l’algorithme

    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);
Français