Ćwiczenie 4.

 

Wprowadzenie do SIMULINKA

 

1.        WSTĘP

 

SIMULINK jest pakietem oprogramowania służącym do modelowania, symulacji i analizowania układów dynamicznych. Można implementować w nim układy liniowe jak i nieliniowe modelowane w czasie ciągłym lub dyskretnym oraz w hybrydowym część układu pracuje w czasie dyskretnym inna część w czasie ciągłym. Układy te mogą być również uaktualniane w różnych chwilach czasowych.

SIMULINK wyposażony jest w interfejs graficzny pozwalający w łatwy sposób budować modele w postaci schematów blokowych przy użyciu myszki komputerowej. Przy użyciu tego interfejsu można wykreślać modele w podobny sposób jak to odbywa się przy użyciu kartki i ołówka. SIMULINK zawiera biblioteki źródeł i rejestratorów sygnału, elementów liniowych i nieliniowych oraz połączeń między nimi. Można również tworzyć swoje własne bloki przy użyciu S-Funkcji. Modele mają strukturę hierachiczną, można przeglądać układ z najwyższego poziomu, klikając dwukrotnie myszką na bloki przechodzi się na niższe poziomy zawierające więcej szczegółów. Taka organizacja struktury modelu pozwala na łatwe zorientowanie się w pracy systemu i w jaki sposób poszczególne części oddziaływują na siebie.

Po zdefiniowaniu modelu można przeprowadzać symulacje z użyciem wybranej metody całkowania z poziomu menu SIMULINKA lub po wpisaniu odpowiednich poleceń w oknie komend MATLABA. Menu SIMULINKA jest szczególnie dogodne przy pracy interaktywnej, podczas gdy linia komend MATLABA przy uruchamianiu wielokrotnych symulacji przy zmianie pewnych parametrów w szerokim zakresie.

Wykorzystując oscyloskopy lub inne bloki wyświetlaczy można obserwować wyniki symulacji podczas uruchamiania symulacji. Wyniki symulacji mogą być umieszczane w przestrzeni roboczej MATLABA pozwalając w ten sposób na dalszą ich obróbkę.

 

2. BUDOWANIE PROSTEGO MODELU

 

Przykład ten ilustruje w sposób skrótowy w jaki sposób buduje się model w SIMULINKU. W modelu tym odbywa się wyznaczanie odpowiedzi skokowej na podstawie transmitancji i wyświetlanie zarówno wymuszenia jak i wyników symulacji.

 

Przykład 1

Wyznaczyć odpowiedź skokową układu o transmitancji

dla wn = 1 oraz  x = 0.5. Wyniki symulacji wyświetlić na oscyloskopie.

Zadanie to zrealizowane zostanie w następującym układzie.

Rys.  Kompletny model badanego układu

Aby utworzyć model, najpierw należy wpisać polecenie simulink w oknie komend MATLABA, pojawi się wówczas okno biblioteki SIMULINKA.

Rys. Okno bibliotek SIMULINKA

Aby utworzyć nowy model, należy wybrać opcję File/New/Model lub odpowiednią ikonę w oknie biblioteki SIMULINKA i wówczas zostanie nowe okienko do tworzenia modelu

 

Rys. Okno do tworzenia nowego modelu

Aby utworzyć pożądany w tym przykładzie model należy skopiować odpowiednie bloki z następujących bibliotek SIMULINKA:

- Sources ( blok Step)  wymuszenie skokowe

- Sinks ( blok Scope)  oscyloskop

- Continuous ( blok Transfer Fcn)  transmitancja

- Signals & Systems ( blok Mux)  multiplekser

Aby skopiować z biblioteki blok Step, najpierw należy rozwinąć drzewo biblioteki Sources w celu wyświetlenia jej zawartości przez kliknięcie na węzeł Sources, następnie należy kliknąć na węzeł Step w celu wybrania go. Teraz przeciągając blok Step z biblioteki do okna modelu SIMULINK tworzy kopię tego bloku w punkcie, do którego został przesunięty.

Rys. Skopiowanie bloku Step do okna modelu

W podobny sposób dokonuje się skopiowania do okna modelu pozostałych potrzebnych elementów schematu z odpowiednich bibliotek SIMULINKA. Zmiany położenia bloku z jednego miejsca w inne dokonuje się poprzez naciśnięcie myszką na blok i jego przesunięcie. Po skopiowaniu wszystkich bloków model układu wygląda następująco:

Rys. Skopiowane wszystkie bloki do realizacji schematu

Przeglądając ikony bloków widać, że blok Step ma grot strzałki z prawej strony, natomiast blok Mux ma dwa z lewej i jeden z prawej. Symbol > umieszczony na wyjściu bloku oznacza port wejścia (wejście) do bloku, natomiast jeśli symbol ten znajduje się na wyjściu wówczas oznacza port wyjścia (wyjście) z bloku. Jeśli sygnał przekazywany jest z wyjścia jednego bloku na wejście innego bloku wówczas odbywa się to poprzez linię łączącą. Kiedy bloki zostaną ze sobą połączone, wówczas symbole portów znikną.

Teraz jest czas aby połączyć bloki ze sobą. Połącz blok Step z górnym portem bloku Mux. Jeśliumieszczony zostanie wskaźnik myszki na porcie wyjściowym z prawej strony bloku Step, wówczas znak kursora zmieni swój kształt na krzyż. Naciśnij wówczas przycisk myszy i przesuń kursor do górnego portu wejściowego bloku Mux. Zauważ, że gdy wciśnięty jest przycisk myszy, wówczas linia łącząca bloki jest kreskowana, natomiast gdy wskaźnik osiąga

blok Mux wówczas zmienia się kształt kursora na podwójny krzyżyk.

Rys. Łączenie dwóch bloków linią

Teraz po zwolnieniu przycisku myszy bloki zostaną połączone. Z rysunku 1 widać, że są linie które łączą ten sam port wyjściowy z dwoma różnymi portami wejściowymi. Takie linie łączą port wyjściowy bloku Step z portem wejściowym bloku Mux i blokiem Transfer Fcn. Chcąc założyć węzeł na linii łączącej blok Step i blok Mux i poprowadzić linię do portu

wejściowego bloku Transfer Fcn należy:

- umieścić wskaźnik kursora na linii pomiędzy blokami Step i Mux;

- wcisnąć klawisz Ctrl (lub kliknąć na prawy przycisk myszy);

- trzymając wciśnięty przycisk myszy przesunąć kursor do portu wejściowego bloku Transfer Fcn;

- zwolnij przycisk myszy i SIMULINK narysuje linię pomiędzy punktem początkowym i portem wejściowym bloku Transfer Fcn.

Wykonaj w ten sposób wszystkie konieczne połączenia. Pozostaje jeszcze wprowadzenie parametrów badanej transmitancji w tym celu kliknij dwukrotnie na blok Transfer Fcn

Rys. Wprowadzenie parametrów badanej transmitancji

i wprowadź współczynniki licznika i mianownika transmitancji. Uzyskany został model pokazany na rysunku 1.

Teraz otwórz blok Scope (oscyloskop) do przeglądania wyników symulacji. Mając otwarte okno oscyloskopu uruchom symulację na 10 sekund. Ustawianie parametrów symulacji odbywa się w oknie Simulation Parameters z menu Simulation.

Rys. Wprowadzenie parametrów symulacji

Zauważ, że w oknie dialogowym domyślnie ustawiona jest wartość czasu końcowego (Stop time) na 10.0 sekund. Po ustawieniu parametrów symulacji kliknij na przycisk OK. SIMULINK przyjmuje te wartości i zamyka okno dialogowe.

W menu Simulation wybierz polecenie Start i obserwuj przebiegi w bloku Scope.

Rys. Okno oscyloskopu

Symulacja kończy się osiąga czas końcowy (Step time) określony w oknie dialogowym Simulation Parameters lub kiedy zostanie wybrane polecenie Stop z menu Simulation.

Aby zachować ten model, wybierz polecenie Save z menu File i wprowadź nazwę i wybierz katalog w którym ma być umieszczony. Plik ten zawiera opis modelu.

 

3. ZAPISYWANIE WYNIKÓW SYMULACJI

 

W SIMULINKU możliwe jest również przeprowadzanie symulacji i zapisywanie wybranych zmiennych

do pamięci roboczej MATLABA celem dalszej obróbki. Poniższy przykład ilustruje te możliwości.

Przykład 2

Wyznaczyć odpowiedź skokową układu o transmitancji

dla wn = 2 oraz  x = 0.25. Czas trwania symulacji 10 sekund. Wyniki symulacji wyświetlić na oscyloskopie oraz zapisać do przestrzeni roboczej MATLABA i następnie:

- uzyskane wyniki zapisać do pliku dyskowego pod nazwą odp_skokowa

- zamknąć okno SIMULINKA

- wyczyścić przestrzeń roboczą MATLABA poleceniem clear

- odczytać umieszczone w pliku dyskowym dane i przedstawić je na wykresie

- uzyskany wykres zamieścić w dokumencie Worda

Zadanie to zrealizowane zostanie w następującym układzie.

Rys. Model układu z przykładu 2

W porównaniu z modelem z przykładu 1 w tym układzie zmianie uległa badana transmitancja oraz umieszczone zostały dodatkowe bloki takie jak: Clok (zegar), Mux (multiplekser) oraz To Workspace (zapis danych do przestrzeni roboczej MATLABA). Po dwukrotnym kliknięciu myszką na blok To Workspace pojawi się okno dialogowe pokazane na poniższym rysunku

Rys. Okno dialogowe bloku To Workspace

 

w oknie tym należy zmienić nazwę zbioru zapisywanego do przestrzeni roboczej (Variable name) na wyniki oraz ustawić typ zapisywanych danych (Save format) na Array (tablicowe). Wcisnąć przycisk OK. i zamknąć okno dialogowe bloku To Workspace.

Uzyskany model układu zachować pod nazwą uklad_IIrz.mdl.

Otworzyć okno oscyloskopu (Scope) i przeprowadzić symulację. W przestrzeni roboczej MATLABA umieszczony jest zbiór o nazwie wyniki, którego zawartość można obejrzeć po wpisaniu w oknie komend MATLABA nazwy tego zbioru

>> wyniki

na ekranie pojawią się trzy kolumny zmiennych, w pierwszej kolunie jest czas w drugiej wymusznie a w trzeciej odpowiedź wyjściowa badanej transmitancji.

Wykreślenie uzyskanych w symulacji danych można uzyskać po zapisaniu następującego zestawu komend

>> t = wyniki(:,1) % Wektor czasu

>> u = wyniki(:,2) % Wektor wymuszenia

>> y = wyniki(:,3) % Wektor odpowiedzi

>> id1 = figure(1) %

>> plot( t, u, 'k:', t, y, 'k-')

>> xlabel('t [s]')

>> ylabel('y(t)')

>> title('Odpowiedź skokowa układu II rzędu')

>> set( id1, 'Color', [1 1 1])

Uzyskany wykres przedstawiony został na poniższym rysunku

Rys. Uzyskany w MATLABIE rysunek z wynikami symulacji

Wykres ten może być zachowany w pliku dyskowym do późniejszego odczytania go w oknie graficznym MATLABA lub skopiowany do dokumentu w Wordzie. Zapis do pliku dyskowego odbywa się poleceniem File/Save as pod wprowadzoną nazwę z rozszerzeniem *.fig. Aby umieścić ten rysunek w dokumencie Worda należy uruchomić program Word, następnie w okienku zawierającym rysunek wybrać polecenie Edit/Copy Figure co spowoduje skopiowanie tego rysunku do pamięci i następnie w dokumencie Worda ustawić kursor w miejscu gdzie ma być wstawiony rysunek i wybrać polecenie Edycja/Wklej specjalnie. Rysunek zostanie osadzony w dokumencie Worda.

 

4. STEROWANIE MODELEM SIMULINKA Z POZIOMU KOMEND MATLABA

 

sytuacje w których zachodzi potrzeba przeprowadzenia kilku symulacji w tym samym układzie przy zmianie jakiegoś parametru. Zadanie takie najlepiej wykonać z poziomu MATLABA poprzez napisanie odpowiedniego skryptu i sterowanie wykonywaniem symulacji w SIMULINKU przy pomocy odpowiednich komend MATLABA. Problem ten zrealizowany zostanie na przykładzie.

Przykład 3

Wyznaczyć odpowiedź skokową układu o transmitancji

 

dla wn = 2 oraz  x = = 0.25, 0.5, 0.75. Czas trwania symulacji 10 sekund. Wyniki symulacji przedstawić na jednym wykresie.

Do realizacji tak postawionego zadania wykorzystany zostanie schemat pokazany na poprzednim rysunku i przechowywany pod nazwą uklad_IIrz.mdl. Skrypt wykonujący to zadanie jest następujący:

close all % Zamknięcie wszystkich okien graficznych

clear % Wyczyszczenie pamieci roboczej Matlaba

open_system('uklad_IIrz') % Otwarcie modelu Simulinka

wn = 2; % Wartość częstotliwości drgań własnych

zeta = [ 0.25 0.5 0.75]; % Wartości współczynników tłumienia

for i=1:3, % Pętla for

set_param('uklad_IIrz/Transfer Fcn','Numerator',num2str(wn^2),...

'Denominator','[1 2*zeta(i)*wn wn^2]') % Ustawienie

% parametrów transmitancji

sim('uklad_IIrz') % Wykonanie symulacji

t(:,i)=wyniki(:,1); % Podstawienie wyników symulacji

u(:,i)=wyniki(:,2); % pod odpowiednią zmienną

y(:,i)=wyniki(:,3);

end; % Zakończenie pętli for

close_system % Zamknięcie modelu Simulinka

id1 = figure(1) % Otwarcie okna graficznego

plot(t(:,1),u(:,1),'k:',t(:,1),y(:,1),'k-',t(:,2),y(:,2),'k-',...

t(:,3),y(:,3),'k-') % Wykreślenie zmiennych na wykresie

xlabel('t [s]') % Opis osi x

ylabel('y(t)') % Opis osi y

title('Odpowiedzi skokowe układu II rzędu') % Tytuł wykresu

set( id1, 'Color',[1 1 1]) % Usunięcie marginesu otaczającego wykresy

 

Kod tego programu zapisać w MATLABIE i zachować pod nazwą model_IIrz.m.

Uruchamiając ten skrypt uzyska się wykres pokazany na rysunku

Rys. Wyniki symulacji z przykładu 3.

 

5. MASKOWANIE PODUKŁADÓW MODELU SIMULINKA

 

Maskowanie jest własnością SIMULINKA pozwalającą na wprowadzenie okna dialogowego oraz ikony dla podukładu. Przy użyciu maskowania można:

- uprościć model poprzez zastąpienie pojedynczym oknem wielu okien dialogowych występujących w podukładzie. Zamiast wprowadzania parametrów dla każdego bloku w oddzielnym oknie dialogowym, te parametry są wprowadzane w oknie dialogowym maski i wprowadzane do bloków w zamaskowanym podsystemie;

- zastosować bardziej opisowy i użyteczny interfejs przez zdefiniowanie okna dialogowego ze swoimi własnymi zmiennymi i ich opisem oraz tekstem pomocy;

- zdefiniować komendy, które obliczają zmienne których wartości zależą od parametrów bloku;

- utworzyć ikonę bloku, która oznacza własności podsystemu

- zabezpieczyć przed niezamierzonymi modyfikacjami podukładu poprzez ukrycie ich zawartości pod wprowadzony interfejs.

 

Przykład 4

Dla układu opisanego w przykładzie 1, zamaskować blok z transmitancją II rzędu

]

i ustawić wartości parametrów na  ωn = 1 oraz ζ = 0.5.

Należy zbudować model pokazany na poprzednim rysunku.

Rys. Schemat modelu z zastąpionymi współczynnikami transmitancji na zmienne

 

W bloku Transfer Fcn wartości liczbowe parametrów muszą zostać zastąpione zmiennymi

Rys. Okno dialogowe bloku transmitancji z wprowadzonymi zmiennymi

Teraz z bloku Transfer Fcn utworzony zostanie podukład co realizuje się przez zaznaczenie tego bloku i wybraniu polecenia Edit/Create Subsystem. Spowoduje to zastąpienie bloku transmitancji nową ikoną o nazwie Subsystem, którą to nazwę można zmienić na inną.

Rys. Model układu z utworzonym podukładem (Subsystem)

Klikając teraz dwukrotnie na ikonę bloku Subsystem można otworzyć nowe okno z blokiem

transmitancji z której uczyniony został podukład.

Maskowanie bloku Subsystem odbywa się poprzez zaznaczenie jego ikony i wybranie polecenia Edit/Mask subsystem spowoduje pojawienie się edytora maskowanego podukładu w edytorze tym wprowadzone zostaną zmienne, które występują w podukładzie.

Rys. Okno edytora maski podsystemu

Zmienne te (ωn -> wn oraz ζ -> zeta ) wraz z opisami wprowadzane są po wybraniu opcji Initialization. W opcji Icon w postaci wektorowej wpisuje się rysunek, który jest umieszczany na ikonie Subsystem, natomiast w opcji Documentation wpisuje się komentarz pomocniczy (help) opisujący co dany zamaskowany podukład realizuje. Po wciśnięciu przycisku OK. w oknie dialogowym edytora maski, podukład Subsystem zostanie zamaskowany i po dwukrotnym kliknięciu na jego ikonę pojawi się okno dialogowe zamaskowanego podukładu, do którego wpisuje się wartości parametrów transmitancji w tym przypadku układu II rzędu czyli  ωn = 1 oraz ζ = 0.5.

Rys. Okno dialogowe zamaskowanego podukładu

Teraz do zamaskowanego podukładu dostęp jest możliwy po wybraniu opcji Edit/Look under mask.

 

ĆWICZENIA W SIMULINKU

Zbudować model pracujący w układzie z poniższego rysunku

Rys. Schemat blokowy

W bloku obiekt należy zamaskować układ o poniższej transmitancji:

 

w której ma być dostęp do każdego parametru.

Po zamaskowaniu podstawić w okienku dialogowym zamaskowanego bloku wartości liczbowe poszczególnych współczynników transmitancji, wyznaczonych z liter imienia i nazwiska jednej z osób ćwiczących w danej podgrupie i tak:

k = liczba liter w imieniu

b = 0.1*(liczba liter w nazwisku)

T = liczba spółgłosek w imieniu

a2 = liczba spółgłosek w nazwisku

a0 = liczba samogłosek w nazwisku

a1 =

Dla tak utworzonego schematu przeprowadzić symulację.

 

LITERATURA

1. Mrozek B., MATLAB 5.0x, SIMULINK 2.x  poradnik użytkownika, Warszawa PLJ, 1998.