Innholdsfortegnelse:

Undervisning i PID -kontroll med legobotter: 14 trinn
Undervisning i PID -kontroll med legobotter: 14 trinn

Video: Undervisning i PID -kontroll med legobotter: 14 trinn

Video: Undervisning i PID -kontroll med legobotter: 14 trinn
Video: АННА МИХАЙЛОВСКАЯ! АКТРИСА С КУКОЛЬНЫМ ЛИЦОМ! 2024, November
Anonim
Undervisning i PID -kontroll med Lego -roboter
Undervisning i PID -kontroll med Lego -roboter

Mange unge robotentusiaster er interessert i mer avanserte kontrollemner, men kan bli stammet av beregningen som ofte kreves for å analysere lukkede sløyfesystemer. Det er fantastiske ressurser tilgjengelig online som forenkler konstruksjonen av en "Proportional Integral Differential Controller" (PID Controller), og en flott beskrivelse er her:

Likevel kan disse være vanskelige å følge, og er kanskje ikke egnet for et klasserom med rundt 20 studenter.

Denne trinnvise instruksjonen viser hvordan du kan lykkes med å lære et rom fullt av studenter som bruker Lego -robotsystemet, et antall roboter (5 til 10 av dem), like mange datamaskinarbeidsstasjoner som kjører NXT 2.0, og et spor på sju fot med svart elektrisk tape på gulvet.

SIDE: Takk til J. Sluka, som skrev lenken ovenfor, Dr. Bruce Linnell, som opprettet noen tidlige Lego -laboratorier på ECPI -universitetsnivå, og Dr. Reza Jafari, som ga PID Control -læringsmål som kartlegger ideer mot EET220 og Capstone kurs.

Trinn 1: Laboratorieforberedelse før studentene kommer

Laboratorieforberedelse før studentene kommer
Laboratorieforberedelse før studentene kommer

Fortell elevene om innsatsen din;-)

Instruktører og undervisningsassistenter har vært VELDIG opptatt med å gjøre deg klar til å gjøre denne laben! Roboten er ladet og montert for dette laboratoriet. Hvis montering er nødvendig, kan dette ta opptil 90 minutter for en eller flere roboter. Enda mer tid er nødvendig for å lade batteriene eller forsyne dem med lade-/utladningssykluser. For detaljerte instruksjoner om hvordan vi bygger roboten vi skal bruke i dag, se NXT 2.0 eller 2.1 Education Kit, "følg en linje" robotbygningsguide. Vi vil imidlertid bruke mer kompleks programmering … Svart elektrisk tape på lyse linoleum er et flott spor. Denne er 3 'x 7' med halvsirkulære kurver.

Trinn 2: Gjør deg kjent med roboten

Gjør deg kjent med roboten
Gjør deg kjent med roboten

Først blir du kjent med robotmenyen, samt noen av delene av denne roboten. Du vil også lære om sensorteknologi i industriell stil som brukes av roboten, inkludert lysdioder, lyssensorer, trinnmotorer og rotasjonsposisjonssensorer. Sørg for å fylle ut all forespurt informasjon (vanligvis understreket mellomrom _).

1. Koble roboten fra laderen og/eller USB -porten på PCen. Bruk den oransje knappen for å slå på roboten. De oransje, venstre og høyre knappene og den "tilbake" grå rektangelknappen tillater menynavigasjon. Naviger til "Programvarefiler" -menyen, og bla gjennom de tilgjengelige programvarefilene på roboten. Oppgi navnene på hver programvarefil, nøyaktig hvordan den staves, inkludert store bokstaver og mellomrom:

_

Trinn 3: Kalibrer lyssensoren

Kalibrer lyssensoren
Kalibrer lyssensoren

2 Undersøk lyssensoren og kalibreringsinformasjonen. Gå tilbake til hovedmenyen og velg "View". Velg alternativet "Reflektert lys" og porten (det skal være "port 3") som får lyset til å slå seg på og et nummer skal vises på skjermen. Sørg for at alt fungerer, og registrer litt kalibreringsinformasjon.

en. Maksimal avlesning med et hvitt ark: Antall: _ Beskriv omtrentlig avstand fra papiret: _

b. Maksimal avlesning på det lyse linoleumsgulvet: _

c. Minimum avlesning når du peker til midten av det svarte elektriske båndet: _

Trinn 4: Test motorkalibrering

Test motorkalibrering
Test motorkalibrering

3 Undersøk hjulmotorene (venstre og høyre) samt kalibreringsinformasjon. Gå tilbake til hovedmenyen og velg "Motorrotasjoner" Velg porten (den skal enten være "Port B" eller "Port C" for de to motorene). Se om du kan kontrollere kalibreringen av denne avlesningen ved å vri hver motor et fast antall rotasjoner mens du ser avlesningen. Du vil utføre den samme kalibreringstesten for begge motorene ved hjelp av kalibreringsskjermbildet "Vis" à "Motorgrader".

Motor på port B

  • Antall ganger du roterte hjulet _
  • "Motorrotasjoner" visningsverdi_
  • Avstand i grader hjulet ble rotert_
  • "Motorgrader" visningsverdi_

Motor på port C

  • Antall ganger du roterte hjulet _
  • "Motorrotasjoner" visningsverdi_
  • Avstand i grader hjulet ble rotert_
  • "Motorgrader" visningsverdi_

Stemte visningsverdiene med forventningene dine? Vennligst forklar. _

Trinn 5: Kjør den medfølgende på-av-kontrolleren

Kjør den medfølgende av / på-kontrolleren
Kjør den medfølgende av / på-kontrolleren

En "On-Off" (noen ganger kalt "Bang-Bang") kontroller har bare to alternativer, av og på. Det ligner termostatkontrollen i hjemmet ditt. Når den er satt til en valgt temperatur, vil termostaten varme opp huset hvis det er for kaldt, og kjøle huset hvis det er for varmt. Den valgte temperaturen kalles "settpunkt" og forskjellen mellom gjeldende hus temperatur og settpunkt kalles "feil". Så du kan si at hvis feilen er positiv, slå på vekselstrømmen ellers slå på varmen.

I vårt tilfelle vil roboten dreie til venstre eller høyre, avhengig av om settpunktet til lyssensoren har en positiv eller negativ feil (for mye på det hvite gulvet, eller for mye på svart tape).

Du vil legge merke til at roboten din allerede er lastet med en rekke programmer (eller du kan bruke den vedlagte "01 line.rbt" -filen som er innebygd her) lagret på den med navn som "1 linje" og "2 linje" og der også kan være en ekstra bokstav etter nummeret på programmet, for eksempel "3b linje." Du må kjøre programmet med nummeret “1” i navnet og deretter plassere roboten på båndsporet, med senoren på den svarte linjen. Prøv å holde deg borte fra andre roboter som allerede er på banen, slik at du kan sette roboten din uten avbrudd for å støte på andre roboter.

4 Mål følgende tidsprøver:

en. På tide å fullføre den ene rette siden av sporet: _

b. Beskriv rettsporrobotbevegelse: _

c. Tid til å fullføre en kurve av sporet: _

d. Beskriv krumsporet robotbevegelse: _

e. På tide å gå helt rundt sporet en gang: _

Trinn 6: Åpne "01 Line" On-Off Controller Software

Åpne
Åpne
Åpne
Åpne
Åpne
Åpne

Du vil åpne “LEGO MINDSTORMS NXT 2.0” -programvaren (ikke Edu 2.1 -programvaren), og du vil laste inn det aktuelle programmet som heter “01 line.rbt” og undersøke og modifisere programvaren ved å følge instruksjonene nedenfor:

Åpne “LEGO MINDSTORMS NXT 2.0” -programvaren (ikke Edu 2.1 -programvaren). Læreren din vil fortelle deg hvor filene er lagret på datamaskinen din, og fra dette stedet åpner du "1 linje" -programmet. Bare velg "File" og deretter "Open" og velg "1 line" -programmet du vil åpne.

Når programmet er åpent, kan du bruke "hånd" -ikonet til å flytte hele skjermbildet av programmet rundt, og du kan bruke "pil" -ikonet til å klikke på individuelle objekter for å se hvordan de fungerer (og også gjøre endringer).

Trinn 7: Forstå "01 Line" On-Off Controller Software

Forståelse av
Forståelse av

Programmet "1 linje" bruker en "På-Av" -kontrollmetode. I dette tilfellet er valgene enten "Ta til venstre" eller "Ta til høyre". Grafikken inneholder en beskrivelse av programelementene:

Trinn 8: Redigering av "01 Line" On-Off Controller Software

Redigerer
Redigerer

Endre settpunktet og sammenlign resultatene.

Du oppdaget noen virkelige verdier av lysmåleren i trinn 2 ovenfor. Du registrerte verdier i del b og c, tall for minimums- og maksimumsverdier roboten ville se når du kjørte sporet.

5 Beregn en GOD settpunktverdi (gjennomsnittet av min og maks): _

6 Velg en BAD set-pint-verdi (et tall veldig nær min eller maks): _

Endre settpunktet til en av disse verdiene ved å bruke pilikonet til å klikke på feilberegningsboksen og endre tallet som blir trukket fra (se bildet nedenfor). Koble roboten nå til PC -en ved hjelp av USB -kabelen, kontroller at roboten er slått på, og last ned den nye versjonen av "1 linje" -programmet til roboten. Du vil se hvor lang tid roboten tar å gå rundt sporet med klokken, en gang med det GODE settpunktet, og en gang med det DÅRLIGE settpunktet.

7 Fullfør tidsprøver med GODE og DÅRLIGE settpunktverdier

en. Tid til å gå helt rundt sporet en gang (GODT settpunkt): _

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

Dine observasjoner / konklusjoner? _

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

Forståelse av
Forståelse av

Hvis AC og varmen i huset ditt fortsatte å slå seg av og på hele dagen, kan det definitivt ødelegge HVAC -systemet ditt (eller i det minste forkorte levetiden). De fleste termostater er laget med en innebygd "dødsone". For eksempel, hvis settpunktet ditt er 70 grader Fahrenheit, kan det hende at termostaten ikke slår på AC før den nådde 72 grader, og den ville heller ikke slå på varmen før temperaturen gikk ned til 68 grader. Hvis dødsonen blir for bred, kan huset bli ubehagelig.

I vårt tilfelle vil vi bruke 02-linjeprogrammet til å legge til en dødsone, hvor roboten ganske enkelt vil kjøre rett.

Undersøk nå programvarefilen “02 -linje” som beskrevet i grafikken og som finnes i den vedlagte filen.

Denne programvarefilen programmerer roboten til å følge linjen ved å bruke On-Off-kontroll med et differensialgap. Dette er også kjent som et dødbånd, og det betyr at roboten vil svinge til venstre eller høyre avhengig av feilen, men hvis feilen er liten, vil roboten bare gå rett.

Programmet "02 linje" beregner først det ovennevnte ved å trekke settpunktet fra lysmåling, og deretter gjøre sammenligningene som nevnt ovenfor. Undersøk programmet på PC -en og registrer verdiene du ser.

Hva er gjeldende (original) verdi for “2-linjers” programmer for settpunktet? _

Hva er “2 -linjers” programmer nåværende (opprinnelige) verdi “Stor” positiv feil? _

Hva er “2 -linjers” programmer nåværende (opprinnelige) verdi “Stor” negativ feil? _

Hvilket Dead-Band feilområde vil få roboten til å gå rett? FRA TIL _

Kjør tre (3) tidsprøver med forskjellige verdier for den "store" feilen ovenfor. De nåværende “2 linje” -innstillingene samt to andre innstillinger du vil beregne. Du har allerede valgt et GODT settpunkt for roboten din. Nå vil du velge to forskjellige Dead-Band-områder og registrere tiden det tar roboten å ta en runde med klokken:

Originale innstillinger for 02 linje _

Dead -Band på +4 til -4 _

Dead -Band på +12 til -12 _

Trinn 10: Forstå "03 Line" proporsjonal kontrollprogramvare

Forståelse av
Forståelse av

Med proporsjonal kontroll slår vi ikke bare varmen på eller av, vi kan ha flere innstillinger for hvor mye vi skal skru opp ovnen (som størrelsen på flammene på en komfyrtopp). Når det gjelder roboten, har vi ikke bare tre motorinnstillinger (venstre, høyre og rett). I stedet kan vi kontrollere hastigheten på venstre og høyre hjul for å få et bredt utvalg av svinghastigheter. Jo større feil, desto raskere ønsker vi å vende tilbake til linjen.

La oss se på proporsjonal kontroll med programmet "03 linje"

Programmet for “03 line” er mer komplisert fordi det ikke bare setter opp “Proportional” kontrollmetode, men det inneholder også all programvare for å gjøre Proportional-Integral, Proportional-Differential og Proportional-Integral-Differential (PID) kontroller. Når du laster ned programvaren, vil den sannsynligvis være for stor til å passe på skjermen samtidig, men den har virkelig tre deler, som vist i vedlagte grafikk.

A - Matematikken for å beregne feilen og "beregningen" for å finne integralen og derivatet av feil over tid.

B - Matematikken for å beregne venstre motorhastighet basert på PID -kontrollinnstillingene for Kp, Ki og Kd

C - Matematikken for å teste motorhastighetsgrenser, og sende riktige motorhastigheter til venstre og høyre motor.

Alle tre av disse kjører sine egne uendelige sløyfer (etter initialisering), og du kan bla deg rundt ved å bruke "hånd" -ikonet, men bytte tilbake til "pil" -ikonet for å undersøke boksens innhold og endre innstillinger.

Trinn 11: Redigering av 03 -linjeprogrammet (proporsjonal kontroll)

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

I den midterste delen (seksjon B i forrige beskrivelse) vil du legge merke til at i “03 linje” -programmet er innstillingene til Ki og Kd begge 0.

La oss la dem være slik. Vi vil bare endre verdien av Kp, den proporsjonale delen av kontrolleren.

Kp bestemmer hvor jevnt roboten endrer hastighet når den driver bort fra linjen. Hvis Kp er for stor, vil bevegelsen være ekstremt rykkete (ligner på-av-kontrolleren). Hvis Kp er for liten, vil roboten gjøre korreksjoner for sakte, og vil drive langt unna linjen, spesielt på kurvene. Det kan til og med drive så langt som å miste linjen helt!

13 Hvilket settpunkt bruker programmet “03 line”? (trekkes fra etter å ha lest lysinnstillingen i A -løkken) _

14 Hva er verdien av Kp i det nåværende “03 line” -programmet? _

Tidsprøver for proporsjonal kontroller ("3 -linjers" -program)

Du bruker de originale innstillingene for "03 -linjens" -programmet som er lagret i robotens minne for å gjøre en tidsforsøk, og du vil også bruke to andre modifikasjoner av "03 -linjen" -programmet for totalt tre tidsforsøkmålinger. Endringene du skal gjøre inkluderer

DRIFTY - Finne en verdi på Kp som får roboten til å drive veldig sakte, og muligens miste linjen av syne (men forhåpentligvis ikke). Prøv en Kp forskjellige verdier mellom 0,5 og 2,5 (eller en annen verdi) til du får en der roboten driver, men forblir på linjen.

JERKY - Å finne en verdi på Kp som får roboten til å rykke frem og tilbake, veldig lik bevegelsestypen On -Off. Prøv en Kp -verdi et sted mellom 1,5 og 3,5 (eller en annen verdi) til du får en der roboten bare begynner å vise frem og tilbake bevegelse, men ikke for dramatisk. Dette er også kjent som den "kritiske" verdien av Kp.

Tidsforsøk for en hel sving med klokken med klokken er bare nødvendig med de opprinnelige "3 -linjers" verdiene og de to nye settene med verdier (DRIFTY og JERKY) som du oppdager ved å la roboten følge bare en kort lengde på sporet. Ikke glem å laste ned endringer i roboten din hver gang!

15 Registrer proporsjonale kontrollverdier og tidsprøver for "3 -linjers" -program (husk å laste ned endringer i roboten!) For hver av disse tre verdiene for Kp (den opprinnelige 03 -linjen, og to verdier du bestemmer ved prøving og feiling) å være DRIFTY og JERKY).

Trinn 12: Avanserte PID -kontrollere

Avanserte PID -kontrollere
Avanserte PID -kontrollere
Avanserte PID -kontrollere
Avanserte PID -kontrollere

Før du starter dette trinnet, må du fullføre de foregående trinnene og registrere all den forespurte informasjonen med den aktuelle roboten du har tenkt å bruke til dette laboratoriet. Hver robot er litt forskjellig, med hensyn til mekaniske aspekter, motoriske aspekter, og spesielt lyssensorresultater på banen.

Tall du trenger fra tidligere eksperimenter

16 Maksimal lyssensoravlesning (fra trinn 2) _

17 Minimum lyssensoravlesning (fra trinn 5) _

18 GOD innstilling for settpunktet (gjennomsnitt av ovenstående) _

19 DRIFTY -innstilling for Kp (fra trinn 15) _

20 JERKY (kritisk) innstilling for Kp (fra trinn 15) _

Forstå PID -kontrolleren

Du har kanskje lært om Proportional Integral Differential (PID) -kontrolleren som en del av et Industrial Controls -kurs, og en god rask oversikt er online på Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

Når det gjelder dette eksperimentet, er den målte verdien mengden lys som reflekteres fra gulvet. Settpunktet er ønsket mengde lys når roboten er rett over kanten på den svarte tapen. Feilen er forskjellen mellom gjeldende lysavlesning og settpunktet.

Med den proporsjonale kontrolleren var hastigheten til venstre motor proporsjonal med feilen. Nærmere bestemt:

Feil = Lysavlesning-settpunkt

I denne grafikken ble settpunktet satt til 50.

Senere, for å finne hastigheten til venstre motor, multipliserer vi feilen med proporsjoneringskonstanten "Kp" spesielt:

L Motor = (Kp * Feil) + 35

Hvor i denne grafikken er Kp satt til 1,5, og tillegg av de 35 skjer i en annen del av programmet. Verdien på 35 legges til for å konvertere tall som er et sted i området -40 til +40, for å være et tall som er et sted mellom 10 og 60 (rimelige motorhastigheter).

Integralen er en slags minne fra fortiden. Hvis feilen har vært dårlig i lengre tid, bør roboten øke hastigheten mot settpunktet. Ki brukes til å multiplisere med integralen (integralet er den løpende summen av feil - i dette tilfellet redusert med 1,5 hver iterasjon, slik at roboten vil ha et "falmende minne" av tidligere feil).

Derivatet er en slags fremtidig spådom. Vi forutsier en fremtidig feil ved å sammenligne den siste feilen med den nåværende feilen og antar at feilhastigheten vil være noe lineær. Jo større fremtidig feil er spådd, desto raskere trenger vi å gå til settpunktet. Kd brukes til å multiplisere med derivatet (derivatet er forskjellen mellom den nåværende feilen og den forrige feilen).

L Motor = (Kp * Feil) + (Ki * Integral) + (Kd * Derivat) + 35

Trinn 13: Finne de beste PID -parameterne

Finne de beste PID -parameterne
Finne de beste PID -parameterne
Finne de beste PID -parameterne
Finne de beste PID -parameterne
Finne de beste PID -parameterne
Finne de beste PID -parameterne

Det er en rekke måter som kan brukes til å finne PID -parametrene, men situasjonen vår har unike aspekter som lar oss bruke en mer "manuell" eksperimentell måte å finne parametrene på. De unike aspektene vi har er:

  • Eksperimentatorene (du) har en god forståelse av måten maskinen fungerer på
  • Det er ingen fare for personskade hvis kontrolleren blir gal, og heller ingen fare for å skade roboten på grunn av dårlige kontrollerinnstillinger
  • Lyssensoren er en så slurvet sensorenhet, og det er bare en lyssensor, så vi kan bare håpe å få et marginalt godt sluttresultat. Derfor er en "best innsats" greit for våre eksperimenter

For det første brukte vi allerede “03-linje” for å bestemme den beste Kp (GODT settpunkt og JERKY Kp-verdier trinn 18 og 20 ovenfor). Se den første grafikken for instruksjoner om hvordan vi fant JERKY -verdien for Kp.

Bruk programvaren “04 line” for å bestemme Ki. Vi vil først endre “4 linje” for å ha verdiene vi registrerte i punktene 18 og 20 ovenfor. Deretter vil vi sakte øke Ki til vi får en verdi som virkelig flytter oss til settpunktet veldig raskt. Se den andre grafikken for instruksjoner om hvordan du velger verdien for Ki.

21 RASKEST Verdi av Ki som avgjøres raskest på settpunktet (selv med litt overskridelse) _

Bruk programvaren “05 line” for å bestemme Kd. Endre først “5 linje” med verdier fra trinn 18, 20 og 21, og øk deretter Kd til du får den siste arbeidsroboten som når settpunktet raskt og med svært lite overskridelse hvis noen. Den tredje grafikken viser instruksjoner om hvordan du velger Kd.

22 OPTIMAL verdi av Kd _

23 HVORDAN LÅNGER DU DIN ROBOT FOR Å SIRKELE SPORET NÅ ??? _

Trinn 14: Konklusjon

Laboratorieeksperimentet gikk veldig bra. Med rundt 20 studenter, ved bruk av de 10 (ti) arbeidsstasjonene + robotoppsettene som ble vist i den første grafikken, var det aldri logg av ressurser. På det meste kretset tre roboter rundt banen om gangen for tidsforsøkene.

Jeg anbefaler å bryte ut PID -kontrolldelen (som et minimum programmerer "04 linje" og "05 linje") til en egen dag, på grunn av konseptene som er involvert.

Her er en sekvens av videoer som viser progresjonen av kontroller (fra "01 linje" til "05 linje") ved hjelp av verdier jeg valgte - men hver elev kom med litt forskjellige verdier, noe som kan forventes!

HUSK: En av de viktigste grunnene til at svært godt forberedte robotteam klarer seg dårlig på konkurransearrangementer er det faktum at de ikke utfører kalibrering på det nøyaktige stedet arrangementet skal finne sted. Belysning og små posisjonsendringer av sensorene på grunn av jostling kan i stor grad påvirke parameterverdiene!

  • 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 linje (proporsjonal) PID -kontroll med Lego Robots -
  • 04 linje (proporsjonalt integrert) PID -kontroll med Lego Robots -
  • 05 linje (proporsjonalt-integrert-derivat) PID-kontroll med Lego Robots-https://videos.ecpi.net/Watch/s6LRi5r7

Anbefalt: