Tartalomjegyzék:

Önegyensúlyozó robot a PID algoritmus (STM MC) használatával: 9 lépés
Önegyensúlyozó robot a PID algoritmus (STM MC) használatával: 9 lépés

Videó: Önegyensúlyozó robot a PID algoritmus (STM MC) használatával: 9 lépés

Videó: Önegyensúlyozó robot a PID algoritmus (STM MC) használatával: 9 lépés
Videó: Line Follower Robot Line Tracer Nice Parking 2024, Július
Anonim
Önkiegyenlítő robot PID algoritmus (STM MC) használatával
Önkiegyenlítő robot PID algoritmus (STM MC) használatával

Az utóbbi időben sok munka történt az objektumok önkiegyenlítésében. Az önegyensúlyozás fogalma a fordított inga kiegyensúlyozásával kezdődött. Ez a koncepció kiterjedt a repülőgépek tervezésére is. Ebben a projektben a PID (arányos, integrált, származtatott) algoritmus segítségével egy kis önmérlegű robot modellt terveztünk. Azóta ez a módszer az ipari folyamatvezérlő rendszerek új arca. Ez a jelentés áttekinti az objektumok önegyensúlyozásának módszereit. Ezt a projektet féléves projektként hajtottuk végre, hogy megértsük a PID összefüggését a különböző ipari folyamatok hatékonyságával. Itt csak arra összpontosítunk, hogy rövid áttekintést nyújtsunk a PID -szabályozás hatékonyságáról és alkalmazásáról. Ezt a dokumentumot azáltal hozták létre, hogy röviden bemutatják a vezérlőrendszereket és a kapcsolódó terminológiákat, kiegészítve a projekt motivációival. Kísérleteket és megfigyeléseket végeztünk, érdemeket és hátrányokat írtunk le, és a jövőbeli fejlesztéseknél véget értek. Az önkiegyenlítő robot modelljét azért fejlesztették ki, hogy megértsék a PID hatékonyságát a vezérlőrendszer világában. Néhány szigorú teszten és kísérleten keresztül felfedezték a PID szabályozó rendszer előnyeit és hátrányait. Kiderült, hogy a PID -szabályozás számos előnye ellenére a korábbi módszerekhez képest ez a rendszer még sok fejlesztést igényel. Remélhetőleg az olvasó jól megérti az önkiegyenlítés fontosságát, a PID -szabályozás hatékonyságát és hiányosságait.

1. lépés: Bevezetés

A számítógépek megjelenésével és a folyamatok iparosodásával az emberiség történelme során mindig is folytak kutatások a folyamatok újbóli meghatározására és ami még fontosabb, azok önálló vezérlésére. A cél az, hogy csökkentsük az emberek részvételét ezekben a folyamatokban, ezáltal csökkentve a hibákat ezekben a folyamatokban. Ezért fejlesztették ki a „Vezérlőrendszer -tervezés” területét. A vezérlőrendszer -tervezést úgy lehet meghatározni, hogy különböző módszereket használnak egy folyamat működésének ellenőrzésére vagy állandó és előnyben részesített környezet karbantartására, legyen az kézi vagy automatikus.

Egy egyszerű példa lehet a helyiség hőmérsékletének szabályozása. A kézi vezérlés azt jelenti, hogy egy személy jelen van a helyszínen, aki ellenőrzi a jelenlegi körülményeket (érzékelő), összehasonlítja azt a kívánt értékkel (feldolgozás), és megteszi a megfelelő lépéseket a kívánt érték elérése érdekében (működtető). A probléma ezzel a módszerrel az, hogy nem túl megbízható, mivel egy személy hajlamos hibákra vagy hanyagságra a munkájában. Ezenkívül egy másik probléma az, hogy a hajtómű által elindított folyamat sebessége nem mindig egyenletes, vagyis néha előfordulhat, hogy gyorsabban, mint szükséges, vagy néha lassú. A probléma megoldása az volt, hogy mikrovezérlőt használtak a rendszer vezérlésére. A mikrovezérlő az

programozva a folyamat vezérlésére, adott specifikációk szerint, egy áramkörbe kapcsolva (később tárgyaljuk), betáplálva a kívánt értéket vagy körülményeket, és ezáltal vezérli a folyamatot a kívánt érték fenntartása érdekében. Ennek a folyamatnak az az előnye, hogy nincs szükség emberi beavatkozásra. Ezenkívül a folyamat sebessége egyenletes

Alapvető vezérlőrendszer

Az előző diagram egy vezérlőrendszer nagyon leegyszerűsített változatát mutatja. A mikrokontroller minden vezérlőrendszer középpontjában áll. Ez egy nagyon fontos összetevő, ezért a kiválasztását gondosan kell elvégezni a rendszer követelményei alapján. A mikrovezérlő bemenetet kap a felhasználótól. Ez a bemenet határozza meg a rendszer kívánt állapotát. A mikrovezérlő visszajelzést is kap az érzékelőtől. Ez az érzékelő a rendszer kimenetéhez van csatlakoztatva, amelynek információit visszajuttatja a bemenetre. A mikroprocesszor programozása alapján különféle számításokat végez, és kimenetet ad a hajtóműnek. A hajtómű a kimenet alapján vezérli az üzemet, hogy megpróbálja fenntartani ezeket a feltételeket. Példa lehet egy motorvezető, aki olyan motort hajt, ahol a motor meghajtója a hajtómű, a motor pedig az üzem. A motor tehát adott sebességgel forog. A csatlakoztatott érzékelő leolvassa az üzem jelenlegi állapotát, és visszaadja azt a mikrovezérlőnek. A mikrovezérlő ismét összehasonlítja, számításokat végez, és így a ciklus megismétlődik. Ez a folyamat ismétlődő és végtelen, így a mikrovezérlő fenntartja a kívánt feltételeket

2. lépés: PID -alapú vezérlőrendszer

PID alapú vezérlőrendszer
PID alapú vezérlőrendszer
PID alapú vezérlőrendszer
PID alapú vezérlőrendszer

A PID algoritmus egy hatékony módszer a vezérlőrendszer tervezésére.

Meghatározás

A PID jelentése arányos, integrált és származtatott. Ebben az algoritmusban a kapott hibajel a bemenet. És a következő egyenletet alkalmazzuk a hibajelre

U (t) = Kp ∗ e (t) + Kd ∗ d/dt (e (t)) + Ki ∗ integrál (e (t)) (1.1)

Rövid magyarázat

Amint az a fenti egyenletből látható, a hibajelek integrálját és deriváltját kiszámítjuk, megszorozzuk a megfelelő állandókkal, és hozzáadjuk az e (t) -el megszorozott Kp állandóhoz. A kimenet ezután a hajtóműbe kerül, amely a rendszert működteti. Most nézzük sorban a funkció minden részét. Ez a funkció közvetlenül befolyásolja az emelkedési időt, az esési időt, a csúcsidőt, a leülepedési időt és az egyensúlyi állapot hibáját.

• Arányos rész: Az arányos rész csökkenti az emelkedési időt és csökkenti az egyensúlyi állapot hibáját. Ez azt jelenti, hogy a rendszer kevesebb időt vesz igénybe a csúcsérték eléréséhez, és amikor eléri az egyensúlyi állapotot, az egyensúlyi állapot hibája alacsony lesz. Ez azonban növeli a csúcs túllépést.

• Származékos rész: A származtatott rész csökkenti a túllépést és a letelepedési időt. Ez azt jelenti, hogy a rendszer átmeneti állapota jobban csillapodik. Ezenkívül a rendszer rövidebb idő alatt eléri az állandósult állapotát. Ennek azonban nincs hatása az emelkedési időre vagy az egyensúlyi állapot hibájára.

• Integrált rész: Az integrált rész csökkenti az emelkedési időt és teljesen kiküszöböli az egyensúlyi állapot hibáját. Ez azonban növeli a csúcs túllépést és az ülepedési időt.

• Hangolás: Egy jó vezérlőrendszer alacsony emelkedési idővel, ülepedési idővel, csúcs túllépéssel és egyensúlyi hibával rendelkezik. Ezért a Kp -t, Kd -t, Ki -t véglegesen be kell állítani, hogy a fenti tényezők hozzájárulását kiigazítsák egy jó vezérlőrendszer megszerzése érdekében.

A mellékelt ábra a PID algoritmus különböző paramétereinek megváltoztatásának hatását mutatja be.

3. lépés: Önegyensúlyozó robot

Önegyensúlyozó robot
Önegyensúlyozó robot

Az önegyensúlyozó robot többrétegű, kétkerekű robot.

A robot megpróbálja kiegyensúlyozni magát, ha bármilyen egyenlőtlen erőt alkalmaz. Egyensúlyba hozza magát a robotra ható erők hatására fellépő erő alkalmazásával.

Az önegyensúlyozás módszerei

Négy módszer létezik a robotok kiegyensúlyozására. Ezek a következők:

Önegyensúlyozás két infravörös dőlésérzékelő segítségével

Ez az egyik legdurvább módja a robot kiegyensúlyozásának, mivel nagyon kevesebb hardvert és viszonylag egyszerű algoritmust igényel. Ebben a megközelítésben két döntött IR érzékelőt használnak a talaj és a robot közötti távolság mérésére. A kiszámított távolság alapján a PID használható a motorok meghajtására, hogy ennek megfelelően kiegyenlítse a robotot. Ennek a módszernek az egyik hátránya, hogy az infravörös érzékelő kihagyhat néhány leolvasást. Egy másik probléma az, hogy megszakítás és hurkok szükségesek a távolság kiszámításához, ami növeli az algoritmus időbeli összetettségét. Ezért ez a robot kiegyensúlyozási módszer nem túl hatékony.

Önegyensúlyozás gyorsulásmérő segítségével

A gyorsulásmérő a test gyorsulását adja meg 3 tengelyen. Az y tengelyen (felfelé) és az x tengelyen (előre) orientált gyorsulás megadja a mértéket a gravitációs irány kiszámításához, és így a dőlésszög kiszámításához. A szöget a következőképpen kell kiszámítani:

θ = arktán (Ay/Axe) (1.2)

Ennek a módszernek az a hátránya, hogy a robot mozgása során a vízszintes gyorsulás is hozzáadódik az értékekhez, ami nagyfrekvenciás zaj. Ezért a dőlésszög pontatlan lesz.

Önegyensúlyozás giroszkóppal

Giroszkóppal kiszámítják a három tengely mentén az angluáris sebességeket. A dőlésszöget a következő egyenlettel kapjuk meg.

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

A giroszkóp használatának egyik nagy hátránya, hogy kicsi egyenáramú torzítással rendelkezik, ami alacsony frekvenciájú zaj, és néhány idő múlva a visszaadott értékek teljesen rosszak. Ez az integráció után a nulla pont eltávolodását eredményezi. Ennek eredményeképpen a robot egy ideig függőleges helyzetben marad, és a sodródás után felborul.

Önegyensúlyozás gyorsulásmérő és giroszkóp segítségével

Amint azt fentebb tárgyaltuk, csak gyorsulásmérő vagy giroszkóp használata nem adja meg a helyes dőlésszöget. Ennek érdekében gyorsulásmérőt és giroszkópot is használnak. Mindkettő be van ágyazva az MPU6050 -be. Ebben megkapjuk mindkettőjük adatait, majd összeolvasztjuk őket Kalman -szűrő vagy kiegészítő szűrő használatával.

• Kalman -szűrő: A Kalman -szűrő a zajos mérésekből kiszámítja a dinamikus rendszer állapotának legjobb becslését, minimálisra csökkentve a becslés négyzetes hibáját. A rendszer dinamikáját leíró diszkrét sztochasztikus egyenletek alapján két szakaszban, előrejelzésben és korrekcióban működik. Ez azonban nagyon összetett algoritmus, különösen egy mikrokontroller korlátozott hardverén.

• Kiegészítő szűrő: Ez az algoritmus elsősorban a giroszkópból nyert adatokat használja, és idővel integrálja a dőlésszög meghatározásához. A gyorsulásmérő leolvasásainak egy kis részét is használja. A kiegészítő szűrő valójában minimalizálja a gyorsulásmérő nagyfrekvenciás zaját és a giroszkóp alacsony frekvenciájú zaját, majd összeolvasztja őket, hogy a legjobb pontos dőlésszöget biztosítsa.

4. lépés: A robot tervezése

Robot tervezése
Robot tervezése

Önarányos robotot terveztünk az MPU6050 kiegészítő szűrő által megvalósított arányos származtatott vezérlő használatával. Az önkiegyenlítő robot kis modellje bemutatja nekünk a vezérlőrendszerek hasznosságát a robotok önkiegyenlítésében.

Rendszer implementáció:

A rendszer önkiegyenlítő robot. Ezt a PID vezérlővel hajtják végre, amely egy arányos integrált származékos vezérlő. Egyensúlyba hozzuk a robotot, ha kerekeit az esés irányába hajtjuk. Ennek során megpróbáljuk a robot súlypontját a forgáspont fölött tartani. Ahhoz, hogy a kerekeket az esés irányába vezesse, tudnunk kell, hol esik a robot, és milyen sebességgel esik. Ezeket az adatokat az MPU6050 segítségével nyerik, amely gyorsulásmérővel és giroszkóppal rendelkezik. Az MPU6050 méri a dőlésszöget, és a kimenetet átadja a mikrovezérlőnek. Az MPU6050 az I2C -n keresztül kapcsolódik az STM táblához. Az I2C -ben egy vezeték az óra számára, amelyet SCL -nek neveznek. A másik az adatátvitelre szolgál, amely SDA. Ebben a master slave kommunikációt használják. A kezdőcímet és a befejező címet úgy határozták meg, hogy tudják, honnan indulnak és hol végződnek az adatok. Itt implementáltuk a kiegészítő szűrőt az MPU6050 számára, amely egy matematikai szűrő a gyorsulásmérő és a giroszkóp kimeneteinek egyesítésére. Az adatok beszerzése után az MPU6050 -ből a mikrokontroller számításokat végez, hogy megtudja, hol esik. A számítások alapján az STM mikrovezérlő parancsokat ad a motorvezetőnek, hogy vezesse a járműveket az esés irányába, ami kiegyensúlyozza a robotot.

5. lépés: A projekt összetevői

Projekt összetevői
Projekt összetevői
Projekt összetevői
Projekt összetevői
Projekt összetevői
Projekt összetevői

A következő komponenseket használták az önkiegyenlítő robot projektben:

STM32F407

Az ST Microelectronics által tervezett mikrovezérlő. Működik az ARM Cortex-M architektúrán.

Motorhajtó L298N

Ez az IC a motor működtetésére szolgál. Két külső bemenetet kap. Az egyik a PWM jelet szolgáltató mikrokontrollerből. Az impulzus szélességének beállításával a motor fordulatszáma állítható. Második bemenete a motor meghajtásához szükséges feszültségforrás, ami esetünkben 12V -os akkumulátor.

DC motor

Az egyenáramú motor egyenáramú tápegységről működik. Ebben a kísérletben az egyenáramú motor a motorvezérlőhöz csatlakoztatott optocsatolók segítségével fut. A motor meghajtásához az L298N motorhajtást használtuk.

MPU6050

Az MPU6050 segítségével információt szerezhet arról, hogy hol esik le a robot. Méri a dőlésszöget a nulla dőlésponthoz képest, amely az MPU6050 helyzete, amikor a program futni kezd.

Az MPU6050 3 tengelyes gyorsulásmérővel és 3 tengelyes giroszkóppal rendelkezik. A gyorsulásmérő a három tengely mentén méri a gyorsulást, a giroszkóp pedig a három tengely körüli szögsebességet. A kimenet kombinálásához ki kell szűrnünk mindkettő zaját. A zajok kiszűréséhez van Kalman és kiegészítő szűrő. Kiegészítő szűrőt dolgoztunk ki projektünkben.

Opto pár 4N35

Az optocsatoló az áramkör kisfeszültségű és nagyfeszültségű részének elkülönítésére használt eszköz. Ahogy a neve is sugallja, fény alapján működik. Amikor az alacsony feszültségű rész jelet kap, áram folyik a nagyfeszültségű részben

6. lépés: A robot felépítése

A robot szerkezete a következőképpen magyarázható:

Fizikai szerkezet

Az önkiegyenlítő robot két rétegből áll, amelyek átlátszó műanyag üvegből állnak. Két réteg részleteit az alábbiakban adjuk meg:

Első réteg

Az első réteg alsó részébe egy cellát helyeztünk az STM tábla táplálására. Mindkét oldalon két, egyenként 4 voltos motort helyeztek el, amelyekhez a robot mozgatásához gumiabroncsok vannak csatlakoztatva. Az első réteg felső részében két egyenként 4 voltos elem (összesen 8 volt) és a motorvezérlő IC (L298N) van elhelyezve a motorok működtetéséhez.

Második réteg

A robot felső rétegében az STM táblát a Perf Boardra helyeztük. Egy másik, 4 optocsatolóból álló perf deszkát helyezünk a felső rétegre. A giroszkópot a robot felső rétegére is helyezik az alsó oldalról. Mindkét alkatrészt a középső részbe helyezzük, hogy a súlypont a lehető legalacsonyabb szinten maradjon.

Robot súlypontja

A súlypont a lehető legalacsonyabb szinten marad. Ebből a célból nehéz elemeket helyeztünk az alsó rétegre, könnyű elemeket, például STM kártyát és optocsatolókat a felső rétegre.

7. lépés: Kód

A kódot az Atollic TrueStudio segítségével állítottuk össze. Az STM stúdiót hibakeresési célokra használták.

8. lépés: Következtetés

Sok kísérletezés és megfigyelés után végül arra a pontra jutunk, ahol összefoglaljuk eredményeinket, és megbeszéljük, hogy milyen mértékben sikerült megvalósítani és kidolgozni a rendszer hatékonyságát.

Általános áttekintés

A kísérlet során a motor fordulatszámát sikeresen ellenőrizték a PID algoritmus segítségével. A görbe azonban nem éppen sima egyenes. Ennek számos oka lehet:

• Bár az érzékelő aluláteresztő szűrőhöz van csatlakoztatva, továbbra is bizonyos végleges kikapcsolásokat biztosít; ezek a nemlineáris ellenállásoknak és az analóg elektronika néhány elkerülhetetlen okának köszönhetők.

• A motor nem forog simán kis feszültség vagy PWM alatt. Olyan rángatásokat biztosít, amelyek hibás értékeket okozhatnak a rendszerben.

• A lengés miatt az érzékelő hiányozhat néhány réstől, amelyek magasabb értékeket biztosítanak. • A hibák másik fő oka az STM mikrovezérlő mag órajel frekvenciája lehet. Az STM mikrovezérlő ezen modellje 168 MHz -es magórajelet biztosít. Bár ezzel a problémával foglalkozott ebben a projektben, általános elképzelés van erről a modellről, hogy nem pontosan ilyen magas frekvenciát biztosít.

A nyílt hurok sebessége nagyon sima vonalat biztosít, csak néhány váratlan értékkel. A PID algoritmus működőképes, és nagyon alacsony beállási időt biztosít a motornak. A motor PID algoritmusát különböző feszültségek mellett tesztelték, a referenciasebességet állandó értéken tartva. A feszültségváltozás nem változtatja meg a motor fordulatszámát, ami azt mutatja, hogy a PID algoritmus működik

Hatékonyság

Itt tárgyaljuk a PID szabályozó hatékonyságát, amelyet a kísérlet során figyeltünk meg.

Egyszerű megvalósítás

A kísérletek és megfigyelések részben láttuk, hogy a PID szabályozó nagyon könnyen megvalósítható. Csak három paramétert vagy állandót kell megadni ahhoz, hogy sebességszabályozó rendszer legyen

Páratlan hatékonyság a lineáris rendszerekhez

A lineáris PID szabályozó a leghatékonyabb a vezérlőcsaládban, mivel a logika nagyon egyszerű, és az alkalmazás széles körben elterjedt lineáris vagy meglehetősen lineáris alkalmazások esetén.

Korlátozások

Elvontan kifejtettük a rendszer korlátait. Itt megvitatunk néhányat, amelyeket megfigyeltünk.

Állandók kiválasztása

Láttuk, hogy bár a PID -szabályozó könnyen megvalósítható, a rendszer nagy hátránya, hogy az állandók értékének kiválasztása fáradságos; mivel nehéz számításokat kell végezni. A másik módszer a találat és próba módszer, de ez sem hatékony.

Az állandó nem mindig állandó

A kísérleti eredmények azt mutatták, hogy a motor referencia fordulatszámának különböző értékei esetén a PID szabályozó hibásan működött a PID állandók azonos értékei esetén. Különböző sebességek esetén az állandókat különböző módon kellett kiválasztani, és ez exponenciálisan növeli a számítási költségeket.

Nem lineáris

A mi esetünkben használt PID szabályozó lineáris, ezért csak lineáris rendszerekre alkalmazható. Nemlineáris rendszerek esetén a vezérlőt különböző módon kell megvalósítani. Bár rendelkezésre állnak különböző nemlineáris PID módszerek, ezek több paramétert igényelnek. Ez ismét nem kívánatosvá teszi a rendszert a magas számítási költségek miatt.

Kezdeti push szükséges

A kísérleti részben megmutattuk, hogy meglehetősen kis referenciasebességnél, ahol a hiba meglehetősen kicsi az induláskor, a PID által szolgáltatott PWM olyan kicsi, hogy nem hozza létre a szükséges indítónyomatékot a motor számára. Tehát a motor egyes kísérletekben nem jár, vagy más kísérletekben nagy túllépést és hosszabb ülepedési időt biztosít.

9. lépés: Külön köszönet

Külön köszönet a csoporttagjaimnak, akik segítettek nekem ebben a projektben.

Hamarosan feltöltöm a videó linkjét.

Remélem, érdekesnek találja ezt a tanulságosat.

Ez Tahir Ul Haq az UET -ből. Egészségére !!!

Ajánlott: