Moduł 13 · optymalne

Optymalne sterowanie

Rachunek wariacyjny, Bellman, dynamic programming, zasada maksimum Pontryagina, HJB, wyprowadzenie LQR, RL connection.

1. Po co optymalne sterowanie

Analogia. Wyobraź sobie dwa sposoby prowadzenia auta: (1) ręcznie dostrajany regulator prędkości — sprawdza co jest, koryguje. (2) GPS+nawigacja — planuje całą trasę uwzględniając koszty czasu, paliwa, korków. Optymalne sterowanie to drugie podejście: nie reaguj na bieżący stan, ale planuj sekwencję która minimalizuje całkowity koszt.

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:

minu()J=0TL(x(t),u(t),t)dt+Φ(x(T)),przy ograniczeniach x˙=f(x,u).\min_{u(\cdot)} J = \int_0^T L(x(t), u(t), t)\, dt + \Phi(x(T)), \quad \text{przy ograniczeniach } \dot x = f(x, u).

Znajdź najlepszą trajektorię sterowania u(t)u(t) minimalizującą funkcję kosztu JJ, gdzie:

  • L — koszt natychmiastowy (running cost), np. błąd² + energia sterowania²;
  • Φ — koszt końcowy (terminal cost), np. penalty za odchylenie od celu;
  • f — dynamika planta jako ograniczenie.

Trzy główne podejścia rozwiązania tego problemu:

  1. Rachunek wariacyjny — XVIII wiek, klasyczna metoda Eulera-Lagrange'a (§2).
  2. Zasada maksimum Pontryagina — lata 50. XX wieku, ZSRR (§5).
  3. Dynamic programming / HJB — Bellman (USA, lata 50.) (§3, §6).

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.

2. Rachunek wariacyjny — krótka historia

Klasyczna zagadka: brachistochrona (1696, Johann Bernoulli) — jaki kształt powinna mieć rynna od punktu A do B (gdzie B leży niżej, ale nie pionowo pod A), żeby kulka zsuwała się jak najszybciej? Pierwsze udokumentowane zadanie optymalizacji w fizyce.

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.

Wzór Eulera-Lagrange'a

Mając funkcjonał J[y]=abL(x,y(x),y(x))dxJ[y] = \int_a^b L(x, y(x), y'(x))\,dx, ekstremum y(x)y^*(x) spełnia:

LyddxLy=0.\frac{\partial L}{\partial y} - \frac{d}{dx}\frac{\partial L}{\partial y'} = 0.

Równanie różniczkowe drugiego rzędu na y(x)y(x). Dla brachistochrony: L=1+(y)2/2gyL = \sqrt{1 + (y')^2}/\sqrt{2gy}, rozwiązanie: cykloida.

Dlaczego to wszystko ważne dla sterowania

Klasyczny problem optymalnego sterowania minL(x,u)dt\min \int L(x, u)\,dt z ograniczeniem x˙=f(x,u)\dot x = f(x, u) można sformułować przez lagrangian z mnożnikami:

L=L(x,u)+λT(f(x,u)x˙)\mathcal{L} = L(x, u) + \lambda^T (f(x, u) - \dot x)

Wzór Eulera-Lagrange'a zastosowany do tego daje zasadę maksimum Pontryagina (§5) jako uogólnienie do problemów z ograniczeniami nieholonomicznymi.

3. Zasada Bellmana i dynamic programming

Analogia. Wyobraź sobie planowanie podróży A → Z z przesiadkami w 50 miastach. Naiwnie: trzeba sprawdzić wszystkie ścieżki — wykładniczo kosztowne. Bellman: zacznij od końca, dla każdego miasta policz najlepszy koszt do Z. Potem ciągnij wstecz. Każdą decyzję podejmujesz raz, w porządku odwrotnym do czasu. To jest dynamic programming.

Zasada optymalności Bellmana (1957)

„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 V(x,t)V(x, t) = optymalny koszt pozostały od stanu x w chwili t:

V(x,t)=minu()tTL(x(s),u(s))ds+Φ(x(T))V(x, t) = \min_{u(\cdot)} \int_t^T L(x(s), u(s))\,ds + \Phi(x(T))

Bellman wykazał, że VV spełnia rekurencję:

V(x,t)=minu(L(x,u)Δt+V(x+f(x,u)Δt,t+Δt)).V(x, t) = \min_u \Big( L(x, u)\,\Delta t + V(x + f(x,u)\Delta t, t + \Delta t) \Big).

Czyli: optymalne od teraz = najmniej (natychmiastowy koszt + optymalne od następnego stanu). To fundamentalne równanie — bazaza dla:

  • Algorytmu dynamic programming (DP) — zbiorówą iteracja wstecz
  • Równania HJB (§6) — granica DP dla Δt → 0
  • Algorytmu value iteration w RL — dyskretny analog
  • Q-learning, DQN — uczenie się V (lub Q) przez próbkowanie

4. Dynamic programming na siatce — wizualizacja

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 V(s)V(s) wzorem Bellmana, aż zbiegnie. Każda iteracja propaguje wartość o jedno pole bliżej celu.

iteracje value iteration:0 / 30
Co tu się dzieje: ★ to cel (goal, V = 100). ⛔ to przeszkody. Każda iteracja przyciąga „wartość" V o jedno pole bliżej. Po pełnej konwergencji (∼30 iteracji dla tej siatki) wartość V w każdym polu = nagroda za dotarcie do celu minus koszt drogi. Strzałki = optymalna polityka — akcja z każdego pola która maksymalizuje V następnego pola.

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.

5. Zasada maksimum Pontryagina

Analogia. Bellman/DP zaczyna od końca i cofa wstecz. Pontryagin nie cofa — zamiast tego wprowadza wyimaginowany sygnał „cienia" (costate λ), który propaguje informację o optymalności równolegle z trajektorią stanu. To jest forma ciągła równań Eulera-Lagrange'a uogólniona na nieholonomiczne ograniczenia.

Hamiltonian

Definiujemy hamiltonian:

H(x,u,λ)=L(x,u)+λTf(x,u)H(x, u, \lambda) = L(x, u) + \lambda^T f(x, u)

gdzie λ(t)\lambda(t) to costate (zmienna sprzężona, „mnożnik Lagrange'a" dla ograniczenia x˙=f\dot x = f). Wymiar λ\lambda = wymiar stanu.

Zasada maksimum (1956)

Optymalna trajektoria (x(t),u(t),λ(t))(x^*(t), u^*(t), \lambda^*(t)) spełnia jednocześnie trzy warunki:

  1. Dynamika stanu: x˙=H/λ=f(x,u)\dot x = \partial H/\partial \lambda = f(x, u)
  2. Dynamika costate (równania adjoint): λ˙=H/x\dot \lambda = -\partial H/\partial x
  3. Warunek minimum: u(t)=argminuH(x(t),u,λ(t))u^*(t) = \arg\min_u H(x^*(t), u, \lambda^*(t))

+ warunki brzegowe (boundary conditions): x(0)x(0) znany, λ(T)\lambda(T) wyznaczony z funkcji terminalnej.

Interpretacja

Costate λ(t)\lambda(t) ma fizyczną interpretację: sensitivity kosztu względem zmiany stanu w chwili t. Jeśli λi(t)\lambda_i(t) duże — perturbacja xix_i w chwili t bardzo wpływa na całkowity koszt. W chwili końcowej: λ(T)=Φ/x\lambda(T) = \partial \Phi / \partial x.

Boundary value problem

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).

Bang-bang i singular control

Gdy hamiltonian jest liniowy w u (np. dla planta liniowego z kwadratowym kosztem JEDNYM członem w u), warunek minimum daje bang-bang: u=umaxsign(H/u)u^* = u_{max}\,\mathrm{sign}(\partial H/\partial u). 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.

6. Równanie Hamiltona-Jacobiego-Bellmana

Analogia. Rekurencja Bellmana z §3 to wersja dyskretna. Przejdź do granicy Δt0\Delta t \to 0, dostaniesz równanie różniczkowe cząstkowe na funkcji wartości V(x,t)V(x, t). To jest HJB.

Wyprowadzenie

Z rekurencji Bellmana, dla małego Δt\Delta t:

V(x,t)=minu(L(x,u)Δt+V(x+fΔt,t+Δt))V(x, t) = \min_u\, \big( L(x, u)\,\Delta t + V(x + f\,\Delta t, t + \Delta t) \big)

Taylor: V(x+fΔt,t+Δt)V(x,t)+VtΔt+xVfΔtV(x + f\Delta t, t + \Delta t) \approx V(x, t) + \frac{\partial V}{\partial t}\Delta t + \nabla_x V \cdot f\, \Delta t. Podstawiając i biorąc Δt0\Delta t \to 0:

Vt=minu(L(x,u)+xVTf(x,u))-\frac{\partial V}{\partial t} = \min_u\, \Big( L(x, u) + \nabla_x V^T f(x, u) \Big)

To jest równanie HJB (Hamilton-Jacobi-Bellman) z warunkiem brzegowym V(x,T)=Φ(x)V(x, T) = \Phi(x).

Optymalna polityka z V

Gdy znamy V(x,t)V(x, t), optymalne sterowanie wyznacza się algebraicznie:

u(x,t)=argminu(L(x,u)+xVTf(x,u)).u^*(x, t) = \arg\min_u\, \big( L(x, u) + \nabla_x V^T f(x, u) \big).

Gradient xV\nabla_x V gra rolę costate λ\lambda z Pontryagina — dualność.

Problem rozwiązywalności

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ń:

  • Galerkin / value function approximation (RL bazuje na tym)
  • Differential dynamic programming (DDP)
  • Policy iteration
  • Sum-of-squares programming (dla polynomialnych)

7. LQR jako szczególny przypadek HJB

Tutaj wszystko się składa: pokazujemy że LQR z modułu 5 wynika wprost z HJB dla specyficznego problemu.

Setup

Plant liniowy: x˙=Ax+Bu\dot x = Ax + Bu. Koszt kwadratowy: L=xTQx+uTRuL = x^T Q x + u^T R u. Horyzont nieskończony: TT \to \infty.

Hipoteza: V jest kwadratowa

Spróbujmy V(x)=xTPxV(x) = x^T P x dla pewnej macierzy PP symetrycznej dodatnio określonej (V nie zależy od t bo problem stacjonarny).

Podstawiamy do HJB

xV=2Px\nabla_x V = 2 P x. Optymalne u z HJB:

u=argminu(xTQx+uTRu+2xTP(Ax+Bu)).u^* = \arg\min_u\, \big( x^T Q x + u^T R u + 2 x^T P (Ax + Bu) \big).

Gradient względem u: 2Ru+2BTPx=02 R u + 2 B^T P x = 0

u=R1BTPxKx,K=R1BTP.u^* = -R^{-1} B^T P x \equiv -K x, \quad K = R^{-1} B^T P.

To jest klasyczne LQR feedback! K wyrażone przez P.

Algebraiczne równanie Riccatiego (ARE)

Wstawiamy uu^* z powrotem do HJB:

0=xT(Q+ATP+PAPBR1BTP)x.0 = x^T (Q + A^T P + P A - P B R^{-1} B^T P) x.

Ponieważ to musi zachodzić dla każdego x:

  ATP+PAPBR1BTP+Q=0  \boxed{\;A^T P + P A - P B R^{-1} B^T P + Q = 0\;}

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).

Co to znaczy

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.

wagi LQR (skala log₁₀)

Q₁₁ (waga pozycji)1.0
Q₂₂ (waga prędkości)0.0
R (waga sterowania)0.0
wartości
Q₁₁10.00Q₂₂1.00R1.000K_x1.09K_ẋ0.69koszt J5.705
-2-1012012345x (pozycja)ẋ (prędkość)t [s]stan-25-12.5012.525012345u (sterowanie)t [s]u

LQR minimalizuje koszt kwadratowy:

J=0(xTQx+Ru2)dtJ = \int_0^\infty \big( x^T Q x + R u^2 \big)\, dt

Wagi Q,RQ, R mówią co jest ważne:

  • Q₁₁ wysokie — penalty za odchylenie pozycji → agresywna pozycja, duży gain K_x, dużo sterowania.
  • Q₂₂ wysokie — penalty za prędkość → gładka trajektoria, mniej oscylacji.
  • R wysokie — penalty za sterowanie → oszczędne u, mały K, ale wolniejsza trajektoria.

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ć.

8. Connection z reinforcement learning

Reinforcement learning (RL) i optymalne sterowanie to dwie twarze tego samego problemu. Różnica:

  • Optymalne sterowanie — znamy model f,Lf, L, rozwiązujemy HJB / Pontryagina / Bellmana analitycznie lub numerycznie offline.
  • RL — nie znamy modelu, uczymy się z eksperymentu, próbkując state-action-reward.

Bellman equation w RL

Q-learning używa tej samej rekurencji Bellmana co DP:

Q(s,a)=R(s,a)+γmaxaQ(s,a)Q(s, a) = R(s, a) + \gamma \max_{a'} Q(s', a')

Gdzie Q(s,a)Q(s, a) = expected cumulative reward starting from s, taking a, then optimal. To jest dyskretna Bellman equation z dyskontem γ\gamma (zamiast TT horizon).

Deep RL

W praktyce Q(s,a)Q(s, a) 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 optimal control / IRL

Inverse RL: znając polityki ekspertów, wyznacz funkcję kosztu którą optymalizują. Standardowe w autonomicznej jeździe (uczymy się ludzkich preferencji).

Aktywny obszar badań

Łączenie RL z klasycznym sterowaniem:

  • Model-based RL — uczy modelu f̂ obok polityki, planuje na nim (jak MPC z uczonym modelem)
  • Safe RL — ograniczenia bezpieczeństwa jako control barrier functions (atlas → H∞ i pokrewne)
  • Adaptive optimal control (Lewis, Vrabie) — RL rozwiązujący ARE online, bez znajomości A, B

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.

Co świadomie pomijam

  • Differential dynamic programming (DDP) — algorytm numeryczny dla nieliniowych problemów; iLQR jest jego specjalnym przypadkiem.
  • Direct vs indirect methods — direct dyskretizuje i optymalizuje (NLP), indirect używa Pontryagina i shooting.
  • Stochastic optimal control — szum procesowy jako część modelu; HJB staje się parabolic (HJB-Bellman PDE).
  • H₂ i H∞ jako problemy optymalne — formalnie są minimalizacjami norm transmitancji, mają wyprowadzenia przez Riccatiego.