Metody systemowe i decyzyjne w informatyce
Transkrypt
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium – MATLAB – Zadanie nr 1 Pojedyncze wahadło autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z systemem dynamicznym opisanym za pomocą równania stanu oraz zaproponowanie rozwiązania problemu w środowisku MATLAB z użyciem wbubdowanej implementacji algorytmu Rungego-Kutty. Rozpatrywanym obiektem jest pojedyncze wahadło. Numeryczne rozwiązanie należy porównać z analitycznym rozwiązaniem dla liniowej aproksymacji problemu dla niewielkich kątów. Równanie stanu W celu opisu matematycznego systemów dynamicznych wykorzystuje się reprezentację równań stanu: ds = f (s) dt s(0) = s0 , (1) (2) gdzie s(t) = (s1 (t) . . . sK (t))T oznacza K-wymiarowy wektor stanu, K 1 ds dt 1 = ( ds ... dt dsK T ) dt – wektor T pochodnych zmiennych stanu, f (s) = (f (s) . . . f (s)) – K-wymiarowy wektor funkcyjny, gdzie T każda f k (s) : RK → R jest K-wymiarową funkcją dla k = 1, . . . , K, s0 = (s10 . . . sK jest 0 ) K-wymiarowym wektorem warunków początkowych Wektor stanu s jest najmniejszym podzbiorem zmiennych opisujących system, które reprezentują całościowy stan systemu w zadanej chwili. θ L Rysunek 1: Schemat pojedynczego wahadła, na którym zaznaczono długość wahadła L oraz kąt wychylenia θ. 1 Pojedyncze wahadło W zadaniu skupiamy się na pojedynczym wahadle (patrz Rysunek 1). Zakładamy, że długość wahadła wynosi L i jest znana, natomiast kąt wychylenia oznaczamy przez θ. Przez g oznaczamy przyspieszenie ziemskie. Dynamikę pojedynczego wahadła można opisać następującym równaniem różniczkowym: d2 θ g (3) = − sin(θ). 2 dt L Otrzymane równanie różniczkowe (3) jest przykładem nieliniowego równania różniczkowego. Rozwiązanie analityczne nie jest możliwe do wyznaczenia, dlatego stosuje się metody numeryczne, np. algorytm Rungego-Kutty. Analityczne rozwiązanie można podać jedynie dla małych kątów, dla których stosuje się aproksymację sin(θ) ≈ θ. Wówczas rozwiązanie jest następujące: θ(t) = θ0 cos r g L t , (4) gdzie θ0 jest początkowym kątem wychylenia. Algorytm Rungego-Kutty w Matlabie – ode45 Jedna z implementacji algorytmu Rungego-Kutty w Matlabie nazywa się ode45. Dla zdefiniowanego w pliku dynamics.m wektora funkcyjnego f (s) z równania stanu, funkcję wywołuje się ją następująco: ode45(@(t,s) dynamics(s,L,g),T,init state); gdzie kolejne argumenty oznaczają odwołanie się do dynamiki (@(t,s) dynamics(s,L,g)) oraz wektor zadanych momentów czasu T i wektor warunków początkowych init state – s0 . Testowanie poprawności działania Do sprawdzania poprawności działania zaproponowanych rozwiązań służy funkcja main w pliku main.m. Funkcja pobiera trzy argumenty, kolejno, długość L, przyspieszenie g oraz kąt wychylenia początkowego θ0 . W przypadku, gdy nie zostaną podane argumenty, funkcja zostanie uruchomiona w wartościami domyślnymi. W pliku main.m nie wolno czekogolwiek zmieniać ani dopisywać. Instrukcja wykonania zadania 1. Zapisać równanie różniczkowe (3) za pomocą równania stanu (1). 2 2. Zaimplementować funkcję f (s) z równania stanu dla pojedynczego wahadła w pliku dynamics.m. 3. Zaimplementować numeryczne rozwiązanie równania stanu za pomocą funkcji ode45 w pliku numerical solution.m. 4. Wyznaczyć pochodną rozwiązania (4). 5. Zaimplementować rozwiązanie równania stanu za pomocą aproksymacji dla małych kątów (4) w pliku analytical solution.m. 6. Po spełnieniu powyższych punktów uruchomić funkcję main z zadanymi wartościami. UWAGA! Wszelkie nazwy funkcji i zmiennych w plikach *.m muszą pozostać zachowane. Zmiana jakichkolwiek nazw i dodanie fragmentów kodu poza wskazanymi miejscami skutkować będzie otrzymaniem 0 pkt. Implementacja (8 pkt.) 1. Poprawne zapisanie równania stanu dla pojedynczego wahadła – funkcja dynamics.m. (3 pkt.) 2. Poprawne rozwiązanie z użyciem funkcji ode45 – funkcja numerical solution.m. (2 pkt.) 3. Poprawne rozwiązanie z użyciem aproksymacji liniowej – funkcja analytical solution.m. (3 pkt.) Pytania kontrolne (2 pkt.) Prowadzący zadaje po jednym pytaniu każdej z osób w grupie: 1. Jakie zmienne wchodzą w skład wektora stanu s w problemie pojedynczego wahadła? 2. Proszę przekształcić równanie różniczkowe (3) do równania stanu. 3. Proszę wyznaczyć pochodną rozwiązania analitycznego (4). 4. Kiedy błąd analitycznej aproksymacji będzie większy niż rozwiązania numerycznego? 5. Kiedy błąd rozwiązania numerycznego będzie większy niż analitycznej aproksymacji? 6. Jaką przede wszystkim korzyść przynosi stosowanie rozwiązania analitycznego? 7. Dlaczego równanie (3) jest nieliniowym równaniem różniczkowym? 3 8. Czy równanie (3) może być rozwiązane z użyciem transformaty Laplace’a? 9. Czy równanie (3) z aproksymacją sin(θ) ≈ θ może być rozwiązane z użyciem transformaty Laplace’a? 10. Pokazać, że rozwiązanie (4) spełnia równanie (3) z aproksymacją sin(θ) ≈ θ. 4