Warning: Math Ahead
So ultimately, we want to know how high the rocket will go. I am going to call this “y”, “displacement” or “apogee” interchangeably. I might even call it the height. Either way, this is what we are ultimately trying to solve for.
Anyone who has taken a basic calculus or physics class probably recognizes a few truths:
That is to say, the change in location of an object over a period of time is its velocity, and its change in velocity over a period of time is its acceleration. Thankfully, we can also say this in reverse:
and
This becomes important when we consider that the flight of
any object is based on the sum of the forces acting on it. This is grounded in
Newton’s Laws of Motion. Thus we know that the sum of our forces is
where F = force, m = mass, and a =
acceleration. Thus,
Now we have a few terms here that we need
to sort out: FThrust, FDrag, and FWeight. Of
these, we can generally not worry about FThrust because that information
is available based on our motor. Likewise, we know that FWeight =
mg, where g is the acceleration due to gravity. This leaves FDrag for us to define:
where ρ = the density of air, CD
= the coefficient of drag, A = the crossectional area of the rocket, and v =
the velocity. This may seem like a lot of information, but much of it really
doesn’t change with time for our purposes here. So I am going to combine a
bunch of these into a constant. I will do this a few more times to clean up
equations and put them in more easily recognizable forms, too.
Now we have a simpler looking equation:
And thankfully, we know that t = impulse
divided by thrust, both of which are specifications provided by our motors. So
now we know the final velocity when the motor finishes burning its fuel, but
that doesn’t tell us either how high the rocket is at that point or how far it
continues to coast. For that information, we need more integration.
We will begin by solving for yBurn,
or how far the rocket travels while the motor is still providing thrust. For
simplicity’s sake, we will assume the rocket’s weight does not change during
this time (we are launching a frictionless spherical cow, aren’t we?), so m
will continue to refer to the mass of the rocket while it is full of
propellant.
Referring back to our original equation,
we know that:
So we can say
Now we know the rocket’s altitude when
the motor cuts out, but the rocket won’t instantly stop; it will continue to
coast. So let yCoast = the distance the rocket coasts on its
momentum before beginning its descent. That is to say, how far will the rocket
travel upward once FThrust = 0. Note that since the rocket has
exhausted all of its fuel, we no longer use mFull – we are now use mEmpty.
Now, we know the rocket’s apogee will be
the sum of how high it goes while under power (yBurn) and how far it
coasts before the acceleration due to gravity starts returning it to Earth (yCoast):
Where,
A = the area of the rocket’s cross-section
normal to its velocity vector.
CD = the rocket’s coefficient
of drag.
FThrust = the motor’s thrust
in Newtons.
g = the acceleration due to gravity.
I = the motor’s impulse in seconds.
mEmpty = the mass of the
rocket after burnout.
mFull = the mass of the rocket
at liftoff.
ρ = the density of air.
Of course, the astute reader will notice
that through all of that mess, there is one term still undefined- CD.
This is the coefficient of drag, and determining it generally requires
experimentation or running simulations. For my purposes, that is where
OpenRocket and SolidWorks come in. Both are capable of determining CD.
"we will assume the rocket’s weight does not change during this time" - that sound in the background is Tsiolkovskiy, weeping. :-) Slightly more seriously, I would assume you're going with minimum deadweight mass so the thrust/weight really ought to be a whole lot higher just before burnout. Do you have a fudge factor for that, or is it really not a problem?
ReplyDeleteOh, Tsiolkovskiy was weeping undeed.
ReplyDeleteI'm using the full loaded weight including propellant for m_full and the full loaded weight minus propellant for m_empty. Moat calcs are done with m_full and shiuld result in slightly underestimating altitude achieved. My guess is that will be countered by weather conditions and weathercocking (I wiuld like to see cp about 1.25 to 1.5 below cg, but I don't know what the team will ultimately do). I'm most concerned with shooting this thing straight up and not upward at an angle that wastes lift on verticle movement. I also don't want to walk too far to recover it....lol.
Also, I got a list of parts and specs finally emailed to me this morning. We choose parts this evening. It's a shame there was no time to analyze these and start modeling ahead of time, but I guess that's life. I still don't have specs on the acrylic we are making our fins from or even the specific type so I can look them up...