Moduł 07 · analiza

Robustność i niepewność

Mismatch modelu, szum pomiarowy, zaburzenia stanu i wejścia — porównanie odporności PID/SMC/MPC.

Co znaczy „robustność"

Kontroler jest robustny, gdy jego własności (stabilność, dokładność, czas zbieżności) zachowują się dla całej rodziny rzeczywistych planta — nie tylko dla modelu nominalnego. Praktyka:

plant nominalny: G0(s),rodzina rzeczywista: GΔ(s)=G0(s)+W(s)Δ(s),Δ1.\text{plant nominalny: } G_0(s),\qquad \text{rodzina rzeczywista: } G_\Delta(s) = G_0(s) + W(s)\Delta(s),\quad \|\Delta\|_\infty \le 1.

W(s)W(s) to waga niepewności — dorysowuje kształt częstotliwościowy regionu, w którym plant „pływa". Δ(s)\Delta(s) to nieznany operator z normą 1\le 1. Kontroler robust gwarantuje stabilność i wydajność dla każdego dopuszczalnego Δ\Delta. Ten formalizm jest u podstaw H∞ (sekcja 4).

Trzy źródła „niepewności" w praktyce inżynierskiej:

  • parametryczna — wartości m, c, k, J, R, L znamy z tolerancją; każda wartość w granicach prowadzi do innego planta (sekcja 1)
  • nieparametryczna — niemodelowane dynamiki wysokoczęstotliwościowe (drgania, opóźnienia transportowe). Ujmowane przez wagę W(s)W(s).
  • sygnałowa — szum pomiarowy, zaburzenia wejścia, biasy (sekcje 2 i 3)

1. Mismatch modelu — gdy plant kłamie kontrolerowi

Wszystkie trzy kontrolery (PID, SMC, LQR) są zaprojektowane pod nominalny mass-spring-damper z m=1,c=2,k=4m=1, c=2, k=4. Zmieniamy rzeczywistą masę planta. Kontroler tego nie wie — używa nominalnych parametrów we wszystkich swoich wzorach (uequ_{eq} w SMC, gain LQR, feedforward w PID).

rzeczywista masa planta

log₁₀ (m_actual / m_nominal)0.00
parametry
m nominal1.00 kgm actual1.00 kgmismatch0%

Wszystkie 3 kontrolery zaprojektowane pod m = 1 kg. Plant ma masę m × 1.00. Skok r = 1 w t = 0.

-0.20.250.71.151.6012345r (cel)PIDSMCLQRt [s]y (pozycja)
PID
IAE0.680peak |u|12.00 Ne_ss-0.020
SMC
IAE0.623peak |u|9.02 Ne_ss0.000
LQR
IAE0.502peak |u|10.68 Ne_ss0.000

Mismatch m oznacza, że aktuator dla tej samej siły daje różne przyspieszenie niż controller się spodziewa. Każdy regulator interpretuje to inaczej:

  • PID z I-termem zauważa, że plant nie idzie dokładnie tam, gdzie planował, i koryguje. Przy 50% mismatch transient wydłuża się, ale e_ss zostaje zerowane.
  • SMC najmniej dotknięty — projekt opiera się na ograniczonym matched uncertainty. Mismatch m to dokładnie takie zaburzenie, na które SMC ma formalną gwarancję jeśli η jest dobrane wystarczająco duże.
  • LQR użył gainów dostrojonych pod nominalny m. Pod większym m → kontroler jest „za słaby" (zachowuje się jak pod-tłumiony PD); pod mniejszym → „za silny" (skutek zbliżony do nadtłumienia z większym przeregulowaniem). Brak mechanizmu samokorekty na mismatch.

Spróbuj m × 2 (logRatio = +0.3): SMC nadal trafia w cel; PID też, ale wolniej; LQR ma większy steady-state error bo brakuje I-termu. Spróbuj m × 0.3 (logRatio = −0.5): wszystkie zaczynają oscylować, bo system stał się szybszy niż projekt zakładał.

2. Szum pomiarowy

Szum w pomiarze przepływa przez kontroler do sygnału sterowania. Szum w uu trafia do planta i albo modulowany jest niskoprzepustowym charakterem dynamiki, albo wzbudza jego rezonanse, albo niszczy aktuator. Dla idealnego filtra szumu i każdego z naszych kontrolerów, RMS szumu w u jest proporcjonalny do gain kontrolera w paśmie szumu.

Każdy z naszych regulatorów ma inną strukturę gainu:

  • PID: KpΔy+KdΔy˙K_p \cdot \Delta y + K_d \cdot \Delta\dot y. Człon D wzmacnia szum derivative — bez filtra na D regulator literalnie różniczkuje szum.
  • SMC: ηsgn(s)\eta \cdot \mathrm{sgn}(s). Szum w y i ẏ wpływa na s; przy każdym przejściu zera s regulator przerzuca u o ±2η. Najgorszy przypadek dla szumu.
  • LQR: K[Δy,Δy˙]TK \cdot [\Delta y, \Delta\dot y]^T. Liniowe wzmocnienie — duże K[1] (wzmocnienie ẏ) wzmacnia szum. Standard remediation: filtr Kalmana (LQG).

szum pomiarowy

σ_y (odchylenie szumu y)0.020 m

Szum dodawany do pomiaru y i ẏ przed feedem do kontrolera. Szum ẏ ma 5× większe σ — odzwierciedla to fakt, że pochodna estymowana z różnicy lub żyroskopu jest znacząco bardziej hałaśliwa niż sam pomiar pozycji.

Ten sam seed dla rngY i rngYdot we wszystkich kontrolerach — różnice w u(t) wynikają z różnych przepustów wzmocnień, nie z innego szumu.

-0.20.20.611.400.81.62.43.24rPIDSMCLQRt [s]y (rzeczywista pozycja)-15-7.507.51500.81.62.43.24u — PIDu — SMCu — LQRt [s]u (sterowanie)
PID
RMS u10.99
SMC
RMS u4.76
LQR
RMS u1.18

Szum pomiarowy to stały problem każdej implementacji praktycznej. Każdy kontroler reaguje inaczej:

  • SMC jest najwrażliwszy — funkcja sgn(s)\mathrm{sgn}(s) przerzuca u o ±2η przy każdym przejściu zera s, a szum w y i ẏ powoduje, że s przechodzi przez zero średnio kilka razy częściej. Skutek: u jest niemal white noise z amplitudą bliską η. Boundary layer i super-twisting (moduł 4) są standardowymi remediami.
  • PID z D-termem ma podobny problem — różniczka szumu jest jeszcze bardziej hałaśliwa. Filtr na D (moduł 2 §4) tłumi to znacząco. Bez filtra D-term wzmacnia szum proporcjonalnie do K_d/dt.
  • LQR jest bardziej odporny — jego gainy są ograniczone projektem, brak D-termu w klasycznym sensie. Ale gdy K[1] (wzmocnienie ẋ) jest duże, też wzmacnia szum w ẏ. Standard rozwiązaniem jest filtr Kalmana, który optymalnie łączy pomiary z modelem (moduł nieobjęty kursem; patrz /topics/lqg).

Spróbuj σ = 0: wszystkie kontrolery zachowują się czysto. σ = 0.1: SMC u(t) wygląda jak biały szum, PID ma duże skoki, LQR najgładszy.

3. Zaburzenia stanu, wejścia i pomiaru

Zaburzenie wchodzi do układu jednym z trzech kanałów. Każdy kanał ma inne implikacje strukturalne — i żaden kontroler nie radzi sobie ze wszystkimi trzema na raz.

typ zaburzenia:
-0.20.30.81.31.801.22.43.64.86d ONr (cel)PIDSMCLQRt [s]y (rzeczywista pozycja)

Trzy typy zaburzeń wchodzą do układu różnymi kanałami i mają różne konsekwencje:

x˙1=x2,x˙2=1m(u+dmatched)+dstate,y=x1+dmeas\dot x_1 = x_2,\quad \dot x_2 = \tfrac{1}{m}(u + d_{matched}) + d_{state},\quad y = x_1 + d_{meas}
  • Matched (dmatchedd_{matched}): zaburzenie wchodzące tym samym kanałem co sterowanie. Klasyczny przykład: nieznane tarcie, zewnętrzna siła pchająca masę. SMC ma na to formalną gwarancję — jeśli η>d\eta > |d|, układ wraca do s=0s = 0. PID z I-term też kompensuje, ale wolniej. LQR bez I — ma trwały błąd.
  • Unmatched (dstated_{state}): zaburzenie wpływające bezpośrednio na stan, omijając kanał sterowania. Klasyczny przykład: szok aerodynamiczny na inną oś niż sterowana. Żaden kontroler nie ma na to formalnej gwarancji w kanonicznych formulacjach SMC; potrzebne są rozszerzenia (back-stepping, robust SMC).
  • Measurement (dmeasd_{meas}): bias w sensorze. Kontroler myśli, że pozycja jest przesunięta o dmeasd_{meas}, więc steruje by przesunąć rzeczywistą pozycję w odwrotną stronę. Wszystkie 3 kontrolery dostają tę samą porażkę: y rzeczywiste odsuwa się od r o dmeasd_{meas}, bo z perspektywy kontrolera „jest na celu". Filtr Kalmana / observer redukuje to o ile bias jest dynamiczny; trwały bias wymaga estymatora biasów.

4. H∞ — robustna synteza w jednym akapicie

Wszystkie kontrolery, które do tej pory rozważaliśmy, są projektowane pod nominalny model i ich robustność jest analizowana post hoc (np. tu, w tym module).H∞ robi rzecz odwrotną: projektuje kontroler tak, by minimalizować worst-case wzmocnienie od zaburzeń do wyjść w klasie ograniczonych zaburzeń. Synteza gwarantuje robustność z konstrukcji.

Idea w jednym wzorze. Niech Twz(s)T_{wz}(s) będzie transmitancją w układzie zamkniętym od zaburzeń ww (dowolnych — pomiary, plant, sterowanie) do wyjść interesujących zz (uchyb, energia sterowania, etc.). Synteza H∞ szuka kontrolera K(s)K(s) minimalizującego:

Twz=supωσˉ(Twz(jω)).\|T_{wz}\|_\infty = \sup_\omega \bar\sigma(T_{wz}(j\omega)).

Tu σˉ\bar\sigma to największa wartość singularna — dla SISO to po prostu moduł funkcji przenoszenia. Norma HH_\infty to najgorsze wzmocnienie po wszystkich częstotliwościach. Minimalizacja oznacza: niech żadna częstotliwość zaburzeń nie da więcej niż γ\gamma.

W praktyce projektowej używa się weighted mixed sensitivity:

minK[WSSWTTWKSKS]\min_K \left\|\begin{bmatrix} W_S\, S \\ W_T\, T \\ W_{KS}\, KS \end{bmatrix}\right\|_\infty

gdzie SS i TT to funkcje sensitivity i komplementarna sensitivity, a WS,WT,WKSW_S, W_T, W_{KS} to wagi kształtujące pożądane zachowanie częstotliwościowe (WSW_S wymusza odrzucanie zaburzeń niskoczęstotliwościowych, WTW_T odrzucanie szumu wysokoczęstotliwościowego, WKSW_{KS} ogranicza wysiłek sterowania).

Synteza rozwiązuje się przez parę sprzężonych równań Riccatiego (algorytm DGKF, Doyle Glover Khargonekar Francis 1989) lub LMI. Wymaga setupu — zaprojektowania funkcji wag, wybór parametru γ\gamma w γ-iteration, walidacja modelu niepewności.

Kiedy warto: gdy mamy formalną specyfikację robustności (np. „kontroler musi działać dla każdego planta z normą niepewności W\le W"). Standardowo w lotnictwie, energetyce, sterowaniu reaktorem chemicznym. Dla aplikacji „prostych" (małe układy mechaniczne, regulacja temperatury) PID/LQR z odpowiednim marginesem stabilności wystarczają i są tańsze projektowo.

Dalsza lektura w atlasie: /topics/h-infinity. Kanon: Skogestad & Postlethwaite „Multivariable Feedback Control", rozdz. 9.

Co świadomie pomijam

  • Margines wzmocnienia i fazy w analizie częstotliwościowej (Bode, Nyquist) — klasyczne, sprzed ery robust control. Nadal mocno używane w praktyce, ale wykraczają poza zakres tego materiału.
  • μ-synthesis — generalizacja H∞ dla strukturalnej niepewności (rozróżnienia jakiego konkretnie parametru niepewność dotyczy). Bardzo zaawansowane, rzadko w kursie podstawowym.
  • Sliding mode observer — robust estymator stanu używający samej idei SMC. Łączy estymację (jak Kalman) z robustnością SMC. Patrz Edwards & Spurgeon rozdz. 4.
  • Adaptive robust control — łączy adaptację parametrów (moduł 8) z robust gwarancjami. Aktywny obszar badań ostatnich 20 lat.