Table des matières:

Enseigner le contrôle PID avec des robots Lego : 14 étapes
Enseigner le contrôle PID avec des robots Lego : 14 étapes

Vidéo: Enseigner le contrôle PID avec des robots Lego : 14 étapes

Vidéo: Enseigner le contrôle PID avec des robots Lego : 14 étapes
Vidéo: Comment débuter avec Spike Prime - LEGO® 2024, Juillet
Anonim
Enseigner le contrôle PID avec des robots Lego
Enseigner le contrôle PID avec des robots Lego

De nombreux jeunes passionnés de robots s'intéressent à des sujets de contrôle plus avancés, mais peuvent être bloqués par les calculs souvent nécessaires pour analyser les systèmes en boucle fermée. Il existe de merveilleuses ressources disponibles en ligne qui simplifient la construction d'un "contrôleur différentiel intégral proportionnel" (contrôleur PID), et une excellente description est ici:

Néanmoins, ceux-ci peuvent être difficiles à suivre et pourraient ne pas convenir à une classe d'une vingtaine d'étudiants.

Cette étape par étape Instructable montre comment enseigner avec succès une salle pleine d'étudiants utilisant le système de robot Lego, un certain nombre de robots (5 à 10 d'entre eux), un nombre égal de postes de travail informatiques exécutant NXT 2.0 et une piste de sept pieds de noir ruban électrique sur le sol.

À CTÉ: Merci à J. Sluka, qui a écrit le lien ci-dessus, au Dr Bruce Linnell, qui a créé quelques premiers laboratoires Lego au niveau de l'Université ECPI, et au Dr Reza Jafari, qui a fourni les objectifs d'apprentissage PID Control mappant des idées vers l'EET220 et Cours de synthèse.

Étape 1: Préparation du laboratoire avant l'arrivée des étudiants

Préparation du laboratoire avant l'arrivée des étudiants
Préparation du laboratoire avant l'arrivée des étudiants

Informez les élèves de votre travail acharné;-)

Les instructeurs et les assistants d'enseignement ont été TRÈS occupés à vous préparer pour ce laboratoire ! Le robot a été chargé et assemblé pour ce laboratoire. Si un assemblage est nécessaire, cela peut prendre jusqu'à 90 minutes pour un ou plusieurs robots. Encore plus de temps est nécessaire pour charger les batteries ou les conditionner avec des cycles de charge/décharge. Pour des instructions détaillées sur la façon de construire le robot que nous utiliserons aujourd'hui, consultez le kit éducatif NXT 2.0 ou 2.1, le guide de construction du robot « suivre une ligne ». Nous utiliserons cependant une programmation plus complexe… Du ruban électrique noir sur du linoléum de couleur claire fait une excellente piste. Celui-ci mesure 3' x 7' avec des courbes semi-circulaires.

Étape 2: Familiarisez-vous avec le robot

Familiarisez-vous avec le robot
Familiarisez-vous avec le robot

Tout d'abord, vous vous familiariserez avec le menu du robot, ainsi qu'avec certaines des parties de ce robot particulier. Vous découvrirez également la technologie des capteurs de style industriel utilisée par le robot, y compris les diodes électroluminescentes, les capteurs de lumière, les moteurs pas à pas et les capteurs de position de rotation. Veuillez vous assurer de remplir toutes les informations demandées (généralement des blancs soulignés _).

1. Déconnectez le robot du chargeur et/ou du port USB de votre PC. Utilisez le bouton Orange pour allumer le robot. Les boutons orange, gauche et droit et le bouton rectangle gris « retour » permettent la navigation dans les menus. Accédez au menu « Fichiers logiciels » et faites défiler les fichiers logiciels disponibles sur le robot. Dressez la liste des noms de chaque fichier logiciel, exactement comment il est orthographié, y compris les majuscules et les espaces:

_

Étape 3: Calibrer le capteur de lumière

Calibrer le capteur de lumière
Calibrer le capteur de lumière

2 Examinez le capteur de lumière et les informations d'étalonnage. Revenez au menu principal et sélectionnez « Afficher ». Sélectionnez l'option « Lumière réfléchie » et le port (ce devrait être « Port 3 ») qui allume la lumière et affiche un numéro à l'écran. Assurez-vous que tout fonctionne et enregistrez des informations d'étalonnage.

une. Lecture maximale à l'aide d'une feuille de papier blanche: Nombre:_ Décrivez la distance approximative par rapport au papier: _

b. Lecture maximale sur le sol en linoléum de couleur claire: _

c. Lecture minimale en pointant vers le centre du ruban électrique noir: _

Étape 4: Tester l'étalonnage du moteur

Tester l'étalonnage du moteur
Tester l'étalonnage du moteur

3 Examinez les moteurs de roue (gauche et droite) ainsi que les informations d'étalonnage. Revenez au menu principal et sélectionnez « Rotations du moteur » Sélectionnez le port (il doit s'agir du « Port B » ou du « Port C » pour les deux moteurs). Voyez si vous pouvez vérifier l'étalonnage de cette lecture en faisant tourner chaque moteur d'un nombre fixe de tours tout en visualisant la lecture. Vous effectuerez le même test d'étalonnage pour les deux moteurs à l'aide de l'écran d'étalonnage « View » à « Motor Degrés ».

Moteur sur le port B

  • Nombre de fois où vous avez tourné la roue _
  • Valeur d'affichage « Rotations du moteur »_
  • La distance en degrés a été tournée _
  • Valeur d'affichage des « degrés moteurs »_

Moteur sur le port C

  • Nombre de fois où vous avez tourné la roue _
  • Valeur d'affichage « Rotations du moteur »_
  • La distance en degrés a été tournée _
  • Valeur d'affichage des « degrés moteurs »_

Les valeurs d'affichage étaient-elles conformes à vos attentes ? S'il vous plaît, expliquez. _

Étape 5: Exécutez le contrôleur On-Off fourni

Exécutez le contrôleur On-Off fourni
Exécutez le contrôleur On-Off fourni

Un contrôleur "On-Off" (parfois appelé "Bang-Bang") n'a que deux options, on et off. Il est similaire au contrôle du thermostat dans votre maison. Lorsqu'il est réglé sur une température choisie, le thermostat chauffera la maison s'il fait trop froid et refroidira la maison s'il fait trop chaud. La température choisie est appelée le « point de consigne » et la différence entre la température actuelle de la maison et le point de consigne est appelé "Erreur". Donc, vous pourriez dire, si l'erreur est positive, allumez la climatisation, sinon allumez le chauffage.

Dans notre cas, le robot tournera à Gauche ou à Droite, selon que le Set-Point du capteur de lumière a une erreur positive ou négative (trop sur le sol blanc, ou trop sur le ruban noir).

Vous remarquerez que votre robot peut déjà être chargé avec un certain nombre de programmes (ou vous pouvez utiliser le fichier joint "01 line.rbt" intégré ici) stockés dessus avec des noms comme "1 ligne" et "2 ligne" et là aussi peut être une lettre supplémentaire après le numéro du programme, comme « ligne 3b ». Vous devrez exécuter le programme avec le numéro « 1 » dans son nom, puis placer le robot sur la piste de la bande, avec le capteur sur la ligne noire. Essayez de vous tenir à l'écart des autres robots déjà sur la piste afin que vous puissiez chronométrer votre robot sans interruption de collision avec d'autres robots.

4 Mesurez les contre-la-montre suivants:

une. Temps pour terminer un côté droit de la piste: _

b. Décrivez le mouvement rectiligne du robot: _

c. Temps pour terminer une courbe de la piste: _

ré. Décrivez le mouvement du robot à chenilles courbes: _

e. Temps de faire un tour complet de la piste: _

Étape 6: Ouvrez le logiciel du contrôleur On-Off "01 Line"

Ouvrez le
Ouvrez le
Ouvrez le
Ouvrez le
Ouvrez le
Ouvrez le

Vous allez ouvrir le logiciel "LEGO MINDSTORMS NXT 2.0" (pas le logiciel Edu 2.1) et vous allez charger le programme approprié appelé "01 line.rbt" et examiner et modifier le logiciel, en suivant les instructions ci-dessous:

Ouvrez le logiciel "LEGO MINDSTORMS NXT 2.0" (pas le logiciel Edu 2.1). Votre instructeur vous dira où les fichiers sont stockés sur votre ordinateur, et à partir de cet emplacement, vous ouvrirez le programme "1 ligne". Sélectionnez simplement « Fichier » puis « Ouvrir » et choisissez le programme « 1 ligne » à ouvrir.

Une fois le programme ouvert, vous pouvez utiliser l'icône « main » pour déplacer l'intégralité de l'image à l'écran du programme, et vous pouvez utiliser l'icône « flèche » pour cliquer sur des objets individuels pour voir comment ils fonctionnent (et également apporter des modifications).

Étape 7: Comprendre le logiciel du contrôleur On-Off "01 Line"

Comprendre le
Comprendre le

Le programme « 1 ligne » utilise une méthode de contrôle « On-Off ». Dans ce cas, les choix sont soit « Tourner à gauche » ou « Tourner à droite ». Le graphique contient une description des éléments du programme:

Étape 8: Édition du logiciel du contrôleur On-Off "01 Line"

Modifier le
Modifier le

Modifiez le point de consigne et comparez les résultats.

Vous avez découvert certaines valeurs réelles du posemètre à l'étape 2 ci-dessus. Vous avez enregistré des valeurs dans les parties b et c, des nombres pour les valeurs minimales et maximales que le robot verrait lors de l'exécution de la piste.

5 Calculer une BONNE valeur de consigne (la moyenne du min et du max): _

6 Choisissez une BAD valeur de set-pint (un nombre très proche du min ou du max): _

Changez le point de consigne à l'une de ces valeurs en utilisant l'icône de flèche pour cliquer sur la boîte de calcul d'erreur, et en changeant le nombre qui est soustrait (voir l'image ci-dessous). Connectez maintenant le robot au PC à l'aide du câble USB, assurez-vous que le robot est allumé et téléchargez la nouvelle version du programme "1 ligne" sur le robot. Vous verrez combien de temps le robot met pour faire le tour de la piste dans le sens des aiguilles d'une montre, une fois avec le point de consigne BON et une fois avec le point de consigne MAUVAIS.

7 Contre-la-montre complet avec des valeurs de consigne BONNES et MAUVAISES

une. Temps pour faire un tour complet de la piste (BON Set-Point): _

b. Temps pour faire le tour complet de la piste une fois (BAD Set-Point): _

Vos Observations / Conclusions ? _

Étape 9: Comprendre la "ligne 02" On-Off avec le logiciel de contrôle de zone morte

Comprendre le
Comprendre le

Si la climatisation et le chauffage de votre maison continuaient à s'allumer et à s'éteindre toute la journée, cela pourrait certainement détruire votre système CVC (ou au moins raccourcir sa durée de vie). La plupart des thermostats sont fabriqués avec une "zone morte" intégrée. Par exemple, si votre point de consigne est de 70 degrés Fahrenheit, le thermostat pourrait ne pas allumer la climatisation avant d'avoir atteint 72 degrés, ni allumer le chauffage jusqu'à ce que la température descende à 68 degrés. Si la zone morte devient trop large, la maison peut devenir inconfortable.

Dans notre cas, nous utiliserons le programme ligne 02 pour ajouter une zone morte, pendant laquelle le robot roulera simplement tout droit.

Examinez maintenant le fichier logiciel « 02 line » comme décrit dans le graphique et tel qu'il est contenu dans le fichier joint.

Ce fichier logiciel programme le robot pour qu'il suive la ligne en utilisant le contrôle On-Off avec un écart différentiel. Ceci est également connu sous le nom de Deadband et cela signifie que le robot tournera à gauche ou à droite en fonction de l'erreur, mais si l'erreur est petite, le robot ira tout droit.

Le programme « 02 line » calcule d'abord ce qui précède en soustrayant le point de consigne de la mesure de la lumière, puis en effectuant les comparaisons comme indiqué ci-dessus. Examinez le programme sur le PC et enregistrez les valeurs que vous voyez.

Quelle est la valeur actuelle (originale) des programmes « 2 lignes » du point de consigne ? _

Quelle est la valeur actuelle (originale) des programmes « 2 lignes » Erreur positive « grande » ? _

Quelle est la valeur actuelle (originale) des programmes « 2 lignes » Erreur négative « grande » ? _

Quelle plage d'erreur de bande morte fera que le robot ira tout droit ? DE À _

Exécutez trois (3) contre-la-montre avec des valeurs différentes pour l'erreur « Large » ci-dessus. Les paramètres actuels de « 2 lignes » ainsi que deux autres paramètres que vous calculerez. Vous avez déjà choisi un BON Set-Point pour votre robot. Vous allez maintenant choisir deux plages de bande morte différentes et enregistrer le temps qu'il faut au robot pour effectuer un tour dans le sens des aiguilles d'une montre:

Paramètres d'origine pour la ligne 02 _

Dead-Band de +4 à -4 _

Dead-Band de +12 à -12 _

Étape 10: Comprendre le logiciel du contrôleur proportionnel « Ligne 03 »

Comprendre le
Comprendre le

Avec le contrôle proportionnel, nous n'allons pas seulement allumer ou éteindre le chauffage, nous pouvons avoir plusieurs réglages pour combien augmenter le four (comme la taille des flammes sur une cuisinière). Dans le cas du robot, nous n'avons pas seulement trois réglages de moteur (gauche, droite et droit). Au lieu de cela, nous pouvons contrôler la vitesse des roues gauche et droite pour obtenir une grande variété de vitesses de rotation. Plus l'erreur est grande, plus vite nous voulons revenir à la ligne.

Regardons le contrôle proportionnel avec le programme "03 line"

Le programme pour « ligne 03 » est plus compliqué car il configure non seulement la méthode de contrôle « proportionnel », mais il contient également tous les logiciels pour effectuer des contrôles proportionnels-intégraux, proportionnels-différentiels et proportionnels-intégraux-différentiels (PID).. Lorsque vous chargez le logiciel, il sera probablement trop volumineux pour tenir sur l'écran en une seule fois, mais il comporte en réalité trois parties, comme le montre le graphique ci-joint.

A – Les maths pour calculer l'erreur et le « calcul » pour trouver l'intégrale et la dérivée de l'erreur dans le temps.

B - Le calcul pour calculer la vitesse du moteur gauche en fonction des paramètres de contrôle PID de Kp, Ki et Kd

C – Les calculs pour tester les limites de vitesse du moteur et envoyer les vitesses de moteur correctes aux moteurs gauche et droit.

Tous les trois exécutent leurs propres boucles infinies (après l'initialisation) et vous pouvez naviguer à l'aide de l'icône « main », mais revenez à l'icône « flèche » pour examiner le contenu de la boîte et modifier les paramètres.

Étape 11: Modification du programme de la ligne 03 (contrôle proportionnel)

Modification du programme de la ligne 03 (contrôle proportionnel)
Modification du programme de la ligne 03 (contrôle proportionnel)

Dans la section du milieu (section B dans la description précédente), vous remarquerez que dans le programme « ligne 03 », les paramètres de Ki et Kd sont tous les deux à 0.

Laissons-les ainsi. Nous ne changerons que la valeur de Kp, la partie proportionnelle du contrôleur.

Kp décide avec quelle régularité le robot change de vitesse lorsqu'il s'éloigne de la ligne. Si Kp est trop grand, le mouvement sera extrêmement saccadé (similaire au contrôleur On-Off). Si Kp est trop petit, alors le robot effectuera des corrections trop lentement et dérivera loin de la ligne, en particulier dans les courbes. Il peut même dériver jusqu'à perdre complètement la ligne !

13 Quel point de consigne le programme « ligne 03 » utilise-t-il ? (soustrait après avoir lu le réglage de la lumière dans la boucle A)_

14 Quelle est la valeur de Kp dans le programme courant « ligne 03 » ? _

Contre-la-montre pour contrôleur proportionnel (programme « 3 lignes »)

Vous utiliserez les paramètres d'origine du programme « ligne 03 » enregistrés dans la mémoire de votre robot pour effectuer un contre-la-montre, et vous utiliserez également deux autres modifications du programme « ligne 03 » pour un total de trois mesures de contre-la-montre. Les modifications que vous devez apporter comprennent

DRIFTY - Trouver une valeur de Kp qui fait dériver le robot très lentement, et peut-être perdre de vue la ligne (mais espérons-le non). Essayez un Kp de valeurs différentes entre 0,5 et 2,5 (ou une autre valeur) jusqu'à ce que vous en obteniez un où le robot dérive, mais reste sur la ligne.

JERKY - Trouver une valeur de Kp qui fait bouger le robot d'avant en arrière, très similaire au type de mouvement On-Off. Essayez une valeur Kp entre 1,5 et 3,5 (ou une autre valeur) jusqu'à ce que vous en obteniez une où le robot commence juste à présenter un mouvement de va-et-vient, mais pas de manière trop spectaculaire. Ceci est également connu comme la valeur « critique » de Kp.

Les contre-la-montre pour un tour complet de la piste dans le sens des aiguilles d'une montre ne sont nécessaires qu'avec les valeurs originales « 3 lignes » et les deux nouveaux ensembles de valeurs (DRIFTY et JERKY) que vous découvrez en faisant suivre au robot une courte longueur de piste. N'oubliez pas de télécharger les modifications sur votre robot à chaque fois !

15 Enregistrez les valeurs de contrôle proportionnel et les essais chronométrés pour le programme « 3 lignes » (n'oubliez pas de télécharger les modifications sur le robot !) être DRIFTY et JERKY).

Étape 12: Contrôleurs PID avancés

Contrôleurs PID avancés
Contrôleurs PID avancés
Contrôleurs PID avancés
Contrôleurs PID avancés

Avant de commencer cette étape, assurez-vous de terminer les étapes précédentes, en enregistrant toutes les informations demandées, avec le robot particulier que vous avez l'intention d'utiliser pour ce laboratoire. Chaque robot est légèrement différent, en ce qui concerne les aspects mécaniques, les aspects moteurs, et surtout les résultats des capteurs de lumière sur la piste.

Chiffres dont vous aurez besoin pour les expériences précédentes

16 Lecture maximale du capteur de lumière (à partir de l'étape 2) _

17 Lecture minimale du capteur de lumière (à partir de l'étape 5) _

18 BON réglage pour le point de consigne (moyenne de ce qui précède) _

19 Réglage DRIFTY pour Kp (à partir de l'étape 15) _

20 Réglage JERKY (critique) pour Kp (à partir de l'étape 15) _

Comprendre le contrôleur PID

Vous avez peut-être entendu parler du contrôleur différentiel intégral proportionnel (PID) dans le cadre d'un cours sur les contrôles industriels, et un bon aperçu rapide est en ligne sur Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

Dans le cas de cette expérience, la valeur mesurée est la quantité de lumière réfléchie par le sol. Le point de consigne est la quantité de lumière souhaitée lorsque le robot est directement au-dessus du bord du ruban noir. L'erreur est la différence entre la lecture actuelle de la lumière et le point de consigne.

Avec le contrôleur proportionnel, la vitesse du moteur gauche était proportionnelle à l'erreur. Spécifiquement:

Erreur = Lecture de lumière - Point de consigne

Dans ce graphique, le point de consigne a été fixé à 50.

Plus tard, pour trouver la vitesse du moteur gauche, nous multiplions l'erreur par la constante de proportionnement « Kp » spécifiquement:

L Moteur = (Kp * Erreur) + 35

Où dans ce graphique, Kp est défini sur 1,5, et l'ajout du 35 se produit dans une autre partie du programme. La valeur de 35 est ajoutée pour convertir un nombre compris entre -40 et +40, en un nombre compris entre 10 et 60 (vitesses du moteur raisonnables).

L'Intégrale est une sorte de mémoire du passé. Si l'erreur persiste depuis longtemps, le robot doit accélérer vers le point de consigne. Ki est utilisé pour multiplier par l'intégrale (l'intégrale est la somme cumulée des erreurs - dans ce cas, réduite de 1,5 à chaque itération afin que le robot ait une "mémoire qui s'efface" des erreurs passées).

Le dérivé est une sorte de prédiction future. Nous prédisons une erreur future en comparant la dernière erreur à l'erreur actuelle et supposons que le taux de variation d'erreur sera quelque peu linéaire. Plus l'erreur future est prédite, plus nous devons nous déplacer rapidement vers le point de consigne. Kd est utilisé pour multiplier par la Dérivée (la dérivée est la différence entre l'erreur actuelle et l'erreur précédente).

L Moteur = (Kp * Erreur) + (Ki * Intégrale) + (Kd * Dérivée) + 35

Étape 13: Trouver les meilleurs paramètres PID

Trouver les meilleurs paramètres PID
Trouver les meilleurs paramètres PID
Trouver les meilleurs paramètres PID
Trouver les meilleurs paramètres PID
Trouver les meilleurs paramètres PID
Trouver les meilleurs paramètres PID

Il existe un certain nombre de façons qui peuvent être utilisées pour trouver les paramètres PID, mais notre situation présente des aspects uniques qui nous permettent d'utiliser une méthode expérimentale plus «manuelle» pour trouver les paramètres. Les aspects uniques que nous avons sont:

  • Les expérimentateurs (vous) avez une bonne compréhension du fonctionnement de la machine
  • Il n'y a aucun risque de blessure corporelle si le contrôleur devient fou, et également aucun risque d'endommager le robot en raison de mauvais réglages du contrôleur
  • Le capteur de lumière est un dispositif de détection si bâclé, et il n'y a qu'un seul capteur de lumière, nous ne pouvons donc qu'espérer obtenir un résultat final marginalement bon. Par conséquent, un « best effort » est parfait pour nos expériences

Tout d'abord, nous avons déjà utilisé la « ligne 03 » pour décider du meilleur Kp (le BON point de consigne et les valeurs JERKY Kp des étapes 18 et 20 ci-dessus). Voir le premier graphique pour des instructions sur la façon dont nous avons trouvé la valeur JERKY pour Kp.

Utilisez le logiciel "04 line" pour déterminer Ki. Nous allons d'abord modifier « 4 lignes » pour avoir les valeurs que nous avons enregistrées dans les éléments 18 et 20 ci-dessus. Ensuite, nous augmenterons lentement Ki jusqu'à ce que nous obtenions une valeur qui nous amène vraiment au point de consigne très rapidement. Voir le deuxième graphique pour des instructions sur la façon de sélectionner la valeur pour Ki.

21 LE PLUS RAPIDE Valeur de Ki qui s'installe le plus rapidement sur la consigne (même avec quelques dépassements) _

Utilisez le logiciel « 05 line » pour déterminer Kd. Modifiez d'abord la "ligne 5" avec les valeurs des étapes 18, 20 et 21, puis augmentez Kd jusqu'à ce que vous obteniez le robot de travail final qui atteint le point de consigne rapidement et avec très peu de dépassement, le cas échéant. Le troisième graphique montre des instructions sur la façon de sélectionner Kd.

22 Valeur OPTIMALE de Kd _

23 COMBIEN DE TEMPS VOTRE ROBOT PREND-T-IL POUR CIRCULER LA PISTE MAINTENANT ??? _

Étape 14: Conclusion

L'expérience en laboratoire s'est très bien passée. Avec environ 20 étudiants, utilisant les 10 (dix) configurations de poste de travail + robot montrées dans le premier graphique, il n'y a jamais eu d'impasse de ressources. Au plus trois robots faisaient le tour de la piste à la fois pour les contre-la-montre.

Je recommande de répartir la partie contrôle PID (au minimum, les programmes "04 line" et "05 line") à un jour séparé, en raison des concepts impliqués.

Voici une séquence de vidéos montrant la progression des contrôles (de "01 line" à "05 line") en utilisant les valeurs que j'ai sélectionnées - mais chaque élève a proposé des valeurs légèrement différentes, ce qui est normal !

N'OUBLIEZ PAS: L'une des principales raisons pour lesquelles les équipes de robots très bien préparées réussissent mal lors des événements de compétition est le fait qu'elles n'effectuent pas l'étalonnage à l'endroit exact où l'événement aura lieu. L'éclairage et les légers changements de position des capteurs dus aux bousculades peuvent grandement affecter les valeurs des paramètres !

  • Contrôle PID de la ligne 01 (On-Off) avec des robots Lego -
  • 02 line (On-Off avec Dead-Zone) Contrôle PID avec Lego Robots -
  • Contrôle PID de ligne 03 (proportionnel) avec des robots Lego -
  • Contrôle PID de ligne 04 (proportionnelle-intégrale) avec des robots Lego -
  • Contrôle PID de la ligne 05 (proportionnelle-intégrale-dérivée) avec des robots Lego -

Conseillé: