Top Banner
WPROWADZENIE ŚRODOWISKO OBLICZEŃ NUMERYCZNYCH MATLAB - SIMULINK
28

WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Feb 28, 2019

Download

Documents

vantu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

WPROWADZENIE

ŚRODOWISKO OBLICZEŃ NUMERYCZNYCH

MATLAB - SIMULINK

Page 2: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania
Page 3: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Spis treści

1. CEL OPRACOWANIA .................................... ................................. 4

2. ŚRODOWISKO I PROGRAMOWANIE W J ĘZYKU MATLAB ........ 5

2.1. Wprowadzenie do pracy w środowisku języka MATLAB ........................................... 5

2.1.1. Przykłady poleceń .................................................................................................. 5

2.1.2. Sprawdzanie funkcji............................................................................................... 7

2.2. Wprowadzanie macierzy............................................................................................... 7

2.2.1. Generowanie ciągów.............................................................................................. 7

2.2.2. Generowanie macierzy ........................................................................................... 8

2.3. Działania na macierzach i tablicach.............................................................................. 9

2.3.1. Dostęp do elementów macierzy .............................................................................. 9

2.3.2. Działania na macierzach....................................................................................... 11

2.3.3. Działania tablicowe.............................................................................................. 13

2.4. Algebra liniowa ........................................................................................................... 15

2.5. Skrypty (.m pliki) ........................................................................................................ 16

2.5.1. Instrukcje sterujące – pętle ................................................................................... 16

2.5.2. Funkcje................................................................................................................ 17

2.6. Grafika dwuwymiarowa.............................................................................................. 19

2.6.1. Rysowanie ........................................................................................................... 20

2.7. Grafika trójwymiarowa .............................................................................................. 21

3. SILMULINK.......................................... .......................................... 23

3.1. Modelowanie i symulacja układów dynamicznych..................................................... 23

3.1.1. Rozwiązywanie równań różniczkowych................................................................ 23

3.2. Rozwiązywanie układów liniowych.............................................................................25

3.3. Współpraca Simulink-a z Matlab-em ......................................................................... 26

4. LITERATURA ......................................... ....................................... 28

Page 4: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 4

1. Cel opracowania

Celem opracowania jest zapoznanie studentów z podstawowymi zastosowaniami pro-

gramu Matlab i jego podprogramu (toolbox-a) Simulink.

Omówiono skrótowo:

- w środowisku Matlab-a

• generowanie zmiennych (wektory i macierze),

• podstawowe operacje na zmiennych,

• stosowanie podstawowych, wbudowanych, funkcji matematycznych do

obliczeń inżynierskich,

• sporządzanie wykresów: dwu i trójwymiarowych,

• pisanie prostych programów rozwiązujących zadany problem,

• tworzenie m-plików wykonawczych uwzględniających np. deklaracje

zmiennych, wywołanie napisanego podprogramu, wykresy itp.

- w programie Simulink,

• modelowanie i symulowanie prostych systemów dynamicznych,

• rozwiązywanie układów równań liniowych,

• korzystanie z wyników Simulink-a w przestrzeni Matlab-a .

Page 5: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 5

2. Środowisko i programowanie w j ęzyku MATLAB

MATLAB - pakiet obliczeniowy firmy MathWorks jest przeznaczony do wykonywania

różnorodnych obliczeń numerycznych. Serce pakietu stanowi interpreter języka umoż-

liwiający implementację algorytmów numerycznych oraz biblioteki podstawowych

działań na macierzach (odwracanie, dodawanie/odejmowanie, wartości własne itp.).

• Podstawowym typem danych jest macierz, stąd nazwa MATrix LABoratory .

• Pakiet posiada obszerne biblioteki dodatkowych procedur umożliwiające roz-

wiązywanie typowych problemów obliczeniowych.

• Prosta budowa okienkowa ułatwia korzystanie z programu.

• Łatwa i estetyczna jest wizualizacja wyników w postaci dwu- i trójwymiaro-

wych wykresów.

• Dodatkową zaletą pakietu MATLAB jest możliwość przeprowadzenia obliczeń

symbolicznych (na wzorach).

2.1. Wprowadzenie do pracy w środowisku j ęzyka MATLAB

Praca w środowisku języka MATLAB polega na wydawaniu poleceń, które po zatwier-

dzeniu wykonywane są przez interpreter.

Większą liczbę instrukcji można zapisać w zbiorze tekstowym zwanym skryptem (pliki

z rozszerzeniem .m).

2.1.1. Przykłady polece ń

Podstawienie:

» a=3;

powoduje utworzenie zmiennej a o wartości 3.

Uwaga!: Średnik po poleceniu powoduje, że wartość będąca wynikiem nie będzie wy-

świetlana na ekranie.

» b=sin(a)

b =

Page 6: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 6

0.1411

oblicza wartość funkcji sinus dla zmiennej a, wynik zapisuje do zmiennej b i wyświetla

na ekranie.

Jeżeli nie podano nazwy zmiennej to wynik działania jest umieszczany w standardowej

zmiennej ans, np.:

» cos(pi/3)

ans =

0.5000

Utworzona (zdefiniowana) zmienna jest pamiętana od momentu utworzenia, aż do

chwili jej usunięcia. Możliwa jest przy tym nie tylko zmiana wartości, ale również roz-

miaru zmiennej.

Nazwy zmiennych i informacje o nich można uzyskać wywołując funkcje who i whos.

Usunięcie zmiennej z pamięci: clear a - usuwa zmienną a;

clear - usuwa wszystkie zmienne znajdujące się w pamięci.

Zapisanie zmiennych na dysku: save nazwa_pliku (domyślnie przyjmowane jest rozsze-

rzenie .mat).

Wczytanie danych z pliku dyskowego: load nazwa_pliku

Korzystanie z podręcznej pomocy podającej opis funkcji: help nazwa_funkcji

Zawartość aktualnego katalogu można wyświetlić używając funkcji dir lub ls.

Do zmiany katalogu służy polecenie: cd nazwa_katalogu

Page 7: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 7

2.1.2. Sprawdzanie funkcji » help sqrt

SQRT Square root.

SQRT(X) is the square root of the elements of X . Complex

results are produced if X is not positive.

See also SQRTM.

» sqrt(4)

ans =

2

» type sqrt

sqrt is a built-in function.

» sqrt(-4)

ans =

0 + 2.00000000000000i

2.2. Wprowadzanie macierzy

2.2.1. Generowanie ci ągów

a=min:krok:max;

Polecenie generuje wektor poczynając od elementu o wartości min, kończąc na elemen-

cie o wartości max z krokiem krok. Jeżeli parametr krok zostanie pominięty, przyjmuje

się, iż krok=1.

Przykład 2.1

» bb=7.1:-2:1 bb =

7.1 5.1 3.1 1.1 » cc=3:5 cc = 3 4 5

Page 8: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 8

2.2.2. Generowanie macierzy

Definicja macierzy przez wyliczenie elementów:

Przykład 2.2

» A=[2 2 2 1; 1 2 3 1];

lub:

» A=[2 2 2 1

1 2 3 1]

A =

2 2 2 1

1 2 3 1

Poszczególne elementy macierzy oddziela się spacjami, a wiersze średnikami lub

umieszcza się je w oddzielnych liniach.

Definicja macierzy przez wygenerowanie elementów:

A=[min:krok:max]

Polecenie generuje wektor poczynając od elementu o wartości min, kończąc na elemen-

cie o wartości max z krokiem krok. Jeżeli parametr krok zostanie pominięty, przyjmuje

się, iż krok=1.

Przykład 2.3

Wygeneruj macierz dwuwierszową o wyrazach od 1 do 10 w pierwszym wierszu i o

wyrazach od 2 do 20 (co 2) w wierszu drugim.

» A=[1:10; 2:2:20]

A =

1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

Definicja macierzy wykorzystując elementy innych macierzy:

Przykład 2.4

Utwórz macierz D budując ją ze zdefiniowanych macierzy A, B i C.

» A=[1 4 1; 2 0 1];

» B=[3 1; 4 1];

» C=[1 2 2 0 1; 2 4 7 1 0];

» D=[A B; C]

D =

Page 9: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 9

1 4 1 3 1

2 0 1 4 1

1 2 2 0 1

2 4 7 1 0

Uwaga!: Przy takim budowaniu macierzy należy pamiętać o zgodności wymiarów. Ma-

cierze: jednostkowe, wypełnione jedynkami i zerami definiuje się następująco:

» eye(3) ans = 1 0 0 0 1 0 0 0 1 » zeros(2,2) ans = 0 0 0 0 » ones(2,3) ans = 1 1 1 1 1 1

2.3. Działania na macierzach i tablicach

2.3.1. Dost ęp do elementów macierzy

Odwołanie do elementów:

Przykład 2.5

» A=[1 2 3; 0 9 8; 1 1 0] A = 1 2 3 0 9 8 1 1 0 » A(2,3) - odwołanie do elementu w wierszu 2 i kolumnie 3;

ans =

8

» A(3,2) - odwołanie do elementu w wierszu 3 i kolumnie 2

ans =

1

Wybór największego elementu

max(A) - zwraca największy element wektora A.

Page 10: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 10

W przypadku gdy A jest macierzą, zwraca wektor wierszowy, którego elementami są

maksymalne elementy z każdej kolumny A

Przykład 2.6

» max(A)

ans =

1 9 8

Wybór najmniejszego elementu

min(A) - zwraca najmniejszy element wektora A.

W przypadku gdy A jest macierzą, zwraca wektor wierszowy, którego elementami są

minimalne elementy z każdej kolumny A

Przykład 2.7

» min(A)

ans =

0 1 0

Obliczanie wartości średniej elementów

mean(A) - zwraca średnią arytmetyczną elementów wektora A.

W przypadku gdy A jest macierzą, zwraca wektor wierszowy, którego elementami są

średnie arytmetyczne elementów z każdej kolumny A

Przykład 2.8

» mean(A)

ans =

0.6667 4.0000 3.6667

Odwołanie do podmacierzy:

Przykład 2.9

» A=[1 2 3 4 5 6; 0 9 8 7 6 5; 1 1 0 0 2 2]

A =

1 2 3 4 5 6

0 9 8 7 6 5

1 1 0 0 2 2

Page 11: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 11

» B=A(:,[1:3 5]) - utworzenie macierzy B poprzez pobranie z macierzy A kolumn: 1-3 oraz 5

B =

1 2 3 5

0 9 8 6

1 1 0 2

» B=A([1 3],1:2:5) - utworzenie macierzy B z elementów macierzy A leżących na przecięciu wierszy 1 i 3 z kolumnami 1, 3 i 5

B =

1 3 5

1 0 2

2.3.2. Działania na macierzach

Suma i różnica macierzy

Przykład 2.10

Zdefiniuj dwie macierze A i B, a następnie oblicz ich sumę, różnicę oraz dodaj do ele-

mentów macierzy A liczbę 2.

Definicja macierzy:

» A=[1 -1 2; -2 3 1]

A =

1 -1 2

-2 3 1

» B=[1 1 1; 0 -2 2]

B =

1 1 1

0 -2 2

Suma:

» A+B

ans =

2 0 3

-2 1 3

Różnica:

» A-B

ans =

0 -2 1 -2 5 -1

Page 12: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 12

Dodanie do elementów macierzy A liczby 2:

» A+2

ans =

3 1 4

0 5 3

Mnożenie macierzy

Przykład 2.11

Zdefiniuj dwie macierze A i B, a następnie oblicz ich iloczyn oraz pomnóż elementy

macierzy A przez 2.

Definicja macierzy:

» A=[1 1 0; 2 1 1]

A =

1 1 0

2 1 1

» B=[2; 2; 2]

B=

2

2

2

Iloczyn macierzowy:

» A*B

ans =

4

8

Iloczyn macierzy przez liczbę:

» A*2

ans =

2 2 0

4 2 2

Odwracanie i transpozycja

Przykład 2.12

Zdefiniuj macierz A, a następnie wyznacz macierz odwrotną do niej i dokonaj transpo-

zycji.

» A=[1 2 3; 0 9 8; 3 4 7]

Page 13: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 13

A =

1 2 3

0 9 8

3 4 7

»inv(A) - zwraca macierz odwrotną do A ans =

-15.5000 1.0000 5.5000

-12.0000 1.0000 4.0000

13.5000 -1.0000 -4.5000

» A’ - transponuje macierz A ans =

1 0 3

2 9 4

3 8 7

Przykład 2.13

Zdefiniuj wektor kolumnowy A, a następnie oblicz sumę kwadratów elementów tego

wektora.

» A=[1 2 3]

A =

1 2 3

» A*A’

ans =

14

2.3.3. Działania tablicowe

Operacje na zmiennych w Matlabie są wykonywane wektorowo, natomiast użycie

kropki w wyrażeniu powoduje wykonanie działania skalarnego.

» b=2;

» e=[5 6

7 8]

e =

5 6

7 8

» f=b*e

Page 14: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 14

f = 10 12

14 16

» p=e.*f

p = 50 72

98 128

» f^2

ans = 268 312

364 424

» f.^2

ans = 100 144

196 256

Uwaga!:Rozróżniamy dzielenie „dwustronne”: lewo na prawo(/) i prawo na lewo (\)

» gg=6;

» hh=3;

» gg/hh

ans = 2

» gg\hh

ans = 0.5

Uwaga!: Dzielenie na prawą stronę ma szczególne zastosowanie przy rozwiązywaniu

układu równań y=mx

Page 15: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 15

2.4. Algebra liniowa

Przykład 2.14 Rozwiąż układ równań liniowych:

=+

=+

023

12

21

21

xx

xx

Układ ten można zapisać w postaci macierzowej BAX =

gdzie:

=

23

12A ;

=

2

1

x

xX ;

=

0

1B

Dla której rozwiązanie ma postać:

BX 1−= A

>> A=[2 1;3 2]

A =

2 1

3 2

>> B=[1; 0]

B =

1

0

>> X=inv(A)*B

X =

2.0000

-3.0000

Uwaga!: Zagadnienie to można rozwiązać także korzystając z dzielenia prawo na lewo

>> X=A\B

Page 16: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 16

X =

2.0000

-3.0000

2.5. Skrypty (.m pliki)

Przykład 2.15 Napisz skrypt (otwierając z menu File z opcji New plik M-file), który kreśli wykres

wybranej przez użytkownika funkcji jednej zmiennej w przedziale [0,4π].

% wykres funkcji jednej zmiennej x=[0:0.1:4*pi]; wzor=input('Podaj funkcje f(x):','s') % podac funkcje np. sin(x) y=eval(wzor); plot(x,y); % kreslenie wykresu funkcji y=f(x) grid; % podzialka Zapisujemy skrypt w formacie nazwa.m. Wywołanie skryptu (m.pliku) w przestrzeni Matlaba: >> nazwa

2.5.1. Instrukcje steruj ące – pętle

Pętla FOR („dla”):

for zmienna_iterowana = macierz_wartości ciąg_instrukcji end

Działanie pętli polega na wykonaniu ciągu_instrukcji dla kolejnych wartości zmien-

nej_iterowanej. Wartościami tymi są kolejne wektory kolumnowe pobrane z macie-

rzy_wartości (jeżeli jest to wektor, to kolejno zostaną wykonane instrukcje dla danych

elementów tego wektora).

Pętla WHILE („dopóki”):

while wyrażenie_warunkowe ciąg_instrukcji end

Page 17: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 17

Działanie pętli polega na wykonaniu ciągu_instrukcji dopóki wyrażenie_warunkowe

jest spełnione.

Instrukcja warunkowa IF („jeżeli”):

if wyrażenie_warunkowe1 ciąg_instrukcji1 elseif wyrażenie_warunkowe2 ciąg_instrukcji2 else ciąg_instrukcji3 end

Działanie instrukcji jest następujące: Jeżeli wyrażenie_warunkowe1 jest spełnione, to

wykonywany jest ciąg_instrukcji1, w przeciwnym razie sprawdzane jest wyraże-

nie_warunkowe2, jeżeli jest ono spełnione wykonywany jest ciąg_instrukcji2, jeżeli nie,

wykonywany jest ciąg_instrukcji3. Instrukcję warunkową IF można rozbudować dla

większej liczby wyrażeń_warunkowych i odpowiadających im ciągów_instrukcji.

2.5.2. Funkcje

W języku MATLAB istnieje możliwość definiowania własnych funkcji, jako elemen-

tów strukturalnych programu.

Definicja funkcji ma następującą postać: function[wartość_funkcji]=nazwa_funkcji(argument1,..,argumentN) ciąg instrukcji Przykład 2.16 Napisz funkcję (otwierając z menu File z opcji New plik M-file) wyznaczającą wartość

silni n!, gdzie n jest liczbą naturalną.

% Funkcja wyznacza wartosc n! function[wynik]=silnia(n) wynik=1; for i=1:n wynik=wynik*i; end

Page 18: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 18

Zapisz ją pod nazwą silnia0.m, a następnie uruchom wpisując w linii komend jej nazwę

wraz z wartością argumentu n umieszczoną w nawiasie, np.:

» silnia0(4)

ans =

24

Przykłady funkcji silnia z użyciem pętli:

• instrukcja for function y=silnia1(x) %Funkcja SILNIA1 % %y=silnia1(x) %oblicza silnie liczby x większej od zera %wykorzystuje instrukcje for if ~(x>0), error('Liczba musi byc wieksza od zera'), end y=1; if x>1, for i= 2:x, y= y.*i; end, end

• instrukcja while

function y=silnia2(x) %Funkcja SILNIA2 % %y=silnia2(x) %oblicza silnie liczby x wiekszej od zera %wykorzystuje instrukcje while if ~(x>0), error('Liczba musi byc wieksza od zera'), end y=1; while x>0, y=y.*x; x=x-1; end

• rekurencja

Page 19: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 19

function [y]=silnia3(x) %Funkcja SILNIA3 % %y=silnia3(x) %oblicza silnie liczby x wiekszej od zera, a mniejszej od 10 %wykorzystuje metode rekurencji if ~(x>0), error('Liczba musi byc wieksza od zera'), elseif x>10 error('przekroczony zakres x>10'), end y=1; if x>1, y=x*silnia3(x-1); end

2.6. Grafika dwuwymiarowa

Najczęściej spotykanym sposobem graficznej prezentacji danych w języku MATLAB

jest wykres funkcji jednej zmiennej. Służy do tego funkcja plot(x,y), gdzie y=f(x);

Okno graficzne można wyczyścić wywołując funkcję clf. Zamknięcie okna graficznego

odbywa się poprzez wywołanie funkcji close. Dodatkowe okna można otworzyć przy

pomocy funkcji figure.

Otworzyć jak i zamknąć można dowolne okno podając jego numer jako argument.

W celu uzyskania kilku wykresów w jednym oknie należy wykorzystać funkcję

subplot(m,n,p)

gdzie: m - liczba wykresów w pionie; n - liczba wykresów w poziomie; p - kolejny nu-mer wykresu. Skala wykresu dobierana jest automatycznie. Chcąc ją zmienić, trzeba wywołać funkcję

axis([xmin xmax ymin ymax]) i jako argument podać wektor określający nowe parame-

try osi.

Wykres można opisać podając nazwy zmiennych, tytuł, itp.

title(‘tekst’) - tytuł rysunku;

xlabel(‘tekst’) - opis osi x;

ylabel(‘tekst’) - opis osi y;

Page 20: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 20

text(x,y,‘tekst’) - umieszcza ‘tekst’ w dowolnym punkcie o współrzędnych (x,y);

grid - włącza lub wyłącza siatkę;

Przykład 2.17 Napisz skrypt kreślący przykładowy wykres wraz z opisem.

% Skrypt kresli przykladowy wykres wraz z opisem x=[0:pi/20:2*pi]; y=sin(x); plot(x,y) title(‘Wykres funkcji sin(x)’) xlabel(‘x’) ylabel(‘f(x)’) text(2.5,0.7,’f(x)=sin(x)’) grid Zapisz go pod nazwą wykres0.m i uruchom.

2.6.1. Rysowanie

Istnieją funkcje pozwalające na tworzenie dowolnych rysunków z linii i wielokątów.

line(x,y) - rysuje linię łamaną łącząc wierzchołki punktów wyznaczonych przez elemen-

ty wektorów x i y;

fill(x,y,’c’) - rysuje wielokąt o wierzchołkach w punktach wyznaczonych przez elemen-

ty wektorów x i y wypełniony kolorem określonym przez argument c według poniższe-

go opisu kolorów:

y - żółty

m - fioletowy

c - turkusowy

r - czerwony

g - zielony

b - niebieski

w - biały

k - czarny

Page 21: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 21

Przykład 2.18 Narysuj trójkąt o wierzchołkach w punktach (0,1), (3,4), (4,2) używając funkcji line

oraz fill z wypełnieniem w kolorze niebieskim.

» line([0 3 4 0],[1 4 2 1])

» fill([0 4 3 0],[1 4 2 0],’r’)

2.7. Grafika trójwymiarowa

Większość funkcji języka MATLAB generujących rysunki trójwymiarowe służy do

kreślenia powierzchni. W praktyce definiując powierzchnię trzeba się ograniczyć do

skończonego zbioru punktów należących do obszaru.

[x,y]=meshgrid(X,Y) - tworzy macierze x i y opisujące położenie węzłów prostokątnej

siatki pobierając wartości z wektorów X i Y.

mesh(x,y,z) - rysuje siatkę powierzchni opisanej przez macierze x, y i z.

surf(x,y,z) - rysuje kolorową powierzchnię opisaną przez macierze x, y i z.

surfl(x,y,z) - rysuje kolorową powierzchnię opisaną przez macierze x, y i z uwzględnia-

jąc na niej odbicie światła.

plot3(x,y,z) - rysuje krzywą w przestrzeni opisaną przez wektory x, y i z.

Przykład 2.19 Napisz skrypt kreślący siatkę wartości funkcji )exp()sin()sin(),( 22 yxyxyxf −−⋅⋅=

w przedziale [-π,π].

% Skrypt rysuje siatke wartosci funkcji clf; [x,y]=meshgrid(-pi:0.2:pi,-pi:0.2:pi); z=sin(x).*sin(y).*exp(-x.^2-y.^2); mesh(x,y,z) Zapisz go pod nazwą wykres3d.m i uruchom.

Rozbuduj powyższy skrypt o rysowanie kolorowej powierzchni poprzez dodanie na

końcu polecenia:

Page 22: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 22

surf(x,y,z) lub surfl(x,y,z) Przykład 2.20 Napisz skrypt kreślący krzywą w przestrzeni trójwymiarowej:

% Skrypt kresli krzywa w przestrzeni trojwymiarowej x=[0:0.1:10]; y=2*cos(x); z=sin(2*y); plot3(x,y,z) grid title('Wykres krzywej w przestrzeni trojwymiarowej') xlabel('x') ylabel('y') zlabel('z')

Page 23: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 23

3. Silmulink

Simulink jest programowym narzędziem do modelowania, symulacji i analizy syste-

mów dynamicznych. Ważną zaletą programu jest jego interaktywność, co oznacza, ze

można zmieniać parametry układu podczas symulacji.

Modelowanie w Simulink-u odbywa się z wykorzystaniem graficznego interfejsu użyt-

kownika (GUI). Polega ono na budowanie modeli z gotowych bloków poprzez łączenie

ich w podsystemy i systemy. Istnieje możliwość utworzenia własnych bloków (bibliotek

użytkownika). Program Simulink jest integralnie związany ze środowiskiem Matlab-a i

może być uruchamiany także z jego poziomu.

3.1. Modelowanie i symulacja układów dynamicznych

3.1.1. Rozwiązywanie równa ń różniczkowych

Przykład 3.1 Rozwiąż równanie różniczkowe postaci:

12 =+ ydt

dy

(3.1)

z warunkiem początkowym y(0)=1. Przekształcamy równanie do postaci:

ydt

dy21−=

(3.2)

Tworzymy schemat blokowy w Simulinku:

Do zamodelowania różniczkowania używamy bloku całkowania (wykorzystując zależ-

ność, że całkowanie jest funkcją odwrotną do różniczkowania).

Rys. 3.1 Blok całkowania w Simulinku Całkowity schemat modelu reprezentujący równanie 3.1 przedstawiony jest na rys. 3.2

Page 24: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 24

Rys. 3.2 Schemat blokowy układu dla przykładu 3.1 Wartość y(0)=1 jest określana w bloku całkowania jako warunek początkowy.

Rys. 3.3 Przebieg wielkości wyjściowej Przykład 3.2 Rozwiąż równanie różniczkowe postaci:

1422

2

=++ ydt

dy

dt

yd

(3.3)

z warunkiem początkowym y(0)=0, y’(0)=0 Przekształcamy równanie do postaci:

ydt

dy

dt

yd2

2

1

2

12

2

−−= (3.4)

Page 25: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 25

Rys. 3.4 Schemat blokowy układu dla przykładu 2 Uwaga!: Ponieważ równanie jest drugiego rzędu więc musimy zastosować dwa ele-menty całkujące celem uzyskania funkcji y(t).

Rys. 3.5 Przebieg wielkości wyjściowej

3.2. Rozwi ązywanie układów liniowych

Rozwiązać układ równań:

=−

=+

421

221

zz

zz

(3.5)

Korzystamy z bloku Algebraic Constraint (biblioteka Math). Konstruujemy model po-

zwalający rozwiązać układ równań (3.5) jak na rysunku 3.6.

Page 26: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 26

Rys. 3.6 Schemat blokowy układu rozwiązywania równań liniowych Dla układu trzech równań zastosujemy, analogicznie trzy bloki Algebraic Constraint.

3.3. Współpraca Simulink-a z Matlab-em

Korzystając z pliku wykonawczego Matlab-a możemy wywołać model wykonany w

Simulink-u. Na przykład gdy przeprowadzamy wielowariantową analizę układu i zmie-

niamy parametry wtedy model w Simulink-u dogodnie jest przedstawić jak na rys. 3.7.

Rys. 3.7 Schemat blokowy układu dynamicznego z parametrami Wywołanie modelu Simulink-a z poziomu Matlab-a (.m pliku) uwzględnia instrukcję

sim(‘nazwa’):

Page 27: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 27

% model simulink-a o nazwie suspension % definicja parametrów modelu clear all; m= 1000; k=1000; c=100; V=20; % Symulacja sim('suspension'); load yin.mat; % wgranie zbioru danych wejściowych load pos.mat; % wgranie zbioru danych wyjściowych % wykres figure(1); subplot(2,1,1) plot(x(1,:),x(2,:)); % plot(t,yzad) -> wykorzystanie bloku To Workspace subplot(2,1,2) plot(y(1,:),y(2,:)); Uwaga ! W przedstawionym m-pliku dane z Simulink-a są wgrywane do Matlab-a za

pomocą bloku To File. Podobny efekt uzyskamy korzystając z bloku To Workspace.

Różnica polega na tym, że poprzez blok To File zapisujemy dane na dysku.

Page 28: WPROWADZENIE - IIS Windows Serverrg1.polsl.pl/kaula/Matlab-Simulink_wprowadzenie.pdf · Modelowanie Cyfrowe - laboratorium 4 Matlab – Simulink 1. Cel opracowania Celem opracowania

Modelowanie Cyfrowe - laboratorium

Matlab – Simulink 28

4. Literatura

1. Brzózka J., Dorobczyński L.: Programowanie w MATLAB. Wyd. MIKOM War-

szawa. 1998.

2. Brzózka J.: Regulatory cyfrowe w automatyce. Wyd. MIKOM, Warszawa 2002.

3. Kamińska A., Pańczyk B.: Matlab – przykłady i zadania. Wyd. MIKOM, Warszawa

2002.

4. Klamka J., Ogonowski Z.: Teoria systemów liniowych. Skrypty uczelniane Poli-

techniki Śląskiej, Skrypt nr 1987, Gliwice 1996. (Zawiera wstęp do pakietu MA-

TLAB i SIMULINK)

5. Mrozek B., Mrozek Z.: MATLAB 6 poradnik użytkownika. Wydawnictwo PLJ,

Warszawa 2001.

6. Mrozek B., Mrozek Z.: MATLAB uniwersalne środowisko do obliczeń naukowo-

technicznych. Wydawnictwo PLJ, Warszawa 1996.

7. Osowski S., Toboła A.: Analiza i projektowanie komputerowe obwodów z zastoso-

waniem języków MATLAB i PCNAP. Oficyna Wydawnicza Politechniki Warszaw-

skiej, Warszawa 1995.

8. Osowski S.: Modelowanie układów dynamicznych z zastosowaniem języka SIMU-

LINK. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 1997.

9. Osowski S., Cichocki A., Siwek A.: MATLAB w zastosowaniu do obliczeń obwo-

dowych i przetwarzania sygnałów. Oficyna Wydawnicza Politechniki Warszaw-

skiej, Warszawa 2006

10. Pratap R.: Matlak 7 dla naukowców i inżynierów. Wyd. MIKOM, Warszawa 2007.

11. Regel W.: Statystyka matematyczna w programie MATLAB. Wyd. MIKOM, War-

szawa 2003 .

12. Regel W.: Wykresy i obiekty graficzne w programie MATLAB. Wyd. MIKOM,

Warszawa 2003.

13. Regel W.: Przykłady i ćwiczenia w programie SIMULINK. Wyd. MIKOM, War-

szawa 2004 .

14. Wciślik M.: Wprowadzenie do systemu MATLAB: Politechnika Świętokrzyska,

Kielce 2000.

15. Zalewski A., Cegieła R.: MATLAB obliczenia numeryczne i ich zastosowania.

Wyd. Nakom, Poznań 1997.