WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab...

8
Politechnika Gdańska Wydział Elektrotechniki i Automatyki WPROWADZENIE DO ŚRODOWISKA SCILAB Materiały pomocnicze do ćwiczeń laboratoryjnych Opracowanie: Paweł Lieder Gdańsk, 2007

Transcript of WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab...

Page 1: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

Politechnika GdańskaWydział Elektrotechniki i Automatyki

WPROWADZENIE DO ŚRODOWISKA SCILAB

Materiały pomocnicze do ćwiczeń laboratoryjnych

Opracowanie:

Paweł Lieder

Gdańsk, 2007

Page 2: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

Podstawy pracy z Scilab

1. Każda komenda musi być zakończona wciśnięciem klawisza ENTER, co spowoduje jej wykonanie.

2. Zbyt długie polecenia mogą być dzielone na kilka linii używając składni „ .. „

1. Podstawową strukturą danych używaną przez Scilab jest macierz. Nawet skalary są traktowane jako macierz rzędu 1x1.

2. Kopiowanie, wklejanie oraz wycinanie zaznaczonych fragmentów jest możliwe przy pomocy skrótów ctrl+c, ctrl+v oraz ctrl+x.

2. Komentarze wpisujemy po wyrażeniu używając składni „ // „ , np.

A+b // dodawanie

Operacje arytmetyczne:

1. Dodawanie oraz odejmowanie – rozmiary dodawanych lub odejmowanych macierzy muszą być takie same. Istnieje także możliwość dodania/odjęcia skalara od macierzy. Wynikiem takiego działania będzie dodanie do każdego elementu macierzy wartości pożądanego skalara.

2. Mnożenie – dla skalarów działanie mnożenia wykonywane jest normalnie, zaś w przypadku macierzy jest to mnożenie macierzy. Należy pamiętać, iż rozmiary macierzy muszą się zgadzać. Scilab posiada także specjalny operator „ .* „ , który mnoży wszystkie elementy macierzy po kolei.

3. Dzielenie – dzielenie skalarów odbywa się standardowo. Dzielenie macierzy jest działaniem definiowanym w matematyce jako mnożenie przez odwrotność macierzy będącej dzielnikiem. Operator „ / „ pozwala na dzielenie przez siebie odpowiednich elementów macierzy. Do dzielenia lewostronnego używamy „ \ „.

4. Potęgowanie oraz pierwiastkowanie – potęgowanie wykonuje się używając polecenia „ ^ ”, zaś pierwiastkowanie „ sqrt ”.

5. Transpozycja – w celu transpozycji macierzy używany jest operator „ ‘ „.

6. Wartość bezwzględna – moduł liczby wyliczamy używając polecenia abs(x). gdzie x to wartość rzeczywista, wektor lub macierz.

Page 3: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

Polecenia Scilab

Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

• %e - podstawa logarytmu naturalnego;• %pi – stała Pi;• %inf – zmienna nieskończoność (infinity);• %nan – zmienna not a number;• %t oraz %f – wartości true oraz false dla wyrażeń binarnych.

Wprowadzanie skalarów:

• Skalary rzeczywiste – po wprowadzeniu nazwy zmiennej podajemy jej wartość. Po wykonaniu polecenia możemy wyświetlić wartość tej zmiennej wpisując jej nazwę. Zmienne nie zdefiniowane są dostępne pod nazwą ans.

b= 100

• Porównanie skalarów binarnych – porównanie wykonywane jest przy użyciu operatora „ ==”

5==5 // Odpowiedź T (True)

1==5 // Odpowiedź F (False)

• Wprowadzenie wielomianów – w tym celu definiujemy najpierw zmienną niewiadomą przy pomocy komendy „ poly „.

x=(0,”x”)

Następnie wprowadzamy pożądany wielomian:

a= 3+ x+3*x^2

• Wyznaczanie pierwiastków równania wielomianowego – służy do tego komenda roots.

x=(0,”x”) a= 3+ x+3*x^2 roots(a)

• Dostępne są wszystkie operacje arytmetyczne jak dodawanie, dzielenie, mnożenie, potęgowanie itp.

Page 4: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

Generowanie macierzy:

• Wprowadzanie macierzy – elementy macierzy wpisujemy pomiędzy nawiasy kwadratowe. Kolejne wiersze wprowadzamy używając znaku średnika.

P=[ 2 3 1; 4 6 3; 9 0 5] // tworzy macierz: 509364132

=A

• Do wyznaczenia wyznacznika macierzy służy komenda det.

• Macierz odwrotną uzyskuje się komendą inv.

• Komenda ones – służy do wygenerowania macierzy składającej się z samych jedynek, np.

a=ones(3,3) // tworzenie macierz 3x3 zawierające same jedynki.

• Komenda zeros –polecenie bardzo podobno do poprzedniego generujące macierz zawierającą same zera.

• Macierz jednostkowa – do wygenerowania macierzy jednostkowej służy polecenie eye(m,n), gdzie m oraz n to ilość wierszy i kolumn.

• Tworzenie ciągu elementów realizowane jest przy pomocy operatora „ : „W pierwszej kolejności podaje się pierwszy element , następnie krok oraz ostatni element ciągu, np.

10:1:15

Polecenie wygeneruje ciąg: 10, 11, 12,13, 14, 15.

Należy pamiętać, iż ostatni podany element nie musi znaleźć się w wygenerowanym ciągu.

Np.

10:2:15

Wygenerowane liczby to: 10, 12, 14.

• Odnoszenie się do konkretnych elementów macierzy – Scilab pozwala na pobranie i wyświetlenie konkretnych elementów z macierzy. Zastosowanie zostanie pokazane na macierzy 5x5

A=[1 2 3 4 5; 2 4 6 8 0; 0 9 8 7 6;5 5 5 5 5; 3 4 5 6 7] // generowanie macierzy

Page 5: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

7654355555678900864254321

=A

A(3,4) // wyświetlenie elementu z 3 wiesza, 4-tej kolumny

A(1:3,1:2) // wyświetlenie elementów z pierwszych trzech wierszy, a także kolumn 1 i 2.

A(:,5) // wyświetlenie piątej kolumny

A(5,:) // wyświetlenie piątego wiersza

Operacje arytmetyczne na macierzach:

Zdefiniujmy dwie macierze: 352542

oraz 543432

== BA .

• Działanie mnożenia macierzowego

A*B

Ze względu na niewłaściwy rozmiar macierzy działanie nie może zostać wykonane

A*B’

41473136

'* == BAc

• Mnożenie element po elemencie

A.*B

1520620124

*. == BAc

Page 6: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

• Mnożenie macierzy przez skalar

5*A

252015201510

*5 == Ac

Wykresy

Scilab posiada wbudowane narzędzia do wyświetlania wykresów oraz grafiki. Najbardziej interesuje nas rysowanie wykresów dwuwymiarowych. Do tego celu służy polecenie plot2d.

Składnia polecenia: plot2d([x],y, <opt_args>)

,gdzie:

X,y to macierze rzeczywiste lub wektory, opt_args - argumenty polecenia.

Wyświetlenie kilku wykresów w jednym oknie uzyskujemy przy pomocy polecenia subplot(m,n,p). M odpowiada za ilość wierszy, n za kolumny. P wybiera pod-okno.

Okno zawierające wykres czyścimy poleceniem xbasc(). W nawias podawany jest numer id okna.

Do innych pożytecznych komend przy generowaniu wykresów możemy zaliczyć:

- x_vals – określenie współrzędnych osi x;

- y_vals - określenie współrzędnych osi y;

- legends – legenda;

- xtitle – nazwa wykresu.

Funkcje

W Scilab zaimplementowano bardzo prostą oraz intuicyjną obsługę funkcji. Zastosowanie tej procedury pokazane zostanie na przykładzie przebiegu wielomianu 152 23 ++− xxx .

function [y]=f(x) // deklaracja funkcjiy= x^3-2*x^2+5*x+1 endfunction // koniec funkcji

x=(-10:0.5:10) // zadeklarowanie przedziału czasowego

Page 7: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

fplot2d(x,f) // rysowanie funkcji title('Przebieg Funkcji') legend('Wielomian')

Otrzymany przebieg:

Należy zwrócić uwagę na komendę użytą do rysowania funkcji. Zamiast polecenia plot2d użyto fplot2d, która znajduje zastosowanie wyłączne w przypadku rysowania funkcji.

Pomocnym narzędziem przy rozwiązywaniu równań różniczkowych jest solwer ode.

Składnia wywołania ma postać:

Y = ode(y0,t0,t,f)

,gdzie

y0- warunki początkowe;t0- czas początkowy;t- czas końcowy( dla którego równanie ma być liczone);f- dana funkcja.

Polecenia Control Toolbox

Tworzenie systemów:

• Syslin – definiowanie systemu liniowego;

• Ts2ss – przejście z transmitancji na współrzędne stanu;

• Ss2tf - przejście z transmitancji na współrzędne stanu;

• Dscr – dyskretyzacja systemu liniowego;

Page 8: WPROWADZENIE DO ŚRODOWISKA SCILAB - pg.gda.plmkwies/dyd/paira/scilab.pdf · Polecenia Scilab Scilab posiada specjalne zmienne predefiniowane przydatne podczas modelowania zagadnień.

• Linspace – generowanie wektorów pomocnych przy tworzeniu podstawy czasowej dla symulacji.

Symulowanie systemów

• Csim – symulacja systemu liniowego;

• Ltitr – odpowiedz systemu dyskretnego;

• Dsimul – symulacja systemu dyskretnego zdefiniowanego przy pomocy równań stanu.

Typowe charakterystyki

• Bode – charakterystyka Bode’go;

• Nyquist- charakterystyka Nyquist;

• Evans – pokazuje rozłożenie pierwiastków systemu;

• G_margin – wyznaczanie zapasu wzmocnienia;

• P-margin – wyznaczanie zapasu fazy.

Zadania

1. Rozwiąż równanie

=+−=++−

=−+

71292435

532

321

321

321

xxxxxx

xxx.

2. Dla dowolnych macierzy udowodnij, że 111)( −−− = ABAB .

3. Na jednym wykresie narysuj funkcje :

)3626

(32

)3626

(32

22

2

22

2

xxxxx

y

xxxxx

y

−−++−+

=

−+++−+

=

4. Dla obiektu o transmitancji 13

5)(+

=s

sG wyznacz odpowiedz na skok jednostkowy,

wymuszenie sinusoidalne. Dodatkowo wykreśl charakterystykę Nyquista oraz Bode’go.