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
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 .
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 =
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
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
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 =
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.
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
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
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]
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
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
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
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
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
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
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;
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
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:
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')
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
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)
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.
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’):
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.
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.