Podstawy Automatyki_matlab
Transkrypt
Podstawy Automatyki_matlab
Podstawy Automatyki – ćwiczenia Cz.1 Środowisko Matlab Podstawową jednostką obliczeniową w programie Matlab jest macierz. Wektory i skalary mogą być tutaj rozpatrywane jako specjalne typy macierzy. Elementy macierzy zawarte jest w nawiasach prostokątnych []. Elementy w kolumnach odseparowane są od siebie spacjami lub przecinkami, wiersze natomiast średnikami lub wciśnięciem klawisza Enter. Matlab umożliwia wprowadzanie tekstu/komend na kilka sposobów. Najbardziej popularne to bezpośrednie wprowadzanie komend bezpośrednio w oknie edycyjnym oraz przygotowywanie tzw m-plików – plików z rozszerzeniem *.m przygotowanych w dowolnym edytorze tekstowym. Wywołanie procedur w nich zawartych odbywa się poprzez wpisanie nazwy pliku w oknie edycyjnym. Dostęp do poprzednio wpisywanych komend można uzyskać za pomocą strzałek. W przypadku wątpliwości, co do działania poszczególnych funkcji Matlaba można posłużyć się komenda help: przykład help roots W środowisku Matlab szczególne znaczenie mają: % - oznacza początek komentarza, [] – tworzenie tablic i macierzy, () – argumenty wejściowe funkcji, nawiasy do określenia kolejności działań ; - koniec wiersza macierzy ; - decyduje, czy dana linia będzie wyświetlana na ekranie, Przykładowo: A=1; - powoduje przypisanie wartości 1 do zmiennej A, na ekranie nie pojawi się potwierdzenie wykonania operacji A=1 – działanie, jak wyżej. System potwierdzi przypisanie wartości 1 do zmiennej A. Liczby zespolone: Wprowadzanie zmiennych i wyrażeń zespolonych odbywa się następująco: Z1=3+4j Lub Z1=3+4i Poprawne są obie formy zapisu. Operacje na liczbach zespolonych: Wartość bezwzględna : abs(Z1) Liczba sprzężona : conj(Z1) Kąt : angle(Z1) Część rzeczywista : real(Z1) Część urojona : imag(Z1) Kąt może być liczony również za pomocą funkcji atan: 1 atan2(imag(Z1),real(Z1)) Zadania do wykonania: Dla liczb zespolonych Z1=12+j3 Z2=1-j5 Z3=44-j12,5 Wyznaczyć: Moduły Kąty Część rzeczywistą i urojoną Liczby sprzężone (kąty dla liczb sprzężonych) Wyrażenia: æ Z2 ö Z1 + ç ÷ è Z3 ø Z1× Z2 + Z3 ( Z1× Z2 ) + Z3 Wyniki powyższych operacji przyporządkować do innych zmiennych Macierze i operacje na macierzach: Wprowadzanie macierzy i wektorów odbywa się następująco: Komenda A = [ a b c] tworzy wektor A = a b c, Komenda Komenda A = [ a; b; c] tworzy wektor A = [ a b c; d e f ; g h i ] a A =b, c tworzy macierz a b c A=d e f , g h i Wybrane operacje na macierzach ‘ – transpozycja macierzy * - iloczyn wektorowy Nazwa_miacierzy(x,y)= wartość – zmiana wartości wybranego elementu macierzy o współrzędnych (x,y). Jeżeli (x,y)=(:,:) oznacza to zmianę wszystkich elementów macierzy. W podobny sposób można zmienić wymiar macierzy. Det(nazwa_macierzy) –wyznacznik macierzy Inv(nazwa_macierzy) – macierz odwrotna Przykłady Dane są wektory 2 X=[1 2 3] Y=[4 5 6] Wyznaczyć i zinterpretować wynik operacji A = X +i×Y Dokonać mnożenia wektorów X*Y Dokonać transpozycji wektora Y: B=Y’ % apostrof oznacza transpozycje macierzy Dokonać mnożenia wektorów X*B Dodać kolejne elementy macierzy X i Y celem uzyskania macierzy o wymiarach (3x3). Przyjąć dowolne wartości elementów macierzy. Analitycznie i za pomocą Matlaba : · wyznaczyć wyznaczniki obu macierzy · dokonać transpozycji macierzy. · wyznaczyć wyznaczniki macierzy transponowanych. · Wyznaczyć iloczyn macierzy · Wyznaczyć sumę macierzy · Wyznaczyć macierz odwrotną (tylko Matlab). Pliki wsadowe (m-files) Poniższe funkcje należy uruchomić w edytorze Matlaba a następnie jako pliki wsadowe do programu Matlab: Disp – wyświetla komentarz (dla użytkownika) Input – wczytuje wartości wejściowe #1 % Operacje na liczbach zespolonych disp(' dla liczby zespolonej postaci c1=a1+jb1'); disp(' podaj '); a1=input('a1='); b1=input('b1='); disp(' dla liczby zespolonej postaci c2=a2+jb2'); disp(' podaj '); a2=input('a2='); b2=input('b2='); disp(' podales liczby'); c1=a1+b1*j 3 c2=a2+b2*j disp(' dodawanie'); c=c1+c2 disp(' mnozenie'); c=c1*c2 disp(' dzielenie'); c=c1/c2 Zadanie · Przygotować plik m, który wyznaczy moduł, liczbę sprzężoną oraz kąt dowolnej liczby zespolonej. Program powinien „spytać” o części rzeczywiste i urojone liczb. · Przygotować plik m, który wyznaczy część rzeczywistą i urojoną liczby o zadanym module i kącie. Wykorzystane komendy Roots() – liczy pierwiastki wielomianu n-tego stopnia Plot(x,y) – wyświetla wynik na wykresie jako punkt o współrzędnych (x,y) Hold on – „zatrzymuje wykres” – kolejne wyniki wyświetlane SA na tym samym wykresie Grid on - włącza siatkę #1 % wyznaczenie pierwiastkow rownania %dane jest rownanie postaci % a(n)*x^x+a(n-1)*x^(n-1)+....a0*x^0=0 % podaj macierz wspolczynnikow wielomianu % a=[a(n) a(n-1) a(0)] % komenda ROOTS(C)liczy pierwastki % przyklad A=0; disp(' dla rownania postaci A2*x^2+A1*x-A0=0'); disp(' podaj wspolczynniki'); A(1)=input('A2='); A(2)=input('A1='); A(3)=input('A0='); disp(' macierz A wspolczynnikow rowania'); A Pierwiastki=Roots(A); disp(' pierwiastki rowania wynosza'); Pierwiastki(1) Pierwiastki(2) %Real1=real(Pierwiastki(1)); %Imag1=imag(Pierwiastki(1)); %plot(Real1, Imag1) plot(Pierwiastki(1),'d' ) hold on plot(Pierwiastki(2),'d' ) 4 hold off grid on disp(' po podstawieniu do rownania uzyskuje sie'); wynik1=A(1)*(Pierwiastki(1)^2)+A(2)*(Pierwiastki(1))+A(3) wynik2=A(1)*(Pierwiastki(2)^2)+A(2)*(Pierwiastki(2))+A(3) Zadanie · Przygotować plik m, macierz odwrotną i transponowaną dowolnej macierzy (program powinien „spytać” o poszczególne jej elementy) 5