top of page
Szukaj
  • Zdjęcie autoraMichał

PIDy - ustaw je sam!

Zaktualizowano: 20 lut 2022

Prawidłowo ustawione PIDy to kluczowy element wpływający na komfort w pilotowaniu drona FPV, a źle dobrane sprawią, że nawet najdroższy dron potrafi wpędzić pilota w frustrację. To one sprawiają, że dron lata gładko, nie trzęsie się, nie kołysze na boki i leci dokładnie tam gdzie chce tego pilot. W artykule tym dowiesz się czym jest PID, jak działa, oraz jak wygląda PID tuning w przypadku oprogramowania Betaflight w wersji 4.2 (dla wersji 4.3 przygotujemy osobny wpis gdy będzie ona oficjalnie dostępna).


PID to skrót od Proportional Integral Derrivative, co w tłumaczeniu na język polski oznacza regulator proporcjonalno-całkująco-różniczkujący, czyli algorytm mający na celu utrzymanie na wyjściu jakiejś wartości na ściśle określonym poziomie bez względu na działające czynniki zewnętrzne. Dla automatyka schemat opisujący regulator PID wygląda następująco:

PID to obwód pracujący w pętli sprzężenia zwrotnego (taki obieg zamknięty), który oblicza wartość uchybu jako różnicę pomiędzy pożądaną wartością zadaną (czyli na przykład tym co chcemy zrobić za pomocą drążków naszej aparatury) i zmierzoną wartością zmiennej procesu (czyli tym jaki efekt otrzymujemy - jak zachowuje się nasz dron) i działa w taki sposób, by zredukować uchyb poprzez odpowiednie dostosowanie sygnału podawanego na wejście regulowanego obiektu.

Co to oznacza dla "droniarza"?

Nasz obwód PID/pętla w kontrolerze lotu działa następująco: odczytuje sygnały z naszej aparatury - aby wiedzieć co zamierzamy robić i dodaje do tego dane zebrane z czujników (żyroskop/akcelerator). Na skutek tego, poprzedni stan jest korygowany o nasze dane wejściowe. PID działa jak powinien. No prawie...

Mamy bowiem kontrolę nad tym obwodem. A dokładniej nad parametrem P, I oraz D. Sam kierunek lotu możemy łatwo zmieniać za pomocą aparatury, ale to w jaki sposób nasz dron to zrobi - jak szybko, precyzyjnie i jak skutecznie oprze się przy tym wibracjom i czynnikom zewnętrznym jak np. wiatr - to już zależy właśnie od tego jak dostroimy nasze parametry PID.

Niektórzy piloci opisują PID bazując na pojęciach chronologicznych:

P – The Present / teraźniejszość

D – The Future / przyszłość

I – The Past / przeszłość


P - teraźniejszość, ponieważ P odpowiada jak responsywny jest nasz dron i co w tej chwili robi, a robi, to co chcemy.

D - przyszłość, ponieważ D odpowiada za to, aby P nie przesadził. Zarówno kiedy jego wartość rośnie, jak i maleje. I to zanim P osiągnie daną wartość. D przewiduje np. do jakiej wartości powinien wzrosnąć parametr P i jeśli za szybko zbliża się do tej granicy, to go wyhamuje… Ale zrobi to tak sprawnie, jak mu na to pozwolimy – czyli musimy mu „pokazać” jaki wynik nas satysfakcjonuje.

I - przeszłość, ponieważ I porównuje to co chcemy zrobić, z tym co zrobiliśmy w przeszłości i stara się skorygować nasze działania i błędy, które wystąpiły.

Masz jakiś obraz tego, po co to komu, te całe PID.

Ostatnia pomoc przed bardziej konkretnymi rozważaniami to film ilustrujący jak działają wartości P oraz D na przykładzie prostego wahadła:


Przechodząc do tematyki PID bezpośrednio w kontekście dronów musimy wprowadzić jeszcze jedno ważne wyrażenie – Setpoint. Czyli punkt/droga/cel, który wskazujemy (MY jako operator) za pomocą aparatury. Np. odchylamy drążek w prawo o ok 50% / aparatura wysyła sygnał, że drążek wychylił się do wartości 1750ms (milisekund, bo to wartość kątowa) / kontroler lotu ustawia SETPOINT na podstawie parametru jaki otrzymał / P dąży do tego punktu / D stara się utrzymać P w ryzach, aby P nie przestrzelił tego punktu, ale dotarł tam jak najszybciej / I pamiętając, że ostatnim razem P przestrzelił, bo D go nie wyhamował w odpowiednim momencie, daje znać, że trzeba zmienić czas reakcji.


Odpowiednia równowaga pomiędzy PID obniża czas reakcji całej pętli.

Choć do latania FPV znajomość angielskiego nie jest niezbędna to jednak większość nazw i terminów jest w tym języku i dzięki znajomości podstawowych wyrażeń po angielsku dużo łatwiej jest szukać rozwiązań czy też różnego rodzaju tzw. tutoriali w Internecie. Poza tym, zdarza się, że ktoś próbuje w kilku zdaniach opisać element, który ma swoją nazwę w języku angielskim, natomiast ciężko o krótki odpowiednik w języku polskim. W przypadku P I D można spotkać się z następującym tłumaczeniem: P-term, I-term oraz D-term. Ich poszczególne role w sterowaniu dronem można opisać następująco:

P-term (proportional)

Odpowiada jak szybko osiągany jest Setpoint

Wyższa wartość P powoduje wyższą responsywność / szybsze osiągnięcie Setpoint, ale może powodować, że łatwiej przestrzeli ten punkt. Wyższa wartość P, to również bardziej agresywna reakcja na ruch drążka. Niższa wartość P, to bardziej „leniwa” reakcja na ruch drążka.

Jeśli P jest za wysokie, to dron będzie zbyt nerwowy i może wpadać w oscylacje o wysokiej częstotliwości (ale raczej niskiej amplitudzie). Może to doprowadzić np. do przegrzania się silników / uzwojenie się przepali. Jeśli P jest za niskie, dron będzie „ospały”, będzie reagował z opóźnieniem. Można to porównać do pijanego człowieka udającego, że umie jeszcze chodzić prosto.


I-Term (integral)

Wyraża jak ciężko FC musi pracować, aby utrzymać naszego drona, na którego działają siły zewnętrzne (dodające błędy do naszej pętli) – wiatr, rozłożenie masy niesymetrycznie do środka ciężkości itd.

Jeśli I jest za wysokie, to w efekcie dron będzie reagował na drążki bardzo niechętnie, ale nagle i „brutalnie”. To jakby jakaś siła trzymała go na ustalonej ścieżce, ale kiedy bardziej wychylimy drążek, to puści, tyle, że bardzo gwałtownie.

Jeśli I jest zbyt niskie, to dron nie leci idealnie po wyznaczonym torze. To jakbyście próbowali jechać rowerem po plaży. Nawet na odpowiednich kołach, ciężko jechać idealnie prosto, bo koła zapadają się w piasku.


D-term (derrivative)

Kontroluje siłę tłumienia ruchu, który wywoływany jest przez czynniki zewnętrzne – ruchy drążków, wiatr, wibracje itp. Wysoka wartość D daje lepszą amortyzację przy każdym ruchu. Potrafi też spowodować spalenie się silników, ponieważ jest bardzo czułe na drgania o bardzo wysokiej częstotliwości przekazywane przez żyroskop (silniki obracające się z prędkości 30tyś obr/min to sporo drgań, które żyroskop z łatwością wyłapuje). Niska wartość D powoduje, że każdy ruch, który wykonamy będzie amortyzowany jak za pomocą gumy czy trampoliny. Zanim stanie w miejscu, w którym chcemy, chwilę się pokołysze przestrzeliwując setpoint w jedną i drugą stronę. Może też spowodować też efekt analogiczny do sytuacji stojącego w kajaku człowieka – kajak zaczyna się chwiać coraz bardziej, aż człowiek się przewraca.

D-term trzyma w ryzach P, aby ten jak najszybciej i precyzyjnie mógł osiągnąć setpoint, ale też wzmacnia wszelkie drgania z naszego układu. To najniebezpieczniejszy zawodnik w naszym trio i wymaga dość precyzyjnego ustawienia względem P.


Mamy więc P, które chcemy, aby było dość wysokie, D, które go pilnuje, ale też jest czułe na czynniki zewnętrzne oraz I, które sprawdza błędy i wtrąca swoje trzy grosze do całego układu.

Podczas ustawiania tych wartości ważniejsza jest odpowiednia proporcja pomiędzy P i D oraz I niż osiągnięcie konkretnej wartości przez którąś z „literek” PID. Odpowiednie zbalansowanie tych trzech parametrów zapewni nam przyjemność z latania. A przy odpowiednio dobranych komponentach naszego drona można się pokusić o zrezygnowanie z filtrów jakie mamy dostępne niemal w każdym konfiguratorze do kontrolerów lotu, jednak sugerujemy by na początku wartości filtrów zostawić na poziomie domyślnym. Filtry zostaną szczegółowo omówione w innym artykule.

Tuning PID krok po kroku:


Większość zaczynających przygodę z modelami latającymi wyposażonymi w kontrolery lotu, które możemy zresztą zaadaptować również do pojazdów (nie mam pojęcia czy wtedy też nazywa się je kontrolerami lotu, ale najczęściej to te same urządzenia) uważa zagadnienie ustawień PID i filtrów (tzw. tuningu PID) za najtrudniejsze.


Tymczasem ustawienia te są całkiem proste. Mamy bowiem trzy parametry, które możemy zmieniać - powiedzmy, że tak jak w konfiguratorze BetaFlight - za pomocą suwaków na pewnej skali. Wystarczy więc dla każdego parametru osobno znaleźć odpowiednie miejsce na tej skali. Aby określić to miejsce, podczas ustawiania wykonujemy próby lot i musimy przestrzelić ten punkt. Tzn. zaczynając od relatywnie niskiego parametru P wykonujemy lot próbny. Pewnie nie jest najlepiej. Podnosimy więc P o kilka punktów (jeśli korzystamy z suwaków w BetaFlight, to zmieniamy parametr po jednym kroku). Będzie coraz lepiej. Ten właściwy punkt poznamy po tym, że po kolejnym przestawieniu danego parametru, dron będzie zachowywał się gorzej. Należy wtedy cofnąć się o jeden krok i zająć kolejnym parametrem - D.​ Analogicznie jak P ustawiamy D. Na koniec zostawiamy I.


1. Wyłączamy całkowicie FeedForward - nim zajmiemy się na końcu. Można to w łatwy sposób zrobić poprzez ustawienie wpisanie wartości 0 w tabeli z wartościami PID dla wszystkich osi. Parametr Feedforward transition ustawiamy na 1. Dodatkowo wyłączamy D Min:


2. Ustawiamy wartość P odrobinę niższą niż wstępnie ustawiona dla Pitch i Roll (powiedzmy -15% / -20%). I również nieznacznie obniżamy (-15%). D zdecydowanie w dół (-30% / -35%). Najprościej zrobić to za pomocą suwaków ustawiając suwak PD Balance oraz P and D Gain na wartość 0.8:


3. Wykonujemy serię lotów. Po każdej zmianie parametrów 30s lotu i sprawdzamy temperaturę silników, a następnie przystępujemy do lotu – na tyle długiego, aby zauważyć jak najwięcej nieprawidłowości – drgania, oscylacje, przestrzeliwanie setpoint, drift itp.


Zbyt wysoka temperatura silników objawia się tym, że nie jesteśmy w stanie utrzymać silnika w dłoni. W pewnym momencie mogą zrobić się bardzo ciepłe, ale nie oznacza, to że dotarliśmy do granicy jakiego parametru. Może po prostu trzeba dodać inny parametr – to równowaga pomiędzy PID jest istotna, a nie wartości tych parametrów.​


4. Podnoś wartość P do momentu, kiedy dron będzie wystarczająco responsywny/agresywny. Jeśli używasz suwaków pamiętaj o zachowaniu D na stałym poziomie poprzez równomierne obniżanie wartości suwaka PD Balance:


5. Podnoś D do momentu, kiedy dron utraci odrobinę na swojej agresywności, na rzecz miękkiego, ale wciąż precyzyjnego wykonywania akrobacji, pokonywania zakrętów:


6. Zanim wyłączymy suwaki pozostał nam ostatni parametr do ustawienia, a więc FeedForward (FF). O parametrze tym mówi się najczęściej mówi się o nim w kontekście tuningu PID, a nie filtrów. Słusznie z technicznego punktu widzenia, ale sposób działania / wpływ jaki mają na charakterystykę lotu, bardziej zbliża ten parametr do filtrów. FF jest nam potrzebny, ponieważ całe to działanie PID powoduje pewne opóźnienia. FF w pewnym sensie odwraca sytuację i stara się dać kopa naszemu zespołowi PID, aby skutecznie podążały za setpoint’em.

Po ustawieniu PID, włączamy więc FF i stawiamy na początek mniej więcej w połowie skali suwaka. Generalnie mniejsza wartość FF będzie za niska dla 99% z Was. Aby dokładniej ocenić/wyczuć jak FF wpływa na naszą maszynę, możemy po każdym locie podnieść FF dość znacznie, aby zmiana była lepiej widoczna. Zbyt wysokie FF będzie objawiało się drobnymi oscylacjami, ponieważ wpływa na PID – szybciej je podbija. Jeśli więc naszym celem jest wysoka wartość FF, możemy zmniejszyć wartości PID, ale robiąc to proporcjonalnie względem siebie.

Możemy również zmienić wartość Feedforward transition czyli parametr mówiąco o tym przy jakim wychyleniu drążka rolę zaczyna odgrywać nasze Fedforward: 0 - FF działa już od poruszenia drążka; 1 - FF zaczyna działać przy maksymalnym wychyleniu drążka:


7. Podnoś I aż do osiągnięcia wrażenia, że zaczynasz mieć mniejszą kontrolę nad dronem po czym zredukuj I o kilka punktów. Ponieważ wartość I nie ulega zmianie wraz ze zmianą położenia suwaków PD Balance oraz P and D Gain wartość I podnosimy korkowo o 4-5 wpisując odpowiednie wartości w Tabeli. To również dobry moment aby dograć wartości P oraz D jeśli czujemy, że jesteśmy blisko finalnej wartości, a zmiana za pomocą suwaków nie daje nam wystarczającej rozdzielczości:


Podsumowanie:


Powyższy sposób ustawienia PID stanowi prosty i niestety bardzo czasochłonny przepis. Metody, w których ustawienia PID zaczyna się od D (z takimi również można się spotkać) są równie czasochłonne. Z czasem, po ustawieniu już kilku/kilkunastu dronów nabiera się wprawy i można znacznie szybciej wyczuć co wymaga poprawki. A prawda jest taka, iż całość PID tuningu powinniśmy zacząć od ustawienia filtrów. Jeśli jednak jesteś początkującym droniarzem to powinieneś zacząć właśnie od PID, a filtry zostawić tak jak są ustawione od początku.

Ważniejsze jest aby latać, latać, latać. Po jakimś czasie będziesz w stanie lepiej wyczuć drobne różnice pomiędzy różnymi ustawieniami filtrów, jak również zaczniecie lepiej odnajdywać się w sytuacji przyczynowo – skutkowej różnych ustawień.

Osobiście obecnie budując drona z wgranym Betaflight nie korzystam z filtrów. Są mało precyzyjne i za bardzo ingerują w charakterystykę lotu. Inaczej sprawa ma się w EmuFlight, którego od niedawna jestem fanem. Tu filtry są bardziej klarowne, bardziej precyzyjne i dodają mniejsze opóźnienia do naszego i tak już zagmatwanego układu z PID i FF (FeedForward). To oczywiście moja opinia. Początkującym pilotom polecam jednak korzystać z filtrów, ponieważ dają zaskakująco dobre efekty w większości dronów.

Ale, żeby nie zostawiać Cię zupełnie z niczym w temacie filtrów, na koniec mały schemat z EmuFlight, który sprawdza się również w innych konfiguratorach:

PID tuning - objawy vs. działania

265 wyświetleń0 komentarzy

Ostatnie posty

Zobacz wszystkie
bottom of page