Projectile motion from height

1. May 19, 2013

geekyhawkes

I have been looking into projectile motion equations and am struggling to find suitable ones that cover a projectile being launched at height. I know this sounds like homework, but it isn't. I am after trying to understand a 6 degree of freedom style taking into account terminal velocity, terminal angle etc.

I guess to help the discussion an example would be sensible;

Take an object carried by a bird in its feet. Variables I see assuming the bird is on earth are;
Release angle from the birds flight path
Release velocity
Object drag
Release height above ground

I guess moving forward the things to consider would also be, what if the bird were climbing at the time of release, or in a dive.

Thanks for any help with this, I have found a lot of ballistic calculations for rockets, but none that allow for horizontal flight, terminal velocity etc.

Andy

2. May 19, 2013

Staff: Mentor

I don't think it's possible to solve 2-dimensional projectile motion with drag analytically to get closed-form equations. I've only done such problems by calculating the path over a series of short time steps, using some method for solving a system of coupled differential equations numerically in a computer program or on a spreadsheet.

3. May 19, 2013

sophiecentaur

You seem to have two issues here. The first is that you want to work in two dimensions. This it easy enough if you consider horizontal and vertical motions independently. It's particularly easy in the absence of air drag and there are simple formulae (suvat) to help you.

The other issue is drag. As jtbell says, there are no analytic methods to deal with the addition of drag but it is really not too hard to use numerical methods in a step-by-step calculation. (Piecewise Linear) . Excel will do this for you very well and give you a graph at the same time as long as you just want to show the path, given initial conditions. It's a bit harder if you want to determine how to aim at a particular target. That would need some iterative method and the use of a programming language, I think. (Though you can get Excel to solve some equations). Modern PCs have enough grunt as long as you don't need real-time answers.

4. May 19, 2013

BruceW

Last edited: May 19, 2013
5. May 19, 2013

BruceW

if you choose drag force proportional to the velocity squared, and the only other force is gravity, then even though it is a non-linear differential equation, there is an exact solution. This is because the equation is an example of a family of equations known as Bernoulli differential equations. (And they all happen to have nice solutions).

But, if you want a more complicated drag force, or if you start including other forces, then I can't guarantee there will be a nice solution. In this case, you can do as others have suggested and look for the behaviour numerically.

6. May 20, 2013

geekyhawkes

Thanks for the steers in the right way. I was actually looking to build a simple Java application to do this for me, but have been struggling to understand the variables required and the math that then needs applying to these variables.

I will do a bit of work looking at Bernoulli differential equations.

I know its a bit of an ask, but any chance someone could post here a simple example equation using piecewise linear and Bernoulli differential equations? Thanks for the help so far.

7. May 20, 2013

BruceW

the standard way to do the numerical simulation is by Euler's method: http://en.wikipedia.org/wiki/Euler_method Essentially, you say that at each time step, the position is updated by v * dt (where v is the current velocity and dt is just a small constant number, for example 0.001, note: the smaller you make this number, the better the approximation) And also, at each time step, you need to update the velocity and acceleration. a * dt is the velocity update, and the acceleration is updated in whatever way satisfies newton's laws. For example, if the newton's law for your model are like this: ma = -Cv^2 -mg (where C is just a constant), then 'a' just gets updated using this equation, using the new value of 'v'.