Death defying skateboard stall

Skateboarder Bob Burnquist has big ramps in his backyard that he's always trying to do bigger and better things with. Recently, Bob had a helicopter pilot hover over his quarterpipe so that he could air and stall on the helicopter's skids.

Due to gravity alone Bob has to go pretty fast to air out of the quarterpipe at all but the helicopter provides a massive downward thrust that requires Bob to go even faster. This is a terrifying experience because as you approach the ramp you feel like you have enough speed to air through the blades.

The crucial factor that prevents this is that the air being pushed through the blades works to decelerate Bob's ascent. We can model the drag force on Bob as F d = 1 2 ρ c d A v relative 2 , \mathbf{F}_\textrm{d} = \frac12 \rho c_\textrm{d} A v_\textrm{relative}^2, where v relative = v wind + v Bob . v_\textrm{relative} = v_\textrm{wind} + v_\textrm{Bob}.

Find Bob's speed at the top of the ramp (in m / s \si[per-mode=symbol]{\meter\per\second} ) such that he comes to rest exactly at the height of the skids, d = 4 m d=\SI{4}{\meter} above the ramp.

You may want to use the code environment below.

Assume : v wind = 30 m / s v_\textrm{wind} = \SI[per-mode=symbol]{30}{\meter\per\second} is the steady windspeed of the air coming down through the blades, Bob's cross sectional area is A = 1.32 m 2 , A = \SI{1.32}{\meter\squared}, the drag coefficient for the human body is c d = 1 , c_\textrm{d} = 1, ρ = 1.22 kg / m 3 , \rho=\SI[per-mode=symbol]{1.22}{\kilo\gram\per\meter\cubed}, g = 10 m / s 2 , g=\SI[per-mode=symbol]{10}{\meter\per\second\squared}, and m Bob = 90 kg . m_\textrm{Bob} = \SI{90}{\kilo\gram}.

import matplotlib.pyplot as plt

g = 10
v_wind = 30
m_bob = 90
C = 0.5 * 1.22 * 1.32

time = 0
height = 0
velocity = 1 # <- You'll want to experiment with this initial value.

(times, heights) = ([], []) # <- Arrays to collect the values of height and time.

# Write code to propagate height and velocity forward in time and 
# collect them in the lists, times and heights.


# Uncomment this code to plot h as a function of time.
# plt.plot(times, heights)
# plt.title('$h_\mathrm{max}$ is %f m' % heights[-1])
# plt.xlabel('Time ($t$)')
# plt.ylabel('$h_\mathrm{max}$')
# plt.savefig("my_plot.png")
Python 3
You need to be connected to run code


The answer is 13.7285.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

4 solutions

Here is a more traditional solution, without using the code.

The equation of motion is d 2 y d t 2 = F d F g m = κ ( d y d t + w ) 2 g , κ = ρ C d A 2 m . \frac{d^2y}{dt^2} = \frac{-F_d - F_g}m = -\kappa \left(\frac{dy}{dt} + w\right)^2 -g,\ \ \ \ \ \ \kappa = \frac{\rho C_d A}{2m}. Switch to dimensionless units, as follows: t = 1 g κ = 3.343 s ; v = g κ = 33.43 m / s ; y = 1 κ = 11.77 m . t^\star = \sqrt{\frac 1{g\kappa}} = \SI{3.343}{s};\ \ v^\star = \sqrt{\frac g \kappa} = \SI{33.43}{m/s};\ \ y^* = \frac 1 \kappa = \SI{11.77}{m}. τ = t t ; β = v v ; λ = y y . \tau = \frac t{t^\star};\ \ \ \beta = \frac v{v^\star};\ \ \ \lambda = \frac y{y^\star}. The equation of motion becomes d 2 λ d τ 2 = ( d λ d τ + ω ) 2 + 1 , -\frac{d^2\lambda}{d\tau^2} = \left(\frac{d\lambda}{d\tau} + \omega\right)^2 + 1, where ω = w / v = 0.8973 \omega = w/v^\star = 0.8973 is the dimensionless wind speed. Setting β r e l = d λ / d τ + ω \beta_{rel} = d\lambda/d\tau + \omega , this becomes d β r e l d τ = β r e l 2 + 1. -\frac{d\beta_{rel}}{d\tau} = \beta_{rel}^2 + 1. Integration yields d λ d τ = β r e l ω = tan ( τ 0 τ ) ω . \frac{d\lambda}{d\tau} = \beta_{rel} - \omega = \tan(\tau_0 - \tau) - \omega. Here, τ 0 \tau_0 is an integration constant. It corresponds to the time when Bob will be falling down at speed w w .

We integrate again: λ = ln cos ( τ 0 τ ) cos τ 0 ω τ . \lambda = \ln \frac{\cos (\tau_0 - \tau)}{\cos\tau_0} - \omega \tau. The integration constant was chosen to ensure that λ = 0 \lambda = 0 at τ = 0 \tau = 0 .

If Bob's initial speed (at τ = 0 \tau = 0 ) is d λ / d τ = β 0 = v 0 / v d\lambda/d\tau = \beta_0 = v_0/v^\star , then we find tan τ 0 = β 0 + ω . \tan \tau_0 = \beta_0 + \omega. Bob reaches the highest points at τ = τ 0 \tau = \tau_0 , when d λ / d τ = 0 d\lambda/d\tau = 0 , so that tan ( τ 0 τ t ) = ω . \tan (\tau_0 - \tau_t) = \omega. We write for the greatest height λ t = ln cos τ 0 cos ( τ 0 τ t ) ω τ t ; \lambda_t = \ln \frac{\cos\tau_0}{\cos (\tau_0 - \tau_t)} - \omega \tau_t; using cos x = 1 / 1 + tan 2 x \cos x = 1/\sqrt{1 + \tan^2 x} and tan τ t = tan ( τ 0 ( τ 0 τ t ) ) \tan \tau_t = \tan(\tau_0 - (\tau_0 - \tau_t)) , we eliminate the τ \tau variables: λ t = 1 2 ln 1 + ( β 0 + ω ) 2 1 + ω 2 ω inv tan β 0 1 + ( β 0 + ω ) ω . \lambda_t = \frac12 \ln \frac{1 + (\beta_0 + \omega)^2}{1 + \omega^2} - \omega\ \text{inv tan}\ \frac{\beta_0}{1 + (\beta_0 + \omega)\omega}. We are told that λ t = y t / y = 0.03579 \lambda_t = y_t/y^\star = 0.03579 ; in principle, we could solve this equation for β 0 \beta_0 using numerical methods; we find β 0 0.411 \beta_0 \approx 0.411 and v 0 13.74 m / s v_0 \approx \SI{13.74}{m/s} .


An approximate solution may be obtained by Taylor approximations and ignoring higher powers than β 0 2 \beta_0^2 . We have λ t 1 2 [ 2 ω 1 + ω 2 β 0 + ( 1 ω ) 2 ( 1 + ω 2 ) 2 β 0 2 ] [ ω 1 + ω 2 β 0 ω 2 ( 1 + ω 2 ) 2 β 0 2 ] = 1 2 ω + 3 ω 2 ( 1 + ω 2 ) 2 1 2 β 0 2 . \lambda_t \approx \frac12 \left[\frac{2\omega}{1+\omega^2}\beta_0 + \frac{(1-\omega)^2}{(1+\omega^2)^2}\beta_0^2\right] - \left[\frac{\omega}{1+\omega^2}\beta_0 - \frac{\omega^2}{(1+\omega^2)^2}\beta_0^2\right] = \frac{1 - 2\omega + 3\omega^2}{(1 + \omega^2)^2}\cdot \tfrac12\beta_0^2. Solving, we obtain β 0 1 + ω 2 1 2 ω + 3 ω 2 2 λ t . \beta_0 \approx \frac{1 + \omega^2}{\sqrt{1 - 2 \omega + 3 \omega^2}}\sqrt{2 \lambda_t}. (Note: β 0 = 2 λ t \beta_0 = \sqrt{2 \lambda_t} would be the approximation without wind and ignoring air resistance, corresponding to the familiar v 0 = 2 g h v_0 = \sqrt{2gh} .)

In our situation, this becomes β 0 0.3793 , v 0 12.7 m / s . \beta_0 \approx 0.3793,\ \ \ \ v_0 \approx \SI{12.7}{m/s}. The fact that β \beta is not significantly less than unity shows that this approximation is not great. Indeed, we are 7% low-- but it gives at least an idea of the answer!

Total KE required at highest point = energy needed to overcome drag due to wind + energy needed to escape gravitational pull. KE = dragforce × distance + mgh ; 1/2mV^2 = 1/2×density×Cd×(30+V)^2×4 + mgh ; 0.5×90×V^2 = 0.5×1.22×1×(30+V)^2 ×4 + 90×10×4. Solving above equation gives the required answer:))

Pratik Shinde - 3 years, 8 months ago

Log in to reply

Because the speed changes during the jump, so does the drag force. Therefore the work cannot be calculated using W = F Δ y W = F \Delta y directly, but must be obtained by integration, W = F d y W = \int F\:dy ; or, equivalently, you need a differential equation approach, d W = F d y dW = F\:dy . No matter how you go about it, this problem requires calculus or numerical simulation/integration.

Arjen Vreugdenhil - 3 years, 8 months ago

Log in to reply

Is he correct about the energy equation he has shown?

Bijay Shah - 3 years, 8 months ago

There is a typo: κ = ρ C d A 2 m \kappa = \frac{\rho C_d A}{2m} at the top.

Kelvin Hong - 3 years, 8 months ago

Log in to reply

Thanks. Fixed it :)

Arjen Vreugdenhil - 3 years, 8 months ago

Dear me, what complications! If you write the acceleration as v.dv/ds (s being distance) you then get a straightforward integration by separating the variables, giving implicit equation: (b^2)/20.ln(((u+30)^2 + b^2)/(900 + b^2)) - 3b.arc tan(ub/(b^2 + 900 + 30u)) = 4, where u = take-off velocity and b^2 = 900/0.8052. By successive approximation this gives u = 13.73924757 (to about 8 insignificant figures, in view of the data) I give all these digits only because I do not agree with 13.7285, the answer you give.

A Former Brilliant Member - 3 years, 8 months ago

Log in to reply

Your equation is equivalent to my equation for λ t \lambda_t just above the horizontal line. It is indeed not necessary to work with dimensionless quantities as I did, but I find that it gives some additional insight in the problem. Your approach of writing a = d v d t = d s d t d v d s = v d v d s a = \frac{dv}{dt} = \frac{ds}{dt}\frac{dv}{ds} = v\frac{dv}{ds} is a nice shortcut for the integration.

Arjen Vreugdenhil - 3 years, 8 months ago

Log in to reply

Wow, this can avoid time in the solution because question only gives velocity and displacement. Did the same way!

Kelvin Hong - 3 years, 8 months ago

How did you go about finding the value of β 0 \beta_0 ?

Josh Silverman Staff - 3 years, 8 months ago

Log in to reply

Graph:

Arjen Vreugdenhil - 3 years, 8 months ago
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import matplotlib.pyplot as plt

g = 10
v_wind = 30
m_bob = 90
C = 0.5 * 1.22 * 1.32

t = 0
height = 0
v= 5# <- sweep increasingly until ymax reaches 4
step=0.001
a=0
x=0
ymax=0




# Write code to propagate height and velocity forward in time and 

while x >= 0 :
    a=-g-C*(30+v)*(30+v)/90
    v=v+a*step
    x=x+v*step
    t=t+step
    if ymax<x :
        ymax=x



# Uncomment this code to plot h as a function of time.
print(ymax)

I'm not sure this works. Here's my solution:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# constants
g = 10 #m/s^2
v_w = 30 #m/s, down
m = 90 #kg
k = 0.5 * 1.22 * 1 * 1.32 #kg/m, coefficient for drag force

#minimum possible initial velocity
v_i = 0 #m/s

#time step
dt = .01 #s

#velocity step
dv = .01 #m/s

#desired height
h_goal = 4 #m

#initialize maximum height
h_max = 0 #m

#solved = False

while h_max < h_goal:

  v_r = v_i + v_w #initial relative velocity
  a = -g - (k/m)*(v_r**2) #initial acceleration

  t = 0 #s
  h = 0 #m

  reached = False

  if round(v_i,1)%0.5 == 0: print("Trial with v_i =",round(v_i,1))

  v_b = v_i #copy over to preserve v_i

  while not reached:
    #current max height
    h_max = h

    #update time 
    t += dt

    #update height
    h += v_b*dt

    #check height 
    if h < h_max:
      reached = True
      #just checking in to make sure it's running
      if round(v_i,1)%0.5 == 0: print("Max height =",round(h_max,2),"\n")

    #update velocities
    v_b += a*dt
    v_r = v_b + v_w

    #update acceleration
    a = -g - (k/m)*(v_r**2)


  if round(h_max,2)>=h_goal:
    print("Solution: v_i =",round(v_i,2),"with a maximum height",round(h_max,2))

  v_i += dv

Ryan Black - 3 years, 8 months ago

Log in to reply

Does it yield the same answer?

Agnishom Chattopadhyay - 3 years, 8 months ago
James Lewis
Oct 6, 2017

The question is written so that one might attempt to set a finite starting velocity and adjust it until velocity is zero at 4m. The other way around is much simpler and straight forward, assuming v=0 at t=0, working backward in time to what the velocity must be in order to fulfill that.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
g = 10
w = 30
m = 90
c = 0.5 * 1.22 * 1.32

t = 0
h = 0
d = 0.001 # significantly small for high resolution
v = 0 # <- don't bother experimenting with this initial value.

(times, heights) = ([], [])

while h<4:
    t+=d
    a=g + (w+v)*(w+v)*c/m
    h+=v*d + 0.5*d*d*a
    v+=d*a
    times.append(t)
    heights.append(h)

print(v) # The answer you seek
print(h) # just for kicks
print(t) # how long it took

It's a good thing Newton's laws are symmetric with respect to time reversal.

Josh Silverman Staff - 3 years, 8 months ago

Log in to reply

Are there any physical laws which are not time symmetric?

Agnishom Chattopadhyay - 3 years, 8 months ago

Log in to reply

In a way the fluctuation relations describe an asymmetry in that the probability of a process that produces entropy ω \omega during its evolution, compared to the probability of the time reversed process (with entropy production ω -\omega ) is given by P ( ω ) = P ( ω ) e ω . P(\omega) = P(-\omega)e^{\omega}. But none of the fundamental dynamical laws (e.g. Newton's law, the Dirac equation, etc.).

Josh Silverman Staff - 3 years, 8 months ago
Alex Li
Oct 8, 2017
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import matplotlib.pyplot as plt
g = 10
v_wind = 30
m_bob = 90
C = 0.5 * 1.22 * 1.32
goal_height = 4

#find the maximum height given an initial velocity
def maxHeight(velocity):
    dt = .001
    height = 0
    time = 0
    while(velocity>0):
        height+=velocity*dt
        velocity-=dt*(g+C*(velocity+v_wind)**2/(m_bob))
        time += dt
    return height

#use binary search to find correct time
minV = 0;
#we can safely assume that the initial velocity is under 1000m/s
maxV = 1000;
mid = (maxV+minV)/2
#compare max height with this velocity to the intended max height
diff = maxHeight(mid)-goal_height
#continue until the guess is very close to intended max height
while(abs(diff)>.0001):
#change your guess based on if you over or under estimated
    if(diff>0):
        maxV = mid
    else:
       minV = mid
    mid = (maxV+minV)/2
    diff = maxHeight(mid)-goal_height
#print your guess
print(mid)

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...