1
$\begingroup$

Suppose we fire a cannonball straight up. We measure the duration of its flight and use that to estimate the height it reached. Does including air drag increase or decrease the estimated height, assuming the flight is purely vertical and ignoring Coriolis?

$\endgroup$
8
  • 1
    $\begingroup$ Play around with the equations at hyperphysics.phy-astr.gsu.edu/hbase/mechanics/quadrag.html and tell us what you find... $\endgroup$
    – Floris
    Jan 18, 2016 at 20:12
  • $\begingroup$ Mark, if you're really interested in seeing some closed form math (for the quadratic drag regime), I give my students the problem of finding the return velocity (the thing that @Floris' link calls $v_{impact}$) and therefore have some big chunks of the answer available for reference already. At this point I actually avoid fining the height, so some new work would be required. $\endgroup$ Jan 18, 2016 at 21:26
  • $\begingroup$ I was curious whether 1) someone might find an heuristic argument that works in not only the limiting case of very thick air 2) whether it's possible that the answer depends on the parameters, e.g. overestimates for some initial conditions and underestimates for others 3) whether the result is only true for v^2 drag, or whether other models of air drag (drag coefficient depends on v, ball is spinning) have different results. $\endgroup$ Jan 18, 2016 at 21:31
  • $\begingroup$ MarkEichenlaub - I believe that the math I used (from the hyperphysics site) works regardless of the thickness of the air: it's actually a closed form (not limiting case) solution. Interested to see whether @dmckee's solution agrees. $\endgroup$
    – Floris
    Jan 18, 2016 at 21:34
  • 1
    $\begingroup$ @Floris In one sense that is a way of parameterizing the the answer to 'What does the force law look like?' so that you can use a single rule over a wider range of cases. That said, the plateau starting around $10^3$ in your diagram reduces to a plain $v^2$ dependence and covers a great many practical cases. $\endgroup$ Jan 18, 2016 at 23:30

1 Answer 1

3
$\begingroup$

Assuming quadratic drag, we can use the equations given at this link to answer your question.

The key equations are expressed in terms of the terminal velocity $v_t$:

$$v_t = \sqrt{\frac{2mg}{C_D \rho A}}$$

and the characteristic time $\tau$:

$$\tau = \frac{v_t}{g}$$

Then the time to reach the peak height is

$$t_{peak} = \tau \tan^{-1}\frac{v_0}{v_t}$$

The peak height is

$$y_{peak}=-v_t \tau\log\cos\left[\tan^{-1}\frac{v_0}{v_t}\right]$$

And the time to impact is

$$t_{impact}=\tau\cosh\left(e^{\frac{y_{peak}}{v_t\tau}}\right)$$

As the drag increases, so does the apparent time taken (for a given launch velocity). I modeled this with a little Python program, varying the size of a 0.1 kg sphere from 1 mm (very little drag) to 20 cm (lots of drag). The initial velocity was 20 m/s in each case, and I calculated the time taken to land. From the time taken, I could compute the "apparent height reached" as a function of total time of flight ($h = \frac{gt^2}{8}$, and directly from the drag equation. The results were quite close:

enter image description here

This is seen more clearly from the ratio plot:

enter image description here

Code used to do these calculations (for playing with - not provided as "reference code"):

# terminal velocity calculations
import matplotlib.pyplot as plt
import math
import numpy as np

cd=0.5  # drag coeff
m = 0.1 # mass of projectile
g = 9.81 # gravity
rho = 1.22 # air density
v0 = 20.0  # initial velocity

timeTaken=[]
heightReached=[]
yCalc=[]
sizes = np.arange(0.001, 0.2, 0.001) # size from 1 mm to 20 cm

for r in sizes:
    A = math.pi*r*r
    vt = math.sqrt(2*m*g/(cd*rho*A))
    tau = vt / g
    tpeak = tau*math.atan(v0/vt)
    ypeak = -vt * tau * math.log(math.cos(math.atan(v0/vt)))
    timpact = tau*math.acosh(math.exp(ypeak/(vt*tau)))
    print vt, tau, ypeak, tpeak, timpact
    tTotal = tpeak+timpact
    timeTaken.append(tTotal)
    heightReached.append(ypeak)
    yCalc.append(g*tTotal*tTotal/8.0)

plt.figure()
plt.plot(sizes, yCalc)
plt.plot(sizes, heightReached)
plt.legend(['from time', 'actual'])
plt.xlabel('projectile size (m)')
plt.ylabel('height (m)')
plt.show()

plt.figure()
plt.plot(sizes, [x/y for x,y in zip(yCalc, heightReached)])
plt.xlabel('projectile size (m)')
plt.ylabel('ratio timed/actual')
plt.title('Timing the projectile overestimates height')
plt.show()

I repeated the calculation with a smaller mass (1 gram) to increase the range of drag regimes; and I also compared the time to reach the peak height with the time to drop back down. The ratio plot starts to flatten off:

enter image description here

and the time to come down is always less than the time to go up (no surprise); what is surprising is that the mean gets one close to the "right" time for the height achieved:

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.