Informacje zamieszczone w poniższym dokumencie mogą być wykorzystywane w celach niekomercyjnych pod dwoma warunkami:
W dokumencie krótko scharakteryzowano zasadę regulacji predykcyjnej, przedstawiono wybrane efektywne obliczeniowo algorytmy z cykliczną linearyzacją (suboptymalne), omówiono kwestie wyboru modelu mającego służyć do predykcji, przedstawiono różne struktury modeli neuronowych, algorytmy regulacji predykcyjnej z aproksymacją neuronową, a także zagadnienia współpracy algorytmów regulacji predykcyjnej i optymalizacji punktu pracy. Podano również trzy przykłady ilustrujące skuteczność modeli neuronowych oraz bazujących na nich efektywnych obliczeniowo algorytmów regulacji predykcyjnej i optymalizacji punktu pracy.
Dobry algorytm regulacji powinien:
Wiele procesów przemysłowych (np. reaktory chemiczne, kolumny destylacyjne) charakteryzuje się:
Stosowany bardzo często regulator PID (proporcjonalno-całkująco-różniczkujący, ang. Proportional-Integral-Derivative) jest algorytmem liniowym, w którym aktualny sygnał sterujący jest liniową funkcją: aktualnego uchybu regulacji (człon proporcjonalny), uchybów regulacji z przeszłości (człon całkujący) oraz szybkości zmiany uchybu (człon różniczkujący). Algorytm PID działa bardzo dobrze, ale tylko wówczas, gdy właściwości procesu są liniowe (w przybliżeniu), natomiast opóźnienie nie jest duże. Jest on zazwyczaj stosowany do procesów jednowymiarowych (o jednym wejściu i jednym wyjściu), ograniczenia sygnałów nie są zazwyczaj uwzględniane. W przypadku procesów wielowymiarowych, nieliniowych i z opóźnieniami, algorytm PID zwykle nie zapewnia pożądanej jakości regulacji.
Algorytmy regulacji predykcyjnej (ang. Model Predictive Control, w skrócie MPC) działają zupełnie inaczej niż algorytm PID [CB99, M02, RM09, R03, T07, T02]. W każdej z kolejnych iteracji \(k\) algorytmu (dyskretnych chwilach próbkowania, \(k=1,2,3,\ldots\)) zostaje wyznaczony wektor przyszłych wartości sygnału sterującego \begin{equation} \boldsymbol{u}(k)=\left[ \begin{array}{c} u(k|k)\\ \vdots\\ u(k+N_{\mathrm{u}}-1|k) \end{array} \right] %\label{w_Uk} \nonumber \end{equation} gdzie symbolem \(u(k+p|k)\) oznaczono sygnał sterujący dla chwili \(k+p\) obliczony w aktualnej iteracji \(k\) algorytmu, natomiast \(N_{\mathrm{u}}\) jest horyzontem sterowania, lub też odpowiadający mu wektor przyrostów sygnału sterującego \begin{equation} \triangle\boldsymbol{u}(k)=\left[ \begin{array}{c} \triangle u(k|k)\\ \vdots\\ \triangle u(k+N_{\mathrm{u}}-1|k) \end{array} \right] %\label{w_dUk} \nonumber \end{equation} Wektor zmiennych decyzyjnych \(\boldsymbol{u}(k)\) lub \(\triangle\boldsymbol{u}(k)\) obliczany jest w wyniku minimalizacji pewnej funkcji celu (funkcji kryterialnej). Składa się ona zazwyczaj z dwóch członów. Pierwszy z nich, zdefiniowany na horyzoncie predykcji \(N\), uwzględnia różnice między przewidywaną (prognozowaną) trajektorią sygnału wyjściowego a trajektorią zadaną (są to przewidywane uchyby regulacji). Drugi składnik funkcji celu (człon kary) ma za zadanie ograniczać duże zmiany sygnału sterującego. Najczęściej stosuje się funkcję kwadratową postaci \begin{equation} J(k)=\sum_{p=1}^{N} \left ( y^{\mathrm{zad}}(k+p|k)-\hat{y}(k+p|k) \right )^{2}+\lambda \sum _{p=0}^{N_{\mathrm{u}}-1} \left ( \triangle u(k+p|k) \right )^2\nonumber\\ \end{equation} gdzie współczynnik \(\lambda>0\) decyduje o szybkości algorytmu (jego zwiększanie prowadzi do ograniczenia przyrostów sygnału sterującego i spowolnienia algorytmu). Znana w chwili \(k\) wartość zadana sygnału wyjściowego dla chwili \(k+p\) oznaczona jest symbolem \(y^{\mathrm{zad}}(k+p|k)\), przewidywany sygnał wyjścia dla chwili \(k+p\) obliczony w aktualnej iteracji algorytmu oznaczony jest symbolem \(\hat{y}(k+p|k)\). Sygnały przewidywane (predykcje) obliczane są przy wykorzystaniu dynamicznego modelu procesu. Przyjmuje się, że poza horyzontem sterowania sygnał sterujący jest stały, a więc \(u(k+p|k)=u(k+N_{\mathrm{u}}-1|k)\) dla \(p=N_{\mathrm{u}},\ldots,N\) (czyli wszystkie przyrosty \(\triangle u(k+N_{\mathrm{u}}|k),\ldots, \triangle u(k+N|k)\) są zerowe).
Do sterowania procesu w aktualnej iteracji \(k\) wykorzystuje się tylko pierwszy element wyznaczonego ciągu, a więc aktualny sygnał sterujący procesu ma wartość \begin{equation} u(k)=u(k|k) \ \mathrm{lub} \ u(k)=\triangle u(k|k)+u(k-1)\nonumber\\ \end{equation} W kolejnej iteracji algorytmu (\(k+1\)) następuje aktualizacja pomiarów (sygnał wyjściowy procesu może być zmierzony), horyzont zostaje przesunięty jeden krok do przodu i cała procedura obliczeniowa zostaje powtórzona. Na rys. 1 przedstawiono ogólną strukturę algorytmu regulacji predykcyjnej.
Dzięki zastosowaniu do predykcji modelu procesu oraz procedury optymalizacji funkcji kryterialnej algorytm jest w stanie tak dobrać przyszłą sekwencję sterującą, aby zapewnić jak najlepszą regulację. Ponieważ uwzględnia się przewidywane uchyby regulacji na pewnym horyzoncie \(N\), możliwa jest skuteczna regulacja procesów, które sprawiają trudności innym algorytmom, a więc procesów z dużym opóźnieniem i z tzw. odwrotną odpowiedzią.
Zasada regulacji predykcyjnej jest bardzo ogólna, nie ma żadnych ograniczeń dotyczących modelu procesu. Algorytm można więc zastosować nie tylko do regulacji procesów jednowymiarowych, ale również procesów wielowymiarowych, o wielu zmiennych wejściowych i wielu zmiennych wyjściowych. Ponieważ algorytm wykorzystuje do predykcji dynamiczny model procesu, wszystkie istniejące sprzężenia skrośne są uwzględnione. Liczba zmiennych wejściowych (zmiennych manipulowanych) oznaczona jest przez \(n_{\mathrm{u}}\), liczba zmiennych wyjściowych (zmiennych regulowanych) oznaczona jest przez \(n_{\mathrm{y}}\), czyli \(u=\left [u_1,\ldots,u_{n_{\mathrm{u}}} \right ]^{\mathrm{T}}\), \(y=\left [y_1,\ldots,y_{n_{\mathrm{y}}} \right ]^{\mathrm{T}}\). Minimalizowana funkcja kryterialna ma wówczas postać \begin{align} J(k)&=\sum_{p=1}^{N} \sum_{m=1}^{n_{\mathrm{y}}} \mu_{p,m} \left ( y_m^{\mathrm{zad}}(k+p|k)-\hat{y}_m(k+p|k) \right )^{2}\nonumber\\ & \quad +\sum _{p=0}^{N_{\mathrm{u}}-1} \sum_{n=1}^{n_{\mathrm{u}}} \lambda_{p,n} \left ( \triangle u_n(k+p|k) \right )^2\nonumber\\ &= \sum_{p=1}^{N} \left\| y^{\mathrm{zad}}(k+p|k)-\hat{y}(k+p|k) \right \|^{2}_{\boldsymbol{M}_p}+\sum _{p=0}^{N_{\mathrm{u}}-1} \left\| \triangle u(k+p|k)\right\|^{2}_{\boldsymbol{\Lambda}_p}\nonumber \end{align} Współczynniki wagowe \(\mu_{p,m}\geq0\) i \(\lambda_{p,n}>0\) oraz horyzonty \(N\) i \(N_{\mathrm{u}}\) są parametrami dostrajalnymi algorytmu.
Wielką zaletą algorytmów regulacji predykcyjnej jest możliwość uwzględnienia dodatkowych ograniczeń sygnałów. Zgodnie z zasadą regulacji predykcyjnej, wektor zmiennych decyzyjnych oblicza się w wyniku optymalizacji funkcji kryterialnej \(J(k)\), do predykcji stosowany jest model procesu, natomiast ograniczenia są po prostu częścią zadania optymalizacji algorytmu, który rozwiązywany jest w każdej iteracji algorytmu. Ma on zwykle postać \begin{align} &\min\limits_{\boldsymbol{u}(k) \ \mathrm{lub} \ \triangle\boldsymbol{u}(k)} \Bigg \{ J(k)={\displaystyle\sum_{p=1}^{N}} \left\| y^{\mathrm{zad}}(k+p|k)-\hat{y}(k+p|k) \right \|^{2}_{\boldsymbol{M}_p}\nonumber\\ &\qquad \qquad \qquad \qquad \quad \ \ +{\displaystyle\sum _{p=0}^{N_{\mathrm{u}}-1}} \left\| \triangle u(k+p|k)\right\|^{2}_{\boldsymbol{\Lambda}_p}\Bigg \}\nonumber\\ &\text{przy ograniczeniach}\nonumber\\ &u^{\min} \leq u(k+p|k)\leq u^{\max},\ p=0,\ldots,N_{\mathrm{u}}-1\nonumber\\ &-\triangle u^{\max} \leq\triangle u(k+p|k)\leq\triangle u^{\max},\ p=0,\ldots ,N_{\mathrm{u}}-1\nonumber\\ &y^{\min} \leq\hat{y}(k+p|k)\leq y^{\max},\ p=1,\ldots,N\nonumber \end{align} gdzie wektory \(u^{\min}\in \mathbb{R}^{n_{\mathrm{u}}}\) i \(u^{\max}\in \mathbb{R}^{n_{\mathrm{u}}}\) definiują ograniczenia wartości sygnałów sterujących, wektor \(\triangle u^{\max} \in \mathbb{R}^{n_{\mathrm{u}}}\) definiuje ograniczenia szybkości zmian sygnałów sterujących, natomiast wektory \(y^{\min} \in \mathbb{R}^{n_{\mathrm{y}}}\) i \(y^{\max} \in \mathbb{R}^{n_{\mathrm{y}}}\) definiują ograniczenia wartości sygnałów wyjściowych (ściślej, są to ograniczenia prognozowanych sygnałów wyjściowych). Liczba zmiennych decyzyjnych algorytmu wynosi \(n_{\mathrm{u}}N_{\mathrm{u}}\), liczba ograniczeń wynosi \(4n_{\mathrm{u}}N_{\mathrm{u}}+2n_{\mathrm{y}}N\). W powyższym zadaniu optymalizacji, w celu uproszczenia, zastosowano tzw. twarde ograniczenia prognozowanych sygnałów wyjściowych. Aby uniknąć problemów obliczeniowych, w praktyce jednak stosuje się tzw. miękkie ograniczenia, które mogą być czasowo naruszane.
Uważa się, że algorytmy regulacji predykcyjnej są jedyną zaawansowaną techniką regulacji (w porównaniu z klasycznymi algorytmami PID), która odniosła ogromny sukces praktyczny [QB03, T07, T02], wywierając tym samym istotny wpływ na kierunki prac badawczych. Stało się tak, ponieważ mają one kilka istotnych zalet:
Algorytmy regulacji predykcyjnej są obecnie powszechnie stosowane w wielu dziedzinach, przede wszystkim w przemyśle rafineryjnym, petrochemicznym, chemicznym, papierniczym, przetwórczym oraz spożywczym [QB03, T07, T02]. M. Morari i J. Lee stwierdzają: „Nie istnieje chyba na świecie rafineria, w której nowo budowane lub modernizowane instalacje nie są sterowane algorytmem DMC lub funkcjonalnie podobnym” [ML99]. Warto również wymienić inne, mniej typowe zastosowania algorytmów regulacji predykcyjnej [Ł14a]. Są one, między innymi, stosowane do regulacji:
Następna strona: 2. Efektywne obliczeniowo nieliniowe algorytmy regulacji predykcyjnej |