Rachunek wariacyjny, Bellman, dynamic programming, zasada maksimum Pontryagina, HJB, wyprowadzenie LQR, RL connection.
Wszystkie regulatory z poprzednich modułów — PID, SMC, LQR — wzięły się skądś. PID to historyczna heurystyka. LQR jest matematycznie wyprowadzone z głębszej teorii. SMC i MPC też mają fundament teoretyczny. Tym fundamentem jest optymalne sterowanie.
Podstawowe pytanie:
Znajdź najlepszą trajektorię sterowania minimalizującą funkcję kosztu , gdzie:
Trzy główne podejścia rozwiązania tego problemu:
Każde podejście daje to samo rozwiązanie dla problemów jasno postawionych, ale różni się sposobem obliczeń i typami problemów, do których pasuje.
Odpowiedź: cykloida — krzywa zataczana przez punkt na okręgu toczącym się po prostej. Nie linia prosta, nie parabola. Geometrycznie nieoczywiste; matematycznie wyniknęło z rachunku wariacyjnego.
Mając funkcjonał , ekstremum spełnia:
Równanie różniczkowe drugiego rzędu na . Dla brachistochrony: , rozwiązanie: cykloida.
Klasyczny problem optymalnego sterowania z ograniczeniem można sformułować przez lagrangian z mnożnikami:
Wzór Eulera-Lagrange'a zastosowany do tego daje zasadę maksimum Pontryagina (§5) jako uogólnienie do problemów z ograniczeniami nieholonomicznymi.
„Optymalna polityka ma tę własność, że niezależnie od początkowego stanu i pierwszej decyzji, pozostałe decyzje muszą stanowić optymalną politykę dla stanu wynikłego z pierwszej decyzji."
Formalnie: niech = optymalny koszt pozostały od stanu x w chwili t:
Bellman wykazał, że spełnia rekurencję:
Czyli: optymalne od teraz = najmniej (natychmiastowy koszt + optymalne od następnego stanu). To fundamentalne równanie — bazaza dla:
Klasyczny przykład DP: znalezienie najkrótszej drogi w siatce od dowolnego pola do celu, omijając przeszkody. Każdy krok kosztuje 1. Cel daje nagrodę 100.
Algorytm value iteration: iteracyjnie aktualizuj wzorem Bellmana, aż zbiegnie. Każda iteracja propaguje wartość o jedno pole bliżej celu.
Przewijaj suwakiem od 0 do 30 iteracji — zobaczysz, jak fala wartości rozchodzi się od celu. Po ~25 iteracjach wszystkie pola mają V skonwergowane do prawdziwych wartości. Strzałki to polityka: gdziekolwiek się znajdziesz, idź tam gdzie strzałka.
Kompleksowość: dla N stanów i K akcji, każda iteracja to O(NK). Sumarycznie do konwergencji ~D iteracji gdzie D to średnica grafu. Dla naszej siatki 10×8: ~30 iteracji. Dla ciągłej przestrzeni stanu — algorytm jest niewykonalny (curse of dimensionality). Stąd HJB i metody przybliżone.
Definiujemy hamiltonian:
gdzie to costate (zmienna sprzężona, „mnożnik Lagrange'a" dla ograniczenia ). Wymiar = wymiar stanu.
Optymalna trajektoria spełnia jednocześnie trzy warunki:
+ warunki brzegowe (boundary conditions): znany, wyznaczony z funkcji terminalnej.
Costate ma fizyczną interpretację: sensitivity kosztu względem zmiany stanu w chwili t. Jeśli duże — perturbacja w chwili t bardzo wpływa na całkowity koszt. W chwili końcowej: .
Pontryagin daje two-point boundary value problem (TPBVP): dwa równania (na x i λ) z warunkami brzegowymi na końcach. Trudniejszy do rozwiązania niż klasyczne IVP, ale algorytmy istnieją (shooting method, collocation, indirect methods).
Gdy hamiltonian jest liniowy w u (np. dla planta liniowego z kwadratowym kosztem JEDNYM członem w u), warunek minimum daje bang-bang: . Sterowanie skacze między ekstremami. SMC ma głębokie powiązanie z bang-bang Pontryaginowskim — pełny dowód poza zakresem.
Lektura: Liberzon „Calculus of Variations and Optimal Control Theory" (2012); Kirk „Optimal Control Theory" (1970) — klasyczny.
Z rekurencji Bellmana, dla małego :
Taylor: . Podstawiając i biorąc :
To jest równanie HJB (Hamilton-Jacobi-Bellman) z warunkiem brzegowym .
Gdy znamy , optymalne sterowanie wyznacza się algebraicznie:
Gradient gra rolę costate z Pontryagina — dualność.
HJB to nielinowe równanie cząstkowe w przestrzeni stanu. Analitycznie rozwiązywalne tylko dla specjalnych klas (LQR, niektóre minimum-time problems). Dla ogólnych nieliniowych — trzeba przybliżeń:
Tutaj wszystko się składa: pokazujemy że LQR z modułu 5 wynika wprost z HJB dla specyficznego problemu.
Plant liniowy: . Koszt kwadratowy: . Horyzont nieskończony: .
Spróbujmy dla pewnej macierzy symetrycznej dodatnio określonej (V nie zależy od t bo problem stacjonarny).
. Optymalne u z HJB:
Gradient względem u: ⇒
To jest klasyczne LQR feedback! K wyrażone przez P.
Wstawiamy z powrotem do HJB:
Ponieważ to musi zachodzić dla każdego x:
Algebraiczne równanie Riccatiego dla LQR. Rozwiązanie P daje optymalne gain K. To dokładnie ten DARE, który implementujemy w module 5 (mpc.ts).
LQR nie jest heurystyką — jest optymalnym regulatorem dla klasy problemów LQ. Pochodzi wprost z fundamentalnej teorii. Stąd jego centralność w teorii sterowania: jeden z niewielu „dokładnie rozwiązanych" problemów optymalnego sterowania w nieskończonym horyzoncie.
LQR minimalizuje koszt kwadratowy:
Wagi mówią co jest ważne:
Spróbuj: R = 100 (logR = 2): kontroler „leniwy", mały u, długa zbieżność. R = 0.01: agresywny, duże u, szybkie sprowadzenie do 0. Q₁₁ = 1000: pozycja priorytetem, kontroler „wstrzykuje" duże u żeby szybko skorygować.
Reinforcement learning (RL) i optymalne sterowanie to dwie twarze tego samego problemu. Różnica:
Q-learning używa tej samej rekurencji Bellmana co DP:
Gdzie = expected cumulative reward starting from s, taking a, then optimal. To jest dyskretna Bellman equation z dyskontem (zamiast horizon).
W praktyce reprezentowana przez sieć neuronową (DQN, Mnih 2015). Gradient descent minimalizuje błąd Bellmana — równoważnik value iteration dla ciągłych stanów.
Inverse RL: znając polityki ekspertów, wyznacz funkcję kosztu którą optymalizują. Standardowe w autonomicznej jeździe (uczymy się ludzkich preferencji).
Łączenie RL z klasycznym sterowaniem:
Klasyczna lektura: Bertsekas „Reinforcement Learning and Optimal Control" (2019) — most między klasyką a RL. Bertsekas, Tsitsiklis „Neuro-Dynamic Programming" (1996) — pionierska książka. Sutton & Barto „Reinforcement Learning" (2nd ed., 2018) — RL kanon.