Taula de continguts:

Ensenyament del control PID amb robots Lego: 14 passos
Ensenyament del control PID amb robots Lego: 14 passos

Vídeo: Ensenyament del control PID amb robots Lego: 14 passos

Vídeo: Ensenyament del control PID amb robots Lego: 14 passos
Vídeo: V.O. Complete. An educational look at the creation of the Internet. Vinton Cerf 2024, Juliol
Anonim
Ensenyament del control PID amb robots Lego
Ensenyament del control PID amb robots Lego

Molts joves entusiastes dels robots estan interessats en temes de control més avançats, però poden estar obstaculitzats pel càlcul que sovint es requereix per analitzar sistemes de bucle tancat. Hi ha recursos meravellosos disponibles en línia que simplifiquen la construcció d’un "controlador diferencial integral proporcional" (controlador PID), i una gran descripció és aquí:

Tot i això, poden ser difícils de seguir i potser no seran adequats per a una aula de més o menys 20 estudiants.

Aquest pas a pas Instructable mostra com ensenyar amb èxit una sala plena d’estudiants que utilitzen el sistema de robots Lego, un nombre de robots (de 5 a 10 d’ells), un nombre igual d’estacions de treball informàtiques que funcionen amb NXT 2.0 i una pista de set peus de color negre. cinta elèctrica al terra.

A PART: Gràcies a J. Sluka, que va escriure l’enllaç anterior, al Dr. Bruce Linnell, que va crear alguns primers laboratoris de Lego a nivell de la Universitat ECPI, i al Dr. Reza Jafari, que va proporcionar objectius d’aprenentatge del control PID idees de mapatge cap a l’EET220 i Capstone coursework.

Pas 1: Preparació del laboratori abans que arribin els estudiants

Preparació del laboratori abans d’arribar els estudiants
Preparació del laboratori abans d’arribar els estudiants

Feu saber als estudiants el vostre treball;-)

Els instructors i els assistents docents han estat MOLT ocupats preparant-se per fer aquest laboratori. El robot s'ha carregat i muntat per a aquest laboratori. Si es necessita un muntatge, pot passar fins a 90 minuts de temps per a un o més robots. Es necessita encara més temps per carregar les bateries o condicionar-les amb cicles de càrrega / descàrrega. Per obtenir instruccions detallades sobre com construir el robot que farem servir avui, consulteu el kit educatiu NXT 2.0 o 2.1, la Guia de construcció del robot “segueix una línia”. Utilitzarem programacions més complexes, però … La cinta elèctrica negra sobre linòleum de colors clars és una pista fantàstica. Aquest fa 3’x 7’ amb corbes semicirculars.

Pas 2: familiaritzeu-vos amb el robot

Familiaritzeu-vos amb el robot
Familiaritzeu-vos amb el robot

En primer lloc, us familiaritzareu amb el menú del robot, així com amb algunes de les parts d’aquest robot en concret. També coneixereu la tecnologia de sensors d’estil industrial que utilitza el robot, inclosos els díodes emissors de llum, els sensors de llum, els motors pas a pas i els sensors de posició de rotació. Assegureu-vos d’emplenar tota la informació sol·licitada (generalment els espais en blanc subratllats _).

1. Desconnecteu el robot del carregador i / o del port USB del vostre PC. Feu servir el botó taronja per encendre el robot. Els botons taronja, esquerra i dreta i el botó rectangle gris "enrere" permeten la navegació pel menú. Aneu al menú "Fitxers de programari" i desplaceu-vos pels fitxers de programari disponibles al robot. Enumereu els noms de cada fitxer de programari, exactament com s’escriu, incloses les majúscules i els espais:

_

Pas 3: calibreu el sensor de llum

Calibre el sensor de llum
Calibre el sensor de llum

2 Examineu el sensor de llum i la informació de calibratge. Feu una còpia de seguretat al menú principal i seleccioneu "Visualitza". Seleccioneu l'opció "Llum reflectida" i el port (hauria de ser "port 3") que farà que la llum s'encengui i es mostri un número a la pantalla. Assegureu-vos que tot funcioni i anoteu informació de calibratge.

a. Lectura màxima mitjançant un full de paper blanc: número: _ Descriviu la distància aproximada del paper: _

b. Lectura màxima al pis de linòleum de colors clars: _

c. Lectura mínima en apuntar cap al centre de la cinta elèctrica negra: _

Pas 4: proveu la calibració del motor

Calibració del motor de prova
Calibració del motor de prova

3 Examineu els motors de les rodes (esquerra i dreta), així com la informació de calibratge. Feu una còpia de seguretat al menú principal i seleccioneu "Rotacions del motor". Seleccioneu el port (hauria de ser "Port B" o "Port C" per als dos motors). Mireu si podeu comprovar el calibratge d’aquesta lectura girant cada motor un nombre fix de rotacions mentre visualitzeu la lectura. Fareu la mateixa prova de calibratge per als dos motors mitjançant la pantalla de calibratge “Veure” a “Graus del motor”.

Motor al port B.

  • Nombre de vegades que heu girat la roda _
  • Valor de visualització de "Rotacions del motor "_
  • La distància en graus de la roda s'ha girat_
  • Valor de visualització de "Graus de motor "_

Motor al port C.

  • Nombre de vegades que heu girat la roda _
  • Valor de visualització de "Rotacions del motor "_
  • La distància en graus de la roda s'ha girat_
  • Valor de visualització de "Graus de motor "_

Els valors de visualització concordaven amb les vostres expectatives? Si us plau expliqui. _

Pas 5: executeu el controlador d'encès i subministrament proporcionat

Executeu el controlador subministrat i desactivat
Executeu el controlador subministrat i desactivat

Un controlador "On-Off" (de vegades anomenat "Bang-Bang") només té dues opcions, activat i desactivat. És similar al control del termòstat de casa vostra. Quan s’estableix a la temperatura escollida, el termòstat escalfarà la casa si fa massa fred i la refrigerarà si la temperatura és massa alta. La temperatura escollida s’anomena "punt de consigna" i la diferència entre la temperatura actual de la casa i el punt de consigna. es diu "Error". Per tant, es podria dir que, si l’error és positiu, engegueu la CA si no, enceneu el foc.

En el nostre cas, el robot girarà cap a l’esquerra o cap a la dreta, segons si el punt de consigna del sensor de llum té un error positiu o negatiu (massa al terra blanc o massa a la cinta negra).

Notareu que és possible que el vostre robot ja estigui carregat amb diversos programes (o podeu utilitzar el fitxer adjunt "01 line.rbt" incrustat aquí) emmagatzemat amb noms com "1 línia" i "2 línia" i allà també pot ser una lletra addicional després del número del programa, com ara "línia 3b". Haureu d'executar el programa amb el número "1" al seu nom i, a continuació, col·loqueu el robot a la pista de cinta, amb el senor a la línia negra. Intenteu allunyar-vos d’altres robots que ja estan a la pista per poder cronometrar-lo sense interrupcions de xocar contra altres robots.

4 Mesureu les següents contrarellotges:

a. Temps per completar un costat recte de la pista: _

b. Descriviu el moviment del robot de via recta: _

c. Temps per completar una corba de la pista: _

d. Descriviu el moviment del robot de pista corba: _

e. Temps per recórrer completament la pista una vegada: _

Pas 6: obriu el programari del controlador On-Off "01 Line"

Obriu el fitxer
Obriu el fitxer
Obriu el fitxer
Obriu el fitxer
Obriu el fitxer
Obriu el fitxer

Obrireu el programari "LEGO MINDSTORMS NXT 2.0" (no el programari Edu 2.1) i carregareu el programa adequat anomenat "01 line.rbt" i examinarà i modifiqueu el programari, seguint les instruccions següents:

Obriu el programari "LEGO MINDSTORMS NXT 2.0" (no el programari Edu 2.1). El vostre instructor us indicarà on s’emmagatzemen els fitxers al vostre ordinador i des d’aquesta ubicació obriu el programa “1 línia”. Simplement seleccioneu "Fitxer" i després "Obre" i trieu el programa "1 línia" per obrir-lo.

Un cop obert el programa, podeu utilitzar la icona de "mà" per moure tota la imatge de pantalla del programa i podeu utilitzar la icona de "fletxa" per fer clic a objectes individuals per veure com funcionen (i també fer canvis).

Pas 7: Descripció del programari del controlador On-Off "01 Line"

Comprensió del
Comprensió del

El programa "1 línia" utilitza un mètode de control "On-Off". En aquest cas, les opcions són "Gire a l'esquerra" o "Gira a la dreta". El gràfic conté una descripció dels elements del programa:

Pas 8: Edició del programari de control On-Off "01 Line"

S'està editant el fitxer
S'està editant el fitxer

Canvieu el set-point i compareu els resultats.

Heu descobert alguns valors reals del mesurador de llum al pas 2 anterior. Heu registrat valors a les parts b i c, números per als valors mínim i màxim que veuria el robot en executar la pista.

5 Calculeu un bon valor de consigna (la mitjana del mínim i del màxim): _

6 Trieu un valor BAD set-pint (un nombre molt proper al mínim o al màxim): _

Canvieu el punt de consigna per un d'aquests valors mitjançant la icona de fletxa per fer clic al quadre de càlcul d'errors i canviant el nombre que es resta (vegeu la imatge següent). Ara connecteu el robot al PC mitjançant el cable USB, assegureu-vos que el robot estigui engegat i descarregueu al robot la nova versió del programa “1 línia”. Veureu quant de temps triga el robot a recórrer la pista en direcció a les agulles del rellotge, un cop amb el punt de consigna BON i un altre amb el punt de consigna MAL.

7 Completeu les contrarellotges amb valors de consigna BONES i MALS

a. Temps per recórrer la pista completament una vegada (BON Set-Point): _

b. Temps per recórrer la pista completament una vegada (BAD Set-Point): _

Les vostres observacions / conclusions? _

Pas 9: entendre la "línia 02" activada i desactivada amb el programari del controlador de zones mortes

Comprensió del
Comprensió del

Si el corrent altern i la calor de la vostra llar continuessin encenent-se i apagant-se tot el dia, definitivament podria destruir el vostre sistema de climatització (o, si més no, escurçar-ne la vida). La majoria dels termòstats es fabriquen amb una "zona morta" integrada. Per exemple, si el vostre punt de consigna és de 70 graus Fahrenheit, és possible que el termòstat no engegui la CA fins que arribi als 72 graus, ni encengui la calor fins que la temperatura baixi a 68 graus. Si la zona morta s’amplia massa, la casa pot resultar incòmoda.

En el nostre cas, utilitzarem el programa de la línia 02 per afegir una zona morta, durant la qual el robot simplement conduirà recte.

Ara examineu el fitxer de programari "línia 02" tal com es descriu al gràfic i tal com es troba al fitxer adjunt.

Aquest fitxer de programari programa el robot per seguir la línia mitjançant el control On-Off amb un gap diferencial. Això també es coneix com a banda morta i significa que el robot girarà a l'esquerra o a la dreta en funció de l'error, però si l'error és petit, el robot només anirà recte.

El programa "línia 02" primer calcula l'anterior restant el punt establert de la Mesura de la llum i després fent les comparacions tal com s'ha indicat anteriorment. Examineu el programa a l'ordinador i anoteu els valors que veieu.

Quin és el valor actual (original) dels programes "2 línies" del set-point? _

Quin és el valor actual (original) dels programes "2 línies" Error positiu "Gran"? _

Quin és el valor actual (original) dels programes de "2 línies" Error negatiu "Gran"? _

Quin interval d'errors de banda morta farà que el robot continuï recte? DE _ A _

Executeu tres (3) proves de temps amb valors diferents per a l'error "Gran" anterior. Els paràmetres actuals de "2 línies", així com altres dos paràmetres que calcularà. Ja heu escollit un BON set-point per al vostre robot. Ara escollireu dos rangs de Dead-Band diferents i registrareu el temps que triga el robot a fer una volta en sentit horari:

Configuració original de la línia 02 _

Banda morta de +4 a -4 _

Banda morta de +12 a -12 _

Pas 10: Descripció del programari de control proporcional "03 Line"

Comprensió del
Comprensió del

Amb un control proporcional, no tan sols encenem o apagem la calor, és possible que tinguem diversos paràmetres quant a la pujada del forn (com la mida de les flames a la part superior de la cuina). En el cas del robot, no només tenim tres paràmetres del motor (esquerra, dreta i recta). En canvi, podem controlar la velocitat de les rodes esquerra i dreta per obtenir una gran varietat de velocitats de gir. Com més gran sigui l’error, més ràpidament volem tornar a la línia.

Vegem el control proporcional amb el programa "línia 03"

El programa per a la "línia 03" és més complicat perquè no només estableix el mètode de control "Proporcional", sinó que també conté tot el programari per fer controls Proporcional-Integral, Proporcional-Diferencial i Proporcional-Integral-Diferencial (PID). Quan carregueu el programari, probablement serà massa gran per cabre-hi alhora, però realment té tres parts, tal com es mostra al gràfic adjunt.

A - Les matemàtiques per calcular l'error i el "càlcul" per trobar la integral i la derivada de l'error al llarg del temps.

B - Les matemàtiques per calcular la velocitat del motor esquerre basada en els paràmetres de control PID de Kp, Ki i Kd

C - Les matemàtiques per provar els límits de velocitat del motor i enviar les velocitats del motor correctes als motors esquerre i dret.

Tots tres executen els seus propis bucles infinits (després de la inicialització) i podeu navegar usant la icona "mà", però torneu a la icona de "fletxa" per examinar el contingut de la caixa i canviar la configuració.

Pas 11: Edició del programa de línia 03 (control proporcional)

Edició del programa de línia 03 (control proporcional)
Edició del programa de línia 03 (control proporcional)

A la secció central (secció B de la descripció anterior) notareu que al programa “línia 03”, els paràmetres de Ki i Kd són 0.

Deixem-los així. Només canviarem el valor de Kp, la part proporcional del controlador.

Kp decideix amb quina velocitat el robot canvia de velocitat a mesura que s’allunya de la línia. Si Kp és massa gran, el moviment serà extremadament sacsejat (similar al controlador On-Off). Si Kp és massa petit, el robot farà correccions massa lentament i s’allunyarà molt de la línia, especialment a les corbes. Fins i tot pot arribar a la deriva fins a perdre la línia del tot.

13 Quin set-point utilitza el programa "línia 03"? (restat després de llegir la configuració de la llum al bucle A) _

14 Quin és el valor de Kp al programa “línia 03” actual? _

Proves temporals per al controlador proporcional (programa “3 línies”)

Utilitzarà la configuració original del programa "línia 03" desada a la memòria del robot per fer una prova de temps i també utilitzarà altres dues modificacions al programa "línia 03" per a un total de tres mesures de prova de temps. Les modificacions que heu de fer inclouen

DRIFTY: trobar un valor de Kp que faci que el robot vagi molt lentament i possiblement perdi de vista la línia (però espero que no). Proveu un valor diferent de Kp entre 0,5 i 2,5 (o un altre valor) fins que obtingueu un lloc on el robot deriva, però es manté a la línia.

JERKY: trobar un valor de Kp que faci que el robot vagi endavant i endarrere, molt similar al tipus de moviment On-Off. Proveu un valor de Kp entre 1,5 i 3,5 (o un altre valor) fins a obtenir-ne un on el robot comenci a exhibir el moviment d’anada i tornada, però no de manera dramàtica. Això també es coneix com el valor "crític" de Kp.

Les proves temporals per a un gir complet en sentit horari al voltant de la pista només són necessàries amb els valors originals de "3 línies" i els dos nous conjunts de valors (DRIFTY i JERKY) que es descobreixen fent que el robot segueixi només una petita longitud de pista. No oblideu descarregar canvis al vostre robot cada vegada.

15 Registreu els valors de control proporcional i les proves temporals del programa "3 línies" (recordeu-vos de descarregar els canvis al robot!) Per a cadascun d'aquests tres valors de Kp (el valor de línia 03 original i dos valors que determineu per prova i error) ser DRIFTY i JERKY).

Pas 12: Controladors PID avançats

Controladors PID avançats
Controladors PID avançats
Controladors PID avançats
Controladors PID avançats

Abans de començar aquest pas, assegureu-vos de completar els passos previs, registrant tota la informació sol·licitada, amb el robot concret que vulgueu utilitzar per a aquest laboratori. Cada robot és lleugerament diferent, pel que fa als aspectes mecànics, motors, i sobretot els resultats dels sensors de llum a la pista.

Nombres que necessiteu dels experiments anteriors

16 Lectura màxima del sensor de llum (a partir del pas 2) _

17 Lectura mínima del sensor de llum (del pas 5) _

18 Bona configuració del set-point (mitjana de l'anterior) _

19 Configuració DRIFTY per a Kp (a partir del pas 15) _

Configuració de 20 JERKY (crítica) per a Kp (a partir del pas 15) _

Comprensió del controlador PID

És possible que hàgiu après sobre el controlador de diferencial integral proporcional (PID) com a part d’un curs de controls industrials i que tingueu una bona visió ràpida en línia a Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

En el cas d’aquest experiment, el valor mesurat és la quantitat de llum reflectida des del terra. El punt de consigna és la quantitat de llum desitjada quan el robot es troba directament per sobre de la vora de la cinta negra. L'error és la diferència entre la lectura de llum actual i el punt de consigna.

Amb el controlador proporcional, la velocitat del motor esquerre era proporcional a l’error. Concretament:

Error = Lectura lleugera: punt de consigna

En aquest gràfic, el valor establert es va establir a 50.

Més tard, per trobar la velocitat del motor esquerre, multiplicem l'error per la constant de proporció "Kp" específicament:

Motor L = (error Kp *) + 35

En aquest gràfic, Kp s'estableix a 1,5 i l'addició dels 35 es produeix en una altra part del programa. S’afegeix el valor de 35 per convertir un nombre que oscil·la entre -40 i +40, per convertir-lo en un número entre 10 i 60 (velocitats de motor raonables).

La integral és una mena de memòria del passat. Si l’error ha estat dolent durant més temps, el robot hauria d’accelerar cap al punt de consigna. Ki s’utilitza per multiplicar-se per la integral (la integral és la suma d’errors en funcionament; en aquest cas, es redueix en 1,5 cada iteració, de manera que el robot tindrà una “memòria d’esvaïment” d’errors passats).

El derivat és una mena de predicció futura. Predicem un error futur comparant l'últim error amb l'error actual i assumim que la taxa de canvi d'error serà una mica lineal. Com més gran sigui el predicció de l'error futur, més ràpid haurem de passar al punt de consigna. Kd s’utilitza per multiplicar-se per la derivada (la derivada és la diferència entre l’error actual i l’error anterior).

Motor L = (Kp * Error) + (Ki * Integral) + (Kd * Derivada) + 35

Pas 13: trobar els millors paràmetres PID

Trobar els millors paràmetres PID
Trobar els millors paràmetres PID
Trobar els millors paràmetres PID
Trobar els millors paràmetres PID
Trobar els millors paràmetres PID
Trobar els millors paràmetres PID

Hi ha una sèrie de maneres que es poden utilitzar per trobar els paràmetres PID, però la nostra situació té aspectes únics que ens permeten utilitzar una forma experimental més “manual” de trobar els paràmetres. Els aspectes únics que tenim són:

  • Els experimentadors (vosaltres) tenen una bona comprensió de la manera com funciona la màquina
  • No hi ha perill de lesions personals si el controlador es torna boig, i tampoc no hi ha perill de danyar el robot a causa de la mala configuració del controlador
  • El sensor de llum és un dispositiu de detecció tan descuidat i només hi ha un sensor de llum, de manera que només podem esperar obtenir un resultat final marginalment bo. Per tant, un "millor esforç" està bé per als nostres experiments

En primer lloc, ja hem utilitzat la "línia 03" per decidir el millor Kp (el valor de configuració GOOD i JERKY Kp valoren els passos 18 i 20 anteriors). Consulteu el primer gràfic per obtenir instruccions sobre com hem trobat el valor JERKY per a Kp.

Utilitzeu el programari "línia 04" per determinar Ki. Primer modificarem "4 línies" per tenir els valors que vam registrar als ítems 18 i 20 anteriors. A continuació, augmentarem lentament Ki fins obtenir un valor que realment ens mogui al punt de consigna molt ràpidament. Vegeu el segon gràfic per obtenir instruccions sobre com seleccionar el valor per Ki.

21 Valor MÉS RÀPID del Ki que es fixa en el punt de consigna el més ràpid (fins i tot amb alguna superació) _

Utilitzeu el programari "línia 05" per determinar Kd. Primer modifiqueu “5 línies” amb els valors dels passos 18, 20 i 21 i, a continuació, augmenteu Kd fins que obtingueu el robot de treball final que assoleixi el punt de consigna ràpidament i amb molt poca superació, si escau. El tercer gràfic mostra instruccions sobre com seleccionar Kd.

22 Valor òptim de Kd _

23 QUANT TARDEN ELS VOSTRES ROBOTS EN CIRCULAR LA PISTA ARA ??? _

Pas 14: Conclusió

L'experiment de laboratori va anar molt bé. Amb uns 20 estudiants, que utilitzaven la configuració de 10 (deu) estacions de treball + robot que es mostren al primer gràfic, mai no hi va haver cap logjam de recursos. Com a màxim, tres robots donaven voltes a la pista per les proves contrarellotge.

Recomano separar la part de control PID (com a mínim, els programes "línia 04" i "línia 05") a un dia diferent, a causa dels conceptes implicats.

Aquí teniu una seqüència de vídeos que mostren la progressió dels controls (des de "línia 01" fins a "línia 05") amb valors que he seleccionat, però tots els estudiants van obtenir valors lleugerament diferents, cosa que és d'esperar.

RECORDA: Un dels principals motius pels quals els equips de robots molt ben preparats funcionen malament en els esdeveniments de competició és el fet que no realitzen el calibratge a la ubicació exacta on tindrà lloc l’esdeveniment. La il·luminació i els canvis lleugers de posició dels sensors a causa de les molèsties poden afectar molt els valors dels paràmetres.

  • Línia 01 (On-Off) Control PID amb robots Lego -
  • Línia 02 (On-Off amb Dead-Zone) Control PID amb robots Lego -
  • Línia 03 (proporcional) Control PID amb robots Lego -
  • Línia 04 (proporcional-integral) Control PID amb robots Lego -
  • 05 línia (Proporcional-Integral-Derivada) Control PID amb robots Lego -

Recomanat: