Modell / képlet a pattogó labda számára

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

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:

  1. 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.
  2. 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:

írja ide a kép leírását

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: írja ide a kép leírását

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ó.

írja ide a kép leírását

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

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük