´Cwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w
Transkrypt
´Cwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w
Ć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 rozwiazanie ˛ równań ruchu ciała (kuli) w ośrodku lepkim metoda˛ RungeKutta IV rz˛edu. Rozwiazywane ˛ równania różniczkowe przedstawione sa˛ poniżej. dV dT dZ dT 1 B CV V cD Re A V F V (1) (2) gdzie: T - zmiena niezależna - czas [s], V - pr˛edkość ciała [m/s], Z - przemieszczenie ciała [m], cD Re [-] - opór całkowity kuli w ośrodku lepkim b˛edacy ˛ funkcja˛ liczby Reynoldsa Re. A B C - pewne stałe, Wyprowadzenie równań ruchu (1-2) przedstawione jest w cz˛eści teoretycznej instrukcji do ćwiczenia. 2 2 Interfejs użytkownika Realizacja ćwiczenia polega na wpisaniu przez Studenta fragmentu kodu numerycznego wewnatrz ˛ funkcji Obliczenia (Rys. 1). Fragment kodu napisany przez Studenta powinien zawiera ć algorytm rozwiazania ˛ równań różniczkowych (1-2) przy pomocy metody Runge-Kutta IV rz˛edu. Szczegółowy opis tej metody jest podany w cz˛eści teoretycznej instrukcji do ćwiczenia. Rysunek 1: Widok funkcji Obliczenia po klikni˛eciu 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 cD Re . Współczynnik ten jest funkcja˛ liczby Reynoldsa, która określana jest na podstawie średnicy kuli, jej chwilowej pr˛edkości V oraz współczynnika lepkości kinematycznej płynu. Zależności opisujace ˛ rozkład współczynnika oporu cD w funkcji liczby Reynoldsa podane sa˛ również w cz˛eści teoretycznej instrukcji do ćwiczenia. 3 Projekt uruchamia si˛e klikajac ˛ na plik Rozwiazanie.dsw ˛ znajdujacy ˛ si˛e w katalogu Cwiczenie2 Rozwiazanie2. Po otwarciu projektu należy: sprawdzić poprawność zdefiniowania ścieżki do pliku wykonywalnego programu Cwiczenie2.exe znajdujacego ˛ si˛e w katalogu Toolkit Debug. Ścieżk˛e ta˛ ustala si˛e wybierajac ˛ 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˛e okno interfejsu użytkownika (Rys. 2) w którym można ustalić wartości wybranych zmiennych, oraz przeprowadzić symulacj˛e ruchu kuli w ośrodku lepkim. Opis ważniejszych zmiennych, które można ustalić z poziomu interfejsu użytkownika: g˛estość kuli, temperatura powietrza, oraz przyspieszenie ziemskie liczba kul dla których rozwiazywane ˛ sa˛ równania ruchu. Maksymalna liczba kul wynosi Nkul 5. Liczb˛e kul podaje si˛e w oknie dialogowym Podaj ilość kul, oraz zatwierdza ich liczb˛e poprzez naciśni˛ecie 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˛e obliczeń z wykorzystaniem fragmentu kodu napisanego przez Studenta samodzielnie. Uzyskane wyniki oblicze ń moga˛ być dalej porównane z wynikami obliczeń otrzymanymi przy uruchomieniu wersji testowej programu. Poprawność implementacji własnej cz˛eś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˛e naciskajac ˛ na klawisz Obliczenia, natomiast wyniki oblicze ń w postaci graficznej przedstawione sa˛ na wykresie po naciśni˛eciu odpowiednich klawiszy, których znaczenie zostało podane poniżej: Zasi˛eg - rozkład przemieszcenia kuli Z m w funkcji czasu t s Pr˛edkość - rozkład pr˛edkoś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 cD w funkcji czasu t s Siły - zmienność sił Qi i lepkim 1 5 N działajacych ˛ na ciało w trakcie ruchu w ośrodku Na wykresach rozkładu przemieszczenia oraz pr˛edkości otrzymanych na podstawie rozwia˛ zania równań ruchu ciała w ośrodku lepkim przedstawione sa˛ również rozkłady tych parametrów dla ruchu kuli w próżni. Wybrane parametry płynu oraz kuli, które ustala si˛e w oknach dialogowych po uruchomieniu interfejsu użytkownika sa˛ w chwili naciśni˛ecia klawisza Obliczenia przekazywane do funkcji Obliczenia należacej ˛ do klasy Demo poprzez list˛e jej argumentów. Do funkcji Obliczenia przekazywane sa˛ również inne zmienne, które niezb˛edne sa˛ do rozwiazania ˛ równa ń różniczko5 Rysunek 3: Przełaczenie ˛ pomi˛edzy 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 rozwiazywane ˛ sa˛ równania ruchu. Maksmalna liczba kul wynosi m_nIloscKul 5. srednice - wskaźnik do tablicy typu rzeczywistego o rozmiarze m_nIloscKul, której elementami sa˛ średnice kul. Indeksacja tablicy rozpoczyna si˛e od 0. A oraz B - wartości stałych A i B w równ. (1-2) Ro_sr - stała określajaca ˛ stosunek g˛estości płynu Ro_pow do g˛estości kuli Ro_kul Czas_Spadku - czas dla którego przeprowadza si˛e symulacj˛e spadku ciała w ośrodku lepkim Ni - lepkość płynu 6 Ro_kul - g˛estość kuli, Ro_pow - g˛estość płynu Zasieg 1000 5 - dwuwymiarowa tablica danych której elementami sa˛ 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 rozwiazywane ˛ sa˛ równania ruchu Predk 1000 5 - dwuwymiarowa tablica danych której elementami sa˛ wartości pr˛edkości kul w kolejnych chwilach czasu, indeks pierwszy tablicy określa numer kroku czasowego natomiast indeks drugi określa numer kuli dla której rozwiazywane ˛ sa˛ równania ruchu Wartości przemieszczenia Z oraz pr˛edkości V uzyskane na podstawie rozwiazania ˛ równań (1-2) musza˛ 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 rozwiazywane ˛ sa˛ równania ruchu. Elementy tablic Z oraz V sa˛ indeksowane od zera. Przed przystapieniem ˛ do obliczeń należy pami˛etać o podaniu warunków poczat˛ kowych rozwiazania. ˛ Przykładowo dla pierwszej kuli warunki te b˛eda˛ wynosić Z 0 0 0 oraz 0. V 0 0 7