Kazalo:

Poučevanje PID nadzora z Lego roboti: 14 korakov
Poučevanje PID nadzora z Lego roboti: 14 korakov

Video: Poučevanje PID nadzora z Lego roboti: 14 korakov

Video: Poučevanje PID nadzora z Lego roboti: 14 korakov
Video: Стресс, Портрет убийцы - документальный фильм (2008) 2024, Julij
Anonim
Poučevanje PID nadzora z Lego roboti
Poučevanje PID nadzora z Lego roboti

Mnoge mlade navdušence nad roboti zanimajo naprednejše teme nadzora, vendar jih lahko ovira izračun, ki je pogosto potreben za analizo sistemov z zaprto zanko. Na spletu so na voljo čudoviti viri, ki poenostavijo izdelavo "proporcionalnega integralnega diferencialnega krmilnika" (PID krmilnik), en odličen opis pa je tukaj:

Kljub temu jim je lahko težko slediti in morda niso primerni za učilnico, ki šteje približno 20 učencev.

Ta korak za korakom Instructable prikazuje, kako uspešno poučiti sobo, polno študentov z uporabo robotskega sistema Lego, število robotov (od njih 5 do 10), enako število računalniških delovnih postaj z NXT 2.0 in sedem metrov črne sledi električni trak na tleh.

Vstran: Hvala J. Sluki, ki je napisal zgornjo povezavo, dr. Bruceu Linnellu, ki je ustvaril nekaj zgodnjih Lego laboratorijev na ravni univerze ECPI, in dr. Rezi Jafari, ki je zagotovil učne cilje PID Control za preslikavo idej v smeri EET220 in Tečaj Capstone.

1. korak: Laboratorijska priprava pred prihodom študentov

Laboratorijske priprave pred prihodom študentov
Laboratorijske priprave pred prihodom študentov

Sporočite študentom o vašem trdem delu;-)

Inštruktorji in pomočniki pri poučevanju so bili ZELO zaposleni s pripravami na ta laboratorij! Robot je bil napolnjen in sestavljen za ta laboratorij. Če je potrebna montaža, lahko to traja do 90 minut za enega ali več robotov. Še več časa je potrebnega za polnjenje baterij ali njihovo polnjenje s cikli polnjenja/praznjenja. Za podrobna navodila o tem, kako zgraditi robota, ki ga bomo uporabljali danes, glejte izobraževalni komplet NXT 2.0 ali 2.1, priročnik za gradnjo robota »sledi liniji«. Uporabili bomo bolj zapleteno programiranje … Črni električni trak na svetlo obarvanem linoleju je odlična skladba. Ta je 3 'x 7' s polkrožnimi krivuljami.

2. korak: Seznanite se z robotom

Seznanite se z robotom
Seznanite se z robotom

Najprej se boste seznanili z menijem robota in nekaterimi deli tega robota. Spoznali boste tudi tehnologijo senzorja v industrijskem slogu, ki jo uporablja robot, vključno s svetlečimi diodami, svetlobnimi senzorji, koračnimi motorji in senzorji rotacijskega položaja. Prosimo, da izpolnite vse zahtevane podatke (običajno podčrtana polja _).

1. Odklopite robota iz polnilnika in/ali vrat USB vašega računalnika. Za vklop robota uporabite oranžni gumb. Oranžni, levi in desni gumb ter gumb "zadaj" s pravokotnikom omogočajo navigacijo po meniju. Pomaknite se v meni »Datoteke programske opreme« in se pomaknite po razpoložljivih datotekah programske opreme na robotu. Navedite imena vsake datoteke programske opreme, natančno, kako je napisana, vključno z velikimi tiskanimi črkami in presledki:

_

3. korak: Umerite svetlobni senzor

Umerite svetlobni senzor
Umerite svetlobni senzor

2 Preglejte svetlobni senzor in podatke o umerjanju. Vrnite se v glavni meni in izberite »Pogled«. Izberite možnost »Reflected Light« in vrata (to bi morala biti »Port 3«), zaradi česar se lučka prižge in na zaslonu prikaže številka. Prepričajte se, da vse deluje, in zapišite nekaj podatkov o umerjanju.

a. Največje branje z belim listom papirja: Število: _ Opišite približno razdaljo od papirja: _

b. Največji odčitek, ko ste na svetlem linolej tleh: _

c. Najmanjše branje, ko kažete na sredino črnega električnega traku: _

4. korak: Preizkusite umerjanje motorja

Preizkusite umerjanje motorja
Preizkusite umerjanje motorja

3 Preglejte kolesne motorje (levo in desno) ter podatke o kalibraciji. Vrnite se v glavni meni in izberite »Motor Rotations«. Izberite vrata (za oba motorja bi morala biti bodisi »vrata B« ali »vrata C«). Preverite, ali lahko preverite umerjanje tega odčitka, tako da med ogledom odčitka zavrtite vsak motor na določeno število vrtljajev. Na istem kalibracijskem zaslonu »Pogled« à »Stopinje motorja« boste izvedli enak preizkus umerjanja za oba motorja.

Motor na pristanišču B

  • Kolikokrat ste zavrteli kolo _
  • Prikazna vrednost "Rotacije motorja" _
  • Razdalja v stopinjah se je zavrtela _
  • Prikazna vrednost "Motor Degrees" _

Motor na vratih C

  • Kolikokrat ste zavrteli kolo _
  • Prikazna vrednost "Rotacije motorja" _
  • Razdalja v stopinjah se je zavrtela _
  • Prikazna vrednost "Motor Degrees" _

Ali so prikazane vrednosti ustrezale vašim pričakovanjem? Prosim razloži. _

5. korak: Zaženite priloženi krmilnik za vklop / izklop

Zaženite priloženi krmilnik za vklop / izklop
Zaženite priloženi krmilnik za vklop / izklop

Krmilnik "On-Off" (včasih imenovan "Bang-Bang") ima samo dve možnosti, vklop in izklop. Podobno je upravljanju s termostatom v vašem domu. Ko je nastavljen na izbrano temperaturo, bo termostat ogreval hišo, če je prehladno, in ohladil hišo, če je prevroče. Izbrana temperatura se imenuje "nastavljena točka" in razlika med trenutno temperaturo hiše in nastavljeno vrednostjo. se imenuje "Napaka". Tako bi lahko rekli, če je napaka pozitivna, vklopite AC, sicer pa vklopite ogrevanje.

V našem primeru se bo robot obrnil levo ali desno, odvisno od tega, ali ima nastavljena točka svetlobnega senzorja pozitivno ali negativno napako (preveč na belih tleh ali preveč na črnem traku).

Opazili boste, da je vaš robot morda že naložen s številnimi programi (ali pa uporabite priloženo datoteko "01 line.rbt", vdelano tukaj), shranjenih na njem z imeni, kot sta "1 vrstica" in "2 vrstica", tam pa tudi je lahko dodatna črka za številko programa, na primer »vrstica 3b«. Program boste morali izvesti s številko "1" v svojem imenu in nato postaviti robota na posnetek traku, senzor pa na črno črto. Poskusite se držati stran od drugih robotov, ki so že na stezi, da boste lahko merili čas svojega robota, ne da bi pri tem motili nalete na druge robote.

4 Izmerite naslednje časovne preizkuse:

a. Čas za dokončanje ene ravne strani proge: _

b. Opišite gibanje robota po naravni poti: _

c. Čas za dokončanje enega ovinka proge: _

d. Opišite ukrivljeno gibanje robota na gosenicah: _

e. Čas je, da enkrat obidemo progo: _

6. korak: Odprite programsko opremo za vklop-izklop krmilnika "01 Line"

Odprite
Odprite
Odprite
Odprite
Odprite
Odprite

Odprli boste programsko opremo "LEGO MINDSTORMS NXT 2.0" (ne programske opreme Edu 2.1) in naložili ustrezen program, imenovan "01 line.rbt", ter preučili in spremenili programsko opremo po naslednjih navodilih:

Odprite programsko opremo "LEGO MINDSTORMS NXT 2.0" (ne programske opreme Edu 2.1). Vaš inštruktor vam bo povedal, kje so datoteke shranjene v vašem računalniku, in s tega mesta boste odprli program »1 vrstica«. Preprosto izberite »Datoteka«, nato »Odpri« in izberite program »1 vrstica«, ki ga želite odpreti.

Ko je program odprt, lahko z ikono »roka« premaknete celotno sliko programa naokrog, z ikono »puščica« pa kliknite na posamezne predmete, da vidite, kako delujejo (in tudi spremenite).

7. korak: Razumevanje programske opreme za vklop / izklop krmilnika "01 Line"

Razumevanje
Razumevanje

Program "1 vrstica" uporablja način "On-Off" krmiljenja. V tem primeru so izbire: "Zavijte levo" ali "Zavijte desno". Grafika vsebuje opis elementov programa:

8. korak: Urejanje programske opreme za vklop / izklop krmilnika "01 Line"

Urejanje
Urejanje

Spremenite nastavljeno vrednost in primerjajte rezultate.

V zgornjem koraku 2 ste odkrili nekaj resničnih vrednosti merilnika svetlobe. Zapisali ste vrednosti v delih b in c, številke za najnižje in največje vrednosti, ki bi jih robot videl pri vožnji po progi.

5 Izračunajte DOBRO nastavljeno vrednost (povprečje min in max): _

6 Izberite VARNO nastavljeno vrednost pinta (število zelo blizu min ali max): _

Spremenite nastavljeno vrednost na eno od teh vrednosti, tako da s puščico kliknete polje za izračun napak in spremenite število, ki se odšteje (glejte sliko spodaj). Zdaj povežite robota z računalnikom s kablom USB, se prepričajte, da je robot vklopljen, in na robota prenesite novo različico programa "1 linija". Videli boste, koliko časa traja robot, da se okoli smeri obrne v smeri urinega kazalca, enkrat z dobro nastavljeno vrednostjo in enkrat z nizko nastavljeno vrednostjo.

7 Dokončajte časovno preskušanje z dobrimi in slabimi nastavitvenimi vrednostmi

a. Čas, da se enkrat popolnoma sprehodite po progi (DOBRA nastavljena točka): _

b. Čas, da se enkrat popolnoma sprehodite po progi (BAD nastavljena točka): _

Vaša opažanja / zaključki? _

9. korak: Razumevanje vklopa in izklopa "02 Line" s programsko opremo za krmiljenje mrtvih con

Razumevanje
Razumevanje

Če bi se klima in toplota v vašem domu ves dan vklapljali in izklapljali, bi to zagotovo lahko uničilo vaš sistem HVAC (ali vsaj skrajšalo njegovo življenjsko dobo). Večina termostatov je izdelanih z vgrajenim "mrtvim območjem". Na primer, če je vaša nastavljena vrednost 70 stopinj Fahrenheita, termostat morda ne bo vklopil izmeničnega toka, dokler ne doseže 72 stopinj, niti ne bo vklopil ogrevanja, dokler se temperatura ne zniža na 68 stopinj. Če se mrtva cona preveč razširi, lahko hiša postane neprijetna.

V našem primeru bomo s programom 02 line dodali mrtvo cono, med katero bo robot preprosto vozil naravnost.

Zdaj preglejte datoteko programske opreme "vrstica 02", kot je opisano na sliki in v priloženi datoteki.

Ta datoteka programske opreme programira robota, da sledi vrstici z uporabo On-Off kontrole z diferencialno vrzeljo. To je znano tudi kot mrtvi pas in pomeni, da se bo robot glede na napako obrnil levo ali desno, če pa je napaka majhna, bo robot šel naravnost.

Program "vrstica 02" najprej izračuna zgornje vrednosti tako, da odšteje nastavljeno vrednost od meritve svetlobe, nato pa naredi primerjave, kot je navedeno zgoraj. Preglejte program v računalniku in zapišite vrednosti, ki jih vidite.

Kolikšna je trenutna (izvirna) vrednost nastavljene vrednosti programa "2 vrstici"? _

Kakšna je trenutna (prvotna) vrednost programov "2 vrstice" "Velika" pozitivna napaka? _

Kakšna je trenutna (prvotna) vrednost programov "2 vrstice" "Velika" negativna napaka? _

Kakšno območje napak mrtvega pasu bo povzročilo, da bo robot šel naravnost? OD _ DO _

Izvedite tri (3) časovne preskuse z različnimi vrednostmi za zgornjo napako »Velika«. Trenutne nastavitve »2 vrstice« in dve drugi nastavitvi, ki jih boste izračunali. Za svojega robota ste že izbrali DOBRO nastavljeno vrednost. Zdaj boste izbrali dva različna območja mrtvih pasov in zabeležili čas, ki ga potrebuje robot za en krog v smeri urinega kazalca:

Prvotne nastavitve za vrstico 02 _

Dead -Band od +4 do -4 _

Dead -Band od +12 do -12 _

10. korak: Razumevanje programske opreme sorazmernega krmilnika "03 Line"

Razumevanje
Razumevanje

S proporcionalnim nadzorom ne samo vklopimo ali izklopimo ogrevanje, lahko imamo več nastavitev, koliko naj prižge peč (na primer velikost plamenov na štedilniku). V primeru robota nimamo samo treh nastavitev motorja (levo, desno in naravnost). Namesto tega lahko nadzorujemo hitrost levega in desnega kolesa, da dobimo najrazličnejše vrtljaje. Večja je napaka, hitreje se želimo vrniti na črto.

Poglejmo proporcionalni nadzor s programom "03 vrstica"

Program za "vrstico 03" je bolj zapleten, ker ne postavlja samo "proporcionalne" metode nadzora, ampak vsebuje tudi vso programsko opremo za sorazmerno-integralne, proporcionalno-diferencialne in sorazmerno-integralno-diferencialne (PID) kontrole. Ko naložite programsko opremo, bo verjetno prevelika, da bi se naenkrat prilegala zaslonu, vendar ima res tri dele, kot je prikazano na priloženi sliki.

A - Matematika za izračun napake in "račun" za iskanje integrala in izpeljanke napake skozi čas.

B - Matematika za izračun hitrosti levega motorja na podlagi nastavitev upravljanja PID za Kp, Ki in Kd

C - Matematika za testiranje omejitev hitrosti motorja in pošiljanje pravilnih hitrosti motorja levemu in desnemu motorju.

Vsi trije izvajajo svoje neskončne zanke (po inicializaciji) in lahko brskate po ikoni »roka«, vendar preklopite nazaj na ikono »puščica«, da preverite vsebino polja in spremenite nastavitve.

11. korak: Urejanje programa 03 Line (proporcionalni nadzor)

Urejanje programa 03 Line (proporcionalni nadzor)
Urejanje programa 03 Line (proporcionalni nadzor)

V srednjem delu (oddelek B v prejšnjem opisu) boste opazili, da sta v programu »03 vrstica« nastavitvi Ki in Kd oba 0.

Pustimo jih take. Spremenili bomo le vrednost Kp, sorazmernega dela krmilnika.

Kp se odloči, kako gladko robot spreminja hitrost, ko se oddaljuje od črte. Če je Kp prevelik, bo gibanje izjemno sunkovito (podobno kot krmilnik za vklop-izklop). Če je Kp premajhen, bo robot prepočasi popravljal in se oddaljil daleč od črte, zlasti na ovinkih. Lahko se celo odmakne tako daleč, da popolnoma izgubi linijo!

13 Kakšno nastavljeno vrednost uporablja program "03 line"? (odšteje se po branju nastavitve svetlobe v zanki A) _

14 Kolikšna je vrednost Kp v trenutnem programu "03 vrstica"? _

Časovni preizkusi za proporcionalni krmilnik (program "3 vrstice")

Za časovni preskus boste uporabili izvirne nastavitve za program "03 line", shranjene v pomnilniku vašega robota, prav tako pa boste uporabili dve drugi spremembi programa "03 line" za skupno tri meritve časa. Spremembe, ki jih morate narediti, vključujejo

DRIFTY - Odkrivanje vrednosti Kp, zaradi katere se robot zelo počasi premika in morda izgubi črto iz vida (upajmo, da ne). Poskusite z različnimi vrednostmi Kp med 0,5 in 2,5 (ali drugo vrednostjo), dokler ne dobite tiste, kjer se robot premika, a ostane na vrsti.

JERKY - Odkrivanje vrednosti Kp, zaradi katere se robot trza naprej in nazaj, zelo podobno vrsti gibanja On -Off. Poskusite vrednost Kp nekje med 1,5 in 3,5 (ali drugo vrednostjo), dokler ne dobite vrednosti, pri kateri se robot šele začne premikati naprej in nazaj, vendar ne preveč dramatično. To je znano tudi kot "kritična" vrednost Kp.

Časovni preskusi za celoten obrat v smeri urinega kazalca so potrebni le z izvirnimi vrednostmi "3 vrstice" in dvema novim nizom vrednosti (DRIFTY in JERKY), ki jih odkrijete tako, da robot sledi le kratki dolžini sledi. Ne pozabite vsakič prenesti sprememb na svojega robota!

15 Zabeležite sorazmerne kontrolne vrednosti in časovne preizkuse za program »3 vrstice« (ne pozabite prenesti sprememb v robota!) Za vsako od teh treh vrednosti Kp (prvotna vrednost vrstice 03 in dve vrednosti, ki jih določite s poskusom in napako) biti DRIFTY in JERKY).

Korak: Napredni PID krmilniki

Napredni PID krmilniki
Napredni PID krmilniki
Napredni PID krmilniki
Napredni PID krmilniki

Preden začnete ta korak, ne pozabite dokončati prejšnjih korakov in zabeležiti vse zahtevane podatke z določenim robotom, ki ga nameravate uporabiti za ta laboratorij. Vsak robot je nekoliko drugačen glede mehanskih vidikov, motornih vidikov in zlasti rezultatov senzorjev svetlobe na progi.

Številke, ki jih boste potrebovali iz prejšnjih poskusov

16 Največje branje senzorja svetlobe (od koraka 2) _

17 Najmanjše odčitavanje senzorja svetlobe (od koraka 5) _

18 DOBRA nastavitev za nastavljeno vrednost (povprečje zgornjega) _

19 Nastavitev DRIFTY za Kp (od koraka 15) _

20 JERKY (kritična) nastavitev za Kp (od koraka 15) _

Razumevanje krmilnika PID

Morda ste o krmilniku proporcionalnih integralnih diferencialov (PID) izvedeli kot del tečaja za industrijski nadzor, dober hiter pregled pa je na voljo na Wikipediji (https://en.wikipedia.org/wiki/PID_controller).

V tem poskusu je izmerjena vrednost količina svetlobe, ki se odbije od tal. Nastavljena vrednost je želena količina svetlobe, ko je robot neposredno nad robom črnega traku. Napaka je razlika med trenutnim odčitkom svetlobe in nastavljeno vrednostjo.

Pri proporcionalnem krmilniku je bila hitrost levega motorja sorazmerna z napako. Natančneje:

Napaka = svetlo branje-nastavljena vrednost

Na tej sliki je bila nastavljena vrednost 50.

Kasneje, da ugotovimo hitrost levega motorja, napako pomnožimo s konstanto proporcije »Kp«:

L Motor = (Kp * Napaka) + 35

Kjer je na tej sliki Kp nastavljeno na 1,5, dodajanje 35 pa se zgodi v drugem delu programa. Vrednost 35 se doda za pretvorbo števila, ki je nekje v razponu od -40 do +40, v številko, ki je nekje med 10 in 60 (primerne hitrosti motorja).

Integral je neke vrste spomin na preteklost. Če je bila napaka dalj časa huda, bi moral robot pospešiti proti nastavljeni točki. Ki se uporablja za množenje z Integralom (integral je tekoča vsota napak - v tem primeru se vsaka ponovitev zmanjša za 1,5, tako da bo imel robot "zbledeči spomin" preteklih napak).

Izpeljanka je neke vrste napoved prihodnosti. Prihodnjo napako napovedujemo s primerjavo zadnje napake s trenutno napako in predvidevamo, da bo stopnja spremembe napake nekoliko linearna. Večja kot je napoved prihodnje napake, hitreje se moramo premakniti na nastavljeno vrednost. Kd se uporablja za pomnoževanje z izpeljano (izpeljanka je razlika med trenutno napako in prejšnjo napako).

L Motor = (Kp * Napaka) + (Ki * Integral) + (Kd * Izpeljana) + 35

13. korak: Iskanje najboljših parametrov PID

Iskanje najboljših parametrov PID
Iskanje najboljših parametrov PID
Iskanje najboljših parametrov PID
Iskanje najboljših parametrov PID
Iskanje najboljših parametrov PID
Iskanje najboljših parametrov PID

Za iskanje parametrov PID lahko uporabite več načinov, vendar ima naša situacija edinstvene vidike, ki nam omogočajo uporabo bolj "ročnega" eksperimentalnega načina iskanja parametrov. Edinstveni vidiki, ki jih imamo, so:

  • Eksperimentatorji (vi) dobro razumete način delovanja stroja
  • Ni nevarnosti telesnih poškodb, če je krmilnik nor, prav tako pa ni nevarnosti, da bi poškodoval robota zaradi slabih nastavitev krmilnika
  • Svetlobni senzor je tako neumna senzorska naprava, svetlobni senzor pa je samo en, zato lahko le upamo, da bomo dobili neznatno dober končni rezultat. Zato je za naše poskuse v redu "najboljši trud"

Prvič, že smo uporabili črto "03", da smo se odločili za najboljši Kp (dobra nastavljena vrednost in vrednosti JERKY Kp, korak 18 in 20 zgoraj). Oglejte si prvo sliko za navodila, kako smo našli vrednost JERKY za Kp.

Za določitev Ki uporabite programsko opremo "04 line". Najprej bomo spremenili "4 vrstico", da bodo vrednosti, ki smo jih zapisali v točkah 18 in 20 zgoraj. Nato bomo počasi povečali Ki, dokler ne dobimo vrednosti, ki nas zelo hitro premakne na nastavljeno vrednost. Glejte drugo grafiko za navodila, kako izbrati vrednost za Ki.

21 NAJHITREJŠI Vrednost Ki, ki se najhitreje usede na nastavljeno vrednost (tudi z nekaj previsokimi vrednostmi) _

Za določitev Kd uporabite programsko opremo »linija 05«. Najprej spremenite »5 vrstico« z vrednostmi iz korakov 18, 20 in 21, nato povečajte Kd, dokler ne dobite končnega delovnega robota, ki hitro doseže nastavljeno vrednost in z zelo majhnim preseganjem, če sploh. Tretja slika prikazuje navodila za izbiro Kd.

22 OPTIMALNA Vrednost Kd _

23 KOLIKO DOLG JE VAŠ ROBOT TRAJAL, DA OBDOLŽI POT? _

14. korak: Zaključek

Laboratorijski poskus je potekal zelo dobro. Pri približno 20 študentih, ki so uporabili 10 (deset) delovnih postaj + robotskih nastavitev, prikazanih na prvi sliki, ni nikoli prišlo do zastojev v virih. Največ trije roboti so hkrati krožili po progi za časovne preizkušnje.

Zaradi vključenih konceptov priporočam, da razdelite nadzorni del PID (vsaj programa "04 vrstica" in "05 vrstica") na ločen dan.

Tukaj je zaporedje videoposnetkov, ki prikazujejo napredovanje kontrol (od "01 vrstice" do "05 vrstice") z vrednostmi, ki sem jih izbral - vendar je vsak učenec prišel do nekoliko drugačnih vrednosti, kar je pričakovano!

Spomnite se: Eden glavnih razlogov za dobro pripravljene robotske ekipe na tekmovalnih prireditvah je dejstvo, da ne izvajajo kalibracije na točno določenem mestu, kjer bo dogodek potekal. Osvetlitev in rahle spremembe položaja senzorjev zaradi udarcev lahko močno vplivajo na vrednosti parametrov!

  • Vrstica 01 (On -Off) PID nadzor z Lego roboti -
  • Vrstica 02 (Vklop-izklop z mrtvo cono) PID nadzor z Lego roboti-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 vrstica (sorazmerno) PID nadzor z Lego roboti -
  • 04 vrstica (sorazmerno -integralni) PID nadzor z Lego roboti -
  • Vrstica 05 (proporcionalno-integralno-izpeljana) PID nadzor z Lego roboti-https://videos.ecpi.net/Watch/s6LRi5r7

Priporočena: