# Régulateur PID

En automatique, le régulateur PID, appelé aussi correcteur PID (Proportionnel, Intégral, Dérivé) est un système de contrôle permettant d’améliorer les performances d'un asservissement, c'est-à-dire un système ou procédé en boucle fermée. C’est le régulateur le plus utilisé dans l’industrie où ses qualités de correction s'appliquent à de multiples grandeurs physiques.

## Histoire et origines

Le premier régulateur proportionnel à avoir été utilisé est probablement le régulateur à boules qui utilise des masses tournantes pour réguler une vitesse de rotation. Ce procédé a été inventé par Christian Huygens et a été utilisé durant le XVIIe siècle pour réguler l'écart entre les meules, en fonction de la vitesse de rotation du moulin, de façon à réguler le débit d'arrivée de grain à moudre. Ce procédé a ensuite été repris et adapté par James Watt pour son système permettant de réguler la vitesse de rotation d'une machine à vapeur.
En 1866, Robert Whitehead expérimente un type de régulateur de trajectoire pour la première torpille autopropulsée. L'utilisation d'un simple capteur de pression (valve hydrostatique) fournit un moyen d'avoir une correction de trajectoire proportionnelle à l'erreur de profondeur souhaitée mais l'augmentation du gain proportionnel aboutit à une oscillation (dépassements) de la trajectoire, la torpille monte et descend sans cesse. C'est en ajoutant un pendule, permettant une correction relative à la dérivée de l'erreur, amortissant ainsi les dépassements et stabilisant la profondeur, que la torpille put parcourir 200 yards à 6,5 nœuds. Le gain proportionnel se règle à l'aide d'un ressort couplé à la valve hydrostatique, le gain dérivé à l'aide de la masse du pendule.
En 1868, James Clerk Maxwell étudie dans son article On Governors, les régulateurs de vitesse de rotation de type régulateur à boules et leur problème évident de dérive de la vitesse de rotation en fonction de la charge, éventuellement variable, soumise au moteur. Il fait des progrès considérables, notamment en pressentant le fait qu'il faille ajouter une correction relative à la dérivée de l'erreur pour augmenter la stabilité. Il n'a pas connaissance des travaux de Robert Whitehead. Il y étudie un mécanisme à eau et un mécanisme basé sur un différentiel sans parvenir à trouver une solution. Plusieurs scientifiques se pencheront par la suite sur le problème du critère de stabilité, notamment Willard Gibbs.
Ce n'est qu'en 1922 que Nicolas Minorsky (en) publie un article où il étudie un système de pilotage automatique des navires pour la U.S. Navy. Il envisage 3 classes de correcteurs: $P.D.D'$; $P.I.D$; $I_{2}.I.P$ où $D'$ représente la dérivée seconde de l'erreur, $I_{2}$ la double intégration de l'erreur. Il s’inspire notamment de l'équation du pendule en mouvement pour étudier la stabilité de la correction $P,D$. Il montre également que l'erreur statique est annulée lorsque l'action intégrale est présente et que les actions relatives à $D'$ et $I_{2}$ ne sont pas pertinentes. Les tests de la théorie sont menés sur l'USS New Mexico les années suivantes et l'erreur de cap du pilote automatique P.I.D. ne sera que de ~1/3 de degré, ce qui est nettement supérieur aux performances d'un barreur humain. Ce système, malgré son succès, sera néanmoins démonté à la suite des tests, l'équipage du navire n'ayant pas confiance en ce procédé automatique.
C'est en 1939 que les premières implémentations de régulateurs PID mécaniques voient le jour. Les entreprises Taylor Instrument et Foxboro Instrument commercialisent des contrôleurs pneumatiques ajustables qui offrent pour la première fois un réel contrôle proportionnel, intégral et dérivateur utilisable par l'industrie. Les industriels appellent, à l'époque, l'action intégrale Reset ou Automatic Reset (La correction proportionnelle est réappliquée avec une certaine fréquence) et l'action dérivée Pre-Act, on doit la notation actuelle PID à S.D. Mitereff (1935). Un standard industriel 0.2-1.0 bar est mis en place pour s'assurer que les correcteurs fonctionnent toujours dans leurs plages optimales. Le zéro est volontairement "élevé" à 0.2 de façon à pouvoir détecter un problème de fonctionnement dû à une fuite. C'est initialement l'entreprise Foxboro qui met au point un amplificateur pneumatique (similaire à un amplificateur de freinage automobile actuel) permettant une utilisation large bande de ces PID pneumatiques pour contrôler divers appareils.
En 1951, l’entreprise Swartwout commercialise les premiers PID électroniques Autronic basés sur une technologie à tube électronique. Le standard pneumatique laissera peu à peu sa place au standard électrique 10-50 mA puis 4–20 mA. Les actuateurs pneumatiques sont néanmoins toujours utilisés aujourd'hui notamment pour le contrôle des vannes rapides.

## Formalisme mathématique

Un correcteur est un algorithme qui délivre un signal de commande à partir de la différence entre la consigne et la mesure (l'erreur).
Nicolas Minorsky (en) écrit dans son article, mentionné ci-dessus, l'équation du PID sous sa forme différentielle:
    ${\frac {d\rho }{dt}}=m\alpha +n{\frac {d\alpha }{dt}}+p{\frac {d^{2}\alpha }{dt^{2}}}$
où :
    $\rho$ est l'angle du gouvernail (la commande),
    $\alpha$ la déviation du cap (l'erreur),
    $m$, $n$, $p$ respectivement, les gains intégral, proportionnel et dérivé.
Aujourd'hui, on écrit plus communément cette équation sous la forme:
    $u(t)=K_{\text{p}}\epsilon (t)+K_{\text{i}}\int _{0}^{t}\epsilon (\tau )\,d\tau +K_{\text{d}}{\frac {d\epsilon (t)}{dt}}$
où :
    $K_{p}$ est le gain proportionnel,
    $K_{i}$ est le gain intégral (on utilise souvent $T_{i}=1/K_{i}$ représentant le temps d'intégration)
    $K_{d}$ est le gain dérivé,
    $\epsilon (t)$ la fonction d'erreur (consigne - mesure),
    $u(t)$ la fonction de commande.
Il existe plusieurs architectures possibles pour combiner les trois effets (série, parallèle ou mixte), on présente ici la plus classique : une structure PID parallèle qui agit sur la commande en fonction de l'erreur.

### Domaine de Laplace

La fonction de transfert exprimée dans le domaine de Laplace du régulateur PID parallèle est la somme des trois actions :
    $C(p)=G+{\frac {1}{T_{i}}}\cdot {\frac {1}{p}}+T_{d}\cdot p$
En régulation des procédés, on préfère implanter la fonction de transfert du PID sous la forme mixte $\tau _{i}=T_{i}\cdot G$, $\tau _{d}=T_{d}/G$:
    $C\left(p\right)=G\left(1+{\frac {1}{\tau _{i}\cdot p}}+\tau _{d}\cdot p\right)$
En pratique, l'action dérivée est souvent filtrée avec un filtre passe-bas du premier ordre de constante de temps $\tau _{d}/N$ de façon à éviter une trop grande sensibilité au bruit de mesure et aux fronts de la consigne, comme illustré sur l'animation ci-dessous. On choisit souvent $3<N<10$. La fonction de transfert s'écrit alors:
    $C\left(p\right)=G\left(1+{\frac {1}{\tau _{i}\cdot p}}+{\frac {\tau _{d}\cdot p}{1+{\frac {\tau _{d}}{N}}p}}\right)$

### Fonction de transfert en Z

La fonction de transfert en Z s'écrit en utilisant la méthode des rectangles pour l'évaluation de l’intégrale et la méthode des différences finies pour la dérivée ($T_{e}$ est la période échantillonnage),
    $C(z)=G+{\frac {T_{e}}{T_{i}}}{\frac {z}{z-1}}+{\frac {T_{d}}{T_{e}}}{\frac {z-1}{z}}$
En exprimant l'expression ci-dessus sous la forme d'un Filtre à réponse impulsionnelle infinie:
    $C(z)={\frac {\left(G+{\dfrac {T_{e}}{T_{i}}}+{\dfrac {T_{d}}{T_{e}}}\right)+\left(-G-{\dfrac {2T_{d}}{T_{e}}}\right)z^{-1}+{\dfrac {T_{d}}{T_{e}}}z^{-2}}{1-z^{-1}}}$
On en déduit la relation récursive suivante que l'on rencontre souvent dans les implémentations de PID sur des FPGA:
    $u[n]=u[n-1]+\left(G+{\dfrac {T_{e}}{T_{i}}}+{\dfrac {T_{d}}{T_{e}}}\right)\epsilon [n]+\left(-G-{\dfrac {2T_{d}}{T_{e}}}\right)\epsilon [n-1]+{\dfrac {T_{d}}{T_{e}}}\epsilon [n-2]$
La fonction de transfert en Z avec dérivée filtrée, s'écrit:
    $C(z)=G\left(1+{\frac {Te}{\tau _{i}}}{\frac {z}{z-1}}+{\frac {N(z-1)}{(1+{\frac {NTe}{\tau _{d}}})z-1}}\right)$

## Réglage d'un PID

Le réglage d'un PID (synthèse) consiste à déterminer les coefficients $G$, $\tau _{d}$ et $\tau _{i}$ afin d'obtenir une réponse adéquate du procédé et de la régulation. Les objectifs sont d'être robuste, rapide et précis. Il faut pour cela :
* dans le cas d'un fonctionnement en mode de régulation (consigne fixe) choisir des réglages permettant à la grandeur réglée de retourner dans un temps raisonnable à sa valeur de consigne ;
* dans le cas de fonctionnement de la boucle en mode d'asservissement (consigne variable), choisir des réglages permettant de limiter le ou les éventuels dépassements (overshoot) de la grandeur réglée ;
* la robustesse est sans doute le paramètre le plus important et délicat. On dit qu'un système est robuste si la régulation fonctionne toujours même si le modèle change un peu. Par exemple, les fonctions de transfert de certains procédés peuvent varier en fonction de la température ambiante ou de l'hygrométrie ambiante relativement à la loi de Pascal. Un régulateur doit être capable d'assurer sa tâche même avec des perturbations afin de s'adapter à des usages non prévus/testés (dérive de production, vieillissement mécanique, environnements extrêmes...) ;
* la rapidité du régulateur dépend du temps de montée et du temps d'établissement du régime stationnaire ;
* le critère de précision est basé sur l'erreur statique (ou l'écart de statisme).
La réponse type d'un procédé stable est la suivante :
Dans le cas des systèmes simples, les paramètres du PID influencent la réponse du système de la manière suivante :
* $G$ : lorsque $G$ augmente, le temps de montée (rise time) est plus court et l'erreur statique est réduite, mais il provoque un dépassement plus important.
* $\tau _{i}$ : lorsque ${\frac {1}{\tau _{i}}}$ est présent l'erreur statique est annulée. Quand il augmente, la valeur finale est plus rapidement atteinte pour les systèmes présentant de grandes marges de stabilité. Le temps d'établissement en régime stationnaire s'allonge pour les autres systèmes qui vont davantage osciller. Le réglage de ce paramètre dépend donc du comportement dynamique du système et influe sur son amortissement et son temps de réponse.
* $\tau _{d}$ : lorsque $\tau _{d}$ augmente, le temps de montée diminue (la réponse du système ainsi corrigé est plus rapide) et les dépassements sont mieux amortis (comme illustré dans l'animation ci-dessous) ce qui améliore la stabilité. Toutefois il n'influence pas l'erreur statique. Si ce paramètre est trop élevé dans un premier temps il stabilise le système avec des réactions violentes pouvant saturer le signal de commande sortant du correcteur, et dans un deuxième temps il amplifie de manière exagérée des perturbations brèves.
Pour ces trois paramètres, le réglage au-delà d'un seuil trop élevé a pour effet d'engendrer une oscillation du système de plus en plus importante menant à l'instabilité : un G trop important rend le système trop sensible, un ${\frac {1}{\tau _{i}}}$trop important provoque une intégration trop rapide, un $\tau _{d}$ trop important accentue la sensibilité aux bruits de fréquence élevée. C'est pourquoi d'autres régulateurs dits à "avance de phase" ou "retard de phase" sont utilisés pour atteindre les performances désirées.
L'analyse du système avec un PID est simple mais sa conception peut être délicate, voire difficile, car il n'existe pas de méthode unique pour résoudre ce problème. Il faut trouver des compromis, le régulateur idéal n'existe pas. En général, on se fixe un cahier des charges à respecter sur la robustesse, le dépassement et le temps d'établissement du régime stationnaire.
Les méthodes de réglage les plus utilisées en théorie sont les méthodes de Ziegler-Nichols (en boucle ouverte et boucle fermée), la méthode de P. Naslin (polynômes normaux à amortissement réglable), la méthode du lieu de Nyquist inverse (utilise le diagramme de Nyquist). Le diagramme de Black permet d'en constater très visuellement les effets.
De manière plus pratique et rapide, les professionnels utilisent soit l'identification par modèle de Broïda pour les systèmes stables ou le modèle intégrateur retardé pour les systèmes instables, soit la méthode par approches successives qui répond à une procédure rigoureuse : on règle d'abord l'action P seule pour avoir un dépassement de 10 à 15 % puis l'action dérivée de façon à « raboter » au mieux le dépassement précédent, enfin on ajuste si nécessaire l'action intégrale en se fixant un dépassement final compris entre 5 et 10 %.
Il existe aussi une méthode qui, en supposant connue la fonction de transfert $H\left(p\right)$ du système, permet de déterminer un régulateur PID robuste dans le sens où la marge de phase et la pulsation au gain unité (donc la marge de phase/retard) sont fixées à l'avance (lorsqu'une solution existe)$^,$.
Dans certains cas, les performances d'un PID peuvent devenir insuffisantes, en raison par exemple de la présence d'un retard trop important ou d'un procédé à phase non minimale, posant des problèmes de stabilité. On fait alors appel à d'autres algorithmes de réglage (notamment : régulateur cascade, régulateur PIR, à modèle interne ou à retour d'état).