PODSTAWY AUTOMATYKI. Wprowadzenie do Simulinka środowiska MATLAB. Materiały pomocnicze do ćwiczeń laboratoryjnych - - termin T3

Podobne dokumenty
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

ELEMENTY AUTOMATYKI PRACA W PROGRAMIE SIMULINK 2013

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa TECHNIKI REGULACJI AUTOMATYCZNEJ

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy SIMULINKA

PODSTAWY AUTOMATYKI. MATLAB - instrukcje i funkcje zewnętrzne. Grafika w Matlabie. Wprowadzenie do biblioteki Control System Toolbox.

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 6 AUTOMATYKA

Modele układów dynamicznych - laboratorium. SIMULINK - wprowadzenie

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Podstawy Informatyki 1. Laboratorium 8

UWAGA. Program i przebieg ćwiczenia:

Wprowadzenie do SIMULINKA

Ćwiczenie 0 : Wprowadzenie do cyfrowego przetwarzania sygnałów. wyświetla listę tematów pomocy. wyświetla okno pomocy (Help / Product Help)

UWAGA. Wszystkie wyniki zapisywać na dysku Dane E: Program i przebieg ćwiczenia:

Badanie wpływu parametrów korektora na własności dynamiczne układu regulacji automatycznej Ćwiczenia Laboratoryjne Podstawy Automatyki i Automatyzacji

O co chodzi z tym MATLAB'em?!

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Ćwiczenie nr 1 Odpowiedzi czasowe układów dynamicznych

Katedra Automatyzacji Laboratorium Podstaw Automatyzacji Produkcji Laboratorium Podstaw Automatyzacji

INSTRUKCJA LABORATORIUM ELEKTROTECHNIKI

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 3 AUTOMATYKA

WPROWADZENIE DO ŚRODOWISKA SCICOS

Uruchamianie Aby uruchomić środowisko Simulink należy wpisać w command window Matlaba polecenie simulink lub kliknąć na pasku zadań ikonę programu:

Podstawy inżynierii sterowania Ćwiczenia laboratoryjne

Identyfikacja i modelowanie struktur i procesów biologicznych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Ćwiczenie 3 Badanie własności podstawowych liniowych członów automatyki opartych na biernych elementach elektrycznych

POLITECHNIKA ŚLĄSKA WYDZIAŁ GÓRNICTWA I GEOLOGII. Roman Kaula

Transmitancje układów ciągłych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

PODSTAWY AUTOMATYKI. Analiza w dziedzinie czasu i częstotliwości dla elementarnych obiektów automatyki.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Automatyka i Regulacja Automatyczna Laboratorium Zagadnienia Seria II

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

Rys 1 Schemat modelu masa- sprężyna- tłumik

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 3 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Regulacja dwupołożeniowa.

Laboratorium 1. Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

1. Opis teoretyczny regulatora i obiektu z opóźnieniem.

przy warunkach początkowych: 0 = 0, 0 = 0

KOMPUTERY W STEROWANIU. Ćwiczenie 5 Projektowanie kompensatora cyfrowego metodą symulacji

Wydział Fizyki i Informatyki Stosowanej

1 Układy wzmacniaczy operacyjnych

1. Transformata Laplace a przypomnienie

Laboratorium nr 1. dsolve( rownanie1, rownanie2,, warunek 1, warunek 2 );

Instrukcja nr 6. Wzmacniacz operacyjny i jego aplikacje. AGH Zespół Mikroelektroniki Układy Elektroniczne J. Ostrowski, P. Dorosz Lab 6.

INSTRUKCJA DO ĆWICZENIA NR 7

E-E-A-1008-s5 Komputerowa Symulacja Układów Nazwa modułu. Dynamicznych. Elektrotechnika I stopień Ogólno akademicki. Przedmiot kierunkowy

Laboratorium nr 3. Projektowanie układów automatyki z wykorzystaniem Matlaba i Simulinka

Elektrotechnika I stopień Ogólno akademicki. Przedmiot kierunkowy. Obowiązkowy Polski VI semestr zimowy

1. Regulatory ciągłe liniowe.

Podstawy MATLABA, cd.

7.2.1 Przeglądarka elementów i dostęp do pomocy

Laboratorium z automatyki

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Wprowadzenie do Mathcada 1

WPROWADZENIE DO ŚRODOWISKA SCILAB

1.3. Proste przykłady wykorzystania Scicosa

Teoria sterowania - studia niestacjonarne AiR 2 stopień

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Podstawy Elektroniki dla Informatyki. Wzmacniacze operacyjne

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Badanie właściwości dynamicznych obiektów I rzędu i korekcja dynamiczna

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Laboratorium nr 1. Diagnostyka z wykorzystaniem modelu. 2 Detekcja uszkodzeń na podstawie modeli obiektu

Laboratorium elementów automatyki i pomiarów w technologii chemicznej

Ćwiczenie nr 6 Charakterystyki częstotliwościowe

Inteligentnych Systemów Sterowania

c - częstość narodzin drapieżników lub współczynnik przyrostu drapieżników,

LABORATORIUM MODELOWANIA I SYMULACJI

4. Właściwości eksploatacyjne układów regulacji Wprowadzenie. Hs () Ys () Ws () Es () Go () s. Vs ()

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Regulator PID w sterownikach programowalnych GE Fanuc

A-2. Filtry bierne. wersja

Wzmacniacze operacyjne

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

1. Rejestracja odpowiedzi skokowej obiektu rzeczywistego i wyznaczenie podstawowych parametrów dynamicznych obiektu

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Badanie właściwości dynamicznych obiektów I rzędu i korekcja dynamiczna

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie

Badanie stabilności liniowych układów sterowania

analogowego regulatora PID doboru jego nastaw i przetransformowanie go na cyfrowy regulator PID, postępując według następujących podpunktów:

Implementacja rozmytych systemów wnioskujących w zdaniach regulacji

Wprowadzenie do Real-Time Windows Target Toolbox Matlab/Simulink

Różniczkowanie numeryczne

Ćwiczenie - 1 OBSŁUGA GENERATORA I OSCYLOSKOPU. WYZNACZANIE CHARAKTERYSTYKI AMPLITUDOWEJ I FAZOWEJ NA PRZYKŁADZIE FILTRU RC.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Badanie układu regulacji poziomu cieczy

Identyfikacja obiektów dynamicznych za pomocą sieci neuronowych

ĆWICZENIE 6 Transmitancje operatorowe, charakterystyki częstotliwościowe układów aktywnych pierwszego, drugiego i wyższych rzędów

4. UKŁADY II RZĘDU. STABILNOŚĆ. Podstawowe wzory. Układ II rzędu ze sprzężeniem zwrotnym Standardowy schemat. Transmitancja układu zamkniętego

Tematyka egzaminu z Podstaw sterowania

Projektowania Układów Elektronicznych CAD Laboratorium

Podstawy Automatyki. Wykład 6 - Miejsce i rola regulatora w układzie regulacji. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Transkrypt:

WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI Katedra Inżynierii Systemów Sterowania PODSTAWY AUTOMATYKI Wprowadzenie do Simulinka środowiska MATLAB. Materiały pomocnicze do ćwiczeń laboratoryjnych - - termin T3 Opracowanie: Kazimierz Duzinkiewicz, dr hab. inż. Michał Grochowski, dr inż. Robert Piotrowski, dr inż. Tomasz Rutkowski, dr inż. Rafał Łangowski, dr inż. Gdańsk

1. Wprowadzenie do budowy modeli w Simulinku Simulink jest jedną z nakładek środowiska MATLAB. Służy głównie do przeprowadzania badań symulacyjnych. Simulink pozwala budować schematy blokowe układów (modele symulacyjne) przy pomocy interfejsu graficznego i tzw. bloków. Simulink umożliwia przeprowadzanie zarówno symulacji z czasem dyskretnym jak i ciągłym. Definiując obiekty w Simulinku mamy możliwość odwoływania się do istniejących w pamięci zmiennych, dostępnych z wiersza poleceń środowiska MATLAB. 1.1 Ogólne zasady budowy schematów analogowych Budowa modeli komputerowych w Simulinku opiera się na budowie schematów analogowych. Poniżej przedstawiono ogólne zasady tworzenia schematów analogowych pozwalających na numeryczne rozwiązywanie równań różniczkowych zwyczajnych, przy pomocy metody Kelvina (metoda ogólna). Metoda Kelvina rozwiązywania równań różniczkowych zwyczajnych Dane jest równanie różniczkowe n-tego rzędu: gdzie: oznacza n-tą pochodną funkcji, są stałymi współczynnikami występującymi przy tej funkcji, natomiast jest niezależną funkcją. Dysponując warunkami początkowymi: (1) (2) możemy rozwiązać równanie (1) względem funkcji przy pomocy odpowiednio skonstruowanego schematu analogowego. Aby doprowadzić do takiego schematu należy przekształcić równanie do postaci, w której po lewej stronie równania będzie występowała najwyższa pochodna funkcji czyli. Jeżeli w równaniu (1) przy najwyższej potędze występuje jakiś współczynnik, należy go wyeliminować dzieląc przez niego równanie (obustronnie). Po przekształceniach, równanie (1) będzie miało następującą postać: Dla tak przedstawionego równania możemy skonstruować schemat analogowy przedstawiony na rysunku 1. (3) - 2 -

y (n-1)0 y (n-2)0 y 00 g(x,t) y (n) (t) y (n-1) (t) y (n-2) (t) y(t) -a 1 -a 2 -a n Rys. 1. Realizacja analogowa rozwiązania równania różniczkowego (3) Na rysunku 2 przedstawiono funkcje poszczególnych elementów użytych na rysunku 1. warunek poczatkowy integrator (element całkujący) sumator wzmacniacz Rys. 2. Elementy schematów analogowych Efektem działania schematu z rysunku 1 jest możliwość obserwacji wyjścia równania (1). czyli rozwiązania Przykład 1: Obiekt opisany jest równaniem różniczkowym postaci: (4) z warunkiem początkowym:. Zbuduj schemat analogowy wiążący wyjście z wejściem. Przykładowe rozwiązanie: Przekształcamy równanie do następującej postaci: Mamy zatem: (5) u(t) 3 dy(t)/dt y 00 =2 y(t) -4 Rys. 3. Realizacja analogowa rozwiązania równania różniczkowego (5) z Przykładu 1-3 -

Przykład 2: Obiekt opisany jest równaniem różniczkowym postaci: (6) z warunkami początkowymi: i. Zbuduj schemat analogowy wiążący wyjście z wejściem. Przykładowe rozwiązanie: Przekształcamy równanie do następującej postaci: Mamy zatem: (7) u(t) 5 d 2 y(t)/dt 2 y 10 =0 y 00 =3 dy(t)/dt y(t) -4 2 Rys. 4. Realizacja analogowa rozwiązania równania różniczkowego (7) z Przykładu 2 Przykład 3: Dla nieobciążonego prądowo czwórnika RLC (rys. 5) z wyjściem pojemnościowym, zbuduj schemat analogowy wiążący napięcie wyjściowe z napięciem wejściowym. R L i RL(t) i obc(t) i C(t) u R(t) u L(t) u we(t) u C(t) C u wy(t) Przykładowe rozwiązanie: Rys. 5. Schemat nieobciążonego prądowo czwórnika RLC Korzystając z II prawa Kirchhoff a dla wejściowego oczka możemy napisać: Ponadto, dla tego układu zachodzą następujące zależności: napięciowe: ; ; (9) (8) - 4 -

prądowe: (10) Po podstawieniu zależności (9) i (10) do równania (8) otrzymamy: (11) Aby zbudować schemat analogowy umożliwiający rozwiązanie równania (11) względem napięcia wyjściowego, należy zgodnie z przedstawionymi wcześniej regułami doprowadzić do postaci, w której po lewej stronie równania będzie występowała jedynie najwyższa potęga napięcia wyjściowego. Zatem, uzyskujemy: (12) Na podstawie równania (12) możemy zbudować odpowiedni schemat analogowy, co pokazano na rysunku 6. u we (t) 1/LC d 2 u wy (t)/dt 2 u wy10 du wy (t)/dt u wy00 u wy (t) -(R/L) -(1/LC) Rys. 6. Realizacja analogowa rozwiązania równania różniczkowego (12) z Przykładu 3 Dzięki schematowi przedstawionemu na rysunku 6 jesteśmy w stanie obserwować napięcie wyjściowe pod wpływem zmian napięcia wejściowego, co stanowi szukane rozwiązanie równania różniczkowego. UWAGA: Należy pamiętać, aby w odpowiednim miejscu wprowadzić do integratorów warunki początkowe. 2. Pierwsze kroki w Simulinku Schematy blokowe układów w nakładce Simulink buduje się między innymi w oparciu o bloki statyczne i dynamiczne, liniowe i nieliniowe, funkcje matematyczne i operacje logiczne, itp. Użytkowanie Simulinka można podzielić na dwa etapy. W pierwszym z nich budowany jest schemat blokowy układu odpowiadający matematycznemu opisowi tego układu. Etap drugi polega na analizie zbudowanego wcześniej modelu symulacyjnego. Mogą zachodzić interakcję pomiędzy etapami, np. można zatrzymać symulację w celu zmiany struktury czy parametrów modelu. W opracowaniu dalszej części materiału korzystano ze środowiska MATLAB w wersji R2015b (8.6.0.267246) oraz z nakładki Simulink w wersji 8.6, jednak praca w innych wersjach MATLAB a wygląda analogicznie. Praca w bibliotece Simulink odbywa się z poziomu środowiska MATLAB i jej rozpoczęcie możliwe jest na dwa sposoby (rys. 7): - 5 -

kliknięcie na ikonę Simulink, wpisanie komendy simulink w Command Window. Rys. 7. Ogólny rysunek środowiska MATLAB z wyszczególnieniem nakładki Simulink Wszystkie bloki Simulinka zostały podzielone na 16 grup (rys. 8). Rys. 8. Grupy bloków w Simulinku Opis elementów i bibliotek Simulinka jest przedstawiony w dalszej części niniejszego opracowania. - 6 -

Budowę schematów blokowych układów w Simulinku rozpoczyna się poprzez otwarcie nowego projektu (nowego modelu) (rys. 9). Rys. 9. Otwarcie nowego projektu w Simulinku Przenoszenie poszczególnych bloków do nowego projektu polega na opcji przeciągnij i upuść (ang. drag and drop) w odpowiednie miejsce tego projektu, a następnie ich połączeniu. Połączenie bloków liniami odbywa się za pomocą lewego przycisku myszy (bez jego zwalniania), poprzez przeciągnięcie kursora od jednego do drugiego bloku (rys. 10). Rys. 10. Przenoszenie i łączenie bloków w bibliotece Simulink - 7 -

Każdy blok można obracać poprzez jego zaznaczenie i użycie z menu Format opcji Rotate & Flip (lub klawiszami Ctrl+R. W celu bezpośredniego przeprowadzenia symulacji możemy ją uruchomić klikając na symbol grotu strzałki (rys. 11), lub najpierw ustawić parametry symulacji korzystając z menu Simulation i opcji Model Configuration Parameters. Spośród wielu ustawień istnieje możliwość określenia między innymi czasu początku i końca symulacji, metody całkowania numerycznego, początkowego, minimalnego i maksymalnego kroku całkowania, błędu całkowania (rys. 11). Rys. 11. Ustawienia parametrów symulacji w Simulinku Po przeprowadzeniu symulacji można obejrzeć wynik działania modelu układu. Na rysunku 12 pokazano wynik działania przykładowego modelu układu z rysunku 10 klikając na blok Scope. - 8 -

3. Opis bibliotek Simulinka Rys. 12. Przykładowy wynik działania modelu zbudowanego w Simulinku Poniżej przedstawiono wybrane elementy, wybranych grup Simulinka. Wszystkie elementy są opisane w pomocy Simulinka środowiska MATLAB. 3.1 Grupa Continuous - funkcje i elementy ciągłe Derivative - blok różniczkowania sygnału ciągłego w czasie. Integrator - blok całkowania sygnału ciągłego w czasie, w bloku: a. wybieramy źródło warunków początkowych (wewnętrzne, zewnętrzne), b. podajemy warunki początkowe, Możemy również: c. podać dolną i górną granicę całkowania, d. podać błąd całkowania. State-Space - blok układu ciągłego opisanego w przestrzeni stanu, w bloku podajemy macierze A, B, C i D oraz warunki początkowe. Macierze A, B, C i D to odpowiednie macierze równań stanu i wyjścia (wymiary tych macierzy zależą od liczby współrzędnych stanu, sterowań i wyjść): gdzie:. Transfer Fcn - blok transmitancji operatorowej układu ciągłego (ciągła funkcja przejścia), w bloku podajemy licznik i mianownik transmitancji operatorowej, współczynniki zarówno licznika jak i mianownika transmitancji operatorowej podaje się według malejących potęg operatora. - 9 -

Zero-Pole - blok układu ciągłego opisanego w postaci transmitancji (w formie zer Z, biegunów P oraz wzmocnienia K): Zerem Z (z ang. zero) transmitancji jest każdy z pierwiastków (zer) wielomianu znajdującego się w liczniku transmitancji. Biegunem P (z ang. pole) transmitancji jest każdy z pierwiastków wielomianu znajdującego się w mianowniku transmitancji. W bloku podajemy wzmocnienie, zera i bieguny opisujące układ ciągły. 3.2 Grupa Discontinuities - funkcje i elementy nieciągłe Backlash - blok histerezy sygnału; w bloku podajemy szerokość histerezy. Dead Zone - blok sygnału z martwą strefą, czyli strefą z zerową wartością sygnału wyjściowego; w bloku podajemy początek i koniec martwej strefy. Rate Limiter - blok sygnału ograniczenia prędkości zmian sygnału wejściowego; w bloku podajemy szybkość narastania i opadania sygnału wejściowego. Saturation - blok nasycenia sygnału wejściowego; w bloku podajemy dolną i górną wartość nasycenia. 3.3 Grupa Discrete - funkcje i elementy dyskretne Discrete State-Space - blok układu dyskretnego opisanego w przestrzeni stanu, w bloku podajemy macierze Ad, Bd, Cd, i Dd, warunki początkowe oraz okres próbkowania. Macierze Ad, Bd, Cd, i Dd to odpowiednie macierze równań stanu i wyjścia (wymiary tych macierzy zależą od liczby współrzędnych stanu, sterowań i wyjść): gdzie:. Discrete Transfer Fcn - blok transmitancji operatorowej układu dyskretnego (dyskretna funkcja przejścia), w bloku podajemy licznik transmitancji dyskretnej, mianownik transmitancji dyskretnej i okres próbkowania, współczynniki licznika i mianownika transmitancji dyskretnej podaje się według malejących potęg operatora. Discrete Zero-Pole - blok układu dyskretnego opisanego w postaci transmitancji (w formie zer Z, biegunów P oraz wzmocnienia K): W bloku podajemy wzmocnienie, zera i bieguny opisujące układ oraz okres próbkowania. Discrete-Time Integrator - blok całkowania sygnału dyskretnego w czasie, w bloku: a. wybieramy metodę całkowania (Forward Euler: metoda prostokątów z wykorzystaniem różnic w przód - transmitancja dyskretna elementu całkującego: ; Backward Euler: metoda prostokątów z wykorzystaniem różnic wstecz - transmitancja dyskretna elementu całkującego: ; Trapezoidal: metoda trapezów - transmitancja dyskretna elementu całkującego: ), - 10 -

b. wybieramy źródło warunków początkowych (wewnętrzne, zewnętrzne), c. podajemy warunki początkowe, d. podajemy okres próbkowania. Możemy również: a. podać granice całkowania, b. wygenerować sygnał (saturation), który pokazuje kiedy zmienna stanu jest ograniczona (wartość 1 - osiągnięto górną granicę całkowania; wartość 0 - nie ma ograniczeń całkowania; wartość 1 - osiągnięto dolną granicę całkowania), c. zresetować blok sygnałem zewnętrznym (none - nie resetować; rising - jeżeli sygnał wyzwalający (reset) ma zborze narastające; falling - jeżeli sygnał wyzwalający ma zborze opadające; either - jeżeli sygnał wyzwalający ma zborze narastające lub opadające; level - w zależności od ustawionego poziomu sygnału wyzwalającego), d. wyprowadzić zmienną stanu z bloku. 3.4 Grupa Math Operations - operacje matematyczne Abs - blok wartości bezwzględnej z sygnału wejściowego. Add - blok dodawania/odejmowania sygnałów wejściowych, w bloku podajemy liczbę sygnałów, które będą dodane/odjęte. Divide - blok dzielenia/mnożenia sygnałów wejściowych, w bloku podajemy liczbę sygnałów, które będą dzielone/mnożone. Gain - blok wzmocnienia sygnału wejściowego, w bloku podajemy wartość wzmocnienia. Math Function - blok operacji matematycznych na sygnale wejściowym, np.: potęgowanie, pierwiastkowanie, logarytmowanie itp., w bloku wybieramy właściwą funkcję. Product - blok mnożenia/dzielenia sygnałów wejściowych, w bloku podajemy liczbę sygnałów, które będą mnożone/dzielone. Rounding - blok zaokrąglenia wartości liczby do liczby całkowitej, w bloku wybieramy sposób zaokrąglenia: floor - zaokrąglenie w dół, ceil - zaokrąglenie w górę, round - zaokrąglenie do najbliższej liczby całkowitej, fix - zaokrąglenie w kierunki liczby zero. Sign - blok funkcji signum (funkcja przyjmująca wartość -1 dla ujemnych wartości wejściowych, wartość +1 dla dodatnich wartości wejściowych oraz wartość 0 dla zerowej wartości wejściowej). Sin Wave Function - blok funkcji sinus, w bloku podajemy między innymi amplitudę, fazę i częstotliwość sygnału. Subtract - blok odejmowania/dodawania sygnałów wejściowych, w bloku podajemy liczbę sygnałów, które będą odjęte/dodane. Sum - blok dodawania/odejmowania sygnałów wejściowych, w bloku podajemy liczbę sygnałów, które będą dodane/odjęte. Trigonometric Function - blok funkcji trygonometrycznych, cyklometrycznych, hiperbolicznych i odwrotnych do nich, w bloku wybieramy właściwą funkcję. - 11 -

3.5 Grupa Signal Routing - operacje na sygnałach Demux - blok rozdzielania jednego sygnału wejściowego na wiele sygnałów wyjściowych, w bloku podajemy liczbę sygnałów wyjściowych. Manual Switch - blok przełączania pomiędzy dwoma sygnałami wejściowymi. Multiport Switch - blok przełączania pomiędzy sygnałami wejściowymi, w bloku podajemy liczbę sygnałów wejściowych, które będą podlegać przełączaniu. Mux - blok łączenia wielu sygnałów wejściowych w jeden sygnał wyjściowy, w bloku podajemy liczbę sygnałów wejściowych. Selector - blok wyboru elementów sygnału wyjściowego z sygnału wejściowego w postaci wektora lub macierzy. Switch - blok przełączania pomiędzy dwoma sygnałami wejściowymi. 3.6 Grupa Sinks - funkcje i elementy do obrazowania wyników symulacji Display - blok wyświetlacza cyfrowego. Out1 - blok portu sygnału wyjściowego dla podsystemu modelu układu, w bloku podajemy numer portu. Scope - blok oscyloskopu, blok rysowania wyników symulacji w dziedzinie czasu. Stop Simulation - blok zatrzymania symulacji, gdy wartość sygnału wejściowego jest niezerowa. Terminator - blok zakończenia sygnału wyjściowego. To File - blok zapisania wyników symulacji w pliku, w bloku podajemy między innymi nazwę pliku i nazwę zmiennej. To Workspace - blok zapisania wyników symulacji w przestrzeni roboczej środowiska MATLAB, w bloku podajemy nazwę zmiennej i ograniczenie liczby danych, które mają być zapisane. Dodatkowo w bloku wybieramy format zapisu danych: Struktura z czasem, Struktura lub Tablica. XY Graph - blok rysowania wyników symulacji w postaci zależności między dwoma sygnałami X i Y, w bloku podajemy wartość minimalną i maksymalną sygnałów: X i Y. 3.7 Grupa Sources - źródła sygnałów Clock - blok generowania i wyprowadzania czasu symulacji. Constant - blok generowania stałej wartości sygnału; w bloku podajemy wartość stałej. From File - blok generowania danych wejściowych z pliku; w bloku podajemy nazwę pliku. From Workspace - blok generowania danych wejściowych z przestrzeni roboczej środowiska MATLAB; w bloku podajemy nazwę zmiennej. In1 - blok portu sygnału wejściowego dla podsystemu modelu układu; w bloku podajemy numer portu. - 12 -

Pulse Generator - blok generowania sygnału prostokątnego; w bloku podajemy amplitudę i fazę sygnału oraz jego szerokość i opóźnienie fazowe. Ramp - blok generowania sygnału liniowo narastającego w czasie; w bloku podajemy współczynnik nachylenia, czas początku sygnału i wartość początkową sygnału. Random Number - blok generowania sygnału losowego; w bloku podajemy między innymi wartość średnią i wariancję sygnału. Repeating Sequence - blok generowania sygnału trójkątnego; w bloku podajemy dwa wektory związane z czasem trwania sygnału i wartością sygnału w danej chwili. Signal Generator - blok generowania sygnału sinusoidalnego, prostokątnego, piłokształtnego lub losowego; bloku wybieramy rodzaj sygnału i dodatkowo podajemy amplitudę i częstotliwość sygnału. Sine Wave - blok generowania sygnału sinusoidalnego; w bloku podajemy między innymi amplitudę, fazę i częstotliwość sygnału. Step - blok generowania sygnału skokowego, w bloku podajemy czas początku sygnału oraz wartość początkową i końcową sygnału. 3.8 Grupa User-Defined Functions - funkcje do samodzielnego tworzenia Fcn - blok definiowania własnej funkcji; w bloku budujemy własną funkcję. MATLAB Fcn - blok realizujący dowolną funkcję zdefiniowaną w środowisku MATLAB; w bloku wpisujemy właściwą funkcję. S-Function - blok pozwalający na wykorzystanie modelu zapisanego w M-pliku jako s-funkcja; w bloku podajemy nazwę i parametry s-funkcji. 4. Przykłady W ostatniej części opracowania przedstawiono przykłady wykorzystania nakładki Simulink. Przykład 4: Obiekt opisany jest równaniem różniczkowym postaci: (13) z warunkami początkowymi: i. Zbuduj schemat blokowy umożliwiający rozwiązanie tego równania. Wykreśl odpowiedź tego obiektu wiedząc, że. Przykładowe rozwiązanie: Przekształcamy równanie do następującej postaci: Mamy zatem: (14) - 13 -

Rys. 13. Schemat w Simulinku do Przykładu 4 UWAGA: W bloku Integrator 1 należy ustawić warunek początkowy równy 1 ( ). Wynik działania: Rys. 14. Wynik Przykładu 4 UWAGA: Jak wcześniej wspomniano istnieje możliwość przesłania wyników symulacji z Simulinka to środowiska MATLAB. Pomocnym blokiem jest To Workspace, dzięki któremu wyniki symulacji są wysyłane do pamięci roboczej środowiska MATLAB. Wybierając w bloku To Workspace opcję Structure With Time i podpisując naszą zmienną np. jako y po wysłaniu wyników możliwe jest narysowanie wykresu bezpośrednio z wiersza poleceń (Command Window) środowiska MATLAB wykorzystując polecenie plot w postaci: plot(y.time,y.signals.values(:,1)) Po wykonaniu tego poleceniu uzyskamy (dodatkowo umieszczono siatkę i podpisano osie): - 14 -

Rys. 15. Wynik Przykładu 4 W dalszej części opracowania ze względu na przejrzystość wyników będzie wykorzystywana opisana wcześniej procedura. Przykład 5: Działanie nieobciążonego prądowo czwórnika RC (rys. 16) opisane jest równaniem: (15) u R (t) R i R (t) i obc (t) i C (t) u we (t) C u C (t) u wy (t) Rys. 16. Schemat nieobciążonego prądowo czwórnika RC Zbuduj schemat blokowy wiążący napięcie wyjściowe z napięciem wejściowym dla i. Wykreśl odpowiedź tego obiektu na następujące wymuszenia: a) impuls Diraca, b) skok jednostkowy. W obu przypadkach przedstaw wyniki dla zerowych i niezerowych warunków początkowych. Przyjmij czas symulacji równy 0,02 jednostki czasu. Przykładowe rozwiązanie: Przekształcamy równanie do następującej postaci: (16) - 15 -

Mamy zatem: Rys. 17. Schemat w Simulinku do Przykładu 5 Wynik działania: Rys. 18. Wynik Przykład 5 - impuls Diraca (po lewej dla zerowych warunków początkowych, po prawej dla niezerowych warunków początkowych) Rys. 19. Wynik Przykład 5 - skok jednostkowy (po lewej dla zerowych warunków początkowych, po prawej dla niezerowych warunków początkowych) Przykład 6: Dany jest regulator typu PI opisany równaniem różniczkowym postaci: (17) - 16 -

Zbuduj schemat blokowy umożliwiający obserwację sygnału wyjściowego regulatora pod wpływem jego sygnału wejściowego. Po zbudowaniu regulatora zgrupuj wszystkie elementy w jeden obiekt (wykorzystaj opcję Create Subsystem from Selection ), a następnie dokonaj jego maskowania umożliwiając dostęp do zmiany nastaw, regulatora (wykorzystaj opcję Mask ). Wykreśl odpowiedź tego regulatora wiedząc, że, i. Przyjmij czas symulacji równy 10 jednostek czasu. UWAGA: Grupowanie obiektów służy łączeniu obiektów elementarnych w jeden obiekt złożony. UWAGA: Maskowanie obiektów służy uzyskaniu dostępu do wewnętrznych parametrów bloku poprzez okno dialogowe. Przykładowe rozwiązanie: Korzystając z zależności (17) budujemy schemat regulatora: Rys. 20. Schemat w Simulinku do Przykładu 6 Następnie zaznaczamy wszystkie obiekty (oprócz: Step, Scope i To Workspace ) i prawym przyciskiem myszy wybieramy opcję Create Subsystem from Selection. Tym samym uzyskamy: Rys. 21. Zgrupowany schemat w Simulinku do Przykładu 6 Porządkując schemat i podpisując zmienne i zgrupowany obiekt ostatecznie otrzymamy: Rys. 22. Zgrupowany i podpisany schemat w Simulinku do Przykładu 6-17 -

W celu maskowania regulatora PI, zaznaczamy obiekt i prawym przyciskiem myszy wybieramy opcję Mask, uzyskamy: Rys. 23. Opcja maskowania obiektu w Simulinku do Przykładu 6 W pozycji Parameters wpisujemy nazwy zmiennych:, i je opisujemy, mamy: Rys. 24. Maskowanie obiektu w Simulinku do Przykładu 6 Ostatnim etapem maskowania jest przypisanie zmiennych, w bloku Regulator PI (otwarcie bloku: prawy przycisk myszy i opcja Look Under Mask ), uzyskamy: Rys. 25. Przypisanie zmiennych do obiektu w Simulinku do Przykładu 6-18 -

Wynik działania: Rys. 26. Wynik Przykładu 6 Przykład 7: Dany jest idealny regulator typu PD opisany równaniem różniczkowym postaci: (18) Zbuduj schemat blokowy umożliwiający obserwację sygnału wyjściowego regulatora pod wpływem jego sygnału wejściowego. Po zbudowaniu regulatora zgrupuj wszystkie elementy w jeden obiekt (wykorzystaj opcję Create Subsystem from Selection ), a następnie dokonaj jego maskowania umożliwiając dostęp do zmiany nastaw, regulatora (wykorzystaj opcję Mask ). Wykreśl odpowiedź tego regulatora wiedząc, że, i. Przyjmij czas symulacji równy 5 jednostek czasu. Przykładowe rozwiązanie: Korzystając z zależności (18) budujemy schemat regulatora: Rys. 27. Schemat w Simulinku do Przykładu 7 Następnie zaznaczamy wszystkie obiekty (oprócz: Ramp, Scope i To Workspace ) i prawym przyciskiem myszy wybieramy opcję Create Subsystem from Selection. Tym samym uzyskamy: - 19 -

Rys. 28. Zgrupowany schemat w Simulinku do Przykładu 7 Porządkując schemat i podpisując zmienne i zgrupowany obiekt ostatecznie otrzymamy: Rys. 29. Zgrupowany i podpisany schemat w Simulinku do Przykładu 7 W celu maskowania regulatora PD, zaznaczamy obiekt i prawym przyciskiem myszy wybieramy opcję Mask, uzyskamy: Rys. 30. Opcja maskowania obiektu w Simulinku do Przykładu 7 W pozycji Parameters wpisujemy nazwy zmiennych:, i je opisujemy, mamy: - 20 -

Rys. 31. Maskowanie obiektu w Simulinku do Przykładu 7 Ostatnim etapem maskowania jest przypisanie zmiennych, w bloku Regulator PD (otwarcie bloku: prawy przycisk myszy i opcja Look Under Mask ), uzyskamy: Wynik działania: Rys. 32. Przypisanie zmiennych do obiektu w Simulinku do Przykładu 7 Rys. 33. Wynik Przykładu 7-21 -

W Simulinku istnienie możliwość budowania obiektów/układów liniowych korzystając bezpośrednio z transmitancji operatorowej. Przykład 8: Dany jest układ regulacji pokazany na rysunku 34: X (s) E (s) G r (s) G ob (s) Y (s) Rys. 34. Schemat do przykładu 8 Transmitancja operatorowa obiektu i regulatora typu PI są równe odpowiednio: (19) Zbuduj schemat blokowy umożliwiający obserwację odpowiedzi układu na skok jednostkowy. Wykreśl na jednym wykresie wejście i wyjście układu. Na drugim wykresie przedstaw uchyb regulacji. Przyjmij czas symulacji równy 120 jednostek czasu. Przykładowe rozwiązanie: Rozpisując transmitancję operatorową regulatora typu PI (zależność 19) uzyskujemy: (20) (21) Budujemy schemat układu regulacji: Rys. 34. Schemat w Simulinku do Przykładu 8 UWAGA: Obiekty Regulator PI i Obiekt zostały zbudowane w Simulinku z użyciem bloku Transfer Fcn. - 22 -

Wynik działania: W celu wykreślenia na jednym wykresie wejścia i wyjścia układu należy w bloku To Workspace wybrać opcję Structure With Time i podpisując naszą zmienną np. jako xy wysłać wyniki do pamięci środowiska MATLAB. Następnie możliwe jest narysowanie wykresu bezpośrednio z wiersza poleceń środowiska MATLAB wykorzystując polecenie plot w postaci: plot(xy.time,xy.signals.values(:,[1,2])) Po wykonaniu tego poleceniu uzyskamy (dodatkowo umieszczono siatkę, legendę i podpisano osie): Rys. 35. Wynik (wejście i wyjście) do Przykładu 8 Uchyb regulacji wykreślimy w analogiczny sposób wykorzystując polecenie plot w postaci: plot(uchyb.time,uchyb.signals.values(:,1)) Po wykonaniu tego poleceniu uzyskamy (dodatkowo umieszczono siatkę i podpisano osie): - 23 -

Rys. 36. Wynik (uchyb) do Przykładu 8 Przykład 9: Dany jest układ regulacji pokazany na rysunku 37: X (s) E (s) G r (s) G ob (s) Y (s) Rys. 37. Schemat do przykładu 9 Transmitancja operatorowa obiektu i rzeczywistego regulatora typu PID są równe odpowiednio: (22) Zbuduj schemat blokowy umożliwiający obserwację odpowiedzi układu na skok jednostkowy. Wykreśl na jednym wykresie wejście i uchyb regulacji. Na drugim wykresie przedstaw wyjście układu regulacji. Przyjmij czas symulacji równy 100 jednostek czasu. Przykładowe rozwiązanie: Rozpisując transmitancję operatorową regulatora typu PID (zależność 23) uzyskujemy: (23) (24) Budujemy schemat układu regulacji: - 24 -

Rys. 38. Schemat w Simulinku do Przykładu 9 UWAGA: Obiekty Rzeczywisty regulator PID i Obiekt zostały zbudowane w Simulinku z użyciem bloku Transfer Fcn. Wynik działania: W celu wykreślenia na jednym wykresie wejścia i uchybu regulacji postępujemy podobnie jak w poprzednim przykładzie i korzystamy z polecenia plot w postaci: plot(weuchyb.time, weuchyb.signals.values(:,[1,2])) Po wykonaniu tego poleceniu uzyskamy (dodatkowo umieszczono siatkę, legendę i podpisano osie): Rys. 39. Wynik (wejście i uchyb) do Przykładu 9 Wyjście układu regulacji wykreślimy w analogiczny sposób wykorzystując polecenie plot w postaci: plot(y.time,y.signals.values(:,1)) - 25 -

Po wykonaniu tego poleceniu uzyskamy (dodatkowo umieszczono siatkę i podpisano osie): Rys. 40. Wynik (wyjście) do Przykładu 9 Przykład 10: Dany jest układ regulacji pokazany na rysunku 41: X (s) E (s) G r (s) G ob (s) Y (s) Rys. 41. Schemat do przykładu 10 Transmitancja operatorowa obiektu i regulatora typu P są równe odpowiednio: (25) Zbuduj schemat blokowy umożliwiający obserwację odpowiedzi układu na skok jednostkowy. Wykreśl wyjście układu regulacji. Wyznacz wartość całkowego wskaźnika regulacji (całka z kwadratu uchybu regulacji). Przyjmij czas symulacji równy 50 jednostek czasu. Przykładowe rozwiązanie: Budujemy schemat układu regulacji: (26) - 26 -

Rys. 42. Schemat w Simulinku do Przykładu 10 UWAGA: Obiekty Regulator P i Obiekt zostały zbudowane w Simulinku z użyciem bloku Transfer Fcn. Obiekt Regulator P można zbudować również z użyciem bloku Gain o wartości 0,5. Wynik działania: Rys. 43. Wynik do Przykładu 10 UWAGA: Wyświetlanie wartości całkowego wskaźnika regulacji (rysunek 43). odbywa się z wykorzystaniem bloku Display UWAGA: Model zbudowany w Simulinku możemy wywoływać (symulować) z poziomu MATLAB a. Służy do tego funkcja sim o następującej składni: SimOut = sim('model', Parameters) gdzie: Model jest nazwą modelu zbudowanego w Simulinku (z rozszerzeniem.slx lub.mdl), a Parameters oznacza listę parametrów symulacji, które możemy opcjonalnie zadawać z poziomu MATLAB a. Szczegółowe informacje w zakresie polecenia sim można znaleźć w helpie MATLAB a. - 27 -

Przykład 11: Napisz M-plik rozwiązujący przykład 9 przy wykorzystaniu polecenia sim. Przykładowe rozwiązanie: % Przykład 9 - funkcja sim clear; clc; Ex_9=sim('T3_przyklad_9'); figure; subplot(2,1,1); plot(weuchyb.time,weuchyb.signals.values(:,[1,2])); grid; xlabel('czas'); ylabel('x(t),e(t)'); axis([0 100 0 1.1]); legend('blue - x(t)','red - e(t)','location','southeast'); subplot(2,1,2); plot(y.time,y.signals.values(:,1)); grid; xlabel('czas'); ylabel('y(t)'); axis([0 100 0 1.1]); Wynik działania: Rys. 44. Wynik do Przykładu 9 (funkcja: sim) - 28 -

5. Bibliografia Brzózka J. Ćwiczenia z automatyki w Matlabie i Simulinku. Wydawnictwo MIKOM, 1997. Brzózka J., Dorobczyński L. Matlab - środowisko obliczeń naukowo - technicznych. Wydawnictwo MIKOM, 2005. Mrozek B., Mrozek Z. Matlab i Simulink. Poradnik użytkownika. Wydanie II. Wydawnictwo HELION, 2004. Osowski S. Modelowanie układów dynamicznych z zastosowaniem języka Simulink. Oficyna Wydawnicza Politechniki Warszawskiej, 1999. Pratap R. Matlab 7 dla naukowców i inżynierów. Wydawnictwo HELION, 2010. Sradomski W. Matlab. Praktyczny poradnik modelowania. Wydawnictwo HELION, 2015. The Mathworks. Simulink - Dynamic System Simulation for MATLAB. Natick, 2000. - 29 -