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.
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.