Moduł 10 · częstotliwościowa

Analiza częstotliwościowa

Laplace, transmitancja, pole-zero map z drag&drop, Bode, Nyquist, marginesy GM/PM, loop shaping.

1. Po co domena częstotliwości

Analogia. Wyobraź sobie dwa sposoby opisania utworu muzycznego: (1) zapis nutowy — przebieg dźwięku w czasie, każdy ułamek sekundy ma swoją wysokość; (2) widmo częstotliwościowe — które tony występują, jak głośno, w jakich oktawach. Oba opisy są równoważne (FFT między nimi konwertuje), ale do różnych pytań lepszy jest inny. „Czy partia jest długa?" — łatwiej z nut. „Czy w utworze są skrzypce?" — łatwiej z widma. Domena czasu vs domena częstotliwości w sterowaniu to dokładnie ta sama dualność.

W domenie czasu pytamy: jak trajektoria układu wygląda w czasie? Odpowiada na to ODE i symulacja. W domenie częstotliwości pytamy: jak układ reaguje na sinusoidy różnych częstotliwości? Odpowiada na to transmitancja G(jω).

Po co druga droga? Trzy mocne argumenty:

  1. Stabilność jest natychmiastowo widoczna. Wystarczy spojrzeć gdzie są bieguny G(s) na płaszczyźnie zespolonej — w lewej półpłaszczyźnie = stabilne, w prawej = niestabilne. Nie trzeba symulować.
  2. Robustnośćkwantyfikowana przez margines wzmocnienia i fazy. Klasyczna automatyka miała w XX wieku praktyczne reguły „margines > 6 dB i 45°" na długo przed H∞.
  3. Projektowanie regulatora przez kształtowanie krzywej Bode pętli otwartej — high gain w paśmie odrzucania zaburzeń, niski przy szumie. To bardzo intuicyjne i często prowadzi do prostszych regulatorów niż optymalizacja w domenie czasu.

2. Transformata Laplace'a — intuicja

Analogia. Wyobraź sobie urządzenie, które dla każdej liczby zespolonej ss mówi: „jeśli wyślę do układu sygnał este^{st}, co wyjdzie?". Transformata Laplace'a to mapa tej odpowiedzi. Dla różnych ss dostajesz różne odpowiedzi: dla s=jωs = j\omega (czysto urojonego) to odpowiedź na sinusoidę o częstotliwości ω; dla s=as = -a (rzeczywistego ujemnego) — odpowiedź na wykładnik eate^{-at}. Cała informacja o dynamice kondensuje się w funkcji G(s)G(s).

Formalnie:

X(s)=L{x(t)}=0x(t)estdtX(s) = \mathcal{L}\{x(t)\} = \int_0^\infty x(t)\, e^{-st}\, dt

Dla nas (inżynierów sterowania) liczy się jedno fundamentalne twierdzenie: pochodna w czasie staje się mnożeniem przez ss w domenie Laplace'a:

L{x˙(t)}=sX(s)x(0)\mathcal{L}\{\dot x(t)\} = s\,X(s) - x(0)

Konsekwencja: równania różniczkowe stają się algebraiczne. Plant mx¨+cx˙+kx=um\ddot x + c\dot x + kx = u w domenie Laplace'a (przy zerowych warunkach początkowych):

(ms2+cs+k)X(s)=U(s)    X(s)U(s)=1ms2+cs+k.(m s^2 + c s + k)\, X(s) = U(s) \;\Longrightarrow\; \frac{X(s)}{U(s)} = \frac{1}{m s^2 + c s + k}.

Iloraz X(s)/U(s)X(s)/U(s) to transmitancja G(s)G(s) — opisuje cały plant jako jedną funkcję zmiennej zespolonej.

Co zostało stracone, co zyskane

  • Stracone: warunki początkowe (zakładamy zerowe), liczy się tylko ustalony związek wejście-wyjście.
  • Zyskane: ODE → algebra; superpozycja liniowych układów = mnożenie transmitancji.

Pomijam pełną teorię (region zbieżności, własności, twierdzenie o wartości początkowej/końcowej) — w praktyce używamy Laplace'a głównie do konstrukcji G(s)G(s), a potem operujemy na G analizie częstotliwościowej.

3. Transmitancja — od ODE do G(s)

Recepta:

  1. Zapisz ODE planta wokół punktu pracy.
  2. Przejdź do Laplace'a (każda pochodna = mnożenie przez ss, zakładając zerowe IC).
  3. Rozwiąż algebraicznie względem Y(s)/U(s)Y(s)/U(s).

Przykłady ze standardowych planta z modułu 1

MSD: mx¨+cx˙+kx=um\ddot x + c\dot x + kx = u:

GMSD(s)=1ms2+cs+kG_{MSD}(s) = \frac{1}{ms^2 + cs + k}

Silnik DC (od napięcia do prędkości, przyjmując że LL mała):

GDC(s)=Kt(JR+bL)s+Rb+KtKeKt/Rb(τms+1)G_{DC}(s) = \frac{K_t}{(JR + bL)s + Rb + K_t K_e} \approx \frac{K_t/Rb}{(\tau_m s + 1)}

Cart-pole zlinearyzowany wokół pionu (z modułu 1):

Gθ/u(s)=1Ms2(M+m)gG_{\theta/u}(s) = \frac{-1}{M\ell s^2 - (M + m)g}

Zauważ: ten plant ma biegun w s=+(M+m)g/(M)s = +\sqrt{(M+m)g/(M\ell)} — w prawej półpłaszczyźnie. Stąd niestabilność. Jeden spojrzenie na pole-zero map mówi o całej dynamice.

Bieguny, zera, wzmocnienie

Każda transmitancja w postaci wymiernej G(s)=N(s)/D(s)G(s) = N(s)/D(s) ma:

  • Bieguny = pierwiastki mianownika D(s)=0D(s) = 0. Te kontrolują dynamikę układu — ich położenie wyznacza, jak szybko trajektoria zbiega i czy oscyluje.
  • Zera = pierwiastki licznika N(s)=0N(s) = 0. Te kontrolują natychmiastową reakcję — wzmacniają niektóre częstotliwości, tłumią inne. Zera w prawej półpłaszczyźnie powodują „undershoot" (chwilowo trajektoria idzie w odwrotnym kierunku przed stabilizacją).
  • Wzmocnienie K — skala. Mnoży całą odpowiedź przez stałą.

4. Pole-zero map — interaktywny

Najsilniejsza wizualizacja klasycznej automatyki. Bieguny są X-ami, zera są -ami na płaszczyźnie zespolonej. Z ich pozycji można odczytać wszystko: stabilność (lewa półpłaszczyzna), tempo tłumienia (Re), częstość oscylacji (Im).

Ten komponent pozwala przeciągać bieguny i zera myszką. Trzy widoki aktualizują się synchronicznie: pole-zero map, odpowiedź skokowa, Bode plot.

presety transmitancji
pole-zero map · ŁAP I CIĄGNIJ
Re(s)Im(s)stabilneniestabilne
✕ zielone — bieguny stabilne · ✕ czerwone — niestabilne · ○ pomarańczowe — zera · pary sprzężone są zsynchronizowane
odpowiedź skokowa y(t)
0246810-0.50.51.5t [s]
y_ss = G(0) = 1.000
Wykres Bode — amplituda i faza
10-210-1100101102-60-40-2002040-270°-180°-90°0°90°|G(jω)| [dB]∠G(jω) [°]ω [rad/s, skala log]

Pole-zero map jest jedną z najsilniejszych wizualizacji w klasycznej automatyce. Każdy biegun ma znaczenie geometryczne:

  • Część rzeczywista (Re) = szybkość tłumienia. Bardziej ujemna = szybsze tłumienie. Dodatnia = niestabilność.
  • Część urojona (Im) = częstotliwość oscylacji. Im = 0 = brak oscylacji (czysto eksponencjalna odpowiedź).
  • Odległość od osi urojonej = ζ·ω_n (dyssypacja energii).
  • Odległość od początku układu = ω_n (częstość naturalna).

Spróbuj: przeciągnij parę sprzężonych biegunów w stronę osi urojonej (mniejsze Re) — odpowiedź skokowa zaczyna oscylować coraz mocniej. Bieguny tuż przy osi → ζ → 0, oscylacje wieczne. Przeciągnij dalej w prawo (Re > 0) — układ niestabilny, eksponencjalny rozjazd.

5. Drugi rząd — ζ, ω_n i rezonans

Większość prawdziwych systemów sprowadza się lokalnie do układu drugiego rzędu z parą sprzężonych biegunów. Standardowa forma:

G(s)=ωn2s2+2ζωns+ωn2G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2}

Dwa parametry mówią o wszystkim: ζ (tłumienie) i ω_n (częstość naturalna). Bieguny tej transmitancji:

s1,2=ζωn±ωnζ21s_{1,2} = -\zeta\omega_n \pm \omega_n\sqrt{\zeta^2 - 1}

Dla ζ<1\zeta < 1: zespolone, układ niedotłumiony, oscylacje wygasające. Dla ζ1\zeta \ge 1: rzeczywiste, układ nadtłumiony, brak oscylacji.

Najbardziej dramatyczny efekt to rezonans częstotliwościowy: jeśli ζ<1/20.707\zeta < 1/\sqrt{2} \approx 0.707, w wykresie Bode pojawia się peak przy częstotliwości ωpeak=ωn12ζ2\omega_{peak} = \omega_n\sqrt{1 - 2\zeta^2}. Sygnały o tej częstotliwości są wzmacniane — to jest klasyczny problem w konstrukcjach mechanicznych (mosty, budynki w trzęsieniu, kadłub statku w fali).

parametry układu 2. rzędu

ζ (tłumienie)0.30
ω_n (częstość naturalna)1.0 rad/s
charakterystyka
reżimniedotłumiony (rezonans)bieguny-0.30 ± 0.95ipeak na Bode4.85 dB w ω = 0.91overshoot37.2 %
odpowiedź skokowa
r = 1t [s]
Bode — pasmo dB i faza
|G|∠Gω (log)

Kanoniczna postać układu 2. rzędu:

G(s)=ωn2s2+2ζωns+ωn2G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2}

Tłumienie ζ\zeta kontroluje wszystko:

  • ζ < 0.707 — pojawia się peak rezonansowy w odpowiedzi częstotliwościowej. Wzmocnienie w ω_peak może być znacznie większe niż 0 dB — sygnały sinusoidalne o tej częstotliwości są wzmacniane. Niebezpieczne dla układów mechanicznych (mosty, budynki w trzęsieniach).
  • ζ = 0.707 — magiczny próg. Najszybsza odpowiedź skokowa bez peaku rezonansowego (Butterworth response).
  • ζ = 1 — krytyczne tłumienie. Granica między oscylacjami a brakiem.
  • ζ > 1 — nadtłumiony. Bieguny rzeczywiste, odpowiedź eksponencjalna z dwoma stałymi czasowymi.

Spróbuj: zmniejsz ζ\zeta do 0.1 — peak rezonansowy wzrasta dramatycznie (do 14 dB = 5× wzmocnienie), oscylacje w odpowiedzi skokowej trwają długo. Zwiększ do 2 — peak znika, odpowiedź ślamazarna ale gładka.

6. Bode i Nyquist — czytanie wykresów

Analogia. Bode plot pokazuje jak bardzo układ wzmacnia/tłumi i z jakim opóźnieniem fazowym reaguje na sinusy. Nyquist plot pokazuje to samo w formie krzywej w płaszczyźnie zespolonej — punkt po punkcie po wszystkich częstotliwościach. Bode jest dla projektowania, Nyquist dla analizy stabilności.

Co czytać z Bode

  • Niskie częstotliwości — jak układ reaguje na stałe sygnały (np. stałą referencję). Wysoki gain w niskich = dobre tracking, odrzucanie stałych zaburzeń.
  • Średnie częstotliwości — tu jest crossover frequency ω_c (gdzie |G| = 0 dB). Ta częstotliwość wyznacza pasmo regulatora — szybkość reakcji.
  • Wysokie częstotliwości — tłumienie szumu. Niskie wzmocnienie = filtruje szum pomiarowy.
  • Nachylenie -20 dB/dec = jeden biegun pierwszego rzędu. -40 dB/dec = dwa bieguny. Reguła kciuka.
  • Faza — opóźnienie reakcji. Przy 180°-180° + dodatnia faza pętli otwartej = pętla zamknięta na granicy stabilności.

Co czytać z Nyquista

Krzywa Nyquista to G(jω)G(j\omega) dla ω\omega od -\infty do ++\infty, narysowana w płaszczyźnie zespolonej. Kryterium Nyquista: pętla zamknięta jest stabilna wtedy i tylko wtedy gdy krzywa Nyquista pętli otwartej nie okrąża punktu (1,0)(-1, 0).

Bliskość krzywej do punktu (1,0)(-1, 0) mierzy jak blisko niestabilności jesteśmy. Stąd koncepcje marginesu wzmocnienia i fazy w §7.

7. Marginesy wzmocnienia i fazy

Analogia. Wyobraź sobie chodzenie po krawędzi przepaści. Margines = jak daleko jesteś od upadku. Gdy chodnik jest szeroki — margines duży, możesz odbijać się od ściany. Gdy wąski — każdy drgawek jest ryzykowny. Marginesy wzmocnienia i fazy mierzą dwa niezależne kierunki tego ryzyka.

Margines wzmocnienia (gain margin, GM)

Ile możemy zmienić wzmocnienie pętli zanim układ stanie się niestabilny?

GM=1G(jω180),gdzie ω180:G(jω180)=180°GM = \frac{1}{|G(j\omega_{180})|}, \quad \text{gdzie } \omega_{180}: \angle G(j\omega_{180}) = -180°

Znajdujemy częstotliwość, przy której faza pętli wynosi 180°-180°. Sprawdzamy wzmocnienie tam. Jeśli mniej niż 1 (mniej niż 0 dB), pętla zamknięta stabilna. GM mówi, ile razy wzmocnienie może urosnąć, zanim wpadnie w niestabilność. Reguła kciuka: GM ≥ 6 dB.

Margines fazy (phase margin, PM)

Ile dodatkowego opóźnienia fazy możemy wprowadzić zanim układ stanie się niestabilny?

PM=180°+G(jωc),gdzie ωc:G(jωc)=1PM = 180° + \angle G(j\omega_c), \quad \text{gdzie } \omega_c: |G(j\omega_c)| = 1

Znajdujemy częstotliwość przecięcia 0 dB. Sprawdzamy fazę tam. PM = jak daleko jesteśmy od 180°-180°. Reguła kciuka: PM ≥ 45° (60° dla większego komfortu).

Co dają w praktyce

  • Robustność na opóźnienie: opóźnienie czasowe Δt wnosi opóźnienie fazy −ω·Δt. Max dopuszczalne opóźnienie ≈ PM / ω_c. PM 45° + ω_c 10 rad/s = max opóźnienie 78 ms.
  • Robustność na mismatch: zmiana wzmocnienia modelu o ±GM nie destabilizuje pętli.
  • Tłumienie odpowiedzi skokowej: PM ≈ 100·ζ dla układów drugiego rzędu. PM 45° ≈ ζ 0.45 — umiarkowane tłumienie.

Dla każdej transmitancji w §4 sprawdź wartości w opisie presetu — pokazują GM, PM dla danej konfiguracji biegunów.

8. Loop shaping — projekt w domenie częstotliwości

Loop shaping to klasyczna metoda projektowa regulatora opracowana w XX wieku przez Bode'a, Nichoslsa, Hornowitza. Idea: zamiast minimalizować koszt jak LQR, kształtujesz krzywą Bode pętli otwartej L(s)=K(s)G(s)L(s) = K(s) \cdot G(s) tak, by spełniła specyfikację częstotliwościową.

Cele projektowe na Bode

  • Niskie częstotliwości: |L| >> 1 (wysoki gain) — odrzucanie zaburzeń, tracking referencji. Dla L1|L|^{-1} = sensitivity S(s) — jak bardzo zaburzenia wpływają na wyjście.
  • Średnie częstotliwości (~ω_c): nachylenie ~ −20 dB/dec, faza nie za blisko −180°. Daje dobry margines.
  • Wysokie częstotliwości: |L| << 1 (niski gain) — tłumienie szumu pomiarowego. Dla L/(1+L)L|L|/(1+|L|) \approx |L| = complementary sensitivity T(s) — jak bardzo szum trafia w wyjście.

Klasyczne elementy projektowe

Loop shaping operuje konkretnymi kompensatorami:

  • Lead Klead(s)=K(s+z)/(s+p),p>zK_{lead}(s) = K\,(s + z)/(s + p), p > z — dodaje fazę w paśmie, używany do zwiększenia PM.
  • Lag Klag(s)=K(s+z)/(s+p),p<zK_{lag}(s) = K\,(s + z)/(s + p), p < z — podnosi gain dla niskich częstotliwości, używany do tracking.
  • Lead-lag — kombinacja obu.
  • Notch filter (s2+ω02)/(s2+2ζω0s+ω02)(s^2 + \omega_0^2)/(s^2 + 2\zeta\omega_0 s + \omega_0^2) — eliminuje wąskie pasmo (np. częstotliwość rezonansowa konstrukcji mechanicznej).

Workflow projektanta loop shaping

  1. Wyrysuj Bode planta G(s).
  2. Określ wymagania: tracking, robustność, szum.
  3. Wybierz częstotliwość crossover ω_c (zgodnie z wymaganą szybkością).
  4. Skoryguj fazę przez dodanie kompensatorów lead/lag aż osiągniesz PM ≥ 45°.
  5. Skoryguj gain dla niskich częstotliwości do tracking, dla wysokich do tłumienia szumu.
  6. Zweryfikuj odpowiedź skokową i Nyquist.

Loop shaping ma kompromisy: jest bardziej iteracyjny niż LQR (kilka rund tuningu), ale daje intuicję która jest niezastąpiona przy debugowaniu dziwnego zachowania regulatora. Wielu praktyków po LQR/MPC i tak otwiera Bode żeby zrozumieć „dlaczego ten regulator tak się zachowuje".

Pełna metodyka: Skogestad & Postlethwaite „Multivariable Feedback Control" rozdz. 2-3; Franklin, Powell, Emami-Naeini „Feedback Control of Dynamic Systems" rozdz. 6-7 dla klasycznego podejścia.

Co świadomie pomijam

  • Root locus — geometryczna metoda projektowania z parametrem K, klasyczna lat 50. Wykres jak bieguny pętli zamkniętej zmieniają się z K. Mniej używana dziś niż Bode.
  • QFT (Quantitative Feedback Theory) — uogólnienie loop shaping dla planta z niepewnościami parametrycznymi, Horowitz.
  • Nichols chart — wykres gain-phase z poziomicami |T| i |S|. Bardziej kompaktowy niż Bode + Nyquist osobno.
  • Bandwidth, settling time tradeoffs w pełnej ogólności — relacje analityczne Bode'a (Bode integral, sensitivity integral, waterbed effect).