Ladíme PID

Nové verze Betaflightu létají v základním nastavení docela slušně, pokud ale věnujeme nějaký čas ladění, může to být i výrazně lepší. V tomto článku si povíme základní teorii, popíšeme si co který parametr znamená a obvyklý postup jejich ladění. Celé jsem se to snažil napsat selským rozumem, aby tomu porozuměl pokud možno každý.

Úvod

Na začátek si řekneme trochu té teorie, abyste měli nějakou představu, jak ta PID smyčka vlastně funguje a věřte mi, není to nic složitého. Podívejte se na diagram níže a nezavírejte váš prohlížeč, je to jednodušší než to vypadá. Tato smyčka nám na řidicí jednotce běží neustále dokola. Do PID algoritmu vstupují naměřené hodnoty ze senzorů: y(t) a požadovaná hodnota: r(t), což je defacto naše řízení. Naměřené hodnoty se odečtou od té požadované a výsledkem je chyba, regulační odchylka: e(t), kterou potřebujeme co nejrychleji minimalizovat a dosáhnout tak požadovaného stavu. Regulační odchylka se prožene třemi výpočty – vynásobí se (P), integruje (I) a derivuje (D). A právě tyto výpočty my můžeme ovlivnit v Betaflightu konstantami Kp, Ki Kd. Ty zadáváme pro každou osu zvlášť (roll, pitch a yaw). Výsledky se sečtou a vypadne z toho akční člen: u(t). Nakonec řídicí jednotka vezme tento akční člen a přetvoří ho na instrukce pro regulátory (ESC), které upraví otáčky motorů tak, aby se přiblížila požadované poloze. Nově naměřené hodnoty ze senzorů potom znovu vstupují do další iterace symčky a celé se to opakuje. Jak rychle se to děje? To určíte parametrem PID looptime a je to docela fofr, při 8kHz je to 8000x za sekundu. Tak… nakonec to není až tak složité, že? 🙂

PID regulace

Naladění koptéry je subjetivní, záleží na stylu létání a hlavně na vašem pocitu. Není potřeba hledat nějaké jediné perfektně dokonalé nastavení, jakmile budete s letovým projevem spokojení, tak přestaňte ladit a lítejte. Každá kombinace komponent zpravidla vyžaduje trochu jiné PID. Svojí roli v tom hrají motory, vrtule, regulátory, konstrukce rámu, váha, těžiště, ale i vibrace a rezonance rámu nebo počasí. U rámů z nekvalitního, měkkého uhlíku se tak může stát, že ať ladíte, jak ladíte, tak to nikdy pořádně nenaladíte. Pro precizní doladění se potom používají záznamy z black boxu, které odhalí i ty nejmenší oscilace, co nejsou na první pohled poznat, ale o tom třeba někdy příště.

Postupů existuje několik, někdo ladí postupně každou osu zvlášť, já měním paramtery na osách roll a pitch zároveň a když mám pocit, že jsem se přiblížil k ideálu, tak doladím detaily na jednotlivých osách. Nejvíc podobné hodnoty na obou osách bude mít konstrukce pravidelného X. Naproti tomu rám typu stretched X bude mít zpravidla vyšší hodnoty na ose pitch a rámy compressed X budou mít vyšší hodnoty na ose roll. Osu yaw nechávám až úplně nakonec, protože ta je čistě pocitová a nemá zásadní vliv na letový projev.

Příprava

Na ladění je ideální větší prostor, třeba louka, abyste mohli zkoušet rychlé manévry a prudké přidávání plynu. Před laděním vyměňte všechny vrtule za nové. Armování mějte nastavené tak, abyste byli schopní kdykoliv koptéru okamžitě vypnout. Ladí se zásadně v režimu acro, bez stabilizací. Zapněte si Airmode, ten zajistí, aby PID smyčka běžela i při nulovém plynu, což je žádoucí. Nastavení PID dejte do defaultu. Jak jsem zmínil, základní hodnoty jsou už dnes natolik dobré, že tradiční ladění od píky je ztráta času. Během testovacích letů si udržujte od koptéry bezpečnou vzdálenost, kdyby se vám náhodou splašila, tak ať sobě nebo někomu jinému neublížíte.

Většina dnešních řídicích jednotek už má OSD, takže ladit můžete pohodlně přímo pomocí brýlí a rádia. Pokud nemáte OSD, ale máte FrSky rádio, tak v tomto návodu jsem popsal, jak můžete nastavovat PID na něm. Další možností je potom vychytávka jménem SpeedyBee, která umožňuje komplexní nastavení Betaflightu pomocí Android nebo iOS aplikace a to přes bluetooth nebo i přes USB OTG. A poslední, nejméně pohodlnou možností je notebook s plnohodnotným Betaflight Configuratorem.

P – Proporcionální složka

P udává, jakou silou se systém bude snažit rozdíl vyrovnat. Čím vyšší je P, tím se koptéra stává lépe ovladatelnou a máte pocit, že okamžitě reaguje na vaše pokyny z pák. Ovšem jen do určité chvíle. Pokud to s P přeženete, tak systém začne na změny reagovat až příliš agresivně a nový požadovaný stav prostě přestřelí tak, že se musí následně vrátit. To ale opět udělá s příliš velkou silou, požadovaný stav zase mine a tím začne koptéra ve vzduchu rychle kmitat. A buď se po chvíli ustálí nebo se rozkmitá tak, že se stane neovladatelnou a spadne k zemi nebo začne samovolně stoupat. K těmto nízkofrekvenčním oscilacím dochází zpravidla při prudkých manévrech. Tento stav se dá vyřešit buď snížením P a nebo zvýšením D. Naším cílem je, dostat parametr P co nejvýš. Zvyšujte hodnotu o 5, proleťte se, zkoušejte prudké otočky, split-s, přidávejte prudce plyn. Dokud se neobjeví kmitání, tak můžete P vesele zvyšovat. Tyto oscilace jsou vidět v obraze a jsou i dobře slyšet. Jakmile začnete kmitání pozorovat, vraťte předchozí hodnotu a pokračujte parametrem I. Může se stát, že ani při velmi vysokých hodnotách P se oscilace zásadně neprojeví, v takovém případě můžete přestat ve chvíli, kdy máte pocit, že koptéra okamžitě reaguje na pohyby pák a se zvyšujícím P už se to nijak nezlepšuje.

I – Integrační složka

Parametr I si „pamatuje“ předchozí naměřené hodnoty a těch se snaží držet. Je to taková stabilizační ingredience a pomáhá potlačit chyby, které vznikají vnějšími vlivy, např. větrem. Nízké I poznáte tak, že koptéra při visu nebo rovném letu neudrží dlouho svůj úhel, ve vzduchu „plave“ nebo po chvíli začne utíkat jiným směrem a tím vás neustále nutí směr korigovat. Naopak moc vysoké I zhorší odezvu, otupí ovládání a přináší pocit příliš robotických pohybů. Extrémně vysoké I může také způsobit nízkofrekvenční oscilace. Defaultní „íčka“ obvykle fungují docela dobře nebo jim stačí jen lehce přidat. Vyzkoušejte si rovný let, náklony dopředu, do stran, visení na místě, koptéra by si měla držet úhel a nikam moc neutíkat. Když při visení na místě dáte na moment plný plyn a necháte koptéru padat, měla by stále držet rovinu a padat přibližně na stejné místo. Pokud úhel nedrží, přidejte na „íčkách“ 5 a proces opakujte, dokud to nebude ono.

S parametrem I ještě souvisí relativně nová „fičura“ Antigravity a není to až takové sci-fi, jak to zní. Pokud prudce přidáte plyn, může se stát, že koptéra neudrží svůj úhel na pitch ose a trochu se nakloní dolů nebo nahoru, podle toho kde máte těžiště. A protože gravitace je mnohem silnější síla než běžný vítr, potřebujeme na potlačení jejích vlivů mnohem více I. Takže úkolem Antigravity je skokově zvýšit I ve chvíli, kdy prudce přidáte plyn a tím eliminovat tyto výkyvy na pitch ose. Antigravity Gain je hodnota, kterou se I bude násobit a Threshold je rozdíl na plynu, který toto zvýšení spustí. Pokud tedy pozorujete to zhoupnutí při prudkém plynu, zkuste po jednom zvyšovat Antigravity Gain.

D – Derivační složka

Zatímco parametr I se dívá do minulosti, tak parametr D se snaží předpovídat budoucnost. Funguje jako takový tlumič a krotí účinky vysokého P. Může tak vyřešit nízkofrekvenční kmitání, ale příliš vysoké hodnoty D koptéru otupí, zhorší odezvu a způsobí vysokofrekvenční vibrace, které můžou vést až k poškození motorů. Proto D přidávejte velmi opatrně, maximálně po 5 a po každém zalétnutí hned sáhněte na motory, jestli se nepřehřívají. Pokud budou výrazně teplejší než u předchozích letů, hodnotu D zase snižte. Správnou hodnotu D poznáte tak, že když uděláte rychlý flip nebo roll, tak se koptéra při vyrovnání páky téměř okamžitě zastaví a nekmitne. Cílem je udržet hodnoty D co nejnižší. Pokud se dostanete do stavu, kdy motory už jsou horké a ty překmity při flipech/rollech tam pořád jsou, zkuste trochu snížit P. Chce to trpělivost…

Následující animace pěkně znázorňuje vliv jednotlivých parametrů na křivku naměřené hodnoty v čase a její přiblížení požadovanému stavu (červená čára). Můžete tam krásně vidět, jak vysoké P a I způsobí oscilace a přidání D je utlumí.

Ilustrační animace vlivu parametrů PID na regulovaný systém

F – Feedforward

Tento parametr byl uveden v BF 3.5 a nahrazuje parametr Setpoint Weight z BF 3.4, který byl závislý na parametru D. Oproti tomu F není závislé na žádné jiné složce a je tak jednodušší na nastavení. F je aktivní pouze při pohybech pákami, pokud jsou páky v klidu, tak parametr F do výpočtů nijak nevstupuje a čím větší pohyb pákou uděláte, tím více se účinky F projeví. Neřeší tedy stabilitu koptéry, ale odezvu a plynulost pouze během aktivního řízení. Výrazně také může vylepšit odezvu na ose yaw. Tento parametr je pocitový a záleží na stylu létání. Závodní piloti budou chtít F vyšší pro maximálně rychlou odezvu, na freestyle naopak nižší pro zachování plynulosti a ne příliš ostré pohyby. Pokud chcete potlačit účinky F kolem středu pák, tak k tomu slouží Feedforward Transition. Pokud je 0, tak F bude aktivní i při sebemenším pohybu. Při hodnotě 0,2 potom budete mít oblast 20% kolem středu, kdy F nebude aktivní.

TPA

TPA je zkratka pro Throttle PID Attenuation a řeší oscilace při vyšších otáčkách, kdy v systému vzniká spousta různých vibrací. Funguje jednoduše tak, že od určité hodnoty plynu snižuje hodnoty PID. Pěkně to je vidět na tomto grafu, kde TPA breakpoint je nastavený v polovině plynu (1500) a od poloviny plynu výš se snižují PID hodnoty postupně až o 50% (TPA = 0,5). Pokud byste měli TPA = 0,75, PID se sníží při plném plynu o 75%.

Vliv TPA na hodnoty PID v závislosti na plynu

Závěr

Pokud jste se pročetli až sem, tak díky za vaší pozornost a snad se mi podařilo vám srozumitelně předat základní teorii pro úspěšné naladění vaší koptéry. Ta praktická část je teď už na vás a při tom se to stejně naučíte nejlíp. Poprvé možná bude chvíli trvat najít to, co vám bude vyhovovat, ale příště už budete mít naladěno za pár minut. Letu zdar!

Leave a comment

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..