Obiektem odpowiedzialnym za utrzymanie stabilności lotu jest regulator proporcjonalno-całkująco-różniczkujący, nazywany skrótowo PID od pierwszych liter angielskich nazw tych trzech członów. Regulator porównuje wartość zadaną wz, czyli taką wartość regulowanego parametru, jaką chcemy osiągnąć, z wartością wejściową x otrzymaną z układu pomiarowego, reprezentującą rzeczywistą wartość regulowanego parametru. Regulator oblicza różnicę między tym, co ma być, a tym, co jest, nazywaną błędem lub uchybem regulacji e. Błąd jest następnie przetwarzany w poszczególnych członach regulatora, aby obliczyć wartość wyjściową y, przekazywaną na układy wykonawcze sterujące regulowanym parametrem. W bezzałogowcach czujniki znajdują się w jednostce inercyjnej mierzącej prędkości kątowe i kąty orientacji w przestrzeni. Czujniki w centralce barometrycznej mierzą wysokość, na podstawie której obliczana jest prędkość zmiany wysokości, oraz prędkość względem powietrza. Jeszcze inne mierzą położenie w przestrzeni i prędkość zmiany tego położenia. Układami wykonawczymi w bezzałogowcu są silniki lub powierzchnie sterowe. Wartości zadane w zależności od trybu regulacji pochodzą z aparatury RC w przypadku sterowania ręcznego, z układu automatyki lotu, który wyznacza zadane wartości parametrów lotu na podstawie zdefiniowanej trasy lotu, lub z członów nadrzędnych w przypadku kaskady.

Regulator pracuje z rzeczywistymi wartościami regulowanych parametrów. Jeżeli stabilizuje prędkość zmiany wysokości, to jego wartość zadana i wartość wejściowa są podawane w jednostkach pomiaru tej prędkości, czyli w metrach na sekundę [m/s]. Jeżeli stabilizuje wysokość, to wartości podane są w metrach [m]. Jeżeli regulator stabilizuje kąt, to obie wchodzące do niego wartości są podane w radianach [rad]. Prędkości kątowe są podane w radianach na sekundę [rad/s]. Współrzędne geograficzne są również kątem podanym w radianach [rad]. Analogicznie prędkość zmiany położenia jest wyrażona w radianach na sekundę [rad/s]. Dlaczego radiany, a nie stopnie? Ponieważ jednostką miary kąta w układzie SI jest radian i w tej jednostce wykonywane są obliczenia trygonometryczne. Przyjąłem, że wszystkie kąty będą wyskalowane w radianach a ewentualne przeliczenie ich na bardziej intuicyjne stopnie odbywa się w interfejsie użytkownika.

Wartość wyjściowa regulatora jest wynikiem przekształceń różnicy parametrów wejściowych. Ponieważ obiekty wykonawcze nie są wyskalowane w konkretnych jednostkach, więc wyjście regulatora jest normalizowane do zakresu ustalonego przez użytkownika, domyślnie ±100,0.

Schemat blokowy regulatora zaimplementowanego w APL3 jest przedstawiony na ilustracji powyżej. Regulator zasilany jest sygnałem wejściowym x pochodzącym z czujników mierzących wartość regulowanego parametru. Punktem odniesienia jest wartość zadana wz, czyli stan jaki chcemy uzyskać w wyniku regulacji. Poszczególne człony regulatora generują części sygnału sterującego, który po zsumowaniu podawany jest na mechanizmy wykonawcze.

Człon proporcjonalny P regulatora oznaczony na schemacie kolorem żółtym, jest prostym mnożeniem wartości uchybu przez współczynnik wzmocnienia KP. Jest to podstawowy sposób regulacji. Nie wprowadza zakłóceń fazowych, gdyż nie jest zależny od czasu. Jego ułomnością jest to, że nie potrafi wyregulować sygnału, tak aby pokrywał się z wartością zadaną. Ponieważ wartość regulująca jest iloczynem uchybu i wzmocnienia, więc gdy uchyb się zmniejsza, zmniejsza się również oddziaływanie regulatora, co powoduje zwiększenie uchybu. Zwiększając wzmocnienie zmniejszamy uchyb, ale coraz silniejsze oddziaływanie na wyjście powoduje zaburzenia stanu obiektu,co zwykle przedstawia się jako oscylacje. Wartość wzmocnienia dla którego wywołane oscylacje nie wygasają ani nie wzbudzają się, nazywane jest wzmocnieniem krytycznym. Razem z okresem oscylacji są to ważne parametry identyfikujące regulowany obiekt. Na ich podstawie można dobrać optymalne nastawy regulatora korzystając z reguł Zieglera-Nicholsa.

Człon całkujący I oznaczony kolorem fioletowym całkuje bieżący błąd, czyli kumuluje go w zmiennej roboczej a dokładniej jego część regulowaną wzmocnieniem KI. Im większe wzmocnienie członu całkującego, tym większa część błędu podlega całkowaniu. Zadaniem członu całkującego jest skasowanie uchybu statycznego typowego dla członu proporcjonalnego. Człon całkujący sumuje błąd tak długo, aż jego skumulowana wartość podana na wyjście skompensuje uchyb do zera. Ponieważ całka ma tendencję aby rosnąć w nieskończoność a rzeczywiste układy wykonawcze zdecydowanie mają granicę swojego działania, więc jest potrzeba ograniczenia wartości całki do wartości maksymalnego uchybu statycznego członu proporcjonalnego. Jest to zadanie ogranicznika, który nie pozwala aby wartość bezwzględna całki przekroczyła zadaną wartość.

Człon dobrze pracuje w sytuacjach statycznych, natomiast tam gdzie pojawia się szybka zmiana wartości, swoją relatywnie wolno rosnącą całką wprowadza przesuniecie fazowe. Przypomina to balansowanie żaglówki na wietrze. Jeżeli wiatr pochyla żagiel na jedna stronę, to załoga swoją masą dociąża przeciwną burtę równoważąc przechylenie. To jest sytuacja statyczna, natomiast nie da się w ten sposób stabilizować bujania przez fale, które zakłócaj stabilność łodzi szybciej niż załoga zdołała by się przemieścić. Między innymi dlatego w APL3 człon całkujący można ustawiać tylko dla regulatorów nadrzędnych, gdyż podrzędne pracują ze znacznie większą zmiennością sygnału. Parametrem definiującym wielkość całkowania jest czas zdwojenia, czyli taki czas po zakłóceniu jednostkowym, po którym wyjście regulatora podwaja swoją wartość względem odpowiedzi członu proporcjonalnego.

Człon różniczkujący D oznaczony kolorem łososiowym liczy pierwszą pochodną regulowanej wartości. Pochodna w systemach dyskretnych jest to różnica między wartością bieżącą a poprzednią. Tyle mówi teoria, jednak w praktyce, w szczególności w szybkich mikrokontrolerach, różnica między wartością bieżącą a poprzednią jest na tyle mała, że niknie w szumie. Aby różniczkowanie miało sens, trzeba sięgnąć do danych wcześniejszych niż ostatnia próbka. Pierwsza pochodna zmiany położenia zarówno dla ruchów liniowych, jak i kątowych to prędkość. Prędkość obiektów dynamicznych będzie najlepiej zobrazowana, jeżeli porówna się wartość bieżącego położenia ze stanem sprzed rozpoczęcia ruchu w funkcji czasu dT. Ponieważ w zależności od bezwładności obiektu czas zmiany jego położenia jest inny, więc trzeba mieć możliwość regulacji czasu, z którego pobierana jest poprzednia wartość. Takie płynnie regulowane opóźnienie najprościej jest zrobić na prostym w implementacji filtrze o Nieskończonej Odpowiedzi Impulsowej, w skrócie NOI. Dodatkowo filtr wygładza szum procesu, dzięki czemu akcja różniczkująca jest gładsza, co przekłada się na mniejsze straty energii przy sterowaniu mechanizmami wykonawczymi. Podobnie jak w członie całkującym, wielkość różniczkowania reguluje się wzmocnieniem KD, ustalając, jaka cześć członu różniczkującego jest podawana na wyjście.

Człon wyprzedzający W oznaczony kolorem zielonym jest formą członu różniczkującego. W klasycznym regulatorze człon różniczkujący zasilany jest wartością błędu, czyli różnicy wartości wejściowej i zadanej. W APL3 akcja różniczkująca rozdzielona jest na osobne różniczkowanie wejścia i wartości zadanej. W ogólności wartość pochodnej rośnie szybciej niż wartość sygnału, z którego jest liczona, dlatego w układzie regulacji zadaniem członu różniczkującego jest szybsze uzyskanie sygnału przeciwdziałającego zakłóceniu. Nie trzeba czekać, aż człon proporcjonalny zarejestruje odpowiednio duży uchyb, czy człon całkujący powoli skumuluje odpowiednio dużą jego wartość. Człon różniczkujący wykrywa prędkość zmiany zakłócenia i zaczyna przeciwdziałać, zanim jeszcze powstanie duży uchyb. Różnica między oboma członami różniczkującymi polega na tym, że człon w kolorze łososiowym z wyprzedzeniem reaguje na zmiany w obiekcie wywołane przez zakłócenia środowiskowe, a człon zielony reaguje zmiany wywołane sterowaniem pilota poprzez zmianę wartości zadanej. Pilot wychylając drążek aparatury daje sygnał zmiany kąta, a człon wyprzedzający przyspiesza reakcję na zmianę sterowania.

Filtr wejściowy oznaczony na schemacie w kolorze błękitnym ma za zadanie wygładzić szum procesu, lekko filtrując dane wejściowe. Wprowadza to pewne opóźnienie, tym większe im większa jest postawa filtra. Jednak gdy regulator pracuje szybciej niż obiekt jest w stanie zmieniać swój stan, można pozwolić sobie na opóźnienie, uzyskując gładszą pracę mechanizmów wykonawczych, co przekłada się na mniejsze zużycie energii i mniejsze drgania obiektu. W praktyce można zwiększać podstawę filtra do wartości, przy której zaczyna obserwować się pogorszenie dynamiki obiektu.

Regulatory połączone są w kaskady, złożone z regulatorów podstawowych parametrów z regulatorami pierwszej pochodnej tych parametrów. Parametrami nadrzędnymi są trzy kąty orientacji w przestrzeni (φ, θ, ψ), wysokość (h) i dwie składowe położenia geograficznego (φ, λ). Za nimi znajdują się regulatory pierwszej pochodnej regulowanych parametrów, czyli trzech prędkości kątowych, prędkości zmiany wysokości i dwu prędkości zmiany położenia geograficznego. Tworzą one ściśle dobrane pary regulatorów. Użycie kaskady jest praktycznie rozbudowaniem regulatora o drugą pochodną, co jeszcze bardziej przyspiesza proces regulacji. Zamiast kaskady dwóch regulatorów można byłoby rozbudować istniejący regulator o jeszcze jeden człon drugiej pochodnej, jednak jest jeszcze jeden cel stosowania kaskady. Są to różne tryby sterowania, znane w jako STAB i ACRO. W trybie STAB chodzi o stabilizację kąta. Gdy przestajemy sterować drążkami aparatury, pozostawiając je wycentrowane, regulator w przykładowym wielowirnikowcu dostaje wartość zadaną kątów wynoszącą zero, więc  poziomuje się i zatrzymuje w miejscu. W trybie ACRO stabilizowana jest prędkość kątowa, czyli działa tylko podrzędny regulator. W tym trybie dużo trudniej jest uzyskać stabilny lot, jednak łatwiej jest robić figury akrobacyje, skąd wzięła się jego nazwa. Chcąc mieć możliwość lotu w obu trybach, trzeba mieć dwa kompletne regulatory, pomimo że pracujący w kaskadzie człon różniczkujący regulatora nadrzędnego robi to samo co człon proporcjonalny podrzędnego.

Kolejna część kaskady obejmuje regulatory położenia geograficznego i prędkości jego zmiany.  Lecąc w trybie autonomicznym między punktami A i B regulator pracujący w układzie kartezjańskim rozkłada drogę między punktami na składową północną N i wschodnią E. Droga na zachód i południe ma znak ujemny. Bieżące położenie wchodzi na wejście x regulatora, składowe N i E punktu docelowego wchodzą na wartości zadane. Wzmocnienie takiego regulatora  powinno być dosyć duże a jego wartość wyjściowa ograniczona do pewnego limitu, standardowo ±100. Znając parametry przykładowego wielowirnikowca wiemy, że jego ekonomiczna prędkość wynosi np. 20 m/s. Istota drugiej kaskady polega na tym, że wyjście regulatora drogi geograficznej jest mnożone rzez współczynnik skalujący powodujący że maksymalnemu wysterowaniu 100 odpowiada wartość zadana 20 m/s. Wartość przeskalowanego wyjście regulatora drogi jest podane jako wartość zadana regulatora prędkości geograficznej. Ten regulator stabilizuje prędkość lotu obu składowych N i E a jego wyjście ograniczone do wartości ±100 jest skalowane do wartości kąta, o jaki musi się pochylić, lub przechylić wielowirnikowiec, aby móc lecieć z zadaną prędkością. To jest już trzeci regulator w kaskadzie. Jego wyjście jest znowu skalowane do prędkości kątowej jaką trzeba osiągnąć aby czwarty z kolei regulator mógł zmienić wartość kąta obracając się wokół danej osi z zadaną prędkością kątową dobraną tak aby wykonać manewr w sposób ekonomiczny dopasowany do możliwości obiektu.

Regulatory łączy się w kaskady w zależności od trybu stabilizacji. Im większa autonomia, tym potrzeba więcej regulatorów. W teoretycznym trybie ręcznym (w praktyce zbyt trudnym dla człowieka) można byłoby nie używać żadnych regulatorów, a pilot sterowałby ciągiem każdego z silników. W trybie ACRO pracuje po jednym regulatorze dla każdego stabilizowanego parametru. W trybie STAB pracuje kaskada regulatorów kąta i prędkości kątowej. W praktyce nieistniejącym, ale możliwym do wyobrażenia trybie stabilizacji prędkości geograficznej pracowałyby trzy regulatory, a w trybie klasycznej nawigacji po punktach pracują cztery. W układzie stabilizacji wysokości jest trochę prościej, bo tam są tylko dwa regulatory w kaskadzie. W trybach autonomicznych pracują oba. Nadrzędny stabilizuje wysokość lotu, a jego wyjście jest przeskalowane na możliwą do osiągnięcia prędkość zmiany wysokości i podane jako wartość zadana regulatora prędkości pionowej, stabilizującego prędkość wznoszenia się i opadania. W trybach ręcznych zwykle pracuje tylko regulator prędkości pionowej – odpowiednik trybu ACRO. Drążek gazu ustawiony w połowie oznacza zerową prędkość pionową, czyli w praktyce utrzymanie zadanej wysokości. Przesunięcie drążka w dół stabilizuje ujemną prędkość, czyli opadanie, a w górę dodatnią prędkość, czyli wznoszenie. W rzeczywistości jest to trochę umowne, bo często przyjmuje się układ odniesienia nazywany NED od angielskich nazw dla kierunku dodatniego: North, East, Down. Tam dodatnia prędkość pionowa skierowana jest w dół, ale to jest tylko kwestia odpowiedniego układu odniesienia i nie zmienia to istoty pracy kaskady regulatorów.

Omawiając kaskadę zawierającą regulatory nawigacyjne, pominąłem układ przeliczenia globalnego układu odniesienia na układ lokalny wirnikowca. Nie byłby on potrzebny, gdyby BSP zawsze był skierowany przodem na północ i prawą stroną na wschód tak, aby układ lokalny współrzędnych zgadzał się z globalnym. Tak zwykle nie jest, więc trzeba  przeliczyć dane, aby wiedzieć, z jakim znakiem i w jakiej proporcji sygnał przykładowego lotu w kierunku północnym rozłożyć na pochylenie i przechylenia, w zależności od kąta odchylenia od kierunku północnego.

Na koniec jeszcze wrócę do rozdzielonego na dwie części członu różniczkującego. W kaskadzie sterowanej ręcznie, czyli trybie STAB, regulator nadrzędny stabilizujący kąt powinien mieć ustawione wyprzedzenie, aby szybko reagował na zmianę położenia drążków. Na przeciwdziałaniu zmiany kąta można położyć mniejszy nacisk. W skrajnym przypadku można byłoby wyłączyć człon różniczkujący. Regulator podrzędny stabilizujący prędkość kątową powinien główny nacisk mieć położony na przeciwdziałanie zakłóceniom od środowiska, czyli powinien mieć dobrze nastrojony człon różniczkujący a można pominąć człon wyprzedzający. Dzięki takiemu rozdzieleniu funkcjonalności można wybrać to co najlepsze