Inhoudsopgave:

PID-regeling aanleren met Lego Robots: 14 stappen
PID-regeling aanleren met Lego Robots: 14 stappen

Video: PID-regeling aanleren met Lego Robots: 14 stappen

Video: PID-regeling aanleren met Lego Robots: 14 stappen
Video: Meten, regelen en besturen, college 1, deel 1 2024, Juli-
Anonim
PID-regeling aanleren met Lego Robots
PID-regeling aanleren met Lego Robots

Veel jonge robotenthousiastelingen zijn geïnteresseerd in meer geavanceerde besturingsthema's, maar worden belemmerd door de calculus die vaak nodig is om gesloten-lussystemen te analyseren. Er zijn prachtige bronnen online beschikbaar die de constructie van een "Proportional Integral Differential Controller" (PID-controller) vereenvoudigen, en een goede beschrijving is hier:

Desalniettemin kunnen deze moeilijk te volgen zijn en mogelijk niet geschikt voor een klaslokaal van ongeveer 20 studenten.

Deze stapsgewijze Instructable laat zien hoe je met succes lesgeeft aan een kamer vol studenten met behulp van het Lego-robotsysteem, een aantal robots (5 tot 10 van hen), een gelijk aantal computerwerkstations met NXT 2.0 en een zeven meter lange baan van zwart elektrische tape op de vloer.

TERUG: Met dank aan J. Sluka, die de bovenstaande link schreef, Dr. Bruce Linnell, die enkele vroege Lego-labs op ECPI University-niveau heeft gemaakt, en Dr. Reza Jafari, die PID Control-leerdoelen heeft gegeven om ideeën voor de EET220 in kaart te brengen en Capstone cursussen.

Stap 1: Laboratoriumvoorbereiding voordat de studenten arriveren

Laboratoriumvoorbereiding voordat de studenten arriveren
Laboratoriumvoorbereiding voordat de studenten arriveren

Laat de studenten weten van je harde werk;-)

Instructeurs en onderwijsassistenten zijn HEEL druk geweest om je klaar te maken om dit lab te doen! De robot is opgeladen en gemonteerd voor dit lab. Als montage nodig is, kan dit tot 90 minuten duren voor een of meer robots. Er is nog meer tijd nodig om de batterijen op te laden of ze te conditioneren met laad-/ontlaadcycli. Voor gedetailleerde instructies over het bouwen van de robot die we vandaag zullen gebruiken, zie de NXT 2.0 of 2.1 Educatieve kit, de “volg een lijn” robot Building Guide. We zullen echter complexere programmering gebruiken … Zwarte elektrische tape op lichtgekleurd linoleum maakt een geweldige track. Deze is 3 'x 7' met halfronde bochten.

Stap 2: Maak uzelf vertrouwd met de robot

Maak uzelf vertrouwd met de robot
Maak uzelf vertrouwd met de robot

Eerst maak je jezelf vertrouwd met het robotmenu en met enkele onderdelen van deze specifieke robot. Je leert ook over de industriële sensortechnologie die door de robot wordt gebruikt, inclusief lichtgevende diodes, lichtsensoren, stappenmotoren en rotatiepositiesensoren. Zorg ervoor dat u alle gevraagde informatie invult (meestal onderstreepte spaties _).

1. Koppel de robot los van de oplader en/of de USB-poort van uw pc. Gebruik de oranje knop om de robot aan te zetten. De oranje, linker- en rechterknoppen en de grijze rechthoekknop "terug" maken menunavigatie mogelijk. Navigeer naar het menu "Softwarebestanden" en blader door de beschikbare softwarebestanden op de robot. Maak een lijst van de namen van elk softwarebestand, precies hoe het is gespeld, inclusief hoofdletters en spaties:

_

Stap 3: Kalibreer de lichtsensor

Kalibreer de lichtsensor
Kalibreer de lichtsensor

2 Onderzoek de lichtsensor en kalibratie-informatie. Ga terug naar het hoofdmenu en selecteer 'Bekijken'. Selecteer de optie "Gereflecteerd licht" en de poort (dit moet "Poort 3" zijn) waardoor het licht aangaat en een nummer op het scherm wordt weergegeven. Zorg ervoor dat alles werkt en noteer wat kalibratie-informatie.

A. Maximale aflezing bij gebruik van een wit vel papier: Aantal:_ Beschrijf de geschatte afstand tot het papier: _

B. Maximale aflezing op de lichtgekleurde linoleumvloer: _

C. Minimale aflezing bij het wijzen naar het midden van de zwarte isolatietape: _

Stap 4: Motorkalibratie testen

Motorkalibratie testen
Motorkalibratie testen

3 Bekijk de wielmotoren (links en rechts) en de kalibratie-informatie. Ga terug naar het hoofdmenu en selecteer "Motorrotaties". Selecteer de poort (dit moet "Poort B" of "Poort C" zijn voor de twee motoren). Kijk of u de kalibratie van deze uitlezing kunt controleren door elke motor een vast aantal omwentelingen te draaien terwijl u de uitlezing bekijkt. U voert dezelfde kalibratietest uit voor beide motoren met behulp van het kalibratiescherm "Bekijken" à "Motorgraden".

Motor op poort B

  • Aantal keren dat je het wiel hebt gedraaid _
  • Weergavewaarde “Motorrotaties”_
  • Afstand in graden wiel is gedraaid_
  • Weergavewaarde “Motorgraden”_

Motor op poort C

  • Aantal keren dat je het wiel hebt gedraaid _
  • Weergavewaarde “Motorrotaties”_
  • Afstand in graden wiel is gedraaid_
  • Weergavewaarde “Motorgraden”_

Kwamen de weergegeven waarden overeen met uw verwachtingen? Leg uit. _

Stap 5: Voer de meegeleverde aan-uit-controller uit

Voer de meegeleverde aan-uit-controller uit
Voer de meegeleverde aan-uit-controller uit

Een "On-Off" (soms "Bang-Bang" genoemd) controller heeft slechts twee opties, aan en uit. Het is vergelijkbaar met de thermostaatbediening in uw huis. Indien ingesteld op een gekozen temperatuur, verwarmt de thermostaat het huis als het te koud is en koelt het huis als het te warm is. De gekozen temperatuur wordt het "Setpoint" genoemd en het verschil tussen de huidige staltemperatuur en het Set-Point wordt de "Fout" genoemd. Dus je zou kunnen zeggen, als de fout positief is, zet dan de AC aan, anders zet je het vuur aan.

In ons geval zal de robot naar links of naar rechts draaien, afhankelijk van of het instelpunt van de lichtsensor een positieve of negatieve fout heeft (te veel op de witte vloer, of te veel op de zwarte tape).

U zult merken dat uw robot al is geladen met een aantal programma's (of u kunt het bijgevoegde "01 line.rbt"-bestand gebruiken dat hier is ingesloten) dat erop is opgeslagen met namen als "1 regel" en "2 regel" en er zijn ook kan een extra letter zijn na het nummer van het programma, zoals "3b-regel". U moet het programma uitvoeren met het cijfer "1" in de naam en vervolgens de robot op het bandspoor plaatsen, met de senor op de zwarte lijn. Probeer uit de buurt te blijven van andere robots die al op de baan zijn, zodat u uw robot kunt timen zonder dat u tegen andere robots botst.

4 Meet de volgende tijdritten:

A. Tijd om een rechte kant van de baan te voltooien: _

B. Beschrijf robotbeweging in rechte baan: _

C. Tijd om een bocht van de baan te voltooien: _

NS. Beschrijf robotbeweging met gebogen baan: _

e. Tijd om een keer helemaal rond de baan te gaan: _

Stap 6: Open de "01 Line" aan-uit-controllersoftware

Open de
Open de
Open de
Open de
Open de
Open de

Je opent de "LEGO MINDSTORMS NXT 2.0"-software (niet de Edu 2.1-software) en je laadt het juiste programma genaamd "01 line.rbt" en onderzoekt en wijzigt de software volgens de onderstaande instructies:

Open de "LEGO MINDSTORMS NXT 2.0"-software (niet de Edu 2.1-software). Je instructeur vertelt je waar de bestanden op je computer zijn opgeslagen en vanaf die locatie open je het programma "1 regel". Selecteer eenvoudig "Bestand" en vervolgens "Openen" en kies het programma "1 regel" om te openen.

Zodra het programma is geopend, kunt u het "hand"-pictogram gebruiken om het volledige schermbeeld van het programma te verplaatsen, en u kunt het "pijl"-pictogram gebruiken om op afzonderlijke objecten te klikken om te zien hoe ze werken (en ook om wijzigingen aan te brengen).

Stap 7: Inzicht in de "01 Line" aan-uit-controllersoftware

Het begrijpen
Het begrijpen

Het programma "1 regel" maakt gebruik van een "Aan-Uit" regelmethode. In dit geval zijn de keuzes "Linksaf" of "Rechtsaf". De afbeelding bevat een beschrijving van de programma-elementen:

Stap 8: Bewerken van de "01 Line" aan-uit-controllersoftware

Bewerken van de
Bewerken van de

Wijzig het instelpunt en vergelijk de resultaten.

In stap 2 hierboven heb je enkele echte waarden van de lichtmeter ontdekt. U noteerde waarden in deel b en c, getallen voor de minimum- en maximumwaarden die de robot zou zien tijdens het rennen van de baan.

5 Bereken een GOEDE instelwaarde (het gemiddelde van de min en max): _

6 Kies een SLECHTE set-pintwaarde (een getal dat heel dicht bij de min of de max ligt): _

Wijzig het instelpunt in een van deze waarden door het pijlpictogram te gebruiken om op het foutberekeningsvak te klikken en het getal te wijzigen dat wordt afgetrokken (zie onderstaande afbeelding). Sluit nu de robot aan op de pc met behulp van de USB-kabel, zorg ervoor dat de robot is ingeschakeld en download de nieuwe versie van het "1-regel"-programma naar de robot. U zult zien hoe lang de robot erover doet om met de klok mee over de baan te gaan, een keer met het GOEDE instelpunt en een keer met het SLECHT ingestelde instelpunt.

7 Voltooi tijdritten met GOEDE en SLECHTE instelwaarden

A. Tijd om een keer helemaal rond de baan te gaan (GOED Set-Point): _

B. Tijd om een keer helemaal rond de baan te gaan (BAD Set-Point): _

Uw observaties/conclusies? _

Stap 9: Inzicht in de "02-lijn" aan-uit met dode zone-controllersoftware

Het begrijpen
Het begrijpen

Als de airconditioning en de verwarming in uw huis de hele dag aan en uit blijven gaan, kan dit uw HVAC-systeem zeker vernietigen (of in ieder geval de levensduur ervan verkorten). De meeste thermostaten zijn gemaakt met een ingebouwde "dode zone". Als uw instelpunt bijvoorbeeld 70 graden Fahrenheit is, schakelt de thermostaat de airconditioning mogelijk pas in als deze 72 graden heeft bereikt, en ook niet totdat de temperatuur is gedaald tot 68 graden. Als de dode zone te breed wordt, kan het huis ongemakkelijk worden.

In ons geval zullen we het 02-lijnprogramma gebruiken om een dode zone toe te voegen, waarbij de robot gewoon rechtdoor rijdt.

Onderzoek nu het softwarebestand “02 line” zoals beschreven in de afbeelding en zoals opgenomen in het bijgevoegde bestand.

Dit softwarebestand programmeert de robot om de lijn te volgen met behulp van aan-uitregeling met differentiële opening. Dit staat ook bekend als een dode band en het betekent dat de robot naar links of rechts zal draaien, afhankelijk van de fout, maar als de fout klein is, zal de robot gewoon rechtdoor gaan.

Het programma “02 lijn” berekent eerst het bovenstaande door het setpoint af te trekken van de Lichtmeting en dan de vergelijkingen te maken zoals hierboven vermeld. Bekijk het programma op de pc en noteer de waarden die u ziet.

Wat is de huidige (oorspronkelijke) waarde van de setpoint-programma's met "2 lijnen"? _

Wat is de "2-regelige" programma's huidige (oorspronkelijke) waarde "Grote" positieve fout? _

Wat is de "2-regelige" programma's huidige (oorspronkelijke) waarde "Grote" negatieve fout? _

Welk Dead-Band-foutbereik zorgt ervoor dat de robot rechtdoor gaat? VAN NAAR _

Voer drie (3) tijdritten uit met verschillende waarden voor de "Grote" fout hierboven. De huidige "2-regelige" instellingen en twee andere instellingen die u gaat berekenen. U hebt al een GOED instelpunt voor uw robot gekozen. Nu kiest u twee verschillende dode-bandbereiken en noteert u de tijd die de robot nodig heeft om één ronde met de klok mee te maken:

Oorspronkelijke instellingen voor 02 lijn _

Dode band van +4 tot -4 _

Dode band van +12 tot -12 _

Stap 10: De proportionele controllersoftware "03 Line" begrijpen

Het begrijpen
Het begrijpen

Met proportionele regeling zetten we niet alleen het vuur aan of uit, we kunnen ook verschillende instellingen hebben voor hoeveel de oven moet worden verhoogd (zoals de grootte van de vlammen op een kookplaat). In het geval van de robot hebben we niet alleen drie motorstanden (links, rechts en recht). In plaats daarvan kunnen we de snelheid van de linker- en rechterwielen regelen om een grote verscheidenheid aan draaisnelheden te krijgen. Hoe groter de fout, hoe sneller we terug willen naar de lijn.

Laten we eens kijken naar proportionele besturing met programma "03 line"

Het programma voor "03 line" is ingewikkelder omdat het niet alleen de "proportionele" regelmethode instelt, maar ook alle software bevat om proportioneel-integraal, proportioneel-differentieel en proportioneel-integraal-differentieel (PID)-regelingen uit te voeren. Wanneer u de software laadt, zal deze waarschijnlijk te groot zijn om in één keer op het scherm te passen, maar in werkelijkheid bestaat het uit drie delen, zoals te zien is in de bijgevoegde afbeelding.

A – De wiskunde om de fout te berekenen en de "calculus" om de integraal en afgeleide van de fout in de loop van de tijd te vinden.

B – De wiskunde om de linkermotorsnelheid te berekenen op basis van de PID-regelinstellingen van Kp, Ki en Kd

C - De wiskunde om motorsnelheidslimieten te testen en de juiste motorsnelheden naar de linker- en rechtermotoren te sturen.

Deze hebben alle drie hun eigen oneindige loops (na initialisatie) en je kunt rondkijken met het "hand"-pictogram, maar terugschakelen naar het "pijl"-pictogram om de inhoud van de doos te bekijken en instellingen te wijzigen.

Stap 11: Het 03-lijnprogramma (proportionele besturing) bewerken

Het 03 Line (Proportional Control) programma bewerken
Het 03 Line (Proportional Control) programma bewerken

In het middelste gedeelte (sectie B in de vorige beschrijving) ziet u dat in het programma “03 line” de instellingen van Ki en Kd beide 0 zijn.

Laten we ze zo laten. We veranderen alleen de waarde van Kp, het proportionele deel van de controller.

Kp bepaalt hoe soepel de robot van snelheid verandert terwijl hij van de lijn afdrijft. Als Kp te groot is, zal de beweging extreem schokkerig zijn (vergelijkbaar met de aan-uit-controller). Als Kp te klein is, zal de robot te langzaam corrigeren en ver van de lijn afdrijven, vooral in de bochten. Het kan zelfs zo ver afdrijven dat het de lijn helemaal kwijtraakt!

13 Welk instelpunt gebruikt het programma “03 line”? (afgetrokken na het lezen van de lichtinstelling in de A-lus)_

14 Wat is de waarde van Kp in het huidige “03 line”-programma? _

Tijdritten voor proportionele controller (programma met 3 regels)

U gebruikt de originele instellingen voor het "03-lijn"-programma dat in het geheugen van uw robot is opgeslagen om een tijdrit uit te voeren, en u zult ook twee andere aanpassingen aan het "03-lijn"-programma gebruiken voor in totaal drie tijdritmetingen. De wijzigingen die u moet aanbrengen, zijn onder meer:

DRIFTY - Het vinden van een waarde van Kp waardoor de robot erg langzaam afdrijft en mogelijk de lijn uit het oog verliest (maar hopelijk niet). Probeer een Kp verschillende waarden tussen 0,5 en 2,5 (of een andere waarde) totdat je er een krijgt waarbij de robot Drift, maar aan de lijn blijft.

JERKY - Het vinden van een waarde van Kp waardoor de robot heen en weer schudt, vergelijkbaar met het aan-uit-type beweging. Probeer een Kp-waarde ergens tussen 1,5 en 3,5 (of een andere waarde) totdat je er een krijgt waarbij de robot net de heen en weer beweging begint te vertonen, maar niet te dramatisch. Dit wordt ook wel de “kritieke” waarde van Kp genoemd.

Tijdproeven voor een volledige bocht met de klok mee rond de baan zijn alleen nodig met de originele "3-lijns" -waarden en de twee nieuwe sets waarden (DRIFTY en JERKY) die je ontdekt door de robot slechts een korte baan te laten volgen. Vergeet niet elke keer wijzigingen naar uw robot te downloaden!

15 Noteer de proportionele controlewaarden en tijdritten voor het "3-lijns"-programma (vergeet niet om wijzigingen naar de robot te downloaden!) voor elk van deze drie waarden van Kp (de oorspronkelijke 03-lijnwaarde en twee waarden die u met vallen en opstaan bepaalt DRIFTY en SCHOKKEND zijn).

Stap 12: Geavanceerde PID-controllers

Geavanceerde PID-regelaars
Geavanceerde PID-regelaars
Geavanceerde PID-regelaars
Geavanceerde PID-regelaars

Voordat u met deze stap begint, moet u ervoor zorgen dat u de voorgaande stappen voltooit, waarbij u alle gevraagde informatie vastlegt, met de specifieke robot die u voor dit laboratorium wilt gebruiken. Elke robot is net iets anders, met betrekking tot mechanische aspecten, motorische aspecten en vooral lichtsensorresultaten op de baan.

Nummers die je nodig hebt van de eerdere experimenten

16 Maximale aflezing lichtsensor (vanaf stap 2) _

17 Minimale aflezing lichtsensor (vanaf stap 5) _

18 GOEDE instelling voor het instelpunt (gemiddelde van het bovenstaande) _

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

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

De PID-controller begrijpen

Mogelijk hebt u de Proportional Integral Differential (PID) -controller leren kennen als onderdeel van een cursus Industrial Controls, en een goed snel overzicht is online op Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

In het geval van dit experiment is de gemeten waarde de hoeveelheid licht die door de vloer wordt gereflecteerd. Het instelpunt is de gewenste hoeveelheid licht wanneer de robot zich direct boven de rand van de zwarte tape bevindt. De fout is het verschil tussen de huidige lichtwaarde en het setpoint.

Met de Proportionele regelaar was het toerental van de linkermotor evenredig met de fout. specifiek:

Fout = Lichtlezing – Instelpunt

In deze grafiek was het instelpunt ingesteld op 50.

Later, om de snelheid van de linkermotor te vinden, vermenigvuldigen we de fout specifiek met de proportionele constante "Kp":

L Motor = (Kp * Fout) + 35

Waar in deze afbeelding Kp is ingesteld op 1,5, en de toevoeging van de 35 gebeurt in een ander deel van het programma. De waarde van 35 wordt opgeteld om een getal dat ergens in het bereik van -40 tot +40 ligt, om te rekenen naar een getal dat ergens tussen 10 en 60 ligt (redelijke motorsnelheden).

De Integraal is een soort herinnering aan het verleden. Als de fout al langere tijd erg is, moet de robot versnellen naar het setpoint. Ki wordt gebruikt om te vermenigvuldigen met de integraal (de integraal is de lopende som van fouten - in dit geval verminderd met 1,5 elke iteratie, zodat de robot een "vervagende herinnering" aan fouten uit het verleden heeft).

De afgeleide is een soort toekomstvoorspelling. We voorspellen een toekomstige fout door de laatste fout te vergelijken met de huidige fout en nemen aan dat de mate van foutverandering enigszins lineair zal zijn. Hoe groter de toekomstige fout wordt voorspeld, hoe sneller we naar het instelpunt moeten gaan. Kd wordt gebruikt om te vermenigvuldigen met de afgeleide (de afgeleide is het verschil tussen de huidige fout en de vorige fout).

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

Stap 13: De beste PID-parameters vinden

De beste PID-parameters vinden
De beste PID-parameters vinden
De beste PID-parameters vinden
De beste PID-parameters vinden
De beste PID-parameters vinden
De beste PID-parameters vinden

Er zijn een aantal manieren die kunnen worden gebruikt om de PID-parameters te vinden, maar onze situatie heeft unieke aspecten die ons in staat stellen om een meer "handmatige" experimentele manier te gebruiken om de parameters te vinden. De unieke aspecten die we hebben zijn:

  • De onderzoekers (jij) hebben een goed begrip van de manier waarop de machine werkt
  • Er is geen gevaar voor persoonlijk letsel als de controller gek wordt, en ook geen gevaar voor beschadiging van de robot vanwege slechte controllerinstellingen
  • De lichtsensor is zo'n slordig meetapparaat en er is maar één lichtsensor, dus we kunnen alleen maar hopen op een marginaal goed eindresultaat. Daarom is een "best effort" prima voor onze experimenten

Ten eerste hebben we al "03 line" gebruikt om te beslissen over een beste Kp (de GOOD Set-point en JERKY Kp-waarden stap 18 & 20 hierboven). Zie de eerste afbeelding voor instructies over hoe we de JERKY-waarde voor Kp hebben gevonden.

Gebruik de software “04 line” om Ki te bepalen. We zullen eerst "4 regel" wijzigen om de waarden te hebben die we hebben vastgelegd in items 18 en 20 hierboven. Vervolgens zullen we Ki langzaam verhogen totdat we een waarde krijgen die ons heel snel naar het instelpunt brengt. Zie de tweede afbeelding voor instructies over het selecteren van de waarde voor Ki.

21 SNELSTE Waarde van Ki die zich het snelst op het setpoint vestigt (zelfs met enige overshoot) _

Gebruik de software “05 line” om Kd te bepalen. Pas eerst "5 regels" aan met waarden uit stappen 18, 20 en 21, verhoog vervolgens Kd totdat u de laatste werkende robot krijgt die het instelpunt snel en met zeer weinig overschrijding bereikt. De derde afbeelding toont instructies voor het selecteren van Kd.

22 OPTIMALE waarde van Kd _

23 HOE LANG DUURT UW ROBOT NU OM HET SPOOR TE CIRKELEN ??? _

Stap 14: Conclusie

Het laboratoriumexperiment is heel goed verlopen. Met ongeveer 20 studenten, die de 10 (tien) werkstation + robotopstellingen gebruikten die in de eerste afbeelding worden getoond, was er nooit een blokkade van middelen. Er cirkelden maximaal drie robots tegelijk over de baan voor de tijdritten.

Ik raad aan om het PID-regelgedeelte (minimaal programma's "04 line" en "05 line") uit te splitsen naar een aparte dag, vanwege de betrokken concepten.

Hier is een reeks video's die de voortgang van de bedieningselementen laat zien (van "01 lijn" naar "05 lijn") met behulp van waarden die ik heb geselecteerd - maar elke student kwam met iets andere waarden, wat te verwachten is!

DENK ERAAN: Een van de belangrijkste redenen waarom zeer goed voorbereide robotteams het slecht doen op wedstrijdevenementen, is het feit dat ze geen kalibratie uitvoeren op de exacte locatie waar het evenement zal plaatsvinden. Verlichting en kleine positieveranderingen van de sensoren door gedrang kunnen de parameterwaarden sterk beïnvloeden!

  • 01 lijn (aan-uit) PID-regeling met Lego Robots -
  • 02 lijn (aan-uit met dode zone) PID-regeling met Lego Robots -
  • 03 lijn (proportionele) PID-regeling met Lego Robots -
  • 04 lijn (proportioneel-integraal) PID-regeling met Lego Robots -
  • 05-lijn (proportioneel-integraal-derivaat) PID-regeling met Lego Robots -

Aanbevolen: