Sadržaj:

Poučavanje PID kontrole pomoću Lego robota: 14 koraka
Poučavanje PID kontrole pomoću Lego robota: 14 koraka

Video: Poučavanje PID kontrole pomoću Lego robota: 14 koraka

Video: Poučavanje PID kontrole pomoću Lego robota: 14 koraka
Video: PLC tečaj : Analogno upravljanje pomoću GX-Works2 2024, Lipanj
Anonim
Poučavanje PID kontrole s Lego robotima
Poučavanje PID kontrole s Lego robotima

Mnogi mladi ljubitelji robota zainteresirani su za naprednije teme upravljanja, ali ih može omesti račun koji je često potreban za analizu sustava zatvorene petlje. Na mreži su dostupni izvrsni resursi koji pojednostavljuju konstrukciju "proporcionalnog integralnog diferencijalnog kontrolera" (PID kontroler), a jedan odličan opis je ovdje:

Ipak, to može biti teško slijediti i možda nije prikladno za učionicu od 20 -ak učenika.

Ovaj korak po korak Instructable pokazuje kako uspješno poučavati sobu punu učenika koristeći Lego robotski sustav, brojne robote (njih 5 do 10), jednak broj računalnih radnih stanica s NXT 2.0 i sedam stopa crne staze električna traka na podu.

ASIDE: Zahvaljujemo J. Sluki, koji je napisao gornju vezu, dr. Bruceu Linnellu, koji je stvorio neke rane Lego laboratorije na razini Sveučilišta ECPI, i dr. Rezi Jafari, koji je pružio PID Control ciljeve učenja za mapiranje ideja prema EET220 i Tečajevi iz Capstone -a.

Korak 1: Priprema laboratorija prije dolaska učenika

Laboratorijske pripreme prije dolaska studenata
Laboratorijske pripreme prije dolaska studenata

Obavijestite studente o vašem napornom radu;-)

Instruktori i pomoćnici u nastavi bili su vrlo zaposleni pripremajući se za ovaj laboratorij! Robot je napunjen i sastavljen za ovaj laboratorij. Ako je potrebna montaža, to može potrajati do 90 minuta vremena za jednog ili više robota. Potrebno je još više vremena za punjenje baterija ili njihovo punjenje ciklusima punjenja/pražnjenja. Za detaljne upute o tome kako izgraditi robota koje ćemo koristiti danas, pogledajte obrazovni komplet NXT 2.0 ili 2.1, Vodič za izgradnju robota "follow a line". Koristit ćemo složenije programiranje … Crna električna traka na svijetlom linoleumu čini izvrsnu pjesmu. Ovaj je 3’x 7’ s polukružnim zavojima.

Korak 2: Upoznajte se s robotom

Upoznajte se s robotom
Upoznajte se s robotom

Prvo ćete se upoznati s izbornikom robota, kao i nekim dijelovima ovog robota. Također ćete naučiti o tehnologiji senzora industrijskog stila koju koristi robot, uključujući diode koje emitiraju svjetlo, svjetlosne senzore, koračne motore i senzore položaja rotacije. Molimo vas da ispunite sve tražene podatke (obično podcrtane praznine _).

1. Odvojite robota od punjača i/ili USB priključka vašeg računala. Uključite robota pomoću narančaste tipke. Narančasti, lijevi i desni gumb i gumb "natrag" sivi pravokutnik omogućuju navigaciju izbornikom. Idite na izbornik "Softverske datoteke" i pomičite se kroz dostupne softverske datoteke na robotu. Navedite nazive svake softverske datoteke, točno kako je napisana, uključujući velika slova i razmake:

_

Korak 3: Kalibrirajte svjetlosni senzor

Kalibrirajte svjetlosni senzor
Kalibrirajte svjetlosni senzor

2 Pregledajte svjetlosni senzor i podatke o kalibraciji. Vratite se na glavni izbornik i odaberite "Prikaži". Odaberite opciju “Reflected Light” i port (trebao bi biti “Port 3”) koji uzrokuje uključivanje svjetla i prikaz broja na zaslonu. Provjerite radi li sve i zabilježite neke podatke o kalibraciji.

a. Maksimalno čitanje pomoću bijelog lista papira: Broj: _ Opišite približnu udaljenost od papira: _

b. Maksimalno očitanje na svijetlim podovima od linoleuma: _

c. Minimalno očitanje kada se pokaže na središte crne električne trake: _

Korak 4: Ispitajte kalibraciju motora

Ispitajte kalibraciju motora
Ispitajte kalibraciju motora

3 Pregledajte motore kotača (lijevo i desno) kao i podatke o kalibraciji. Natrag na glavni izbornik i odaberite "Rotacije motora" Odaberite port (trebao bi biti ili "Port B" ili "Port C" za dva motora). Pogledajte možete li provjeriti kalibraciju ovog očitanja okretanjem svakog motora na određeni broj okretaja dok gledate očitanje. Izvršit ćete isti test kalibracije za oba motora pomoću zaslona za kalibraciju “View” à “Motor Degrees”.

Motor na priključku B

  • Broj okretanja kotača _
  • Vrijednost prikaza "Rotacije motora" _
  • Kotač udaljen u stupnjevima je rotiran_
  • Vrijednost prikaza "Motor Degrees" _

Motor na priključku C

  • Broj okretanja kotača _
  • Vrijednost prikaza "Rotacije motora" _
  • Kotač udaljen u stupnjevima _
  • Vrijednost prikaza "Motor Degrees" _

Jesu li se vrijednosti prikaza slagale s vašim očekivanjima? Molim te objasni. _

Korak 5: Pokrenite isporučeni kontroler za uključivanje i isključivanje

Pokrenite isporučeni On-Off Controller
Pokrenite isporučeni On-Off Controller

"On-Off" (ponekad se naziva "Bang-Bang") kontroler ima samo dvije mogućnosti, uključivanje i isključivanje. Sličan je upravljanju termostatom u vašem domu. Kada se postavi na odabranu temperaturu, termostat će zagrijati kuću ako je previše hladno, a rashladiti kuću ako je prevruće. Odabrana temperatura naziva se "zadana vrijednost" i razlika između trenutne temperature kuće i zadane vrijednosti naziva se "Pogreška". Dakle, mogli biste reći, ako je pogreška pozitivna, uključite izmjenični napon, inače uključite grijanje.

U našem slučaju, robot će se okrenuti ulijevo ili udesno, ovisno o tome ima li zadana vrijednost osjetnika svjetla pozitivnu ili negativnu pogrešku (previše na bijelom podu ili previše na crnoj traci).

Primijetit ćete da je vaš robot možda već učitan s brojnim programima (ili možete upotrijebiti priloženu datoteku "01 line.rbt" ugrađenu ovdje) pohranjenu na njemu s imenima poput "1 redak" i "2 redak", a tu je i može biti dodatno slovo iza broja programa, kao što je "3b redak". Morat ćete izvršiti program s brojem “1” u svom imenu, a zatim postaviti robota na traku, a senzor na crnu liniju. Pokušajte se držati podalje od drugih robota koji su već na stazi kako biste mogli mjeriti vrijeme s robotom bez prekida naleta na druge robote.

4 Izmjerite sljedeće vremenske probe:

a. Vrijeme za dovršenje jedne ravne strane staze: _

b. Opišite kretanje robota ravnim kolosijekom: _

c. Vrijeme za završetak jedne krivulje staze: _

d. Opišite zakrivljeno kretanje robota na kolosijeku: _

e. Vrijeme je da jednom obiđete stazu: _

Korak 6: Otvorite softver za uključivanje-isključivanje kontrolera "01 linija"

Otvori
Otvori
Otvori
Otvori
Otvori
Otvori

Otvorit ćete softver "LEGO MINDSTORMS NXT 2.0" (a ne softver Edu 2.1) i učitati odgovarajući program pod nazivom "01 line.rbt" te ispitati i izmijeniti softver, slijedeći donje upute:

Otvorite softver “LEGO MINDSTORMS NXT 2.0” (ne softver Edu 2.1). Vaš će vam instruktor reći gdje su datoteke pohranjene na vašem računalu, a s tog ćete mjesta otvoriti program "1 redak". Jednostavno odaberite "Datoteka", a zatim "Otvori" i odaberite program "1 redak" za otvaranje.

Nakon što je program otvoren, možete upotrijebiti ikonu „ruka“za pomicanje slike na cijelom ekranu programa, a pomoću ikone „strelica“možete kliknuti na pojedinačne objekte kako biste vidjeli kako rade (i unijeli promjene).

Korak 7: Razumijevanje programa za uključivanje-isključivanje kontrolera "01 linija"

Razumijevanje
Razumijevanje

Program "1 redak" koristi "On-Off" metodu upravljanja. U ovom slučaju, opcije su "Skrenite lijevo" ili "Skrenite desno". Grafika sadrži opis programskih elemenata:

Korak 8: Uređivanje softvera za uključivanje-isključivanje kontrolera "01 linija"

Uređivanje
Uređivanje

Promijenite zadanu vrijednost i usporedite rezultate.

Otkrili ste neke stvarne vrijednosti mjerača svjetlosti u prethodnom koraku 2. Zapisali ste vrijednosti u dijelovima b i c, brojeve za minimalne i maksimalne vrijednosti koje bi robot vidio prilikom izvođenja staze.

5 Izračunajte DOBRU vrijednost zadane vrijednosti (prosjek min i max): _

6 Odaberite BAD postavljenu vrijednost pint (broj vrlo blizu min ili max): _

Promijenite zadanu vrijednost na jednu od ovih vrijednosti pomoću ikone strelice da biste kliknuli na okvir za izračunavanje pogreške i promijenili broj koji se oduzima (pogledajte sliku ispod). Sada spojite robota na računalo pomoću USB kabela, provjerite je li robot uključen i preuzmite novu verziju programa "1 linija" na robota. Vidjet ćete koliko je robotu potrebno da obiđe stazu u smjeru kazaljke na satu, jednom s dobrom zadanom vrijednošću, a jednom s lošom zadanom vrijednosti.

7 Dovršite vremenska ispitivanja s dobrim i lošim zadanim vrijednostima

a. Vrijeme je da jednom obiđete cijelu stazu (DOBRA zadana točka): _

b. Vrijeme je da jednom obiđete cijelu stazu (BAD Set-Point): _

Vaša zapažanja / zaključci? _

Korak 9: Razumijevanje "02 linije" uključeno-isključeno uz softver kontrolera mrtve zone

Razumijevanje
Razumijevanje

Ako su se klima i toplina u vašem domu stalno uključivali i isključivali, to bi definitivno moglo uništiti vaš HVAC sustav (ili barem skratiti njegov vijek trajanja). Većina termostata izrađena je s ugrađenom "mrtvom zonom". Na primjer, ako je vaša zadana vrijednost 70 stupnjeva Fahrenheita, termostat možda neće uključiti izmjeničnu struju sve dok ne dosegne 72 stupnja, niti će uključiti grijanje sve dok se temperatura ne spusti na 68 stupnjeva. Ako se mrtva zona previše proširi, kuća bi mogla postati neugodna.

U našem slučaju, koristit ćemo 02 linijski program za dodavanje mrtve zone, tijekom koje će robot jednostavno voziti ravno.

Sada pregledajte softversku datoteku „02 redak“kako je opisano na slici i kako se nalazi u priloženoj datoteci.

Ova softverska datoteka programira robota da slijedi liniju pomoću On-Off kontrole s diferencijalnim razmakom. Ovo je također poznato kao mrtva zona i znači da će se robot okretati lijevo ili desno ovisno o pogrešci, ali ako je greška mala, robot će ići ravno.

Program "02 redak" prvo izračunava prethodno oduzimanje zadane vrijednosti od mjerenja svjetlosti, a zatim vrši usporedbe kako je gore navedeno. Ispitajte program na računalu i zabilježite vrijednosti koje vidite.

Koja je trenutna (izvorna) vrijednost zadane vrijednosti programa "2 reda"? _

Koja je trenutna (izvorna) vrijednost programa "2 reda" "Velika" Pozitivna pogreška? _

Koja je trenutna (izvorna) vrijednost programa "2 reda" "Velika" Negativna pogreška? _

Koji će raspon pogrešaka mrtvog opsega uzrokovati da robot ide ravno? OD DO _

