Sadržaj:
- Korak 1: Uvod
- Korak 2: PID sustav upravljanja
- Korak 3: Samo balansirajući robot
- Korak 4: Dizajn robota
- Korak 5: Komponente projekta
- Korak 6: Struktura robota
- Korak 7: Kodirajte
- Korak 8: Zaključak
- Korak 9: Posebna hvala
Video: Samobalansirajući robot pomoću PID algoritma (STM MC): 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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 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 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
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
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:
Samobalansirajući robot - PID kontrolni algoritam: 3 koraka
Self Balancing Robot - PID Control Algorithm: Ovaj je projekt zamišljen jer me zanimalo saznati više o upravljačkim algoritmima i kako učinkovito implementirati funkcionalne PID petlje. Projekt je još uvijek u fazi razvoja jer se Bluetooth modul tek treba dodati što će omogućiti
Samobalansirajući robot iz Magicbita: 6 koraka
Samobalansirajući robot iz Magicbita: Ovaj vodič prikazuje kako napraviti samo balansirajućeg robota pomoću Magicbit dev ploče. Koristimo magicbit kao razvojnu ploču u ovom projektu koji se temelji na ESP32. Stoga se u ovom projektu može koristiti bilo koja razvojna ploča ESP32
Samobalansirajući robot na dva kotača: 7 koraka
Samobalansirajući robot s dva kotača: Ovaj instruktor će proći kroz proces projektiranja i izgradnje samobalansirajućeg robota. Kao napomenu, samo želim reći da samo uravnotežujući roboti nisu novi koncept i da su ih drugi izgradili i dokumentirali. Želim iskoristiti ovu priliku
HeadBot-samobalansirajući robot za STEM učenje i Outreach: 7 koraka (sa slikama)
HeadBot-samobalansirajući robot za učenje i informiranje o STEM-u: Headbot-dva metra visok, samobalansirajući robot-zamisao je tima South Eugene Robotics Team (SERT, FRC 2521), konkurentnog srednjoškolskog tima za robotiku u PRVOM Robotics Competition, iz Eugenea, Oregon. Ovaj popularni terenski robot čini
Kontrola brzine istosmjernog motora pomoću PID algoritma (STM32F4): 8 koraka (sa slikama)
Kontrola brzine istosmjernog motora pomoću PID algoritma (STM32F4): pozdrav svima, Ovo je tahir ul haq s drugim projektom. Ovaj put to je STM32F407 kao MC. Ovo je kraj projekta srednjeg semestra. Nadam se da vam se sviđa. Potrebno je mnogo koncepata i teorije pa ćemo prvo krenuti u to. S pojavom računala i