Zeszyty Naukowe Wydziału Elektrotechniki i Automatyki Politechniki Gdańskiej Nr 21 XV Seminarium ZASTOSOWANIE KOMPUTERÓW W NAUCE I TECHNICE 2005 Oddział Gdański PTETiS ANALIZA SYGNAŁÓW CIĄGŁYCH I DYSKRETNYCH PRZY UŻYCIU PAKIETU SYMULACYJNEGO SIMULINK Juliusz FRĄCKOWIAK 1, Grzegorz GRABOWSKI 2, Janusz NIEZNAŃSKI 3 1. Politechnika Gdańska, Wydział Elektrotechniki i Automatyki, Katedra Energoelektroniki i Maszyn Elektrycznych, ul. G. Narutowicza 11/12, 80-952 Gdańsk tel: (058) 347 60 76 fax: (058) 341 08 80 e-mail: julo@ely.pg.gda.pl 2. Politechnika Gdańska, Wydział Elektrotechniki i Automatyki, Katedra Energoelektroniki i Maszyn Elektrycznych, ul. G. Narutowicza 11/12, 80-952 Gdańsk tel: (058) 347 60 76 fax: (058) 341 08 80 e-mail: ggrab@ely.pg.gda.pl 3. Politechnika Gdańska, Wydział Elektrotechniki i Automatyki, Katedra Energoelektroniki i Maszyn Elektrycznych, ul. G. Narutowicza 11/12, 80-952 Gdańsk tel: (058) 347 16 75 fax: (058) 341 08 80 e-mail: jniez@ely.pg.gda.pl Niniejszy artykuł przybliża możliwości środowiska symulacyjnego SIMULINK do obliczeń naukowo-technicznych i wizualizacji. Dzięki szerokim możliwościom programu użytkownik posiada dużą swobodę konfiguracji układu symulacyjnego. W kontekście symulacji układów energoelektronicznych na szczególną uwagę zasługuje biblioteka SimPowerSystems, której charakterystykę zamieszczono w artykule. Przedstawiono również przykłady badania układów elektrycznych o różnym charakterze (dyskretne i ciągłe), wyjaśniając szczegóły dotyczące technik symulacji układów o charakterze mieszanym. Kolejnym poruszonym zagadnieniem jest możliwość wykorzystania w symulacji definicji dynamicznych obiektów w postaci S-funkcji, które są szczególnie przydatne w różniczkowym opisie obiektów lub kodowaniu dyskretnych algorytmów sterowania złożonymi strukturami. Niniejszy artykuł ma za zadanie podkreślenie zalet środowiska symulacyjnego, który łączy w sobie rozbudowane możliwości tworzenia modeli symulacyjnych oraz umożliwia pełną wizualizację wyników. 1. PREZENTACJA ŚRODOWISKA SYMULACYJNEGO SIMULINK SIMULINK jest środowiskiem symulacyjnym pakietu MATLAB, umożliwiającym wykonywanie badań zarówno w dziedzinie ciągłego czasu jak i w dziedzinie sygnałów dyskretnych. Posiada graficzny interfejs, który pozwala na szybkie konstruowanie badanego układu, złożonego z gotowych bloków lub też z przygotowanych przez użytkownika obiektów. Oprócz bardzo bogatego zbioru bibliotek istnieje możliwość wprowadzania do układu symulacyjnego własnych algorytmów (zarówno dyskretnych jak i ciągłych) za pomocą M-plików oraz S-funkcji. Użytkownik posiada również możliwość pełnej wizualiza- Recenzent: Dr hab. inż. Zenon Ulman - Wydział Elektrotechniki i Automatyki Politechniki Gdańskiej
- 88 - cji wyników oraz wykonywania licznych analiz w rzeczywistym czasie wykonywania symulacji. Obok wielu innych bibliotek występujących w pakiecie SIMULINK na szczególną uwagę, pod kątem energoelektroniki, zasługuje biblioteka SimPowerSystems. Użytkownik może znaleźć tam wszelkie elementy niezbędne do stworzenia układu energoelektronicznego, a w szczególności: źródła elektryczne, szeregowe i równoległe gałęzie i elementy obciążenia, transformatory, maszyny i urządzenia elektryczne, bloki sterowania i regulatory, bloki wizualizacji i analizy, bloki pomiarowe licznych wielkości elektrycznych, bloki kluczy energoelektronicznych. 2. BLOKI SPRZĘGAJĄCE OBSZARY O RÓŻNEJ CZĘSTOTLIWOŚCI PRÓBKOWANIA W pojedynczej symulacji kompletnego układu energoelektronicznego występuje wiele elementów pracujących z różną częstotliwością. Szczególnym przypadkiem są tory i urządzenia operujące sygnałami jako fizycznymi ciągłymi przebiegami prądu i napięcia, takie jak linie przesyłowe, transformatory lub obciążenia. Pozostałe elementy pracują z określonymi, narzuconymi częstotliwościami są to falowniki, regulatory, przetworniki itp. Częstotliwości z jakimi pracują poszczególne elementy różnią się nawet o kilka rzędów. Dlatego bardzo istotne jest aby istniała możliwość badania wszystkich grup w jednej symulacji. d) a) b) c) e) f) g) Rys. 1. Symbole bloków sprzęgających: a) Powergui; b) Zero- Order Hold; c) Integer Delay; d) Unit Delay; e) Sample and Hold; f) Pulse Generator; g) Rate Transition. Symulacja komputerowa ze względu na swój cyfrowy charakter wyklucza możliwość operowania sygnałami ciągłymi. Podczas wykonywania obliczeń sygnały ciągłe (pseudociągłe) próbkowane są z pewnym skończonym okresem, wynikającym z parametrów wykorzystywanej metody numerycznej. Wszystkie występujące w symulacji sygnały (dyskretne jak i pseudo-ciągłe) muszą spełniać zasadę wielokrotności częstotliwości tzn. ich okres próbkowania musi być całkowitą wielokrotnością okresu próbkowania symulacji. Po spełnieniu powyższej zasady jesteśmy w stanie przekształcić układ w taki sposób aby istniała możliwość połączenia kilku obszarów pracujących z różną częstotliwością w jednej symulacji. W tym celu należy określić częstotliwość pracy każdego obszaru w miejscach połączenia. Poniżej przedstawiono krótką charakterystykę bloków służących do łączenia takich obszarów. Na rysunku 1 zamieszczono symbole poszczególnych bloków o których mowa poniżej.
- 89-2.1. Blok Powergui Blok Powergui jest graficznym interfejsem użytkownika, który obok szeregu opcji analitycznych posiada dwie zasadnicze właściwości: 1) narzuca dyskretyzację wszystkich sygnałów występujących w symulacji (czynność konieczna w przypadku występowania w symulacji sygnałów dyskretnych, np. modulacji), oraz 2) narzuca jej okres, który staje się niejako okresem próbkowania symulacji. Blok Powergui jest więc elementem, który musi znaleźć się w symulacji każdego złożonego układu energoelektronicznego. Położenie bloku: SimPowerSystems. 2.2. Blok Zero-Order Hold Blok Zero-Order Hold jest to element, który próbkuje sygnał wejściowy z okresem czasu określonym przez parametr. Służy do jednoznacznego określenia częstotliwości próbkowania sygnału wychodzącego z tego bloku. Okres jako parametr może zostać wprowadzony przy użyciu dowolnej stałej, która istnieje w przestrzeni roboczej MATLABa. Położenie bloku: Simulink / Discrete. 2.3. Blok Integer Delay Blok Integer Delay jest to element, który wprowadza opóźnienie w dziedzinie wartości dyskretnych o całkowitą liczbę pozycji, określoną jako parametr. Jest to blok często używany w modelach rekursywnych. Należy zaznaczyć, że jest to element operujący wyłącznie na strukturach dyskretnych. Położenie bloku: DSP Blockset / Signal Operations. 2.4. Blok Unit Delay Blok Unit Delay jest to element, który próbkuje sygnał wejściowy z opóźnieniem jednego okresu, określonego jako parametr. Działanie tego bloku jest podobne do działania bloku Zero-Order Hold. Położenie bloku: Simulink / Discrete. 2.5. Blok Sample and Hold Blok Sample and Hold jest to element, który próbkuje sygnał wejściowy w takt zewnętrznego sygnału synchronizacyjnego. Może być wyzwalany zboczem narastającym, opadającym lub narastającym i opadającym. W symulacji występuje najczęściej jako element symulujący przetwornik analogowo cyfrowy. Położenie bloku: DSP Blockset / Signal Operations. 2.6. Blok Pulse Generator Blok Pulse Generator jest to element, który generuje przebieg prostokątny o zadanej amplitudzie, okresie, wypełnieniu oraz opóźnieniu sygnału. W symulacji występuje najczęściej jako źródło częstotliwości synchronicznej. Położenie bloku: Simulink / Sources. 2.7. Blok Rate Transition Blok Rate Transition jest to element, który umożliwia połączenie dwóch systemów pracujących z różną częstotliwością próbkowania. Systemy te muszą mieć jednoznacznie określone częstotliwości pracy w punkcie połączenia. W parametrach bloku Rate Transition należy określić kierunek przejścia (przejście z systemu wolniejszego do szybszego lub na odwrót). Położenie bloku: Simulink / Signal Attributes.
- 90-3. SYMULACJA UKŁADÓW O CHARAKTERZE MIESZANYM 3.1. Przejście do dziedziny dyskretnych wartości W celu wykonania symulacji obszarów pracujących z różną częstotliwością koniecznym jest jednoznaczne określenie częstotliwości pracy obu obszarów w miejscu ich połączenia. Oznacza to, iż często istnieje potrzeba określenia częstotliwości pracy sygnału ciągłego. W rzeczywistym układzie sterowania jest to proces konwersji analogowo-cyfrowej. Z punktu widzenia symulacji jest to przejście z dziedziny wartości ciągłych (pseudociągłych) do dziedziny wartości dyskretnych. Na rysunku 2 przedstawiono przykład przejścia sygnału z dziedziny pseudociągłej do dziedziny dyskretnych wartości. Zastosowano tutaj opisywane wcześniej bloki: blok Pulse Generator do synchronizacji próbkowania, blok Sample and Hold do próbkowania Rys. 2. Przykład przejścia do dziedziny dyskretnych wartości. sygnału z zadaną częstotliwością, blok Zero- Order Hold do określenia dyskretnego okresu, wreszcie blok Integer Delay do wprowadzenia opóźnienia w dyskretnym zbiorze wartości. Należy zaznaczyć, że od momentu narzucenia dyskretnego charakteru danego przebiegu w dalszej strukturze układu symulacyjnego należy używać bloków działających w dziedzinie sygnałów dyskretnych. 3.2. Przykład połączenia systemów pracujących z różną częstotliwością Rys. 3. Przykład połączenia systemów o różnej f pracy. Na rysunku 3 przedstawiono przykład połączenia układu regulacji (pracującego z mniejszą częstotliwością) z modułem modulatora Σ- (pracującego z większą częstotliwością). Umożliwia to blok Rate Transition oraz odpowiednie, opisane wcześniej, określenie częstotliwości łączonych sygnałów. 4. S-FUNKCJE W SIMULINKU Środowisko symulacyjne SIMULINK, obok szerokiego wachlarza gotowych obiektów służących do analizy i sterowania, posiada możliwość wprowadzenia własnych algorytmów za pośrednictwem tzw. S-funkcji. Ze względu na swoją konstrukcję S-funkcja może przybrać postać układów równań różniczkowych lub równań układów dyskretnych.
- 91 - V_bad integr_sfunc To Workspace1 Sine Wave Integrator_SF Scope1 V_sf Random Number 1 s Integrator To Workspace2 V_int To Workspace3 Rys. 5. Parametry bloku Integrator. Rys. 4. Układ symulacyjny porównujący działanie bloku Integratora z S-funkcją o tym samym zadaniu. function [sys,x0,str,ts] = integr_sfunc (t,x,u,flag,d_g,g_g,x_we) x0 = x_we; ts = [0 0]; sizes.numcontstates = 1; sizes.numdiscstates = 0; sizes.numoutputs = 1; sizes.numinputs = 1; sizes.dirfeedthrough = 0; sizes.numsampletimes = 1; function sys=mdlderivatives(t,x,u,d_g,g_g) if ( x <= d_g & u < 0 ) ( x >= g_g & u > 0 ) sys = [0]; else sys = u; end function sys=mdloutputs(t,x,u) sys = x; Rys. 6. Fragment M-pliku S-funkcji spełniającej rolę członu całkującego. S-funkcja umożliwia realizację modeli układów ciągłych, dyskretnych w czasie lub mieszanych. Opis struktury S-funkcji może być zdefiniowany za pomocą M- Rys. 7. Okno z parametrami S- funkcji. pliku o specjalnej strukturze lub MEX-pliku napisanego w języku C lub Fortran. Zakodowany algorytm, jak i parametry powstające na poziomie symulacji, wprowadza się za pomocą bloku graficznego o nazwie S- function. S-funkcja jest strukturą dynamiczną, stworzoną w oparciu o model uogólniony. Jest on określony za pomocą zbioru charakterystycznych wartości funkcji czasu. Do wartości tych należą wektory: wejścia (wymuszenia) u, wyjścia y oraz stanu x. Na rysunku 6 przedstawiono przykład S-funkcji, zdefiniowanej za pomocą M- pliku, spełniającej rolę członu całkującego z ograniczeniem sygnału wyjściowego. Ze względu na dużą objętość kodu przedstawiono tylko jego fragmenty, które po wprowadzeniu do dostępnego w programie szablonu, utworzą pełny kod S-funkcji. Na rysunku 4 przedstawiono układ symulacyjny, w którym porównano działanie S-funkcji spełniającej rolę członu całkującego oraz bloku integratora, pochodzącego z biblioteki Simulink/Continuous. Wyniki tej analizy przedstawiono w formie wykresu na rysunku 8. S-funkcja o nazwie Inter_Sfunc wymaga wprowadzenia trzech parametrów: dolnego i górnego ograniczenia oraz stanu początkowego (wynoszących odpowiednio: -10, 10 i 0). Sposób wprowadzenia tych parametrów pokazano na rysunku 7. Aby porównanie obu badanych bloków było wiarygodne elementowi integratora należy
- 92 - Przebieg badany V-bad przypisać takie 4 same ograniczenia. 2 Przedstawiono to 0 na rysunku 5. Jak -2 widać oba bloki (Sfunkcja oraz blok -4 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 integratora) działają w taki sam spo- Przebieg S-Funkcji V-sf 8 x 10-3 6 sób. Oprócz możliwości 4 wykorzy- 2 0 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 stania S-funkcji do opisu obiektu za 8 x 10-3 Przebieg integratora V-int pomocą równań różniczkowych lub 6 dyskretnych, S- 4 funkcja spełnia 2 dodatkową rolę: 0 pozwala na niemal 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 bezpośrednie wykorzystanie Rys. 8. Wyniki badania porównania S-funkcji oraz bloku integratora. kodu napisanego w języku C, pochodzącego z innych środowisk symulacyjnych lub gotowych algorytmów. To wszystko czyni ją bardzo pożytecznym narzędziem w rękach doświadczonego użytkownika. 5. WNIOSKI KOŃCOWE Niniejszy artykuł ma za zadanie przybliżyć czytelnikowi środowisko symulacyjne SIMULINK. Szczególny nacisk położono na opis technik symulacji obszarów pracujących z różną częstotliwością. Brak znajomości tego zagadnienia uniemożliwia efektywne badanie złożonych układów energoelektronicznych. Dodatkowo przedstawiono opis działania S- funkcji, które są strukturami umożliwiającymi wprowadzenie do symulacji złożonych algorytmów sterowania i analizy. Niniejszy artykuł umożliwia opanowanie technik symulacji, pozwalających na podniesienie jakości wykonanej symulacji komputerowej badanego układu, na etapie poprzedzającym implementację wybranego algorytmu sterowania w rzeczywistym układzie pomiarowym. CONTINUOUS AND DISCRETE SIGNAL ANALYSIS USING SIMULATION EN- VIRONMENT SIMULINK The article presents abilities of the simulation environment SIMULINK which is platform dedicated to multidomain simulation and Model-Based Design for dynamic systems. It provides an interactive graphical environment and wide range of block libraries among other libraries specially designed for Power Electronics: SimPowerSystems. Authors present simulations of mixed signal systems (continuous and discrete) and explain simulation technique of those systems. Another subject described in this paper is S-function.