Plik Word a w nim przydatne wiadomości do nauki obsługi programu Matlab, Politechnika Rzeszowska


Politechnika Rzeszowska

Katedra Automatyki i Informatyki

M. Wysocki

Zastosowanie obliczeń komputerowych w systemie MATLAB w teorii sterowania

  1. System MATLAB

    1. Wprowadzenie

    2. Podstawowe elementy języka systemu MATLAB

    3. Działania na macierzach

    4. Instrukcja i wyrażenia

    5. Operacje na elementach

    6. Instrukcje i wyrażenia

    7. Operacje na elementach macierzy

    8. Relacje

    9. Operacje logiczne

    10. Inne operatory

    11. Formaty wydruków

    12. Tworzenie wykresów

    13. Instrukcje sterujące przebiegiem programu

    14. Zachowanie wyników obliczeń na dysku

    15. Uzupełnienia podstawowych informacji

2. Przykłady zastosowań w teorii sterowania

2.1 Wielomiany

2.2 Transmitancja operatorowa

2.3 Wyznaczanie odpowiedzi skokowej

    1. Wprowadzenie

1.1.1Informacje ogólne

System MATLAB umożliwia wygodne prowadzenie obliczeń matematycznych w zakresie różnych dyscyplin. Przydatność systemu uwidacznia się szczególnie w odniesieniu do problemów dotyczących teorii sterowania i teorii systemów. Obecnie system jest stale wzbogacany o nowe biblioteki procedur (TOOLBOX) obejmujące różne dziedziny jak sterowanie, przetwarzanie sygnałów, sieci neuronowe itd.

Uruchomienie systemu wymaga następującego zestawu komputera typu PC :

Zalecane jest też, aby zestaw posiadał dodatkowo:

Rozpoczęcie pracy wymaga:

Wyjście z systemu realizują instrukcje:

      1. Podstawowe zasady pracy w systemie MATLAB

Duże i małe litery:

MATLAB rozróżnia duże i małe litery. Oznacza to, że np. A i a nie są tymi samymi zmiennymi. Wszystkie nazwy poleceń wprowadzanych po wyświetleniu na ekranie znaku „zaproszenia” >> muszą być pisane małymi literami. Instrukcją casesen można spowodować niewrażliwość na wielkość liter. Ponowne jej wywołanie przywraca stan początkowy.

Uzyskiwanie informacji pomocniczej systemu:

Instrukcja help <temat> powoduje wyświetlenie komentarza dotyczącego danego tematu. Pod nazwą <temat>

Wpisuje się na ogół nazwę procedury. Gdy napiszemy tylko help , nastąpi wyświetlenie tematów objętych tą instrukcją.

Uruchomienie przykładów demonstracyjnych:

Polecenie demo umożliwia prześledzenie istniejących już w systemie przykładów zastosowania wybranych funkcji MATLAB-a.

Wywołanie komend DOSu z poziomu MATLABa:

Rozpoczęcie polecenia od wykrzyknika ! oznacza, że dalsze napisy w linii oznaczają treść instrukcji dla systemu operacyjnego (DOS). Typowym przykładem jest wywołanie edytora ne poleceniem !ne.

Inne:

      1. Zbiory „.m” i „.mex”

Pocedury wykorzystywane przez MATLAB są zapisane w zbiorach z rozszerzeniami .m lub .mex. Rozszerzenie .mex mają procedury powstałe ze skomplikowanych programów w języku FORTRAN lub C, skonsolidowanych (zlinkowanych) do postaci wykonywalnej (.exe). Isnieje więc możliwość użycia własnych procedur napisanych w tych językach.

Obok możliwości wykorzystania FORTRANu i C, MATLAB, posiada własny język programowania, nazywany językiem systemu MATLAB, w którym także można pisać własne procedury(programy)rozszerzające biblioteki MATLABa. Procedury te przygotowuje się w postaci zbiorów źródłowych z rozszerzeniem .m, wykorzystując do tego celu edytor tekstowy(np. nc, ne, Sidekick itp.).Nie będziemy tutaj omawiać bliżej otrzymywania zbiorów typu .m, zawierających instrukcje języka systemu MATLAB.

Warto zaznaczyć, że podczas realizacji procedury źródłowe umieszczone w zbiorach typu .m nie są komplikowane lecz interpretowane, tzn. przed wykonaniem nie jest otrzymywany kod maszynowy taki, jaki zapewniają kompilatory i konsolidatory (linkery).W wyniku takiego podejścia MATLAB jest bardziej efektywnym systemem, którego zaletą jest eliminacja czasochłonnego cyklu kompilacja - konsolidacja-wykonanie. Z drugiej strony należy jednak zaznaczyć , że niektóre instrukcje ,zwłaszcza pętle, są wykonywane znacznie wolniej niż w językach kompilowanych jak C i PASCAL. Wydruk zbioru <nazwa . m> na ekranie uzyskuje się za pomocą polecenia type nazwa

Wydruk zbioru o dowolnym rozszerzeniu nazwa . roz otrzymuje się za pomocą polecenia type nazwa . roz.

    1. Podstawowe elementy języka systemu MATLAB

Dla uproszczenia zamiast sformułowania ”język systemu MATLAB” będziemy używać skróconych postaci tej nazwy: ”język MATLAB” lub „MATLAB”

1.2.1Liczby w języku MATLAB

Zapis liczb rzeczywistych

Liczby są przedstawione w konwencjonalnym zapisie dziesiętnym z opcjonalną kropką dziesiętną i znakiem minus. Przykładami dozwolonego zapisu liczb rzeczywistych są:

3 -99 0.0001

9.6397238 1.60210E-20 6.02252e23

Każda liczba jest zapisywana w 8-miu bajtach, co umożliwia zapis z dokładnością około 16 cyfr znaczących. Zakres liczb wynosi w granicach od 10-308 do 10308.

Liczby zespolone

Aby wprowadzić liczby zespolone, trzeba wprowadzić jednostkę urojoną

i=sqrt(-1) lub j=sqrt(-1) .

Zapisu dokonuje się następnie w zwykły sposób, np.

3+4*j lub 5*exp(j*2.5)

Zmienne systemowe o stałych wartościach

eps=2-52=2.22*10-16 - wartość używana jako tolerancja, np. przy ocenie osobliwości macierzy; użytkownik może ją zmieniać na dowolną inną,

pi=π,

inf=∞,

NAN - „nie liczba” - uzyskiwana w operacjach Inf/Inf lub 0/0.

      1. Macierze i działania na nich

MATLAB wykorzystuje w zasadzie tylko jeden typ obiektów, tj. prostokątne macierze liczbowe z dopuszczalnymi elementami zespolonymi. Szczególnym przypadkiem jest skalar, tzn. macierz 1x1 lub wektor, tj.macierz o jednej kolumnie lub jednym wierszu.

Wszystkie operacje w MATLABie rozumie się jako macierzowe. NA uwagę zasługuje fakt, że nie ma deklaracji zmiennych i rezerwowania wymiarów.

Wprowadzanie macierzy

Wprowadzanie macierzy może odbywać się następującymi sposobami:

Przy wprowadzaniu małych macierzy najprościej jest podać listę elementów oddzielonych spacją lub przecinkiem zamkniętą w nawiasach prostokątnych, wewnątrz których wiersze są oddzielone średnikami.

Przykład 1.1

[ 1 2 3

A=[1 2 3 ; 4 5 6 ; 7 8 9 ] lub A= 4 5 6

7 8 9 ]

oznacza wprowadzenie macierzy A= 0x01 graphic

Zapis macierzy z przykładu 1.1 może być dokonany bezpośrednio z klawiatury, lub umieszczony wcześniej na dysku, np. w zbiorze macA.m . W drugim przypadku dla wprowadzenia macierzy do pamięci wystarczy instrukcja: >>macA (Enter)

Istnieje możliwość wykorzystywania już istniejących macierzy jeśli są one „podmacierzami” wprowadzanych macierzy; np. zapis :

A=[A;[ 10 11 12 ]]

Spowoduje, że macierz A będzie miała teraz postać: A=0x01 graphic

Sposób wprowadzania macierzy z elementami zespolonymi ilustruje następujący przykład:

Przykład 1.2

Wprowadzanie jednego z poniższych zapisów:

A=[1 2 ; 3 4 ]+j*[ 5 6 ; 7 8 ] lub A=[1+5*j 2+6*j ; 3+7*j 4+8*j ]

Spowoduje to, że macierz A będzie miała postać: A= 1+5*j 2+6* j

3+7*j 4+8*j

Funkcje zapełniania prostych macierzy

Często spotykane można wprowadzić nieco prościej wykorzystując do tego celu specjalne funkcje(polecenia języka MATLAB). Należą do nich :

ones(n), ones(m,n), ones(A) - tworzą jedynek kolejno o wymiarach n, xn, mxn, takich jak znana macierz A.

eye(n), eye(m,n), eye(A) - tworzą macierze z jedynkami na przekątnej i zerowymi pozostałymi elementami o wymiarach jw.

zeros(n), zeros(n,m), zeros(A) - tworzą macierze z zer o wymiarach jw.

UWAGA: Jeśli A jest skalarem, to ones(A) ma taki wymiar jak wartość zapisana pod A. To samo dotyczy pozostałych funkcji.

Macierze puste

Macierz pusta (o wymiarach 0x0)może być zdefiniowana za pomocą operacji:

A=[].

      1. Definiowanie wektorów

Ponieważ wektory także w MATLABie są traktowane jako szczególny przypadek macierzy może być dla nich stosowany dowolny spośród wyżej wymienionych sposobów wprowadzania. Dodatkowo wektory można tworzyć stosując specjalne zapisy języka MATLAB jak np.