-
1. Data: 2012-09-07 20:58:37
Temat: jak stuningowac symulacje
Od: kenobi <p...@g...com>
(stuningowac mam na mysli stweakowac, dostroic paramatry)
Mam kilkanascie czastek w 2d,
screenshot:
https://dl.dropbox.com/u/42887985/sym.jpg
symulacja (win, raczej nie ma wirkow )
https://dl.dropbox.com/u/42887985/sym.zip
9 uzozylem w kwadrat 3 na 3, a 7 w kolko,
czatki te odzialywuja na siebie silami przyciagajacymi
wzdluz zalozonych wiezow - jakby kresek miedzy czateczkami
ktore zapodalem z reki - dla kolka jest to 8 kresek
( 0-1-2-3-4-5-6-7-0 ) dla kwadratu 12 kresek ( taka kratka
wiadomo o co chodzi)
wzdluz kresek (joinow) czastki oddzialuja na siebie silami
przyciagajacymi
(sumuje po kreskach, wx,wy to wychylenie po kresce)
particle[j].Fx += wx*joint_factor;
particle[j].Fy += wy*joint_factor;
np dla kolka czastka 0 dostanie wychylenie w strone
czastki 1 do ktorej ma joina plusy wychylenie do czastki
7 do ktorej ma joina itp) joint_factor to mnoznik dobierany
z reki i tu konkretnie wynosi .1
procz tego wszystkie czastki oddzialywuja na siebie
odpychajaco
(suma pomiedzu wszystkimi parami)
particle[j].Fx += wx*odpychanie_factor/(dist*dist);
particle[j].Fy += wy*odpychanie_factor/(dist*dist);
odpychanie factor z reki to tutaj 2.
te wzorki sa chyba ok bo przyciaganie jest proporcjonalne
do odleglosci a odpychania w sumie odwrotnie proporcjonalne do
odleglosci
jak zsumuje te Fx, Fy dla danej klatki symulacji zgodnie z
tymi wzorkami to zmieniam pozycje czastki
x+=Fx;
y+=Fyl
wiadomo ze powinienem raczej zmieniec predkosci a nie pozycje
ale jak zmienie predkosci to robi sie kaszana bo wszystko sie
rozbieguje - problem jest wlasnie taki, jakby ktos uruchomil
symulacje to zobaczy ze kolko i kwadrat genaralnie trzymaja sie
razem i nawet troche odzialuja ale są w tym odzialywaniu
a) miekkie (wolalbym by dalo sie z tego zrobic uklady bardziej
sztywne
b) nie zachowuja predkosci/pedu srodka masy (co jest oczywiste
skoro x+Fx) - a na tym by mi tez alezalo
czy ktos analitycznie potrafi wykombinaowac takie ustawienie
parametrow i ew modyfikacje wzorkow bym z tego co mial mogl
osiagnac
a) bardziej sztywne kólko i kwadrat
b) kółko i kwadrat z zachowanym realistycznie pedem/momentem
pedu
Słowem chcialbym na bazie tego co mam otrzymac bardziej
realistyczna symulacje bryl co bardziej sztywnych (a jesli to
nie mozliwe to czemu?)
TNX (mam nadzieje ze to kogos zainteresuje i ktos ew udzieli
jakiejs pomocnej odpowiedzi)
-
2. Data: 2012-09-07 21:22:07
Temat: Re: jak stuningowac symulacje
Od: PK <k...@n...pl>
On 2012-09-07, kenobi <p...@g...com> wrote:
> te wzorki sa chyba ok bo przyciaganie jest proporcjonalne
> do odleglosci a odpychania w sumie odwrotnie proporcjonalne do
> odleglosci
Nie jest oraz nie jest.
> symulacje to zobaczy ze kolko i kwadrat genaralnie trzymaja sie
> razem i nawet troche odzialuja ale są w tym odzialywaniu
>
> a) miekkie (wolalbym by dalo sie z tego zrobic uklady bardziej
> sztywne
Co rozumiesz przez miękkie/sztywne?
> b) nie zachowuja predkosci/pedu srodka masy (co jest oczywiste
> skoro x+Fx) - a na tym by mi tez alezalo
Twoje równania nie są fizyczne, więc czemu miałyby zachowywać?
Żadne ustawianie parametrów tego nie zmieni.
> czy ktos analitycznie potrafi wykombinaowac takie ustawienie
> parametrow i ew modyfikacje wzorkow bym z tego co mial mogl
> osiagnac
"Analitycznie" to po prostu mógłbyś to napisać zgodnie z fizyką.
Przesunięcie nie zależy linowo od siły. Twoja symulacja jest
nierzeczywista i będzie dawała wyniki sprzeczne z intuicją.
O zachowywaniu wartości takich jak pęd czy energia możesz w ogóle
pomarzyć.
Poza tym zaprzęgnij do tego jakiś sensowny mechanizm ewolucji układu.
Mówiąc inaczej: zastosuj jakieś sensowne rozwiązanie równań ruchu.
Tak naprawdę w tego typu "domowych" symulacjach wystarczają równania
Eulera, ale radzę poczytać o algorytmie Verlet'a. Napisanie go
nie jest trudne, a wyniki mają już pewną wartość naukową.
Kilka wskazówek na start.
1) Musisz symulować 2*d parametrów dla każdej cząstki, symulujesz
dwukrotnie mniej.
2) Nie twórz takich "dzikich" równań - zrób to zgodnie z zasadami
mechaniki: wybierz sobie jakiś potencjał, zastosuj sensowne
rozwiązanie numeryczne równań Newtona (na początek to Eulera). Nie
kombinuj tylko daj pracować matematyce :).
pozdrawiam,
PK
-
3. Data: 2012-09-08 08:48:41
Temat: Re: jak stuningowac symulacje
Od: kenobi <p...@g...com>
Nie jest to specjalnie pomocna odpowiedz,
ew poza jednym sensownym zapytaniem co tu
jest fizyczne a co nie. Imo chyba jakie
bym nie zapodal sily (nawet niezachowawcze
a nie jestem pewien czy moja sila
przyciagajaca typu F = - x jest zacjowawcza) to uklad bedzie fizyczny. Czyli sama
czesc liczenia sil jest ok,
za to x+=F jest za to wlasnie zdaje sie
nie fizyczne (w sensie dynamiczne w
sensie newtonowskim) v+=F z tarciem tez
jest zdaje sie analogicznie nie
fizyczne, z kolei jak nie zarzuce tarcia
to jest zdaje sie fizyczne ale wpada w
takie mody oscylacji ze bryly sa
rozwalone, a ja wlasnie chcialbym to dostroic tak by dzialalo tak jak chce
tj by kolko i kwadrat zachowywaly sie
podobnie jak teraz (jak w modelu x+=F) z tym zeby byly bardziej sztywne i by pozatym
obowiazywala zwykla fizyka
(dynamicznie newtonowska) tak zeby poprawnie zachowywaly sie wektory zrodka mas i
kwadracika i kolka (i w ruchu swobodnym i przy zderzeniach - wzajemnych
oddzialywaniach)
Czyli w zawezeniu jest to moze pytanie
jak wytlumic drgania ale np bez tarcia tak by nie psuc reszty modelu (tak by
swobodny ruch ukladu czastek mogl dzialac fiykalnie, tj tak jak dla bryly sztywnej)
Niejaki bartltg kiedys mowil na ten
temat ale o ile pamietam radzil on po prostu wlaczyc tarcie a tarcie psuje ruch
calych bryl.
- czy da sie to (to co chce osiagnac) zrobic bez tarcie - np przez dobieranie
wlasciwych sil oddzialywan
- pozatym pewnie da sie to zrobic na kilka sposobow (przychodzi mi do glowy moze np
tarcie wylacznie na silach miedzy joinami - choc nie jestem pewien czy to by
dzialalo, ew jakies inne)
-
4. Data: 2012-09-08 09:15:55
Temat: Re: jak stuningowac symulacje
Od: PK <k...@n...pl>
On 2012-09-08, kenobi <p...@g...com> wrote:
> za to x+=F jest za to wlasnie zdaje sie
> nie fizyczne (w sensie dynamiczne w
> sensie newtonowskim) v+=F z tarciem tez
> jest zdaje sie analogicznie nie
> fizyczne, z kolei jak nie zarzuce tarcia
> to jest zdaje sie fizyczne ale wpada w
> takie mody oscylacji ze bryly sa
Nie - tarcie nie ma tu nic do rzeczy. Chodzi o to, że Twoja propozycja
"x+=F" nie jest rozwiązaniem ogólnie znanych równań ruchu.
> rozwalone, a ja wlasnie chcialbym to dostroic tak by dzialalo tak jak chce
> tj by kolko i kwadrat zachowywaly sie
> podobnie jak teraz (jak w modelu x+=F) z tym zeby byly bardziej sztywne i by
pozatym obowiazywala zwykla fizyka
> (dynamicznie newtonowska) tak zeby poprawnie zachowywaly sie wektory zrodka mas i
kwadracika i kolka (i w ruchu swobodnym i przy zderzeniach - wzajemnych
oddzialywaniach)
Ale zasady, których oczekujesz (zachowanie pędu itp) są związane
z równaniami ruchu, z których Ty nie używasz. To nie jest Newton.
Zaproponowałeś własną dynamikę i ona ma inne zasady (w szczególności
nie będzie w niej zachowana energia, więc pęd także nie).
No i to, o czym pisałem wcześniej: nie przypisujesz swoim cząstkom
żadnej cechy dynamicznej (np pędu), a jedynie położenie. Mówiąc wprost:
prędkość cząstek w chwili t nie ma żadnego związku z prędkością w chwili
t-1 (luźno zdefiniowaną jako: zmiana położenia w kroku symulacji). Czy
naprawdę liczysz, że ten układ będzie się zachowywał "rzeczywiście"?
pozdrawiam,
PK
-
5. Data: 2012-09-08 13:28:11
Temat: Re: jak stuningowac symulacje
Od: kenobi <p...@g...com>
W dniu sobota, 8 września 2012 09:16:06 UTC+2 użytkownik PK napisał:
> On 2012-09-08, kenobi <p...@g...com> wrote:
>
> > za to x+=F jest za to wlasnie zdaje sie
>
> > nie fizyczne (w sensie dynamiczne w
>
> > sensie newtonowskim) v+=F z tarciem tez
>
> > jest zdaje sie analogicznie nie
>
> > fizyczne, z kolei jak nie zarzuce tarcia
>
> > to jest zdaje sie fizyczne ale wpada w
>
> > takie mody oscylacji ze bryly sa
>
>
>
> Nie - tarcie nie ma tu nic do rzeczy. Chodzi o to, że Twoja propozycja
>
> "x+=F" nie jest rozwiązaniem ogólnie znanych równań ruchu.
>
>
>
> > rozwalone, a ja wlasnie chcialbym to dostroic tak by dzialalo tak jak chce
>
> > tj by kolko i kwadrat zachowywaly sie
>
> > podobnie jak teraz (jak w modelu x+=F) z tym zeby byly bardziej sztywne i by
pozatym obowiazywala zwykla fizyka
>
> > (dynamicznie newtonowska) tak zeby poprawnie zachowywaly sie wektory zrodka mas i
kwadracika i kolka (i w ruchu swobodnym i przy zderzeniach - wzajemnych
oddzialywaniach)
>
>
>
> Ale zasady, których oczekujesz (zachowanie pędu itp) są związane
>
> z równaniami ruchu, z których Ty nie używasz. To nie jest Newton.
>
> Zaproponowałeś własną dynamikę i ona ma inne zasady (w szczególności
>
> nie będzie w niej zachowana energia, więc pęd także nie).
>
>
>
> No i to, o czym pisałem wcześniej: nie przypisujesz swoim cząstkom
>
> żadnej cechy dynamicznej (np pędu), a jedynie położenie. Mówiąc wprost:
>
> prędkość cząstek w chwili t nie ma żadnego związku z prędkością w chwili
>
> t-1 (luźno zdefiniowaną jako: zmiana położenia w kroku symulacji). Czy
>
> naprawdę liczysz, że ten układ będzie się zachowywał "rzeczywiście"?
>
>
>
Chyba nie skupiasz sie na sednie problemu
i te uwagi do tego nie wiele wel nic nie
wnoszą (no ale pominmy bo przynajmniej jakotako na temat)
Chyba wymyslilem jak to mozna by moze
zrobic lub przynajmniej sprobowac,
teraz jak mowilem rownowege na joinie
u mnie konstytuuje .1*x = 2.*x/(d*d)
.1*x to sila przyciagajaca (dla odleglosci
3 pixeli wynosi .3, 2*x/(d*d) to sila
odpychajaca i dla 3 pix wynosi 6/9 = 0.66
(o ile sie gdzies wogole nie robnalem w rozumieniu tego) robie tu poprawki do pozycji
nie do predkosci i dla odleglosci
3 pix dostene odepchniecie o 0.36 pixela
do 3.36 pix co da z kolei .336 i 0.595
co znowu da 2.5 pixela odpychania i rownowaga ustali sie gdziez kolo 4 pixeli
odleglosci - to sie nie zgadza z rysunkiem
gdzie na oko odleglosci rownowagi sa okolo 10 pixow (czerwony kwadracik ma 4x4
pixele) ale pewnie tyle daje wklad odpychania od grupy (bo ja przyciaganie licze
tylko po joinach z saisadami a odpychanie w kwadratowej petli po wszystkich (zreszta
i to i to licze
w dwie strony ) Hueh no niewazne
W kazdym razie moze gdyby sily po joinach
liczyc mw tak jak teraz i updatowac jako poprawki do pozycji a sily odpychania liczyc
jako poprawki do v to moze zachowywaloby sie to bardziej tak jak
chce - jak odpoczne to sprobuje tego -
z tym ze i tak nie wiadomo czy te
odpychania od czasteczek bliskich ale
troche dalej spoza joinow nie powzbudzalyby tych modow drgan, musze
przy tym chyba przepisac troche kod bo
u mnie w danej chwili joinowa sila sklada sie efektywnie tylko z tych przyciagajacych
a odpychanie pochodzi z drugiej grupy - jakbym dorobil przyciagajaceym x+=f a
wszystkim odpychajacym v+=f to mogloby byc
pewnie za malo na tlumieniea wiec
trzebabedzie pewnie przepisac :/
(mistrz genarał kenobi)
-
6. Data: 2012-09-08 14:16:39
Temat: Re: jak stuningowac symulacje
Od: PK <k...@n...pl>
On 2012-09-08, kenobi <p...@g...com> wrote:
> Chyba nie skupiasz sie na sednie problemu
Możliwie, że nie rozumiem o co pytasz, bo trudno coś wyłapać z tak
pisanego tekstu :/.
> i te uwagi do tego nie wiele wel nic nie
> wnoszą (no ale pominmy bo przynajmniej jakotako na temat)
Wnoszą to, że mówię Ci, jak się normalnie robi symulacje fizyczne,
z których można wyciągać wnioski ogólniejsze niż takie dotyczące samej
symulacji...
> Chyba wymyslilem jak to mozna by moze
> zrobic lub przynajmniej sprobowac,
Wymyślono to ponad 200 lat temu. Ponad 100 lat mają bardzo dokładne
metody, które dziś traktujemy jako standardowe. Komputery elektroniczne
rozwiązują takie problemy od wojny.
Studenci na zajęciach w labie piszą taką symulację jak Twoja w 2 godziny
(razem z testami i wyciągnięciem elementarnych wniosków). Generalnie
za dużo próbujesz wymyślać - zmarnujesz na napisanie tego tyle czasu,
że zabraknie Ci chęci do analizowania (jeśli coś uzyskasz w ogóle).
> teraz jak mowilem rownowege na joinie
> u mnie konstytuuje .1*x = 2.*x/(d*d)
[...]
> w dwie strony ) Hueh no niewazne
Tego w ogóle nie zrozumiałem. Sorry.
pozdrawiam,
PK
-
7. Data: 2012-09-08 14:49:09
Temat: Re: jak stuningowac symulacje
Od: kenobi <p...@g...com>
W dniu sobota, 8 września 2012 14:16:40 UTC+2 użytkownik PK napisał:
> On 2012-09-08, kenobi <p...@g...com> wrote:
>
> > Chyba nie skupiasz sie na sednie problemu
>
>
>
> Możliwie, że nie rozumiem o co pytasz, bo trudno coś wyłapać z tak
>
> pisanego tekstu :/.
>
>
>
> > i te uwagi do tego nie wiele wel nic nie
>
> > wnoszą (no ale pominmy bo przynajmniej jakotako na temat)
>
>
>
> Wnoszą to, że mówię Ci, jak się normalnie robi symulacje fizyczne,
>
> z których można wyciągać wnioski ogólniejsze niż takie dotyczące samej
>
> symulacji...
>
>
>
> > Chyba wymyslilem jak to mozna by moze
>
> > zrobic lub przynajmniej sprobowac,
>
>
>
> Wymyślono to ponad 200 lat temu. Ponad 100 lat mają bardzo dokładne
>
> metody, które dziś traktujemy jako standardowe. Komputery elektroniczne
>
> rozwiązują takie problemy od wojny.
>
>
>
> Studenci na zajęciach w labie piszą taką symulację jak Twoja w 2 godziny
>
ciekawe - w jakim srodowisku (jezyk/lib?)
moze to bardziej przepisanie e z tablicy
niz zrobienie samemu, zreszta mi to wcale dlugo nie zajmuje, tez kwestia godzin (z
tym ze jak chce dluzej poeksperymentowac
pomyslec i poprobowac to z paru godzin
robi sie np pare dni )
> (razem z testami i wyciągnięciem elementarnych wniosków). Generalnie
>
> za dużo próbujesz wymyślać - zmarnujesz na napisanie tego tyle czasu,
>
> że zabraknie Ci chęci do analizowania (jeśli coś uzyskasz w ogóle).
>
>
hehe, bez obawy
>
> > teraz jak mowilem rownowege na joinie
>
> > u mnie konstytuuje .1*x = 2.*x/(d*d)
>
> [...]
>
> > w dwie strony ) Hueh no niewazne
>
>
>
> Tego w ogóle nie zrozumiałem. Sorry.
>
>
>
> pozdrawiam,
>
> PK
-
8. Data: 2012-09-08 18:12:11
Temat: Re: jak stuningowac symulacje
Od: A.L. <l...@a...com>
On 08 Sep 2012 12:16:39 GMT, PK <k...@n...pl> wrote:
>On 2012-09-08, kenobi <p...@g...com> wrote:
>> Chyba nie skupiasz sie na sednie problemu
>
>Możliwie, że nie rozumiem o co pytasz, bo trudno coś wyłapać z tak
>pisanego tekstu :/.
>
>> i te uwagi do tego nie wiele wel nic nie
>> wnoszą (no ale pominmy bo przynajmniej jakotako na temat)
>
>Wnoszą to, że mówię Ci, jak się normalnie robi symulacje fizyczne,
>z których można wyciągać wnioski ogólniejsze niż takie dotyczące samej
>symulacji...
>
>> Chyba wymyslilem jak to mozna by moze
>> zrobic lub przynajmniej sprobowac,
>
>Wymyślono to ponad 200 lat temu. Ponad 100 lat mają bardzo dokładne
>metody, które dziś traktujemy jako standardowe. Komputery elektroniczne
>rozwiązują takie problemy od wojny.
>
>Studenci na zajęciach w labie piszą taką symulację jak Twoja w 2 godziny
>(razem z testami i wyciągnięciem elementarnych wniosków). Generalnie
>za dużo próbujesz wymyślać - zmarnujesz na napisanie tego tyle czasu,
>że zabraknie Ci chęci do analizowania (jeśli coś uzyskasz w ogóle).
>
>> teraz jak mowilem rownowege na joinie
>> u mnie konstytuuje .1*x = 2.*x/(d*d)
>[...]
>> w dwie strony ) Hueh no niewazne
>
>Tego w ogóle nie zrozumiałem. Sorry.
>
>pozdrawiam,
>PK
Czy nei uwazasz ze tracisz czas?... To nie pierwsza dyskusja na ten
temat. Prawdopodobie tak jak poprzednia skonczy sie niczym
A.L.
-
9. Data: 2012-09-08 21:58:30
Temat: Re: jak stuningowac symulacje
Od: PK <k...@n...pl>
On 2012-09-08, kenobi <p...@g...com> wrote:
> ciekawe - w jakim srodowisku (jezyk/lib?)
Generalnie w dowolnym (tzn. jak studentowi wygodnie, bo ważne są
wnioski, a nie kod). Językiem "promowanym" akurat jest Python,
który się do tego dobrze nadaje (m.in. dzięki operacjom na tabelach).
> moze to bardziej przepisanie e z tablicy
Z głowy. Student II roku fizyki/matmy (tzn. po równaniach różniczkowych
lub mechanice klasycznej) wie jak to ma wyglądać, więc jak mu się daje
konkretny problem, to od razu zaczyna kodować, a nie obala Newtona.
pozdrawiam,
PK
-
10. Data: 2012-09-08 22:00:05
Temat: Re: jak stuningowac symulacje
Od: PK <k...@n...pl>
On 2012-09-08, A.L <l...@a...com> wrote:
> Czy nei uwazasz ze tracisz czas?... To nie pierwsza dyskusja na ten
> temat. Prawdopodobie tak jak poprzednia skonczy sie niczym
Nie wiem czy tracę czas. Tracę?
p.c.p śledzę od niedawna i jeszcze nie kojarzę wszystkich "localsów" :)
pozdrawiam,
PK