22.11.2014 Views

Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki

Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki

Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6. Modelowanie obiektów (część 3)<br />

Obiekt zmieniający geometrię w czasie.<br />

Dotychczas symulowane były różne aspekty ruchu punktów materialnych i brył sztywnych, teraz<br />

zaś głównym celem jest pokazanie jak postępować ze zbiorem punktów materialnych i sprężyn.<br />

Systemy złożone z dużej ilości punktów materialnych mogą służyć między innymi symulacji<br />

tkanin[3], ciał stałych sprężystych [F], przydatne także się stają przy modelowaniu włosów, trawy,<br />

ciał sypkich na przykład piasku [E], a nawet dymu czy ognia[5].<br />

Zastępowanie ciał sztywnych przez zbiory punktów materialnych ułatwia zadanie, gdyż nie musimy<br />

zajmować się ruchem obrotowym i jego równaniami co jest niezbędne przy ruchu brył sztywnych.<br />

Krok taki ułatwia nie tylko obliczanie sił i całkowanie równań ruchu, lecz również zdecydowanie<br />

upraszcza obliczenia dotyczące zderzeń, ponieważ mamy jedynie do czynienia z popędem w ruchu<br />

postępowym.<br />

Niewątpliwie ogromnym źródłem informacji dla osoby rozpoczynającej przygodę z symulowaniem<br />

<strong>zjawisk</strong> <strong>fizycznych</strong> może stanowić zestaw standardowych skryptów jakie są dostępne w katalogu<br />

C:\Program Files\Python23\Lib\site-packages\visual\demos\ 4<br />

Dlatego kolejna symulacja stanowi tylko modyfikację standardowego skryptu o nazwie drape.py<br />

Przedmiotem symulacji będzie uproszczony model sznura opadającego na przeszkodę, którą będzie<br />

kilka kul. Linę zbudowana będzie z punktów materialnych każdy o masie m połączonych przy<br />

pomocy elementu sprężynująco-tłumiącego. Dla zwiększenia szybkości obliczeń pominięta została<br />

wizualizacja dla mas punktowych, zaś elementy łączące te punkty przedstawione będą przy pomocy<br />

prostoliniowych odcinków. Przejdźmy zatem do omówienia głównej struktury programu. Na<br />

początek definiujemy stałe takie jak masa punktu materialnego, przyspieszenie grawitacyjne, krok<br />

czasowy symulacji, współczynnik sprężystości oraz tłumienia.<br />

restlength = 0.1 #dlugosc pojedynczego elementu<br />

m = 0.005 * restlength #masa pojedynczego elementu<br />

g = 9.81 #[m/s^2]<br />

dt = 0.003 #krok czasowy symulacji<br />

k = 3.5 #wspolczynnik sprezystosci<br />

damp = 0.992#wspolczynnik tlumienia<br />

Kolejno wykonujemy obiekt przedstawiający linę, który w tym przypadku jest krzywą. Oraz<br />

nadajemy każdemu punktowi tej krzywej atrybut fizyczny - pęd początkowy równy zeru.<br />

band = curve( x = arange(-1,1,restlength), y = 1,z = 0, color=color.black,radius<br />

= 0.01)<br />

band.p = band.pos * 0 #nadanie pedow poczatkowych<br />

Jak wspomniane było wcześniej, przeszkodę na którą opadać będzie sznur, stanowić będzie kilka<br />

sfer, które teraz wykonamy. Oczywiście położenie każdej ze sfer jest dowolne, niemniej pamiętać<br />

należy by wszystkie kule umieszczone zostały w jednej liście [4], by później możliwy był łatwy<br />

dostęp do atrybutu położenia każdej z nich.<br />

#inicjowanie przeszkody dla sznura<br />

spheres = []<br />

4 Katalog Program Files jest opcjonalny i przy niektórych wersjach Pythona nie zaleca się używania tego katalogu<br />

przy instalacji języka.<br />

37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!