Pokrenite tri (3) vremenska ispitivanja s različitim vrijednostima za gornju grešku "Velika". Trenutne postavke "2 retka", kao i dvije druge postavke koje ćete izračunati. Već ste odabrali DOBRU ciljnu točku za svog robota. Sada ćete odabrati dva različita raspona mrtvog pojasa i zabilježiti vrijeme potrebno robotu da napravi jedan krug u smjeru kazaljke na satu:

Izvorne postavke za red 02 _

Mrtvi opseg od +4 do -4 _

Mrtvi opseg od +12 do -12 _

Korak 10: Razumijevanje programa proporcionalnog kontrolera "03 Line"

Razumijevanje
Razumijevanje

Uz proporcionalnu kontrolu, ne samo da uključujemo ili isključujemo grijanje, već možemo imati nekoliko postavki koliko treba pojačati peć (poput veličine plamena na ploči štednjaka). U slučaju robota, nemamo samo tri postavke motora (lijevo, desno i ravno). Umjesto toga možemo kontrolirati brzinu lijevog i desnog kotača kako bismo dobili širok izbor okretaja. Što je veća pogreška, brže se želimo vratiti na liniju.

Pogledajmo proporcionalnu kontrolu s programom "03 redak"

Program za "liniju 03" složeniji je jer ne postavlja samo "proporcionalnu" metodu upravljanja, već sadrži i sav softver za upravljanje proporcionalno-integralnim, proporcionalno-diferencijalnim i proporcionalno-integralno-diferencijalnim (PID) kontrolama. Kada učitate softver, on će vjerojatno biti prevelik da stane na zaslon odjednom, ali doista ima tri dijela, kao što je prikazano na priloženoj slici.

A - Matematika za izračunavanje pogreške i "račun" za pronalaženje integrala i izvedenice pogreške tijekom vremena.

B - Matematika za izračunavanje brzine lijevog motora na temelju PID regulacijskih postavki Kp, Ki i Kd

C - Matematika za ispitivanje ograničenja brzine motora i slanje ispravnih brzina motora lijevom i desnom motoru.

Sva tri od njih pokreću vlastite beskonačne petlje (nakon inicijalizacije) i možete pregledavati pomoću ikone "ruka", ali se vratite na ikonu "strelica" da biste pregledali sadržaj okvira i promijenili postavke.

Korak 11: Uređivanje programa 03 reda (proporcionalna kontrola)

Uređivanje programa 03 reda (proporcionalna kontrola)
Uređivanje programa 03 reda (proporcionalna kontrola)

U srednjem dijelu (odjeljak B u prethodnom opisu) primijetit ćete da su u programu "03 redak" postavke Ki i Kd obje 0.

Ostavimo ih takve. Promijenit ćemo samo vrijednost Kp, proporcionalnog dijela regulatora.

Kp odlučuje koliko glatko robot mijenja brzinu dok se udaljava od crte. Ako je Kp prevelik, kretanje će biti izrazito trzavo (slično kontroleru za uključivanje i isključivanje). Ako je Kp premalen, tada će robot ispravljati presporo i udaljiti se daleko od crte, osobito na krivinama. Možda će čak i zaći toliko daleko da će izgubiti liniju!

13 Koju zadanu vrijednost koristi program "03 redak"? (oduzima se nakon čitanja postavke svjetla u petlji A) _

14 Kolika je vrijednost Kp u trenutnom programu "03 reda"? _

Vremenska ispitivanja za proporcionalni kontroler (program "3 retka")

Koristit ćete izvorne postavke za program "03 redak" spremljen u memoriji vašeg robota za vremensko ispitivanje, a također ćete koristiti i dvije druge izmjene programa "03 linija" za ukupno tri mjerenja vremena. Izmjene koje trebate napraviti uključuju

DRIFTY - Pronalaženje vrijednosti Kp zbog koje se robot jako sporo pomiče i vjerojatno gubi liniju iz vida (ali nadamo se da ne). Isprobajte različite vrijednosti Kp između 0,5 i 2,5 (ili drugu vrijednost) dok ne dobijete vrijednost u kojoj se robot kreće, ali ostaje na liniji.

JERKY - Pronalaženje vrijednosti Kp zbog koje se robot trza naprijed -natrag, vrlo slično tipu pokreta On -Off. Isprobajte vrijednost Kp između 1,5 i 3,5 (ili drugu vrijednost) dok ne dobijete vrijednost u kojoj robot tek počinje pokazivati naprijed -natrag kretanje, ali ne previše dramatično. To je također poznato kao "kritična" vrijednost Kp.

Vremenska ispitivanja za cijeli zaokret u smjeru kazaljke na satu potrebna su samo s izvornim vrijednostima "3 retka" i dva nova skupa vrijednosti (DRIFTY i JERKY) koje otkrijete tako što robot slijedi samo kratku duljinu staze. Ne zaboravite svaki put preuzeti promjene na svog robota!

15 Zabilježite proporcionalne kontrolne vrijednosti i vremenska ispitivanja za program „3 reda“(ne zaboravite preuzeti promjene na robota!) Za svaku od ove tri vrijednosti Kp (izvorna vrijednost 03 retka i dvije vrijednosti koje utvrđujete pokušajem i pogreškom) biti DRIFTY i JERKY).

Korak 12: Napredni PID kontroleri

Napredni PID kontroleri
Napredni PID kontroleri
Napredni PID kontroleri
Napredni PID kontroleri

Prije nego započnete ovaj korak, svakako dovršite prethodne korake bilježeći sve tražene podatke s određenim robotom koji namjeravate koristiti za ovaj laboratorij. Svaki robot je malo drugačiji, s obzirom na mehaničke aspekte, aspekte motora, a posebno rezultate senzora svjetla na stazi.

Brojevi koji će vam trebati iz prethodnih eksperimenata

16 Maksimalno očitanje senzora svjetla (od koraka 2) _

17 Minimalno očitanje senzora svjetla (od koraka 5) _

18 DOBRA postavka za zadanu vrijednost (prosjek gore navedenog) _

19 Postavka DRIFTY za Kp (od koraka 15) _

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

Razumijevanje PID kontrolera

Možda ste saznali za kontroler proporcionalnih integralnih diferencijala (PID) kao dio tečaja industrijske kontrole, a dobar brzi pregled dostupan je na Wikipediji (https://en.wikipedia.org/wiki/PID_controller).

U slučaju ovog pokusa, izmjerena vrijednost je količina svjetlosti koja se odbija od poda. Zadana vrijednost je željena količina svjetlosti kada je robot izravno iznad ruba crne trake. Pogreška je razlika između trenutnog očitanja svjetla i zadane vrijednosti.

S proporcionalnim regulatorom, brzina lijevog motora bila je proporcionalna pogrešci. Posebno:

Pogreška = Lako čitanje-zadana vrijednost

Na ovoj je slici zadana vrijednost postavljena na 50.

Kasnije, da bismo pronašli brzinu lijevog motora, pomnožimo pogrešku s konstantom proporcije "Kp", posebno:

L Motor = (Kp * Pogreška) + 35

Gdje je na ovoj slici Kp postavljeno na 1,5, a dodavanje 35 događa se u drugom dijelu programa. Vrijednost 35 dodaje se za pretvaranje broja koji je negdje u rasponu od -40 do +40, u broj koji je negdje između 10 i 60 (razumne brzine motora).

Integral je svojevrsno sjećanje na prošlost. Ako je greška bila dulja dulje vrijeme, robot bi se trebao ubrzati prema zadanoj vrijednosti. Ki se koristi za množenje s Integralom (integral je tekući zbroj pogrešaka - u ovom slučaju se smanjuje za 1,5 svake iteracije pa će robot imati "blijedu memoriju" prošlih pogrešaka).

Derivat je vrsta predviđanja budućnosti. Predviđamo buduću pogrešku usporedbom posljednje pogreške s trenutnom pogreškom i pretpostavljamo da će stopa promjene pogreške biti donekle linearna. Što je veća buduća pogreška predviđena, brže moramo prijeći na zadanu vrijednost. Kd se koristi za množenje s Izvedenicom (izvedenica je razlika između trenutne pogreške i prethodne pogreške).

L Motor = (Kp * Pogreška) + (Ki * Integral) + (Kd * Izvedeno) + 35

Korak 13: Pronalaženje najboljih PID parametara

Pronalaženje najboljih PID parametara
Pronalaženje najboljih PID parametara
Pronalaženje najboljih PID parametara
Pronalaženje najboljih PID parametara
Pronalaženje najboljih PID parametara
Pronalaženje najboljih PID parametara

Postoje brojni načini koji se mogu koristiti za pronalaženje PID parametara, ali naša situacija ima jedinstvene aspekte koji nam omogućuju da koristimo "ručniji" eksperimentalni način pronalaska parametara. Jedinstveni aspekti koje imamo su:

  • Eksperimentatori (vi) dobro razumijete način rada stroja
  • Ne postoji opasnost od ozljeda ako kontroler poludi, kao ni opasnost od oštećenja robota zbog loših postavki kontrolera
  • Senzor svjetla je tako traljav senzorski uređaj, a postoji samo jedan svjetlosni senzor, pa se možemo samo nadati da ćemo dobiti marginalno dobar konačni rezultat. Stoga je "najbolji napor" u redu za naše pokuse

Prvo, već smo koristili “03 redak” za odlučivanje o najboljem Kp (DOBRA zadana vrijednost i JERKY Kp vrijednosti korak 18 i 20 gore). Pogledajte prvu grafiku za upute o tome kako smo pronašli vrijednost JERKY za Kp.

Pomoću softvera "04 line" odredite Ki. Prvo ćemo izmijeniti "4 redak" tako da ima vrijednosti koje smo zabilježili u točkama 18 i 20 gore. Zatim ćemo polako povećavati Ki dok ne dobijemo vrijednost koja nas doista vrlo brzo dovodi do zadane vrijednosti. Pogledajte drugu grafiku za upute o tome kako odabrati vrijednost za Ki.

21 NAJBRŽA Vrijednost Ki koja se najbrže taloži na zadanoj vrijednosti (čak i s nekim prekoračenjem) _

Pomoću softvera "05 line" odredite Kd. Najprije izmijenite "5 redak" s vrijednostima iz koraka 18, 20 i 21, zatim povećavajte Kd dok ne dobijete konačnog radnog robota koji brzo postiže zadanu vrijednost i s vrlo malim prekoračenjem ako ga ima. Treća slika prikazuje upute kako odabrati Kd.

22 OPTIMALNA vrijednost Kd _

23 KOLIKO DUGO JE VAŠ ROBOT POTREBIO SADA ZAOKRUŽITI STAZU ??? _

Korak 14: Zaključak

Laboratorijski eksperiment prošao je jako dobro. S 20 -ak učenika, koristeći 10 (deset) radnih stanica + robotskih postavki prikazanih na prvoj slici, nikada nije došlo do zastoja u resursima. Najviše su tri robota kružila stazom odjednom za vremenska ispitivanja.

Zbog preporučenih koncepata preporučujem da se PID kontrolni dio (u najmanju ruku, programi "04 redak" i "05 redak") izdvoji na zaseban dan.

Evo niza videozapisa koji prikazuju napredovanje kontrola (od "01 retka" do "05 retka") koristeći vrijednosti koje sam odabrao - ali svaki je učenik došao do malo drugačijih vrijednosti, što je i za očekivati!

ZAPAMTITE: Jedan od glavnih razloga zašto dobro pripremljeni robotski timovi loše prolaze na natjecanjima je činjenica da ne izvode kalibraciju na mjestu na kojem će se događaj održati. Osvjetljenje i male promjene položaja senzora uslijed trzanja mogu uvelike utjecati na vrijednosti parametara!

  • 01 redak (uključeno -isključeno) PID kontrola s Lego robotima -
  • Linija 02 (Uključeno-Isključeno s mrtve zone) PID kontrola s Lego robotima-https://videos.ecpi.net/Watch/n4A5Lor7
  • Linija 03 (proporcionalna) PID kontrola s Lego robotima -
  • 04 linija (proporcionalno -integralna) PID kontrola s Lego robotima -
  • Linija 05 (proporcionalno-integralno-izvedena) PID kontrola s Lego robotima-https://videos.ecpi.net/Watch/s6LRi5r7

Preporučeni: