´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