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, Novembar
Anonim
Poučavanje PID kontrole pomoću Lego robota
Poučavanje PID kontrole pomoću Lego robota

Mnogi mladi entuzijasti robota zainteresirani su za naprednije teme upravljanja, ali ih može omesti račun koji je često potreban za analizu sistema 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 sistem, određeni broj robota (njih 5 do 10), jednak broj računarskih radnih stanica sa 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 nivou ECPI univerziteta, i dr. Rezi Jafari, koji je pružio PID Control ciljeve učenja za mapiranje ideja prema EET220 i Capstone kursevi.

Korak 1: Laboratorijska priprema prije dolaska učenika

Laboratorijske pripreme prije dolaska studenata
Laboratorijske pripreme prije dolaska studenata

Obavijestite studente o vašem napornom radu;-)

Instruktori i asistenti u nastavi VEOMA su zauzeti pripremajući se za ovaj laboratorij! Robot je napunjen i sastavljen za ovu laboratoriju. 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 detaljna uputstva o tome kako izgraditi robota koje ćemo koristiti danas, pogledajte obrazovni komplet NXT 2.0 ili 2.1, Vodič za izgradnju robota „prati liniju“. Koristit ćemo ipak složenije programiranje … Crna električna traka na svijetlim linoleumu čini odličnu pjesmu. Ovaj je dimenzija 3 'x 7' s polukružnim krivinama.

Korak 2: Upoznajte se sa robotom

Upoznajte se sa robotom
Upoznajte se sa robotom

Prvo ćete se upoznati s izbornikom robota, kao i nekim dijelovima ovog određenog robota. Naučit ćete i o tehnologiji senzora industrijskog stila koju koristi robot, uključujući diode koje emitiraju svjetlost, svjetlosne senzore, koračne motore i senzore položaja rotacije. Molimo vas da popunite sve tražene podatke (obično podvučene praznine _).

1. Odvojite robota od punjača i/ili USB priključka na računaru. Uključite robota pomoću narančaste tipke. Narandžasti, lijevi i desni taster i dugme „nazad“sivo pravokutno omogućavaju navigaciju kroz meni. Idite na izbornik "Softverske datoteke" i pomičite se kroz dostupne softverske datoteke na robotu. Navedite imena svake softverske datoteke, tačno kako je napisana, uključujući velika slova i razmake:

_

Korak 3: Kalibrirajte svjetlosni senzor

Kalibrirajte svjetlosni senzor
Kalibrirajte svjetlosni senzor

2 Pregledajte senzor svjetla i informacije o kalibraciji. Napravite sigurnosnu kopiju u glavnom meniju i odaberite "Prikaži". Odaberite opciju „Reflected Light“i port (trebao bi biti „Port 3“) koji uzrokuje uključivanje svjetla i prikaz broja na ekranu. 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čitavanje na svijetlim podovima od linoleuma: _

c. Minimalno očitanje pri usmjeravanju na središte crne trake: _

Korak 4: Testirajte kalibraciju motora

Ispitajte kalibraciju motora
Ispitajte kalibraciju motora

3 Pregledajte motore kotača (lijevo i desno), kao i podatke o kalibraciji. Napravite sigurnosnu kopiju na glavnom izborniku 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 ekrana za kalibraciju “View” à “Motor Degrees”.

Motor na priključku B

  • Broj okretanja kotača _
  • Prikazana vrijednost „Rotacije motora“_
  • Rastojanje u stepenima točkića je rotirano_
  • Vrijednost prikaza "Motor Degrees" _

Motor na priključku C

  • Broj okretanja kotača _
  • Prikazana vrijednost „Rotacije motora“_
  • Rastojanje u stepenima točkića je rotirano_
  • Vrijednost prikaza "Motor Degrees" _

Jesu li prikazane vrijednosti bile u skladu s vašim očekivanjima? Molimo objasnite. _

Korak 5: Pokrenite isporučeni On-Off kontroler

Pokrenite isporučeni On-Off kontroler
Pokrenite isporučeni On-Off kontroler

"On-Off" (ponekad se naziva "Bang-Bang") kontroler ima samo dvije mogućnosti, uključivanje i isključivanje. Slična je kontroli termostata 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 "Greška". Mogli biste reći, ako je greška pozitivna, uključite izmjenični napon, inače uključite grijanje.

U našem slučaju, robot će se okrenuti lijevo ili desno, ovisno o tome ima li zadana vrijednost senzora svjetla pozitivnu ili negativnu greš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 linija". Morat ćete izvršiti program s brojem “1” u svom imenu, a zatim postaviti robota na traku, sa senzorom na crnoj liniji. Pokušajte se držati podalje od drugih robota koji su već na stazi kako biste mogli mjeriti vrijeme robota bez prekida naleta na druge robote.

4 Izmjerite sljedeće vremenske probe:

a. Vrijeme za završetak jedne ravne strane staze: _

b. Opišite kretanje robota ravnim kolosijekom: _

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

d. Opišite kretanje robota sa zakrivljenim gusjenicama: _

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

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

Otvorite
Otvorite
Otvorite
Otvorite
Otvorite
Otvorite

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

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

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

Korak 7: Razumevanje softvera za uključivanje-isključivanje kontrolera „01 linija“

Razumevanje
Razumevanje

Program „1 red“koristi „On-Off“metod upravljanja. U ovom slučaju, opcije su ili "Skrenite lijevo" ili "Skrenite desno". Grafika sadrži opis elemenata programa:

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 gore navedenom 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 greške i promijenili broj koji se oduzima (pogledajte sliku ispod). Sada povežite robota s računarom 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, a jednom sa ZLOĆOM.

7 Dovršite vremenska ispitivanja sa dobrim i lošim vrijednostima zadane vrijednosti

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

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 pomoću softvera za kontroler mrtve zone

Razumevanje
Razumevanje

Ako bi se klima i grijanje u vašem domu stalno uključivali i isključivali, to bi definitivno moglo uništiti vaš HVAC sistem (ili barem skratiti njegov vijek trajanja). Većina termostata je napravljena sa ugrađenom "mrtvom zonom". Na primjer, ako je vaša zadana vrijednost 70 stupnjeva celzijusa, 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 može 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 red“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 grešci, ali ako je greška mala, robot će ići ravno.

Program "02 linija" prvo izračunava gornje vrijednosti oduzimanjem zadane vrijednosti od mjerenja svjetlosti, a zatim vrši usporedbe kako je gore navedeno. Pregledajte program na računaru i zapišite vrednosti koje vidite.

Koja je trenutna (originalna) vrijednost zadane vrijednosti programa „2 reda“? _

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

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

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

Pokrenite tri (3) vremenska ispitivanja s različitim vrijednostima za gornju grešku „Velika“. Trenutne postavke "2 reda", kao i dvije druge postavke koje ćete izračunati. Već ste odabrali DOBRU zadatu vrijednost za svog robota. Sada ćete izabrati dva različita raspona mrtvog opsega i snimiti vrijeme potrebno robotu da napravi jedan krug u smjeru kazaljke na satu:

Originalne postavke za 02 red _

Mrtvi opseg od +4 do -4 _

Mrtvi opseg od +12 do -12 _

Korak 10: Razumijevanje softvera proporcionalnog kontrolera "03 Line"

Razumevanje
Razumevanje

Uz proporcionalnu kontrolu, ne samo da uključujemo ili isključujemo grijanje, već možemo imati nekoliko postavki koliko treba uključiti 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 greška, brže se želimo vratiti na liniju.

Pogledajmo proporcionalnu kontrolu s programom "03 linija"

Program za "liniju 03" kompliciraniji 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 ekran odjednom, ali zaista ima tri dijela, kao što je prikazano na priloženoj slici.

A - Matematika za izračunavanje greške i "račun" za pronalaženje integrala i derivacije greške tokom vremena.

B - Matematika za izračunavanje brzine lijevog motora na osnovu postavki PID kontrole za 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 Line (proporcionalna kontrola)

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

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

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

Kp odlučuje koliko glatko robot mijenja brzinu dok se udaljava od crte. Ako je Kp prevelik, kretanje će biti izuzetno 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, posebno na krivinama. Možda će čak i zaći toliko daleko da će izgubiti liniju!

13 Koju zadatu vrijednost koristi program „03 linija“? (oduzima se nakon čitanja postavke svjetla u A petlji) _

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

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

Koristit ćete izvorne postavke za program "03 linija" 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 kreće i vjerovatno gubi iz vida liniju (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 koje čini robota trzanjem naprijed -natrag, vrlo slično pokretu On -Off. Isprobajte vrijednost Kp negdje između 1,5 i 3,5 (ili drugu vrijednost) dok ne dobijete vrijednost u kojoj robot tek počinje pokazivati kretanje naprijed -nazad, ali ne previše dramatično. Ovo je poznato i 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 prati samo kratku dužinu staze. Ne zaboravite svaki put preuzeti promjene na svog robota!

15 Snimite proporcionalne kontrolne vrijednosti i vremenske probe 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 greš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 informacije, s određenim robotom koji namjeravate koristiti za ovu laboratoriju. Svaki robot se malo razlikuje, 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čitavanje senzora svjetlosti (od koraka 2) _

17 Minimalno očitavanje senzora svjetlosti (od koraka 5) _

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

19 Postavka DRIFTY za Kp (od koraka 15) _

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

Razumevanje PID kontrolera

Možda ste naučili o kontroleru proporcionalnih integralnih diferencijala (PID) kao dio kursa Industrijske kontrole, a dobar brzi pregled dostupan je na Wikipediji (https://en.wikipedia.org/wiki/PID_controller).

U slučaju ovog eksperimenta, izmjerena vrijednost je količina svjetlosti odbijene od poda. Zadana vrijednost je željena količina svjetlosti kada se robot nalazi neposredno iznad ruba crne trake. Greška je razlika između trenutnog očitanja svjetla i zadane vrijednosti.

S proporcionalnim kontrolerom, brzina lijevog motora bila je proporcionalna grešci. Konkretno:

Greška = Lako očitavanje-zadana vrijednost

Na ovoj slici je zadana vrijednost postavljena na 50.

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

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

Gdje je na ovoj slici Kp postavljeno na 1,5, a dodavanje 35 događa se u drugom dijelu programa. Vrijednost 35 se dodaje 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 vrsta sjećanja na prošlost. Ako je greška duže vrijeme bila velika, robot bi trebao ubrzati prema zadanoj vrijednosti. Ki se koristi za množenje s Integralom (integral je tekući zbir grešaka - u ovom slučaju se smanjuje za 1,5 svake iteracije tako da će robot imati "blijeduću memoriju" prošlih grešaka).

Derivat je vrsta predviđanja budućnosti. Predviđamo buduću grešku upoređujući posljednju grešku sa trenutnom greškom i pretpostavljamo da će stopa promjene greške biti donekle linearna. Što se predviđa da će buduća greška biti veća, brže moramo prijeći na zadanu vrijednost. Kd se koristi za množenje sa derivacijom (derivat je razlika između trenutne greške i prethodne greške).

L Motor = (Kp * Greš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

Postoji nekoliko načina 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 pronalaženja parametara. Jedinstveni aspekti koje imamo su:

  • Eksperimentatori (vi) dobro razumijete način rada mašine
  • Ne postoji opasnost od ozljeda ako kontroler poludi, a također nema ni opasnosti 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 eksperimente

Prvo, već smo koristili “03 red” 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 red” kako bi imale vrijednosti koje smo zabilježili u stavkama 18 i 20 gore. Zatim ćemo polako povećavati Ki dok ne dobijemo vrijednost koja nas zaista brzo dovodi do zadane vrijednosti. Pogledajte drugu grafiku za upute o tome kako odabrati vrijednost za Ki.

21 FASTEST Vrijednost Ki koja se najbrže taloži na zadatoj tački (čak i sa nekim prekoračenjem) _

Pomoću softvera „05 line“odredite Kd. Prvo izmijenite "5 redak" s vrijednostima iz koraka 18, 20 i 21, zatim povećavajte Kd dok ne dobijete konačnog radnog robota koji brzo dostiž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 DA ODMAH ZAOKRUŽI STAZU ??? _

Korak 14: Zaključak

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

Preporučujem da se dio PID kontrole (u najmanju ruku, programi "04 linija" i "05 linija") odvoji na poseban dan, zbog uključenih koncepata.

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

ZAPAMTITE: Jedan od glavnih razloga zbog kojih dobro pripremljeni robotski timovi prolaze loše na takmičenjima je činjenica da ne izvode kalibraciju na tačnoj lokaciji na kojoj će se događaj održati. Osvjetljenje i male promjene položaja senzora uslijed trzanja mogu uvelike utjecati na vrijednosti parametara!

  • 01 linija (uključeno -isključeno) PID kontrola s Lego robotima -
  • 02 linija (uključeno-isključeno sa mrtve zone) PID kontrola s Lego robotima-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 linija (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čuje se: