Moduł 18 · praktyka

Cheat sheet — synteza

Wszystkie wzory PID/SMC/MPC/LQR/observers w jednym miejscu, tablica decyzyjna, mapa modułów.

Cheat sheet — wszystkie wzory w jednym miejscu

Końcowa ściąga: kluczowe formuły, tabele decyzyjne i mapy z modułów 0–17 zestawione razem. Nie zastępuje wyprowadzeń — daje materiał do szybkiej powtórki przed projektem albo egzaminem.

Regulator PID

u(t)=Kpe(t)+Ki ⁣0te(τ)dτ+Kde˙(t),e=ryu(t) = K_p\,e(t) + K_i\!\int_0^t e(\tau)\,d\tau + K_d\,\dot e(t), \quad e = r - y

Człony: P — natychmiastowa odpowiedź, I — eliminacja błędu ustalonego, D — tłumienie oscylacji.

Ziegler-Nichols (closed loop): zmierz K_u i T_u.
Kp=0.6Ku,Ti=Tu/2,Td=Tu/8K_p = 0.6\,K_u,\quad T_i = T_u/2,\quad T_d = T_u/8
Anti-windup (clamping): gdy u nasycone i e pcha w saturację, zatrzymaj integrację.
D na pomiarze (anti-kick): D=Kdy˙D = -K_d\,\dot y zamiast Kde˙K_d\,\dot e.

SMC

Powierzchnia liniowa
s=e˙+λe(λ>0)s = \dot e + \lambda\,e \quad (\lambda > 0)
Sterowanie
u=ueq+ηsgn(s),η>Du = u_{eq} + \eta\,\mathrm{sgn}(s), \quad \eta > D

gdzie uequ_{eq} kompensuje nominalną dynamikę, η większe od ograniczenia zaburzenia D.

Reaching time
treachms0ηDt_{reach} \le \frac{m\,|s_0|}{\eta - D}
Warianty
  • Boundary layer: sgn(s)sat(s/Φ)\mathrm{sgn}(s) \to \mathrm{sat}(s/\Phi) — eliminuje chattering kosztem błędu O(Φ)
  • Super-twisting: u=ueqk1ssgn(s)+v,  v˙=k2sgn(s)u = u_{eq} - k_1\sqrt{|s|}\mathrm{sgn}(s) + v, \;\dot v = -k_2\mathrm{sgn}(s)
  • Terminal: s=e˙+λeαsgn(e)s = \dot e + \lambda\,|e|^\alpha\mathrm{sgn}(e) dla 0<α<10 < \alpha < 1 — zbieżność w czasie skończonym
  • Predefined-time: górne ograniczenie czasu zbieżności jako parametr projektowy T_c

LQR i MPC

LQR koszt i sterowanie
J=0(xTQx+uTRu)dt,u=KxJ = \int_0^\infty (x^T Q x + u^T R u)\,dt, \quad u^* = -K x
K=R1BTP,ATP+PAPBR1BTP+Q=0  (ARE)K = R^{-1} B^T P, \quad A^T P + P A - P B R^{-1} B^T P + Q = 0 \;\text{(ARE)}
MPC z ograniczeniami
minu0..uN1k=0N1(xkTQxk+Ruk2)+xNTPfxN\min_{u_0..u_{N-1}} \sum_{k=0}^{N-1}(x_k^T Q x_k + R u_k^2) + x_N^T P_f x_N

s.t. xk+1=Axk+Bukx_{k+1} = Ax_k + Bu_k, ukumax|u_k| \le u_{max}, xkXx_k \in \mathcal X. Rozwiązanie: QP w każdej chwili, aplikuj tylko u_0 (receding horizon).

Obserwatory

Luenberger
x^˙=Ax^+Bu+L(yCx^),L:ALC stabilne\dot{\hat x} = A\hat x + Bu + L(y - C\hat x), \quad L: A-LC \text{ stabilne}
Kalman (dyskretny)
predict:  x^Ax^+Bu,  PAPAT+Q\textbf{predict:}\; \hat x \leftarrow A\hat x + Bu,\; P \leftarrow APA^T + Q
update:  K=PCT(CPCT+R)1,  x^x^+K(yCx^),  P(IKC)P\textbf{update:}\; K = PC^T(CPC^T + R)^{-1},\; \hat x \leftarrow \hat x + K(y-C\hat x),\; P \leftarrow (I-KC)P
SMO (Walcott-Żak)
x^˙=Ax^+Bu+L(yCx^)+Bν,  ν=ρsgn(yCx^)\dot{\hat x} = A\hat x + Bu + L(y - C\hat x) + B\,\nu, \; \nu = -\rho\,\mathrm{sgn}(y - C\hat x)

Bonus: νeq\nu_{eq} rekonstruuje zaburzenie.

Domena częstotliwości

Margines fazy i wzmocnienia
PM=180°+G(jωc),  ωc:G=1PM = 180° + \angle G(j\omega_c),\; \omega_c: |G|=1
GM=1/G(jω180),  ω180:G=180°GM = 1/|G(j\omega_{180})|,\; \omega_{180}: \angle G = -180°

Reguły kciuka: PM ≥ 45°, GM ≥ 6 dB. Margines opóźnienia: τmaxPM/ωc\tau_{max} \approx PM/\omega_c.

Układ 2. rzędu
G(s)=ωn2s2+2ζωns+ωn2G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2}
Mp=exp ⁣(πζ1ζ2),ts4ζωnM_p = \exp\!\Big(-\frac{\pi\zeta}{\sqrt{1-\zeta^2}}\Big),\quad t_s \approx \frac{4}{\zeta\omega_n}

Peak Bode dla ζ<0.707\zeta < 0.707: ωpeak=ωn12ζ2\omega_{peak} = \omega_n\sqrt{1-2\zeta^2}.

Dyskretyzacja

Nyquist
fs>2fmax    aliasing    falias=fkfsf_s > 2\,f_{max} \;\Rightarrow\; aliasing\;\;f_{alias}=|f-kf_s|
Metody dyskretyzacji
  • Euler forward: s(z1)/Tss \to (z-1)/T_s — niestabilne dla dużych T_s
  • Euler backward: s(z1)/(Tsz)s \to (z-1)/(T_s z) — zawsze stabilne, dodaje opóźnienie
  • Tustin/bilinear: s(2/Ts)(z1)/(z+1)s \to (2/T_s)(z-1)/(z+1) — stabilne, dokładność O(T_s²) ★
  • ZOH: dokładne dla planta zerowego-rzędu hold
Reguła praktyczna

T_s ≤ τ_plant / 10 (komfort), T_s ≤ τ / 100 (sterowanie precyzyjne).

Tablica decyzyjna — kiedy który regulator

sytuacjaregulator
plant liniowy, znany, bez ograniczeńLQR
plant liniowy + |u| ≤ u_maxMPC
plant liniowy + stałe zaburzeniePID + anti-windup
plant nieliniowy + matched DSMC (jeśli OK z chatteringiem)
j.w. + gładkie u potrzebneSMC super-twisting
wymóg zbieżności w T_cpredefined-time SMC
nieznane ograniczenie Dadaptive SMC
tylko część stanu mierzonaSMO + SMC, LQG
parametry plant zmiennegain scheduling, MRAC
plant z opóźnieniem L/τ > 0.5Smith predictor / IMC
MIMO sprzężonedecoupling + PID / LQR / MPC
embedded, krótki czas obliczeńPID / Explicit MPC
nieliniowy z ograniczeniamiNMPC
niepewność strukturalnaH∞
złożony, brak modeluRL-based

Mapa modułów kursu

Sugerowana ścieżka:

  1. /foundations — fundamenty (przestrzeń stanów, Lapunov, linearyzacja)
  2. M0–M1 — wprowadzenie + modele plantów
  3. M2–M5 — algorytmy: PID, SMC, MPC
  4. M6 — benchmark wszystkich
  5. M7–M8 — robustność, adaptacja
  6. M9 — obserwatory stanu
  7. M10–M11 — analiza częstotliwościowa i dyskretyzacja
  8. M12 — identyfikacja parametryczna
  9. M13 — fundamenty optymalnego sterowania (HJB, Pontryagin)
  10. M14–M16 — opóźnienia, MIMO, hybrydowe
  11. M17 — zadania laboratoryjne
  12. /topics — atlas pominiętych metod (LQG, H∞, backstepping, impedance, ILC...)
  13. /external — domeny aplikacyjne (kinematyka, planowanie trajektorii)