Modelowa kontrola predykcyjna - Model predictive control

Sterowanie predykcyjne modelu ( MPC ) to zaawansowana metoda sterowania procesem, która służy do sterowania procesem przy jednoczesnym spełnieniu zestawu ograniczeń. To była używana w procesie branż w zakładach chemicznych i rafineriach ropy naftowej od 1980 roku. W ostatnich latach znalazł również zastosowanie w modelach bilansowania systemów elektroenergetycznych oraz w energoelektronice . Modelowe regulatory predykcyjne opierają się na dynamicznych modelach procesu, najczęściej liniowych modelach empirycznych uzyskanych w wyniku identyfikacji systemu . Główną zaletą MPC jest to, że pozwala na optymalizację aktualnego przedziału czasowego, jednocześnie uwzględniając przyszłe przedziały czasowe. Osiąga się to poprzez optymalizację skończonego horyzontu czasowego, ale implementując tylko bieżącą szczelinę czasową, a następnie ponownie optymalizując, wielokrotnie, w ten sposób różniąc się od liniowego regulatora kwadratowego ( LQR ). RPP posiada również zdolność przewidywania przyszłych wydarzeń i podejmowania odpowiednich działań kontrolnych. Regulatory PID nie mają takiej zdolności przewidywania. MPC jest niemal powszechnie wdrażany jako sterowanie cyfrowe, chociaż prowadzone są badania nad osiągnięciem szybszych czasów odpowiedzi dzięki specjalnie zaprojektowanym obwodom analogowym.

Uogólnione sterowanie predykcyjne (GPC) i dynamiczna kontrola macierzy (DMC) to klasyczne przykłady MPC.

Przegląd

Modele używane w MPC mają na ogół reprezentować zachowanie złożonych systemów dynamicznych . Dodatkowa złożoność algorytmu sterowania MPC generalnie nie jest potrzebna do zapewnienia odpowiedniego sterowania prostymi systemami, które często są dobrze sterowane przez ogólne regulatory PID . Typowe cechy dynamiczne, które są trudne dla regulatorów PID, obejmują duże opóźnienia czasowe i dynamikę wyższego rzędu.

Modele MPC przewidują zmianę zmiennych zależnych modelowanego systemu, która będzie spowodowana zmianami zmiennych niezależnych . W procesie chemicznym zmiennymi niezależnymi, które można regulować za pomocą regulatora, są często nastawy regulatorów regulacyjnych PID (ciśnienie, przepływ, temperatura itp.) lub końcowy element regulacyjny (zawory, przepustnice itp.). Jako zakłócenia wykorzystywane są zmienne niezależne, które nie mogą być regulowane przez regulator. Zmienne zależne w tych procesach to inne pomiary, które reprezentują cele kontroli lub ograniczenia procesu.

MPC wykorzystuje bieżące pomiary zakładu, bieżący stan dynamiczny procesu, modele MPC oraz docelowe i limity zmiennych procesowych, aby obliczyć przyszłe zmiany zmiennych zależnych. Zmiany te są obliczane tak, aby utrzymać zmienne zależne blisko wartości docelowej przy jednoczesnym przestrzeganiu ograniczeń zarówno zmiennych niezależnych, jak i zależnych. MPC zazwyczaj wysyła tylko pierwszą zmianę w każdej zmiennej niezależnej, która ma zostać zaimplementowana, i powtarza obliczenia, gdy wymagana jest następna zmiana.

Chociaż wiele rzeczywistych procesów nie jest liniowych, często można je uznać za w przybliżeniu liniowe w małym zakresie roboczym. Podejścia liniowe MPC są stosowane w większości aplikacji z mechanizmem sprzężenia zwrotnego MPC kompensującym błędy predykcji spowodowane niedopasowaniem strukturalnym między modelem a procesem. W modelach prognostycznych kontrolerów, które składają się wyłącznie z modeli liniowych The zasada superpozycji z algebry liniowej pozwala na skutek zmian w wielu zmiennych niezależnych być sumowane do przewidywania odpowiedzi zmiennych zależnych. Upraszcza to problem sterowania do serii obliczeń bezpośredniej algebry macierzy, które są szybkie i niezawodne.

Gdy modele liniowe nie są wystarczająco dokładne, aby przedstawić rzeczywiste nieliniowości procesów, można zastosować kilka podejść. W niektórych przypadkach zmienne procesu można przekształcić przed i/lub po liniowym modelu MPC w celu zmniejszenia nieliniowości. Procesem można sterować za pomocą nieliniowego MPC, które wykorzystuje model nieliniowy bezpośrednio w aplikacji sterującej. Model nieliniowy może mieć postać dopasowania danych empirycznych (np. sztuczne sieci neuronowe) lub dynamicznego modelu wysokiej wierności opartego na fundamentalnych bilansach masy i energii. Model nieliniowy można zlinearyzować, aby uzyskać filtr Kalmana lub określić model dla liniowego MPC.

Badanie algorytmiczne przeprowadzone przez El-Gherwi, Budmana i El Kamela pokazuje, że wykorzystanie podejścia dwutrybowego może zapewnić znaczną redukcję obliczeń online przy jednoczesnym zachowaniu wydajności porównywalnej do niezmienionej implementacji. Zaproponowany algorytm rozwiązuje równolegle N problemów optymalizacji wypukłych w oparciu o wymianę informacji między sterownikami.

Teoria stojąca za RPP

Dyskretny schemat MPC.

MPC opiera się na iteracyjnej, skończonej optymalizacji modelu zakładu. W tym czasie próbkowany jest aktualny stan instalacji i obliczana jest strategia sterowania minimalizującego koszty (za pomocą algorytmu minimalizacji numerycznej) dla stosunkowo krótkiego horyzontu czasowego w przyszłości: . W szczególności, obliczenia online lub w locie są wykorzystywane do badania trajektorii stanu, które emanują z obecnego stanu i znalezienia (poprzez rozwiązanie równań Eulera-Lagrange'a ) strategii minimalizacji kosztów do czasu . Realizowany jest tylko pierwszy krok strategii sterowania, następnie stan instalacji jest ponownie próbkowany, a obliczenia są powtarzane począwszy od nowego stanu bieżącego, co daje nowe sterowanie i nową ścieżkę przewidywanego stanu. Horyzont predykcji jest przesuwany do przodu iz tego powodu RPP nazywana jest również kontrolą horyzontu oddalającego się . Chociaż takie podejście nie jest optymalne, w praktyce daje bardzo dobre rezultaty. Wiele badań akademickich zostało zrobione w celu znalezienia szybkich metod rozwiązywania równań typu Eulera-Lagrange'a, aby zrozumieć globalne właściwości stabilności lokalnej optymalizacji MPC i ogólnie poprawić metodę MPC.

Zasady RPP

Model Predictive Control (MPC) to wielowymiarowy algorytm sterowania, który wykorzystuje:

  • wewnętrzny dynamiczny model procesu
  • funkcja kosztu J na oddalającym się horyzoncie
  • algorytm optymalizacji minimalizujący funkcję kosztu J z wykorzystaniem wejścia sterującego u

Przykład kwadratowej funkcji kosztu do optymalizacji podaje wzór:

bez naruszania ograniczeń (dolne/wysokie limity) z

: th regulowana zmienna (np. zmierzona temperatura)
: th zmienna odniesienia (np. wymagana temperatura)
: P regulowana zmienna (na przykład zawór kontrolny)
: współczynnik ważenia odzwierciedlający względne znaczenie
: współczynnik ważenia penalizujący stosunkowo duże zmiany w

itp.

Nieliniowe MPC

Nieliniowe sterowanie predykcyjne modelem lub NMPC to wariant sterowania predykcyjnego modelu (MPC), który charakteryzuje się wykorzystaniem nieliniowych modeli systemowych w predykcji. Podobnie jak w liniowym MPC, NMPC wymaga iteracyjnego rozwiązania problemów optymalnego sterowania na skończonym horyzoncie predykcji. Podczas gdy problemy te są wypukłe w liniowej MPC, w nieliniowej MPC niekoniecznie są już wypukłe. Stanowi to wyzwanie zarówno dla teorii stabilności NMPC, jak i rozwiązania numerycznego.

Numeryczne rozwiązanie problemów sterowania optymalnego NMPC opiera się zazwyczaj na bezpośrednich metodach optymalnego sterowania z wykorzystaniem schematów optymalizacji typu Newtona, w jednym z wariantów: bezpośrednie strzelanie pojedyncze , bezpośrednie metody strzelania wielokrotnego lub bezpośrednia kolokacja . Algorytmy NMPC zazwyczaj wykorzystują fakt, że kolejne problemy optymalnego sterowania są do siebie podobne. Pozwala to skutecznie zainicjować procedurę rozwiązania typu Newtona przez odpowiednio przesunięte domysły z wcześniej obliczonego optymalnego rozwiązania, oszczędzając znaczną ilość czasu obliczeniowego. Podobieństwo kolejnych problemów jest jeszcze bardziej wykorzystywane przez algorytmy śledzenia ścieżki (lub „iteracje w czasie rzeczywistym”), które nigdy nie próbują iterować żadnego problemu optymalizacyjnego do zbieżności, ale zamiast tego wykonują tylko kilka iteracji w celu rozwiązania najbardziej aktualnego problemu NMPC, przed przejściem do następnego, który jest odpowiednio zainicjalizowany; patrz np.

Podczas gdy aplikacje NMPC były w przeszłości stosowane głównie w przemyśle przetwórczym i chemicznym ze stosunkowo niskimi częstotliwościami próbkowania, NMPC jest coraz częściej stosowany, wraz z postępem w sprzęcie sterownika i algorytmach obliczeniowych, np. kondycjonowanie wstępne , w aplikacjach z wysokimi częstotliwościami próbkowania, np. w przemyśle motoryzacyjnym, a nawet gdy stany są rozproszone w przestrzeni ( systemy o parametrach rozproszonych ). Jako aplikacja w lotnictwie, NMPC jest ostatnio używany do śledzenia optymalnych trajektorii podążania za terenem / unikania w czasie rzeczywistym.

Wyraźne MPC

Jawne MPC (eMPC) pozwala na szybką ocenę prawa kontroli dla niektórych systemów, w przeciwieństwie do MPC online. Jawne MPC opiera się na technice programowania parametrycznego , w której rozwiązanie problemu sterowania MPC sformułowanego jako problem optymalizacji jest wstępnie obliczane w trybie offline. To rozwiązanie offline, tj. prawo sterowania, często ma postać odcinkowej funkcji afinicznej (PWA), stąd sterownik eMPC przechowuje współczynniki PWA dla każdego podzbioru (regionu kontrolnego) przestrzeni stanów, gdzie PWA jest stała, jak również współczynniki niektórych reprezentacji parametrycznych wszystkich regionów. Każdy region okazuje się geometrycznie wypukłym polytopem dla liniowego MPC, zwykle parametryzowanym przez współczynniki dla jego ścian, co wymaga analizy dokładności kwantyzacji . Uzyskanie optymalnego działania kontrolnego sprowadza się następnie do określenia najpierw regionu zawierającego stan bieżący, a następnie jedynie oceny PWA przy użyciu współczynników PWA przechowywanych dla wszystkich regionów. Jeśli całkowita liczba regionów jest niewielka, implementacja eMPC nie wymaga znacznych zasobów obliczeniowych (w porównaniu z MPC online) i jest wyjątkowo przystosowana do sterowania systemami o dużej dynamice. Poważną wadą eMPC jest wykładniczy wzrost całkowitej liczby obszarów kontrolnych w odniesieniu do niektórych kluczowych parametrów sterowanego systemu, np. liczby stanów, co dramatycznie zwiększa wymagania dotyczące pamięci sterownika i czyni pierwszy krok oceny PWA, tj. wyszukiwanie bieżącego obszaru kontrolnego, kosztowne obliczeniowo.

Solidna MPC

Odporne warianty predykcyjnego sterowania modelem (MPC) są w stanie uwzględnić zakłócenia ograniczonego zestawu, zapewniając jednocześnie spełnienie ograniczeń stanu. Poniżej przedstawiono niektóre z głównych podejść do silnej RPP.

  • Min-maks MPC . W tym sformułowaniu optymalizację przeprowadza się w odniesieniu do wszystkich możliwych ewolucji zaburzenia. Jest to optymalne rozwiązanie problemów ze sterowaniem liniowym, jednak wiąże się z wysokimi kosztami obliczeniowymi. Podstawową ideą podejścia min/max MPC jest modyfikacja optymalizacji „min” on-line na problem „min-max”, minimalizując najgorszy przypadek funkcji celu, zmaksymalizowany dla wszystkich możliwych zakładów z zestawu niepewności.
  • Zaostrzenie ograniczeń MPC . W tym przypadku ograniczenia stanu są powiększone o dany margines, aby zagwarantować znalezienie trajektorii przy każdej ewolucji zakłóceń.
  • MPC lampowy . Wykorzystuje to niezależny nominalny model systemu i wykorzystuje kontroler sprzężenia zwrotnego, aby zapewnić zbieżność stanu rzeczywistego do stanu nominalnego. Wielkość separacji wymaganej od ograniczeń stanu jest określona przez zbiór odpornych dodatnio niezmienniczych (RPI), który jest zbiorem wszystkich możliwych odchyleń stanu, które mogą być wprowadzone przez zakłócenie ze sterownikiem ze sprzężeniem zwrotnym.
  • Wielostopniowa RPP . Wykorzystuje to sformułowanie w postaci drzewa scenariuszy przez przybliżenie przestrzeni niepewności za pomocą zestawu próbek, a podejście jest niekonserwatywne, ponieważ uwzględnia, że ​​informacje pomiarowe są dostępne na każdym etapie predykcji, a decyzje na każdym etapie mogą być różne i mogą działać jako środek odwoławczy w celu przeciwdziałania skutkom niepewności. Wadą tego podejścia jest jednak to, że rozmiar problemu rośnie wykładniczo wraz z liczbą niepewności i horyzontem predykcji.
  • Wielostopniowy MPC z lampami . To podejście łączy wielostopniowy MPC i MPC lampowy. Zapewnia wysoki stopień swobody w wyborze pożądanego kompromisu między optymalnością a prostotą poprzez klasyfikację niepewności i wybór praw sterowania w prognozach.

Dostępne na rynku oprogramowanie MPC

Dostępne są komercyjne pakiety MPC, które zazwyczaj zawierają narzędzia do identyfikacji i analizy modeli , projektowania i dostrajania sterowników, a także oceny wydajności sterowników.

Badanie dostępnych na rynku pakietów zostało przeprowadzone przez SJ Qin i TA Badgwell w Control Engineering Practice 11 (2003) 733-764.

Przykłady kodu open source

Bibliotekę Pythona z różnymi implementacjami można znaleźć tutaj:

https://github.com/AtsushiSakai/PyAdvancedControl

def main():
    # Define x0 -a [1x4] array and then transpose it to be a [4x1]
    x0 = np.array([[0.0, 0.0, 0.0, 0.0]]).T  # [x,y,v theta]
    # Print x0. It's our initial state- [xPos, yPos, Velocity and Angle in radians w.r.t +yPos]
    # Customise this as an input to see how different initial trajectories converge to the optimised path
    #
    print(x0)
    x = x0

    # Define Input - [2x1] array
    # x0 - [accelerator, steering_wheel_rate]
    u = np.array([[0.0, 0.0]]).T  # [a,beta]
    plt.figure(num=None, figsize=(12, 12))

    mincost = 100000

    for i in range(1000):
        A, B, C = LinealizeCarModel(x, u, dt, lr)
        ustar, xstar, cost = CalcInput(A, B, C, x, u)

        u[0, 0] = GetListFromMatrix(ustar.value[0, :])[0]
        u[1, 0] = float(ustar[1, 0].value)

        x = A @ x + B @ u

        plt.subplot(3, 1, 1)
        plt.plot(target[0], target[1], "xb")
        plt.plot(x[0], x[1], ".r")
        plt.plot(GetListFromMatrix(xstar.value[0, :]), GetListFromMatrix(
            xstar.value[1, :]), "-b")
        plt.axis("equal")
        plt.xlabel("x[m]")
        plt.ylabel("y[m]")
        plt.grid(True)

        plt.subplot(3, 1, 2)
        plt.cla()
        plt.plot(GetListFromMatrix(xstar.value[2, :]), "-b")
        plt.plot(GetListFromMatrix(xstar.value[3, :]), "-r")
        plt.ylim([-1.0, 1.0])
        plt.ylabel("velocity[m/s]")
        plt.xlabel("horizon")
        plt.grid(True)

        plt.subplot(3, 1, 3)
        plt.cla()
        plt.plot(GetListFromMatrix(ustar.value[0, :]), "-r", label="a")
        plt.plot(GetListFromMatrix(ustar.value[1, :]), "-b", label="b")
        plt.ylim([-0.5, 0.5])
        plt.legend()
        plt.grid(True)

        #  plt.pause(0.0001)

        #  raw_input()

        # check goal
        dis = np.linalg.norm([x[0] - target[0], x[1] - target[1]])
        if dis < 0.1:
            print("Goal")
            break

RPP vs. LQR

Modelowe sterowanie predykcyjne i liniowe regulatory kwadratowe są wyrazem optymalnego sterowania, z różnymi schematami ustalania kosztów optymalizacji.

Podczas gdy Model Predictive Controller często patrzy na stałą długość, często stopniowo ważone zestawy funkcji błędu, liniowy regulator kwadratowy analizuje wszystkie liniowe wejścia systemu i zapewnia funkcję transferu, która zmniejszy całkowity błąd w całym spektrum częstotliwości, odrzucając błąd stanu względem częstotliwość wejściowa.

Ze względu na te fundamentalne różnice, LQR ma lepsze właściwości stabilności globalnej, ale MPC często ma bardziej lokalnie optymalną[?] i złożoną wydajność.

Główne różnice między MPC i LQR polegają na tym, że LQR optymalizuje się w całym oknie czasowym (horyzoncie), podczas gdy MPC optymalizuje się w oddalającym się oknie czasowym, oraz że w przypadku MPC nowe rozwiązanie jest obliczane często, podczas gdy LQR używa tego samego pojedynczego (optymalnego) rozwiązania dla cały horyzont czasowy. Dlatego MPC zazwyczaj rozwiązuje problem optymalizacji w mniejszym oknie czasowym niż cały horyzont, a zatem może uzyskać rozwiązanie nieoptymalne. Jednak ponieważ MPC nie przyjmuje żadnych założeń dotyczących liniowości, może poradzić sobie z twardymi ograniczeniami, a także migracją systemu nieliniowego z jego zlinearyzowanego punktu pracy, które są głównymi wadami LQR.

Oznacza to, że LQR może stać się słaby podczas pracy z dala od stabilnych punktów stałych. RPP może wytyczyć ścieżkę między tymi stałymi punktami, ale zbieżność rozwiązania nie jest gwarantowana, zwłaszcza jeśli zaniedbano myśl o wypukłości i złożoności przestrzeni problemu.

Zobacz też

Bibliografia

Dalsza lektura

  • Kwon, WH; Bruckstein, Kailath (1983). „Stabilizacja projektowania sprzężenia zwrotnego stanu za pomocą metody ruchomego horyzontu”. Międzynarodowy Dziennik Kontroli . 37 (3): 631–643. doi : 10.1080/00207178308932998 .
  • Garcia, C; Prett, Morari (1989). „Modelowa kontrola predykcyjna: teoria i praktyka”. Automatyczne . 25 (3): 335–348. doi : 10.1016/0005-1098(89)90002-2 .
  • Findeisena, Rolfa; Allgower, Frank (2001). „Wprowadzenie do nieliniowego sterowania predykcyjnego modelu”. Szkoła letnia na temat „Wpływu optymalizacji w sterowaniu”, Holenderski Instytut Systemów i Sterowania. CW Scherer i JM Schumacher, redaktorzy. : 3,1–3,45.
  • Mayne, DQ; Michalska, H. (1990). „Oddalająca się kontrola horyzontu systemów nieliniowych”. Transakcje IEEE dotyczące automatycznej kontroli . 35 (7): 814-824. doi : 10.1109/9.57020 .
  • Mayne, D; Rawlingi; Rao; Scokaerta (2000). „Kontrola predykcyjna modelu z ograniczeniami: stabilność i optymalność”. Automatyczne . 36 (6): 789–814. doi : 10.1016/S0005-1098(99)00214-9 .
  • Allgöwer; Zheng (2000). Sterowanie predykcyjne modelu nieliniowego . Postęp w teorii systemów. 26 . Birkhauser.
  • Camacho; Bordony (2004). Modelowa kontrola predykcyjna . Springer Verlag.
  • Findeisena; Allgöwer, Biegler (2006). Ocena i przyszłe kierunki sterowania predykcyjnego modeli nieliniowych . Notatki z wykładów z nauk o sterowaniu i informatyce. 26 . Skoczek.
  • Diehl, M; Koźlak; Schlödera; Findeisena; Nagy; Allgöwer (2002). „Optymalizacja w czasie rzeczywistym i nieliniowa kontrola predykcyjna modeli procesów regulowanych równaniami różniczkowo-algebraicznymi”. Dziennik Kontroli Procesu . 12 (4): 577–585. doi : 10.1016/S0959-1524(01)00023-3 .
  • James B. Rawlings, David Q. Mayne i Moritz M. Diehl: „Model Predictive Control: Theory, Computation and Design” (wyd. 2.), Nob Hill Publishing, LLC, ISBN  978-0975937730 (październik 2017).
  • Tobias Geyer: Modelowa kontrola predykcyjna konwerterów dużej mocy i napędów przemysłowych, Wiley, Londyn, ISBN  978-1-119-01090-6 , listopad 2016

Zewnętrzne linki