Rss Véhicules de Braitenberg 1 et 2

Sommaire:

 

Le bloc "Moteur PID" de HiTechnic





La société HiTechnic, célèbre pour ses capteurs LEGO MINDSTORMS, a publiée dernièrement sur son blog un article sur un nouveau bloc moteur avec un régulateur de position PID intégré qui permet de travailler en position absolue plutôt qu'en position relative.

HiTechnic à produit une vidéo,intégré ci-dessous, montrant les différentes possibilités qu'offre ce bloc "Moteur PID" :



Nous allons donc voir rapidement ici les différents modes de fonctionnement de ce nouveau bloc "Moteur PID".

Attend un peu ... Explique déjà pourquoi avons-nous besoin de ce nouveau bloc "Moteur PID" ?

Bonne question. Je vais y répondre de ce pas ! :p


Pourquoi avoir besoin de ce bloc Moteur PID" ?




La réponse est on ne peut plus simple.

Tout simplement parce que, comme je l'ai déjà dit plus haut dans ce texte, ce bloc permet de travailler en position absolue plutôt qu'en position relative.

C'est quoi la différence entre une position relative et une position absolue ?

Toute la différence est là !

Avec un bloc "Moteur" standard, vous travaillez en position relative.

C'est à dire que lorsque vous lui indiqué une durée de fonctionnement, exprimée en degrés par exemple, la nouvelle position du moteur dépendra de la position actuelle de celui-ci.
La nouvelle position est relative par rapport à la position actuelle du moteur.

Avec le bloc "Moteur PID", vous travaillez en position absolue.

C'est à dire que vous allez définir pour de bon une position initiale pour le moteur, appelée la position de référence, et que la nouvelle position du moteur dépendra de cette position de référence.
La nouvelle position est absolue par rapport à la position de référence du moteur.

Ce type de contrôle est utile quand votre moteur doit évoluer dans une plage limitée de mouvements.

Et pourquoi PID .... C'est quoi ce truc ?


PID pour Proportionnel Intégrale Dérivée




Le terme PID fait référence à un type de régulateur.

Le sigle PID est le résultat des trois premières lettres des mots suivants :

  • Proportionnel
  • Intégrale
  • Dérivée


Il s'agit des trois opérations mathématique réalisée par le régulateur pour obtenir sa valeur de sortie.

Mais c'est quoi un régulateur ?

Nous prendrons ici l'exemple de notre moteur.

Un régulateur compare une valeur physique, par exemple la position actuelle du moteur, avec une valeur préréglée qu'il essaye de maintenir identique. Les perturbations éventuelles de la valeur physique seront contrecarrées par une valeur de commande.

Dans notre cas, un régulateur PID est utilisé pour contrôler la valeur de puissance d'un moteur NXT de manière à maintenir la position du moteur à la position préréglée dans son paramètre Durée de son panneau de configuration.

Un régulateur PID est un mécanisme couramment utilisé pour contrôler toutes sortes de système.

Je n'entre pas ici dans le détail, car cela est prévu plus tard dans la suite de ce tutoriel consacré à la programmation en NXT-G.

Retenez simplement que le bloc "Moteur PID" fonctionne en position absolue et qu'il tend à garder la position indiqué dans son paramètre Durée.


Les différents modes de fonctionnement du bloc "Moteur PID"




Comme expliqué à l'instant, la position absolue du moteur dépendra de la position de référence établie une fois pour toute pour le moteur.

Donc, la première chose à faire est d'établir cette position de référence.

Et pour ce faire, le bloc "Moteur PID" vous offre plusieurs modes de fonctionnement vous permettant d'établir une position de référence facilement, et ce, même en prenant en compte une ou plusieurs butées mécanique.

Ces modes de fonctionnement sont disponibles dans le paramètre Action de son panneau de configuration.



Voyons rapidement ces différentes actions :

  • Reset at Current Position : La position actuelle du moteur devient la position de référence.
  • Reset at Forward Limit : Provoque la rotation du moteur en marche avant jusqu'à rencontrer une résistance mécanique qui devient la position de référence.
  • Reset at Backward Limit : Provoque la rotation du moteur en marche arrière jusqu'à rencontrer une résistance mécanique qui devient la position de référence.
  • Reset at Mid-point of Limits : Provoque la rotation du moteur, d'abord en marche avant jusqu'à une résistance mécanique, puis en marche arrière jusqu'à rencontrer une autre résistance mécanique et calcule la position centrale entre les deux résistances mécanique qui devient la position de référence.


Ces différents mode de fonctionnement vous seront utiles selon le projet que vous concevez.

Notez que définir une position de référence c'est bien, mais ce n'est pas suffisant.

Encore faut t-il donner une valeur à cette position de référence.

La valeur de cette position de référence doit être indiquée dans le paramètre Set Point du panneau de configuration du bloc "Moteur PID".

Vous pouvez y indiquer la valeur que vous souhaitez. Dans ce tutoriel nous réglerons la valeur de la position de référence à 0, mais rien ne vous empêche de lui donner une autre valeur, comme 38 par exemple, si cela correspond mieux à votre projet.

Dans la suite de ce tutoriel, nous allons utiliser l'action Reset at Mid-point of Limits qui répond parfaitement à nos besoins.

Retenez que vous devez utiliser ces actions à une faible vitesse de moteur, en réglant le paramètre Max Power à 25 par exemple.
Cela évitera de forcer le moteur lorsqu'il rencontrera une résistance mécanique.

Sachez également que l'action nommée Power Toward Set Point vous permet d'indiquer dans le paramètre Set Point la position absolue que vous voulez faire prendre au moteur.

Enfin pour information, le fait de cliquer sur le bouton Show/Hide (Afficher/Masquer) vous permet d'accéder à la formule mathématique du régulateur PID et de modifier si besoin les trois paramètres de régulation que sont les coefficients proportionnel, intégral et dérivé.



A ne modifier qu'en en connaissance de cause, sachant que les valeurs par défaut fonctionnent dans la plupart des situations.

Voyons maintenant un exemple d'utilisation pratique du bloc "Moteur PID"


Utilisation du bloc "Moteur PID" avec un programme d'exemple




Nous allons utiliser un des programmes d'exemple fournit par HiTechnic.

Allez tout d'abord télécharger les programmes d'exemple, sur la même page que précédemment, en cliquant sur le lien NXT-G PID Block Sample Programs for Mindstorms 1.0 and 2.0.



Puis sur le bouton Proceed to Download :



Et enfin, sur le lien 945-PIDDemoPrograms.zip pour télécharger le fichier dans le répertoire de votre choix :



Puis, décompressez-le pour en extraire les fichiers des programmes d'exemple :



Ici, nous n'allons utiliser que le programme d'exemple nommé PIDDemo2.rbt car il correspond exactement à ce que nous allons faire avec le bloc "Moteur PID" dans cette partie du tutoriel.

Faite donc un doucle-clique sur ce programme pour l'ouvrir dans le logiciel LEGO MINDSTORMS NXT :



Le fonctionnement de ce programme est très simple.

Le premier bloc "Moteur PID" sert à définir la position de référence, ainsi que la valeur de cette dernière, pour le moteur.

Ensuite, le programme boucle en permanence de manière à scruter les boutons du NXT et donner une valeur de position absolue au moteur en fonction du bouton appuyé :

  • Pour le bouton orange : On demande que le moteur se positionne à l'angle de 0°.
  • Pour le bouton flèche à droite : On demande que le moteur se positionne à l'angle de 45°.
  • Pour le bouton flèche à gauche : On demande que le moteur se positionne à l'angle de -45°, soit 45° dans l'autre sens.


Malheureusement, si ce programme répond au besoin attendu pour notre exemple, il n'est pas adapté à notre robot.
Il va falloir y faire quelques petits réglages avant de l'envoyer dans le NXT.

En ce qui concerne le premier bloc "Moteur PID", il faut le régler pour qu'il commande le moteur A au lieu du moteur C, que son action soit positionnée sur Reset at Mid-point of Limits à la place de Reset at Forward Limit et que la valeur de la position de référence soit définit à 0 plutôt que 85 :



Ne touchez pas à la vitesse de 25, celle-ci est très bien réglée !

Concernant les trois autres blocs "Moteur PID", il convient simplement de les régler pour qu'ils commande le moteur A au lieu du moteur C et diminuer leur vitesse à 50 au lieu de 100 qui est trop rapide pour la tourelle du robot.





Ces légères modifications devant vous donner le programme suivant :



Le fonctionnement est identique à l'explication précédente, sauf que le moteur commandé est le moteur A au lieu du moteur C, que la position de référence sera la position centrale entre les deux butées mécanique du robot et que celle-ci a comme valeur l'angle de 0°.

De fait, ce programme d'exemple fera en sorte que le robot trouve automatiquement la position de référence centrale du débattement de la tourelle et permette un positionnement absolue de cette dernière par rapport à cette position de référence centrale.

Téléchargez ce programme dans le NXT du robot, lancez-le, laissez-lui trouver automatiquement sa position de référence et appuyez successivement sur les boutons du NXT pour déplacer la tourelle sur les positions absolue pré-définies.

Notez qu'à la fin de la recherche de la position de référence par le premier bloc "Moteur PID", la tourelle ne se positionne pas automatiquement sur la position de référence centrale mais reste sur la position de la deuxième butée.

Ceci est parfaitement normal.
Le premier bloc "Moteur PID" ne fait que rechercher la position de référence entre les deux butées.
Il n'a pas vocation à rejoindre une position déterminée.

Pour cela, il faut utiliser un autre bloc "Moteur PID" pour faire rejoindre au moteur une position absolue quelconque.

C'est d'ailleurs ce que nous ferons dans la suite de cette partie consacrée aux véhicules de Braitenberg.

 
 « Page précédente
Installation d'un nouveau bloc NXT-G
 1  2  3  4  5  6 
Page suivante »
Véhicule de Braitenberg 1 
 
 
Aucune note
Ecrit par: FRED_80 Le: 20/08/11