Podstawy optymalizacji

Pomimo tego, że często nie jest traktowana poważnie, optymalizacja jest silnie oparta na matematycznych podstawach.
Optymalizacja jest „sztuką” znajdowania największej wartości, niezależnie od tego, czy będzie to „wytargowanie” najlepszej ceny kupowanych butów, czy sterowanie działaniem kruszarki szczękowej tak, aby jej wydajność była maksymalna.
Dość często możliwe jest proste określenie związków pomiędzy wybieranymi strategiami sterowania (których liczba jest ograniczona) i koszt wynikowy jest łatwy do wyznaczenia. Niekiedy jednak problem optymalizacji może pociągać za sobą setki zmiennych, wymagających wyszukanych mechanizmów analizy matematycznej.
Jednakże pewne główne kroki procedury są wspólne dla rozwiązywania wszelakich problemów optymalizacyjnych:

    • określenie minimalizowanego kosztu lub maksymalizowanego zysku,
    • określenie zmiennych zależnych i niezależnych najbardziej wpływających na koszt,
    • poszukiwanie rozwiązania lub optymalnych parametrów dających w rezultacie najniższy koszt bądź największy zysk.

Optymalizacja sygnału telewizyjnego
Przykładowo: wyobraźmy sobie, że siła sygnału telewizji satelitarnej spada ekspotencjalnie, gdy talerz odbiorczy obraca się, wychodząc z linii zasięgu satelity. Funkcja celu (koszt) dla tego problemu optymalizacyjnego zaprezentowana jest w przykładzie „Kwadratowa funkcja celu jednej zmiennej” przy założeniu, że jedynie kąt wznoszenia talerza anteny podlega regulacji.
W tak nieprawdopodobnym przypadku, jakim jest założenie o idealnej znajomości pozycji satelity, problem ten można bardzo prosto rozwiązać, obracając talerz w kierunku satelity, redukując przy tym koszt (wartość funkcji celu) do zera. Jednakże metoda prób i błędów jest znacznie bardziej popularną techniką dla bardziej złożonych problemów optymalizacyjnych, zwykle dlatego że funkcja celu nie jest znana dokładnie lub też dlatego, że parametry optymalizowane trudno jest określić w sposób analityczny.
Techniki „prób i błędów” funkcjonują tak długo, jak zestaw możliwych rozwiązań może zostać odgadnięty, a wartość funkcji celu (koszt), wynikająca z tego zestawu parametrów może zostać porównana dla każdego rozwiązania. W przypadku talerzy anten satelitarnych każde przypuszczalne rozwiązanie kierujące talerz na niebo może być rozwiązaniem dopuszczalnym. Wartość funkcji celu każdego z tych rozwiązań może zostać zmierzona z użyciem miernika zwiększającego emitowany hałas przy wzroście siły sygnału.
Metoda „prób i błędów” jest znacznie bardziej efektywna, jeżeli skutki wcześniejszego zgadywania mogą zostać wykorzystane do poprawy kolejnych estymat. Dla przytoczonego problemu stawiania talerza anteny satelitarnej mogłoby to pociągać za sobą ustawianie talerza anteny tak, aby wzrastała względna głośność sygnału w stosunku do poprzednio pomierzonej. Jest to z pewnością lepsze od losowego ustawiania położenia talerza anteny, licząc na to, że sygnał będzie silniejszy. Matematycznie procedura taka nawiązuje do metod gradientowych – w skrócie: przesuwania najlepszego odgadnięcia po funkcji celu w kierunku osiągnięcia parametru, dającego w rezultacie najmniejszy koszt (optimum).
Problemy
Z drugiej strony sprawdzanie setek losowo wybranych parametrów w celu znalezienia tego jednego optymalnego rozwiązania (o najniższym koszcie) może być użyteczne pod warunkiem jednak, że rejestrujemy zmiany wartości kosztu w funkcji zmian poszukiwanych parametrów. Daje to nam w rezultacie wykres zmian funkcji celu, zależnie od parametrów tejże funkcji. Wtedy parametry optymalne mogą być odczytane wprost z takiego wykresu.
Jeżeli funkcja celu ma więcej niż jedno minimum lokalne, szczególnie użyteczne może być zastosowanie metody Monte Carlo. Występowanie minimów lokalnych oznacza, że wiele punktów na przebiegu funkcji celu ma wartości niższe niż rozwiązania sąsiadujące – jednakże nie są to rozwiązania globalnie najlepsze (najmniejszy koszt). Patrz rysunek „Minima lokalne”. Podobnie jak w przypadku metod gradientowych systematyczne techniki „prób i błędów” prowadzą do osiągnięcia jednego z minimów lokalnych, nie poszukując lepszych rozwiązań w innych miejscach.
Ograniczenia mogą znacznie skomplikować rozwiązywany problem optymalizacyjny. Warunki te wykluczają poszczególne rozwiązania, nawet jeżeli rozwiązanie daje w rezultacie najniższy koszt całkowity. Przykładowo, źle umiejscowiony talerz anteny satelitarnej może napotkać na fizyczne ograniczenia, uniemożliwiające w rezultacie nakierowanie się dokładnie na satelitę o najsilniejszym sygnale. Patrz rysunek „Ograniczenia”.
Optymalizacja dla wielu zmiennych
Problemy optymalizacyjne stają się trudniejsze, gdy osiągnięcie minimalnego kosztu lub maksymalnego zysku może nastąpić dzięki manipulowaniu więcej niż jednym parametrem. Rozważmy przykład talerza anteny satelitarnej, w którym ustalany jest azymut oraz kąt podniesienia. Patrz rysunek „Kwadratowa funkcja celu dwóch zmiennych”.
Problem ten może być łatwo rozwiązany poprzez optymalizację każdego z parametrów osobno – ustalenie kąta podniesienia na wybraną wartość, a następnie obracanie talerzem aż do wartości optymalnego azymutu; następnie zmianie podlegałby kąt podniesienia przy stałym azymucie. Tego typu optymalizacja jest możliwa, ponieważ każdy parametr przyczynia się do zmiany wartości funkcji celu niezależnie oraz ma ograniczenia niezależne od drugiej optymalizowanej zmiennej.
Niestety, większość problemów optymalizacyjnych wielu zmiennych wprowadzają ograniczenia będące funkcjami jednego lub więcej parametrów, przykładowo – częściej możemy napotkać ograniczenie typu „suma natężenia przepływu A i natężenia przepływu B nie może przekroczyć 400 dm3/min”, aniżeli „natężenie przepływu A nie może przekroczyć 270 dm3/min” i jednocześnie „natężenie przepływu B nie może przekroczyć 130 dm3/min”. Modyfikacja jednego parametru powoduje zmiany ograniczeń innego – tak więc w tym przypadku nie może być mowy o indywidualnej optymalizacji każdego z parametrów.
Tego typu problemy zwykle wymagają stosowania techniki nazywanej programowaniem liniowym. Wykorzystuje się tutaj uproszczoną funkcję zysku (maksymalizacja wartości funkcji celu) zamiast funkcji kosztu, w celu redukcji liczby możliwych rozwiązań. Zobacz przykład „Programowanie liniowe dla dwu zmiennych”. Jedną z metod programowania liniowego jest tzw. metoda simplex – algorytm poszukujący optymalnego rozwiązania poprzez operowanie na całej grupie parametrów, zamiast na wybranych (pojedynczych).
Aplikacja układu regulacji
Wiele z technik optymalizacyjnych ma zastosowanie w układach regulacji ze sprzężeniem zwrotnym. W celu znalezienia optymalnego ygnału sterowania w rzeczywistości wszystkie regulatory wykorzystują swego rodzaju metody „prób i błędów”, minimalizujących różnicę (błąd) pomiędzy wartością zadaną a zmienną procesową (wyjściem procesu sterowanego). Przykładowo, miarą tego,jak dobrze regulator PID minimalizuje funkcję celu, wykorzystuje się aktualny błąd, sumę przeszłych błędów oraz różnicę pomiędzy dwiema ostatnimi wartościami błędu. Jeżeli błąd nie jest jeszcze równy zero, zostanie przeliczone kolejne rozwiązanie (w poszukiwaniu rozwiązania optymalnego) z użyciem jakiejś odmiany metody gradientowej.
Regulatory o minimalnej wariancji wykorzystują kwadratową funkcję celu, całkując w czasie wartość błędu podniesioną do kwadratu. Zwykle wykorzystują model procesu w celu odgadnięcia, jaki przyszły sygnał sterujący konieczny będzie w celu minimalizacji wartości kosztu (założonej funkcji celu). Regulatory o minimalnej wariancji można projektować również tak, aby funkcja celu uwzględniała nadmierną wariancję sygnału sterującego, analogicznie do odchyłki regulacji.
Strojenie regulatora PID można potraktować jako problem optymalizacji wielu zmiennych za pomocą trzech parametrów:

    • wzmocnienia proporcjonalnego P,
    • wzmocnienia całkowania I (stałą czasową całkowania Ti),
    • wzmocnienia różniczkowania D (stałą czasową różniczkowania Td).

Procedury ręcznego strojenia zmieniają każdy z parametrów osobno – w celu maksymalizacji jakości pętli zamkniętej układu regulacji pod względem: czasu narastania, czasu ustalania, przeregulowania oraz innych. Niestety, ponieważ funkcja zysku zwykle daleka jest od liniowości, nie daje się stosować techniki programowania liniowego do jednoczesnego strojenia parametrów regulatora PID.
Programowanie liniowe często ma zastosowanie wszędzie tam, gdzie konieczny jest wybór wartości zadanej w sytuacji, gdy wiele regulatorów próbuje osiągnąć konkurencyjne wymagania – jednocześnie.
Techniki programowania liniowego pomagają wtedy maksymalizować ogólny zysk w przypadku procesów wielowymiarowych, doprowadzając przykładowo do sytuacji, w której każdy regulator z osobna doprowadza regulowaną przez siebie zmienną do wartości zadanej [przyp. red.: czasami może to wymagać stosowania dodatkowo odsprzęgania dynamicznego].
Dodatkowo, jeżeli wszystkie zakresy wartości sygnałów w pętlach są znane, ograniczenia mogą zostać umiejscowione tak, aby zagwarantować przypisywanie poszczególnym regulatorom jedynie osiągalnych wartości zadanych.
ce
Krzysztofa Pietrusewiczaz Instytutu Automatyki PrzemysłowejPolitechniki Szczecińskiej