Rozdział 13

Wyzwanie z dronem

Czy ty utrzymasz drona na 2 m mimo wszystkiego?

Rozdział 13: Wyzwanie z dronem ↗

Odprawa przed misją

June: Dobra. Prawdziwy dron, prawdziwa dostawa. Startuje z paczką, przetrzymuje podmuch, zrzuca paczkę i przez cały czas trzyma 2 m. Dwadzieścia sekund.

Mika: I nie wolno nam niczego dotykać, kiedy leci?

Theo: W tym cały sens. Regulator musi to zrobić sam. My tylko wybieramy trzy liczby. No, cztery: jeszcze filtr.

Misja, sekunda po sekundzie:

  • 0 s: start z ziemi z paczką 0,2 kg (razem 0,7 kg).
  • 6–9 s: podmuch w dół pcha z siłą 1,5 N.
  • 12 s: paczka spada. Nagle dron jest o 0,2 kg lżejszy.
  • 20 s: koniec misji.

Na finał nasz model drona robi się trochę uczciwszy. Każda z tych rzeczy to coś, z czym muszą żyć prawdziwe drony, i każda to stary znajomy z wcześniejszego rozdziału:

  • Bezwładność silników (τ ≈ 0,05 s): śmigło nie zmieni prędkości w mgnieniu oka. Jego ciąg podąża za poleceniem jak stygnąca kawa z rozdziału 3, człon inercyjny pierwszego rzędu: po 0,05 s jest w 63 % drogi. Spóźnione pchnięcie to opóźnienie fazowe z rozdziału 12 w przebraniu.
  • **Zaszumiony czujnik (σn\sigma_n ≈ 2 cm, n od ang. noise, czyli szum; to nie σ bieguna):** każdy odczyt wysokości jest przekłamany o około 2 cm, losowo, tysiąc razy na sekundę. Rozdział 11 ostrzegał: D zamienia to drżenie w wielkie skoki ciągu.
  • Ograniczone silniki (od 0 do 20 N): ograniczenie z rozdziału 10 zostaje. Z paczką dron waży 6,9 N, więc 20 N to tylko około trzy razy więcej niż jego ciężar, a silniki nigdy nie pociągną w dół. Dopóki są na ograniczeniu, stos czeka (anti-windup z rozdziału 11).
  • D jest filtrowane: poprawka z rozdziału 11. D bierze nachylenie wygładzonego odczytu czujnika, członu inercyjnego pierwszego rzędu ze stałą czasową τf\tau_f, którą wybierasz. Dłuższe τf\tau_f to spokojniej, ale później.

Rozdział 13: Wyzwanie z dronem ↗

Rozdział 12 by to narysował. Oto własna pętla drona, sześciogwiazdkowe nastawy raz dookoła: regulator, silniki, dron. Przesuń bezwładność silników i patrz, jak faza wygina się w dół.

Rozdział 13: Wyzwanie z dronem ↗

Theo: Bez bezwładności faza nigdy nie dochodzi do −180°, więc urwiska w ogóle nie ma: choćbyś nie wiem jak mocno podkręcił wzmocnienie, pętla nigdy nie dosięgnęłaby −1 z rozdziału 10. To malutka bezwładność silników buduje urwisko.

Najpierw zgadnij! Gdy w 12. sekundzie paczka spada, który składnik wykonuje najcięższą pracę, żeby przywrócić drona dokładnie na 2 m?

Rozdział 13: Wyzwanie z dronem ↗

Mika: Chwila. Czyli po zrzucie dron musi przez jakiś czas wisieć trochę za wysoko? To z tego uchybu stos się oducza!

Wykonaj misję

Każda zmiana suwaka restartuje misję, a poprzedni lot zostaje jako duch. Mała płaszczyzna s pokazuje bieguny nominalne: bezwładność silników i filtr są uwzględnione, pominięte zostają tylko szum, paczka i ograniczenia. Widzisz więc liniowy obrazek, podczas gdy obok toczy się prawdziwy, bałaganiarski lot. Zdobądź wszystkie sześć gwiazdek, żeby dostać złoto.

Progi to to, co zauważyłby klient czekający na przesyłkę: ustalenie w ciągu 3 s, nigdy więcej niż 10 % za wysoko, podmuch spycha najwyżej na szerokość dłoni (20 cm), powrót w 2 s po zrzucie, żadnego szorowania o ziemię i silniki, które nie bzyczą (poniżej 0,5 N terkotu).

Aby dostać gwiazdkę za dolot, rzeczywista wysokość musi pozostać w granicach ±5 cm od chwili dotarcia aż do podmuchu w 6 s; jednorazowe przecięcie 2 m się nie liczy. Gwiazdka za spokojne silniki używa odchylenia standardowego ciągu od 3 do 6 s, po starcie, a przed podmuchem: typowego odchylenia od średniej, wraz z późnym uspokajaniem i terkotem od czujnika. Wskaż wiersz listy kontrolnej (albo przejdź do niego klawiszem Tab), żeby zacieniować sekundy, które ocenia.

Rozdział 13: Wyzwanie z dronem ↗

June: Nastroiłam w głowie idealny regulator: ogromne KdK_d, najmniejszy filtr, żeby D reagowało natychmiast. W spokojnym powietrzu jest bez zarzutu! Patrzcie…

June: …czemu silniki wyją? Pomarańczowa linia to sam puch, a teraz jeszcze przestrzeliwuje!

Theo: Rozdział 11, ostrzeżenie 2. Duże KdK_d razy malutki filtr zamienia każde 2 cm drżenia czujnika w skok ciągu. A skoki dużo częściej obcinają się na 0 N niż na 20 N (blada pomarańczowa linia pokazuje, o co regulator prosił: zobacz, jak często dobija do 0 N), więc dodają krzywe, jednostronne pchnięcie. Stąd przeregulowanie, ten sam dryf w górę, który przyłapaliśmy w rozdziale 11. Był bez zarzutu tylko dlatego, że twoje wyobrażone spokojne powietrze miało w pakiecie idealny czujnik.

Rozdział 13: Wyzwanie z dronem ↗

Wypróbuj nastawy June na spokojne powietrze i patrz, jak gwiazdka „spokojne silniki” gaśnie. Potem wydłuż filtr do 0,04 s i zmniejsz KdK_d do około 7. Przy KdK_d = 7 dron dociera w około 1,9 s zamiast wymarzonych przez June 1,3 s: to cena spokojnych silników. Ta wymiana, szybkość przeciw szumowi i przeciw odporności, to właśnie inżynieria sterowania.

June: Trochę wolniej, za to silniki przestają wyć. Zgoda. W mojej głowie powietrze było spokojne, a czujnik idealny.

Patrząc wstecz

Mika: Na początku myślałam, że „pchaj mocniej” naprawia wszystko. A jest odwrotnie, prawda? Większość kłopotów brała się ze zbyt mocnego pchania na podstawie starych albo zaszumionych informacji. Cieszę się, że zadałam wszystkie te głupie pytania. Żadne z nich nie było głupie.

Theo: W końcu wierzę w transformatę Laplace'a. To nie tabelka do sprawdzania: to sonda, która pyta sygnał „ile jest w tobie este^{st}?”. A ponieważ nachylenia zamieniają się w mnożenie przez ss, analiza zamienia się w algebrę. Bieguny to miejsca, gdzie odpowiedź wybucha: este^{st}, z których zbudowany jest układ.

June: A ja nauczyłam się, że „więcej” to nie „lepiej”: więcej wzmocnienia, więcej tłumienia, więcej KiK_i, więcej szybkości. Zawsze jest jakieś urwisko, a dobre projekty trzymają od niego zapas. I jeszcze: zawsze wypróbuj to na dronie.

Oto wszystko, co zbudowaliśmy, od prysznica do finału. Każdy bąbelek prowadzi z powrotem tam, gdzie się narodził.

Co udało nam się ustalić

  • Sprzężenie zwrotne: zmierz, co się stało, porównaj z celem, działaj na podstawie uchybu (rozdz. 0–1).
  • Regulator P pcha proporcjonalnie do uchybu, ale zostawia zwis i kołysze się, gdy jest silny (rozdz. 2).
  • Pochodne, wykładnicze i wirujące liczby opisują, jak rzeczy się zmieniają: este^{st}, gdzie s=σ+iωs = \sigma + i\omega, rośnie albo maleje i się kołysze (rozdz. 3–7).
  • Transformata Laplace'a zamienia nachylenia w mnożenie przez ss, więc analiza staje się algebrą (rozdz. 9).
  • Nieskrócone bieguny transmitancji wskazują naturalne ruchy widoczne od wybranego wejścia do wyjścia: po lewej zanikają, po prawej rosną (rozdz. 10).
  • PID: I eliminuje zwis, D dodaje tłumienia, a każdy z nich przesuwa bieguny (rozdz. 11).
  • Opóźnienie dodaje opóźnienia fazowego; zapasy mówią, jak daleko jesteś od krawędzi urwiska (rozdz. 12).
  • Prawdziwy sprzęt dodaje ograniczenia (rozdz. 10), bezwładność, która kosztuje zapas fazy (rozdz. 3 + rozdz. 12), i szum, który D wzmacnia (rozdz. 11), więc dobre regulatory są nie tylko szybkie, ale i spokojne (rozdz. 13).

Wytłumacz to znajomemu

Najpierw twoja misja: ile masz gwiazdek i która była najtrudniejsza? Powiedz na głos dlaczego, zanim zaczniesz czytać dalej.

Mika: U mnie gwiazdka za spokojne silniki. Ciągle dodawałam D, żeby uspokoić silniki, a one tylko robiły się głośniejsze.

Najlepszym testem zrozumienia jest tłumaczenie. Przed każdą odpowiedzią spróbuj powiedzieć na głos swoją wersję. Potem wybierz wyjaśnienie, które najbardziej do niej pasuje.

Jeszcze jeden obrazek: płaszczyzna stanu

Theo: Każdy wykres w tym kursie pokazywał wysokość w czasie. Ale sama wysokość nie powie ci, co będzie dalej: 2 m i w górę to nie to samo co 2 m i w dół.

Przyszłość wyznaczają dwie liczby: wysokość mierzona od celu, Δh\Delta h, i prędkość vv. Razem tworzą stan drona. Połóż je na jednej płaszczyźnie, wysokość w poziomie, a prędkość w pionie, i cały lot staje się ścieżką jednego ruchomego punktu.

Ruchem tego punktu rządzą nachylenia z rozdziału 3, po jednym dla każdej liczby: wysokość zmienia się w tempie prędkości, a prędkość w tempie przyspieszenia z równania z rozdziału 1. Gdy ciąg zawisu mamy już z głowy, a na wierzch dokładamy regulator PD T=−Kp Δh−Kd vT = -K_p\,\Delta h - K_d\,v, obie reguły mieszczą się w jednej tabelce:

ddt(Δhv)=(01−Kpm−c+Kdm)⏟A(Δhv)\frac{d}{dt}\begin{pmatrix}\Delta h\\ v\end{pmatrix} = \underbrace{\begin{pmatrix}0 & 1\\ -\frac{K_p}{m} & -\frac{c+K_d}{m}\end{pmatrix}}_{A}\begin{pmatrix}\Delta h\\ v\end{pmatrix}

Ta tabelka AA to macierz: pomnóż przez nią stan, a wyjdzie tempo, w jakim stan się zmienia. Górny wiersz mówi, że wysokość zmienia się w tempie prędkości; dolny wiersz to prawo Newtona.

Najpierw zgadnij! Przy KpK_p = 20 N/m i bez D dron startuje 1 m za nisko i w bezruchu. Jaką ścieżkę kreśli jego stan?

Rozdział 13: Wyzwanie z dronem ↗

June: To spirala z rozdziału 6! A kiedy podniosę KdK_d powyżej około 5,3, spirala się prostuje i wjeżdża do środka wzdłuż dwóch przerywanych linii.

Te proste linie to mody: zacznij dokładnie na jednej, a stan zjedzie prosto do środka we własnym tempie tego modu. Te tempa to specjalne liczby macierzy, jej wartości własne, leżące tam, gdzie det⁡(sI−A)=0\det(sI - A) = 0:

