A visszapattanó labda animációját programozom, és azt szeretném, hogy a lehető legreálisabb legyen.
Teljesen megértem a fizikát, miközben a labda emelkedik és esik: lefelé gyorsul 9,8 méter / másodperc / másodperc sebességgel.
De miután földet ér, elveszett. Tudom, hogy némi összenyomódást tapasztal, ami újra felfelé fordítja a sebességet, ekkor a gravitáció ismét az egyetlen rá ható erő. De nem tudom, hogyan modellezhetem a földet érő golyó összenyomódását és elhajlását. / p>
(Ezenkívül csak szigorúan függőleges lineáris sebességgel és gyorsulással foglalkozom. A labda vízszintesen nem halad vagy egyáltalán nem forog. És a légellenállás elhanyagolható veszteségét feltételezem.)
Tudom, hogy állandóakkal kell foglalkozni: mennyire ellenáll a labda az összenyomódásnak és mennyi energia veszít a visszapattanás során, de nem tudom, hogy kapcsolódnak egymáshoz.
Tudna nekem valaki adni egy vagy két bekezdéses magyarázat és / vagy (a) (e) képlet és / vagy rámutat egy olyan erőforrásra, ahol többet tudok olvasni? (igen, már töltöttem kb. egy órát a guglizással)
Örülök, hogy tovább olvasok róla, amíg meg nem értem, csak nem tudom, hová forduljak ezen a ponton.
Előre is köszönöm!
Megjegyzések
- Csak fordítsa meg a sebesség előjelét, és csökkentse a sebességet százalékkal.
- A gömb alakja mindig kör alakú, vagy a deformációkat is szeretné szimulálni?
- Releváns válasz: physics.stackexchange.com/ a / 254379/392
- Úgy tűnik, Rod Cross tekintélyt képvisel a golyók visszapattanása terén. Egyik cikke: physics.usyd .edu.au / ~ cross / PUBLICATIONS / BallBounce.pdf , és egy további linkeket tartalmazó oldal: real-world-physics-problems.com/bouncing-ball -physics.html
Válasz
Azt mondod, hogy figyelmen kívül hagyod a levegő súrlódását, de részben rugalmatlan ütközést feltételezünk, ami azt jelenti, hogy fel tudjuk bontani a problémát két rész:
- Míg a labda nincs érintkezésben a talajjal, a $ t $ időpontban mért magasságot a $ t_0 $ utolsó visszapattanás után a $$ h (t + t_0) adja meg. = v_0 t – \ frac12 gt ^ 2 $$ ahol $ v_0 $ a sebesség közvetlenül a visszapattanás után. Ez a sebesség egyik visszapattanásról a másikra változik.
- Az ütközés során a labda deformálódik és súrlódás lesz. A labda pontos alakját az ütközés során nehéz megérteni egy egyszerű egyenletben, mert ez függ a labda és a padló összetételétől. Egyszerűsítő feltételezésként tekintsük a labdát “kissé veszteséges rugó tömegének, amelynek rugóállandója $ k $”; akkor a labda az ütközés során (hozzávetőlegesen) csillapított egyszerű harmonikus mozgást mutat: ez azt jelenti, hogy a becsapódás ideje független az ütés sebességétől (!)
A helyreállítási együttható egy gömb / felület paramétere, és tükrözi a visszapattanás után közvetlenül a sebesség hányadát elosztva a közvetlenül előtti sebességgel. Egy golflabda esetében ez akár 0,8 is lehet; teniszlabda esetén ez 0,75 körül van.
A $ \ rho = 0,75 $ használatával, ha 5 m magasságból dobunk egy labdát (és $ g = 10 ~ m / s ^ 2 $ -t teszünk kényelem) 1 másodperc múlva landol 10 m / s sebességgel, és a visszapattanás után (rövid ideig $ \ Delta t $) ismét alacsonyabb sebességgel jön elő $ v_1 = 7,5 m / s $. A levegőben töltött időt a következő visszapattanásig $$ t_1 = 2 \ frac {v_1} {g} = 2 \ rho \ frac {v_0} {g} $$
Míg a labda a talajjal érintkezik, úgy tekinthetjük, hogy a központja körülbelül szinuszos módon mozog – mint mondtam, az a fontos, hogy az érintkezési idő független legyen a leesési magasságtól (a lineáris rugóállandó feltételezésével). A valóságban, ahogy a gömb jobban deformálódik, a rugóállandó növekedni fog – ami valójában rövidebbé teszi az érintkezési időt, mivel az ütközési sebesség nagyobb. De a szimulációjához, amely valószínűleg nem számít.
A fentiekből egy “matematikai modell” eléréséhez érdemes módosítani ezt a python kódot az Ön igényeinek megfelelően:
from math import sqrt import matplotlib.pyplot as plt h0 = 5 # m/s v = 0 # m/s, current velocity g = 10 # m/s/s t = 0 # starting time dt = 0.001 # time step rho = 0.75 # coefficient of restitution tau = 0.10 # contact time for bounce hmax = h0 # keep track of the maximum height h = h0 hstop = 0.01 # stop when bounce is less than 1 cm freefall = True # state: freefall or in contact t_last = -sqrt(2*h0/g) # time we would have launched to get to h0 at t=0 vmax = sqrt(2 * hmax * g) H = [] T = [] while(hmax > hstop): if(freefall): hnew = h + v*dt - 0.5*g*dt*dt if(hnew<0): t = t_last + 2*sqrt(2*hmax/g) freefall = False t_last = t + tau h = 0 else: t = t + dt v = v - g*dt h = hnew else: t = t + tau vmax = vmax * rho v = vmax freefall = True h = 0 hmax = 0.5*vmax*vmax/g H.append(h) T.append(t) print("stopped bouncing at t=%.3f\n"%(t)) plt.figure() plt.plot(T, H) plt.xlabel("time") plt.ylabel("height") plt.title("bouncing ball")
Ez a kód a következő ábrát hozza létre:
Válasz
Nos, a nehézséget az okozza, ha a labda érintkezik a fallal. Néhány dolog, amit megfontolhat.
- rugalmas hatás. Ebben az esetben a labdát rugalmas rugóként kezelheti. Amikor a falat sebességgel érinti, a kinetikus energia átalakul a rugó potenciális energiájává. És miután eléri a maximális deformációt, a gömb visszazökken az űrbe. A deformáció iránya normális a falhoz képest.
- rugalmatlan hatás. Ez hasonló a fentiekhez, azzal a különbséggel, hogy a labda csak a kinetikus energia egy részét nyeri vissza. Ez közelebb áll a valósághoz. A veszteséget általában a restitúciós együttható alkalmazásával írják le.
- rugalmatlan hatás, súrlódással. Amikor a labda szöget zár be a falba, a labda csúszhat a felületen. Ez közelebb kerül a valósághoz.
- léghúzás. Amikor a labda mozog, az űr, légrögzítő erő van a lassításhoz.
Megjegyzések
- Sajnálom, azt hiszem, nem voltam ' elég világos. ' részben rugalmatlan hatásról beszélek. Eredeti bejegyzésemből " … mennyi energia veszít a visszapattanás során … ". Emellett az eredeti bejegyzésben említettem, hogy ' figyelmen kívül hagyom a légellenállást (" … I ' m a légellenállás elhanyagolható veszteségét feltételezve … "), és én ' nem próbálok oldalirányú lendületet modellezni (" rugalmatlan hatás súrlódással "). Csak a talajjal történő ütközés során fellépő tömörítést, lassulást, dekompressziót és gyorsulást, valamint az egész folyamatban rejlő energiaveszteséget szeretném modellezni.
Válasz
A Visual Solutions (Most Altair) gyártja a VisSim szoftvert. Itt van egy bemutató blokkdiagram, amelyet a pattogó labda szimulálására használtak:
A $ 1 / s $ blokkok a VisSim könyvtár integrátor blokkjai.
Az ugráló labda ábrája az alábbi paraméterekkel az alábbiakban látható.
Ha érdekel ennek futtatása, akkor a demó a telepítéssel együtt érkezik, és letölthet egy ingyenes 60 napos próbaverziót itt