Indholdsfortegnelse:

Undervisning i PID -kontrol med legobotter: 14 trin
Undervisning i PID -kontrol med legobotter: 14 trin

Video: Undervisning i PID -kontrol med legobotter: 14 trin

Video: Undervisning i PID -kontrol med legobotter: 14 trin
Video: Фен профессиональный! Как держать фен! Как выбрать фен для волос! 2024, Juli
Anonim
Undervisning i PID -kontrol med legobotter
Undervisning i PID -kontrol med legobotter

Mange unge robotentusiaster er interesserede i mere avancerede kontrolemner, men kan blive dæmpet af den beregning, der ofte kræves for at analysere lukkede kredsløbssystemer. Der er vidunderlige ressourcer tilgængelige online, som forenkler konstruktionen af en "Proportional Integral Differential Controller" (PID Controller), og en fantastisk beskrivelse er her:

Ikke desto mindre kan disse være svære at følge og er muligvis ikke egnede til et klasseværelse med omkring 20 elever.

Denne trin for trin instruerbare viser, hvordan man med succes kan undervise et værelse fyldt med elever ved hjælp af Lego -robotsystemet, et antal robotter (5 til 10 af dem), et lige antal computerarbejdsstationer, der kører NXT 2.0, og et spor på syv fod med sort elektrisk tape på gulvet.

SIDE: Tak til J. Sluka, der skrev ovenstående link, Dr. Bruce Linnell, der lavede nogle tidlige Lego -laboratorier på ECPI -universitetsniveau, og Dr. Capstone kurser.

Trin 1: Laboratorieforberedelse, inden eleverne ankommer

Laboratorieforberedelse, inden eleverne ankommer
Laboratorieforberedelse, inden eleverne ankommer

Fortæl eleverne om dit hårde arbejde;-)

Instruktører og undervisningsassistenter har haft MEGET travlt med at gøre klar til, at du kan lave dette laboratorium! Robotten er blevet ladet og samlet til dette laboratorium. Hvis montering er nødvendig, kan det tage op til 90 minutters tid for en eller flere robotter. Endnu mere tid er nødvendig for at oplade batterierne eller forsyne dem med opladnings-/afladningscyklusser. For detaljerede instruktioner om, hvordan vi bygger den robot, vi skal bruge i dag, se NXT 2.0 eller 2.1 Educational kit, “følg en linje” robotbygningsguide. Vi vil dog bruge mere kompleks programmering … Sort elektrisk tape på lyse linoleum gør et godt spor. Denne er 3 'x 7' med halvcirkelformede kurver.

Trin 2: Gør dig fortrolig med robotten

Gør dig bekendt med robotten
Gør dig bekendt med robotten

Først vil du gøre dig bekendt med robotmenuen samt nogle af delene af denne særlige robot. Du vil også lære om sensorteknologi i industriel stil, der bruges af robotten, herunder lysdioder, lyssensorer, steppermotorer og rotationspositionssensorer. Sørg for at udfylde alle de anmodede oplysninger (normalt understregede emner _).

1. Afbryd robotten fra opladeren og/eller USB -porten på din pc. Brug den orange knap til at tænde robotten. Den orange, venstre og højre knap og den "tilbage" grå rektangelknap giver mulighed for menunavigering. Naviger til menuen "Softwarefiler", og rul gennem de tilgængelige softwarefiler på robotten. Angiv navnene på hver softwarefil, præcis hvordan den staves, herunder store bogstaver og mellemrum:

_

Trin 3: Kalibrer lyssensoren

Kalibrer lyssensoren
Kalibrer lyssensoren

2 Undersøg lyssensoren og kalibreringsoplysningerne. Gå tilbage til hovedmenuen, og vælg "Vis". Vælg indstillingen "Reflekteret lys" og porten (den skal være "Port 3"), som får lyset til at tænde og et nummer vises på skærmen. Sørg for, at alt fungerer, og registrer nogle kalibreringsoplysninger.

en. Maksimal læsning ved hjælp af et hvidt ark papir: Antal: _ Beskriv den omtrentlige afstand til papiret: _

b. Maksimal aflæsning på det lyse linoleumsgulv: _

c. Minimum aflæsning ved pegning på midten af det sorte elektriske bånd: _

Trin 4: Test motorkalibrering

Test motorens kalibrering
Test motorens kalibrering

3 Undersøg hjulmotorerne (venstre og højre) samt kalibreringsinformation. Tilbage til hovedmenuen og vælg "Motorrotationer" Vælg porten (den skal enten være "Port B" eller "Port C" for de to motorer). Se om du kan kontrollere kalibreringen af denne aflæsning ved at dreje hver motor et fast antal rotationer, mens du ser aflæsningen. Du foretager den samme kalibreringstest for begge motorer ved hjælp af kalibreringsskærmen "Vis" à "Motorgrader".

