Enciklopedija zaštite od požara

Proporcionalni regulator.  Proporcionalni integralni diferencijalni PID regulator u robotici Lego Mindstorms. Proporcionalni regulator Robotsko upravljanje s dva svjetlosna senzora

Autor pojedinosti: Konovalov Igor Proporcionalni regulator je poboljšanje. Glavni nedostatak releja je da mu nije važno koliko se trenutne vrijednosti razlikuju od normalne vrijednosti senzora. Ima samo dva stanja - pokušajte povećati vrijednosti senzora za određeni konstantan broj ako su manje od normalne vrijednosti ili je povećajte. Zbog toga dolazi do oscilacija s konstantnom amplitudom, što je vrlo neučinkovito.
Puno je logičnije odrediti koliko su trenutna očitanja "daleko" od normale i ovisno o tome promijeniti amplitudu. Da bi bilo jasnije, pogledajmo primjer. Primjer je isti kao u prethodnom članku: robot iz Lego Mindstorms EV3 vozi duž crne linije pomoću jednog senzora u boji u svjetlosnom načinu rada.

Robot pokušava voziti po granici između bijele i crne i tu senzor pokazuje otprilike 50% osvjetljenja. I što je dalje od normalnog položaja, robot ulaže više napora da se vrati na 50%.
Za pisanje programa koristit ćemo pojmove "greška", "kontrolna radnja". Greška - razlika između trenutnog očitanja senzora i normalnog. U našem slučaju, ako sada robot vidi 20% osvjetljenja, tada je pogreška 20-50= -30%. Znak greške pokazuje u kojem smjeru se robot treba okrenuti da bi se riješio greške. Sada moramo reći motorima na koju stranu da okreću robota, kojom brzinom i koliko oštro. Potrebno je izvršiti upravljački učinak na motore, što znači koliko se naglo treba vratiti u normalan položaj. Kontrolno djelovanje (UP) izračunava se kao pogreška (greška) pomnožena s faktorom proporcionalnosti (k). Ovaj se faktor koristi za povećanje ili smanjenje utjecaja pogreške na regulacijsko djelovanje. Kontrola se prenosi u upravljač, gdje se postavlja prosječna brzina robota.
Kako postaviti omjer slike? Empirijski odaberite vrijednosti, za prolazak putanje može biti npr. od 0,2 do 1,5, ovisno o brzini i dizajnu robota. Ako je koeficijent prevelik, tada će robot snažno njihati, ako je mali, vozit će glatko, ali će se u nekom trenutku na zavoju pomaknuti zbog nedovoljne kontrole. Napišimo dvije verzije programa - s varijablama (za one koji su ih već proučavali) i bez.


Ali ovaj regulator se također može ojačati uvođenjem proporcionalne i integralne komponente, opis će biti u sljedećim člancima. Vidimo se uskoro!

Proporcionalni regulator je uređaj koji vrši upravljačko djelovanje u(t) na objekt proporcionalno njegovom linearnom odstupanju e(t) od zadanog stanja x0(t);

e(t)=x0(t)-x(t), gdje je x(t) stanje u ovaj trenutak vrijeme;

u(t)=ke(t), gdje je k faktor pojačanja.
Odnosno, što više robot odstupa od zadanog kursa, to bi motori trebali aktivnije raditi, izravnavajući ga.

Hodanje u redu s jednim svjetlosnim senzorom pomoću P kontrolera

Kretanje duž granice crnog i bijelog također se može graditi na P-regulatoru. Iako se izvana čini da je zadatak riješen samo uz pomoć relejnog kontrolera, budući da u sustavu postoje samo dva stanja vidljiva ljudskom oku: crno i bijelo. Ali robot sve vidi drugačije, za njega nema oštre granice između tih boja. Možemo reći da je kratkovidan i vidi gradijent prijelaza nijansi sive.

To je ono što će pomoći u izgradnji P-regulatora.
Definirajući stanje rada kao očitanja svjetlosnog senzora, naučit ćemo kako osigurati proporcionalni upravljački učinak na motore prema sljedećem zakonu:
e=s1-sivo, gdje je s1 trenutno očitanje senzora, a sivo postavljena vrijednost.

Koeficijent k (jednak ovaj primjer 2) mora biti dovoljno mali (od 1 do 3). Takav kontroler djeluje učinkovito samo za male kutove otklona, ​​pa robot mora biti postavljen u smjeru kretanja tako da senzor bude s lijeve strane crne linije. Lako je vidjeti da je kretanje duž linije na P-regulatoru glatko. au nekim područjima rada kreće se gotovo pravocrtno ili točno ponavljajući zavoje linije.

Kalibracija senzora

Pogledajmo broj 48 koji se koristi u formuli. Ovo je aritmetički prosjek očitanja svjetlosnog senzora na crno-bijelom, na primjer (40+56)/2=48. Međutim, očitanja senzora često se mijenjaju prema različiti razlozi: drugačija površina, promjena općeg osvjetljenja u prostoriji, mala izmjena strukture itd. Stoga ćemo ručno kalibrirati robota određivanjem očitanja svjetlosnog senzora na bijeloj i crnoj boji.

Praćenje linije s dva svjetlosna senzora pomoću P kontrolera
Prilično je teško ispravno proći kroz raskrižje s jednim svjetlosnim senzorom. Ako to želite učiniti dovoljno velikom brzinom, potrebna su vam najmanje dva senzora razmaknuta najmanje dvije širine linije (ili šire).
Postoje četiri stanja senzora kada se kreće:

  • oba na bijelom - ravno;
  • lijevo (s1) nije crno, desno (s2) na bijelom - pomaknite se ulijevo;
  • lijevo na bijelo, desno na crno - kretanje udesno;
  • oba na crno - ide ravno.
Da. ako su očitanja senzora jednaka (oba bijela ili oba crna), robot ide ravno. Prije pokretanja robota, automatski ćemo kalibrirati oba senzora. Tada će algoritam kretanja duž linije s P-kontrolerom izgledati ovako:

Koeficijent k može varirati u prilično širokom rasponu (od 1 do 20 ili više) ovisno o zakrivljenosti linije, sposobnostima manevriranja robota i razlici između crnog i bijelog na terenu.
Važan uvjet. Autokalibraciju treba provesti na jednobojnoj površini i po mogućnosti pri osvjetljenju koje će zauzeti najveći dio putanje. Na primjer, ako se robot kreće po crnoj liniji na bijelom polju, tada je potrebno izvršiti kalibraciju na bijelom. Oni. pozicija robota na startu bi trebala biti ovakva:


I još jedna napomena. Postoje senzori čija se očitanja razlikuju za 10-20%. Preporučljivo je ne spajati ih s regulatorom s velikim koeficijentom, jer s oštrom promjenom ukupnog osvjetljenja, čak i na ravnomjernom bijelom polju, odstupanja mogu biti drugačija, što će dovesti do neočekivanih posljedica.

Robotika je zanimljiv novi smjer, koji će se, prema svemu sudeći, nastaviti razvijati u okviru školski tečajevi informatike i tehnologije. Procvat robotike uvelike je posljedica činjenice da vam omogućuje odgovor na pitanje: "Zašto zapravo učimo programirati?". Osim toga, na kolegiju robotike možete se upoznati s elementarnim pojmovima teorije automatskog upravljanja.

Ova stranica predstavlja simulatore za programiranje i Arduino ploče koje je razvio autor. Oni mogu pomoći u slučajevima kada iz nekog razloga nije moguće koristiti pravi hardver.

Treneri koriste značajke HTML5, tako da će raditi samo u moderni preglednici(najbolje koristiti Google Chrome ili Mozilla Firefox).

Vijesti sada i na Telegram kanalu

27. studenog 2015
Staza "klica" dodana je simulatorima ( M.V. Lazarev, Orehovo-Zujevo).

13. listopada 2015
Sada u simulatorima za LEGO robota možete učitati svoje staze (polja za robota). Kako to učiniti? Vidjeti.
Dodani novi simulatori - LEGO roboti s dva, tri, četiri svjetlosna senzora.

Jezik upravljanja robotom

Za upravljanje robotima u simulatorima koristi se jednostavan programski jezik, koji je dobio radni naziv SiRoP (Jednostavno programiranje robota).

Kontrola robota sa senzorom svjetla

Senzor svjetla omogućuje robotu navigaciju po površini stola, na primjer, kretanje duž granice između bijele i crne površine (duž ruba crne linije). Fotodioda osvjetljava površinu, fotodetektor "hvata" odbijene zrake i mjeri njihov intenzitet.

Najpopularniji zadatak ove vrste je kretanje po liniji. Uz pomoć simulatora možete proučavati različite zakone upravljanja - relejno, proporcionalno, pa čak i PID upravljanje (proporcionalno-integralno-derivativno).

