Moduł 06 · analiza

Benchmark kontrolerów

Wszystkie kontrolery na identycznym scenariuszu — settling time, overshoot, IAE, ITAE, energia sterowania.

Identyczny scenariusz, różne kontrolery

Po pięciu modułach dydaktyki czas na uczciwe porównanie. Plant: cart-pole zlinearyzowany wokół pionu (M = 1, m = 0.1, ℓ = 0.5). Stan początkowy x0=[0,0,0.3,0]x_0 = [0, 0, 0.3, 0] (wahadło na 0.3 rad ≈ 17° od pionu, wózek nieruchomy w origin). W t=2t = 2 s wstrzykujemy impulsowe zaburzenie kątowe Δθ˙=+0.6\Delta\dot\theta = +0.6. Czas symulacji 8 s, RK4 z Δt=2\Delta t = 2 ms.

Siedmiu kontrolerów współzawodniczy: PID i PID + anti-windup z modułu 2, SMC klasyczne, SMC z boundary layer, SMC super-twisting z modułów 3 i 4, LQR i MPC z saturacją z modułu 5. Wszystkie używają tej samej bazy LQR (gain z DARE dla Q=diag(2,1,30,5)Q = \mathrm{diag}(2, 1, 30, 5), R=0.5R = 0.5) — różnią się tylko dodatkami specyficznymi dla rodziny.

Wskaźniki

Liczymy siedem metryk dla każdej trajektorii:

  • t_settle — czas, od którego θ<0.02|\theta| < 0.02 rad pozostaje na trwałe. „—" oznacza, że kontroler nie wszedł w pasmo do końca symulacji.
  • max |θ|, max |x| — peak odchyleń kąta i pozycji wózka. Mówią o najgorszym chwilowym zachowaniu.
  • IAE = 0Tθ(t)dt\int_0^T |\theta(t)|\, dt — całkowity błąd absolutny. Jedna liczba syntetyzująca cały profil odchyleń.
  • ITAE = 0Ttθ(t)dt\int_0^T t \cdot |\theta(t)|\, dt — całkowity błąd absolutny ważony czasem. Penalizuje błędy późne mocniej niż wczesne — odzwierciedla preferencję dla szybkiego oczyszczenia transient.
  • ∫u² dt — energia sterowania. Mówi o koszcie operacyjnym (zużycie energii silnika, zużycie aktuatora).
  • max |u| — peak sterowania. Krytyczne, gdy aktuator ma fizyczne ograniczenie.

Brak jednego najlepszego kontrolera — jest tylko najlepszy pod zadane wymagania. Sortowanie tabeli poniżej po różnych kolumnach pokazuje to wprost.

-0.5-0.2500.250.501.63.24.86.48Δθ̇PIDPID-AWSMCSMC-BLST-SMCLQRMPCt [s]θ (kąt) [rad]-15-7.507.51501.63.24.86.48u — PIDu — PID-AWu — SMCu — SMC-BLu — ST-SMCu — LQRu — MPCt [s]u (sterowanie) [N]
kontrolert_settlemax |θ|max |x|IAE θITAE θ∫u² dtmax |u|
ST-SMC
SMC super-twisting
0.42 s0.300 rad6.146 m0.0810.0408.7912.90 N
PID
PID
3.12 s0.300 rad0.611 m0.2020.2889.6411.25 N
LQR
LQR
3.13 s0.300 rad0.616 m0.2040.2979.5811.25 N
PID-AW
PID + anti-windup
3.12 s0.300 rad0.641 m0.2040.2609.577.00 N
SMC
SMC klasyczne
3.52 s0.300 rad1.725 m0.2110.35229.3114.25 N
MPC
MPC z |u| ≤ u_max
3.10 s0.300 rad0.661 m0.2160.3089.347.00 N
SMC-BL
SMC boundary layer
4.53 s0.300 rad1.584 m0.2490.59210.2714.25 N
Klikaj nagłówkiżeby sortować. Kontroler bez wpisu w kolumnie t_settle nie wszedł w pasmo |θ|<0.02 rad do końca symulacji. Energia ∫u² dt w jednostkach N²·s. Wszystkie kontrolery używają tej samej bazy LQR z modułu 5 (gainów obliczonych z DARE) — różnice biorą się z dodatków rodzinowych: PID dodaje I·∫θ, SMC dodaje sgn/sat/ST, MPC saturuje. Pełne implementacje w odpowiednich modułach (klikalne nazwy).

Co czyta się z wyników

Trzy klasyczne obserwacje, które warto sprawdzić sortowaniem tabeli:

  1. LQR i PID mają identyczną metryką ∫u² dt dla tego samego problemu liniowego bez ograniczeń. To nie przypadek — LQR jest z definicji minimalizatorem (xTQx+Ru2)dt\int (x^T Q x + R u^2) dt, a PID dla tego planta jest blisko niego (różni się tylko I-term, który dla braku stałego zaburzenia daje znikomy wkład).
  2. MPC z saturacją oszczędza peak |u| kosztem trochę gorszego ITAE. Saturacja przy 7 N to świadome ograniczenie: zamiast pozwolić u sięgnąć ~12 N jak LQR, MPC trzyma się 7 N i akceptuje wolniejszą odpowiedź. Dla aktuatorów z limitem fizycznym to JEDYNY sposób gwarantowanego sterowania.
  3. SMC klasyczne ma najwyższy peak |u| przez chattering — sterowanie skacze między ±η. SMC z boundary layer i super-twisting mają niższe peaki kosztem trochę gorszej precyzji w fazie sliding (widać to na overlay wykresu u(t) — klasyczny SMC ma postrzępione krawędzie, ST gładkie).

Kiedy który kontroler — praktyczna ściąga

scenariuszpreferowany kontrolerdlaczego
Plant liniowy, znany, bez ograniczeńLQRanalityczny, optymalny, brak setupu QP
Plant liniowy, ograniczenie u_maxMPCjawnie obsługuje constraint w optymalizacji
Plant liniowy, znane stałe zaburzeniePID + anti-windupI-term zeruje błąd ustalony, AW chroni przed wind-upem
Plant nieliniowy, ograniczone matched zaburzenieSMC klasyczne (jeśli akceptujesz chattering)formalna gwarancja zbieżności w czasie skończonym
j.w. + wymóg gładkiego u (silnik, zawór)SMC super-twistinggładkie u bez utraty robustności
Embedded, krótki czas obliczeńPID lub Explicit MPCPID — kilka mnożeń per krok; explicit MPC — lookup tablica
Plant nieliniowy, znany, z ograniczeniamiNMPC (poza tym kursem — moduł 5 stuby)jedyna metoda jednocześnie obsługująca nieliniowość, ograniczenia, optymalność
Parametry planta zmieniają się w czasieMRAC / gain scheduling (moduł 8)kontroler sam dostraja gainy

Ograniczenia tego benchmarku

Trzy zastrzeżenia, które trzeba wprost wskazać:

  • Cart-pole zlinearyzowany— pełen model nieliniowy zmieniłby ranking. Dla θ > 30° linearyzacja przestaje obowiązywać i pokazuje fałszywe trajektorie. Dla poprawnego porównania pod tym scenariuszem patrz moduł 1 §2, który pokazuje kiedy linearyzacja zawodzi.
  • Brak zaburzeń pomiarowych — wszystkie kontrolery mają idealny dostęp do pełnego stanu. W rzeczywistości θ\theta mierzy enkoder z kwantyzacją, θ˙\dot\theta liczone jest z różnic numerycznych albo żyroskopu z biasem. SMC i kontrolery z D-termem wzmacniają szum — w tym benchmarku nie widać tej różnicy, ale w praktyce zmienia rankingi dramatycznie.
  • Wszystkie kontrolery z bazą LQR — w istocie porównuję „LQR + dodatek". Dla autentycznego SMC bez bazy LQR (z własną powierzchnią ślizgową w 4 wymiarach) ranking metryk wyglądałby inaczej, ale projekt powierzchni dla cart-pole'a w pełni nieliniowego wymaga osobnej pracy (Edwards & Spurgeon rozdz. 4–5, lub Slotine & Li rozdz. 7).

Mimo tych ograniczeń benchmark daje jakościowy obraz charakterów rodzin kontrolerów. Tradeoffy są dobrze wystawione: chattering w SMC, peak u w LQR/PID, oszczędność u w MPC, AW w PID + saturacja.