Strona głównaArtykułyTeoria Sterowania

Cruise Control: Dlaczego Termin Całkowy Zarazem Ratuje Cię i Zgryza

Nagle wystąpienie zakłócenia spowodowanego podjazdem ujawnia, dlaczego P samo w sobie powoduje odchył, dlaczego PI go eliminuje oraz dlaczego ten sam termin całkowy prowadzi do nadmiernego przekroczenia przy nasywaniu przepustnicy.

mysimulator teamZaktualizowano — czerwiec 2026≈ 8 min czytania▶ Otwórz symulację

Pierwszorzędna instalacja z zakłóceniem, którego nikt nie prosił

Dynamika pionowa pojazdu, w celach sterowania tempem, redukuje się do jednego prostego równania siłowego: masa razy przyspieszenie jest równe ciągu silnika pomniejszonemu o opór aerodynamiczny oraz sile grawitacji działającej na stok.

m v̇ = F_engine(u) - c·v² - m g sin(θ_hill) Opór sprawia, że to zjawisko jest nieznacznie nieliniowe, ale istotnym faktorem dla projektanta sterownika jest prostsza struktura: termin związany ze stokiem stanowi nieodmierzalne zakłócenie wprowadzane do tego samego równania co wejście sterujące. Sterownik, który nie uwzględnia go wyraźnie, ogólnie ustabilizuje się na pewnym błędzie prędkości, gdy θ_hill ≠ 0 — a jak duży ten błąd zależy całkowicie od wybranego sterownika.

m v̇ = F_engine(u) - c·v² - m g sin(θ_hill)
demo na żywo · powiązana symulacja● LIVE

Dlaczego tylko sterowanie proporcjonalne nie wystarcza na wzniesieniu

Czysty regulator proporcjonalny ustawia obroty z błędu prędkości: u = Kp·(v_set - v). Na płaskim terenie konwerguje do pewnego punktu roboczego. Dodając wzniesienie, w stanie ustalonym samochód potrzebuje niezerowych obrotów, aby przeciwdziałać sile grawitacji – ale regulator proporcjonalny może wytworzyć jedynie niezerowe wyjście z niezerowego błędu. W rezultacie samochód ustala się poniżej v_set o dokładnie tyle, ile wynosi błąd: stałe przesunięcie, czasami nazywane 'droopem'. Zwiększanie Kp zmniejsza to przesunięcie, ale nigdy go nie eliminuje, a zbyt duże zwiększenie Kp prowadzi do wymiany tego przesunięcia na oscylacje i szarpanie aktuatora zamiast niego.

Dlaczego dodanie członu całki rozwiązuje problem strukturalnie

Człon całkowy kumuluje błąd w czasie i stale zwiększa polecenie przyspieszenia, dopóki jakikolwiek błąd pozostaje: u = Kp·e + Ki·∫e dt. W stanie ustalonym, polecenie przyspieszenia musi przestać się zmieniać, a jedynym sposobem na to jest, aby sam błąd osiągnął dokładnie zero. To gwarancja strukturalna, jaką zapewnia kontroler PI, której nie daje kontroler P sam w sobie: zerowy błąd w stanie ustalonym dla stałej zakłócającej, niezależnie od tego, jak duża jest wartość Kp lub jak stroma jest góra (pomijając nasycenie aktuatora) – bezpośredwie wynikające z faktu, że układ nie posiada własnego elementu integrującego, więc kontroler musi go dostarczyć.

u(t) = Kp·e(t) + Ki·∫₀ᵗ e(τ) dτ,     e = v_set - v

P only:   settles with a nonzero offset proportional to disturbance size
PI:       offset is driven to exactly zero, because only e = 0 lets
          the integral term stop growing

Ciemna strona członu całkującego: zwijanie

Każdy rzeczywisty rozrusznik przepustnicy osiąga nasycenie – nie może być w pełni otwarty (100%). Jeśli podjechać samochodem po stromym wzgórzu, błąd pozostaje uparcie dodatni nawet z pełnym przyspieszeniem, ponieważ silnik po prostu nie jest w stanie dostarczyć wystarczającej siły. Człon całkujący, niewrażliwy na nasycenie, gromadzi ten dodatkowy błąd przez cały czas, gdy rozrusznik jest zablokowany na maksymalnej pozycji. Dopiero kiedy samochód ostatecznie pokonuje wzgórze i zanika zakłócenie grawitacji, człon całkujący osiąga wartość znacznie większą niż potrzebna – a musi się całkowicie rozładować przed obniżeniem polecenia przepustnicy do wartości wymaganej na płaskiej drodze. Widocznym objawem jest duży, opóźniony przekroczenie prędkości tuż po pokonaniu wzgórza: regulator stale wydaje komendy dotyczące prawie pełnego przyspieszenia przez znaczący odcinek płaskiej drogi, wyłącznie z powodu zgromadzonej historii błędu, która nie ma nic wspólnego z aktualnym błędem.

Zapobieganie zwijaniu się: informowanie integratora o rzeczywistości działania aktuatora

Rozwiązaniem jest zawsze wersja, w której integrator jest informowany o tym, kiedy aktuator przestaje reagować. Trzy standardowe techniki, uporządkowane według stopnia interwencji, to:

obcinanie (warunkowa integracja) zatrzymywanie terminu integralnego, gdy aktuator jest nasycony I błąd spowodowałby dalsze nasycenie – najtańsze rozwiązanie, wymaga jedynie flagi nasycenia, bez dodatkowych informacji o układzie

wyliczanie wstecznej wartości podawanie różnicy między wydanym a faktycznie zastosowanym (nasyconym) sygnałem sterującym do integratora z własnym zwiększeniem, dzięki czemu stan integralny jest aktywnie przyciągany do wartości, do jakiej powinien się on zbliżyć, biorąc pod uwagę rzeczywisty, obcięty wyjście

obserwatorowe/modelowe zapobieganie zwijaniu się rekonstrukcja stanu, w jakim układ byłby, przy uwzględnieniu nasyconego wpływu, zamiast stanu bez nasycenia, a następnie integracja z tym modelem – najbardziej dokładne, ale wymaga dobrego modelu układu, Wyliczanie wstecznej wartości jest najszerzej stosowanym kompromisem w produkcji pojazdów samochodowych i przemysłowym sterowaniu: kosztuje dodatkowe zwiększenie i dodatkowy ścieżek sprzężenia zwrotnego, a integrator śledzi rzeczywistość – czyli że układ widział jedynie obciętą wartość rozkaz gazu – zamiast fantastycznej wartości, którą chciał wysłać niezaktualizowany model.

clamping (conditional integration)
    freeze the integral term whenever the actuator is saturated AND
    the error would push it further into saturation — cheapest fix,
    needs only a saturation flag, no extra plant knowledge

back-calculation
    feed the difference between the commanded and the actually-applied
    (saturated) control signal back into the integrator with its own
    gain, so the integral state is actively pulled toward whatever
    value it should have had given the real, clamped output

observer-based / model-based anti-windup
    reconstruct what state the plant would be in given the saturated
    input, rather than the unsaturated one, and integrate against that
    — most accurate, but needs a decent plant model to be worth it

Gdzie projekt nadal wymaga osądu

Żaden z tych elementów nie jest pozbawiony kompromisów. Duże Ki eliminuje przesunięcie (offset) szybciej, ale również szybciej się nagle zwija (windup), gdy dochodzi do nasycenia, a wchodzi w interakcję z Kp, aby ustawić tłumienie pętli zamkniętej – jeśli oba parametry są zbyt wysokie, to ta sama akcja całkowa, która wyeliminowała przesunięcie na zboczu, zaczyna powodować przeszczeglenie i drgania nawet bez osiągnięcia nasycenia. Rzeczywiste strojenie kontroli prędkości w terenie jest przeprowadzane względem rodziny zakłóceń (zmian nachylenia drogi, wiatru z impetem, obciążenia), a nie pojedynczego kroku, a zyski przeciwko nagle zwijaniu są dobierane tak, aby odzyskanie po nasyconym wzgórzach było szybkie, bez powodowania nerwowego reakcji na niewykorzystanym, codziennym działaniu.

Często zadawane pytania

Dlaczego kontrola prędkości P-only nigdy nie osiąga ustawionej prędkości na wzniesieniu?

Ponieważ regulator proporcjonalny może emitować tylko niezerowy rozkaz przyspieszenia w odpowiedzi na niezerowy błąd prędkości, ale utrzymywanie stałej prędkości na wzniesieniu wymaga ciągłego niezerowego rozkazu przyspieszenia, aby przeciwdziałać sile grawitacji. Regulator ustala się przy wartości błędu prędkości generującej dokładnie to rozkaz przyspieszenia – stabilne przesunięcie, które zmniejsza się, ale nigdy nie znika w miarę jak wzrasta współczynnik zwrotny.

Co powoduje integralne windup?

Występuje ono wtedy, gdy błąd sterowania utrzymuje stały znak przez dłuższy czas, a aktuator jest nasycony (np. pełne przyspieszenie na stromym wzniesieniu) – termin całkowy nadal kumuluje ten błąd, nawet jeśli aktuator nie może zareagować na dodatkowe rozkazy, więc rośnie znacznie ponad wartość potrzebną po powrocie do normalnych warunków, powodując wolny, opóźniony przekroczenie (overshoot), gdy w końcu się wyhamowuje.

Jak anti-windup naprawia przekroczenie?

Poprzez zapobieganie kumulacji błędu przez termin całkowy, który nie może być zareagowany. Ograniczanie (clamping) po prostu zamraża integrację podczas nasycenia; back-calculation aktywnie wprowadza różnicę między rozkazanym a faktycznie zastosowanym (nasyconym) sygnałem do zintegrowalnika, przyciągając jego wewnętrzny stan do wartości, która powinna być w oparciu o rzeczywisty, ograniczony wydatek na sygnał.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Cruise Control PI i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Cruise Control PI

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)