INHOUDSOPGAWE:

PID -beheer met legobots onderrig: 14 stappe
PID -beheer met legobots onderrig: 14 stappe

Video: PID -beheer met legobots onderrig: 14 stappe

Video: PID -beheer met legobots onderrig: 14 stappe
Video: Укладка плитки на бетонное крыльцо быстро и качественно! Дешёвая плитка, но КРАСИВО! 2024, Julie
Anonim
Leer PID -beheer met lego -robotte
Leer PID -beheer met lego -robotte

Baie jong robotliefhebbers is geïnteresseerd in meer gevorderde beheeronderwerpe, maar kan gestrem word deur die berekening wat dikwels nodig is om geslote lusstelsels te ontleed. Daar is wonderlike hulpbronne aanlyn beskikbaar wat die konstruksie van 'n "proporsionele integrale differensiële kontroleerder" (PID -beheerder) vergemaklik, en 'n goeie beskrywing is hier:

Dit kan egter moeilik wees om te volg, en is moontlik nie geskik vir 'n klaskamer van ongeveer 20 studente nie.

Hierdie instruksies stap vir stap wys hoe u 'n kamer vol studente suksesvol kan onderrig met behulp van die Lego -robotstelsel, 'n aantal robotte (5 tot 10 daarvan), 'n gelyke aantal rekenaarwerkstasies met NXT 2.0 en 'n baan van sewe voet swart elektriese band op die vloer.

BUITE: Dankie aan J. Sluka, wat die skakel hierbo geskryf het, dr Bruce Linnell, wat 'n paar vroeë Lego -laboratoriums op die ECPI -universiteitsvlak geskep het, en dr. Reza Jafari, wat PID Control -leerdoelwitte voorsien het om idees in die rigting van die EET220 en Capstone kursuswerk.

Stap 1: Laboratoriumvoorbereiding voordat studente arriveer

Laboratoriumvoorbereiding voordat studente opdaag
Laboratoriumvoorbereiding voordat studente opdaag

Laat die studente weet van u harde werk;-)

Instrukteurs en onderwysassistente was baie besig om gereed te maak om hierdie laboratorium te doen! Die robot is vir hierdie laboratorium opgelaai en bymekaargemaak. As dit nodig is, kan dit tot 90 minute tyd neem vir een of meer robotte. Nog meer tyd is nodig om die batterye te laai of dit met laai-/ontlaaisiklusse te kondisioneer. Vir gedetailleerde instruksies oor hoe om die robot te bou wat ons vandag gaan gebruik, sien die NXT 2.0 of 2.1 Educational kit, die "follow a line" robotbougids. Ons sal egter meer ingewikkelde programmering gebruik … Swart elektriese band op ligkleurige linoleum maak 'n uitstekende snit. Hierdie een is 3 'x 7' met halfsirkelvormige kurwes.

Stap 2: Raak vertroud met die robot

Raak vertroud met die robot
Raak vertroud met die robot

Eerstens maak u kennis met die robotkieslys, sowel as sommige dele van hierdie spesifieke robot. U leer ook oor die sensortegnologie in industriële styl wat deur die robot gebruik word, insluitend liguitstralende diodes, ligsensors, stapmotors en rotasie -posisiesensors. Maak seker dat u al die verlangde inligting invul (gewoonlik spasies onderstreep _).

1. Ontkoppel die robot van die laaier en/of die USB -poort van u rekenaar. Gebruik die oranje knoppie om die robot aan te skakel. Die oranje, linker en regter knoppies en die "terug" grys reghoek knoppie laat menu -navigasie toe. Navigeer na die menu "Sagtewarelêers" en blaai deur die beskikbare sagtewarelêers op die robot. Maak 'n lys van die name van elke sagtewarelêer, presies hoe dit gespel word, insluitend hoofletters en spasies:

_

Stap 3: Kalibreer die ligsensor

Kalibreer die ligsensor
Kalibreer die ligsensor

2 Ondersoek die ligsensor en kalibrasie -inligting. Gaan terug na die hoofkieslys en kies 'View'. Kies die opsie "Weerspieël lig" en die poort (dit moet "poort 3" wees), wat veroorsaak dat die lig aanskakel en 'n nommer op die skerm verskyn. Maak seker dat alles werk en teken kalibrasie -inligting op.

