Következő lapNext Page Arrow

Fizlab (MyPhysicsLab.hu)

Ütköző tömbök

This page is part of the website prepared by Sándor Nagy with kind permission from Erik Neumann as a translation to Hungarian of his original site MyPhysicsLab—Physics Simulation with Java.

A szimuláció két tömböt mutat (négyzetek), melyek egy (láthatatlan) vízszintes pályán mozognak. Mozgás közben egymással is, és a megfelelő fallal (bal tömb a ballal, jobb tömb a jobbal) is ütközhetnek. A bal tömböt (ez az 1-es tömeg) rugó kapcsolja a bal falhoz. A rugó azonban eltüntethető, ha a merevségét 0-ra állítjuk. Változtatgassuk a tömbök tömegét, hogy lássuk, milyen hatása lesz az ütközésekre.
Változtatható paraméterek a tömegek, a rugómerevség, a rugóhossz, valamint a súrlódás (csillapítás). Mindkét tömb mozgatható az egérrel.
Ha nem jön elő a szimuláció, akkor érdemes elolvasni a Java engedélyezéséről szóló instrukciókat. A kapcsolatos fizikát és matekot lásd lentebb.


Ütközések és az impulzusmegmaradás

A rugó–tömb szimuláció ugyarra a modellre épül, mint a Rugó és tömeg mozgása nevű. A fallal való ütközés esetében egyszerűen csak megváltoztatjuk a sebesség irányát (vagyis az előjelét). A mozgó tömbök ütközése esetében az impulzusmegmaradás törvénye alapján számítjuk ki az új sebességeket.

Definiáljuk a következő változókat: A 2 tömbből álló rendszer tömegközéppontjának sebességét a következő formula adja meg a "laboratóriumi rendszerben" (melyben a fal nyugalomban van).
vtk =   m1 v1k + m2 v2k
m1 + m2
A következő lépésben az egyes tömbök sebességét abban a koordinátarendszerben (vonatkoztatási rendszerben) adjuk meg, amely együtt mozog a rendszer tömegközéppontjával. v1tk = v1kvtk
v2tk = v2kvtk
Ezután tükrözzük (megfordítjuk) a sebességeket a tömegközépponti rendszerben, majd a kapott sebességeket átszámítjuk a nyugvó (laboratóriumi) rendszerre. v1v = −(v1kvtk) + vtk
v2v = −(v2kvtk) + vtk
Mindezeket figyelembe véve a következőt kapjuk
  
v1v = −v1k +   2(m1 v1k + m2 v2k)
m1 + m2
(1)
  
v2v = −v2k +   2(m1 v1k + m2 v2k)
m1 + m2
(2)
Ellenőrzés végett kiszámítjuk az ütközés előtti és utáni impulzusösszegeket, melyeknek azonosnak kell lenniük. pk = m1 v1k + m2 v2k
pv = m1 v1v + m2 v2v
Ha az (1) és (2) egyenlet segítségével kifejezzük a pv impulzust, akkor egyszerűsítés után látni fogjuk, hogy pv = pk, ahogy vártuk.

Ütközések kezelése a szimulációkban

simulation of two balls colliding

Két golyó ütközésének szimulációja
A számítógépes szimulációk mindig diszkrétek abban az értelemben, hogy az idő "adagokban" halad, nem pedig foltonosan. Az ábrán kiszámítottok a "világot" a t = 10.0 és a t = 10.1 időpontban. Viszont az ütközésre valamely közbenső időpontban került sor. Ezért mire felfedezzük, hogy ütközés történt, a tárgyak már egymásba hatoltak, ami fizikailag lehetetlen állapot.

Ezen a webhelyen a következő módon kezeljük ezt a helyzetet:
Ha a szimulációt nem valós időben futtatja az ember, akkor annyi ideje van, amennyit csak akar, a kívánt pontosság eléréséhez. De valós idejű szimuláció esetében be kell érni kisebb pontossággal, vagy trükkösebb programozásra van szükség. Például, ahelyett, hogy próba-szerencse alapon keresné meg az ember az ütközés időpontját, próbálkozni lehet azzal, hogy a rendszer pillanatnyi állapota alapján igyekszik azt megbecsülni.

További ütközéskezelő megoldásokat találunk a Hullámvasút repüléssel és a Merev testek ütközése c. szimulációknál.

Látogatószám 2013.02.27. óta:

Web Counter