# How to correctly determine the stopping distance of a coasting bicycle when considering aerodynamic drag?

Given values of $C_{rr}$, $C_{d}{A}$ and $\rho$(Air density) how can I correctly determine the distance and time taken to coast from some $\upsilon$1 to $\upsilon$2?

• I would like to note that this is not a homework question for what it's worth. I am able to determine the time and distance if only static friction and rolling resistance are factors, but am unsure of how to reconcile air resistance correctly. Alternatively, can anyone suggest a venue where a question like this will be more welcomed? May 22, 2017 at 2:36
• Homework tag does not imply that your question will be closed nor does it imply that the question is off-topic. May 22, 2017 at 3:16
• Hi bsdunx : See physics.meta.stackexchange.com/q/391/2451 May 22, 2017 at 6:30

Assuming that your rolling resistance is independent of velocity, and that the force of rolling friction is $f_{rr} = -mgC_{rr}$, you can write the equation of motion as

$$F = m \frac{dv}{dt} = - \left(m g C_{rr} +\frac12 \rho v^2 C_d A\right)$$

From Wolfram Alpha we learn that the solution for

$$\frac{dv}{dt} = -\left(a + b v^2\right)$$

is

$$v(t) = -\sqrt{\frac{a}{b}} \tan\left(\sqrt{ab} (c_1 + t)\right)$$

You need to think about this a little bit to understand that the situation where you are decelerating happens then $c_1+t<0$. Getting the values of $a$ and $b$ right:

\begin{align} a&= gC_{rr}\\ b&= \frac{\rho C_dA}{2m}\end{align}

The result is

$$v(t) = -\sqrt{\frac{2mgC_{rr}}{\rho C_d A}}\tan\left(\sqrt{\frac{\rho C_d A ~g C_{rr}}{2m}}\left(c_1+t\right)\right)$$

You find the integration constant $c_1$ from the initial velocity (put $t=0$; you will find that $c_1$ must be negative), and the evolution of velocity with time follows. Interestingly, there is a finite time to come to a complete stop. That doesn't happen when you have "pure" quadratic drag - it's the rolling friction that dominates at low speeds.

## Update

Just to check that things work as expected, I wrote a quick Python program that computes the velocity according to the above expression, incorporating also the effect of slope (note - if the slope is such that the object would accelerate, you get a "math domain error". This is not a hard thing to fix, but it would make the code more complicated to read, so I left that out for now.)

Running the code with three values of slope (where negative slope = downhill) gave the following plot; you can see that the slope of -5° almost exactly cancels the rolling resistance of 0.1 (arcsin(0.1) = 5.7°), leaving just the quadratic drag; if you set the quadratic drag coefficient $C_ad$ to zero, the velocity ends up almost completely unchanged. So yes, this is believable. And the code (this is not meant to show "good Python", just something I threw together for a quick demo):

# rolling resistance and quadratic drag
import math
import numpy as np
import matplotlib.pyplot as plt

# pick some values for mass etc:
# these have obvious meanings, and SI units
m = 1.
g = 9.81
crr = 0.1
cda = 0.05
rho = 1.2
v0 = 10.

# convert to numbers we use in the formula
b = rho*cda/(2*m)

# a function that allows me to use degrees for slope:
def sind(theta):
return math.sin(theta*math.pi/180.)

def vt(t,a,b,c1):
# implement the expression I derived
temp = -np.sqrt(a/b)*np.tan(np.sqrt(a*b)*(c1+t))
# if velocity goes negative, things go awry
stop = np.where(temp<0)
if np.prod(np.size(stop))>0:
# set all elements past the point where v first goes negative to zero
temp[stop:]=0
return temp

# range of time for simulation:
t = np.linspace(0, 15, 500)

plt.figure()

# calculate for a range of slopes
for slope in np.arange(-5,6,5):
a = g*(crr + sind(slope))
c1 = math.atan(-v0*math.sqrt(b/a))/math.sqrt(a*b)
plt.plot(t, vt(t,a,b,c1), label='slope = %d'%slope)

plt.xlabel('time (s)')
plt.ylabel('velocity (m/s)')
plt.title('coasting down with rolling and quadratic friction')
plt.legend()
plt.show()

• Thank you very much for your response. Indeed the assumption of quadratic drag is one of the deficiencies I wanted to avoid. I assume to account for grade of slope I simply substitute \begin{align} b&= \frac{\rho C_dA}{2m\sin(\arctan G)}\end{align} May 24, 2017 at 2:19
• It occurred to me after writing this that the form of the equations is basically the same as for free fall with drag - which means that you can use those solutions to guide you as well (use the part of the trajectory where gravity opposes the motion, and scale it to give rolling resistance). May 24, 2017 at 10:49
• I think the grade would go into $a$, not $b$ - since that is not a velocity-dependent term. Let me think about that for a bit and update my answer. May 24, 2017 at 13:41
• The additional update has cleared up my misconceptions, I believe I have a working understanding of the factors involved now, regards. May 25, 2017 at 21:25
• @myjunk Hm. I may have some time to try those boundary conditions and see what I come up with. A bug in my code (or yours...) or an error in the equations is always a possibility. I’ll get back to you. Feb 14, 2021 at 14:40

The time it takes to go from $v_1$ to $v_2$ under the influence of $a(v)$ is $$\Delta t= \int \limits_{v_1}^{v_2} \frac{1}{a}\,{\rm d}v$$

In your case the acceleration has the form $a(v) = -a_0 - a_2 v^2$, and we consider the time from $v_1$ to any other $v$

$$t(v) = \int \limits_{v_1}^v -\frac{1}{a_0 + a_2 v^2} {\rm d}v = \frac{ \arctan\left( \sqrt{\frac{a_2}{a_0}} v_1 \right) - \arctan\left( \sqrt{\frac{a_2}{a_0}} v \right) }{\sqrt{a_0 a_2}}$$

Invert the above for

$$v(t) = \sqrt{\frac{a_0}{a_2}} \tan\left(\arctan\left( \sqrt{\frac{a_2}{a_0}} v_1 \right) -\sqrt{a_0 a_2}\; t \right)$$

The distance traveled over the same speed span is

$$\Delta x = \int \limits_{v_1}^{v_2} \frac{v}{a}\,{\rm d}v$$

$$x(v) = - \frac{1}{a_2} \ln \left( \frac{a_0+a_2 v^2}{a_0+a_2 v_1^2} \right)$$