Monday, 6 November 2017

homework and exercises - Explicit Function for Bouncing Ball



I was wondering if it's possible (and if so, how would you go about it) to write an explicit function for the position of a ball bouncing as a function of time (assuming a coefficient of restitution 0 < e < 1). It's certainly possible to find its location in time iteratively with small time steps, but I'm looking for a more elegant solution (i.e. can we write y(t) = ? and then plot just that function to see several bounces?). It seems challenging because you need some kind of periodic behavior, but the period changes with each bounce. I'm trying to do this without piecewise functions.


Let's consider just the one-dimensional case here, where the ball bounces straight up and down.


Note that I don't mean just calculate the enveloping function of its height like this...I think this is related to the solution I'm after, but not the whole thing.



Answer



Assume that after each bounce the velocity decreases in a factor ξ(0,1). This means: if the velocity before hitting the floor is ˙y, then the velocity after hitting it will be ξ˙y.


Let y(0)=0 be the initial height and ˙y(0)=v0 be the initial velocity. We choose the units so that g=1 and v0=1/2, where g is the gravitational acceleration.


Define k(t)=logξ((ξ1)t+1) where is the floor function (k(t) is just the number of bounces after a time t)



With this, the height at a time t is given by y(t)=12ξk(t)(tξk(t)1ξ1)12(tξk(t)1ξ1)2


For example, if we take ξ=0.9 we get enter image description here




Explanation


I'm just using the basic formula y(t)=v (tt0)12g(tt0)2 of parabolic motion. In this case, the initial velocity of each bounce is different, so v=v(t). It is easy to see that before the first bounce we have v=1/2. After the first bounce we have v=ξ/2, then ξ2/2, ξ3/2, etc. In general, v(t)=12ξk, where k is the number of bounces at a time t.


On the other hand, the time-origin t0 also changes with time: before the first bounce we have t0=0, after the first bounce, t0=1, then t0=1+ξ, t0=1+ξ+ξ2, etc. In general, t0=k1i=0ξi=ξk1ξ1




In the general case g1, v01/2 the number k(t) is k(t)=logξ((ξ1)gt2v0+1) so that y(t)=v0ξk(t)(t2v0gξk(t)1ξ1)12g(t2v0gξk(t)1ξ1)2




Minimal Mathematica code to plot y(t) for g=1 and $v_0=1/2:



\[Xi]=.9;
k[t_]:=Floor[Log[\[Xi],(\[Xi]-1)t+1]];
y[t_]:=1/2\[Xi]^k[t](t-(\[Xi]^k[t]-1)/(\[Xi]-1))-1/2(t-(\[Xi]^k[t]-1)/(\[Xi]-1))^2
Plot[y[t],{t,0,4.2},PlotRange->All]

No comments:

Post a Comment

Understanding Stagnation point in pitot fluid

What is stagnation point in fluid mechanics. At the open end of the pitot tube the velocity of the fluid becomes zero.But that should result...