Sisukord:

Isetasakaalustav robot, kasutades PID -algoritmi (STM MC): 9 sammu
Isetasakaalustav robot, kasutades PID -algoritmi (STM MC): 9 sammu

Video: Isetasakaalustav robot, kasutades PID -algoritmi (STM MC): 9 sammu

Video: Isetasakaalustav robot, kasutades PID -algoritmi (STM MC): 9 sammu
Video: Как использовать акселерометр и гироскоп MPU-6050 с кодом Arduino 2024, Juuli
Anonim
Isetasakaalustav robot, kasutades PID -algoritmi (STM MC)
Isetasakaalustav robot, kasutades PID -algoritmi (STM MC)

Viimasel ajal on tehtud palju tööd objektide isetasakaalustamisega. Isetasakaalustamise kontseptsioon sai alguse pööratud pendli tasakaalustamisest. See kontseptsioon laienes ka lennukite projekteerimisele. Selles projektis oleme välja töötanud väikese isetasakaalustava roboti mudeli, kasutades PID (proportsionaalne, integraalne, tuletis) algoritmi. Sellest ajast alates on see meetod tööstusprotsesside juhtimissüsteemide uus nägu. See aruanne vaatab läbi objektide isetasakaalustamisega seotud meetodid. See projekt viidi läbi semestriprojektina, et mõista PID -i korrelatsiooni erinevate tööstusprotsesside tõhususega. Siin keskendume ainult lühikese ülevaate andmisele PID -kontrolli tõhususe ja rakendamise kohta. Käesolev dokument on välja töötatud lühikese sissejuhatusega juhtimissüsteemidesse ja nendega seotud terminoloogiatesse ning projekti motivatsioonile. Tehti katseid ja tähelepanekuid, kirjeldati eeliseid ja puudusi, mis lõppesid tulevaste täiustustega. PID -i tõhususe mõistmiseks juhtimissüsteemi maailmas töötati välja isetasakaalustava roboti mudel. Läbides mõned ranged testid ja katsed, avastati PID -kontrollisüsteemi eelised ja puudused. Leiti, et vaatamata paljudele PID -eelistele eelmiste meetodite ees, nõuab see süsteem siiski palju täiustusi. Loodetavasti saab lugeja hästi aru enese tasakaalustamise tähtsusest, PID -kontrolli tõhususest ja puudustest.

Samm 1: Sissejuhatus

Arvutite tuleku ja protsesside industrialiseerimisega on inimkonna ajaloo vältel alati tehtud uuringuid protsesside täpsustamiseks ja mis veelgi olulisem - nende juhtimiseks autonoomselt. Eesmärk on vähendada inimeste osalust nendes protsessides, vähendades seeläbi nende protsesside vigu. Seetõttu töötati välja juhtimissüsteemi inseneri valdkond. Juhtimissüsteemi projekteerimist saab määratleda kui protsessi töötamise või püsiva ja eelistatud keskkonna hooldamise, olgu see siis käsitsi või automaatne, kasutamist erinevate meetodite abil.

Lihtne näide võib olla ruumi temperatuuri reguleerimine. Käsitsi juhtimine tähendab inimese viibimist objektil, kes kontrollib praeguseid tingimusi (andur), võrdleb seda soovitud väärtusega (töötlemine) ja võtab vajalikke meetmeid soovitud väärtuse (ajam) saamiseks. Selle meetodi probleem on see, et see pole eriti usaldusväärne, kuna inimene on oma töös altid vigadele või hooletusele. Veel üks probleem on see, et täiturmehhanismi algatatud protsessi kiirus ei ole alati ühtlane, mis tähendab, et mõnikord võib see toimuda kiiremini kui nõutud või mõnikord aeglaselt. Selle probleemi lahendus oli süsteemi juhtimiseks kasutada mikrokontrollerit. Mikrokontroller on

mis on programmeeritud protsessi juhtima vastavalt antud spetsifikatsioonidele, ühendatud ahelasse (arutatakse hiljem), söödetud soovitud väärtusele või tingimustele ja kontrollib seeläbi protsessi soovitud väärtuse säilitamiseks. Selle protsessi eeliseks on see, et selles protsessis ei ole vaja inimese sekkumist. Lisaks on protsessi kiirus ühtlane

Põhiline juhtimissüsteem

Eelmine diagramm näitab juhtimissüsteemi väga lihtsustatud versiooni. Mikrokontroller on mis tahes juhtimissüsteemi keskmes. See on väga oluline komponent, seetõttu tuleks selle valik teha hoolikalt, lähtudes süsteemi nõuetest. Mikrokontroller saab kasutajalt sisendi. See sisend määrab süsteemi soovitud seisundi. Mikrokontroller saab andurilt ka tagasiside. See andur on ühendatud süsteemi väljundiga, mille teave suunatakse sisendisse tagasi. Mikroprotsessor, mis põhineb oma programmeerimisel, teostab erinevaid arvutusi ja annab täiturmehhanismile väljundi. Täiturmehhanism kontrollib väljundi põhjal tehast, et neid tingimusi säilitada. Näitena võib tuua mootorsõidukijuhi, kes juhib mootorit, kus mootori juht on ajam ja mootor on tehas. Mootor pöörleb seega kindla kiirusega. Ühendatud andur loeb seadme praegust seisukorda ja suunab selle tagasi mikrokontrollerile. Mikrokontroller võrdleb uuesti, teeb arvutusi ja seega tsükkel kordub. See protsess on korduv ja lõputu, kusjuures mikrokontroller säilitab soovitud tingimused

2. samm: PID -põhine juhtimissüsteem

PID -põhine juhtimissüsteem
PID -põhine juhtimissüsteem
PID -põhine juhtimissüsteem
PID -põhine juhtimissüsteem

PID -algoritm on tõhus juhtimissüsteemi kavandamise meetod.

Definitsioon

PID tähistab proportsionaalset, integraalset ja tuletist. Selles algoritmis on sisendiks saadud veasignaal. Ja veasignaalile rakendatakse järgmine võrrand

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

Lühike selgitus

Nagu ülaltoodud võrrandist näha, arvutatakse veasignaalide integraal ja tuletis, korrutatakse nende vastavate konstantidega ja lisatakse koos konstandiga Kp korrutatuna e (t) -ga. Seejärel suunatakse väljund ajamile, mis paneb süsteemi tööle. Nüüd vaatame kordamööda iga funktsiooni osa. See funktsioon mõjutab otseselt tõusuaega, langemisaega, tipphetke, settimisaega ja püsiseisundi viga.

• Proportsionaalne osa: Proportsionaalne osa vähendab tõusuaega ja vähendab püsiseisundi viga. See tähendab, et süsteem võtab oma tippväärtuse saavutamiseks vähem aega ja püsiseisundi saavutamisel on püsiseisundi viga väike. See aga suurendab tipu ületamist.

• Tuletisosa: tuletisosa vähendab ülestõusu ja settimisaega. See tähendab, et süsteemi mööduv olek on rohkem summutatud. Samuti saavutab süsteem oma püsiseisundi lühema ajaga. Siiski ei mõjuta see tõusu aega ega püsiseisundi viga.

• Integreeritud osa: lahutamatu osa vähendab tõusuaega ja kõrvaldab täielikult püsiseisundi vea. See aga suurendab tipu ületamist ja settimisaega.

• Häälestamine: heal juhtimissüsteemil on madal tõusuaeg, settimisaeg, tipu ületamine ja püsiseisundi viga. Seetõttu tuleb hea juhtimissüsteemi saamiseks Kp, Kd, Ki lõplikult häälestada, et kohandada ülaltoodud tegurite panust.

Lisatud on joonis, mis näitab erinevate parameetrite muutmise mõju PID algoritmis.

Samm: isetasakaalustav robot

Isetasakaalustav robot
Isetasakaalustav robot

Isetasakaalustav robot on mitmekihiline kaherattaline robot.

Robot püüab tasakaalustada end ebavõrdse jõu rakendamisel. See tasakaalustab end, rakendades jõudu, mis on vastu robotile jõudude tekitajale.

Isetasakaalustamise meetodid

Robotite enese tasakaalustamiseks on neli meetodit. Need on järgmised:

Isetasakaalustamine kahe IR -kallutusanduri abil

See on üks kõige karmim viis roboti tasakaalustamiseks, kuna see nõuab väga vähem riistvara ja suhteliselt lihtsat algoritmi. Selle lähenemisviisi korral kasutatakse maapinna ja roboti vahelise kauguse mõõtmiseks kahte kallutatud IR -andurit. Arvutatud vahemaa põhjal saab PID -d kasutada mootorite juhtimiseks, et robot vastavalt tasakaalustada. Selle meetodi üheks puuduseks on see, et IR -andur võib mõnest näidust ilma jääda. Teine probleem on see, et vahemaa arvutamiseks on vaja katkestust ja silmuseid, mis suurendab algoritmi ajalist keerukust. Seetõttu pole see robotite tasakaalustamise meetod eriti tõhus.

Isetasakaalustamine kiirendusmõõturi abil

Kiirendusmõõtur annab meile keha kiirenduse 3 teljel. Kiirendus, mis on orienteeritud y-teljele (ülespoole) ja x-teljele (edasi), annab meile mõõdu raskusjõu arvutamiseks ja seega ka kaldenurga arvutamiseks. Nurk arvutatakse järgmiselt:

θ = arkaan (Ay/Ax) (1.2)

Selle meetodi kasutamise puuduseks on see, et roboti liikumise ajal lisatakse näitudele ka horisontaalne kiirendus, mis kujutab endast kõrgsageduslikku müra. Seetõttu on kaldenurk ebatäpne.

Isetasakaalustamine güroskoobi abil

Güroskoopi kasutatakse nurgakiiruste arvutamiseks piki kolme telge. Kaldenurk saadakse järgmise võrrandi abil.

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

Üks suur güroskoobi kasutamise puudus on see, et sellel on väike alalispinge, mis on madala sagedusega müra ja mõne aja pärast on tagastatud väärtused täiesti valed. See põhjustab pärast integreerimist nullpunkti eemaldumist. Selle tulemusena jääb robot mõnda aega oma vertikaalsesse asendisse ja kukub triivi saabudes ümber.

Isetasakaalustamine nii kiirendusmõõturi kui ka güroskoobi abil

Nagu eespool arutatud, ei anna ainult kiirendusmõõturi või güroskoobi kasutamine meile õiget kaldenurka. Selle selgitamiseks kasutatakse nii kiirendusmõõturit kui ka güroskoopi. Need mõlemad on integreeritud MPU6050 -sse. Sellega saame andmed mõlemalt ja seejärel ühendame need Kalmani või täiendava filtri abil.

• Kalmani filter: Kalmani filter arvutab mürarikkate mõõtmiste põhjal dünaamilise süsteemi oleku parima hinnangu, minimeerides hinnangu keskmise ruutvea. See toimib kahes etapis, ennustamine ja korrigeerimine, arvestades süsteemi dünaamikat kirjeldavaid diskreetseid stohhastilisi võrrandeid. See on aga väga keeruline algoritm, mida rakendada, eriti mikrokontrolleri piiratud riistvara puhul.

• Täiendav filter: see algoritm kasutab peamiselt güroskoobist saadud andmeid ja integreerib need aja jooksul kaldenurga saamiseks. Samuti kasutab see väikest osa kiirendusmõõturi näitu. Täiendav filter vähendab tegelikult kiirendusmõõturi kõrgsageduslikku müra ja güroskoobi madalsageduslikku müra ning sulab need, et anda parim täpne kaldenurk.

Samm: roboti kujundamine

Roboti disain
Roboti disain

Oleme projekteerinud isetasakaalustava roboti, kasutades proportsionaalset tuletuskontrollerit, mis on rakendatud täiendava filtri abil MPU6050 jaoks. See väike isetasakaalustava roboti mudel illustreerib meile juhtimissüsteemide kasulikkust robotite isetasakaalustamisel.

Süsteemi juurutamine:

Süsteem on isetasakaalustav robot. Seda rakendatakse PID -kontrolleri abil, mis on proportsionaalne integreeritud tuletuskontroller. Me tasakaalustame robotit, juhtides selle rattaid kukkumise suunas. Seda tehes püüame hoida roboti raskuskese pöördepunktist kõrgemal. Et rattaid kukkumise suunas juhtida, peaksime teadma, kuhu robot kukub ja kui kiiresti see langeb. Need andmed saadakse MPU6050 abil, millel on kiirendusmõõtur ja güroskoop. MPU6050 mõõdab kaldenurka ja annab selle väljundi mikrokontrollerile. MPU6050 on liidestatud STM -plaadiga I2C kaudu. I2C -s on üks juhe kella jaoks, mida nimetatakse SCL -iks. Teine on mõeldud andmete edastamiseks, mis on SDA. Selleks kasutatakse ülem -orja suhtlust. Algus- ja lõpp -aadress on määratud selleks, et teada saada, kust andmed algavad ja kus need lõpevad. Oleme MPU6050 jaoks kasutusele võtnud täiendava filtri, mis on matemaatiline filter kiirendusmõõturi ja güroskoobi väljundite ühendamiseks. Pärast andmete hankimist MPU6050 -st teeb mikrokontroller arvutused, et teada saada, kuhu see langeb. Arvutuste põhjal annab STM-i mikrokontroller mootorsõidukijuhile käske juhtida sõidukeid kukkumise suunas, mis tasakaalustab roboti.

5. samm: projekti komponendid

Projekti komponendid
Projekti komponendid
Projekti komponendid
Projekti komponendid
Projekti komponendid
Projekti komponendid

Isetasakaalustava roboti projektis kasutati järgmisi komponente:

STM32F407

Mikrokontroller, mille on välja töötanud ST Microelectronics. See töötab ARM Cortex-M arhitektuuril.

Mootorijuht L298N

Seda IC -d kasutatakse mootori käivitamiseks. See saab kaks välist sisendit. Üks mikrokontrollerist, mis annab sellele PWM -signaali. Impulsi laiuse reguleerimisega saab reguleerida mootori kiirust. Selle teine sisend on mootori juhtimiseks vajalik pingeallikas, mis on meie puhul 12 V aku.

Alalisvoolumootor

Alalisvoolumootor töötab alalisvooluvõrgust. Selles katses töötab alalisvoolumootor mootori draiveriga ühendatud optronite abil. Mootori juhtimiseks oleme kasutanud mootori ajamit L298N.

MPU6050

MPU6050 abil saadakse teavet selle kohta, kuhu robot kukub. See mõõdab kaldenurka nulli kaldepunkti suhtes, mis on MPU6050 asend programmi käivitamisel.

MPU6050-l on 3-teljeline kiirendusmõõtur ja 3-teljeline güroskoop. Kiirendusmõõtur mõõdab kiirendust piki kolme telge ja güroskoop nurgakiirust kolme telje ümber. Väljundi kombineerimiseks peame mõlema müra välja filtreerima. Müra filtreerimiseks on meil Kalman ja täiendav filter. Oleme oma projektis kasutanud täiendavat filtrit.

Opto paar 4N35

Optron on seade, mida kasutatakse vooluahela madalpinge ja kõrgepingeosa eraldamiseks. Nagu nimigi ütleb, töötab see valguse alusel. Kui madalpingeosa saab signaali, voolab kõrgepingeosas vool

6. samm: roboti struktuur

Roboti struktuuri selgitatakse järgmiselt:

Füüsiline struktuur

Isetasakaalustav robot koosneb kahest kihist, mis koosnevad läbipaistvast plastikklaasist. Kahe kihi üksikasjad on toodud allpool:

Esimene kiht

Esimese kihi alumisse ossa oleme paigutanud lahtri STM -plaadi toiteks. Samuti on kummalegi küljele paigutatud kaks 4 -voldist mootorit, mille rehvid on roboti liikumiseks ühendatud. Esimese kihi ülemisse ossa on mootorite käitamiseks paigutatud kaks 4 -voldist akut (kokku 8 volti) ja mootori draiver IC (L298N).

Teine kiht

Roboti ülemisse kihti oleme paigutanud STM -plaadi Perf Boardile. Ülemisele kihile asetatakse veel 4 optilist haakeseadist. Güroskoop asetatakse ka roboti ülemisele kihile alumisest küljest. Mõlemad komponendid on paigutatud keskosasse nii, et raskuskese jääks võimalikult madalale.

Roboti raskuskese

Raskuskese hoitakse võimalikult madalal. Sel eesmärgil oleme alumisele kihile asetanud rasked patareid ja ülemisele kihile kerged komponendid, näiteks STM -plaadi ja optronid.

Samm: kood

Kood koostati Atollic TrueStudio kaudu. Silumiseks kasutati STM stuudiot.

8. samm: järeldus

Pärast palju katseid ja vaatlusi jõuame lõpuks selleni, et võtame oma tulemused kokku ja arutame, kui kaugele õnnestus meil süsteemi tõhusus rakendada ja välja töötada.

Üldine ülevaade

Katse ajal kontrolliti mootori kiirust edukalt PID algoritmi abil. Kõver ei ole aga sujuv sirge. Sellel on palju põhjuseid:

• Kuigi andur on ühendatud madalpääsfiltriga, pakub see siiski teatud piiranguid; need on tingitud mittelineaarsetest takistustest ja analoog -elektroonika mõningatest vältimatutest põhjustest.

• Mootor ei pöörle sujuvalt väikese pinge või PWM korral. See pakub tõmblusi, mis võivad põhjustada süsteemile etteantud valesid väärtusi.

• Võnkumise tõttu võib andur mõnest suuremat väärtust pakkuvast pilust ilma jääda. • Teine suur vigade põhjus võib olla STM -mikrokontrolleri tuumkella sagedus. See STM -mikrokontrolleri mudel pakub 168 MHz tuumkella. Kuigi selles projektis seda probleemi käsitleti, on selle mudeli kohta üldine arusaam, et see ei paku täpselt nii kõrget sagedust.

Avatud ahela kiirus tagab väga sujuva joone, millel on vaid mõned ootamatud väärtused. PID -algoritm töötab samuti, tagades mootori väga väikese settimisaja. Mootori PID -algoritmi testiti erinevate pingete all, hoides võrdluskiiruse konstantsena. Pinge muutus ei muuda mootori kiirust, mis näitab, et PID -algoritm töötab hästi

Tõhusust

Siin käsitleme PID -regulaatori tõhusust, mida me katse ajal täheldasime.

Lihtne rakendamine

Oleme katsete ja vaatluste osas näinud, et PID -regulaatorit on väga lihtne rakendada. See nõuab ainult kolme parameetrit või konstandit, mis tuleb kiiruse juhtimissüsteemi loomiseks seada

Lineaarsüsteemide ületamatu tõhusus

Lineaarne PID -regulaator on kontrollerite perekonnas kõige tõhusam, kuna loogika on väga lihtne ja lineaarsete või üsna lineaarsete rakenduste korral on rakendus laialt levinud.

Piirangud

Me selgitasime abstraktselt selle süsteemi piiranguid. Siin arutame mõnda neist, mida me täheldasime.

Konstantide valik

Oleme näinud, et kuigi PID -regulaatorit on lihtne rakendada, on süsteemi suur puudus siiski see, et konstantide väärtuse valimise etapp on töömahukas; kuna tuleb teha erinevaid arvutusi. Teine võimalus on tabamis- ja proovimeetod, kuid see pole ka tõhus.

Konstandid ei ole alati konstantsed

Katsetulemused näitasid, et mootori etalonkiiruse erinevate väärtuste puhul oli PID -regulaator sama PID -konstantide väärtuse korral rike. Erinevate kiiruste puhul tuli konstandid valida erinevalt ja see suurendab arvutuskulusid eksponentsiaalselt.

Mittelineaarne

Meie puhul kasutatav PID -regulaator on lineaarne, seetõttu saab seda rakendada ainult lineaarsetele süsteemidele. Mittelineaarsete süsteemide puhul tuleb kontrollerit rakendada erinevalt. Kuigi saadaval on erinevad mittelineaarsed PID -meetodid, vajavad need rohkem parameetrite valimist. See muudab süsteemi jällegi ebasoovitavaks kõrgete arvutuskulude tõttu.

Vajalik esialgne tõuge

Katsetuste osas näitasime, et üsna väikese võrdluskiiruse korral, kus viga on alguses üsna väike, on PID -i tarnitud PWM nii väike, et see ei tekita mootorile vajalikku käivitusmomenti. Seega ei tööta mootor mõnes katses või teistes katsetes suure ületamise ja pikema settimisaja.

Samm: eriline tänu

Eriline tänu minu rühma liikmetele, kes aitasid mul selle projektiga toime tulla.

Varsti laadin video lingi üles.

Loodan, et leiate selle õpetatava huvitava.

See on Tahir Ul Haq UET -st. Tervist !!!

Soovitan: