Wprowadzenie
Pakiet Matlab (Matrix Laboratory) jest środowiskiem obliczeniowym umożliwiającym
integracje analizy matematycznej, działania na macierzach, przetwarzania sygnałów oraz
wiele innych zadań. Podstawową strukturą danych jest w Matlabie macierz (wektor).
W skład środowiska Matlab wchodzą:
Interpreter języka programowania umożliwiający wykonywanie podstawowych operacji na
macierzach.
" Biblioteki procedur (standardowe) realizujące podstawowe obliczenia (np.
przekształcanie macierzy, całkowanie numeryczne, podstawowe obliczenia
statystyczne).
" Dodatkowe biblioteki procedur specjalizowane przyborniki (toolboox y), np.: Signal
Processing Toolbox, identyfikacji systemów - System Identification Toolbox,
projektowania i analizy liniowych układów sterowania - Control System Toolbox,
projektowania i analizy krzepkich kładów sterowania - Robust Control Toolbox,
analizy i projektowania nieliniowych układów terowania - Nonlinear Control Design
Toolbox, optymalizacji - Optomization Toolbox, obliczeń statystycznych Statistics
Toolbox, analizy i projektowania sieci neuronowych - Neural Network Toolbox,
logiki rozmytej - Fuzzy Logic Toolbox.
" Nakładki przykładem nakładki jest SIMULINK. Umożliwia on graficzne
definiowanie struktur oraz przeprowadzanie symulacji w takiej właśnie formie.
Praca w środowisku MAATLAB
Znak zachęty oznacza, że użytkownik może wprowadzać polecenia MATLAB a. MATLAB
stanowi w istocie interpreter języka, zaprojektowanego specjalnie z myślą o obliczeniach
numerycznych i graficznej wizualizacji danych i wyników obliczeń. Polecenia wprowadza się
z klawiatury, w oknie Command Window. W istocie praca w środowisku MATLAB a polega
na wydawaniu poleceń, które po zatwierdzeniu przez użytkownika naciśnięciem klawisza
Enter są wykonywane przez interpreter. W ten sposób bezpośrednio z wiersza poleceń można:
" Zdefiniować zmienną MATLAB a,
" wywołać funkcję MATLAB a,
" wywołać procedurę MATLAB a zbudowaną z poleceń interpretera i zapisaną w pliku
tekstowym o nazwie *.m (pliki te nazywane są M-plikami lub skryptami),
" wydawać polecenia przekazywane do wykonania w systemie operacyjnym DOS lub
środowisku WINDOWS.
Gdy tekst polecenia nie mieści się w jednej linii, można przejść do następnej linii wpisując
wielokropek (& ) przed naciśnięciem klawisza Enter. Każde polecenie, które nie zostanie
zakończone średnikiem (;) powoduje wyświetlenie odpowiedzi.
Skrypty stanowią sekwencję poszczególnych poleceń zapisaną w pliku tekstowym.
Zmienne modyfikowane wewnątrz skryptu są dostępne po jego wykonaniu w przestrzeni
roboczej (workspace). Skrypty jako takie nie zwracają wartości, a jedyną możliwością
parametryzacji ich działania jest wcześniejsze zainicjowanie odpowiednich zmiennych
(parametrów).
Funkcje w odróżnieniu od skryptów, definiowane są jako zamknięte fragmenty algorytmu
obliczeniowego. Posiadają listę parametrów wejściowych, zwracają wartość (lub wartości
przez zastosowanie macierzy). Zmienne wewnętrzne są tworzone na czas wykonania się
funkcji i nie są dostępne z poziomu przestrzenie roboczej.
Okno główne programu MATLAB przedstawia rysunek 1.
Przestrzeń
Okno komend
Okno historii
robocza
Bieżący katalog
Rys. 1. Główne okno programu MATALB
Okno komend pozwala na definiowanie zmiennych, wywoływanie funkcji, &
Przestrzeń robocza przechowywane są tutaj wszystkie zmienne zdefiniowane wcześniej w
przestrzeni roboczej, lub wczytane z pliku.
Zmienne z przestrzeni roboczej można usuwać wykorzystując polecenie clear.
Typy danych.
Do podstawowych typów danych zaliczamy:
" double - zmienna podwójnej precyzji
" single - pojedyncza precyzja
" logical - zmienna logiczna
" uint8,uint16,uint32,uint64 - 8,16,32 i 64- bitowa liczba całkowita bez znaku.
" int8,int16,int32,int64 - 8,16,32 i 64- bitowa liczba całkowita ze znakiem.
" char - zmienna znakowa
" cell - zmienna komórkowa
" struct struktura
Podstawowe funkcje
Podstawowe funkcje matematyczne programu MATLAM zestawiono w tabeli 1.
Macierze i wektory
Macierze i wektory można generowaćó na kilka sposobów. Do najczęściej żywanych należą:
" notacja dwukropkowa (:) np. a=1:2:7 da wektor [1 3 5 7]
" użycie funkcji specjalnych (zeros(), ones(), eyes(), rand(), randn()) a=zeros(5,6) -
generuje tablicŚ złożoną z samych zer o 5 wersach i 6 kolumnach.
" wpisanie przy użyciu [ ], np. a=[1 2 3; 4 5 6; 7 8 9].
Specjalnymi operatorami stosowanymi do oblicze macierzowych są:
" (apostrof): służy do transpozycji macierzy
" (kropka): służy do traktowania macierzy jako tablica i wykonywania operacji komórka
po komórce, np.:
" (\ i /): lewo i prawostronne dzielenie. A\B oznacza rozwiązanie równania Ax=B
Przykłady
e) Wykorzystanie dwukropka do generowania macierzy
MIN:MAX generuje wektor wierszowy zawierający liczby całkowite z przedziału od MIN
do MAX (z krokiem = 1)
MIN:STEP:MAX generuje wektor wierszowy zawierający liczby przedziału od MIN do
MAX (z krokiem = STEP)
Macierze specjalne
eye(n) generuje macierz o rozmiarze n x n, gdzie elementy głównej przekątnej są równe 1,
a wartość wszystkich pozostałych wynosi 0.
>> A = eye(3)
A =
1 0 0
0 1 0
0 0 1
ones(n,m) - macierz o rozmiarze n x m o wszystkich elementach równych 1,
A = ones(3,10)
A =
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
zeros(n,m) - macierz o rozmiarze n x m o wszystkich elementach równych 0,
A = zeros(3,2)
A =
0 0
0 0
0 0
rand(n,m) - macierz o rozmiarze n x m wypełniona liczbami pseudolosowymi z przedziału
<0,1>,
A = rand(2,2)
A =
0.6324 0.2785
0.0975 0.5469
Odwołania do elementów macierzy
Inne typy danych
Składowymi zmiennej typu cell są macierze, łańcuchy oraz innego rodzaju typy danych
obsługiwane przez program MATLAB. Zmienne typu cell deklarujemy podobnie jak
macierze, z ta różnicą, że stosujemy nawiasy klamrowe {} , np.:
>> A{1} = zeros(2,2)
A =
[2x2 double]
>> A{2} = 'Analiza sygnałów'
A =
[2x2 double] 'Analiza sygnałów'
Dostęp do elementów macierzy uzyskuje się podobnie jak w przypadku macierzy, np.:
A{1,1}
ans =
0 0
0 0
lub
A{1,1}(:,1)
ans =
0
0
W celu wyświetlenia pełnej zawartości zmiennej typu cell używamy polecenia celldisp, np.:
celldisp(A)
A{1} =
0 0
0 0
A{2} =
Analiza sygnałów
Struktury
struktury elementami struktur są pola. Struktury, podobnie jak tablice blokowe, mogą
przechowywać inne tablice o dowolnych wymiarach i elementach. Od tablic blokowych
różnią się one sposobem odwoływania się do elementów składowych. Pola struktur mają
swoje nazwy własne. Wskazanie pola danej struktury ma następującą postać:
struktura.dane = A{1}
struktura =
dane: [2x2 double]
struktura.opis = A{2}
struktura =
dane: [2x2 double]
opis: 'Analiza sygnałów'
Odwołanie do elementów struktury:
struktura.dane
ans =
0 0
0 0
struktura.dane(1,:)
ans =
0 0
struktura.opis
ans =
Analiza sygnałów
Operacje na macierzach
W pakiecie Matlab możliwe są (między innymi), następujące operacja na macierzach
+ dodawanie,
- odejmowanie,
* mnożnie,
/ dzielenie macierzy prawe ,
\ dzielenie macierzy lewe ,
^ potęgowanie.
Dodawanie i odejmowanie macierzy jest wykonalne, jeśli każda z macierzy w tych
działaniach ma taką samą liczbę kolumn i wierszy.
Korzystając z operacji dodawania i odejmowania można do każdego elementu macierzy
dodać lub odjąć liczbę.
Mnożenie macierzy jest możliwe, jeżeli liczba kolumn macierzy mnożnej jest równa liczbie
wierszy macierzy mnożnika.
Działanie mnożenia można wykonywać również na wektorach pamiętając, że jeden z
wektorów musi być wektorem wierszowym a drugi kolumnowym. W przeciwnym przypadku
konieczna jest operacja transpozycji oznaczana znakiem (apostrof pojedyńczy), lub
poleceniem transpose
>> C = 1:10
C =
1 2 3 4 5 6 7 8 9 10
>> C'
ans =
1
2
3
4
5
6
7
8
9
10
transpose(C)
ans =
1
2
3
4
5
6
7
8
9
10
Obliczanie iloczynu skalarnego
lub
Obliczanie iloczynu wektorowego
Mnożenie macierzy przez liczbę
Dzielenie macierzy.
Możliwe są dwa sposoby dzielenia macierzy:
" Dzielenie lewostronne oznaczane \
" Dzielenie prawostronne oznaczane /
Zakładając, że macierz A jest nieosobliwa i kwadratowa, wówczas
X = A\B jest rozwiązaniem równania A*X = B
X = B/A jest rozwiązaniem równania X*A = B
Potęgowanie macierzy
Jest określone jeśli macierz jest kwadratowa, a potęga jest skalarem
A = rand(2,2)
A =
0.8147 0.1270
0.9058 0.9134
>> A^2
ans =
0.7788 0.2194
Działania tablicowe na macierzach
Są to działania arytmetyczne na poszczególnych elementach macierzy. Dostępne są
następujące operacje:
+ dodawanie,
- odejmowanie,
.* mnożnie,
./ dzielenie macierzy prawe ,
.\ dzielenie macierzy lewe ,
.^ potęgowanie.
Potęgowanie tablicowe jest działaniem analogicznym do mnożenia tablicowego (potęguje się
kolejne elementy macierzy).
Układ równań liniowych. Odwracanie oraz dzielenie macierzy
Załóżmy że układ równań liniowych doprowadziliśmy do postaci macierzowej
zapisanej (w opisie a nie w Matlabie) jako: A*X=B
gdzie: A=macierz współczynników przy niewiadomych,
X=wektor niewiadomych,
B= wektor wyrazów wolnych
Wtedy rozwiązanie czyli wektor niewiadomych X wyznaczamy przez lewostronne
pomnożenie obu stron równania przez macierz odwrotną do A zapisywaną w Matlabie jako
inv(A):
inv(A)*A*X= inv(A)*B
a ponieważ iloczyn macierzy danej i odwrotnej jest macierzą jednostkową którą można
pominąć więc rozwiązanie dowolnego ukladu równań liniowych otrzymamy przy pomocy
jednego wzoru:
X=inv(A)*B
Jednakże Matlab nie zaleca stosowania funkcji inv(..) a zamiast niej poleca dzielenie
lewostronne macierzy (operator \ w odróżnieniu od dzielenia prawostronnego / ) jako
mniej pracochłonne dla komputera i mogące w większości przypadków zastąpić odwracanie
macierzy. W szczególności dla naszego układu równań liniowych stosując lewostronne
dzielenie mamy (w opisie): A\A*X=A\B co po uproszczeniu trzeba zapisać w Matlabie jako
X=A\B
Matlab stosuje wówczas wydajniejszą metodę eliminacji Gauss a zamiast pracochłonnego
odwracania macierzy, co skraca czas obliczeń 2 do 3 razy i poprawia dokładność.
Przykład
Rozwiązać układ równań
-x1 + x2 + 2x3 = 2
3x1 - x2 + x3 = 6
-x1 + 3x2 + 4x3 = 4
Rozwiązanie
Polega ono na zapisaniu współczynników równania w postaci macierzowej (macierze A i B)
oraz zastosowaniu operatora \ do rozwiązania układu
A = [-1 1 2; 3 -1 1;-1 3 4];
B = [2;6;4];
x = A\B
x =
1.0000
-1.0000
2.0000
Podstawy programowania w Matlabie
Programy dla MATLABa można pisać przy pomocy najprostszych edytorów tekstu jak
NOTATNIK (w Ms Windows). Poszczególne instrukcje można pisać w oddzielnych liniach a
gdy są w tej samej linii to oddzielać przecinkami, natomiast trzeba instrukcje kończyć
średnikami - jeśli chcemy zablokować wyświetlanie wyniku każdej instrukcji na ekranie.
Po utworzeniu trzeba zapisać program do pliku tekstowego o rozszerzeniu nazwy: ".m"
potocznie nazywanego: "m-plikiem".
Istnieją dwa rodzaje m-plików:
skrypty czyli procedury nie wymagające parametrów, wywoływane przez wpisanie
nazwy pliku (bez rozszerzenia ".m") w oknie komend (działają one na zmiennych
tworzonych w tzw. przestrzeni roboczej Matlab a)
funkcje zwracające wartości (w postaci skalara lub wektora) i zazwyczaj wymagające
podania parametrów czyli argumentów funkcji; wywołania ich są najczęściej używane w
wyrażeniach stanowiących fragmenty instrukcji innych m-plików (zmienne używane w
funkcji są lokalne tzn. niedostepne poza ciałem funkcji).
Dowolne objaśnienia czyli komentarze można umieszczać w m-plikach rozpoczynając od
znaku procentu [%] .
Aby uruchomić napisany program w Matlabie trzeba:
1. ustawić jako bieżący folder - Current Directory (u góry) - ten dysk i folder w którym
m-plik został zapisany, korzystając z przycisku [...],
2. wpisać nazwę m-pliku bez rozszerzenia .m ale uwaga:
Matlab rozróżnia duże i małe litery
Przykład
Napisać konwerter zamieniający temperaturę podaną w stopniach Fahrenheita na stopnie
Celsiusa. Stosowny wzór konwersyjny ma postać:
5
TC = *(TF - 32)
9
Rozwiązanie
function tC = far2cel(tF)
% Funkcja zamienia temperature podana w stopniach Fahrenheita
% na jej odpowiednik wyrazony w stopniach Celsiusa
tC = 5/9.*(tF-32);
Wywołanie pliku w Matlabie ma np. postać:
far = far2cel(55)
Pętla for ... end
Pętla ta ma postać
for zmienna = macierz
. . . . instrukcje
end
i wykonuje się tyle razy ile jest kolumn w macierzy a wartościami zmiennej kontrolnej są
właśnie całe kolumny tej macierzy czyli wektory.
W szczególności najczęściej macierz jest ciągiem i jest to wtedy bardziej podobne do pętli for
w innych językach (np. w języku BASIC) a mianowicie:
for zmienna = wart_p : krok : wart_k
. . . . instrukcje
end
Pozwala więc ona powtarzać wykonywanie bloku instrukcji określoną liczbę razy przy czym
dodatkowo zmienna kontrolna w tej pętli przyjmuje kolejno wartości od wart_p do wart_k
z przyrostem (lub ubytkiem) krok. Jeśli krok=1 to można go pominąć w zapisie.
Przykład 1:
Aby otrzymać kwadraty liczb parzystych od 2 do 10 i podstawić je do kolejnych elementów
wektora p:
for i = 1:5
p(i) = (2*i)^2
end
Przykład 2:
Aby wyliczyć i wstawić do wektora y ciąg wartości funkcji sinus przyjmujemy konkretny
zakres kąta (w radianach) na przykład od zera do pi/2 i przyrost na przykład 0.2:
k=0;
for x = 0 : 0.2 : pi/2
k=k+1;
y(k)=sin(x);
end
Przykład 3:
Program:
for w=1:3
for k=1:4
M(w,k)=w+k;
end
end
M
Wygeneruje macierz o 3 wierszach i 4 kolumnach:
M =
2 3 4 5
3 4 5 6
4 5 6 7
Instrukcja IF
Instrukcja ta ma najczęściej postać:
if warunek
. . . .instrukcje1
else
. . . . instrukcje2
end
Instrukcja IF (zupełnie podobnie jak w BASIC-u i innych językach) pozwala zależnie od
spełnienia podanego warunku wykonać blok instrukcje1 lub blok instrukcje2.
Warunek używany w instrukcji IF to dowolne wyrażenie logiczne.
Przykład:
Dla danej wartości x obliczyć y dane wzorem:
ńł - x2 dla x < -1
ł
1
ł ł
y = x dla -1 d" x d" 1żł
ł
ł1+ x2 dla x > 1 ł
ół ł
% program w Matlabie:
x = input('x=');
if x<-1
y = 1-x2
elseif x>1
y = 1+x2
else
y = x
end
Relacje i wyrażenia logiczne
Prostymi wyrażeniami logicznymi są relacje. Relacja to dwa wyrażenia arytmetyczne
połączone operatorem relacji. Są następujące operatory relacji:
Operator Opis
<
"mniejsze"
<=
"mniejsze lub równe"
>
"większe"
>=
"większe lub równe"
==
równe
~=
nierówne
Operatory logiczne to:
Operator Znaczenie
& i
| lub
~ nie
Wykresy dwuwymiarowe
Grafika (a więc wykresy 2D i 3D oraz obrazy) są w Matlabie wyświetlane w osobnych
oknach graficznych określanych angielskim terminem "Figure". Funkcje graficzne
wyświetlają wyniki swych działań w aktywnym (ostatnio otwartym lub używanym) oknie a
jeśli żadne okno "Figure" nie było otwarte to automatycznie tworzą nowe.
Przy sporządzaniu wykresów dwuwymiarowych mogą wystąpić etapy opisane w tabeli
poniżej:
Etap: Przykład: Objaśnienie przykładu:
x = 0:0.2:12;
Przygotowanie danych ciąg wartości dla osi x;
y1 = Bessel(1,x);
wybranie z macierzy B trzech
y2 = Bessel(2,x); y3 = Bessel(3,x);
wierszy dla wykresów
figure(1)
Otwarcie lub wybranie okna okno graficzne o numerze 1
graficznego i ewentualnie pozycji subplot(2,2,1) podzielone na 2 wiersze i 2
w tym oknie kolumny i wybrana część nr 1
h = plot(x,y1,x,y2,x,y3);
wywołanie funkcji realizującej wyświetli 3 wykresy liniowe
wykres i przypisze identyfikator h
set(h,'LineWidth',2,{'LineStyle'},
określenie parametrów linii grubość linii =2, linie ciągła,
{'--';':';'-.'})
wykresu i znaczników punktów przerywana i "osiowa", kolory:
set(h,{'Color'},{'r';'g';'b'})
czerwony, zielony, niebieski
określenie parametrów osi axis([0 12 -0.5 1]) zdefiniowane osie współrz.
grid on
i pokazanie siatki włączona siatka
xlabel('Czas'); ylabel('Amplituda')
zdefiniowanie tekstów opisów opisy osi x i y,
legend(h,'1','2','3')
wykresu, osi teksty legendy,
title('Funkcje Bessela')
i legendy tytuł wykresu
[y,ix] = min(y1);
dodatkowy tekst ze strzałką
text(x(ix),y,'Minimum \rightarrow',...
wyrównany w prawo
'HorizontalAlignment','right')
wydrukowanie lub eksport print -dwinc -r200 wykres1 wysyła do pliku wykres1
wykresu do pliku kolorowy (-dwinc) obraz o roz-
dzielczości 200 dpi (-r200)
W wyniku instrukcji zapisanych w powyższej tabeli uzyskujemy na ekranie następujący
obraz:
Wybrane narzędzia dla wykresów dwuwymiarowych
Instrukcja lub funkcja Matlab'a Opis
nr = figure Otwiera nowe okno graficzne o numerze nr. Może być
pominięta jeśli wystarcza nam tylko jedno okno graficzne.
figure(nr) Uaktywnia okno o numerze nr jeśli takie istnieje a jeśli nie
istnieje to tworzy nowe okno i nadaje mu numer nr.
plot(x,y) Dla danych wektorów x,y rysuje wykres liniowy
plot(y) Wykres liniowy wartości y a na osi x są ich numery
plot(x1,y1, x2,y2, ...) umożliwia rysowanie kilku wykresów w jednym oknie
plot(x1,y1,s1, x2,y2,s2, ...) umożliwia rysowanie kilku wykresów przy czym: s1, s2 to
opisane dalej łańcuchy znaków określające typ linii, kolor
linii oraz rodzaj znacznika punktów
bar(x,y,s) Wykres słupkowy y(x), s= stosunek szerokości słupka do
odstepu między słupkami
bar(y) Wykres słupkowy wartości y a na osi x są ich numery
grid on Włącza siatkę wykresu
title('Tytuł wykresu') Definiuje tytuł wykresu
xlabel('opis x'); ylabel('opis y') Definiują opisy osi x i y
Przykład
x=0 : 0.2 : 2*pi;
plot(x,sin(x));
grid on
title('Przykład wykresu:');
xlabel('x');
ylabel('sin(x)');
Opis znaków definiujących parametry wykresu liniowego (typu PLOT)
Znak Rodzaj linii Znak Znacznik punktu
-
+ +
--
* *
:
. kropka
-.
o o
Kolor linii x x
y
yellow żółty s kwadrat
m
magenta karmazynowy d romb
c
cyan turkusowy p gwiazdka pięcioramienna
r
red czerwony h gwiazdka sześcioramienna
g
green zielony v trójkąt z wierzchołkiem w dół
b
blue niebieski ^ trójkąt z wierzchołkiem w górę
w
white biały < trójkąt z wierzchołkiem w lewo
k
black czarny > trójkąt z wierzchołkiem w prawo
Wykresy trójwymiarowe
Rysowanie wykresów trójwymiarowych w najprostszym przypadku przbiega dwuetapowo:
1) przygotowanie siatki par współrzędnych (x,y) dla funkcji z=f(x,y) przy pomocy
funkcji meshgrid
2) użycie jednej z wielu funkcji dla wykresów trójwymiarowych
Funkcji meshgrid podajemy jako argumenty ciągi (wektory) wartości x oraz y a w wyniku
uzyskujemy dwie macierze zawierające łącznie wszystkie pary współrzędnych dla któych
mają być wyznaczane wartości funkcji zmiennych x,y.
Na przykład:
>> [x y] = meshgrid(0:0.1:0.3, 1:3)
x =
0 0.1000 0.2000 0.3000
0 0.1000 0.2000 0.3000
0 0.1000 0.2000 0.3000
y =
1 1 1 1
2 2 2 2
3 3 3 3
Tak więc funkcja wyliczana będzie dla (0, 1); (0.1, 1); (0.2, 1), ... i tak dalej.
Matlab posiada bardzo wiele funkcji dla wizualizacji linii i powierzchni trójwymiarowych.
Niektóre z nich pokazano na przykładzie poniżej:
Ogólnie przy sporządzaniu wykresów trójwymiarowych mogą wystąpić etapy i funkcje
przedstawione w tabeli poniżej Nie podano ich opisu traktując te informacje jako zachętę do
dalszego studiowania Matlab'a:
Etap: Przykład:
Z = peaks(20);
Przygotowanie danych
figure(1)
Otwarcie lub wybranie okna graficznego i
subplot(2,2,1)
ewentualnie pozycji w tym oknie
h = surf(Z);
Wywołanie funkcji wykresu
colormap hot
Wybranie palety (mapy) kolorów i sposobu
shading interp
cieniowania
set(h,'EdgeColor','k')
light('Position',[-2,2,20])
Zdefiniowanie zródła światła
lighting phong
material([0.4,0.6,0.5,30])
set(h,'FaceColor',[0.7 0.7 0],...
'BackFaceLighting','lit')
view([30,25])
Ustalenie punktu widzenia
set(gca,'CameraViewAngleMode','Manual')
axis([5 15 5 15 -8 8])
określenie parametrów osi
set(gca'ZTickLabel','Negative||Positive')
set(gca,'PlotBoxAspectRatio',[2.5 2.5 1])
xlabel('X Axis')
zdefiniowanie tekstów opisów wykresu, osi i
ylabel('Y Axis')
legendy
zlabel('Function Value')
title('Peaks')
set(gcf,'PaperPositionMode','auto')
wydrukowanie lub eksport wykresu do pliku
print -dps2
Przykład
% najpierw siatka punktów (x,y) dla wykresu 3D:
[x,y]=meshgrid(-3*pi : 0.5 : 3*pi, -3*pi : 0.5 : 3*pi);
% następnie definiujemy funkcję z(x,y):
z = 600 x .* y + 50 * sin(x) + 50 * sin(y);
% przy pomocy funkcji subplot
% wybieramy ćwiartki okna graficznego
% i wyświetlamy w nich wykresy 3D:
% 1) wykres siatkowy:
subplot(2,2,1); mesh(x,y,z);
% 2) wykres powierzchniowy:
subplot(2,2,2); surf(x,y,z);
% 3)wykres warstwicowy:
subplot(2,2,3); contourf(x,y,z);
% 4)wykres siatkowy z warstwicami:
subplot(2,2,4); meshc(x,y,z);
Ćwiczenia do samodzielnego wykonania:
Ćwiczenie 1
Rozważ układ równań:
2 " x + 3" y = 4
ńł
ł4 " x - 6 " y = 7
ół
a). Rozwiąż numerycznie podany układ równań.
Uwaga: zapisz układ w postaci macierzowej A X = b
b). Rozwiąż graficznie podany układ równań.
Narysuj obydwa przebiegi (pierwszy linią czerwoną drugi czarną)
Zaznacz punkt przecięcia znakiem o
Dokonaj opisu rysunku (rysunek poniżej)
Solution of system equations
8
6
2 x + 3 y =4
4
2
Solution:
Y 0
point [1.875 0.083]
-2
-4
4 x - 6 y = 7
-6
-8
-10 -5 0 5 10
X
Ćwiczenie 3.
Mając dane równanie:
5
y = "sin(2 " Ą " i " t)
"1
i
i=1
a). Narysuj wykres funkcji:
Założenia:
t w zakresie 0 do 4 sec
dt = 1/500
kolor rysunku green
b). Wykonaj opis rysunku:
Tytuł suma pieciu funkcji sinusoidalnych
xlabel czas [sec]
ylabel y(t)
Ćwiczenie 4.
Dla danego równania :
z = 40 " x4 + x - y4 + 20" y - 3
a). wykonaj trójwymiarowy wykres przebiegu funkcji:
Założenia:
x w zakresie od -2 do 2 sec
y w zakresie od -5 do 5 sec
dt = 1/10
b). Wykonaj opis rysunku:
z = 40 " x4 + x - y4 + 20" y - 3
title Wykres funkcji
xlabel os X
ylabel os Y
zlabel os Z
Simulink podstawy
Simulink jest graficznym rozszerzeniem Matlaba dla potrzeb modelowania i symulacji
układów dynamicznych. W simulinku układy są rysowane na ekranie jako diagramy blokowe.
Dostępnych jest wiele różnych elementów diagramów blokowych (takich jak funkcje
przejścia, sumatory, elementy całkujące, różniczkujące,...) a także wirtualne elementy
wejściowe (takie jak generatory funkcji) oraz elementy wyjściowe (np. wirtualne
oscyloskopy). Simulink zintegrowany jest z Matlabem poprzez co dane mogą być niezwykle
prosto wymieniane pomiędzy tymi programami. W tym dokumencie pokazane zostaną
podstawowe zastosowania Simulinka do modelowania i symulacji układów dynamicznych.
Simulink jest dostępny na wszystkich platformach na których uruchamiane jest środowisko
Matlaba. Tak więc istnieją jego implementacje na Unixy, Macintoshe oraz oczywiście
Windows.
Uruchamianie Simulinka
Simulink jest uruchamiany bezpośrednio z okna poleceń Matlaba poprzez wpisanie komendy:
simulink
Alternatywnie możliwe jest uruchomienie programu z głównego paska ikon środowiska
Matlab poprzez wybranie przycisku "Simulink Library Browser". Sytuacja taka pokazana jest
poniżej:
Na ekranie pojawi się okno Simulink Library Browser. Większość narzędzi potrzebnych do
okno Simulink Library Browser. Wi narzędzi potrzebnych do
modelowania podstawowych cech układów mo znaleziona w podfolderach katalogu
modelowania podstawowych cech układów może zostać znaleziona w podfolderach katalogu
głównego nazywającego się Simulink. Po wejściu do foldera głównego okno narzędzia
ę Simulink ciu do foldera głównego okno narz
Simulink Library Browser powinno wygl
Simulink Library Browser powinno wyglądać tak jak na rysunku poniżej:
Elementy podstawowe
Elementy podstawowe
W Simulinku występują dwie główne klasy elementów są to: bloki i linie. Elementy blokowe
dwie główne klasy elementów s to: bloki i linie. Elementy blokowe
wykorzystywane są do generowania, modyfikowania, przekształcania, wyświetlania oraz
do generowania, modyfikowania, przekształcania, wy
wykonywania innych czynności na sygnałach. Linie natomiast służą do przesyłania sygnałów
wykonywania innych czynności na sygnałach. Linie natomiast słu do przesyłania sygnałów
z jednego elementu blokowego do nast
z jednego elementu blokowego do następnego.
Elementy Blokowe
Podfoldery biblioteki Simulink zawieraj y podstawowych elementów blokowych
Podfoldery biblioteki Simulink zawierają zestawy podstawowych elementów blokowych
dostępnych dla użytkownika. Dost w zestawach:
ytkownika. Dostępne elementy zgromadzone są w zestawach:
Continuous: elementy do symulacji układów liniowych z czasem ciągłym (bloki
elementy do symulacji układów liniowych z czasem ci
elementy do symulacji układów liniowych z czasem ci
całkujące, różniczkujące, funkcje przej cia, modele w przestrzeni stanu, etc.)
niczkujące, funkcje przejścia, modele w przestrzeni stan
Discrete: elementy do symulacji układów liniowych z czasem dyskretnym (bloki
elementy do symulacji układów liniowych z czasem dyskretnym (bloki
elementy do symulacji układów liniowych z czasem dyskretnym (bloki
całkujące, różniczkujące, funkcje przej cia, modele w przestrzeni stanu, etc.)
niczkujące, funkcje przejścia, modele w przestrzeni stanu, etc.)
Functions & Tables: funkcje zdefiniowane przez u ytkownika oraz tabele interpolacji
funkcje zdefiniowane przez użytkownika oraz tabele interpolacji
wartości funkcji
Math: operatory matematyczne (sumatory, wzmacniacze, iloczyn skalarny, etc.)
operatory matematyczne (sumatory, wzmacniacze, iloczyn skalarny, etc.)
operatory matematyczne (sumatory, wzmacniacze, iloczyn skalarny, etc.)
Nonlinear: operatory nieliniowe (tłumienie coulomba/wiskotyczne, przeł
operatory nieliniowe (tłumienie coulomba/wiskotyczne, przeł
operatory nieliniowe (tłumienie coulomba/wiskotyczne, przełączniki, bloki
warunkowe, etc.)
Signals & Systems: Elementy do sterowania/monitorowania sygnałów oraz do
Elementy do sterowania/monitorowania sygnał
tworzenia podsystemów
tworzenia podsystemów
Sinks: bloki pozwalają ątrz oraz pozwalające
bloki pozwalające na wyprowadzanie sygnałów na zewnątrz oraz pozwalaj
na graficzną prezentację wietlacze, oscyloskopy, etc.)
prezentację sygnałów (wyświetlacze, oscyloskopy, etc.)
Sources: bloki służące do generowania ró nych rodzajów sygnałów (funkcja skokowa,
żące do generowania różnych rodzajów sygnałów (funkcja s
sygnał narastający liniowo, przebiegi sinusoidalne, etc.)
cy liniowo, przebiegi sinusoidalne, etc.)
Standardowo wszystkie elementy blokowe posiadaj stan zerowy na swoich wej
Standardowo wszystkie elementy blokowe posiadają stan zerowy na swoich wejściach oraz
wyjściach. Dodatkowo nieużywane elementy wejściowe są zaznaczane małym otwartym
ciach. Dodatkowo nieużywane elementy wej zaznaczane małym otwartym
trójkątem. Podobna sytuacja występuje dla elementów wyjściowych. Niepodłączone wyjście
acja wyst ciowych. Niepodł
również oznaczane jest za pomoc ta. Przykładowy element
oznaczane jest za pomocą małego niewypełnionego trójkąta. Przykładowy element
blokowy pokazany poniżej posiada niepodłączone wejście (lewa strona diagramu) oraz
żej posiada niepodł cie (lewa strona diagramu) oraz
niepodłączone wyjście (strona prawa). Podłączenie sygnału markowane jest wypełnieniem
(strona prawa). Podł czenie sygnału markowane jest wypełnieniem
trójkąta (strzałki).
Linie
Linie pozwalają na przesyłanie sygnałów zgodnie z kierunkiem wskazywanym przez strzałk
na przesyłanie sygnałów zgodnie z kierunkiem wskazywanym przez strzałk
na przesyłanie sygnałów zgodnie z kierunkiem wskazywanym przez strzałkę.
Muszą one zawsze łączyć dwa bloki tzn. jeden koniec linii podłączony jest do terminala
ć dwa bloki tzn. jeden koniec linii podł czony jest
wyjściowego jednego bloku, natomiast drugi koniec podłączony jest do terminala
ciowego jednego bloku, natomiast drugi koniec podł czony jest do terminala
wejściowego innego bloku. Jedynym wyj tkiem jest rozdzielenie sygnału w celu podłączenia
ciowego innego bloku. Jedynym wyjątkiem jest rozdzielenie sygnału w celu podł
go do kilku bloków jednocześnie. Sytuacja taka przedstawiona jest na rysunk
go do kilku bloków jednocześnie. Sytuacja taka przedstawiona jest na rysunku poniższym.
nie. Sytuacja taka przedstawiona jest na rysunk
Simulink nie dopuszcza do mieszania się sygnału pomiędzy liniami. Aby uzyska
Simulink nie dopuszcza do mieszania si dzy liniami. Aby uzyskać sygnał np.
sumy sygnałów z kilku linii koni konieczne jest u ycie odpowiedniego bliku funkcyjnego (w
sumy sygnałów z kilku linii koni konieczne jest użycie odpowiedniego bliku funkcyjnego (w
tym przypadku sumatora).
Sygnały przesyłane pomiędzy blokami mogą być pojedyncze (sygnały skalarne) mogą być
ędzy blokami m pojedyncze (sygnały skalarne) mog
także sygnałami wektorowymi (tzn zawiera kilka sygnałów skalarnych). Sygnały skalarne
e sygnałami wektorowymi (tzn zawierać kilka sygnałów skalarnych). Sygnały skalarne
występują głównie w trakcie pracy z układami o jednym wejściu i jednym wyjściu. Dla
głównie w trakcie pracy z układami o jednym wej ciu i jednym wyj
układów o wielu wejściach i wielu wyjściach najczęściej używane są sygnały wektorowe
ciach i wielu wy ą sygnały wektorowe
składające się z dwóch lub więcej sygnałów skalarnych. Z punktu widzenia Simulinka linie
z dwóch lub więcej sygnałów skalarnych. Z punktu widzenia Simulinka linie
wykorzystywane do przesyłania sygnałów skalarnych i wektorowych s
wykorzystywane do przesyłania sygnałów skalarnych i wektorowych są
wykorzystywane do przesyłania sygnałów skalarnych i wektorowych są identyczne. Typ
sygnału jest jaki jest przesyłany detektowany jest przez bloki znajdujące się na obu końcach
sygnału jest jaki jest przesyłany d ące si
linii.
Tworzenie układu
W celu zaprezentowania moż ci Simulinka, zostanie utworzony diagram blokowy dla
W celu zaprezentowania możliwości Simulinka, zostanie utworzony diagram blokowy dla
prostego układu składającego się z generatora sygnału sinusoidalnego oraz wzmacniacza
cego si z generatora sygnału sinusoidalnego oraz wzmacniacza
mnożącego ten sygnał przez stał . Układ zaprezentowany jest na rysunku poniżej.
cego ten sygnał przez stałą wartość. Układ zaprezentowany jest na rysunku poni
Budowany układ składa się (generator funkcji),
Budowany układ składa się z trzech bloków: Sine Wave (generator funkcji), Gain
(wzmacniacz sygnału), oraz Scope (okno graficznej prezentacji sygnału). Blok Sine Wave
Scope (okno graficznej prezentacji sygnału). Blok
znajduje się w bibliotece Source Block. Sygnał generowany przez generator funkcji
Source Block. Sygnał generowany przez generator funkcji
Source Block. Sygnał generowany przez generator funkcji
sinusoidalnej jest przekazywany poprzez lini w kierunku wskazywanym przez strzałk
sinusoidalnej jest przekazywany poprzez linię w kierunku wskazywanym przez strzałkę
do bloku Gain (blok ten znajduje się w bibliotece Math Block). Blok wzmacniacza
(blok ten znajduje si ). Blok wzmacniacza
modyfikuje sygnał z generatora mnożąc go przez stałą wartość oraz przesyła
nał z generatora mno wartość
zmodyfikowany sygnał (poprzez linię) do bloku oscyloskopu (blok oscyloskopu znajduje
zmodyfikowany sygnał (poprzez lini ) do bloku oscyloskopu (blok oscyloskopu znajduje
się w bibliotece Sink Block).
Rozpocznijmy budowanie nowego modelu od stworzenia nowego okna, w którym b
Rozpocznijmy budowanie nowego modelu od stworzenia nowego okna, w którym będziemy
Rozpocznijmy budowanie nowego modelu od stworzenia nowego okna, w którym b
tworzyć model. Operację tę można wykonać poprzez kliknięcie przycisku "New Model" z
ę mo cie przycisku "New Model" z
menu okna Simulink Library Browser
Simulink Library Browser.
Budowanie modelu składa się z serii kroków:
Budowanie modelu składa się z serii kroków:
1. Konieczne bloki są pobierane z biblioteki Library Browser oraz układane w oknie
ą pobierane z biblioteki Library Browser oraz układane w oknie
pobierane z biblioteki Library Browser oraz układane w oknie
nowego modelu.
2. Należy zmodyfikować parametry bloków zgodnie z wymaganiami budowanego
y zmodyfikować parametry bloków zgodnie z wymaganiami budowanego
modelu.
3. Ostatecznie zmodyfikowane bloki nale żliwiając w ten sposób
Ostatecznie zmodyfikowane bloki należy połączyć liniami umożliwiaj
przepływ sygnału.
Poniżej umieszczone są instrukcje szczegółowe pozwalaj ce na zrealizowanie przestawionego
instrukcje szczegółowe pozwalające na zrealizowani
schematu postępowania. W chwili gdy budowany system jest kompletny można przystąpić do
powania. W chwili gdy budowany system jest kompletny mo
powania. W chwili gdy budowany system jest kompletny mo
analizy jego zachowania poprzez uruchomienie symulacji.
analizy jego zachowania poprzez uruchomienie symulacji.
Gromadzenie potrzebnych bloków funkcyjnych
Gromadzenie potrzebnych bloków funkcyjnych
Każdy z bloków wykorzystywanych w tym przykładzie znajduje się głównej bibliotece
dy z bloków wykorzystywanych w tym przykładzie ę głównej bibliotece
Simulinka Simulink Library Browser. Aby znalezć element Sine Wave w bibliotece
Simulink Library Browser Sine Wave
należy:
1. Kliknąć na + obok folderu Sources (jest to podfolder katalogu Simulink) aby
na + obok folderu Sources (jest to podfolder katalogu Simulink) aby
na + obok folderu Sources (jest to podfolder katalogu Simulink) aby
wyświetlić zawartość biblioteki zródeł dostępnych w Simulinku.
ść biblioteki
2. Przewinąć zawartość katalogu w poszukiwaniu elementu "Sine Wave". Klikni
ść katalogu w poszukiwaniu elementu "Sine Wave". Kliknięcie na
katalogu w poszukiwaniu elementu "Sine Wave". Klikni
bloku pozwoli na wy wietlenie krótkiej informacji o funkcjonalno
bloku pozwoli na wyświetlenie krótkiej informacji o funkcjonalności danego
elementu. Informacja wy wietlana jest na wolnej przestrzeni poni
elementu. Informacja wyświetlana jest na wolnej przestrzeni poniżej listy z
zawartością katalogu.
3. Do wstawienia bloku na nowo tworzony arkusz konieczne jest jego wskazanie na
Do wstawienia bloku na nowo tworzony arkusz konieczne jest jego wskazanie na
Do wstawienia bloku na nowo tworzony arkusz konieczne jest jego wskazanie na
liście Library Browser oraz przeci cie elementu do tworzonego dokumentu.
cie Library Browser oraz przeciągnięcie elementu do tworzonego dokumentu.
Taki sam tok postępowania jest wykorzystywany do umieszczenia pozostałych elementów w
powania jest wykorzystywany do umieszczenia pozostałych elementów w
powania jest wykorzystywany do umieszczenia pozostałych elementów w
oknie nowego modelu. Blok "Gain" znajduje się w podfolderze "Math" oraz blok "Scope"
o modelu. Blok "Gain" znajduje si w podfolderze "Math" oraz blok "Scope"
zlokalizowany jest w podfolderze "Sink". Poło enie nowych elementów w oknie modelu
zlokalizowany jest w podfolderze "Sink". Położenie nowych elementów w oknie modelu
może być zmieniane dowolnie poprzez przeciąganie ich za pomocą wskaznika myszy do
zmieniane dowolnie poprzez przeci ą wska
nowego położenia. Możliwe jest tak e zaznaczenie wybranego elementu i pozycjonowanie go
liwe jest także zaznaczenie wybranego elementu i pozycjonowanie go
za pomocą klawiszy strzałek. Okno modelu na tym etapie projektowania powinno wygl
klawiszy strzałek. Okno modelu na tym etapie projektowania powinno wyglądać
klawiszy strzałek. Okno modelu na tym etapie projektowania powinno wygl
tak jak na rysunku poniżej.
Modyfikacja parametrów elementów
Modyfikacja parametrów elementów
Simulink pozwala na modyfikację parametrów bloczków użytych w modelu w taki sposób
pozwala na modyfikacj ytych w modelu w taki sposób
aby dobrze odpowiadały charakterystykom modelowanego układu. Dla przykładu aby
aby dobrze odpowiadały charakterystykom modelowanego układu. Dla przykładu aby
aby dobrze odpowiadały charakterystykom modelowanego układu. Dla przykładu aby
zmodyfikować blok generatora funkcji (Sine Wave) należy dwukrotnie na nim kliknąć.
blok generatora funkcji (Sine Wave) nale y dwukrotnie na nim klikn
Spowoduje to otwarcie okna parametrów pokazanego na rysunku poni
ie okna parametrów pokazanego na rysunku poniżej:
Okno to pozwala na ustawienie amplitudy, cz ci oraz fazy generowanego sygnału
Okno to pozwala na ustawienie amplitudy, częstotliwości oraz fazy generowanego sygnału
sinusoidalnego. Za pomocą parametru "Sample time" można ustawić odległość pomiędzy
ą parametru "Sample time" mo ć odległo
dwoma generowanymi za pomoc zka próbek sygnału. Ustawiaj
dwoma generowanymi za pomocą bloczka próbek sygnału. Ustawiając wartość tego
parametru na 0 spowodujemy ustawienie ci
parametru na 0 spowodujemy ustawienie ciągłego próbkowania.
Załóżmy że przykładowy układ generował będzie sygnał sinusoidalny o następujących
e przykładowy układ generował b dzie sygnał sinusoidalny o nast
parametrach:
Amplituda = 2
Częstotliwość = pi
Faza początkowa = pi/2
tkowa = pi/2
Wprowadzmy powyższe wartości w odpowiednie pola (pozostawiając wartość parametru
sze warto ąc warto
"Sample time" równą 0) a następnie zaakceptujmy zmiany i zamknijmy okno klikając na
0) a nast pnie zaakceptujmy zmiany i zamknijmy okno klikaj
"OK". Należy zauważyć iż częstotliwość oraz faza początkowa dla definiowanego systemu
ż czę tkowa dla definiowanego systemu
zawierają wortość 'pi' (3.1415...). Wartość ta może i powinna zostać wpisana dokładnie tak
'pi' (3.1415...). Warto wpisana dokładnie tak
jak to zostało pokazane w ustawieniach.
jak to zostało pokazane w ustawieniach.
W następnej kolejności modyfikujemy blok wzmocnienia (Gain) poprzez dwukrotne
ci modyfikujemy blok wzmocnienia (Gain) poprzez dwukrotne
ci modyfikujemy blok wzmocnienia (Gain) poprzez dwukrotne
kliknięcie na nim w oknie modelu. Poniżej pokazane jest okno pozwalające na dokonanie
cie na nim w oknie modelu. Poni st okno pozwalaj
ustawień.
W otwartym okienku można zauważyć krótkie wyjaśnienie działania bloku. W przypadku
żna zauwa nienie działania bloku. W przypadku
bloczka wzmocnienia, sygnał wej ony przez stał
bloczka wzmocnienia, sygnał wejściowy jest (u) jest mnożony przez stałą (k). W wyniku
otrzymywany jest sygnał wyjś ana parametru wzmocnienia zwi
otrzymywany jest sygnał wyjściowy (y). Zmiana parametru wzmocnienia związana jest ze
zmianą parametru k w dostępnym elemencie edycyjnym.
ępnym elemencie edycyjnym.
W naszym konkretnym przykładzie warto tego parametru powinna zostać ustawiona na 5.
W naszym konkretnym przykładzie wartość tego parametru powinna zosta
Wpisujemy ją więc do pola edycyjnego i potwierdzamy operacj ąc "OK" jednocześnie
c do pola edycyjnego i potwierdzamy operację klikając "OK"
zamykając okno.
Blok oscyloskopu pozwala jedynie narysowa przebieg podawany na jego wej
Blok oscyloskopu pozwala jedynie narysować przebieg podawany na jego wejście i dlatego
jego bloczek nie posiada dodatkowych parametrów które nale ałoby ustawi
jego bloczek nie posiada dodatkowych parametrów które należałoby ustawić. Bardziej
szczegółowa analiza działania bloku zostanie dokonana w trakcie wykonywania symulacji.
szczegółowa analiza działania bloku zostanie dokonana w trakcie wykonywania symulacji.
Połączenia bloków
Dla uzyskania poprawnego działania modelowanego układu w naszym przykładzie potrzebne
Dla uzyskania poprawnego działania modelowanego układu w naszym przykładzie potrzebne
Dla uzyskania poprawnego działania modelowanego układu w naszym przykładzie potrzebne
jest jeszcze wykonanie odpowiednich poł dzy bloczkami. W omawianym
jest jeszcze wykonanie odpowiednich połączeń pomiędzy bloczkami. W omawianym
przykładzie sygnał wyjściowy z generatora sygnału sinusoidalnego podawany jest na wejście
ciowy z generatora sygnału sinusoidalnego podawany jest na wej
wzmacniacza. Wzmacniacz ( enie podawanego na jego wej
wzmacniacza. Wzmacniacz (Gain) powoduje przemnożenie podawanego na jego wejście
sygnału przez stałą wartość oraz podaje ją na wejście bloku oscyloskopu, w którym następuje
ść oraz podaje j cie bloku oscyloskopu, w którym nast
jej narysowanie w postaci przebiegu cza taki przepływ sygnału
jej narysowanie w postaci przebiegu czasowego. Aby uzyskać taki przepływ sygnału
konieczne jest połączenie wyjścia generatora funkcji z wejściem wzmacniacza oraz wyjścia
czenie wyjś ciem wzmacniacza oraz wyj
wzmacniacza z wejściem oscyloskopu.
ciem oscyloskopu.
Rysowanie linii dokonywane jest poprzez uchwycenie za pomocą wskaznika myszy wyj
Rysowanie linii dokonywane jest poprzez uchwycenie za pomoc znika myszy wyjścia
danego bloczka, przeciągnięcie wskaznika do miejsca docelowego (wejścia kolejnego bloku)
ęcie wska ścia kolejnego bloku)
oraz zwolnienie wskaznika. W czasie łączenia bloczków liniami należy zwrócić uwagę czy
nika. W czasie ł ży zwróci
każda linia rzeczywiście połączona jest z odpowiednimi bloczkami wejściowymi oraz
cie połączona jest z odpowiednimi bloczkami wej
wyjściowymi. Dla uproszczenia operacji łączenia bloczków liniami Simulink zamienia
ciowymi. Dla uproszczenia operacji ł czenia bloczków liniami Simulink zamienia
standardowy wskaznik myszy w zależności od operacji. W momencie gdy wska
nik myszy w zale ci od operacji. W momencie gdy wskaznik znajdzie
się nad wyjściem lub wejściem do bloczka jego kształt zmienia się na krzyż. W trakcie
ściem do bloczka jego kształt zmienia się na krzy
przeciągania natomiast umieszczenie wskaznika nad elementem na którym można zakończyć
gania natomiast umieszczenie wska nika nad elementem na którym mo
linię spowoduje zamienienie jego kształtu na podwójny krzyż. Połączenie wykonane jest
spowoduje zamienienie jego kształtu na podwójny krzy ączenie wykonane jest
poprawnie jeśli strzałka w grocie linii jest wypełniona. Dla poprawienia niedomkni
li strzałka w grocie linii jest wypełniona. Dla poprawienia niedomkni
li strzałka w grocie linii jest wypełniona. Dla poprawienia niedomkniętej linii
należy potraktować koniec linii jak wyj opisane wyżej czynności.
koniec linii jak wyjście z bloku i powtórzyć opisane wyż
Poprawnie wykonane poł czenie otwarte
Poprawnie wykonane połączenie Połączenie otwarte
W trakcie rysowania linii jej poło enie na schemacie nie ma znaczen
W trakcie rysowania linii jej położenie na schemacie nie ma znaczenia. Simulink
automatycznie zarządza tą operacją oraz dodatkowo po wykonaniu wszystkich poł
ą operacj oraz dodatkowo po wykonaniu wszystkich połączeń jest
możliwość i re-pozycjonowania. Wykonuje się to poprzez wskazania i przeciągnięcie
pozycjonowania. Wykonuje si to poprzez wskazania i przeci
wybranej linii w nowe położenie (Operacja ta nie powoduje rozł czenia połączonych linii).
żenie (Operacja ta nie powoduje rozłączenia poł
Po narysowaniu linii oraz zmianie poło enia bloków schemat powinien wygl
Po narysowaniu linii oraz zmianie położenia bloków schemat powinien wyglądać jak na
rysunku poniżej.
W trakcie budowania niektórych modeli konieczne jest rozdzielenie sygnału po to aby
W trakcie budowania niektórych modeli konieczne jest rozdzielenie sygnału po to aby
W trakcie budowania niektórych modeli konieczne jest rozdzielenie sygnału po to aby
doprowadzić go do dwóch lub wi elementów. Rozdzielenie sygnału jest
go do dwóch lub większej liczby różnych elementów. Rozdzielenie sygnału jest
jednoznaczne z rodzieleniem linii na schemacie blokowym. Wykonuje si
jednoznaczne z rodzieleniem linii na schemacie blokowym. Wykonuje si
jednoznaczne z rodzieleniem linii na schemacie blokowym. Wykonuje się ją poprzez
umieszczenie kursora w miejscu rozdzielenia oraz wci ciu przycisku CTRL jednocześnie z
umieszczenie kursora w miejscu rozdzielenia oraz wciśnięciu przycisku CTRL jednocze
lewym przyciskiem myszy lub jedynie wci prawego przycisku myszy. Nast
lewym przyciskiem myszy lub jedynie wciśnięciem prawego przycisku myszy. Następnie
utworzoną w ten sposób nową linię umieszczamy w elemencie wejściowych docelowego
w ten sposób nową ściowych docelowego
bloku. Postępując w opisany sposób wykonane zostało rozgałęzienie sygnału na schemacie
c w opisany sposób wykonane zostało rozgał zienie sygnału na schemacie
przedstawionym poniżej.
Po to aby usunąć niepoprawnie poprowadzoną linię konieczne jest wybranie jej (poprzez
niepoprawnie poprowadzon konieczne jest wybranie jej (poprzez
kliknięcie na niej wskaznikiem myszy) oraz naci cie przycisku DELETE.
nikiem myszy) oraz naciśnięcie przycisku DELETE.
Uruchamianie symulacji
Uruchamianie symulacji
Jeśli została zakończona budowa modelu można przystąpić do symulacji zachowania
czona budowa modelu mo do symulacji zachowania
badanego obiektu. Rozpoczęcie symulacji może zostać dokonane na dwa sposoby. Z menu
ęcie symulacji mo dokonane na dwa sposoby. Z menu
Simulation należy wybrać opcję Start lub kliknąć na przycisk "Start/Pause Simulation" w
ć opcj na przycisk "Start/Pause Simulation" w
oknie modelu.
Ponieważ model zbudowany na potrzeby tego przykładu jest stosunkowo prosty, symu
model zbudowany na potrzeby tego przykładu jest stosunkowo prosty, symu
model zbudowany na potrzeby tego przykładu jest stosunkowo prosty, symulacja
wykona się praktycznie natychmiast. Dla modeli bardziej złożonych, dla których czas
praktycznie natychmiast. Dla modeli bardziej zło onych, dla których czas
symulacji jest znacznie dłuż informacja na temat post
symulacji jest znacznie dłuższy w okienku pojawia się informacja na temat postępu.
Dwukrotne kliknięcie na bloczku oscyloskopu spowoduje otwarcie okienka w którym
cie na bloczku oscyloskopu spowoduje otwarcie okienka w którym
cie na bloczku oscyloskopu spowoduje otwarcie okienka w którym
powinien znajdować się narysowany przebieg b cy wynikiem symulacji układu. Zazwyczaj
narysowany przebieg będący wynikiem symulacji układu. Zazwyczaj
konieczne jest przeskalowanie wykresu w okienku. Pierwsza ikonka dost
konieczne jest przeskalowanie wykresu w okienku. Pierwsza ikonka dost
konieczne jest przeskalowanie wykresu w okienku. Pierwsza ikonka dostępna w pasku
narzędziowym odpowiedzialna jest za autoskalowanie wykresu.
dziowym odpowiedzialna jest za autoskalowanie wykresu.
Przebieg będący wynikiem symulacji jest cosinusoidą o okresie równym s sekundy i
cy wynikiem sym o okresie równym s sekundy i
amplitudzie równej 10. Zastanówmy si poprawne w przypadku
amplitudzie równej 10. Zastanówmy się czy te parametry są poprawne w przypadku
przeprowadzonej symulacji. Rozpocznijmy od amplitudy. W parametrach startowych
przeprowadzonej symulacji. Rozpocznijmy od amplitudy. W parametrach startowych
przeprowadzonej symulacji. Rozpocznijmy od amplitudy. W parametrach startowych
amplituda generowanego sygnału ustawiona została na 2 dodatkowo parametr bloku
amplituda generowanego sygnału ustawiona została na 2 dodatkowo parametr bloku
wzmocnieni ustawiony został na 5. Wynika stąd iż amplituda funkcji wynikowej wyznaczona
wzmocnieni ustawiony został na 5. Wynika st amplituda funkcji wynikowej wyznaczona
jest poprawnie (2 x 5 = 10). Okres funkcji na wyj ciu układu powinien by
jest poprawnie (2 x 5 = 10). Okres funkcji na wyjściu układu powinien być taki sam jak
zostało to ustawione w parametrach generatora. W tym przypadku była to warto
zostało to ustawione w parametrach generatora. W tym przypadku była to wartość pi co
oznacza że w ciągu sekundy powinniśmy otrzymać połowę okresu. Pełny okres funkcja
gu sekundy powinni okresu. Pełny okres funkcja
powinna więc osiągnąć w czasie 2 sekund. W ko cu przebieg funkcji jest kosinusoidalny co
w czasie 2 sekund. W końcu przebieg funkcji jest kosinusoidalny co
jest wynikiem zadania początkowego przesuni fazowego generowanej funkcji o pi/2.
ątkowego przesunięcia fazowego generowanej funkcji o pi/2.
Wyniki symulacji są więc zgodne z oczekiwaniami. Oczywi cie w tym momencie można (i
c zgodne z oczekiwaniami. Oczywiście w tym momencie mo
należy) sprawdzić jak zachowywał się będzie układ jeśli zostaną zmienione jego parametry.
jak zachowywał si zmienione jego parametry.
Wszelkich zmian dokonuje się niejszych cz
Wszelkich zmian dokonuje się w sposób przedstawiony we wcześniejszych częściach tego
opracowania (dwukrotnie klikaj c zawarto
opracowania (dwukrotnie klikając na wybrany bloczek oraz edytując zawartość dostępnych
pól edycyjnych).
Generowanie sygnałów z wykorzystaniem SIMULINK a
Postępując wg podanych wcześniej wskazówek dotyczących budowania schematów
blokowych, przygotować następujące bloki:
Nazwa biblioteki Nazwa bloku
User Defined Functions Fcn
Sources Ramp, Sine Wave
Signal Routing Mux
Sinks Scope, To Workspace
Zbudować układ wg schematu, wpisując w pola konfiguracji bloków odpowiednie parametry.
Po uruchomieniu symulacji, wykreśl wynik w przestrzeni MATLAB a, np:
>> plot(data.time,data.signals.values,'o-','LineWidth',2)
>> xlabel('Time [s] ','FontSize',16)
>> ylabel('Amplitude []' ,'FontSize',16)
>> grid on
>> title( Signal','FontSize',16)
Signal
12
10
8
6
4
2
0
-2
0 1 2 3 4 5 6 7 8 9 10
Time [s]
Amplitude []
Zadanie do samodzielnego rozwiązania.
W przyborniku SIMULINK wygenerować sygnały umożliwiające wykreślenie krzywych
lissajaus. Rezultaty symulacji wykreślić z wykorzystaniem bloku XY Graph(z biblioteki
Sinks). Sygnały wyeksportować do przestrzeni roboczej. Wykreślić krzywe w oknie głównym
Matlaba (nanieść, siatkę, oznaczyć osie, zatytułować wykres). Wyeksportować figurę do
formatu jpg (poleceniem saveas )
Wyszukiwarka
Podobne podstrony:
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznejwprowadz w11Lab1 RoboWorksMedycyna manualna Wprowadzenie do teorii, rozpoznawanie i leczenie00 Spis treści, Wstęp, WprowadzenieAPD lab1wprowadzenieczwiczenie 2 wprowadzenie62 FOR ostrzega Wprowadzenie klauzuli przeciwko unikaniu opodatkowania może być niezgodne z Konstytu01 Wprowadzenie do programowania w jezyku Cwprowadzenie do buddyzmu z islamskiego punktu widzenia1 wprowadzenie do statystyki statystyka opisowawięcej podobnych podstron