Cyfrowe algorytmy sterowania AR S1 semestr 4 Projekt 4 MPC Sterowanie predykcyjne Cel: Poznanie podstaw regulacji predykcyjnej i narzędzi do badań symulacyjnych Wykonali: Konrad Słodowicz Patryk Frankowski 1. Co to jest sterowanie predykcyjne? Sterowanie predykcyjne (ang. MPC Model Predictive Control), jak wskazuje nazwa, opiera się na predykcji zachowania obiektu. Kiedy na wejściu pojawi się pewne wymuszenie, regulator sprawdza różne możliwe sygnały sterowania i na podstawie pewnego znanego modelu obiektu sprawdza, który z nich da najlepsze, względem pewnego wskaźnika jakości, wyjście. Ponieważ model nie jest idealny, predykcja powtarzana jest co takt, biorąc pod uwagę nowe dane odpowiedź obiektu na ów takt sterowania. Na obiekt podawany jest tylko pierwszy takt z wyznaczonego sygnału sterowania (jest on, bowiem, dyskretny). Innymi słowy, jeśli w chwili k wyznaczony został pewien sygnał sterowania, to do obiektu wejdzie jedynie pierwszy krok, gdyż w chwili k+1 regulator wyznaczy nowy sygnał sterowania itd. Regulator nie ma niekończonej pamięci, może on przewidzieć sygnał wyjścia tylko dla skończonej liczby taktów. Jest to tzw. horyzont predykcji. Sterowanie, natomiast, szukane jest dla krótszej ilości kolejnych taktów tzw. horyzontu sterowania. W teorii, oczywiście, chcielibyśmy, aby zarówno horyzont predykcji jak i sterowania były jak najdłuższe. W praktyce, jednak, ich długość, a zwłaszcza horyzontu sterowania, ma duży wpływ na wydajność regulatora. Informacje o obiekcie mogą być podane regulatorowi w wielu postaciach. W ogólności, model obiektu może być podany w dowolnej formie, przez transmitancję, równania, 1
macierze stanu, serię próbek itp. Poza samym modelem, jednak, regulator musi znać wszelkie ograniczenia sygnałów najlepsze, w teorii, sterowanie jest najczęściej niemożliwe do odtworzenia przez zespoły wykonawcze. Regulator musi również pamiętać historię zachowania obiektu. 2. Matlab MPC Toolbox Program Matlab umożliwia stworzenie kontrolera predykcyjnego. Zadanie to ułatwia MPC Toolbox, dodający wiele funkcji pozwalających na prostą implementację regulatora predykcyjnego. Dodaje on także bloczek owego regulatora do środowiska Simulink. Spróbujemy opisać podstawowe funkcje potrzebne do stworzenia z jego pomocą własnego regulatora predykcyjnego. a) Model obiektu Jak wspomniano wcześniej, regulator predykcyjny musi znać model obiektu. MPC Toolbox pozwala na wprowadzenie go wielu różnych formach, jednak istnieje pewne ograniczenie muszą być to modele liniowe. Po pierwsze, współpracuje on z typowymi metodami wprowadzania modeli liniowych można więc zdefiniować je przez transmitancje (funkcja tf(), zpk() itp.), macierze stanu (funcka ss() itp.) lub wszelkie inne funkcja pozwalające na stworzenie modeli liniowych w Matlabie. Możliwe jest też zaimportowanie modelu stworzonego przy pomocy typowych bloków w środowisku Simulink, toolbox potrafi zlinearyzować ów model jeśli jest on nieliniowy. Po drugie, model może być linearyzacją obiektu nieliniowego wokół punktu pracy. Można tego dokonać pisząc odpowiedni skrypt lub używając przybornika analizy liniowej dostępnego osobno. Po trzecie, Matlab potrafi zidentyfikować obiekt liniowy na podstawie punktów pomiarowych. Może do tego posłużyć System Identification Toolbox, dodający wiele funkcji znacznie ułatwiających identyfikację. Model zaimportować można bezpośrednio z workspace, ułatwia to prosty dialog: 2
b) Zakłócenia Regulator bierze pod uwagę zakłócenia mierzalne oraz niemierzalne, wejściowe i wyjściowe. Zakłócenia mierzalne są jednym z dodatkowych, nieobowiązkowych wejść regulatora. Można zamodelować je jako pewien sygnał. Zakłócenia niemierzalne, natomiast, modelowane są jako wyjście pewnego obiektu, na którego wejście zadany został szum biały o zerowej wartości średniej. Model owego obiektu można zdefiniować przez transmitancję (tf(), zpk()) lub macierze stanu (ss()). MPC Toolbox pozwala na symulację działania regulatora zanim jego tworzenie zostanie sfinalizowane. Można tu łatwo dodać niemierzalne zakłócenia wejść i wyjść jako jeden z typowych sygnałów aby sprawdzić jak regulator radzi sobie z nimi. c) Dobór parametrów Kiedy włączamy okno tworzenia regulatora pojawia się dialog, który wymusza podanie informacji o ilości mierzonych wyjść, sterowań oraz czasie próbkowania. Poza nimi, podstawowe parametry warte uwagi to horyzonty predykcji oraz sterowania. Czas próbkowania jest dość oczywistym parametrem. Trzeba jednak pamiętać, że regulator predykcyjny musi wykonać wiele skomplikowanych operacji co takt. Oznacza to, że dobierając czas próbkowania trzeba też wziąć pod uwagę stopień skomplikowania sterowanego układu i potencjalny czas trwania obliczeń. Dla procesów najczęściej wystarcza czas powyżej sekundy. Podobnie sprawa ma się z horyzontem predykcji. Im jest on dłuższy, tym więcej obliczeń musi być wykonanych. Najczęstszym podejściem jest zwiększanie horyzontu tak długo, jak nie ma to dużego wpływu na wydajność regulatora. Przy większości procesów powinien wystarczyć horyzont mniejszy od 50 taktów. Horyzont sterowania ma największy wpływ na czas trwania obliczeń, bowiem od jego długości zależy ilość potencjalnych rozwiązań zadania optymalizacji. Powinno się, więc, utrzymywać jego długość znacznie mniejszą od długości horyzontu predykcji. Te trzy wielkości są pierwszymi jakie zobaczymy wchodząc w kartę regulatora w oknie MPC Toolbox: 3
d) Ograniczenia wejść (sterowań) i wyjść Ograniczenia, jak wcześniej wspomniano, muszą zostać zdefiniowane aby regulator wiedział w jakim przedziale mogą znajdować się wyliczane przez niego sterowania. W MPC Toolbox mogą być podawane jako ograniczenia twarde (mocne) bezwzględnie nieprzekraczalne lub miękkie (słabe) które zostaną przekroczone, jeśli nie będzie innej możliwości. Możliwe jest też zastosowanie ograniczeń przyrostu wartości. Instrukcja mówi jednak, iż użycie obu ograniczeń (wartości i przyrostu) może spowodować konflikt, więc jeśli oba są wymagane, należy ustawić jedno z ograniczeń jako miękkie. Jak inne, okno wprowadzania ograniczeń jest proste i intuicyjne w obsłudze: Innymi parametrami wartymi uwagi są współczynniki wagowe, opisane w dalszej części. e) Rozwiązanie zadania sterowania Wyznaczenie sterowania sprowadza się do rozwiązania problemu optymalizacji co krok. Problem optymalizacji to program kwadratowy (QP), który uwzględnia zadane ograniczenia sygnałów. Funkcja jakości kosztu jest minimalizowana. Standardowa funkcja kosztu to w suma czterech elementów, zależnych kolejno od wartości wyjść, wartości wejść (sterowań), przyrostu wejść (sterowań) oraz przekroczenia 4
nałożonych ograniczeń. Owe elementy to w ogólności sumy kwadratów błędów (lub w przypadku przyrostów kwadratów przyrostów) wymnożone przez pewne współczynniki wagowe. W przypadku braku ograniczeń ostatni człon sumy znika. Współczynniki wagowe są kolejnymi parametrami, które mogą być dobrane przez użytkownika. Jak łatwo się domyślić ich wartości powinny wskazywać na czym najbardziej zależy nam w sterowaniu szybkim dojściu do wartości czy niskim przeregulowaniom. MPC Toolbox umożliwia też ustawienie wagi ogólnej, od której zależy szybkość reakcji układu oraz jego dokładność. Przeprowadziliśmy kilka symulacji na obiekcie używanym we wcześniejszych ćwiczeniach. Ogólna waga = 1, waga wyjścia = 1, waga wejścia = 0.2, waga przyrostu wejścia = 0.2, brak ograniczeń: Ogólna waga = 0.5, waga wyjścia = 1, waga wejścia = 0.2, waga przyrostu wejścia = 0.2, brak ograniczeń: 5
Jak widać, czas ustalania jest dłuższy, nie występuje jednak przeregulowanie. W obu przypadkach istnieje jednak błąd w stanie ustalonym. Ogólna waga = 1, waga wyjścia = 1, waga wejścia = 0.2, waga przyrostu wejścia = 0.2, ograniczenie wejścia do 0.9: Widać, że dodanie ograniczenia wejścia sprawiło, że sygnał łagodniej dochodzi do stanu ustalonego. Sygnały sterowania nie mogą wymuszać aż tak szybkiej odpowiedzi jak w przypadku bez ograniczeń. 6
MPC Toolbox daje wiele innych możliwości bardzo dogłębnej ingerencji w tworzony regulator. Matlab umożliwia także wyeksportowanie przygotowanego regulatora do rzeczywistej implementacji, choćby w postaci kodu w języku C. W praktyce, znając zasady działania regulatora MPC oraz używane metody matematyczne można takowy regulator zaimplementować w dowolnym środowisku. Literatura: Materiały z wykładów A. Bemporad, M. morari. N. L. Ricker Model Predictive Control Toolbox User's Guide 7