Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
Podstawowa literatura
1. Bogumiła Mrozek, Zbigniew Mrozek, „Matlab - uniwersalne środowisko do obliczeń
naukowo-technicznych”, Wyd. PLJ, Warszawa 1996.
2. Jerzy Brzózka, Lech Dorobczyński, "Programowanie w Matlab", MIKOM, Warszawa
1998.
3. Stanisław Osowki, Andrzej Toboła, „Analiza i projektowanie obwodów z
zastosowaniem języków MATLAB i PCNAP”, Oficyna Wyd. Polit. Warszawskiej,
Warszawa 1995.
Najkrótsza charakterystyka Matlaba
MATLAB jest interakcyjnym pakietem programów do obliczeń numerycznych,
ukierunkowanym na zastosowania inżynierskie. MATLAB jest skrótem od MATrix
LABoratory. MATLAB został napisany w języku C przez firmę MathWorks.
Dostępne są wersje MATLAB-a pracujące w systemach operacyjnych: DOS, UNIX,
XWindows, Windows
Podstawowe operacje macierzowe zostały bezpośrednio zaimplementowane w języku C
jako funkcje podstawowe wbudowane do Matlaba i są dostępne dla użytkownika po ich
wywołaniu. Oznacza to mi.in., że duża litera i ta sama mała litera w nazwie funkcji są różnymi
nazwami.
Większość działań i operacji dostępnych jest w postaci m._plików funkcyjnych.
Podstawowe m._pliki znajdują się w katalogu głównym. Pliki wyspecjalizowane
umieszczone są w podkatalogach tematycznych (toolbox).
Inżynier elektryk może być zainteresowany m.in. następującymi toolboxami: Control
System Toolbox – teoria sterowania, Optimization Toolbox – optymalizacja , Signal Processing
Toolbox – przetwarzanie sygnałów, SIMULINK - graficzne modelowanie i symulacja.
Uwaga
Wykłady z programowania w Matlabie są dostosowane do wymagań wersji 4.2.
Jedynie w niektórych przypadkach – tam gdzie to okazało się być niezbędne – do
uruchomienia programów wymagana jest co najmniej wersja 5.3.
Wszystkie programy w wersji 4.2 mogą być uruchomione bez przeszkód w wersjach
nowszych.
10 pierwszych kroków w Matlabie
Krok 1-szy
Każdy użytkownik Matlaba powinien pracować w sowim własnym katalogu. W tym
celu na początku zajęć należy założyć na dysku twardym swój unikalny katalog, np.
c:\nazim.iwe
gdzie naz oznacza 3 pierwsze litery nazwiska, imi – 3 pierwsze litery imienia., iwe – symbol
nazwy przedmiotu.
1
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
Aby uniknąć błędnej interpretacji nazwy katalogu przez starsze wersje Matlaba, nazwa
powinna mieć 8 znaków ASCII i 3 znaki rozszerzenia ASCII. Nie wolno używać polskich
liter!
Krok 2-gi
Kliknąć na ikonie Matlaba. Po uruchomieniu Matlaba pojawi się okno poleceń
/Command Window/ wraz ze znakiem zachęty:
>>
Oznacza to, że użytkownik może wprowadzić polecenia oddzielone przecinkami lub
średnikami. Po napisaniu polecenia należy nacisnąć klawisz Enter.
Krok 3-ci
Pracę należy rozpocząć od skierowania Matlaba do własnego katalogu
cd c:\nazimi.iwe
Gdy tekst nie mieści się w jednej linii można przejść do następnej wpisując 3 kropki ...
przed naciśnięciem klawisza Enter , następnie kontynuować tekst polecenia w kolejnej linii.
Na przykład polecenie
function [a,b,c]=test(x,y,z,A,B,C) <ENTER>
jest równoważne poleceniu
function[a,b,c]= ... <ENTER>
test(x,y,z,A,B,C) <ENTER>
Należy tu także zwrócić uwagę, że duże litery są innymi nazwami aniżeli te same małe litery.
Krok 4-ty
Z podstawową obsługą Matlaba najszybciej można się zapoznać uruchamiając
program demonstracyjny Matlaba
>> demo
Uruchamia ono zestawy programów pokazujących podstawowe operacje Matlaba.
Krok 5-ty
Dodatkowe informacje o danej wersji Matlaba można uzyskać poprzez wykonanie
takich poleceń jak :
whatsnew , info , ver , intro , help help
Krok 6-ty
Możliwości grafiki w MATLAB-ie można wstępnie ocenić, wykonując próbny
rysunek wielomianu dwu zmiennych, za pomocą polecenia:
>> peaks
Krok 7-my
Szybkość działania własnego komputera w środowisku Matlaba można poznać
wypisując polecenie
>> bench
Polecenie testujące bench bada oddzielnie czasy wykonywania typowych algorytmów. Może
służyć do oceny, czy posiadany komputer jest odpowiednio skonfigurowany z punktu
widzenia szybkości obliczeń i przetwarzania grafiki w Matlabie.
2
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
Krok 8-my
Okno poleceń Matlaba można wyczyścić poleceniem
>> clc
Polecenia MATLAB-a są wprowadzane w trybie tekstowym. Jednakże pisanie z klawiatury
długich sekwencji poleceń lub komplikowanych wyrażeń matematycznych jest uciążliwe.
Dlatego polecenia grupuje się w plikach zewnętrznych /zapisywanych na dysku/ z
rozszerzeniem *.m. Pliki z rozszerzeniem *.m mają znaczenie specjalne i nazywa się je m -
plikami .
M-pliki można tworzyć korzystając z dowolnego edytora ASCII. W żadnym
przypadku nie może to być edytor wprowadzający widzialne lub niewidzialne znaki sterujące
(Word, Acrobat, itp).
W przypadku, gdy MATLAB współpracuje z MS Windows można tworzyć i
modyfikować m-pliki korzystając z opcji FILE głównego menu okna poleceń.
Tworząc m-plik, z menu opcji FILE należy wybrać New / M-file. W rezultacie
otworzy się okno edycyjne, w którym można zapisać tekst m-pliku. Aby zapamiętać ten tekst,
trzeba z menu wybrać komendę Save as .. . Możliwe jest wtedy zapisanie nowopowstałego
pliku i zapamiętanie go na dysku .
W przypadku, gdy m-pliki już istnieją można je wczytać za pomocą opcji Open M -
file ... . Powoduje to otwarcie okna zawierającego wykaz plików z rozszerzeniem *.m .
Krok 9-ty
Okno poleceń posiada nagłówek MATLAB Command Window i zawiera rozwijane
menu.
Operacje na plikach dostępne w rozwijanym menu
File – rozwinięcie menu
New / M-file - otwiera okno edycyjne dla utworzenia nowego m-pliku
New / Figure - otwiera okno graficzne
New / Model - otwiera okno Untitled dla tworzenia nowego modelu SIMULINK-a
Open M-file ... -otwiera istniejący plik celem jego edycji
Run M-file ... - uruchamia m-plik
Print - wykonuje wydruk m-pliku (parametry ustawia się w Printer Setup .. )
Exit MATLAB - ( quit ) – koniec sesji Matlaba
Edycja
Edit - umożliwia kopiowanie wybranych informacji do bufora. Współpracę z buforem
realizuje się za pomocą opcji: Cut, Copy, Paste, Clear Session
Opcje okna poleceń
Options lub Preferences- pozwala na wybór edytora oraz parametrów związanych z
edycją poleceń i odpowiedzi pakietu. Są to ustawienia formatu wartości numerycznych,
koloru i wielkości czcionki znaków na ekranie.
Lista otwartych okien
Windows - wyświetla wszystkie otwarte okna w postaci rozwiniętego menu .
Pomoc
3
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
Help - zapewnia szybką informację o wybranych elementach składowych Matlaba.
Objaśnienia zgrupowane są w zestawach tematycznych , dostępny jest także spis alfabetyczny
poleceń i funkcji.
Krok 10-ty
Polecenie
help nazwa
wypisuje opis polecenia, funkcji, operacji, itp., np.
help svd
powoduje wypisanie najważniejszych informacji dotyczących dekompozycji SVD (definicje,
ograniczenia, sposoby wywołania).
Zawartość plików tekstowych może być wyświetlona za pomocą polecenia
type nazwa_pliku_tekstowego
Powoduje ono wyświetlenie zawartości pliku. Jeżeli tekst przekracza stronę ekranową, to
można włączyć stronicowanie podając polecenie
more on
Kolejne stronice tekstu można wyświetlać naciskając klawisz spacji, a przerwanie
wyświetlania - naciskając klawisz "Q". Odwołanie stronicowanie następuje przez
more off
Polecenie
which nazwa_m-pliku
lub
which nazwa_m-funkcji
powoduje wyświetlenie ścieżki dostępu do m-pliku lub m-funkcji (nazwy podaje się bez
rozszerzenia *.m).
Nazwy zmiennych i ilość wolnej pamięci jest udostępniana za pomocą funkcji
standardowej
who
Wybrane zmienne można usunąć z pamięci za pomocą polecenia
clear nazwy_usuwanych_zmiennych
np. clear c A
Najważniejsze polecenia plikowe i systemowe
Poniżej podane najczęściej stosowane polecenia systemowe w oknie poleceń Matlaba
pwd
- zwraca pełną ścieżkę określającą aktualny katalog
P = path
- zwraca nazwy katalogów, do których ma dostęp MATLAB
dir (lub ls)
- nazwy plików w aktualnym katalogu
dir nazwa katalogu - wyświetla nazwy plików w katalogu o podanej nazwie
cd
- przejście do danego katalogu
cd \
- przejście z dowolnego poziomu do głównego katalogu
cd ..
- przejście o jeden poziom wyżej w drzewie katalogowym
del
- usuwa plik o podanej nazwie
home
- ustawia kursor w lewym górnym rogu okna poleceń
!tree
- wyświetla strukturę drzewa katalogowego w katalogu
4
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
Zapamiętywanie historii całej sesji obliczeniowej
Pojawienie się polecenia
diary
powoduje otwarcie pliku diary, do którego dopisywane są wszystkie operacje
alfanumeryczne wykonywane przez program. Nie dotyczy to wyników graficznych, które
muszą być zapamiętane w inny sposób.
Użycie polecenia diary z nazwą pliku spowoduje otwarcie pliku o podanej nazwie
różnej od diary i dopisywanie do niego wyników operacji matematycznych.
Wyłączenie zapamiętywania historii sesji
Polecenie
diary off
powoduje przerwanie zapisywania.
Zawartość aktualnego katalogu
Zawartość katalogu uzyskuje się za pomocą polecenia
dir ścieżka_i_znaki_masek(*oraz?)
lub
is ścieżka_i_znaki_masek(*oraz?)
np.
dir c:\nazimi.iwe
lub
is c:\nazimi.iwe
Wywołanie poleceń DOS
W starszych wersjach Matlaba można korzystać z poleceń DOS. Jeśli polecenia
zostaną poprzedzone wykrzyknikiem
!
to będą traktowane jako polecenia systemu DOS.
np.
!dos – przejście do sesji DOS
Powrót z DOS do okna poleceń Matlaba nastąpi po komendzie exit lub zamknięciu okna
DOS.
Podstawowe operacje macierzowe
Początkujący użytkownicy Matlab wykonują często obliczenia macierzowe
korzystając z okna poleceń Matlaba. Poniżej podano podstawowe operacje macierzowe,
A = [ 1 2 3; 1 0 1; 1 1 1];
- tworzenie macierzy
lub
A = [ 1 2 3
5
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
1 0 1
1 1 1
]
Do macierzy o dowolnych wymiarach można zawsze dodać skalar, np.
A=A+10
daje w wyniku
A =
11 12 13
11 10 11
11 11 11
B = A^(-1)
- odwracanie macierzy
lub
A^(-1)
- odwracanie macierzy
C = A + B
- dodawanie macierzy
C = A – B
- odejmowanie macierzy
Przy mnożeniu liczba kolumn macierzy A musi być równa liczbie wierszy macierzy B
C = A*B
- mnożenie klasyczne macierzy, np.
A =[
11 12 13
11 10 11
11 11 11
]
B=[1 2; 3 4; 5 6]
C=A*B
daje w wyniku
C =
112 148
96 128
99 132
Mnożenie macierzy przez skalar
C = A*2
- każdy element macierzy A jest mnożony przez 2, np.
A = [
11 12 13
11 10 11
11 11 11
]
C=A*2
daje
C =
22 24 26
22 20 22
6
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
22 22 22
A`
- transpozycja macierzy
C = A/B
- prawostronne dzielenie macierzy
np.
x = A/B
- odpowiada rozwiązaniu równania macierzowego xB = A
C = A\B
- lewostronne dzielenie macierzy
np.
x = A\B
- odpowiada rozwiązaniu równania macierzowego Ax = B
Jeżeli w wyrażeniu nie wskazano zmiennej, w której ma być zapamiętany wynik, to
wynik zostanie umieszczony w standardowej zmiennej o nazwie
ans
disp
- wysyła zawartość macierzy lub łańcucha do okna poleceń Matlaba.
Uwaga!
Wartości będą wysyłane na ekran, jeśli polecenie nie zostanie zakończone
średnikiem.
[n,m] = size(A)
- zwraca liczbę wierszy m oraz kolumn n macierzy A
det(A)
- wyznacznik macierzy
cond(A)
- wskaźnik uwarunkowania macierzy. Im większa wartość
cond(A) tym gorsze uwarunkowanie
rcond(A)
- odwrotność wskaźnika uwarunkowania macierzy. Im mniejsza
wartość rcond(A) tym gorsze uwarunkowanie, aż do wartości zerowej
rank(A)
- rząd macierzy
length(x)
- długość wektora x
Liczby zespolone są zapisywane za pomocą symbolu i lub j, jednak nieco odmiennie od
zapisu matematycznego
sqrt(-1)
ans =
0 + 1.0000i
z= 3+4i
z =
3.0000 + 4.0000i
7
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
z=3+4j
z =
3.0000 + 4.0000i
Użytkownik może sam zdefiniować zmienną j w przestrzeni roboczej Matlaba i
zapisywać liczby zespolone z wykorzystaniem mnożenia
j=sqrt(-1);
z=3+j*4;
disp(z);
Przy wyznaczaniu wartości własnych macierzy otrzymujemy wynik często w postaci
liczb zespolonych
[X, D] = eig(A)
- wyznaczanie wartości własnych macierzy A.
Diagonalna macierz D zawiera wartości własne
λ
będące rozwiązaniem równania
charakterystycznego
det(A -
λ
I) = 0
Kwadratowa macierz X zawiera wektory własne zgodnie z równaniem charakterystycznym
AX = X D
[U, S, V] = svd(A) - analiza wartości singularnych.
Dla dowolnej macierzy rzeczywistej przeprowadzana jest dekompozycja wg relacji
A = U S V`
Diagonalna macierz S zawiera wartości singularne uporządkowane według malejących
wartości. U i V są macierzami ortogonalnymi.
Uwaga! Transpozycja macierzy o elementach zespolnych oznacza jednocześnie
sprzeżenie elementów macierzy.
Podstawowe funkcje matematyczne MATLABA
Matlab umożliwia wykonywania wielu obliczeń korzystających z podstawowych
funkcji matematycznych
abs
– wartość absolutna / moduł liczby zespolonej/
angle – argument liczby zespolonej
atan
– arcus tangens
conj
- sprzężenie liczby zespolnej
cos
– cosinus
exp
– exponent
imag – część urojona liczby zespolonej
inf
- nieskończoność /wynik dzielenia przez 0/
8
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
log
– logarytm naturalny
max - największa wartość
min
- najmniejsza wartość
nan
- nieliczba /dzielenie 0 przez 0 lub inna niezdefiniowana matematycznie
operacja/
pi
- liczba
π
real
- część rzeczywista liczby zespolonej
sin
- sinus
sqrt – pierwiastek kwadratowy
sum
- suma
Zadania do samodzielnego rozwiązania
Zadanie 1
Przy przechodzeniu z układu fazowego A, B, C do układu składowych symetrycznych
0, 1, 2 wykorzystuje się definicję operatora obrotu
a = e
j2 3
π
/
= cos(120
o
) + j sin(120
o
) =
−
0,5 + j
3
2
)
Sprawdzić następujące własności operatora a
a
2
= (e
j2 3
π
/
)
2
= cos(240
o
) + jsin(240
o
) = cos(
−
120
o
) + jsin(
−
120
o
) =
−
0,5
−
j
3
2
1 + a + a
2
= 0
a
3
= (e
j2 3
π
/
)
3
= cos(360
o
) + jsin(360
o
) = 1 + j0 = 1
a* = a
2
a
4
= a
(a
2
)* = a
Zadanie 2
Macierz przekształcenia układu współrzędnych fazowych A, B, C na składowe
symetryczne 0, 1, 2 ma następującą postać
S
=
1
3
1
1
1
1
1
2
2
a
a
a
a
Obliczyć wyznacznik macierzy S, a następnie wyznaczyć macierz odwrotną S
-1
. W oparciu o
otrzymane wyniki sprawdzić, czy otrzymana macierz ma następującą postać
9
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
S
−
=
1
2
2
1
1
1
1
1
a
a
a
a
Zadanie 3
Wzory transformacji prądów oraz napięć z układu A, B, C do układu 0, 1, 2 są następujące
I
012
= S I
ABC
U
012
= S U
ABC
Wzory transformacji prądów oraz napięć z układu 0, 1, 2 do układu A, B, C są następujące
I
ABC
= S
-1
I
012
U
ABC
= S
-1
U
012
Z pomiarów otrzymano następujące wartości napięć i prądów
U
A
= 0 V, U
B
= 400e
-j2
π
/3
V, U
C
= 400e
+j2
π
/3
V
I
A
= 100e
-j
π
/2
V A, I
B
= 0 A, I
C
= 0 A
Należy wyznaczyć wartości napięć i prądów w układzie 0,1,2.
Zadanie 4
Moc trójfazową w stanie niesymetrycznego obciążenia można obliczyć w układzie A,
B, C z następującego wzoru
P + jQ =
U I
U I
U I
A A
B B
C C
ABC
T
ABC
*
*
*
*
+
+
=
U
I
lub w układzie 0, 1, 2 ze wzoru
P + jQ = 3
U I
012 012
0 0
1 1
2 2
3
3
3
T
U I
U I
U I
*
*
*
*
=
+
+
Należy sprawdzić tożsamość wzorów na moc 3-fazową dla wartości napięć i prądów z
zadania 2 i 3.
10