Motor på Port B

  • Antal gange du roterede hjulet _
  • "Motor Rotations" visningsværdi_
  • Afstand i grader hjul blev drejet_
  • "Motorgrader" visningsværdi_

Motor på Port C

  • Antal gange du roterede hjulet _
  • "Motorrotationer" visningsværdi_
  • Afstand i grader hjul blev drejet_
  • "Motorgrader" visningsværdi_

Var visningsværdierne i overensstemmelse med dine forventninger? Forklar venligst. _

Trin 5: Kør den medfølgende tænd / sluk-controller

Kør den medfølgende tænd / sluk-controller
Kør den medfølgende tænd / sluk-controller

En "On-Off" (undertiden kaldet "Bang-Bang") controller har kun to muligheder, til og fra. Det ligner termostatstyringen i dit hjem. Når den er indstillet til en valgt temperatur, vil termostaten opvarme huset, hvis det er for koldt, og afkøle huset, hvis det er for varmt. Den valgte temperatur kaldes "Set Point" og forskellen mellem den aktuelle hustemperatur og setpunktet kaldes "fejlen". Så du kan sige, at hvis fejlen er positiv, skal du tænde for vekselstrømmen, ellers tænde for varmen.

I vores tilfælde vil robotten dreje til venstre eller højre, afhængigt af om lyssensorens sætpunkt har en positiv eller negativ fejl (for meget på det hvide gulv eller for meget på det sorte tape).

Du vil bemærke, at din robot muligvis allerede er indlæst med et antal programmer (eller du kan bruge den vedhæftede "01 line.rbt" -fil indlejret her) gemt på den med navne som "1 linje" og "2 linje" og der også kan være et ekstra bogstav efter programmets nummer, f.eks. "3b -linje". Du bliver nødt til at udføre programmet med nummeret “1” i sit navn og derefter placere robotten på båndsporet med senoren på den sorte linje. Prøv at holde dig væk fra andre robotter, der allerede er på banen, så du kan placere din robot uden afbrydelse af at støde ind i andre robotter.

4 Mål følgende tidsforsøg:

en. Tid til at fuldføre den ene lige side af sporet: _

b. Beskriv lige spor robot bevægelse: _

c. Tid til at fuldføre en kurve af sporet: _

d. Beskriv krummet sporrobotbevægelse: _

e. Tid til at gå helt rundt på banen en gang: _

Trin 6: Åbn On-Off Controller-softwaren "01 Line"

Åbn
Åbn
Åbn
Åbn
Åbn
Åbn

Du åbner softwaren "LEGO MINDSTORMS NXT 2.0" (ikke Edu 2.1 -softwaren), og du indlæser det relevante program kaldet "01 line.rbt" og undersøger og ændrer softwaren ved at følge instruktionerne herunder:

Åbn softwaren "LEGO MINDSTORMS NXT 2.0" (ikke Edu 2.1 -softwaren). Din instruktør fortæller dig, hvor filerne er gemt på din computer, og fra dette sted åbner du programmet "1 linje". Vælg blot "File" og derefter "Open" og vælg "1 line" -programmet, der skal åbnes.

Når programmet er åbent, kan du bruge "hånd" -ikonet til at flytte hele skærmbilledet af programmet rundt, og du kan bruge "pil" -ikonet til at klikke på individuelle objekter for at se, hvordan de fungerer (og også foretage ændringer).

Trin 7: Forståelse af "01 Line" On-Off Controller Software

Forståelse af
Forståelse af

Programmet "1 linje" anvender en "On-Off" -styringsmetode. I dette tilfælde er valgene enten "Drej til venstre" eller "Drej til højre". Grafikken indeholder en beskrivelse af programelementerne:

Trin 8: Redigering af "01 Line" On-Off Controller Software

Redigering af
Redigering af

Skift set-point og sammenlign resultater.

Du opdagede nogle virkelige værdier af lysmåleren i trin 2 ovenfor. Du registrerede værdier i del b og c, tal for minimums- og maksimumværdier, robotten ville se, når du kører sporet.

5 Beregn en GOD sætværdi (gennemsnittet af min og max): _

6 Vælg en BAD set-pint-værdi (et tal meget tæt på min eller max): _

