Sommaire

 

PID

(correction Proportionnelle , Integrale , Dérivée)

 

Comme un drone a de multiples raisons de quitter la trajectiore prévue il faut donc un mécanisme trés rapide et efficace pour corriger les écarts par rapport a celle ci.

Concernant la rapidité on utilise une boucle de correction qui se répéte environ 200 a 400 fois par seconde (elle dure donc 2500 a 5000 microsecondes.

Dans cette boucle on calcule une correction des assiettes latérale (Roll) et longitudinale (Pitch) ce qui tendra a ramener le drone a plat.

Nous allons résumer les principes de la correction PID et les problémes particuliers que pose son application aux drones.

PRINCIPES DU PID

La correction PID est basée sur deux chiffres : la valeur cible (Vcible) et la valeur réellement mesurée (Vmesuree).

A partir de ces 2 valeurs on calcule l'écart (Ecart).

Selon cet écart et son évolution dans le temps on va corriger les commandes de façon a réduire l'écart.

On aura aussi besoin de connaitre l'écart précédent et le temps écoulé entre la mesure des deux derniers écarts pour prendre en compte son évolution.

Les 2 corrections essentielles sont P et D.

La correction P (proportionnelle a l'écart) : plus l'écart est grand plus on corrige : logique !. Pour corriger en fonction de l'écart on utilise un coefficient de correction. Si le coefficient de correction (Kp) (parfois a l'appelle gain) est bas on corrigera trop lentement , si il est fort la correction sera plus rapide. On part avec un Kp bas puis on va l'augmenter .

Mais au dela d'une certaine augmentation de ce coefficient la correction fera dépasser brutalement la valeur cible (on sur-corrigera) et aussitot aprés comme on est passé de l'autre coté de la valeur cible ça entrainera une correction tout aussi brutale dans l'autre sens : le systéme oscillera autour de la valeur cible.

La premiére mesure a prendre est donc de trouver un coefficient Kp juste en dessous du seuil qui déclenche trop d'oscillations. Une autre considération, qui sera en partie prise en charge par le facteur D est la pente de la courbe de correction : trop forte : on court a la sur- correction , trop faible : on corrige trop lentement.

Noter que cette correction P , comme les autres peut être positive (on est en dessous de la cible) ou négative (on est au dessus de la cible).

La correction D (dérivée) vise a "atterir" en douceur (sans sur-correction) prés de la valeur cible : lorsque l'écart varie moins vite , c'est a dire qu'on se rapproche de l'équilibre, elle permet de diminuer les effets de la correction proportionnelle , par contre elle l'augmente si l'écart croit .Pour cela on calcule la vitesse de variation de l'écart (la différence d'écart entre deux mesures divisée par le temps écoulé entre ces 2 mesures ).

Pour préciser cette notion pas trés facile,on a donc :

D= Kd * ((ecartactuel -ecartprécédent) / (tempsactuel - tempsprécédent)).

Souvent on utilise un intervalle de temps constant qu'on prend égal a 1 pour ne pas avoir a diviser.

Si on se rapproche de la valeur cible l'écart décroit donc D devient négatif et freine les corrections. Donc D limite les sur-corrections et si le coefficient de correction Kd est trop faible ça donne un systéme sujet aux oscillations dues a P , trop fort ça ralentit l'atteinte de l'équilibre.

Si on s'éloinge de la valeur cible l'écart croit = D devient positif et accroit les corrections dues a P.

On note que si l'écart par rapport a la cible reste constant le facteur D sera nul puisque (ecartactuel -ecartprécédent =0) !

Ce facteur ralentit un peu l'atteinte de l'équilibre et est sensible aux effets de parasites

La correction I (intégrale) vise a corriger des dérives lentes et persistantes , qui peuvent être dues a un défaut mécanique du systéme ( un moteur faiblard par exemple, ou un vent de travers sur un drone) elle utilise le facteur Ki et le total des ecarts cumulés pendant un temps précis.L'usage de I permet de corriger ces petites erreurs persistantes sans avoir a augmenter Kp dans la zone d'oscillations.

Enfin i est bon de s'assurer qu'on ne risque pas de dépasser la capacité de stockage du type de variable utilisé pour la somme.

En résumé:

EFFETS de PARASITES sur le PID

Différents parasites , notamment des vibrations peuvent entrainer des variations bréves et limitées des données des détecteurs. Différentes mesures permettent de diminuer ces interférences.

On peut isoler les détecteurs en les montants sur des blocks de mousse et/ou en les éloignant des moteurs : c'est la premiére chose a faire.

On peut utiliser des programmes de filtrage des données (type Kallmann).

Plus rudimentaire : utiliser un filtre qui atténue les irrégularités (smooth) en réduisant l'écart entre la valeur actuelle et la valeur précédente.

Note : par ailleurs pour limiter des oscillations du systéme dues a de petites variations parasites des mesures il arrive qu'on définisse une zone neutre (dead band) dans laquelle on ne fait pas de correction , autour des valeurs cibles.

UN EXEMPLE SIMPLE EN ROBOTIQUE

C'est un robot qui doit suivre une ligne noire tracée au sol , il dispose pour cela d'une caméra vidéo qui détermine la position de cette ligne par rapport au centre de l'image vidéo . Le robot a 2 roues motrices (droite et gauche) a l'avant: : donc si la ligne est a droite de l'image il faudra accélérer la roue droite et freiner la roue gauche. C'est l'inverse si la ligne est a gauche.

Au début avec des Kp, Kd,Ki trés bas le robot quittera dés le premier virage la trajectoire de référence donnée par la ligne noire: défaut de correction. En augmentant Kp on va corriger cela. Si Kp est trop élevé le robot va serpenter de droite a gauche sans arret même dans les portions droites du tracé : il sur compense: il faut réduire Kp.

Une solution pour ne pas trop réduire Kp , donc pour bien suivre le tracé , est d'augmenter Kd , ce qui arrondira les corrections appliquées.

Si il y a une tendance du robot a suivre une ligne paraléle a la référence mais siruée a droite ou a gauche ,même en ligne droite , un peu de Ki peut aider a corriger ce défaut.

APPLICATION DU PID AUX DRONES

Les principes précédents sont valables pour les drones mais les choses se compliquent car:

Outre les calculs de PID selon les pitch , roll (éventuellement yaw) qui visent en général a ramener le drone a plat, il faut termir compte des consignes du pilote et mixer ces 2 sources de consignes dans des propotions qui feront que ce sera le pilote ou les gyros qui domineront.La partie mixage des données est critique dans un programme de carte stabilisatrice de drone. Mais vous n'aurez pas a toucher au programme lui même sauf si vous êtes un spécialiste et alors vous savez ce qu'est un PID !

Régles de base pour ajuster les coefficients du PID:

 

Quand utilise une correction PID il faut imposer certaines limites aux résultats finaux issus de la correction pour rester cohérent avec les contraintes de l'environnement telles que: