Sadržaj:

Samobalansirajući robot pomoću PID algoritma (STM MC): 9 koraka
Samobalansirajući robot pomoću PID algoritma (STM MC): 9 koraka

Video: Samobalansirajući robot pomoću PID algoritma (STM MC): 9 koraka

Video: Samobalansirajući robot pomoću PID algoritma (STM MC): 9 koraka
Video: naj osnovniji primer sa pic mikrokontrolerom 2024, Srpanj
Anonim
Samobalansirajući robot pomoću PID algoritma (STM MC)
Samobalansirajući robot pomoću PID algoritma (STM MC)

U posljednje vrijeme puno je posla učinjeno na samouravnotežavanju objekata. Koncept samo balansiranja započeo je uravnoteženjem obrnutog njihala. Ovaj se koncept proširio i na dizajn zrakoplova. U ovom projektu osmislili smo mali model samo balansirajućeg robota koristeći PID (proporcionalni, integralni, izvedeni) algoritam. Od tada je ova metoda novo lice sustava upravljanja industrijskim procesima. Ovo izvješće daje pregled metoda uključenih u samo balansiranje objekata. Ovaj je projekt proveden kao semestralni projekt radi razumijevanja povezanosti PID -a s učinkovitošću različitih industrijskih procesa. Ovdje se usredotočujemo samo na kratak pregled učinkovitosti i primjene PID kontrole. Ovaj je dokument razvijen kratkim uvodom u sustave upravljanja i srodnu terminologiju, uz motivaciju za projekt. Eksperimenti i zapažanja su poduzeti, zasluge i nedostaci su opisani i završavaju s budućim poboljšanjima. Model samobalansirajućeg robota razvijen je kako bi se razumjela djelotvornost PID -a u svijetu upravljačkog sustava. Prolazeći kroz rigorozna ispitivanja i eksperimente, otkrivene su prednosti i nedostaci PID regulacijskog sustava. Utvrđeno je da unatoč mnogim prednostima PID kontrole u odnosu na prethodne metode, ovaj sustav ipak zahtijeva mnogo poboljšanja. Nadamo se da će čitatelj dobro razumjeti važnost samo uravnoteženja, učinkovitost i nedostatke PID kontrole

Korak 1: Uvod

S dolaskom računala i industrijalizacijom procesa, kroz povijest čovjeka uvijek se istraživalo kako bi se razvili načini za doradu procesa i, što je još važnije, za njihovo samostalno upravljanje strojevima. Svrha je smanjiti čovjekovo sudjelovanje u tim procesima, čime se smanjuje pogreška u tim procesima. Stoga je razvijeno polje "Inženjering upravljačkih sustava". Inženjering upravljačkog sustava može se definirati kao korištenje različitih metoda za kontrolu rada procesa ili održavanje stalnog i preferiranog okruženja, bilo ručnog ili automatskog.

Jednostavan primjer može biti kontrola temperature u prostoriji. Ručna kontrola znači prisutnost osobe na gradilištu koja provjerava trenutne uvjete (senzor), uspoređuje je sa željenom vrijednošću (obrada) i poduzima odgovarajuće radnje za dobivanje željene vrijednosti (aktuator). Problem s ovom metodom je što nije baš pouzdana jer je osoba sklona greškama ili nemaru u svom poslu. Također, drugi problem je što brzina procesa koji pokreće pokretač nije uvijek ujednačena, što znači da se ponekad može dogoditi brže nego što je potrebno, a ponekad može biti sporo. Rješenje ovog problema bilo je korištenje mikrokontrolera za upravljanje sustavom. Mikrokontroler je

programirano za upravljanje procesom, prema zadanim specifikacijama, spojeno u krug (o čemu će biti riječi kasnije), unosi željenu vrijednost ili uvjete i na taj način kontrolira proces radi održavanja željene vrijednosti. Prednost ovog procesa je što u tom procesu nije potrebna ljudska intervencija. Također, brzina procesa je ujednačena

Osnovni sustav upravljanja

Prethodni dijagram prikazuje vrlo pojednostavljenu verziju upravljačkog sustava. Mikrokontroler je srce svakog upravljačkog sustava. To je vrlo važna komponenta, stoga bi njen odabir trebao biti napravljen pažljivo na temelju zahtjeva Sustava. Mikrokontroler prima ulaz od korisnika. Ovaj ulaz definira željeno stanje Sustava. Mikrokontroler također prima povratnu informaciju od senzora. Ovaj senzor je spojen na izlaz sustava, čiji se podaci vraćaju na ulaz. Mikroprocesor na temelju svog programiranja izvodi različite proračune i daje izlaz aktuatoru. Pogon, na temelju izlazne snage, kontrolira postrojenje kako bi pokušao održati te uvjete. Primjer bi mogao biti vozač motora koji upravlja motorom gdje je pokretač pogon, a motor pogon. Motor se tako okreće zadanom brzinom. Priključeni senzor očitava trenutno stanje postrojenja i vraća ga mikrokontroleru. Mikrokontroler ponovno uspoređuje, izračunava i tako se ciklus ponavlja. Ovaj proces se ponavlja i beskonačan je pri čemu mikrokontroler održava željene uvjete

Korak 2: PID sustav upravljanja

PID sustav upravljanja
PID sustav upravljanja
PID sustav upravljanja
PID sustav upravljanja

PID algoritam učinkovita je metoda projektiranja upravljačkog sustava.

Definicija

PID je kratica za Proporcionalno, Integralno i Derivativno. U ovom algoritmu primljeni signal pogreške je ulaz. I sljedeća jednadžba se primjenjuje na signal pogreške

U (t) = Kp ∗ e (t) + Kd ∗ d/dt (e (t)) + Ki ∗ integral (e (t)) (1.1)

Kratko objašnjenje

Kao što se može vidjeti u gornjoj jednadžbi, integral i derivacija signala pogreške izračunavaju se, množe s odgovarajućim konstantama i zbrajaju s konstantom Kp pomnoženom s e (t). Izlaz se zatim dovodi do aktuatora koji pokreće sustav. Pogledajmo sada redom svaki dio funkcije. Ova funkcija izravno utječe na vrijeme porasta, vrijeme pada, vršno preko snimanja, vrijeme slijeganja i pogrešku u stacionarnom stanju.

• Proporcionalni dio: proporcionalni dio smanjuje vrijeme porasta i smanjuje pogrešku stacionarnog stanja. To znači da će sustavu trebati manje vremena da postigne svoju vršnu vrijednost, a kada dosegne svoje stabilno stanje, pogreška u stabilnom stanju bit će niska. Međutim, povećava vršno prekoračenje.

• Derivativni dio: Derivativni dio smanjuje prekoračenje i vrijeme taloženja. To znači da će prolazno stanje sustava biti više prigušeno. Također, sustav će u kraće vrijeme postići stabilno stanje. Međutim, to nema utjecaja na vrijeme porasta ili pogrešku stacionarnog stanja.

• Sastavni dio: Sastavni dio smanjuje vrijeme porasta i potpuno eliminira pogrešku stacionarnog stanja. Međutim, povećava vršno prekoračenje i vrijeme taloženja.

• Ugađanje: Dobar upravljački sustav imat će kratko vrijeme uspona, vrijeme slijeganja, najveće prekoračenje i pogrešku u stacionarnom stanju. Stoga je potrebno Kp, Kd, Ki konačno prilagoditi kako bi se prilagodio doprinos gore navedenih čimbenika kako bi se stekao dobar sustav upravljanja.

Priložena je slika koja prikazuje učinak promjene različitih parametara u PID algoritmu.

Korak 3: Samo balansirajući robot

Samobalansirajući robot
Samobalansirajući robot

Samobalansirajući robot je višeslojni robot s dva kotača.

Robot će se pokušati uravnotežiti primjenom bilo koje nejednake sile. On će se uravnotežiti primjenom sile koja se suprotstavlja rezultantama sila na robotu.

Metode samo uravnoteženja

Postoje četiri metode samo balansiranja robota. To su kako slijedi:

Samo balansiranje pomoću dva IC osjetnika nagiba

Ovo je jedan od najgrubljih načina uravnoteženja robota jer zahtijeva vrlo malo hardvera i relativno jednostavan algoritam. U ovom pristupu koriste se dva nagnuta IR senzora za mjerenje udaljenosti između tla i robota. Na temelju izračunate udaljenosti, PID se može koristiti za pogon motora kako bi se u skladu s tim izbalansirao robot. Jedan nedostatak ove metode je to što IR senzor može propustiti neka očitanja. Drugi problem je što su prekid i petlje potrebni za izračun udaljenosti što povećava vremensku složenost algoritma. Stoga ova metoda uravnoteženja robota nije mnogo učinkovita.

Self Balancing pomoću akcelerometra

Akcelerometar nam daje ubrzanje tijela u 3 osi. Ubrzanje orijentirano u osi y (prema gore) i osi x (prema naprijed) daje nam mjeru za izračunavanje smjera gravitacije i stoga izračunavanje kuta nagiba. Kut se izračunava na sljedeći način:

θ = arktan (Ay/Ax) (1.2)

Nedostatak korištenja ove metode je što će se tijekom kretanja robota očitanjima dodati i horizontalno ubrzanje, što je visokofrekventni šum. Stoga će kut nagiba biti netočan.

Samo balansiranje pomoću žiroskopa

Za izračunavanje angluarskih brzina duž tri osi koristi se žiroskop. Kut nagiba dobiva se pomoću sljedeće jednadžbe.

θp (i) = θp (i − 1) + 1/6 (vali − 3 + 2vali − 2 + 2vali − 1 + vali) (1.3)

Jedan veliki nedostatak korištenja žiroskopa je taj što ima malu istosmjernu istosmjernost koja je niskofrekventni šum i za nekoliko vremena vraćene vrijednosti su potpuno pogrešne. To će nakon integracije uzrokovati da se nulta točka udalji. Kao rezultat toga, robot će neko vrijeme ostati u okomitom položaju te će pasti kad dođe zanošenje.

Samo balansiranje pomoću akcelerometra i žiroskopa

Kao što je gore rečeno, korištenje samo akcelerometra ili žiroskopa neće nam dati točan kut nagiba. Zbog toga se koriste i akcelerometar i žiroskop. Obje su ugrađene u MPU6050. Ovdje dobivamo podatke od oboje, a zatim ih spajamo ili pomoću Kalmanovog filtera ili komplementarnog filtera.

• Kalmanov filter: Kalmanov filtar izračunava najbolju procjenu stanja dinamičkog sustava na temelju bučnih mjerenja, minimizirajući srednju kvadratnu pogrešku procjene. Radi u dvije faze, predviđanju i ispravljanju, s obzirom na diskretne stohastičke jednadžbe koje opisuju dinamiku sustava. Međutim, to je vrlo složen algoritam za implementaciju, posebno na ograničenom hardveru mikrokontrolera.

• Dopunski filtar: Ovaj algoritam prvenstveno koristi podatke dobivene žiroskopom i integrira ih tijekom vremena kako bi dobio kut nagiba. Također koristi mali udio očitanja akcelerometra. Komplementarni filtar, naime, minimizira visokofrekventni šum akcelerometra i niskofrekventni šum žiroskopa, a zatim ih spaja kako bi dao najbolji točan kut nagiba.

Korak 4: Dizajn robota

Dizajn robota
Dizajn robota

Dizajnirali smo samo balansirajućeg robota pomoću kontrolera proporcionalne izvedbe implementiranog komplementarnim filterom za MPU6050. Ovaj mali model samo balansirajućeg robota ilustrirat će nam korisnost upravljačkih sustava u samouravnotežavanju robota.

Implementacija sustava:

Sustav je samobalansirajući robot. Provodi se pomoću PID kontrolera koji je proporcionalni integralni izveden kontroler. Uravnotežujemo robota vozeći njegove kotače u smjeru njegovog pada. Pritom pokušavamo zadržati težište robota iznad točke zakretanja. Da bismo pokrenuli kotače u smjeru njegova pada, trebali bismo znati gdje robot pada i brzinom pada. Ti se podaci dobivaju pomoću MPU6050 koji ima akcelerometar i žiroskop. MPU6050 mjeri kut nagiba i daje svoj izlaz mikrokontroleru. MPU6050 je povezan sa STM pločom kroz I2C. U I2C jedna žica služi za sat koji se naziva SCL. Drugi je za prijenos podataka koji je SDA. U tome se koristi komunikacija master slave. Početna i završna adresa specificirane su tako da znaju odakle podaci počinju i gdje završavaju. Ovdje smo implementirali komplementarni filtar za MPU6050 koji je matematički filtar za spajanje izlaza akcelerometra i žiroskopa. Nakon dobivanja podataka iz MPU6050, mikrokontroler će izvršiti izračune kako bi znao gdje pada. Na temelju proračuna, mikrokontroler STM dat će naredbe vozaču motora da vozi vozila u smjeru pada što će uravnotežiti robota.

Korak 5: Komponente projekta

Komponente projekta
Komponente projekta
Komponente projekta
Komponente projekta
Komponente projekta
Komponente projekta

Sljedeće komponente korištene su u projektu samo balansirajućeg robota:

STM32F407

Mikrokontroler dizajniran od strane ST Microelectronics. Radi na ARM Cortex-M arhitekturi.

Vozač motora L298N

Ova IC se koristi za pokretanje motora. Ima dva vanjska ulaza. Jedan iz mikrokontrolera koji mu šalje PWM signal. Podešavanjem širine impulsa može se podesiti brzina motora. Njegov drugi ulaz je izvor napona potreban za pogon motora, što je u našem slučaju 12V baterija.

Istosmjerni motor

DC motor radi na istosmjernom napajanju. U ovom pokusu istosmjerni motor radi pomoću optokaplera spojenih na pogon motora. Za pogon motora koristili smo Motor Drive L298N.

MPU6050

MPU6050 se koristi za dobivanje informacija o tome gdje robot pada. Njime se mjeri kut nagiba u odnosu na nultu točku nagiba, što je položaj MPU6050 kada se program pokrene.

MPU6050 ima troosni akcelerometar i troosni žiroskop. Akcelerometar mjeri ubrzanje duž tri osi, a žiroskop mjeri kutnu brzinu oko tri osi. Kako bismo kombinirali izlaz, moramo filtrirati zvukove obaju. Za filtriranje zvukova imamo Kalmanov i Dopunski filtar. U naš smo projekt implementirali komplementarni filtar.

Opto par 4N35

Optokapler je uređaj koji se koristi za izolaciju niskonaponskog dijela i visokonaponskog dijela kruga. Kao što naziv govori, djeluje na temelju svjetlosti. Kad niskonaponski dio dobije signal, struja teče u visokonaponskom dijelu

Korak 6: Struktura robota

Struktura robota je objašnjena na sljedeći način:

Fizička građa

Samobalansirajući robot sastoji se od dva sloja sastavljena od prozirnog plastičnog stakla. U nastavku su navedeni detalji dva sloja:

Prvi sloj

U donjem dijelu prvog sloja postavili smo ćeliju za napajanje STM ploče. Također su sa svake strane postavljena dva motora od po 4 volta sa spojenim gumama za kretanje robota. U gornji dio prvog sloja postavljene su dvije baterije od po 4 V (ukupno 8 V) i upravljački sklop motora (L298N) za rad motora.

Drugi sloj

U gornjem sloju robota postavili smo STM ploču na Perf Board. Još jedna perf ploča s 4 opto spojnice postavljena je na gornji sloj. Žiroskop se također postavlja na gornji sloj robota s donje strane. Obje komponente smještene su u srednji dio tako da se težište drži što je moguće niže.

Robotsko središte gravitacije

Težište se održava što je moguće niže. U tu smo svrhu na donji sloj postavili teške baterije, a na gornji sloj lagane komponente poput STM ploče i optičkih spregača.

Korak 7: Kodirajte

Kôd je sastavljen na Atollic TrueStudio. STM studio korišten je u svrhu otklanjanja pogrešaka.

Korak 8: Zaključak

Nakon mnogo eksperimentiranja i promatranja, konačno dolazimo do točke u kojoj sažimamo svoje rezultate i raspravljamo o tome koliko smo uspjeli implementirati i razraditi učinkovitost sustava.

Opći pregled

Tijekom pokusa brzina motora uspješno je kontrolirana pomoću PID algoritma. Krivulja ipak nije baš glatka ravna linija. Za to postoji mnogo razloga:

• Iako je senzor spojen na niskopropusni filtar, i dalje pruža određene konačne prekide; to je zbog nelinearnih otpora i nekih neizbježnih razloga analogne elektronike.

• Motor se ne okreće glatko pod malim naponom ili PWM. Pruža trzaje koji mogu uzrokovati neke pogrešne vrijednosti koje se unose u sustav.

• Zbog ljuljanja, senzor može propustiti neke proreze koji pružaju veće vrijednosti. • Drugi glavni razlog pogrešaka može biti frekvencija takta jezgre STM mikrokontrolera. Ovaj model STM mikrokontrolera daje jezgru takta 168MHz. Iako se u ovom projektu bavio ovim problemom, postoji općenito mišljenje o ovom modelu da ne pruža baš tako visoku frekvenciju.

Brzina otvorene petlje pruža vrlo glatku liniju sa samo nekoliko neočekivanih vrijednosti. PID algoritam također radi u redu pružajući vrlo kratko vrijeme taloženja motora. PID algoritam motora testiran je pod različitim naponima održavajući referentnu brzinu konstantnom. Promjena napona ne mijenja brzinu motora i pokazuje da PID algoritam radi ispravno

Efikasnost

Ovdje raspravljamo o učinkovitosti PID regulatora koju smo uočili tijekom eksperimentiranja.

Jednostavna implementacija

U odjeljku eksperimentiranja i opažanja vidjeli smo da je PID regulator vrlo jednostavan za implementaciju. Potrebna su samo tri parametra ili konstante koje je potrebno postaviti kako bi se imao sustav kontrole brzine

Nenadmašna učinkovitost za linearne sustave

Linearni PID regulator najučinkovitiji je u obitelji kontrolera jer je logika vrlo jednostavna i primjena je široko rasprostranjena u slučaju linearnih ili prilično linearnih aplikacija.

Ograničenja

Sažetak smo objasnili Ograničenja ovog sustava. Ovdje raspravljamo o nekoliko njih koje smo promatrali.

Odabir konstanti

Vidjeli smo da, iako je PID kontroler jednostavan za implementaciju, ipak je veliki nedostatak sustava što je korak odabira vrijednosti konstanti naporan; kao što je potrebno napraviti teške izračune. Drugi način je hit i trial metoda, ali to također nije učinkovito.

Konstante nisu uvijek konstantne

Eksperimentalni rezultati pokazali su da je za različite vrijednosti referentne brzine motora PID regulator neispravan za iste vrijednosti PID konstanti. Za različite brzine, konstante su se morale birati na različite načine i to eksponencijalno povećava računske troškove.

Nelinearno

PID regulator koji se koristi u našem slučaju je linearan, stoga se može primijeniti samo na linearne sustave. Za nelinearne sustave, regulator se mora implementirati različito. Iako su dostupne različite nelinearne metode PID -a, one zahtijevaju odabir više parametara. To opet čini sustav nepoželjnim zbog visokih računalnih troškova.

Potreban početni pritisak

U odjeljku eksperimentiranja pokazali smo da je za prilično malu referentnu brzinu, gdje je pogreška u startu prilično mala, PWM koji isporučuje PID toliko mali da ne generira potrebni zakretni moment motora. Dakle, motor u nekim pokusima ne radi ili u drugim pokusima omogućuje veliko prekoračenje i dulje vrijeme taloženja.

Korak 9: Posebna hvala

Posebno zahvaljujem članovima moje grupe koji su mi pomogli u ovom projektu.

Uskoro ću postaviti link na video.

Nadam se da će vam ovo uputstvo biti zanimljivo.

Ovo je Tahir Ul Haq iz UET -a koji se odjavljuje. Živjeli !!!

Preporučeni: