Mini quadkopter építési, repülési, versenyzési tapasztalataim, tippek, tanácsok

Zsolesz FPV

Zsolesz FPV

A PID misztikuma...

Azaz jöjjön egy kis tuning

2015. június 23. - ZsoleszFPV

Miután elkészült és felszállt a quadunk, a legnagyobb feladat, hogy a repülésvezérlőn megtegyük azokat az egyedi beállításokat, amelyek ahhoz kellenek, hogy a gépünk irányítása pontos, direkt legyen, pontosan kanyarodjon, ne legyenek kellemetlen rezgések, beremegések, stb.

Mivel nincs két teljesen egyforma gép, ezért ezekre a beállításokra nincs standard. Vannak beállítási sablonok, amelyek jó kiindulási pontként szolgálnak egy-egy adott gépre, de a végső finomhangolást minden gépre egyedileg kell elvégezni.

Ezeket a beállításokat a repülésvezérlő  adott mozgástengelyeire vonatkozó P, I és D paramétereinek változtatásával lehet megtenni. Itt szeretném előrebocsátani, hogy a PID beállítások területe még számomra is homályos annak ellenére, hogy igen sokat igyekeztem utánaolvasni. Talán ez az egész miniquad történet legkevésbé egzakt pontja és leginkább egy fajta misztikus kézrátételes variálásnak tűnik a külső személélő számára. A lentiekben igyekszem némi elméleti áttekintés adni az egyes paraméterek jelentéséről, valamint megosztani néhány gyakorlati tanácsot.

Akit mélyebben érdekel a dolog, azoknak figyelmébe ajánlom Oscar Liang blogjából ezt és ezt a bejegyzést.

A PID egy visszacsatolt szabályozókör-mechanizmus, amelyet a robotikában általánosságban használnak. A szabályozó-kör viselkedését pedig 3 paraméter segítségével tudjuk befolyásolni. Ezek pedig a Proportional (arányos) Integral (integrált) Derivative (dervált, származtatott). Ahogy írtam Quadcopter esetében ezeket a paramétereket mindegyik forgástengelyre (pitch, roll, yaw) egyenként be kell állítani. Beszélünk továbbá külső és belső hurokról (inner & outer loop). A külső hurok a stabilizált (attitude mode) repülésnél érvényesül, míg a belső a stabilizált és a manuális irányítás esetén egyaránt működik.

quadcopter-overall-pid-process.png

PID kontroll mechanizmus (forrás: blog.oscarliang.net)

Nagyon leegyszerűsítve, a rendszer működését, a lényeg, hogy a vezérlő a szenzorok segítségével érzékeli a gép aktuális helyzetét, illetve mozgását, majd ezt összehasonlítja az irányítótól érkező utasításokkal és az így meghatározott eltérést igyekszik korrigálni, a motorok forgási sebességének szabályozásával.

Fenti árbrán láthatjuk, hogy a külső körben (outer loop), amely a stabilizált repülési módra vonatkozik, a szenzorok által mért dőlésszöget hasonlítjuk össze a pilóta által a joystickon keresztül meghatározott szöggel. A kettő közötti eltérés a hiba, amit a PID vezérlő korrigál és meghatározza, hogy milyen forgási sebességgel mozduljon el a gép. Ezt az értéket - amely manuális repülési módban közvetlenül a pilóta által kerül meghatározásra, tehát abban az esetben nincs külső hurok - hasonlítja össze a gyroscope által mért aktuális forgás sebességgel és ezt a hibát a belső hurok PID vezérlőjét átfuttatva határozza meg a motorok számára adandó utasítást.

A PID vezérlő mechanizmuson belül, továbbra is nagyon egyszerűen, a P paraméter az aktuális eltérésre (hibára) vonatkozik, az I az elmúlt időszak hibáinak összegzése, míg a D valahol a jövőben várható hibák előrejelzésére szolgál.

PID tunningolás a gyakorlatban

A PID-ek beállításánál egyszerre mindig csak egy tengelyre vonatkozó értéket, tipikusan a Pitch, majd a Roll, majd a Yaw tengelyt variáljuk. A paraméterek közül a P a legmeghatározóbb, az adja meg a gép stabilitását, illetve, hogy milyen határozottan reagál a kormánymozdulatokra. Ezért a tuningolást mindig a P-vel kell kezdeni, akár úgy, hogy az I és D értékeket kezdetben kinullázzuk.

A P értéket alacsonyról indulva kell növelni, erre pedig a gép egyre határozottabban (gyorsabban, agresszívebben) reagál. Túl magas P-nél azonban a vezérlő elkezd "túllőni", ill. túlkorrigálni, amiből egy oszcilláló, rezgő mozgás keletkezik. Ha ezt tovább toljuk, akkor ez a rezgés egyre gyorsabb és a gép gyorsulva fellő az égbe. Azt a pontot kell keresgélni, amikor a még nem jelentkezik semmiféle rezgés, változó gázadás mellett sem.

Ha ez megvan, akkor jöhet az I finomhangolása. Itt is alacsony értékről indulunk, majd növeljük az értéket. Az I érték határozza meg, hogy egy mozgás után, vagy ha a szél meglöki a gépet, milyen gyorsan stabilizálja magát és tér vissza eredeti pozíciójába. Mivel az I érték visszamenőlegesen nézi a hibát, minél tovább áll fent az eltérés, annál erősebben igyekszik korrigálni. Ha az I túl alacsony, akkor a megbillentett gép imbolyog egy kicsit, mielőtt stabilizálná magát, ha viszont túl magas, akkor itt is előfordulhat oszcilláció, azonban jóval alacsonyabb frekvenciával, mint a magas P esetében. Szintén magas I értékre utal, ha határozott gázadásra a gép beremeg.

A D érték kevésbé jelentős, léteznek olyan vezérlők, ahol nem is lehet állítani, de a legtöbb esetben ha alapbeállításon hagyjuk, akkor is gond nélkül elrepülgetünk. A D érték a P és I vezérlőparaméterek beavatkozásának kisimításért felelős. Ha viszont a D túl magas, akkor a gép "kenődős" kezd lenni, lassabban reagál. A D érték beállítása azért is trükkös, mert visszahat a P és az I értékekre is, így elképzelhető, hogy a D változtatása után vissza kell nyúlni a P-hez és/vagy I-hez is.

A CC3D közösség által kidolgozott Optune PID hangolási módszerről, amelynek célja hogy ezt az egész folyamatot kezdők részére is emészthető formába öntse és amellyel jelenleg én is próbálkozom egy külön postban írok majd hamarosan.

A bejegyzés trackback címe:

https://zsoleszfpv.blog.hu/api/trackback/id/tr437500398

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Jan Turi Nagy 2016.12.06. 16:36:56

hallo Zsolesz ez engem is érdekel mert én is veszödöm vele
csak még egy kérdés; mi a jobb egy GPS-nél a rom vagy a flash typus ?
Köszi János

ZsoleszFPV 2016.12.08. 15:47:39

@Jan Turi Nagy: Szia! Sajnos GPS-es rendszerrel nem dolgoztam, nem is tervezem. Az inkább a kamera-platformokhoz való, nem a versenygépekhez. Ezért erre a kérdésedre nem tudok válaszolni.

Jan Turi Nagy 2017.08.10. 16:43:49

hallo Zsolesz egy segítséget kérnék; egy Eanchine Racer 250-t átépitettem egy F3 Delux vezérlöre amin egy Cleanflight 1.13.0 firmware van. A dolog elég jol müködik (az én szerény beálitásom alapján) egy veszélyes tulajdonsággal ; ha bekapcsolom a BARO moduszt, igaz tartja a magasságot amig a gázhoz
nem nyúlok hozzá !!! mert akkor teligázzal száguld az ég felé !!!. Hol és mit kell beálítani hogy ez netörténjen meg ?
Segítséged elöre is köszönöm, János

ZsoleszFPV 2017.08.11. 10:18:44

@Jan Turi Nagy: Szia! Még létezik Cleanflight??? :) De komolyan. Ha GPS módban akarsz repülni, akkor iNAV szoftvert javaslok, ha pedig kis versenygéppel, akkor BetaFlight-ot.
GPS-szel és Barométerrel továbbra sincs tapasztalatom, de feltételezem, hogy a GPS, illetve stabilizált mód esetén nem az "Acro" PID-eket, hanem a "Level" PID-eket használja, ezért azokon lehet érdemes tekergetni. Valamint van egy halom CLI paraméter ami GPS és Baro dlogokra vonatkozik, amelyeket én soha nem használtam, így sajnos nem tudok ebben segíteni Neked.

Jan Turi Nagy 2017.08.11. 11:12:08

Köszi hogy ilyen villám gyorsan foglalkoztál a problémámmal. Hát persze én csak kezdö vagyok ebben a
"fly"dszungelben persze lehet tovább menni de a dolog annál bonyolultab lessz, Missions Planer stb. En még el sem tudom képzelni hogy lehet kamerával és szemüveggel repülni. Mi van blogoddal ? A tanácsaiddal foglalkozni fogok. Itt ott majd kérek valami tanácsot, addit is Jó repülést és üdvözlet Svájból
János
süti beállítások módosítása