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.
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.
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
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
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
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
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
22 22 22
À
- 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
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/
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
3
a = e j2π /3 = cos(120o) + j sin(120o) = − 0,5 + j
)
2
Sprawdzić następujące własności operatora a
3
a2 = (e j2π 3/)2 = cos(240o) + jsin(240o) = cos(−120o) + jsin(−120o) = − 0,5 − j 2
1 + a + a2 = 0
a3 = (e j2π 3/)3 = cos(360o) + jsin(360o) = 1 + j0 = 1
a* = a2
a4 = a
(a2)* = 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ć
1
1
1
1
2
S =
1
a
a
3 1 2a 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ć
Wykład 1: Wprowadzenie – pierwsze kroki w Matlabie
http://zss.ie.pwr.wroc.pl/studenci
1
1
1
1
2
S− = 1 a
a
2
1
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 I012 = S IABC
U012 = S UABC
Wzory transformacji prądów oraz napięć z układu 0, 1, 2 do układu A, B, C są następujące IABC = S-1 I012
UABC = S-1 U012
Z pomiarów otrzymano następujące wartości napięć i prądów
UA = 0 V, UB = 400e-j2π/3 V, UC = 400e+j2π/3 V
IA = 100e-jπ/2 V A, IB = 0 A, IC = 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*
T
*
+
+
= U
I
A A
B B
C C
ABC ABC
lub w układzie 0, 1, 2 ze wzoru
P + jQ = 3 UT I*
3U I*
3U I* 3U I*
=
+
+
012 012
0 0
1 1
2 2
Należy sprawdzić tożsamość wzorów na moc 3-fazową dla wartości napięć i prądów z zadania 2 i 3.