Primjeri programa za robota sa svjetlosnim senzorom

Dok je 1 (ako je senzor > 128 (motor = 100 motor = 0) inače (motor = 0 motor = 100) čekaj(10) )

KP = 0,2 dok je 1 ( u = kP*(senzor-128) motor = 50 + u motor = 50 - u čekaj(20) )

Glavni ( dok 1 ( dok senzor > 128 ( motor = 100 motor = 100 čekaj(10) ) nazad() okreni() ) nazad ( motor = -100 motor = -100 čekaj(260) ) okreni ( motor = -50 motor = 50 čekanja(50) )

Upravljanje robotom s dva svjetlosna senzora

Dva svjetlosna senzora omogućuju robotu bolju navigaciju i praćenje tanke linije. Izvučeni su malo naprijed i razdvojeni na strane. Što se tiče zadataka s jednim senzorom, pomoću ovog simulatora možete proučavati različite zakone upravljanja.

Primjeri programa za robota s tri svjetlosna senzora

Kontrola robota s četiri svjetlosna senzora

Četiri svjetlosna senzora omogućuju robotu da bolje detektira oštra skretanja. Za fino podešavanje koriste se unutarnji senzori, za njih se koristi proporcionalna kontrola. Dva vanjski senzori odnesena malo naprijed i razdvojena na strane. Koriste se kada postoji oštar zaokret. Faktor pojačanja za kontrolu prema očitanjima senzora vanjskog para odabran je veći nego za unutarnji par (vidi sl. L.Yu. Ovsyanitskaya et al., Algoritmi i programi za kretanje robota Lego Mindstorms EV3 duž linije, M.: "Pero", 2015).

Primjeri programa za robota s četiri svjetlosna senzora

Dok je 1 ( d0 = enkoder > 128 d1 = enkoder > 128 d2 = enkoder > 128 d3 = enkoder > 128 if d1 & !d2 ( motor = 100 motor = 0 ) if! d1 & d2 ( motor = 0 motor = 100 ) ako d1 == d2 ( motor = 100 motor = 100 ) ako d0 & !d3 ( motor = 30 motor = 0 ) ako! d0 & d3 ( motor = 0 motor = 30 ) čekaj (10) )

K1 = 0,2 k2 = 0,4 dok je 1 ( u1 = senzor - senzor u2 = senzor - senzor motor = 50+k1*u1+k2*u2 motor = 50-k1*u1-k2*u2 čekaj(10) )

Upravljanje robotom pomoću senzora udaljenosti (sonara)

Senzor udaljenosti (sonar) omogućuje određivanje udaljenosti do najbliže prepreke dok se robot kreće. Emitira ultrazvučni signal i prima reflektirani signal. Što je dulje vrijeme između odaslanog i primljenog signala, veća je udaljenost.

Pomoću senzora udaljenosti, robot se može programirati da automatski upravlja labirintom poznatog oblika, ali nepoznate veličine.

Ovaj zadatak je klasičan, ideološki jednostavan, može se riješiti više puta i svaki put ćete otkriti nešto novo.

Postoji mnogo pristupa za rješavanje problema sljedeće linije. Odabir jednog od njih ovisi o specifičnom dizajnu robota, o broju senzora, njihovom položaju u odnosu na kotače i međusobno.

U našem će se primjeru tri primjera robota rastaviti na temelju glavnog modela udžbenika Robot Educator.

Za početak skupljamo osnovni model obrazovni robot Robot Educator, za to možete koristiti upute u softver MINDSTORMS EV3.

Također, na primjer, potrebni su nam EV3 senzori svjetlosne boje. Ovi svjetlosni senzori, kao nijedan drugi, najbolji način prikladni za naš zadatak, kada radimo s njima, ne moramo brinuti o intenzitetu ambijentalnog svjetla. Za ovaj senzor, u programima ćemo koristiti način reflektirane svjetlosti, u kojem se procjenjuje količina reflektirane svjetlosti crvenog osvjetljenja senzora. Ograničenja očitanja senzora 0 - 100 jedinica, za "bez refleksije" i " potpuni odraz" odnosno.

Na primjer, analizirat ćemo 3 primjera programa za kretanje po crnoj stazi prikazanoj na ravnoj, svijetloj pozadini:

· Jedan senzor, s P regulatorom.

· Jedan senzor, s PK regulatorom.

· Dva senzora.

Primjer 1. Jedan senzor, s P regulatorom.

Oblikovati

Senzor svjetla je postavljen na gredu koja je prikladno smještena na modelu.


Algoritam

Rad algoritma temelji se na činjenici da, ovisno o stupnju preklapanja, snop osvjetljenja senzora s crnom linijom, očitanja koja vraća senzor variraju u gradijentu. Robot zadržava položaj svjetlosnog senzora na rubu crne linije. Konvertiranjem ulaznih podataka sa svjetlosnog senzora, upravljački sustav generira vrijednost brzine okretanja robota.


Budući da na stvarnoj putanji senzor generira vrijednosti u svom cijelom radnom rasponu (0-100), vrijednost kojoj robot teži je 50. U ovom slučaju, vrijednosti koje se prenose na funkciju rotacije formiraju se u rasponu -50 - 50, ali ove vrijednosti nisu dovoljne za strmu rotaciju putanje. Stoga bi raspon trebao biti proširen jedan i pol puta na -75 - 75.

Konačno, u programu je funkcija kalkulatora jednostavan proporcionalni regulator. čija funkcija ( (a-50)*1.5 ) u radnom rasponu svjetlosnog senzora generira vrijednosti rotacije u skladu s grafikonom:

Primjer algoritma

Primjer 2. Jedan senzor, s PK kontrolerom.

Ovaj primjer je sastavljen na istom dizajnu.

Vjerojatno ste primijetili da se u prethodnom primjeru robot previše ljuljao, što mu nije dopuštalo da dovoljno ubrza. Sada ćemo pokušati malo popraviti ovu situaciju.

Našem proporcionalnom regulatoru također dodajemo jednostavan kockasti regulator, koji će dodati zaokret funkciji regulatora. To će smanjiti ljuljanje robota u blizini željene granice putanje, kao i napraviti jače trzaje na velikoj udaljenosti od nje.

Jedno od osnovnih kretanja u legokonstrukciji je praćenje crne linije.

Opća teorija i konkretni primjeri izrada programa opisana je na web stranici wroboto.ru

Opisat ću kako to implementiramo u EV3 okruženju, jer postoje razlike.

Prvo što robot treba znati je vrijednost "idealne točke" koja se nalazi na granici crnog i bijelog.

Mjesto crvene točke na slici upravo odgovara ovom položaju.

Idealna opcija izračuna je izmjeriti vrijednost crno-bijelog i uzeti aritmetičku sredinu.

Možete to učiniti ručno. Ali nedostaci su odmah vidljivi: tijekom čak i kratkog vremena, osvjetljenje se može promijeniti, a izračunata vrijednost će se pokazati netočnom.

Dakle, možete natjerati robota da to učini.

Tijekom pokusa otkrili smo da nije potrebno mjeriti i crno i bijelo. Samo se bijelo može mjeriti. A vrijednost idealne točke izračunava se kao vrijednost bijele podijeljena s 1,2 (1,15), ovisno o širini crne linije i brzini robota.

Izračunata vrijednost mora biti zapisana u varijablu kako bi joj se kasnije pristupilo.

Izračun “idealne točke”

Sljedeći parametar uključen u kretanje je brzina okreta. Što je veći, robot oštrije reagira na promjene u osvjetljenju. Ali također veliki značaj uzrokovat će klimanje robota. Vrijednost se odabire eksperimentalno pojedinačno za svaki dizajn robota.

Posljednji parametar je osnovna snaga motora. Utječe na brzinu robota. Povećanje brzine kretanja dovodi do povećanja vremena odgovora robota na promjene u osvjetljenju, što može dovesti do odstupanja od putanje. Vrijednost se također odabire eksperimentalno.

Radi praktičnosti, ovi se parametri također mogu zapisati u varijable.

Omjer upravljanja i osnovna snaga

Logika kretanja duž crne linije je sljedeća: mjeri se odstupanje od idealne točke. Što je veći, to bi robot trebao snažnije nastojati da se vrati u njega.

Da bismo to učinili, izračunavamo dva broja - vrijednost snage svakog od motora B i C zasebno.

U obliku formule to izgleda ovako:

Gdje je Isens vrijednost očitanja svjetlosnog senzora.

Konačno, implementacija u EV3. Najprikladnije je izdati u obliku zasebnog bloka.

Implementacija algoritma

Ovo je algoritam koji je implementiran u robotu za srednju kategoriju WRO 2015

Slični postovi