det⁡(sI−A)=s2+c+Kdm s+Kpm=0\det(sI - A) = s^2 + \frac{c + K_d}{m}\,s + \frac{K_p}{m} = 0

Mika: To równanie z rozdziału 7! Wartości własne to bieguny. Ten sam dron, nowy obrazek.

A plac zabaw z biegunami z rozdziału 10 przez cały czas po cichu robił sprzężenie zwrotne od stanu: T=−Kp Δh−Kd vT = -K_p\,\Delta h - K_d\,v naciska na obie liczby stanu, a wybór dwóch wzmocnień ustawiał oba bieguny. Dodaj do stanu więcej liczb (przechył, obrót, położenie w bok), a macierz urośnie, ale idea zostaje: wartości własne to bieguny, a sprzężenie zwrotne od całego stanu może ustawić je wszystkie.

Jeszcze jedno wyznanie. Każda reguła w tym kursie to reguła linii prostej, ale prawdziwe rzeczy się wyginają. Ciąg śmigła rośnie z kwadratem jego prędkości obrotowej, T=k w2T = k\,w^2. W pobliżu zawisu krzywa jest prawie prosta, więc zamieniamy ją na styczną w punkcie zawisu, linijkę z rozdziału 3:

T≈T0+2k w0 ΔwT \approx T_0 + 2k\,w_0\,\Delta w

Rozdział 13: Wyzwanie z dronem ↗

Theo: Czyli proste linie wcale nie kłamały. To obrazek w powiększeniu: uczciwy blisko zawisu, tym gorszy, im dalej odlecisz. Dlatego nasza matematyka potrzebowała drona w pobliżu 2 m.

Nowe pojęcia

Stan
Liczby, które wyznaczają przyszłość: dla naszego drona wysokość i prędkość. Jeden punkt na płaszczyźnie stanu.
Macierz AA
Tabelka liczb, która zamienia stan w tempo jego zmian.
Wartości własne
Specjalne tempa macierzy, tam gdzie det⁡(sI−A)=0\det(sI - A) = 0. Dla macierzy AA drona to jego bieguny.
Linearyzacja
Zastąpienie krzywej reguły jej styczną w pobliżu punktu, który cię interesuje (tu: zawisu).

Dokąd dalej

Znasz teraz więcej teorii sterowania, niż większość ludzi kiedykolwiek spotka. Oto dokąd prowadzi dalej droga, każdy punkt to nowy zeszyt:

  • Linie pierwiastkowe (root locus): zamiast przeciągać bieguny, przeciągaj wzmocnienie i patrz, jak bieguny rysują ścieżki. Od razu widać, które KpK_p to już za dużo.
  • Sterowanie w przestrzeni stanów: pierwszy przedsmak masz już za sobą. Wiele czujników i silników naraz: prawdziwy dron musi jednocześnie trzymać przechył, obrót i położenie, a strojenie po jednym pokrętle przestaje działać.
  • Sterowanie cyfrowe: prawdziwe regulatory działają na komputerach, które próbkują co kilka milisekund. Próbkowanie to też małe opóźnienie, a płaszczyzna s dostaje kuzynkę, płaszczyznę z.
  • Filtry Kalmana: łączą to, co przewiduje model, z tym, co mówi czujnik, więc można używać zaszumionego czujnika bez powolnego filtra.
  • Predyktory Smitha i sterowanie predykcyjne (MPC): regulatory, które noszą w sobie małą symulację, żeby zajrzeć za opóźnienia. To prawdziwe lekarstwo na prysznic.
  • Sterowanie nieliniowe i odporne: co robić, gdy opór powietrza nie jest liniowy albo dron lata w 3D, i jak udowodnić, że wciąż masz zapas.

Theo: Najpierw linie pierwiastkowe. Chcę patrzeć, jak bieguny się ruszają, kiedy kręcę jednym pokrętłem.

Następnym razem, gdy prysznic każe ci tańczyć między wrzątkiem a lodem, będziesz dokładnie wiedzieć, co się dzieje. I będziesz wiedzieć, że to nie twoja wina. To zapas fazy.

Rozdział 13: Wyzwanie z dronem ↗