Table of Contents

PID

Processus d'asservissement

Un processus d'asservissement consiste à réaliser le pilotage d'un système en boucle fermée en relation avec un domaine physique. Il est constitué des éléments suivants, qui sont tous dépendant du temps :

Le processeur d'asservissement consiste à exhiber une fonction f(c(t), y(t)) qui fournie u(t) à chaque instant et assure la convergence de y(t) vers c(t) selon les modalités du problème (convergence rapide, pas de dépassement, etc).

Une solution, actuellement très utilisée, pour cette fonction f est l'utilisation d'un PID (Propertional-Integral-Derivative). Soit e(t), l'erreur, définie par e(t) = c(t) - y(t), on peut exprimer le PID par :

u(t) = Kp e(t) + Ki INT[0 → t] e(t') dt' + Kd de(t) / dt

Avec Kp, Ki et Kd des constantes à définir et propres à un PID donné et INT représentant l'intégration sur le temps.

Les termes de cette formule ont la signification suivante :

Implémentation

Le PID fournit un modèle mathématique intéressant mais ne réponde à la question de l'implémentation.

Une première concerne les grandeurs utilisées :

Comment gérer tout cela ensemble ?

Comme bilan, on peut remarque que :

Cependant, il existe bien des manières de réaliser ce qu'on cherche comme action.

Programmation

Les deux points un peu compliqué du PID est la programmation de l'intégrale et de la dérivée.

Prise en compte du temps

Ces deux termes de calcul dépendent du temps entre 2 mesures, c'est-à-dire de la période de mesure. Dans un monde parfait, l'activation du calcul du PID est précise, c'est-à-dire à la fin de chaque période et le temps dt est égal à la période.

Dans notre monde hélas imparfait et sur un système comme Linux, cette période est plus ou moins bien suivie et le temps entre deux mesures peut être variable. Pour gérer cette variabilité, il est conseille de prendre comme dt la différence de date entre la mesure précédente et la mesure courante: dt = t - t' avec t' la date précédente de mesure. Cela nécessite bien sûr de mémoriser t'.

Calcul

La fonction de variation de l'erreur est beaucoup trop complexe pour être représenter mathématiquement face à des phénomènes externes bien prédictibles. On se contentera alors d'utiliser des méthodes approchées pour calculer l'intégrale :

Dans le même esprit, la dérivée peut être facilement approximée par : (e(t) - e(t') ) / dt

Bibliographie