btrettel's Nerf blog

random thoughts about the ballistics of foam darts

Solving the point mass model of a dart’s trajectory, part one

Posted by btrettel on June 7, 2011

This blog post is relatively math heavy and it serves mostly as notes for my own use. I will assume some familiarity with differential calculus and ordinary differential equations. I also will assume some familiarity with the basic equations that govern the motion of Nerf darts after they leave the barrel.

Yesterday I had an epiphany while in the shower about a potential approach to solve the equations for the trajectory of a point mass with quadratic drag. This is a simplification to the standard equations of motion for the trajectory of a point mass in 2D with quadratic drag. These equations are presented below without derivation (or an explanation of what k is).

EOM in x: \ddot{x} = -k \dot{x} \sqrt{\dot{x}^2 + \dot{y}^2}

EOM in y: \ddot{y} = -k \dot{y} \sqrt{\dot{x}^2 + \dot{y}^2} - g

These are two coupled non-linear ODEs. To the best of my knowledge, there is no known solution in terms of elementary functions. You either have to define new functions to solve these equations or solve them numerically, as I have done in the past.

But we can do a few tricks to get an okay approximation. Note that the vast majority of shots from Nerf guns are level. Basically, this means that the y component of velocity is far smaller than the x component. If we ignore drag and solve \ddot{y} = -g directly, we can find that the maximum velocity of a Nerf dart in the y direction is less than 10 m/s. But Nerf darts almost always will be traveling faster than 30 m/s. If we assume that \sqrt{\dot{x}^2 + \dot{y}^2} \approx \dot{x} we commit at worst a 5% error if the x velocity stays above 30 m/s. This is the assumption I will make.

For an even better approximation, there are a few things that could be done. A perturbation method could be used. A guess for \dot{y} could be made; \dot{y} = -g t, the y velocity neglecting drag, might be good for a conservative approximation. We could assume that \dot{y} is a function of \dot{x} or another variable (like the height, or range), perhaps even a multiple of it. The multiple case reduces to an extra factor the drag coefficient (already a fudge factor for our purposes) can absorb. I will not take any of these approaches as I am only exploring potentially valid solutions now.

With my assumption in mind, I’ll rewrite the EOM.

EOM in x: \ddot{x} = -k \dot{x}^2

EOM in y: \ddot{y} = -k \dot{x} \dot{y} - g

These equations are now uncoupled and only the first one is non-linear. I can solve for \dot{x} directly and substitute that into the second EOM.

\dot{x} can be solved for by doing the following change of variables:

z \equiv \dot{x}^2 \longrightarrow \dot{z} = 2 \dot{x} \ddot{x} \longrightarrow \ddot{x} = \displaystyle \frac{\dot{z}}{2 \sqrt{z}} \longrightarrow \dot{z} = -2 k z^{\tfrac{3}{2}} \longrightarrow z^{-\tfrac{1}{2}} = k t + c

I can substitute back in my definition for z to get \dot{x}. I’ll use the initial condition \dot{x}(t = 0) = V_0 to get the complete solution.

\dot{x} = \displaystyle \frac{1}{k t +c} \longrightarrow \dot{x}(t) = \displaystyle \frac{V_0}{V_0 k t + 1}

Now we must solve the EOM in y. The equation is written below with \dot{x} substituted in. I defined A \equiv k V_0.

\ddot{y} = -\displaystyle \frac{A \dot{y}}{A t + 1} - g

I will use a change of variables and omit most of the details. \xi = \text{ln}(A t + 1)

The ODE with these changes becomes y_{\xi \xi} = - \displaystyle \frac{g e^{2 \xi}}{A^2} where the subscript represents differentiation with respect to that variable. The general solution for this ODE is y = B \xi + C - \displaystyle \frac{g e^{2 \xi}}{4 A^2}.

Substituting back in for y and t and using the ICs \dot{y}(0) = 0 (the dart does not start with any vertical velocity as it is fired flat) and y(0) = h where h is the height of the barrel I arrive at the following equation for the dart’s y position as a function of time.

y(t) = h + \displaystyle \frac{g}{2 (k V_0)^2} \text{ln}(k V_0 t + 1) - \displaystyle \frac{g t}{2 k V_0} - \displaystyle \frac{g t^2}{4}

This is correct. You can solve for \dot{y} and \ddot{y} and substitute back into the ODE to check. You can also check the ICs; they are satisfied. Additionally, the solution approaches the solution without drag. At first I thought it did not, but it can be shown to approach this solution exactly with Taylor series expansion.

To get the range, we must find time  the dart hits the ground. Yet the equation above can not be solved for t explicitly.

So I can find an approximate solution that is undesirable because I can’t proceed to get the range equation. I can think of a few options from here. One is to approximate the equation for y to find an approximate time. Another is to modify the original ODEs in a way that allows for the time to be found. Yet another is to use the identity \ddot{x} dx =\dot{x} d \dot{x} (and the equivalent for y) to avoid time all together, but this approach has another problem: what \dot{x} and \dot{y} correspond to when the dart strikes the ground?

In my next post I will prove that this solution is correct and converges to the solution without drag as k \rightarrow \infty and develop some approximations for different scenarios.

(I had some incorrect ramblings here before. They have been removed.)

Edit: In the next post I will show how the form of the solution for x(t) probably will save us and allow an explicit equation for the range to be formed. x(t) = \displaystyle \frac{\text{ln}(V_0 k t + 1)}{k}. Note that this allows us to replace the ln term in the y equation with a multiple of x. x = R (the range) when the dart hits the ground… this may allow us to find the time the dart hits the ground as a function of R, which we can substitute back into the x equation to solve (hopefully) for R. That is the outline of what I will attempt now.

Edit again: I believe this is an adequate approximate equation for the range of a flat fired Nerf gun:

R = \displaystyle \frac{1}{C} \text{ln} \left(\frac{h (C V_0)^2}{g} + 1 + \text{ln} \left(\frac{h (C V_0)^2}{g} + 1 \right) \right), where C \equiv \displaystyle \frac{\rho_{atm} C_d A}{m} .

An okay simpler approximation follows.

R = \displaystyle \frac{1}{C} \text{ln} \left(\frac{h (C  V_0)^2}{g} + \frac{27}{25} \right)

Sorry, the comment form is closed at this time.