a. Maksimum lesing met 'n wit vel papier: Aantal: _ Beskryf die benaderde afstand van die papier: _

b. Maksimum lesing op die ligte linoleumvloer: _

c. Minimum lesing as u na die middel van die swart elektriese band wys: _

Stap 4: Toets motorkalibrasie

Toets motorkalibrasie
Toets motorkalibrasie

3 Ondersoek die wielmotors (links en regs) sowel as kalibrasie -inligting. Gaan terug na die hoofkieslys en kies “Motorrotasies” Kies die poort (dit moet óf “poort B” óf “poort C” vir die twee motors wees). Kyk of u die kalibrasie van hierdie meting kan kontroleer deur elke motor 'n vaste aantal rotasies te draai terwyl u die uitlees kyk. U sal dieselfde kalibrasietoets vir beide motors uitvoer deur die kalibrasieskerm "View" à "Motor Degrees" te gebruik.

Motor op hawe B

  • Aantal kere wat jy aan die wiel gedraai het _
  • "Motorrotasies" vertoonwaarde_
  • Afstand in grade wiel is gedraai_
  • "Motorgrade" vertoonwaarde_

Motor op poort C

  • Aantal kere wat jy aan die wiel gedraai het _
  • "Motorrotasies" vertoonwaarde_
  • Afstand in grade wiel is gedraai_
  • "Motorgrade" vertoonwaarde_

Stem die vertoonwaardes ooreen met u verwagtinge? Verduidelik asseblief. _

Stap 5: Begin die meegeleverde aan-af-beheerder

Begin die meegeleverde aan-af-beheerder
Begin die meegeleverde aan-af-beheerder

'N "Aan-af" (soms "Bang-Bang") beheerder het slegs twee opsies, aan en af. Dit is soortgelyk aan die termostaatbeheer in u huis. As die temperatuur op 'n gekose temperatuur ingestel is, sal die termostaat die huis verhit as dit te koud is, en die huis afkoel as dit te warm is. word die 'fout' genoem. U kan dus sê: as die fout positief is, skakel die wisselstroom aan, anders skakel die hitte aan.

In ons geval sal die robot links of regs draai, afhangende van of die set-punt van die ligsensor 'n positiewe of negatiewe fout het (te veel op die wit vloer of te veel op die swart band).

U sal opmerk dat u robot moontlik reeds met 'n aantal programme gelaai is (of u kan die aangehegte "01 line.rbt" -lêer hier ingebed gebruik) met name soos "1 reël" en "2 reël" en daar is ook kan 'n bykomende letter na die program se nommer wees, soos '3b -reël'. U moet die program uitvoer met die nommer "1" in sy naam en dan die robot op die bandspoor plaas, met die senor op die swart lyn. Probeer om weg te bly van ander robotte wat reeds op die baan is, sodat u u robot kan onderbreek sonder om te onderbreek dat ander robotte raakloop.

4 Meet die volgende tydtoetse:

a. Tyd om een reguit kant van die baan te voltooi: _

b. Beskryf robotbeweging van reguit spore: _

c. Tyd om een kurwe van die baan te voltooi: _

d. Beskryf geboë spoorrobotbeweging: _

e. Tyd om een keer heeltemal op die baan te gaan: _

Stap 6: Maak die '01-lyn' aan-af-beheerprogrammatuur oop

Maak die
Maak die
Maak die
Maak die
Maak die
Maak die

U sal die sagteware "LEGO MINDSTORMS NXT 2.0" oopmaak (nie die Edu 2.1 -sagteware nie) en u laai die toepaslike program genaamd "01 line.rbt" en ondersoek en verander die sagteware volgens die onderstaande instruksies:

Maak die sagteware “LEGO MINDSTORMS NXT 2.0” oop (nie die Edu 2.1 sagteware nie). U instrukteur sal u vertel waar die lêers op u rekenaar gestoor is, en vanaf hierdie plek sal u die "1 reël" -program oopmaak. Kies eenvoudig "File" en dan "Open" en kies die program "1 reël" om oop te maak.

Sodra die program oop is, kan u die "hand" -ikoon gebruik om die hele skermbeeld van die program rond te skuif, en u kan met die "pyltjie" -ikoon op individuele voorwerpe klik om te sien hoe dit werk (en ook veranderings aanbring).

Stap 7: Begrip van die '01-lyn' aan-af-beheerprogrammatuur

Verstaan die
Verstaan die

Die program "1 reël" maak gebruik van 'n "Aan-af" beheermetode. In hierdie geval is die keuses óf “Draai links” óf “Draai regs”. Die grafika bevat 'n beskrywing van die programelemente:

Stap 8: Bewerking van die '01-lyn' aan-af-beheerprogrammatuur

Die redigering van die
Die redigering van die

Verander die set-point en vergelyk resultate.

U het 'n paar werklike waardes van die ligmeter in stap 2 hierbo ontdek. U het waardes aangeteken in dele b en c, getalle vir die minimum en maksimum waardes wat die robot sou sien as u die baan hardloop.

5 Bereken 'n GOEIE stelwaarde (die gemiddelde van die min en maksimum): _

6 Kies 'n BAD set-pint waarde ('n getal baie naby aan die min of die maksimum): _

Verander die set-point na een van hierdie waardes deur met die pyltjie-ikoon op die foutberekskassie te klik en die getal wat afgetrek word, te verander (sien prent hieronder). Koppel die robot nou met die USB -kabel aan die rekenaar, maak seker dat die robot aangeskakel is en laai die nuwe weergawe van die "1 reël" -program af na die robot. U sal sien hoe lank die robot neem om met die kloksgewys om die baan te gaan, een keer met die GOEIE set-punt, en een keer met die BAD set-point.

7 Voltooi tydtoetse met GOED en BAD set-point waardes

a. Tyd om een keer heeltemal op die baan te gaan (goeie instelpunt): _

b. Tyd om een keer heeltemal op die baan te gaan (BAD Set-Point): _

U opmerkings / gevolgtrekkings? _

Stap 9: Begrip van die '02-lyn' aan-af met sagteware vir dooie sones

Verstaan die
Verstaan die

As die AC en die hitte in u huis die hele dag aan- en afskakel, kan dit beslis u HVAC -stelsel vernietig (of ten minste die lewensduur daarvan verkort). Die meeste termostate is gemaak met 'n ingeboude "dooie sone". As u instelpunt byvoorbeeld 70 grade Fahrenheit is, sal die termostaat moontlik nie die wisselstroom aanskakel voordat dit 72 grade bereik het nie, en dit sal ook nie die hitte aanskakel totdat die temperatuur tot 68 grade gedaal het nie. As die dooie gebied te wyd raak, kan die huis ongemaklik raak.

In ons geval gebruik ons die 02-lynprogram om 'n dooie sone by te voeg, waartydens die robot eenvoudig reguit sal ry.

Ondersoek nou die sagteware lêer “02 reël” soos beskryf in die grafiek en soos vervat in die aangehegte lêer.

Hierdie sagtewarelêer programmeer die robot om die lyn te volg met behulp van aan-af-beheer met 'n differensiële gaping. Dit staan ook bekend as 'n dooie band, en dit beteken dat die robot na links of regs sal draai, afhangende van die fout, maar as die fout klein is, gaan die robot net reguit.

Die program "02 -reël" bereken eers die bogenoemde deur die stelpunt van die ligmeting af te trek en dan die vergelykings te maak soos hierbo aangedui. Ondersoek die program op die rekenaar en teken die waardes wat u sien op.

Wat is die huidige (oorspronklike) waarde van die "2 reël" programme van die set-point? _

Wat is die huidige (oorspronklike) waarde van die "2 reël" programme "Groot" positiewe fout? _

Wat is die huidige "oorspronklike" waarde van die "2 reël" programme "Groot" negatiewe fout? _

Watter Dead-Band-foutreeks sal veroorsaak dat die robot reguit gaan? VAN NA _

Voer drie (3) tydtoetse met verskillende waardes uit vir die 'Groot' fout hierbo. Die huidige "2 reël" -instellings sowel as twee ander instellings wat u sal bereken. U het reeds 'n GOEIE set-point vir u robot gekies. Nou sal u twee verskillende Dead-Band-reekse kies en die tyd wat dit neem om die robot te neem, opneem:

Oorspronklike instellings vir 02 -reël _

Dead -Band van +4 tot -4 _

Dead -Band van +12 tot -12 _

Stap 10: Begrip van die '03 Line' proporsionele beheersagteware

Verstaan die
Verstaan die

Met proporsionele beheer skakel ons nie net die hitte aan of uit nie; ons het moontlik verskillende instellings vir hoeveel u die oond moet aanskakel (soos die grootte van die vlamme op 'n stoofplaat). In die geval van die robot het ons nie net drie motorinstellings nie (links, regs en reguit). In plaas daarvan kan ons die spoed van die linker- en regterwiele beheer om 'n wye verskeidenheid draaisnelhede te kry. Hoe groter die fout, hoe vinniger wil ons terugkeer na die lyn.

Kom ons kyk na proporsionele beheer met die program “03 line”

Die program vir '03-lyn' is meer ingewikkeld omdat dit nie net die 'proporsionele' beheermetode opstel nie, maar bevat ook al die sagteware om proporsioneel-integraal, proporsioneel-differensiaal en proporsioneel-integraal-differensiaal (PID) te beheer. As u die sagteware laai, is dit waarskynlik te groot om tegelyk op die skerm te kan pas, maar dit bevat regtig drie dele, soos in die aangehegte grafiek getoon.

A - Die wiskunde om die fout te bereken en die "berekening" om die integraal en afgeleide van fout oor tyd te vind.

B - Die wiskunde om die linker motorsnelheid te bereken op grond van PID -beheerinstellings van Kp, Ki en Kd

C - Die wiskunde om die motorsnelheidsgrense te toets en die korrekte motorsnelhede na die linker- en regtermotors te stuur.

Al drie het hul eie oneindige lusse (na inisialisering) en u kan met die "hand" -ikoon rondblaai, maar teruggaan na die "pyl" -ikoon om die inhoud van die boks te ondersoek en die instellings te verander.

Stap 11: Bewerking van die 03 -lynprogram (proporsionele beheer)

Redigering van die 03 -lynprogram (proporsionele beheer)
Redigering van die 03 -lynprogram (proporsionele beheer)

In die middelste gedeelte (afdeling B in die vorige beskrywing) sal u agterkom dat die instellings van Ki en Kd albei in die '03 -reël' -program is.

Laat ons hulle so los. Ons sal slegs die waarde van Kp, die proporsionele deel van die beheerder, verander.

Kp besluit hoe glad die robot die spoed verander terwyl hy van die lyn af wegdryf. As Kp te groot is, sal die beweging uiters rukkerig wees (soortgelyk aan die aan-af-beheerder). As Kp te klein is, sal die robot te stadig regstellings aanbring en ver weg van die lyn dryf, veral op die krommes. Dit kan selfs so ver dryf dat dit die lyn heeltemal verloor!

13 Watter stel-punt gebruik die program “03-lyn”? (afgetrek na die lees van lig in die A -lus) _

14 Wat is die waarde van Kp in die huidige '03 -lyn' -program? _

Tydtoetse vir proporsionele beheerder ('3 -lyn' -program)

U gebruik die oorspronklike instellings vir die "03 -lyn" -program wat in u robot se geheue gestoor is om 'n tydtoets te doen, en u sal ook twee ander wysigings aan die "03 -lyn" -program gebruik vir 'n totaal van drie tydtoetsmetings. Die wysigings wat u moet aanbring, sluit in

DRIFTY - Die vind van 'n waarde van Kp wat die robot baie stadig laat dryf en moontlik die lyn uit die oog verloor (maar hopelik nie). Probeer 'n Kp verskillende waardes tussen 0.5 en 2.5 (of 'n ander waarde) totdat u een kry waar die robot dryf, maar op die spel bly.

JERKY - Die vind van 'n waarde van Kp waarmee die robot heen en weer ruk, baie soortgelyk aan die tipe aan -af beweging. Probeer 'n Kp -waarde iewers tussen 1.5 en 3.5 (of 'n ander waarde) totdat u een kry waar die robot net heen en weer begin beweeg, maar nie te dramaties nie. Dit staan ook bekend as die 'kritieke' waarde van Kp.

Tydtoetse vir 'n hele draai met die kloksgewys om die baan is slegs nodig met die oorspronklike '3 -lyn' -waardes en die twee nuwe stelle waardes (DRIFTY en JERKY) wat u ontdek deur die robot slegs 'n kort spoor te laat volg. Moenie vergeet om elke keer veranderinge aan u robot af te laai nie!

15 Teken die proporsionele beheerwaardes en tydproewe op vir '3 -lyn' -program (onthou om veranderinge na die robot af te laai!) Vir elk van hierdie drie waardes van Kp (die oorspronklike 03 -lynwaarde en twee waardes wat u deur proef en fout bepaal) DRIFTY en JERKY te wees).

Stap 12: Gevorderde PID -beheerders

Gevorderde PID -beheerders
Gevorderde PID -beheerders
Gevorderde PID -beheerders
Gevorderde PID -beheerders

Voordat u met hierdie stap begin, moet u die voorafgaande stappe voltooi deur al die gevraagde inligting op te neem met die spesifieke robot wat u vir hierdie laboratorium wil gebruik. Elke robot is effens anders met betrekking tot meganiese aspekte, motoriese aspekte en veral die resultate van die ligsensor op die baan.

Nommers wat u benodig uit die vorige eksperimente

16 Maksimum ligsensorlesing (vanaf stap 2) _

17 Minimum ligsensorlesing (vanaf stap 5) _

18 GOEIE instelling vir die set-point (gemiddelde van bogenoemde) _

19 DRIFTY -instelling vir Kp (vanaf stap 15) _

20 JERKY (kritieke) instelling vir Kp (vanaf stap 15) _

Verstaan die PID -beheerder

U het moontlik geleer oor die proporsionele integrale differensiaalbeheerder (PID) as deel van 'n Industrial Controls -kursus, en 'n goeie oorsig is aanlyn op Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

In die geval van hierdie eksperiment is die gemete waarde die hoeveelheid lig wat van die vloer gereflekteer word. Die ingestelde punt is die gewenste hoeveelheid lig wanneer die robot reg bo die rand van die swart band is. Die fout is die verskil tussen die huidige liglesing en die set-point.

Met die proporsionele kontroleerder was die snelheid van die linkermotor eweredig aan die fout. Spesifiek:

Fout = ligte lees-instelpunt

In hierdie grafiek is die stelwaarde op 50 gestel.

Om die snelheid van die linkermotor later te bepaal, vermenigvuldig ons die fout met die proporsionele konstante "Kp" spesifiek:

L Motor = (Kp * Fout) + 35

Waar in hierdie grafiek, is Kp ingestel op 1.5, en die byvoeging van die 35 vind plaas in 'n ander deel van die program. Die waarde van 35 word bygevoeg om die getal wat êrens tussen -40 en +40 is, om te skakel na 'n getal wat tussen 10 en 60 is (redelike motorsnelhede).

Die integrale is 'n soort herinnering aan die verlede. As die fout vir 'n langer tyd lank erg was, moet die robot in die rigting van die ingestelde punt versnel. Ki word gebruik om met die integraal te vermenigvuldig (die integraal is die lopende som van foute - in hierdie geval verminder dit met 1,5 elke iterasie, sodat die robot 'n "vervaagde geheue" van foute uit die verlede sal hê).

Die afgeleide is 'n soort toekomstige voorspelling. Ons voorspel 'n toekomstige fout deur die laaste fout met die huidige fout te vergelyk en neem aan dat die tempo van foutverandering ietwat lineêr sal wees. Hoe groter die toekomstige fout word verwag, hoe vinniger moet ons na die ingestelde punt beweeg. Kd word gebruik om te vermenigvuldig met die afgeleide (die afgeleide is die verskil tussen die huidige fout en die vorige fout).

L Motor = (Kp * Fout) + (Ki * Integral) + (Kd * Afgeleide) + 35

Stap 13: Vind die beste PID -parameters

Vind die beste PID -parameters
Vind die beste PID -parameters
Vind die beste PID -parameters
Vind die beste PID -parameters
Vind die beste PID -parameters
Vind die beste PID -parameters

Daar is 'n aantal maniere waarop u die PID -parameters kan vind, maar ons situasie het unieke aspekte waarmee ons 'n meer 'handmatige' eksperimentele manier om die parameters te vind, kan gebruik. Die unieke aspekte wat ons het, is:

  • Die eksperimenteerders (u) het 'n goeie begrip van die manier waarop die masjien werk
  • Daar is geen gevaar vir persoonlike besering as die bestuurder gek word nie, en ook geen gevaar om die robot te beskadig nie weens die slegte beheerderinstellings
  • Die ligsensor is so 'n slordige sensortoestel, en daar is net een ligsensor, so ons kan net hoop om 'n effens goeie eindresultaat te kry. Daarom is 'n 'beste poging' goed vir ons eksperimente

Eerstens het ons reeds '03-lyn' gebruik om te besluit oor die beste Kp (die GOEIE set-punt en JERKY Kp-waardes stap 18 en 20 hierbo). Sien die eerste grafika vir instruksies oor hoe ons die JERKY -waarde vir Kp gevind het.

Gebruik die sagteware “04 line” om Ki te bepaal. Ons sal eers '4 reël' verander om die waardes te hê wat ons in items 18 en 20 hierbo aangeteken het. Vervolgens verhoog ons Ki stadig totdat ons 'n waarde kry wat ons baie vinnig na die set-point bring. Sien die tweede grafiek vir instruksies oor hoe om die waarde vir Ki te kies.

21 VINNIGSTE waarde van Ki wat die vinnigste op die stelpunt kom (selfs met 'n bietjie oorskryding) _

Gebruik die sagteware “05 line” om Kd te bepaal. Pas eers die "5 reël" aan met die waardes uit die stappe 18, 20 en 21, en verhoog dan Kd totdat u die finale werkende robot kry wat vinnig die ingestelde punt bereik en met baie min oorskryding indien enige. Die derde grafika toon instruksies oor hoe om Kd te kies.

22 OPTIMALE waarde van Kd _

23 HOE KAN JOU ROBOT NOU LANG OM DIE SPORING OM TE KRING ??? _

Stap 14: Gevolgtrekking

Die laboratoriumeksperiment het baie goed afgeloop. Met ongeveer 20 studente wat die 10 (tien) werkstasie + robotopstellings in die eerste grafiek gebruik, was daar nooit 'n klomp hulpbronne nie. Hoogstens het drie robotte op 'n slag die baan om die tydtoetse gehardloop.

Ek beveel aan dat u die PID -beheergedeelte (ten minste programme "04 -lyn" en "05 -lyn") na 'n aparte dag uitbreek as gevolg van die betrokke konsepte.

Hier is 'n reeks video's wat die vordering van kontroles wys (van "01 reël" na "05 reël") met behulp van waardes wat ek gekies het - maar elke student het effens verskillende waardes gekry, wat te wagte is!

ONTHOU: Een van die belangrikste redes waarom baie goed voorbereide robotspanne swak vaar by kompetisiebyeenkomste, is die feit dat hulle nie kalibrasie uitvoer op die presiese plek waar die byeenkoms sal plaasvind nie. Beligting en geringe posisieveranderinge van die sensors as gevolg van stoot kan die parameterwaardes grootliks beïnvloed!

  • 01 -lyn (aan -af) PID -beheer met Lego Robots -
  • 02-lyn (aan-af met dooie sone) PID-beheer met Lego Robots-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 -lyn (proporsioneel) PID -beheer met Lego Robots -
  • 04 -lyn (proporsioneel -integraal) PID -beheer met Lego Robots -
  • 05-lyn (proporsioneel-integraal-afgeleide) PID-beheer met Lego Robots-https://videos.ecpi.net/Watch/s6LRi5r7

Aanbeveel: