Ćwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w ośrodku lepkim (Instrukcja obsługi interfejsu użytkownika) 1
1 Cel ćwiczenia Celem ćwiczenia jest rozwiązanie równań ruchu ciała (kuli) w ośrodku lepkim metodą Runge- Kutta IV rzędu. Rozwiązywane równania różniczkowe przedstawione są poniżej. dv dt dz dt 1 B CV V c D Re F V (1) A V (2) gdzie: T - zmiena niezależna - czas [s], V - prędkość ciała [m/s], Z - przemieszczenie ciała [m], c D Re [-] - opór całkowity kuli w ośrodku lepkim będący funkcją liczby Reynoldsa Re. A B C - pewne stałe, Wyprowadzenie równań ruchu (1-2) przedstawione jest w części teoretycznej instrukcji do ćwiczenia. 2
2 Interfejs użytkownika Realizacja ćwiczenia polega na wpisaniu przez Studenta fragmentu kodu numerycznego wewnątrz funkcji Obliczenia (Rys. 1). Fragment kodu napisany przez Studenta powinien zawierać algorytm rozwiązania równań różniczkowych (1-2) przy pomocy metody Runge-Kutta IV rzędu. Szczegółowy opis tej metody jest podany w części teoretycznej instrukcji do ćwiczenia. Rysunek 1: Widok funkcji Obliczenia po kliknięciu na plik Demo.cpp w obszarze roboczym projektu. W celu wyznaczenia funkcji F V na prawej stronie równania (1) konieczne jest określenie współczynnika oporu c D Re. Współczynnik ten jest funkcją liczby Reynoldsa, która określana jest na podstawie średnicy kuli, jej chwilowej prędkości V oraz współczynnika lepkości kinematycznej płynu. Zależności opisujące rozkład współczynnika oporu c D w funkcji liczby Reynoldsa podane są również w części teoretycznej instrukcji do ćwiczenia. 3
Projekt uruchamia się klikając na plik Rozwiazanie.dsw znajdujący się w katalogu Cwiczenie2 Rozwiazanie2. Po otwarciu projektu należy: sprawdzić poprawność zdefiniowania ścieżki do pliku wykonywalnego programu Cwiczenie2.exe znajdującego się w katalogu Toolkit Debug. Ścieżkę tą ustala się wybierając w menu głównym programu Visual C++ odpowiednio Project/Settings/Debug. skompilować program, oraz uruchomić go w wersji demonstracyjnej Po uruchomieniu programu ukaże się okno interfejsu użytkownika (Rys. 2) w którym można ustalić wartości wybranych zmiennych, oraz przeprowadzić symulację ruchu kuli w ośrodku lepkim. Opis ważniejszych zmiennych, które można ustalić z poziomu interfejsu użytkownika: gęstość kuli, temperatura powietrza, oraz przyspieszenie ziemskie liczba kul dla których rozwiązywane są równania ruchu. Maksymalna liczba kul wynosi N kul 5. Liczbę kul podaje się w oknie dialogowym Podaj ilość kul, oraz zatwierdza ich liczbę poprzez naciśnięcie klawisza OK. średnice poszczególnych kul Program umożliwia wykonanie obliczeń w wersji testowej, oraz w wersji roboczej (Rys. 3). Praca w trybie roboczym pozwala na realizację obliczeń z wykorzystaniem fragmentu kodu napisanego przez Studenta samodzielnie. Uzyskane wyniki obliczeń mogą być dalej porównane z wynikami obliczeń otrzymanymi przy uruchomieniu wersji testowej programu. Poprawność implementacji własnej części kodu można stwierdzić poprzez wizualne porównanie uzyskanych wyników obliczeń (przy uruchomieniu programu w trybie roboczym) z wynikami uzyskanymi przy uruchomieniu wersji testowej programu. Obliczenia uruchamia się naciskając na klawisz Obliczenia, natomiast wyniki obliczeń w postaci graficznej przedstawione są na wykresie po naciśnięciu odpowiednich klawiszy, których znaczenie zostało podane poniżej: Zasięg - rozkład przemieszcenia kuli Z m w funkcji czasu t s Prędkość - rozkład prędkości kuli V m s w funkcji czasu t s Reynolds - rozkład liczby Reynoldsa w funkcji czasu t s 4
Rysunek 2: Interfejs graficzny użytkownika po uruchomieniu programu Cwiczenie2.exe. Cd - rozkład współczynnika oporu c D w funkcji czasu t s Siły - zmienność sił Q i i lepkim 1 5 N działających na ciało w trakcie ruchu w ośrodku Na wykresach rozkładu przemieszczenia oraz prędkości otrzymanych na podstawie rozwiązania równań ruchu ciała w ośrodku lepkim przedstawione są również rozkłady tych parametrów dla ruchu kuli w próżni. Wybrane parametry płynu oraz kuli, które ustala się w oknach dialogowych po uruchomieniu interfejsu użytkownika są w chwili naciśnięcia klawisza Obliczenia przekazywane do funkcji Obliczenia należącej do klasy Demo poprzez listę jej argumentów. Do funkcji Obliczenia przekazywane są również inne zmienne, które niezbędne są do rozwiązania równań różniczko- 5
Rysunek 3: Przełaczenie pomiędzy trybem roboczego oraz testowym programu. wych (1-2). Lista wszystkich zmiennych oraz tablic przekazywanych do funkcji Obliczenia jest przedstawiona poniżej: m_nilosckul - liczba kul dla których rozwiązywane są równania ruchu. Maksmalna liczba kul wynosi m_nilosckul 5. srednice - wskaźnik do tablicy typu rzeczywistego o rozmiarze m_nilosckul, której elementami są średnice kul. Indeksacja tablicy rozpoczyna się od 0. A oraz B - wartości stałych A i B w równ. (1-2) Ro_sr - stała określająca stosunek gęstości płynu Ro_pow do gęstości kuli Ro_kul Czas_Spadku - czas dla którego przeprowadza się symulację spadku ciała w ośrodku lepkim Ni - lepkość płynu 6
Ro_kul - gęstość kuli, Ro_pow - gęstość płynu Zasieg 1000 5 - dwuwymiarowa tablica danych której elementami są wartości przemieszczenia kul w kolejnych chwilach czasu, indeks pierwszy określa numer kroku czasowego natomiast indeks drugi określa numer kuli dla której rozwiązywane są równania ruchu Predk 1000 5 - dwuwymiarowa tablica danych której elementami są wartości prędkości kul w kolejnych chwilach czasu, indeks pierwszy tablicy określa numer kroku czasowego natomiast indeks drugi określa numer kuli dla której rozwiązywane są równania ruchu Wartości przemieszczenia Z oraz prędkości V uzyskane na podstawie rozwiązania równań (1-2) muszą zostać zapisane odpowiednio w dwuwymiarowych tablicach Zasieg oraz Predk. Pierwszy indeks tych tablic oznacza numer kroku czasowego, natomiast indeks drugi oznacza numer kuli dla której rozwiązywane są równania ruchu. Elementy tablic Z oraz V są indeksowane od zera. Przed przystąpieniem do obliczeń należy pamiętać o podaniu warunków początkowych rozwiązania. Przykładowo dla pierwszej kuli warunki te będą wynosić Z 0 0 0 oraz V 0 0 0. 7