Club robotique de Sophia-Antipolis

Accueil > Projets, études > Etudes techniques > Moteurs et performances > Asservissement PID

Asservissement PID

proportionnel intégral dérivé

samedi 20 décembre 2008, par Julien H.

L’asservissement consiste à atteindre et maintenir une valeur cible en agissant directement sur le système en fonction de l’écart entre la consigne et la mesure.

Le PID est un type d’asservissement courant en robotique, car il permet de garantir une valeur fixe (le cap) même quand le robot est en déplacement. Comme le PID fonctionne même avec une consigne variable, on peut ainsi avoir en même temps un mouvement reproductible (suivre une trajectoire précise) et une correction des petits accidents de parcours (glissements, jeu dans la mécanique, etc..).

Le PID est également utilisé pour le contrôle de la température d’une pièce : le thermostat fixe la consigne, mais l’être humain étant très sensible aux variations, il faut surtout éviter les oscillations plus chaud / plus froid, et c’est typiquement l’application du PID : atteindre le plus rapidement possible la consigne sans la dépasser et en se stabilisant rapidement.

Cette stabilisation nécessaire est causée par l’inertie, plus ou moins importante, de toute grandeur physique soumise à une contrainte (la température quand on chauffe, la vitesse quand on propulse, etc...).

Voici un exemple du résultat qu’on peut attendre du PID : faire tenir une balle en équilibre sur un plateau. C’est le belge K-my qui nous le présente sur le forum Planète-Sciences.

Nous développerons plus tard la théorie, on va commencer par des tests simples.

Un exemple simple : le ressort

Un ressort est un dispositif mécanique qui réagit à sa compression ou à son étirement par une force opposée. Dans la démonstration ci-dessous (issu de l’exemple "Spring" du logiciel Processing), les équations du poids (la force qui soumet une masse à l’effet de la gravité) et du ressort permettent de reproduire son fonctionnement. Il n’y a aucun asservissement ici, et cela nous servira de référence pour comparer avec nos tentatives d’implémentation du PID.

This browser does not have a Java Plug-in.


Get the latest Java Plug-in here.

Premier asservissement

Ce second exemple est un asservissement en position : la valeur mesurée est l’abscisse (directement donnée par l’applet graphique, donc considérée comme exacte et la consigne est d’avoir une abscisse nulle pour le mobile. Le mobile est commandé en vitesse, c’est-à-dire qu’un algorithme simplissime va mettre à jour à chaque itération la position du mobile comme s’il s’agissait de sa vitesse réelle : x(n) = x(n-1) + v * t où v est la sortie de l’asservissement et t le temps entre deux tours de boucle.

This browser does not have a Java Plug-in.


Get the latest Java Plug-in here.

Second asservissement

This browser does not have a Java Plug-in.


Get the latest Java Plug-in here.

Application concrête

Nous allons maintenant tester un asservissement PID sur un robot. Pour cela, on utilisera le robot Pobot Easy et une bibliothèque pour Arduino.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.