Skift setpunktet til en af disse værdier ved at bruge pilikonet til at klikke på fejlberegningsboksen og ændre det tal, der trækkes fra (se billedet nedenfor). Tilslut nu robotten til pc'en ved hjælp af USB -ledningen, sørg for at robotten er tændt, og download den nye version af programmet "1 linje" til robotten. Du vil se, hvor lang tid robotten tager at gå rundt om sporet med uret, en gang med det GODE setpunkt og en gang med det DÅRLIGE set-point.

7 Gennemfør tidstest med GOOD og BAD set-point værdier

en. Tid til at gå helt rundt på banen én gang (GODT sætpunkt): _

b. Tid til at gå helt rundt på banen en gang (BAD Set-Point): _

Dine observationer / konklusioner? _

Trin 9: Forstå "02 Line" On-Off med Dead Zone Controller Software

Forståelse af
Forståelse af

Hvis AC og varmen i dit hjem blev ved med at tænde og slukke hele dagen, kan det helt sikkert ødelægge dit HVAC -system (eller i det mindste forkorte dets levetid). De fleste termostater er lavet med en indbygget "dødzone". For eksempel, hvis dit setpunkt er 70 grader Fahrenheit, vil termostaten muligvis ikke tænde for vekselstrømmen, før den nåede 72 grader, og den ville heller ikke tænde for varmen, før temperaturen faldt til 68 grader. Hvis dødzonen bliver for bred, kan huset blive ubehageligt.

I vores tilfælde vil vi bruge 02-linjeprogrammet til at tilføje en dødzone, hvor robotten simpelthen kører lige.

Undersøg nu softwarefilen “02 -linje” som beskrevet i grafikken og som den indeholder i den vedhæftede fil.

Denne softwarefil programmerer robotten til at følge linjen ved hjælp af tænd-sluk-kontrol med et differensialgab. Dette er også kendt som et dødbånd, og det betyder, at robotten vil dreje til venstre eller højre afhængigt af fejlen, men hvis fejlen er lille, går robotten bare lige.

Programmet "02 linje" beregner først ovenstående ved at trække setpunktet fra lysmåling og derefter foretage sammenligningerne som angivet ovenfor. Undersøg programmet på pc'en, og registrer de værdier, du ser.

Hvad er “2 line” -programmernes aktuelle (originale) værdi af setpunktet? _

Hvad er “2 line” -programmernes aktuelle (originale) værdi “Large” Positive Error? _

Hvad er “2 line” -programmernes aktuelle (originale) værdi “Large” Negative Error? _

Hvilket Dead-Band fejlområde vil få robotten til at gå lige? FRA TIL _

Kør tre (3) tidsforsøg med forskellige værdier for den "store" fejl ovenfor. De aktuelle “2 linje” indstillinger samt to andre indstillinger vil du beregne. Du har allerede valgt et GODT sætpunkt for din robot. Nu vælger du to forskellige Dead-Band-intervaller og registrerer den tid, det tager robotten at lave en omgang med uret:

Originale indstillinger for 02 linje _

Dead -Band på +4 til -4 _

Dead -Band på +12 til -12 _

Trin 10: Forståelse af "03 Line" Proportional Controller Software

Forståelse af
Forståelse af

Med proportional kontrol tænder eller slukker vi ikke bare varmen, vi har måske flere indstillinger for, hvor meget ovnen skal skrues op (som flammens størrelse på en komfur). I tilfælde af robotten har vi ikke bare tre motorindstillinger (venstre, højre og lige). I stedet kan vi kontrollere hastigheden på venstre og højre hjul for at få en lang række vendehastigheder. Jo større fejlen er, jo hurtigere vil vi vende tilbage til linjen.

Lad os se på proportional kontrol med programmet "03 linje"

Programmet for "03 linje" er mere kompliceret, fordi det ikke kun opsætter "Proportional" kontrolmetode, men det indeholder også al software til at udføre Proportional-Integral, Proportional-Differential og Proportional-Integral-Differential (PID) kontroller. Når du indlæser softwaren, vil den sandsynligvis være for stor til at passe på skærmen på én gang, men den har virkelig tre dele, som vist i den vedhæftede grafik.

A - Matematikken til at beregne fejlen og "beregningen" for at finde integral og derivat af fejl over tid.

B - Matematikken til beregning af venstre motorhastighed baseret på PID -kontrolindstillinger for Kp, Ki og Kd

C - Matematikken til at teste motorhastighedsgrænser og sende de korrekte motorhastigheder til venstre og højre motor.

Alle tre af disse kører deres egne uendelige sløjfer (efter initialisering), og du kan søge rundt ved hjælp af "hånd" -ikonet, men skifte tilbage til "pil" -ikonet for at undersøge boksens indhold og ændre indstillinger.

Trin 11: Redigering af programmet 03 Line (Proportional Control)

Redigering af 03 Line (Proportional Control) -programmet
Redigering af 03 Line (Proportional Control) -programmet

I det midterste afsnit (afsnit B i den forrige beskrivelse) vil du bemærke, at i “03 linje” -programmet er indstillingerne for Ki og Kd begge 0.

Lad os forlade dem på den måde. Vi ændrer kun værdien af Kp, den proportionelle del af controlleren.

Kp bestemmer, hvor problemfrit robotten ændrer hastighed, når den driver væk fra linjen. Hvis Kp er for stor, vil bevægelsen være ekstremt rykende (ligner On-Off-controlleren). Hvis Kp er for lille, vil robotten foretage korrektioner for langsomt og vil drive langt væk fra linjen, især på kurverne. Det kan endda drive så langt, at det helt taber linjen!

13 Hvilket sætpunkt bruger programmet “03 line”? (fratrukket efter indstilling af læselampe i A -loop) _

14 Hvad er værdien af Kp i det aktuelle “03 line” program? _

Time Trials for Proportional Controller (“3 line” program)

Du vil bruge de originale indstillinger for "03 line" -programmet, der er gemt i din robots hukommelse, til at foretage en tidsforsøg, og du vil også bruge to andre ændringer af "03 line" -programmet til i alt tre tidsforsøgsmålinger. De ændringer, du skal foretage, omfatter

DRIFTY - At finde en værdi af Kp, der får robotten til at drive meget langsomt og muligvis miste linjen af syne (men forhåbentlig ikke). Prøv en Kp forskellige værdier mellem 0,5 og 2,5 (eller en anden værdi), indtil du får en, hvor robotten driver, men forbliver på linjen.

JERKY - At finde en værdi af Kp, der får robotten til at rykke frem og tilbage, meget lig den On -Off -bevægelse. Prøv en Kp -værdi et sted mellem 1,5 og 3,5 (eller en anden værdi), indtil du får en, hvor robotten bare begynder at vise frem og tilbage bevægelse, men ikke for dramatisk. Dette er også kendt som den "kritiske" værdi af Kp.

Tidsforsøg for en hel drejning med uret med uret er kun påkrævet med de originale “3 line” -værdier og de to nye sæt værdier (DRIFTY og JERKY), som du opdager ved at få robotten til at følge kun en kort længde af sporet. Glem ikke at downloade ændringer til din robot hver gang!

15 Noter proportionelle kontrolværdier og tidstest for "3 -linjers" program (husk at downloade ændringer til robotten!) For hver af disse tre værdier af Kp (den oprindelige 03 -linieværdi og to værdier, som du bestemmer ved forsøg og fejl at være DRIFTY og JERKY).

Trin 12: Avancerede PID -controllere

Avancerede PID -controllere
Avancerede PID -controllere
Avancerede PID -controllere
Avancerede PID -controllere

Inden du starter dette trin, skal du sørge for at fuldføre de foregående trin og registrere alle de ønskede oplysninger med den særlige robot, du agter at bruge til dette laboratorium. Hver robot er lidt forskellig med hensyn til mekaniske aspekter, motoriske aspekter og især lyssensorresultater på banen.

Tal, du skal bruge fra de tidligere eksperimenter

16 Maksimal lyssensoraflæsning (fra trin 2) _

17 Minimum lyssensoraflæsning (fra trin 5) _

18 GOD indstilling for setpunktet (gennemsnit af ovenstående) _

19 DRIFTY -indstilling for Kp (fra trin 15) _

20 JERKY (kritisk) indstilling for Kp (fra trin 15) _

Forståelse af PID -controlleren

Du har måske lært om Proportional Integral Differential (PID) controller som en del af et Industrial Controls kursus, og et godt hurtigt overblik er online på Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

I tilfælde af dette eksperiment er den målte værdi mængden af lys, der reflekteres fra gulvet. Sætpunktet er den ønskede mængde lys, når robotten er direkte over kanten af det sorte tape. Fejlen er forskellen mellem den aktuelle lysaflæsning og setpunktet.

Med den proportionelle controller var hastigheden på den venstre motor proportional med fejlen. Specifikt:

Fejl = Lysaflæsning-sætpunkt

I denne grafik blev sætpunktet sat til 50.

Senere for at finde hastigheden på den venstre motor multiplicerer vi fejlen med proportionalkonstanten "Kp" specifikt:

L Motor = (Kp * fejl) + 35

Hvor i denne grafik er Kp sat til 1,5, og tilføjelsen af de 35 sker i en anden del af programmet. Værdien på 35 tilføjes for at konvertere tal, der er et sted i området -40 til +40, til at være et tal, der er et sted mellem 10 og 60 (rimelige motorhastigheder).

