Moduł 01 · modele

Modele plantów

Mass-spring-damper, cart-pole, silnik DC — równania ruchu, linearyzacja, transmitancja, otwarta pętla.

1. Mass-spring-damper — drugi rząd, dyssypatywny

Najprostszy plant dydaktyczny: masa mm na sprężynie o sztywności kk, z tłumikiem o współczynniku cc. Druga zasada dynamiki:

mx¨+cx˙+kx=um\,\ddot x + c\,\dot x + k\,x = u

W postaci stanowej (stan x=[x,x˙]\mathbf{x} = [x, \dot x]^\top, wejście uu, wyjście y=xy = x):

x˙=[01k/mc/m]x+[01/m]u,y=[10]x.\dot{\mathbf{x}} = \begin{bmatrix} 0 & 1 \\ -k/m & -c/m \end{bmatrix}\mathbf{x} + \begin{bmatrix} 0 \\ 1/m \end{bmatrix} u, \qquad y = \begin{bmatrix} 1 & 0 \end{bmatrix}\mathbf{x}.

Charakterystyczne wielkości: częstość naturalna ωn=k/m\omega_n = \sqrt{k/m} i tłumienie ζ=c/(2mk)\zeta = c/(2\sqrt{mk}). Dla ζ<1\zeta < 1 układ jest niedotłumiony — odpowiedź skokowa oscyluje wokół wartości docelowej xss=ustep/kx_{ss} = u_{step}/k. Dla ζ1\zeta \ge 1 nie ma oscylacji.

parametry plant

m (masa)1.00 kg
c (tłumienie)2.00 Ns/m
k (sztywność)4.0 N/m
charakterystyka
ω_n = √(k/m)2.000 rad/sζ = c/(2√(mk))0.500x_ss = u/k0.250 m
niedotłumiony — odpowiedź oscylująca
-0.30.150.61.051.501.63.24.86.48x_ss = 0.25u (skok jednostkowy)x (odpowiedź)t [s]x [m] · u [N]
Transmitancja (od siły uu do pozycji xx):
G(s) = 1 / (m·s² + c·s + k) = 1 / (1.00·s² + 2.00·s + 4.0)

Zmieniając mm, cc, kk obserwuj ω_n (częstość naturalna) i ζ (tłumienie). Skokowo zwiększ mm i widać, że ω_n maleje (powolniejszy układ), jednocześnie ζ maleje (bardziej oscylacyjny). Pojedynczy parametr steruje dwoma metrykami — to typowe dla układów drugiego rzędu.

2. Cart-pole — czwarty rząd, niestabilny

Wahadło odwrócone na wózku: cztery stany [x,x˙,θ,θ˙][x, \dot x, \theta, \dot\theta], jedno wejście uu (siła pozioma), dwa wyjścia (x,θ)(x, \theta). Niestabilna w pionie równowaga (θ=0\theta = 0) — bez sterowania wahadło spada, lokalna dynamika jest wykładnicza dla małych odchyleń.

Wyprowadzenie z lagrangianu L=TVL = T - V, gdzie energia kinetyczna obejmuje wkład wózka i pełną prędkość pozycji środka masy wahadła. Pełne równania:

(M+m)x¨+mθ¨cosθmθ˙2sinθ=u(M+m)\ddot x + m\ell\ddot\theta\cos\theta - m\ell\dot\theta^2\sin\theta = u
mx¨cosθ+m2θ¨=mgsinθm\ell\ddot x \cos\theta + m\ell^2 \ddot\theta = m g \ell \sin\theta

Po rozwiązaniu względem x¨,θ¨\ddot x, \ddot\theta dostajemy układ nieliniowy. Dla projektowania kontrolerów linearyzujemy wokół równowagi pionowej (θ0\theta \to 0, sinθθ\sin\theta \to \theta, cosθ1\cos\theta \to 1, θ˙20\dot\theta^2 \to 0):

x˙=[010000mg/M0000100(M+m)g/(M)0]Ax+[01/M01/(M)]Bu\dot{\mathbf{x}} = \underbrace{\begin{bmatrix} 0 & 1 & 0 & 0 \\ 0 & 0 & -mg/M & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & (M+m)g/(M\ell) & 0 \end{bmatrix}}_{A}\mathbf{x} + \underbrace{\begin{bmatrix} 0 \\ 1/M \\ 0 \\ -1/(M\ell) \end{bmatrix}}_{B} u

Wartości własne AA dla M=1,m=0.1,=0.5M=1, m=0.1, \ell=0.5: dwie zerowe (cart bez sprzężenia ma swobodny ruch translacyjny) i para ±(M+m)g/(M)±4.65\pm \sqrt{(M+m)g/(M\ell)} \approx \pm 4.65 rad/s — z której dodatnia wskazuje niestabilność.

Suwak poniżej kontroluje początkowy kąt θ0\theta_0. Symulacja dla u=0u = 0 pokazuje swobodny upadek wahadła w pełnym modelu nieliniowym vs. modelu zlinearyzowanym. Dla małych kątów modele się pokrywają; dla dużych — linearyzacja przewiduje wykładnicze rośnięcie kąta, podczas gdy fizyka utrzymuje go w przedziale ±π\pm \pi (wahadło może się obrócić).

warunek początkowy

θ₀ (kąt początkowy)15 °
porównanie modeli
θ₀0.262 rad (15°)max |Δθ|2.690 radsin(θ₀) − θ₀-0.0030linearyzacja → ∞t ≈ 0.87 s
linearizacja akceptowalna do projektu kontrolera
-0.51.383.255.13700.81.62.43.240 — pion w góręπ — pion w dół (równowaga stabilna)2π — pełny obrótlin. → ∞θ — pełny nieliniowy (oscylacja wokół π)θ — linearyzacja (rośnie eksponencjalnie do ∞)t [s]θ [rad]

Symulacja swobodnego upadku przy u=0u = 0. Niebieska — pełny model: wahadło fizycznie spada od θ0\theta_0 przez π/2\pi/2 (poziom) do π\pi (zwisa w dół), nabiera prędkości, leci dalej w górę po drugiej stronie do 2πθ02\pi - \theta_0, zawraca, oscyluje wokół π. Bez tarcia w modelu — wieczne wahania. Czerwona — linearyzacja sinθθ\sin\theta \approx \theta daje równanie θ¨=(M+m)gMθ\ddot\theta = \frac{(M+m)g}{M\ell}\,\theta: dodatni biegun → θ rośnie eksponencjalnie do nieskończoności. Linia się urywa, gdy θ przekroczy 7 rad — od tego momentu wartości fizyczne to setki rad i wyżej, są poza skalą. Pionowa kreska zaznacza moment urwania. To czysto matematyczny artefakt przybliżenia, nie zachowanie fizyczne.

Pełne równania ruchu (z lagrangianu, bez tarcia, u=0u = 0):

θ¨=(M+m)gsinθucosθmθ˙2sinθcosθ(M+msin2θ)\ddot\theta = \frac{(M+m)g\sin\theta - u\cos\theta - m\ell\dot\theta^2 \sin\theta\cos\theta}{\ell\,(M + m\sin^2\theta)}

Linearyzacja wokół θ=0\theta = 0 (przybliżenie sinθθ\sin\theta \approx \theta, cosθ1\cos\theta \approx 1, θ˙20\dot\theta^2 \approx 0):

θ¨(M+m)gθuM\ddot\theta \approx \frac{(M+m)g\,\theta - u}{M\ell}

Symulacja powyżej pokazuje upadek wahadła z położenia θ0\theta_0 przy u=0u = 0. Dla małych kątów krzywe pokrywają się; dla 30° rozjazd staje się widoczny w okolicy t0.5t \approx 0.5 s; dla 90° (poziomo) linearyzacja przewiduje wykładniczo rosnący kąt, podczas gdy pełny model utrzymuje go w przedziale ±π\pm \pi przez obrót.

3. Silnik DC — trzeci rząd, dwie skale czasu

Pierwszy plant z elektryką w pętli. Trzy stany: [θ,ω,ia][\theta, \omega, i_a] (kąt obrotu, prędkość, prąd twornika). Wejście: napięcie VV. Wyjście: zwykle ω\omega (sterowanie prędkościowe) lub θ\theta (sterowanie pozycyjne).

Model wynika z dwóch równań fizycznych. Mechaniczne (drugie prawo Newtona dla rotacji):

Jω˙=KtiabωτloadJ\,\dot\omega = K_t\, i_a - b\,\omega - \tau_{load}

gdzie KtK_t to stała momentowa (moment ∝ prąd), bb tłumienie viscous, τload\tau_{load} moment obciążenia zewnętrzny. Elektryczne (prawo napięciowe Kirchhoffa wokół obwodu twornika):

Li˙a=VRiaKeωL\,\dot i_a = V - R\,i_a - K_e\,\omega

gdzie R,LR, L to rezystancja i indukcyjność uzwojeń, KeωK_e\,\omega to back-EMF (siła elektromotoryczna indukowana przez wirujący wirnik). W jednostkach SI Kt=KeK_t = K_e dla idealnego silnika.

Dwie naturalne stałe czasowe: elektryczna τe=L/R\tau_e = L/R (zwykle ms) i mechaniczna τm=JR/(KtKe+bR)\tau_m = JR/(K_t K_e + bR)(zwykle 100 ms+). Gdy τeτm\tau_e \ll \tau_m, można pominąć indukcyjność i uzyskać model pierwszego rzędu w ω\omega. Suwak LL poniżej pozwala zobaczyć przejście — przy małym LL prąd ustala się natychmiast i ω rośnie czysto wykładniczo; przy dużym LL dochodzi „elektryczne" opóźnienie.

parametry silnika

R (rezystancja)1.00 Ω
L (indukcyjność)0.50 H
J (bezwładność)0.010 kg·m²
b (tłumienie)0.10 Nms
odpowiedź ustalona, V = 10 V
ω_ss0.999 rad/si_a,ss9.990 Aτ_e = L/R500.0 msτ_m99.9 msτ_m / τ_e0.20
skale czasowe blisko siebie — pełny model 2. rzędu
00.511.5200.40.81.21.62ω_ss = 1.00V (skok 10 V)ω (prędkość)t [s]ω [rad/s]03.757.511.251500.40.81.21.62i_a,ss = 9.99i_a (prąd twornika)t [s]i_a [A]

Równania stanu:

θ˙=ω,Jω˙=Ktiabω,Lia˙=VRiaKeω\dot\theta = \omega, \quad J\dot\omega = K_t i_a - b\omega, \quad L\dot{i_a} = V - R\,i_a - K_e \omega

Transmitancja prędkości od napięcia:

ω(s)V(s)=KtJLs2+(RJ+bL)s+(Rb+KtKe)\frac{\omega(s)}{V(s)} = \frac{K_t}{J L\, s^2 + (RJ + bL)\, s + (Rb + K_t K_e)}

Skala elektryczna τe=L/R\tau_e = L/R jest zwykle rzędu milisekund, mechaniczna τm\tau_m rzędu setek milisekund. Gdy ich stosunek jest duży, indukcyjność można pominąć (typowo dla małych silników DC), a układ redukuje się do pierwszego rzędu — jednej eksponencjały zbiegającej do ωss\omega_{ss}. Spróbuj obniżyć LL lub podnieść JJ, by zobaczyć ten reżim. Zwróć też uwagę na charakterystyczny peak prądu: przy starcie ω=0\omega = 0, więc back-EMF Keω=0K_e \omega = 0, a prąd ograniczony jest tylko przez RR — dla małych RR daje to bardzo wysokie chwilowe prądy rozruchu.

4. Porównanie — co trzeba wiedzieć dla każdego

Trzy plant są reprezentantami trzech klas, które pojawiają się w kolejnych modułach kursu jako benchmarki:

plantrządstabilny w open-loop?liniowy?cel sterowaniamoduły
mass-spring-damper2tak (dyssypatywny)takregulacja pozycji do zadanej wartości2 (PID), 3 (step response benchmark)
cart-pole4nie (równowaga niestabilna)niestabilizacja wahadła w pionie + anchor wózka3 (SMC), 5 (MPC), 6 (benchmark wszystkich)
silnik DC3tak (z tłumieniem)tak (idealny)tracking prędkości / pozycji2 (PID kaskadowy), 8 (adaptive)

Dla każdej klasy „dobry kontroler" oznacza co innego. Mass-spring-damper jest stabilny sam z siebie, więc dowolne ujemne sprzężenie zwrotne pomaga; pytanie tylko o jakość odpowiedzi (przeregulowanie, czas ustalania). Cart-pole bez sterowania spada — kontroler musi dostarczać dodatnie wzmocnienie żeby skompensować dynamikę dodatnich biegunów. Silnik DC ma łagodne dyssypatywne zachowanie, ale dynamika prądu jest dużo szybsza niż prędkości — typowo używa się kaskady: szybka pętla prądowa wewnątrz pętli prędkości wewnątrz pętli pozycji.

Co ten moduł NIE pokazuje

  • Tarcie statyczne i Coulomba — prawdziwe układy mechaniczne mają nieliniowe tarcie, które linearyzacja ignoruje. Dla cart-pole'a tarcie wózka o tor jest pomijalne tylko w warunkach laboratoryjnych.
  • Ograniczenia aktuatora — silniki mają maksymalny moment, hydraulika maksymalne ciśnienie. Modele tu są ciągłe i uRu \in \mathbb{R}; kontrolery z saturacją (np. MPC z ograniczeniami) traktują to formalnie.
  • Niepewność parametrów — masa, sztywność, bezwładność znamy z tolerancją kilku procent. Kontrolery robust (SMC, H∞) projektowane są dla całej rodziny modeli, nie dla jednego.
  • Pomiar — szum i opóźnienia — encoder rotor ma kwantyzację, IMU szum żyroskopowy, kamera latencję. Te efekty pojawią się przy projekcie obserwatorów (LQG, EKF) — poza zakresem aktualnego planu kursu.

Modele tu zaprezentowane są idealnymi przybliżeniami, które wystarczą do projektu klasycznych kontrolerów. Każdy moduł, który ich używa, wskazuje wprost, jakie założenia upraszczające przyjmuje.