Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Projekt hierarchicznego systemu sterowania zaopatrywania w wodę ETAP I - III: MATERIAŁY POMOCNICZE Opracowanie: Tarnawski Jarosław, dr inż. Gdańsk, kwiecień 2016
Zapoznanie się z materiałami pomocniczymi w postaci modeli symulacyjnych W katalogu Moje Dokumenty utwórz katalog, który posłuży do przechowywania plików. Rozpakuj archiwum Rozdzielacz.zip do założonego katalogu. Uruchom Matlaba, ustaw jako Current Folder ścieżkę do utworzonego katalogu z wypakowanymi plikami. P-plik jest zaszyfrowaną wersją m-pliku. Działanie Rozdzielacza zostało celowo ukryte, aby zaaranżować często występującą na obiekcie sytuację black-box tj. braku informacji o sposobie działania urządzenia. Zadaniem Studentów jest rozpoznanie sposobu działania tego wirtualnego urządzenia. Ogromnym ułatwieniem sposobu działania urządzenia jest informacja, że jest to urządzenie statyczne i stacjonarne. Przygotuj się do odpowiedzi co to oznacza. Wywołanie p-pliku z Rozdzielaczem zostało zaprezentowane w modelu symulacyjnym rozdzielacz_test.mdl. Urządzenie to należy traktować jako zestaw zaworów, które w zależności od stanu wejścia sterującego Kąt rozdzielacza rozdzielają dopływającą wodę od strony pompy na strumień do zbiornika i do sieci. Możliwe jest również takie wysterowanie rozdzielacza, aby woda ze zbiornika transportowana była do sieci. Nie ma możliwości kierowania wody ze zbiornika z powrotem w kierunku pompy i źródła. Zadaniem Studenta jest określenie relacji kąta (sygnału sterującego pracą rozdzielacza) do przepływu do zbiornika i do sieci. Przygotowany model symulacyjny umożliwia łatwe ustalenie zależności. Jakie dwa elementy mają wpływ na wykorzystanie całego zakresu kąta tj. 0-180 stopni? Wejście Pompa informuje o dopływie wody od strony pompy. Na potrzeby identyfikacji rozdzielacza podłączono stałą 100, którą można interpretować jako maksymalny dopuszczalny przepływ od strony pompy. W opracowywanym modelu sieci wodociągowej do wejścia Pompa ma być podłączona informacja jaka jest wydajność pompy w danej godzinie symulacji zadana przez użytkownika. Wejście Zasoby zbiornika dostarcza informacji o tym ile jest wody w zbiorniku. Jeżeli wody w zbiorniku jest mniej niż przepływ wymuszony przez kąt sterujący Rozdzielacza to przepływ ten zostanie ograniczony do dostępnych zasobów. Na potrzeby identyfikacji rozdzielacza podłączono stałą 500, którą można interpretować jako niewyczerpalny zasobnik. W opracowywanym modelu sieci wodociągowej do wejścia Zasoby zbiornika ma być podłączona informacja o tym ile rzeczywiście jest wody w zbiorniku uwzględniając dopływy i odpływy.
Uwaga ten model symulacyjny jest opracowany wyłącznie na potrzeby identyfikacji elementu o nazwie Rozdzielacz. Ten model nie modelem sieci wodociągowej, który Studenci mają opracować samodzielnie z wykorzystaniem bloku Rozdzielacza, Pompy i modelu zbiornika. Modelowanie zbiornika Kolejnym uproszczeniem z punktu widzenia modelowania naszej sieci wodociągowej jest założenie, że napływ i odpływ jest zależny wyłącznie od kąta sterującego rozdzielacza i wynikających z niego wymuszenia dopływu/odpływu. Kształt zbiornika i charakter grawitacyjnego wypływu nie ma tu znaczenia i zastosowania. Zakłada się, że zbiornik na polecenie rozdzielacza może przyjmować przepływ 0-100 m 3 /h albo generować odpływ w kierunku sieci również z zakresu 0-100 m 3 /h. Zbiornik z rozdzielaczem podłączony jest jednym rurociągiem zatem w konkretnej chwili czasu możliwy jest przepływ wyłącznie w jednym kierunku. Znak sygnału z rozdzielacza do_zbiornika określa czy jest to dopływ czy odpływ. Sumując po czasie odpływy i napływy oraz uwzględniając stan początkowy otrzymamy informację o stanie zbiornika w dowolnym momencie. Do realizacji symulacyjnej zbiornika wygodnie będzie zatem skorzystać z bloku całkowania z ograniczeniem Integrator Limited. W polu Initial condition wprowadź zadaną w warunkach zadania wartość początkową zbiornika. W polach Upper saturation limit i Lower saturation limit wprowadź ograniczenia na objętość wody. Zastanów się czy ograniczenie od dołu ma być powiązane z wymaganiem Straży pożarnej czy ograniczeniami fizykalnymi. Co się stanie, gdy w naszym integratorze osiągniemy wartość maksymalną, a do bloku Integrator Limited będzie ciągle docierała woda? Jak można wykryć sytuację przelewania się wody przez zbiornik? Podłączenie elementów Po rozpoznaniu sposobu działania rozdzielacza oraz zamodelowania zbiornika konieczne będzie powiązanie tych elementów. Sygnał wyjściowy z rozdzielacza do_zbiornika zostanie podłączony do wejścia integratora, natomiast stan zbiornika, czyli wyjście integratora zostanie podłączone do trzeciego wejścia rozdzielacza o nazwie stan_zbiornika. Drugie wyjście rozdzielacza powinno być skierowane na Display oraz Scope gdzie powinno umożliwiać porównanie zapotrzebowania zadanego i realizowanego dopływu do sieci. Niezbędne będzie wprowadzenie przepływu od pompy (na tym etapie bez modelu dynamicznego) oraz wprowadzenie kąta rozdzielacza. Informacje sterujące dotyczące przebiegów czasowych
sterowań kątem rozdzielacza oraz pompy w postaci przebiegów czasowych przedstawiono w kolejnym punkcie. Wprowadzanie serii czasowych Wprowadzenie przebiegów czasowych może być zrealizowane w Simulinku na wiele sposobów. Zamiast uwielbianego przez Studentów bloku Signal Builder lub skryptów rekomendowane jest użycie dostępnego w sekcji Sources bloku Repeating Sequence Stair. Wprowadzanie sekwencji może być zrealizowane podając wartości bezpośrednio w polu Vector of output values albo wprowadzając nazwę zdefiniowanej wcześniej zmiennej globalnej Matlaba dostępnej w Workspace. Rekomendowane jest to drugie podejście a definicje wektorów sterowania pompą, kątem rozdzielacza i zapotrzebowania można przechowywać w m-pliku. Wprowadzenie sekwencji w postaci danych wprowadzanych bezpośrednio Wprowadzenie sekwencji w postaci danych wprowadzanych jako zmienna globalna Zapotrzebowanie Zapoznaj się z wpływem parametru Sample time na pracę bloku. Zwłaszcza przy pracy w czasie rzeczywistym i quasi rzeczywistym będzie to bardzo ważny element konfiguracyjny. Konstruowanie wskaźników jakości Jak ocenić jakość działania układu sterującego? Czy dobrane przeze mnie sterowanie jest lepsze od sterowania kolegi? Wg jakiego kryterium stroić regulator? Czy dopuszczalne jest przeregulowanie? A może wielkość regulowana ma możliwie szybko znaleźć się blisko wartości zadanej? A może mam jak najmniej wydać na realizację sterowania. Najbardziej znane wskaźniki jakości działania układów regulacji oparte o uchyb to: Całka uchybu Całka kwadratu uchybu (ISE) Całka iloczynu czasu i uchybu bezwzględnego (IAE) Integral of Squared Error bezwzględnego (ITAE) Integral of Absolute Error Integral of Time miltiply by Absolute Error Za wyjątkiem ITAE składniki zawierają tylko uchyb. ITAE składa się z uchybu i czasu. Inne wskaźniki jakości działania układów regulacji oparte o koszt związany ze sterowaniem to: Minimum energii Minimum paliwa
W kontekście naszego zadania powstaje pytanie jak ocenić jakość działania układu sterującego składającego się z dwóch składowych: uchybu i kosztów pompowania. Jak te dwie wielkości zintegrować w jednym składniku? Jaka będzie jednostka wspólnego wskaźnika? Spójrz na typowe dla regulacji predykcyjnej kryterium jakości sterowania i wykorzystaj je do celów projektu. Symulacja czasu rzeczywistego Z wykorzystaniem Simulink Desktop Real Time przygotuj uruchomienie opracowanego modelu w czasie rzeczywistym, a następnie w przyspieszonym czasie tak, aby uzyskać określone z zadaniach zależności czasowe. Podstawą do projektowania zmian skal czasu pozostaje rozdzielacz pracujący z jednostkami przepływu m 3 /godz. Krytycznym elementem są integratory, które w zależności od zastosowanej skali czasowej powinny całkować napływ w np. m 3 /godz., m 3 /minutę, m 3 /10minut. W związku z tym niezbędne jest przeskalowanie sygnałów przepływów do jednostek obowiązujących podczas kroku symulacji. Czas trwania symulacji powinien wynikać z kroku symulacji odniesionego do 24 godz. Czas trwania stałej wartości na blokach Repeating Sequence Stair można zadawać w polu Sample time.