Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki
Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki
Symulacje komputerowe zjawisk fizycznych z zakresu mechaniki
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