Wykład 8

Transkrypt

Wykład 8
Metody komputerowe
w obliczeniach inżynierskich
dr inż. Marcel Luzar
[email protected]
p. 325 A-2
www.issi.uz.zgora.pl
Pakiet symulacyjny SIMULINK
•
•
•
•
Wstęp do SIMULINKa
Biblioteka bloków
Tworzenie nowego modelu
Użyteczne techniki obróbki danych
Wstęp do Simulinka
• Simulink – część pakietu numerycznego MATLABA.
• Służy do przeprowadzania symulacji komputerowych.
• Modele w Simulinku buduje się w postaci graficznej,
układając bloki funkcyjne i łącząc je miedzy sobą.
• W celu rozszerzenia możliwości programu stosowane są tzw.
blocksety, realizujące operacje związane z wybraną
dziedziną nauki lub techniki.
• Przy pomocy Simulinka można przeprowadzać zarówno
symulacje z czasem dyskretnym jak i ciągłym.
Wstęp do Simulinka
• Prezentacja narzędzia – krótki film
https://www.youtube.com/watch?v=c7hhZuyW4vQ&t=102s
Wstęp do Simulinka
• Simulinka uruchamia się poprzez wpisanie w Command
Window polecenia simulink lub poprzez kliknięcie ikony
Simulink Library w menu głównym MATLABa.
• Zostaje wyświetlone okno biblioteki bloków.
• Aby utworzyć nowy model, należy kliknąć ikonę
i
wybrać jedną z dostępnych opcji:



•
•
Utworzenie nowego pustego modelu
Utworzenie nowej biblioteki bloków
Utworzenie nowego modelu z wykorzystaniem wzorca
Po wybraniu opcji wykorzystującej szablon, można
zdecydować, który wzorzec zostanie użyty.
Galeria szablonów oferuje wzorce dot. Systemów
komunikacyjnych, układów hydraulicznych i
pneumatycznych, systemów wizyjnych itp.
Biblioteka bloków
• Biblioteka możliwych do użycia bloków przedstawiona jest w
postaci rozwijanego drzewa wyboru.
• Podstawowe bloki znajdują się w bibliotece o nazwie
Simulink. Pozostałe biblioteki oferują dedykowane bloki do
m.in. symulowanie układów aerodynamicznych,
modelowania neuronowego, sterowania rozmytego itd.
• Najczęściej używane bloki zgrupowano w bibliotece o
nazwie Commoly Used Blocks.
• Nazwa biblioteki odpowiada funkcjom bloków w niej
zawartych, np. biblioteka Sources zawiera bloki imitujące
źródła danych wejściowych, Math Operation zawiera bloki
realizujące funkcje matematyczne itd.
• Szczegółowy opis bloków i bibliotek znajduje się w pliku
pomocy.
Budowanie modeli
• Budowanie modeli z bloków odbywa się metodą przeciągnijupuść łącząc ich wyjścia i wejścia strzałkami.
• Połączenie wykonuje się klikając na wyjście lub wejście
bloku i przeciągając kursor do wejścia lub wyjścia innego
bloku.
• Inny sposobem łączenia bloków jest zaznaczenie bloku
wyjściowego i trzymając wciśnięty klawisz ctrl kliknięcie na
blok wejściowy.
• Możliwe jest też wykonywanie połączeń pomiędzy wejściem
bloku a strzałką, tworząc w ten sposób rozgałęzienie.
• Aby utworzyć przykładowy model, należy użyć bloków Sine
Wave i Scope.
Budowanie modeli
• Po utworzeniu modelu, można go zapisać wybierając z menu
File->Save lub klikając ikonę
.
• Utworzony plik modelu może posiadać rozszerzenia *.slx lub
*.mdl. Pliki slx pojawiły się w nowszych wersjach Simulinka,
dlatego jeżeli trzeba uruchamiać plik na starszych wersjach,
warto zapisać je w formacie mdl.
• Klikając dwukrotnie na użytych
blokach, otwiera się okno ich właściwości. Np. w bloku Sine
Wave, który generuje sygnał sinusoidalny, można zmieniać
m.in. jego amplitudę, częstotliwość, przesunięcie fazowe,
bias itd.
• Szczegółowy opis funkcji każdego bloku można uzyskać
wciskając przycisk Help w oknie właściwości.
Personalizacja schematu
• Każdy ze wstawionych bloków ma swoją domyślną nazwę,
którą można edytować.
• Liczba wejść i wyjść bloków w niektórych przypadkach jest
również edytowalna.
• Można wstawiać podpisy linii, w celu ich łatwiejszej
identyfikacji.
• Należy pamiętać, żeby nie używać w nazwach polskich
znaków, które mogą generować błędy kompilacji trudne do
wykrycia.
• Zmiana nazwy bloku oraz linii następuje po dwukrotnym
kliknięciu na:
• Nazwie bloku;
• Linii.
Symulacja
• Uruchamianie symulacji odbywa się poprzez wciśnięcie
ikony
lub wciśnięcie skrótu klawiszowego ctrl+t.
• Czas trwania symulacji ustawia się w polu obok przycisku
uruchamiania. Domyślnie jest to wartość 10.0
• Dodatkowe, zaawansowane parametry symulacji można
zmieniać wybierając z menu Simulation->Model Configuration
Parameters.
• Po wykonaniu symulacji, rezultat można zaobserować
klikając dwukrotnie blok Scope (Oscyloskop).
• Gdy przebieg całego sygnału nie jest widoczny, należy go
przeskalować klikając ikonę Autoscale
• W zależności od wersji Simulinka, ikony przycisków mogą
się różnić.
Pierwsza symulacja
Budowanie modeli c.d.
• Linie wyjściowe z bloków można rozdzielać, aby
zrównoleglić wynik, np. jednocześnie pokazując go na
oscyloskopie oraz wyświetlaczu.
• W tym celu należy wykonać operację „od tyłu”, tj. od wejścia
bloku prowadzić linię i dołączyć ją do linii istniejącej.
Eksport danych do MATLABA
• Simulink jest integralną częścią MATLABA, więc nie ma
problemu z przenoszeniem wyników symulacji.
• Do tego celu służy dedykowany blok To Workspace.
• Po otworzeniu jego właściwości należy zmienić nazwę
zmiennej, pod jaką będzie widoczny wynik w przestrzeni
roboczej MATLABA (domyślnie simout).
• Dodatkowo ważnym parametrem jest pole Save format: . W
nim należy wybrać format zapisu danych. Do wyboru są 4
opcje: Timeseries, Structure with Time, Structure i Array.
• Format zapisu zależy od tego, co później dzieje się z tą
zmienną (tj. czy będzie rysowany wykres, będzie ona
używana do obliczeń itd.).
• Pozostałe opcje bloku To Workspace są dla zaawansowanych
zastosowań i większości przypadków pozostają
niezmienione.
Opcje bloku To Workspace
Eksport danych do MATLABA c.d.
•
•
Istnieje alternatywny sposób eksportu danych do MATLABA.
W niektórych blokach wyjściowych istnieje możliwość zaznaczenia
opcji zapisu wyniku do przestrzenie roboczej. Takim blokiem jest
np. Scope. Po wykonaniu symulacji, można w parametrach tego
bloku ustawić opcję zapisu narysowanego przebiegu pod postacią
zmiennej w przestrzeni roboczej MATLABA.
Wykresy wyeksportowanych danych
• Wyeksportowane dane można narysować korzystając z
podstawowych narzędzi MATLABA. Dzięki temu można
dodać legendę, tytuł wykresu itp.
• Sposób rysowania zależy od formatu, w jakim zapisano
wyeksportowane dane.
• Dane typu TimeSeries i Array są obsługiwane przez polecenie
plot, natomiast pozostałe nie. Należy się do nich
odpowiednio odnieść, stosując notacje poznane na
wykładzie dot. typów danych (Wykład nr 6).
• Dla zbudowanego schematu polecenia rysowania wyglądają
następująco:
dla danych typu TimeSeries
dla danych typu Struct.
Budowanie modeli c.d.
• Zdarza się, że potrzeba jest narysowania wielu sygnałów na
jednym oscyloskopie (ale nie na dwóch wykresach).
• W tym celu należy połączyć wiele sygnałów w jeden (tzw.
szyna). Taki sygnał można później odpowiednio rozdzielić.
• To tych operacji służą bloki Mux
i Demux.
• Bloki te są w bibliotece Signal Routing.
• Liczbę wejść i wyjść tych bloków można dowolnie zmieniać.
Symulacja c.d.
• Symulację systemu w Simulinku można uruchomić nie
otwierając samego Simulinka, tylko zrobić to z poziomu
MATLABA.
• W tym celu należy użyć komend MATLABA, pisząc je w
edytorze lub w Command Window.
• Przykładowe wywołanie symulacji zbudowanego systemu
przedstawia się następująco:
• Otworzenie modelu poleceniem open_system nie jest
wymagane, do przeprowadzenia symulacji.
• Więcej informacji o parametrach funkcji sim dostępna w pliku
pomocy.
Operatory matematyczne
• Korzystając z bloków Simulinka można realizować funkcje
matematyczne.
• Do tego celu służą bloki w bibliotece Math Operations.
• Budowanie operacji matematycznych z pojedynczych bloków
jest żmudne, jednak pozwala w znakomity sposób
zobrazować kolejność wykonywanych działań.
• Np. równanie
można zrealizować następująco:
Przekazywanie zmiennych
• Simulink może korzystać ze zmiennych zapisanych w
przestrzeni roboczej MATLABA.
• W blokach zamiast wartości można podawać nazwy
zmiennych, znajdujących się w Workspace.
• Dzięki temu, można szybko zmienić wiele wartości w modelu
zmieniając tylko jedną wartość w Workspace.
• Próba uruchomienia symulacji bez zdefiniowanych
zmiennych spowoduje błąd.
Blok Signal Builder
• Często istnieje potrzeba wzbudzenia systemu sygnałem o
losowym kształcie lub kształcie dopasowanym do
wzbudzanego układu.
• Istnieją gotowe bloki generujące sygnał wejściowy
sinusoidalny, piłokształtny, kwadratowy itp.
• W celu utworzenia własnego sygnału wejściowego należy
użyć bloku Signal Builder z biblioteki Sources.
• W tym bloku można dowolnie kształtować wartości sygnału
korzystając z edytora graficznego.
Blok Signal Builder
Blok Signal Builder
• Nowe sygnały dodaje się z menu Signal->New.
• Do wyboru jest kilka rodzajów podstawowych sygnałów,
które można dowolnie edytować zmieniając położenie
punktów na wykresie.
• W zależności od ilości dodanych sygnałów, zmienia się
liczba wyjść z bloku.
• Nazwy wyjść można edytować poprzez zmianę nazwy
samego sygnału w polu Name.
Symulacja systemu 2-tank
• W celu wykazania skuteczności Simulinka w zadaniu
symulacji układów regulacji, można posłużyć się przykładem
systemu dwóch zbiorników z książki prof. M. Witczaka.
• Równania stanu dwóch zbiorników:
Symulacja systemu 2-tank
• Numeryczne wartości parametrów to:
g=9.81, A=4.2929, k1=0.3646, k2=0.2542, gdzie g to
przyciąganie grawitacyjne, A to przekrój zbiornika, k1 to
przekrój zwężki pomiędzy zbiornikami a k2 to przekrój
zwężki odpływu z drugiego zbiornika.
• Wartości te można dodać do przestrzeni roboczej poprzez
utworzenie nowego m-pliku skryptowego.
• Po tym można przejść do budowania schematu w Simulinku
Symulacja systemu 2-tank
• Do budowy schematu realizującego równania stanu dwóch
zbiorników, używa się następujących bloków:
Symulacja systemu 2-tank
• Gotowy schemat przedstawia się następująco:
Tworzenie podsystemu
• Schemat złożony z wielu bloków można połączyć w jeden
blok, który realizuje wszystkie wewnętrzne operacje.
• Czynność ta nazywana jest tworzeniem podsystemu (ang.
Create Subsystem).
• Aby utworzyć taki podsystem, należy zaznaczyć
komponenty, które mają wchodzić w jego skład, a następnie
klikając PPM wybrać opcję Create Subsystem from Selection.
Tworzenie podsystemu
• Utworzony podsystem ma tyle wejść i wyjść, ile
zaznaczonych było komponentów In i Out i zajmuje znacznie
mniej miejsca niż poprzedni model.
• Aby zobaczyć, co kryje się pod podsystemem, należy
dwukrotnie na niego kliknąć.
• Podmieniając komponenty In i Out przy systemie na bloku
Constant i Scope, można zadawać sygnały wejściowe i
odczytywać wartości wyjściowe.
• Dopisując poniższe linie do skryptu można uruchomić
symulację.
Symulacja systemu 2-tank
• Poziomy napełniania cieczą zbiorników można obserwować
na oscyloskopach.
• W celu narysowania wykresu w MATLABIE, należy dodać
omawiane wcześniej bloki To Workspace i wyeksportować
wyniki do przestrzeni roboczej.
Maskowanie podsystemu
• Można zmieniać wygląd bloku podsystemu, nakładając tzw.
maskę.
• Dzięki niej można również personalizować blok,
umożliwiając wpisywanie wartości parametrów
użytkownikowi bez ingerencji w schemat układu.
• Aby utworzyć maskę, należy kliknąć PPM na blok systemu i
wybrać Mask->Create Mask.
• Zostanie otwarte okno Edytora Maski, zawierające 4 zakładki
• W zakładce Icon & Ports możliwa jest edycja wyglądu bloku
oraz jego portów wejściowych i wyjściowych
Maskowanie podsystemu
• W zakładce Parameters & Dialog ustawiane są elementy
maski, które zostaną wyświetlone po dwukrotnym kliknięciu
na blok.
• Można dodać pola edycyjne, w których użytkownik może
wpisywać wartości parametrów.
• Dla przykładu dwóch zbiorników, mogą to być np. parametry
A, k1, k2 i g, które są przypisywane w skrypcie.
• W tym celu z panelu Control należy kliknąć na Edit i ustawić
jego wartości tak jak pokazano poniżej.
• Domyśle wartości parametrów można wpisać w Value.
Maskowanie podsystemu
• Klikając przycisk
można podglądnąć, jak będzie
wyświetlana utworzona maska.
• W analogiczny sposób należy dodać wartości k1, k2, g i x0.
• Można teraz przeprowadzić symulację bez uruchamiania
skryptu.