Integralen er en slags erindring om fortiden. Hvis fejlen har været dårlig i længere tid, skal robotten fremskynde mod setpunktet. Ki bruges til at gange med integralet (integralet er den løbende sum af fejl - i dette tilfælde reduceret med 1,5 hver iteration, så robotten vil have en "falmende hukommelse" af tidligere fejl).

Derivatet er en slags fremtidig forudsigelse. Vi forudsiger en fremtidig fejl ved at sammenligne den sidste fejl med den aktuelle fejl og antager, at fejlændringshastigheden vil være noget lineær. Jo større den fremtidige fejl forudsiges at være, jo hurtigere skal vi flytte til set-point. Kd bruges til at gange med derivatet (derivatet er forskellen mellem den aktuelle fejl og den tidligere fejl).

L Motor = (Kp * Fejl) + (Ki * Integral) + (Kd * Afledt) + 35

Trin 13: Find de bedste PID -parametre

Find de bedste PID -parametre
Find de bedste PID -parametre
Find de bedste PID -parametre
Find de bedste PID -parametre
Find de bedste PID -parametre
Find de bedste PID -parametre

Der er en række måder, der kan bruges til at finde PID -parametrene, men vores situation har unikke aspekter, der giver os mulighed for at bruge en mere "manuel" eksperimentel måde at finde parametrene på. De unikke aspekter, vi har, er:

  • Eksperimenterne (du) har en god forståelse for, hvordan maskinen fungerer
  • Der er ingen fare for personskade, hvis controlleren går amok, og heller ingen fare for at beskadige robotten på grund af dårlige controllerindstillinger
  • Lyssensoren er sådan en sjusket sanseapparat, og der er kun en lyssensor, så vi kan kun håbe på at få et marginalt godt slutresultat. Derfor er en "bedste indsats" fint for vores eksperimenter

For det første brugte vi allerede “03-linje” til at bestemme det bedste Kp (GOOD Set-point og JERKY Kp-værdier trin 18 & 20 ovenfor). Se den første grafik for instruktioner om, hvordan vi fandt JERKY -værdien for Kp.

Brug softwaren “04 line” til at bestemme Ki. Vi vil først ændre "4 linje" for at have de værdier, vi registrerede i punkt 18 og 20 ovenfor. Dernæst vil vi langsomt øge Ki, indtil vi får en værdi, der virkelig flytter os til set-point meget hurtigt. Se den anden grafik for instruktioner om, hvordan du vælger værdien for Ki.

21 HURTIGST Værdi af Ki, der sætter sig hurtigste på sætpunktet (selv med en vis overskridelse) _

Brug softwaren “05 line” til at bestemme Kd. Ændr først "5 linje" med værdier fra trin 18, 20 og 21, og øg derefter Kd, indtil du får den sidste arbejdsrobot, der hurtigt når setpunktet og med meget lidt overskridelse, hvis nogen. Den tredje grafik viser instruktioner om, hvordan man vælger Kd.

22 OPTIMAL værdi af Kd _

23 HVORDAN LÅNGER DU DIN ROBOT TIL AT KRINGE SPORET NU ??? _

Trin 14: Konklusion

Laboratorieforsøget gik meget godt. Med omkring 20 elever, der brugte de 10 (ti) arbejdsstationer + robotopsætninger, der blev vist i den første grafik, var der aldrig et logjam af ressourcer. Højst tre cirkler cirkulerede banen ad gangen til tidskørslerne.

Jeg anbefaler at bryde PID -kontroldelen (som minimum programmerne "04 linje" og "05 linje") til en separat dag på grund af de involverede begreber.

Her er en sekvens af videoer, der viser progressionen af kontrollerne (fra "01 linje" til "05 linje") ved hjælp af værdier, jeg valgte - men hver elev kom med lidt forskellige værdier, hvilket må forventes!

HUSK: En af hovedårsagerne til, at meget velforberedte robothold klarer sig dårligt ved konkurrencebegivenheder, er det faktum, at de ikke udfører kalibrering på det nøjagtige sted, arrangementet finder sted. Belysning og små positionsændringer af sensorerne på grund af stød kan i høj grad påvirke parameterværdierne!

  • 01 line (On -Off) PID Control med Lego Robots -
  • 02 line (On-Off with Dead-Zone) PID Control med Lego Robots-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 line (proportional) PID -kontrol med Lego Robots -
  • 04 line (Proportional -Integral) PID Control med Lego Robots -
  • 05 line (Proportional-Integral-Derivative) PID Control med Lego Robots-https://videos.ecpi.net/Watch/s6LRi5r7

Anbefalede: