Project Bellerophon 644
Author: Elizabeth Harkness
A.6.0 Trajectory
A.6.1 Introduction The trajectory of the launch vehicle is critical to mission success. Without a sub-optimal
trajectory, the amount of ∆V required is very large and increases the cost of the vehicle. The first
thing that we do to understand the problem is to define the assumptions of our model. The
trajectory group is mostly concerned with the translational degrees of freedom of the vehicle and
leaves the attitude of the launch vehicle to the D&C group. Therefore, in all of our analysis, we
assume that the launch vehicle is a point mass. Our second main assumption is that all of the
forces acting on the vehicle are in the same plane, effectively reducing the translational degrees
of freedom of the vehicle to two. Once the assumptions are defined, we derive the force model
and the equations of motion of the vehicle for each stage.
With the equations of motion for the vehicle defined, the design moved to the creation of the
steering laws. At this point, the design split into two distinct sections: one for ground and balloon
launch and another for aircraft launch. This separation is due to the different initial conditions for
each launch type. Once the steering laws are formed, the angles at the end of each stage are
optimized to produce the best nominal trajectory for each launch type (ground, balloon and
aircraft).
Due to the nature of trajectory optimization and design, all members of the trajectory group
worked on all aspects of the problem. Even though each member contributed to every section,
the sections are written by the trajectory group member that worked the most on that aspect of
the design. The following sections go into the details of the trajectory group’s work.
Project Bellerophon 645
Author: Brad Ferris
A.6.2 Design Methods
A.6.2.1 Equations of Motion The first step to developing the equations of motion for the launch vehicle is setting up the
appropriate coordinate systems. A complete set of coordinate systems is displayed in Fig.
A.6.2.1.1. We start with the ̂ frame. The ̂ frame is fixed in the Earth, and rotates with the
Earth. The unit vector ̂ lies along the Earth’s axis of rotation. Next we need an intermediate
coordinate frame, the frame. The frame is situated such that lies along ̂ ; is offset
from ̂ by angle θ. Angle θ is analogous to longitude. The final coordinate frame is the
frame. This frame is situated such that lies along ; is offset from by angle Φ.
Angle Φ is analogous to latitude.
Fig.A.6.2.1.1: Coordinate frames used for developing equations of motion.
(Amanda Briden)
We need to derive the transformation matrix to get from the frame to the ̂ frame. To do this,
we first define transformation matrices which represent the simple rotation from ̂ to (Eq.
(A.6.2.1.1)), and from to (Eq. (A.6.2.1.2)). After we define these two transformation
matrices, we can combine Eqs. (A.6.2.1.1) and (A.6.2.1.2) to get the desired transformation
matrix in Eq. (A.6.2.1.3).
Project Bellerophon 646
Author: Brad Ferris
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
z
y
x
z
y
x
eee
aaa
1000)cos()sin(0)sin()cos(
θθθθ
(A.6.2.1.1)
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
z
y
x
r aaa
bbb
)cos(0)sin(010
)sin(0)cos(
φφ
φφ
θ
φ
(A.6.2.1.2)
We combine Eqs. (A.6.2.1.1) and (A.6.2.1.2) to get:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
rz
y
x
bbb
eee
θ
φ
φφθφθθφθφθθφ
)cos(0)sin()sin()sin()cos()sin()cos()cos()sin()sin()cos()cos(
(A.6.2.1.3)
Next, we analyze the forces acting on the launch vehicle. The free body diagram of the launch
vehicle is shown in Fig. (A.6.2.1.2). The angle γ is the flight path angle, or the angle between
the direction of velocity and the local horizon.
For the purpose of developing a trajectory, the launch vehicle is treated as a point mass. The
stability of the launch vehicle is left to the D&C group. Therefore, this model of the launch
vehicle does not take into account the launch vehicle’s moments of inertia, the location of the
center of pressure, or any other perturbing forces that affect stability. The forces weight, drag,
and thrust are assumed to act in the - plane. To summarize, the launch vehicle is modeled
as a dot flying through space.
Weight (W) is the force the Earth exerts on the launch vehicle. Weight is a function of the mass
of the launch vehicle. Therefore, weight varies over the flight as the launch vehicle burns fuel
and discards inert mass (stages and payload fairings). The weight of the launch vehicle is always
directed to the center of the Earth (opposite ).
Thrust (T) is the force developed by the engine. A detailed description about modeling thrust is
given in Section A.6.2.1.5. In modeling thrust, the angle ’ is the angle at which thrust is offset
Project Bellerophon 647
Author: Brad Ferris
from the direction of the velocity. For the trajectory model, the thrust is always aligned with the
velocity, therefore ’ is always equal to zero.
Drag (D) is the force the atmosphere exerts on the launch vehicle. A detailed description about
modeling drag is given in Section A.6.2.1.6. Drag always acts opposite of the direction of the
velocity.
Fig.A.6.2.1.2: Free-body diagram of launch vehicle used to develop equations of motion.
(Brad Ferris)
In order to develop the equations of motion, we use Newton’s Second Law. Newton’s Second
Law states that force (F) is equal to mass (m) multiplied by acceleration (a).
(A.6.2.1.4)
The equations of motion satisfy Newton’s Second Law. The treatment of the forces is called
kinetics, and the treatment of the motion (acceleration) is called kinematics.
In order to analyze the kinetics, it is necessary to break up the forces into their components in the
frame.
0 (A.6.2.1.5)
Project Bellerophon 648
Author: Brad Ferris
cos sin (A.6.2.1.6)
cos ′ sin ′ (A.6.2.1.7)
Next, we sum all of the forces in each direction. We introduce a term for the force of the wind in
each direction (Fwi). A detailed description about modeling wind force is given in Section
A.6.2.1.4.
∑ ′ (A.6.2.1.8)
∑ ′ (A.6.2.1.9)
∑ (A.6.2.1.10)
In order to obtain the kinematic part of the equations of motion, we first establish a position
vector ( ). We need to differentiate the position vector two times in order to get
acceleration. It is necessary to use the Basic Kinematic Equation (BKE) to differentiate, because
the bi frame is not inertially fixed. With the BKE, we introduce angular velocity (ω).
(A.6.2.1.11)
With the angular velocity and the position vector, we can differentiate to get acceleration.
(A.6.2.1.12)
cos sin (A.6.2.1.12)
(A.6.2.1.13)
sin (A.6.2.1.14)
sin 2 cos sin 2 sin
sin 2 cos (A.6.2.1.15)
Now that we have the kinetics and kinematics describing the motion of the launch vehicle, we
can use Newton’s Second Law, Eq. (A.6.2.1.4), to get the equations of motion. Recall that
kinetics pertains to the treatment of the forces, Eqs. (A.6.2.1.8) – (A.6.2.1.10), and the
Project Bellerophon 649
Author: Brad Ferris
kinematics pertains to the treatment of the motion. The mass required for Newton’s Second Law
is the mass of the launch vehicle (m). Since the launch vehicle is burning fuel and discarding
inert mass, the mass of the launch vehicle is a function of time, m=m(t). Applying Newton’s
Second Law, the final EOMs for the launch vehicle are defined in Eqs, (A.6.2.1.16) –
(A.6.2.1.18):
: ′ sin (A.6.2.1.16)
: 2 cos sin (A.6.2.1.17)
: ′ 2 sin sin 2 cos
(A.6.2.1.18)
If we desire the orientation of the launch vehicle with respect to the Earth fixed frame ( ̂ ), we
apply the transformation matrix in Eq. (A.6.2.1.3) to Eqs. (A.6.2.1.16) – (A.6.2.1.18).
Project Bellerophon 650
Author: Brad Ferris
A.6.2.1.1 Aircraft launch For an aircraft launch, the equations of motion of the launch vehicle are the same as the
equations of motion given in Eqs. (A.6.2.1.16) – (A.6.2.1.18) in Section A.6.2.1. For the
numerical integration used in the trajectory codes, it is necessary to put the equations of motion
into state space. Therefore, in state space form we have the following:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
φφθθ
&
&
&rr
xxxxxx
6
5
4
3
2
1
(A.6.2.1.1.1)
(A.6.2.1.1.2) ′
sin
′
2 sin 2 cos1
2 cos sin1
The equations in Eqs. (A.6.2.1.1.1) – (A.6.2.1.1.2) are subject to the following initial condition:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
]/[0.])[deg2890(
]/[0.])[deg80(
]/[0][000,391,6
)0()0()0()0()0()0(
srad
srad
smmeters
rr
φφθθ
&
&
&
Project Bellerophon 651
Author: Brad Ferris
A.6.2.1.2 Balloon Launch For a balloon launch, the equations of motion of the launch vehicle are the same as the equations
of motion given in Eqs. (A.6.2.1.16) – (A.6.2.1.18) in Section A.6.2.1. For the numerical
integration used in the trajectory codes, it is necessary to put the equations of motion into state
space. Therefore, in state space form we have the following:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
φφθθ
&
&
&rr
xxxxxx
6
5
4
3
2
1
(A.6.2.1.2.1)
(A.6.2.1.2.2) ′
sin
′
2 sin 2 cos1
2 cos sin1
The equations in Eqs. (A.6.2.1.2.1) – (A.6.2.1.2.2) are subject to the following initial conditions:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
]/[0.])[deg2890(
]/[0.])[deg80(
]/[0][000,406,6
)0()0()0()0()0()0(
srad
srad
smmeters
rr
φφθθ
&
&
&
Project Bellerophon 652
Author: Brad Ferris
A.6.2.1.3 Ground Launch For a ground launch, the equations of motion of the launch vehicle are the same as the equations
of motion given in Eqs. (A.6.2.1.16) – (A.6.2.1.18) in Section A.6.2.1. For the numerical
integration used in the trajectory codes, it is necessary to put the equations of motion into state
space. Therefore, in state space form we have the following:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
φφθθ
&
&
&rr
xxxxxx
6
5
4
3
2
1
(A.6.2.1.3.1)
(A.6.2.1.3.2) ′
sin
′
2 sin 2 cos1
2 cos sin1
The equations in Eqs. (A.6.2.1.3.1) – (A.6.2.1.3.2) are subject to the following initial conditions:
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−
−=
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
]/[0.])[deg2890(
]/[0.])[deg80(
]/[0][000,376,6
)0()0()0()0()0()0(
srad
srad
smmeters
rr
φφθθ
&
&
&
Project Bellerophon 653
Author: Kyle Donahue and Allen Guzik
A.6.2.1.4 Wind and Atmosphere In order to accurately predict the trajectory of a launch the simulations need an atmospheric and
wind profile model. This model predicts the conditions a launch vehicle is exposed to when
traveling through Earth’s atmosphere. These conditions determine the various aerodynamic
forces imparted on a moving vehicle. In the initial design we planned to use a ground launch at
sea level, an aircraft launch at an altitude of 15 km, and a balloon launch at 30 km. The final
design is a balloon launch and only uses the wind model for ascension.
In the equations of motion mentioned in section A.6.2.1 there is a force in all three directions,
Fw, which is the force on the launch vehicle due to the constant wind model coupled with the
gusting of the wind. Since we are launching from a balloon at a starting altitude of 30 km we are
above the effects of wind, which has a maximum altitude of 30 km, on the launch vehicle.1 The
terms in the free body diagram and equations of motion are there for completeness and are 0. The
wind only reaches an altitude of 30 km because its effects on a vehicle after the altitude are
minimal. This is due to the fact that the atmospheric density is small enough that the wind will
not affect the launch vehicle enough.1 The air density at 30 km is 0.018 kg/m3 and the air density
at sea level is 1.225 kg/m3 which is 68 times larger than at 30 km.2
Project Bellerophon 654
Author: Kyle Donahue and Allen Guzik
A.6.2.1.4.1 Standard Atmosphere Profiles The atmosphere model used to run the simulations is based on the standard atmosphere data
based of the 1976 NASA Standard Atmosphere. Our simulations use a MATLAB function
called atmosphere4.m.2 Input into the function is geopotential height. The function outputs the
temperature, density, and pressure at the selected height. The model makes these calculations up
to an altitude of 89.9 km. Figures A.6.2.1.4.1.1 through A.6.2.1.4.1.3 show plots of the pressure,
temperature and density outputs from this function.
Fig A.6.2.1.4.1.1: Standard atmosphere temperature profile. (Allen Guzik and Kyle Donahue)
Fig A.6.2.1.4.1.2: Standard atmosphere pressure profile. (Allen Guzik and Kyle Donahue)
Project Bellerophon 655
Author: Kyle Donahue and Allen Guzik
Fig A.6.2.1.4.1.3: Standard atmosphere density profile. (Allen Guzik and Kyle Donahue)
Project Bellerophon 656
Author: Kyle Donahue and Allen Guzik
A.6.2.1.4.2 Constant Wind Profile Several assumptions are made in creating the wind profile. The first assumption we make is that
the constant wind is linear at different heights. Another assumption we make is that the constant
wind will always be traveling in an easterly direction. This means that the wind can never go east
to west. For example the constant wind profile is limited to angles greater than 0o and less than
180o on a compass. We also assumed there would be random wind gusts throughout the wind
profile. The restriction on the wind gusts is that their direction can only be ±90o from the
constant wind profile. Also the wind gusts are impulsive. The final assumption we made in
creating the wind model is that the wind itself is only two dimensional. We assume the wind will
only be traveling in the north-east-south-west directions and never in the “up” or “down”
directions.
We model the constant wind profile after a model used for the launch of Lunar Orbiter 2.2 Figure
A.6.2.1.4.2.1 shows the wind profile which we used as a model.
Fig A.6.2.1.4.2.1: Wind profile from NASA CR-942. (B.A. Appleby and T.E. Reed)
Project Bellerophon 657
Author: Kyle Donahue and Allen Guzik
The dark solid line in the figure is the constant wind profile which we used for our model. We
did not model the direction from NASA CR-942, we only used Fig. A.6.2.1.4.2.1 for the speed of
the constant wind. Figure A.6.2.1.4.2.2 is the constant wind profile which we used in the
trajectory and D&C models.
Fig A.6.2.1.4.2.2: Constant Wind Profile for Project Bellerphone.
(Kyle Donahue and Allen Guzik)
Our wind model is a simplified version of one of the current models. We assume that the wind
speed is related to altitude in a linear fashion. This is not the case but for our model the linear
representation works very well.
We found the constant wind using MATLAB code AAE450_Wind_Model.m. For the initial
analysis for Project Bellerophon the wind model was not used. The wind model was
implemented in the second round of design analysis. The wind model is broken up into several
parts. The first part is computing the constant wind profile. The second part is determining the
wind gusts. And the third part is converting the speed of the wind into the wind force (Fw).
Project Bellerophon 658
Author: Kyle Donahue and Allen Guzik
The first part of the wind model is determining the constant wind profile. The constant wind
profile itself is made up of two parts: the direction and the speed. The first part of the code
determines the speed of the wind. The code uses logic and information which is based on Fig.
A.6.2.1.4.2.1 The next step is determining the direction in which the constant wind profile is
directed. Since the constant wind profile is launch dependent it changes every time the code is
used. This works best as it represents the real wind profile more accurately.
Project Bellerophon 659
Author: Kyle Donahue and Allen Guzik
A.6.2.1.4.3 Wind Gusting Algorithm Another aspect of the wind and atmospheric model is the unpredictable nature of wind gusts.
Within the wind model architecture there is a wing gusting generator. The concept behind the
wind gusting generator is to be able to generate random wind gusts then add them to the constant
wind profile.
There are many parameters designed into the gusting algorithm to allow for random gusting.
First we choose the number of gusts a vehicle can experience, unique to each launch. This
number is random and can vary from zero to twenty gusts per launch. Another unique property
to each launch is the altitude in the atmosphere where each gust occurs. Each gust is assigned a
random altitude where the gust happens. The possible altitude range is from 0 km to 30 km.
The direction of each gust is also random. This allows for the unpredictable nature of the wind
changing direction. The direction is selected to always be parallel to the ground. This means the
model does not generate any up or down drafts. Each gust direction is in any direction that is
plus or minus 90˚ from the direction of the constant wind profile.
The last component of the wind gust algorithm is the magnitude of each gust. Each gust has a
random magnitude that can be anywhere between 0 m/s to 12 m/s. This magnitude is added to
the constant wind profile. For example, if a gust of 9 m/s is assigned to the altitude of 10 km and
is going in exactly the same direction of the constant wind the resulting wind, at that altitude, is
the constant wind, which is 40 m/s, plus the gust resulting in the total wind velocity of 49 m/s.
Lastly, the duration of each gust is variable. However, the gust is modeled such that the gust is
an impulse. This decision is based on the assumption that the length of altitude each gust is
small enough that when considering the velocity of the rocket traveling through that altitude
range, the gust acts as an impulse.
Project Bellerophon 660
Author: Kyle Donahue and Allen Guzik
Fig A.6.2.1.4.3.1: Example of a wind profile with gusting in the north/south direction. (Kyle Donahue and Allen Guzik)
An example of a possible wind profile generated from AAE450_wind_model.m with gusts for a
ground rocket launch is provided in Figs. A.6.2.1.4.3.1 and A.6.2.1.4.3.2.
Fig A.6.2.1.4.3.2: Example of a wind profile with gusting in the East/West direction. (Kyle Donahue and Allen Guzik)
Project Bellerophon 661
Author: Kyle Donahue and Allen Guzik
A.6.2.1.4.4 Wind Force The third, and final, part of the wind model is converting the wind velocity (constant wind
profile plus wind gusts) into the wind force which is used in the equations of motion. The
equation we used for converting the wind velocity into wind force is using Eq. (A.6.2.1.4.4.1)
SWF ww
2
21 ρ= Eq. (A.6.2.1.4.4.1)
where Fw is the force of the wind, ρ is the density of the air at the particular altitude, W is the
total wind velocity which is the constant plus the gust, and Sw is the area exposed to the wind at
the given time.
The force of the wind was modeled this way because we determined the wind would add to the
drag force. For the most part, this is a good assumption. However, the wind will actually be
helping but that is taken care of in the unit vector basis which was described earlier.
We analyze the wind on the launch vehicle for all three body-fixed directions, br, bθ, and bφ.
Since one of our assumptions is that the wind would never moving “up” or “down” the speed and
force in the br is therefore 0 m/s. It was also analyzed for all altitudes from 0 and up till 30 km.
Figure A.6.2.1.4.4.1 is the wind force in the north/south direction, and Fig. A.6.2.1.4.4.2 is the
wind force in the east/west direction.
Project Bellerophon 662
Author: Kyle Donahue and Allen Guzik
Fig A.6.2.1.4.4.1: Force of the wind in the North/South compass direction.
(Kyle Donahue and Allen Guzik)
Fig A.6.2.1.4.4.1: Force of the wind in the East/West compass direction.
(Kyle Donahue and Allen Guzik)
The two figures above have the constant wind profile and the wind gusts combined into one to
create the wind vector which is used to create the wind force.
Project Bellerophon 663
Author: Kyle Donahue and Allen Guzik
Reference 1Appleby, B.A. and Reed, T.E., “Dynamic Stability of Space Vehicles,” NASA CR-942, November 1967. 2Heister, Dr. Stephen, “atmosphere4.m,” AAE 539 Advanced Rocket Propulsion lectures, January 2008.
Project Bellerophon 664
Author: Brad Ferris
A.6.2.1.5 Thrust The thrust of the launch vehicle’s engine will vary with altitude. We divide the thrust of the
launch vehicle’s engine into two parts: momentum and pressure. The momentum thrust is a
result of expelling mass out of the engine, and is a function of the engine’s exhaust mass flow
rate ( ) and the velocity of the exhaust (ve). The pressure thrust is a result of the pressure
difference between the exhaust and the ambient pressures, and is a function of the exhaust
pressure (pe), the ambient pressure (pa), and the exit area of the engine nozzle (Ae). Putting
together momentum and pressure thrust parts, we get Eq. (A.6.2.1.5.1) for thrust:
(A.6.2.1.5.1)
Now we notice that there can be a condition where ambient pressure may equal exhaust pressure.
This condition would cause the pressure thrust to go to zero; the thrust at this condition is the
thrust at optimal expansion (Topt).
(A.6.2.1.5.2)
We can combine Eqs. (A.6.2.1.5.1) and (A.6.2.1.5.2) to get the following:
(A.6.2.1.5.3)
The thrust at optimal expansion, exit pressure, and exit area of the nozzle is provided by the
Propulsion group. The ambient pressure at a given altitude is found in the trajectory code
(Section A.6.2.1.4).
Another aspect of the thrust that needs to be modeled is the time the engine takes to ramp up to
full thrust from ignition and back down to zero thrust at burn out. We call a function to deliver
the appropriate thrust value at a given time. The function takes burn time and total thrust as
inputs. In the function, we assume the ramping up and down of the thrust is linear, and that the
ramping takes place over an interval of one second. For example, the thrust at half a second after
Project Bellerophon 665
Author: Brad Ferris
ignition would be half of the full thrust. The function returns the appropriate thrust value.
Therefore, we are now able to model the thrust of the launch vehicle over the entire flight.
Project Bellerophon 666
Author: Brad Ferris
A.6.2.1.6 Lift and Drag The launch vehicle travels through the Earth’s atmosphere for part of its flight. Therefore, the
launch vehicle experiences atmospheric forces. We describe these forces as lift and drag.
In the trajectory model, the angle of attack of the launch vehicle is assumed to be zero.
Consequently, the launch vehicle is always showing the same wetted area. This assumption was
made early on in the trajectory modeling process. The trajectory model was not revised to
include a variable angle of attack. This assumption affects the lift and drag forces, which are
described later in this section. The D&C group uses a more comprehensive model of
aerodynamic forces (Section A.3) than the one used by the Trajectory group.
Lift (L) is defined as the aerodynamic force acting normal to the direction of velocity. The
launch vehicle is an axis symmetric body; zero-lift angle of attack occurs when angle of attack is
zero. Consequently, the launch vehicle only experiences a lift force when the angle of attack is
not zero. Since the angle of attack is assumed to be zero in the trajectory model, there is no lift
force in the trajectory model.
Drag (D) is defined as the aerodynamic force acting opposite of the direction of velocity. Drag
force is a function of several parameters, including the coefficient of drag (CD), the dynamic
pressure (q), and the wetted area (S). The coefficient of drag is a function of the geometry of the
vehicle. The dynamic pressure is a function of atmospheric density (ρ) and vehicle velocity (V),
and is given by:
1
2 (A.6.2.1.6.1)
The wetted area is the area projected onto a plane normal to the direction of velocity. Since we
made the simplifying assumption that angle of attack is zero, the direction of velocity will lie
along the launch vehicle’s axis of symmetry.
Project Bellerophon 667
Author: Brad Ferris
Now that all of the necessary parameters have been defined, we can now state the equation for
drag:
(A.6.2.1.6.2)
The next step in modeling drag is to effectively model the change in drag force over the flight
time. As the launch vehicle climbs and accelerates, the density of the atmosphere decreases and
the velocity of the launch vehicle increases. These changes are captured in the dynamic
pressure. The drag on the launch vehicle will change as it passes through the subsonic,
transonic, and supersonic regions. To put it another way, drag is a function of Mach number.
Drag is also a function of angle of attack, but the trajectory model assumes angle of attack of
zero. The coefficient of drag captures the change in drag due to the change in Mach number
(Sections A.1.2.3 – A.1.2.4).
As described above, it is necessary to model the Mach number to get drag behavior. Mach
number is a function of the vehicle’s velocity (V) and the local speed of sound (a). The Mach
number is defined as:
(A.6.2.1.6.3)
The speed of sound is a function of a number of parameter, including the ratio of specific heats
of the medium (γ), the specific gas constant of the medium (R), and the local temperature (T).
The speed of sound is given by:
(A.6.2.1.6.4)
In order to get an accurate value for CD, the Mach number is input into a function from the
Aerothermal group and a corresponding value for CD is output into the trajectory code.
Project Bellerophon 668
Author: Brad Ferris
With these methods for getting values of CD and q that vary with altitude and velocity, and
getting a value for S for angle of attack equal to zero, we can effectively model drag as the
launch vehicle changes altitude and velocity.
Project Bellerophon 669
Author: Junichi Kanehara
A.6.2.2 Steering Law Development
A.6.2.2.1 Balloon and Ground Launch The steering law, which controls the direction of the velocity vector of the launch vehicle, is one
of the most crucial challenges in our project. A slight change in the steering law affects the
∆Vdrag, ∆Vgravity and the eccentricity of the orbit; therefore, the rocket will not obtain an
acceptable orbit without good sub-optimal steering.
We eventually incorporate the spherical Earth model, the aerodynamic drag due to the
atmosphere, and the gravity field as a function of altitude; however, the starting point of the
construction of the steering law was to consider the flat Earth problem without drag. This
simplified problem is a well-defined two point boundary value problem, which is analytically
solvable by forming Hamiltonian and applying Euler-Lagrange equations, Transversality
condition and Weierstrass condition. The optimal solution obtained is the Linear Tangent
Steering Law1:
tan at bψ = + (A.6.2.2.1.1)
where ψ is the steering angle, t is time, and a and b are the coefficients.
The Linear Tangent Steering Law is the optimal steering law for the flat Earth when there is no
atmosphere. As the steering laws that private companies and the governmental space agencies
actually use are not available to the public, we decide to apply the Linear Tangent Steering Law
for our ground and balloon launches. We recognize that it is not the optimal steering law when
we apply it to the spherical Earth model with atmosphere; however, we also assume that the
difference is small enough to treat the Linear Tangent Steering Law as a good sub-optimal
steering law.
We implement the steering law in our ordinary differential equations solvers and numerically
integrate our equations of motion for each stage. Also, our rocket flies vertically without any
steering for the first ten seconds of the first stage, so we do not need to implement the steering
law for the very first part of the flight.
Project Bel
Figure A
angles of
steering l
20° and
since the
llerophon
A.6.2.2.1.1 s
f each stage
law versus t
-50° respe
tangent fun
Fig
shows how
e, which num
ime when th
ctively. We
nction is unde
g. A.6.2.2.1.1:
Fig. A.6.2.2.
Author:
we measure
merically de
he final steer
should note
efined at 90°
Schematic of t(Am
.1.2: Sample of(Am
: Junichi Kaneh
e the steerin
efine our ste
ring angles a
e that the ini
°.
the steering angmanda Briden)
f the plot of stemanda Briden)
hara
ng angles an
eering law. F
at first, secon
itial steering
gle at the end o
eering law vers
nd depicts t
Figure A.6.2
nd and third
g angle is 88
of each stage.
sus time.
the final ste
2.2.1.2 show
d stages are 4
8° rather than
670
eering
ws the
40°, -
n 90°
Project Bellerophon 671
Author: Junichi Kanehara
By changing the final steering angles at each stage degree by degree, we are able to find the sub-
optimal steering law that makes it possible to attain a nominal orbit with the eccentricity of as
small as 0.0055. In Section A.6.2.3, we will discuss how we actually deal with the
computationally expensive process of obtaining the sub-optimal steering law, which requires
running the entire trajectory code once for each set of the final steering angles, by using a normal
PC in the year 2008 rather than an expensive super computer.
In the process of choosing the launch type, ground launch or balloon launch, we needed to
compare the corresponding ∆Vdrag and ∆Vtotal. We did not have the final structural configurations
when we did the analysis on the week five of the project, and we did not have a sub-optimized
trajectory for each case either. However, the following results are still valid since the trend never
changes for our launch vehicles regardless of the modifications since the week five.
Table A.6.2.2.1.1 Delta V Comparison
Payload [kg] Launch type ∆Vdrag ∆Vtotal Units 0.2 Balloon 21 10,027 m/s 1.0 Balloon 21 10,011 m/s 5.0 Balloon 20 9,932 m/s 0.2 Ground 2,904 14,033 m/s 1.0 Ground 2,899 13,978 m/s 5.0 Ground 2,875 13,711 m/s
Table A.6.2.2.1.1 shows ∆Vdrag of the ground launch is bigger than that of the balloon launch by
the factor of 150, and ∆Vtotal of the ground launch is significantly bigger since ∆Vdrag is the major
source of ∆Vtotal. Consequently, it is obvious that the balloon launch has a very big advantage in
reducing ∆Vdrag, although the accuracy in the numerical values is not perfect since we use the
preliminary analysis on the week five.
Our final configurations of small, medium and big launch vehicle, whose payloads are 0.2 kg, 1
kg and 5 kg, for the balloon launch have ∆Vdrag of 6 m/s, 6 m/s and 4 m/s and require ∆Vtotal of
9,313 m/s, 9,379 m/s and 9,354 m/s respectively. These results validate that our preliminary
analysis on the week five are numerically close to our final results; therefore, we confidently
conclude that the balloon launch is better than the ground launch in terms of ∆Vtotal, which
exponentially affects the total cost of our launch vehicles.
Project Bellerophon 672
Author: Junichi Kanehara
References 1 Longuski, J.M. “AAE 508 Optimization in Aerospace Engineering Lectures,” Purdue University, West Lafayette, IN, January 2008.
Project Bel
A.6.2.2. From an
the θb̂ dir
ground a
the atmo
atmosphe
radial vel
launch st
decision.
In order
first stag
vertical p
of the fir
where a i
llerophon
2 Aircraft
aircraft laun
rection). Wi
and balloon l
osphere, eff
ere (defined
locity and en
teering laws
to achieve t
e, defined in
position in a
st stage.
is a coefficie
Launch
nch, the lau
ith the resul
launch, the i
ffectively m
d as an altitu
nter a circula
s and any tr
F
the trajectory
n Eq. (A.6.2
matter of se
ent determin
a =
Author
unch vehicle
ts from the t
ideal trajecto
minimizing l
ude of 90 km
ar orbit (see
rade studies
Fig. A.6.2.2.1.1(Am
y described
.2.2.1). Thi
econds. This
(tan 1−=ψ
ned by Eq. (A
ce t1 /)tan(ψ
r: Amanda Brid
’s initial ori
trade study c
ory for the a
losses due
m), the vehi
Fig. A.6.2.2
s that were
1: Ideal aircraftmanda Briden)
above, we i
s law pitche
s vertical po
)(at
A.6.2.2.2.2).
lbtoverticalim
den
ientation is p
comparing t
aircraft launc
to ΔVdrag.
cle must pit
2.1.1). Here
completed,
t trajectory.
implement a
es the launch
osition is then
parallel to th
the ΔVdrag lo
ch is to pitch
Then, afte
tch over in o
e, we discuss
which led t
a tangent ste
h vehicle from
n maintained
he ground (a
osses betwee
h up to get o
er departing
order to bur
s the final air
to a final d
ering law fo
m a horizon
d for the dur
(A.6.2.2.2.1
(A.6.2.2.2.2
673
along
en the
out of
g the
rn off
rcraft
design
or the
ntal to
ration
1)
2)
Project Bellerophon 674
Author: Amanda Briden
where e1ψ is defined as the steering angle at the end of the first stage and has a maximum value of
88ο. lbtoverticact lim is the amount of time it takes to reach e1ψ and is defined as 10 seconds. These
values are user defined and can be changed.
The second stage steering law is important, as it determines the amount of radial velocity
remaining as the payload enters orbit. For a circular orbit, no radial velocity should remain.
Significant time was spent finding the best sub-optimal steering law to burn off unwanted radial
velocity. We completed a trade study to select the final second stage steering law; the study is
detailed in the following paragraph.
We defined a successful steering law using the following criterion. First, the law had to be easy
to implement into the main trajectory code. Second, the law had to allow for an optimization
process that minimized the radial velocity at orbit insertion. We began by fitting third order (Fig.
A.6.2.2.2.2) and second order polynomials (Fig. A.6.2.2.2.3) to a steering law shape we thought
would minimize radial velocity. Notice that the shapes of steering laws depend on the burn time
of the second stage. As the burn time is longer, the change in orientation of the launch vehicle
with time is more gradual.
Fig. A.6.2.2.2.2: 2nd stage aircraft steering law – 3 degree polynomial.
(Amanda Briden)
Psi (rad) vs. t (s)Aircraft Launch - 2nd Stage Steering Law Variation with t_burn2
y = -0.0015x3 + 0.0488x2 - 0.4936x + 1.5184R2 = 1
-1
-0.5
0
0.5
1
1.5
2
0 20 40 60 80 100 120 140 160
tb2 (s)
psi (
rad)
tb2 = 20 s
tb2 = 30 s
tb2 = 40 s
tb2 = 50 s
tb2 = 60 s
tb2 = 70 s
tb2 = 80 s
tb2 = 90 s
tb2 = 100 s
tb2 = 110 s
tb2 = 120 s
tb2 = 130 s
tb2 = 140 s
Poly. (tb2 = 20 s)
Project Bel
Impleme
example,
be includ
design ite
It was als
law beca
To avoid
steering l
llerophon
ntation of e
, a look up ta
ded in the tra
eration.
so not clear h
ause it was se
d complexity
law sections
Fig. A.6.2
either type o
able of the c
ajectory cod
Table A
tb2 20 30 40 50
how we opti
et after the s
y and provide
s for the aircr
Author
.2.2.3: 2nd stag(Am
of polynomia
coefficients f
de, as the bu
A.6.2.2.2.1 Stee
ax2 0.0065 0.0029 0.0016 0.0010
imize this ste
econd stage
e a way to op
raft launch s
i ta +=ψ
r: Amanda Brid
ge aircraft steermanda Briden)
al into the t
for the polyn
urn time of th
ering Angle Co
bx -0.2313-0.1542-0.1156-0.0925
eering law.
burn time w
ptimize the s
second stage
ib+
den
ring law – quad
trajectory co
nomial (Tabl
he second st
oefficient Look
c 1.5184 1.5184 1.5184 1.5184
There was n
was known.
steering law
, defined by
dratic.
ode would b
le A.6.2.2.2.
tage varies w
k-up
no way to ch
w, we use thre
Eq. (A.6.2.2
be complex.
.1) would ne
with each ve
hange the ste
ee separate l
2.2.3).
(A.6.2.2.2.3
675
For
eed to
ehicle
eering
linear
3)
Project Bellerophon 676
Author: Amanda Briden
where i = 1,2, or 3 designates the linear section and a and b are coefficients that define the linear
lines connecting the segments ABCD.
In Fig. A.6.2.2.2.4, the red curve (segments ABCD) corresponds to the second stage aircraft
steering law. The simple steering law equation is easy to implement. The time span of each
section and the final orientation of the launch vehicle (ψe) can be varied by parameter input
changes as an optimization scheme.
Fig. A.6.2.2.2.4: 2nd stage aircraft steering law – three separate linear sections.
(Amanda Briden)
The first linear section begins at the same angle the first stage ended at (point A) and ends at
ψmid1 = 5 ο(point B). The range of this section is a user defined parameter and is a percentage of
the second stage burn time. For this example, 25% of the second stage burn time was the input
parameter.
The second linear section begins at point B and ends at ψ mid2 = 0ο (point C). The time in which
this must occur is not a variable parameter, but is defined as another 25% of the second stage
burn time.
Project Bellerophon 677
Author: Amanda Briden
The third and final linear section begins at point C and ends at ψ2e (point D). This occurs in the
remaining time of the second stage burn. ψ2e is a variable parameter and the selection of ψ2e can
change the slope of the final section. For this steering law, a look up table is not required and
two input parameters can always be used for optimization no matter what the length of the burn
time is for the second stage. All of the variable steering law parameters above are varied in the
aircraft steering law optimization routine.
We use a linear steering law for the third stage of the aircraft launch. It continues from the end
of the second stage, an example is shown as the green line in Fig. A.6.2.2.2.5. The variable
parameter for this section of the steering law is the orientation of the launch vehicle at the end of
the third stage. However, for the final design, this angle is not varied because the third stage of
the launch vehicle is spin stabilized.
Fig. A.6.2.2.2.5: 2nd stage aircraft steering law – 3rd stage steering law.
(Amanda Briden)
The aircraft launch was not selected because the aircraft steering law is not first derivative
continuous (C1), making it extremely difficult for the D&C group to follow without a significant
effort put toward fitting a complex spline to the law. This is an important lesson learned.
Communication between the Trajectory and D&C groups needs to be seamless from the start of
Project Bellerophon 678
Author: Amanda Briden
the project. D&C must be aware of every update to any stage’s steering law and be provided
sufficient time to accept or reject the law based on whether or not it can be followed easily.
Project Bellerophon 679
Author: Allen Guzik
A.6.2.2.3 Third Stage Steering Law Angle Trade Studies We perform many trade studies to obtain the correct steering law. Once selected, the steering
law needs the ending orientation of the vehicle at certain intervals to be defined. These angles
are defined for our launch configuration as the required orientation of the vehicle at the end each
stage during the launching trajectory.
The resulting orbit is very sensitive to the angles we choose. Also, for each launch, the initial
conditions vary significantly from vehicle to vehicle. Examples of some conditions that change
from vehicle to vehicle are GLOM, thrust for each stage, and burn times. The sensitivity of the
trajectory to the initial conditions proved to be very difficult to choose the correct steering angles
for each launch configuration.
Particularly, the final angle, denoted as Ψ3 is of great importance. Ψ3 is the angle that represents
the orientation of the vehicle at then end of the third stage. We also have found the Ψ3 angle is
used to burn off excess radial velocity making the final orbit more circular. A few trade studies
were done to better understand how changing the angle of Ψ3 affects the resulting orbit the
payload is inserted into.
The goal of the first of two trade studies done was to understand how to choose the angle for Ψ3
was to simply observe the trends, if any, this angle has on the resulting orbit. Finding the trends
were done by changing Ψ3 from +90º to – 90º and observing the resulting orbit parameter trends.
For this study the same launching configuration was used, and Ψ1 and Ψ2 were held constant. At
each variation of Ψ3 the following were recorded; radial velocity, periapsis, apoapsis,
eccentricity, ΔV drag, ΔV total, ΔV to circularize, energy of the resulting orbit, and the
maximum acceleration. Some very useful data and trends were observed from this study.
Figures A.6.2.2.3.1 through A.6.2.2.3.4 show plots of the most prevalent resulting data.
Project Bellerophon 680
Author: Allen Guzik
Figure A.6.2.2.3.1: Affect of changing Ψ3 on periapsis for a ground launch. (Allen Guzik)
Figure A.6.2.2.3.2: Affect of changing Ψ3 on apoapsis for a ground launch.
(Allen Guzik)
Project Bellerophon 681
Author: Allen Guzik
Figure A.6.2.2.3.3: Affect of changing Ψ3 on eccentricity for a ground launch. (Allen Guzik)
Figure A.6.2.2.3.4: Affect of changing Ψ3 on radial velocity for a ground launch. (Allen Guzik)
These figures show some expected and unexpected trends. For example, Fig. A.6.2.2.3.1 shows
decreasing Ψ3 caused the periapsis to decrease and the radial velocity to decrease. Unexpectedly,
the behavior was complex and showed unpredictable responses from one angle to the next.
The most important result of this study is the effect Ψ2 has on Ψ3. The study showed the
resulting orbit is only as good as the chosen Ψ2 angle. Also, on the whole, the most desirable
orbit. A circular orbit with a periapsis close to 300 km from the surface of the Earth), occurs
when Ψ3 equals Ψ2. The revelation of the best orbit is when Ψ3 equals Ψ2 is particularly
Project Bellerophon 682
Author: Allen Guzik
important because it supports using a spin stabilized third stage. Spin stabilizing the final stage
is desired because it reduces the weight and cost of the vehicle by not requiring a control system
to control the rocket motor.
The second trade study was done to observe the effect of error in the actual flight’s trajectory to
the nominal case. The D&C group needed to know the allowable range of angles that the error
in Ψ3 can be and still have the payload be inserted into an acceptable orbit. For this study the
same balloon launch configuration was used with only changing the Ψ3 angle. Ψ3 was changed
1º at a time off of the nominal angle both positively and negatively until the propagation of the
orbit hit the surface of the Earth. The periapsis, apoapsis, and eccentricity were recorded for
each Ψ3 angle change. The resulting trends are plotted and shown in Fig. A.6.2.2.3.5 through
A.6.2.2.3.10.
Figure A.6.2.2.3.5: Eccentricity percent error from changing Ψ3. (Allen Guzik)
0%
5%
10%
15%
20%
-24 -20 -16 -12 -8 -4 0 4
Psi3 Angle Change from the Nominal [degree]
Perc
ent E
rror
Project Bellerophon 683
Author: Allen Guzik
Figure A.6.2.2.3.6: Eccentricity sensitivity from changing Ψ3. (Allen Guzik)
Figure A.6.2.2.3.7: Apoapsis percent error from changing Ψ3. (Allen Guzik)
0.30
0.310.32
0.33
0.34
0.35
0.36
0.37
0.38
0.39
0.40
0.41
0.42
0.43
-24 -20 -16 -12 -8 -4 0 4
Psi3 Angle Change from the Nominal [degree]
Ecce
ntric
ity
Eccentricity
Nominal Value
0%
5%
10%
15%
20%
-24 -20 -16 -12 -8 -4 0 4
Psi3 Angle Change from the Nominal [degree]
Perc
ent E
rror
Project Bellerophon 684
Author: Allen Guzik
Figure A.6.2.2.3.8: Apoapsis sensitivity from changing Ψ3. (Allen Guzik)
Figure A.6.2.2.3.9: Periapsis percent error from changing Ψ3. (Allen Guzik)
6,000
6,500
7,000
7,500
8,000
8,500
9,000
-24 -20 -16 -12 -8 -4 0 4
Psi3 Angle Change from the Nominal [degree]
Apo
gee
[km
]
ApogeeNominal Value
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
110%
-24 -20 -16 -12 -8 -4 0 4
Psi3 Angle Change from the Nominal [degree]
Perc
ent E
rror
Project Bellerophon 685
Author: Allen Guzik
Figure A.6.2.2.3.10: Periapsis sensitivity from changing Ψ3. (Allen Guzik)
These figures show that changing the Ψ3 angle off the nominal value greatly influences the
periapsis. Figure A.6.2.2.3.9 shows that for every 1º change the percent error of the resulting
change in periapsis is about 10%. Also shown is the orbit is much more sensitive to angles that
have negative error. Figure A.6.2.2.3.10 shows after an error of less than -6º, the vehicle will
have a resulting orbit that hits the surface of the Earth. While, for positive error angles, the error
can be as much as +21º off of the nominal before the vehicle hits the Earth. In general, for an
acceptable orbit the error can be no less than -1º and no more than +17º off of the nominal angle.
A large allowable positive error shows if error is a problem, to guarantee an acceptable orbit the
nominal case may need to be chosen to be well above the required 300km periapsis requirement.
0
50
100
150
200
250
300
350
400
450
500
550
-24 -20 -16 -12 -8 -4 0 4Psi3 Angle Change from the Nominal [degree]
Perig
ee [k
m]
PerigeeNominal ValueRequested Orbit
Project Bellerophon 686
Author: Daniel Chua
A.6.2.3 Optimization Like much of the code developed during the course of this project, our optimization algorithm
underwent multiple revisions and several complete rewrites. We begin with the assumption that
the launch vehicle is a typical three-stage, ground-launched vehicle. A linear-tangent steering
law prescribes the steering angle of the launch vehicle at any given moment:
Ψ = tan−1(at + b) (A.6.2.3.1)
where Ψ is the steering angle, t is the time elapsed since the last engine burnout in seconds, and
a and b are constants for each stage.
The optimization problem is then: find a and b for each stage such that the ΔV required to meet
the mission specifications is minimized. To simplify the process, we define three burnout
steering angles - 1Ψ , 2Ψ and 3Ψ - which we manipulate to obtain the best trajectory. The
values of a and b can then be found by solving the equations:
)1(tan −Ψ= nnb (A.6.2.3.2)
( )nbo
nnn t
ba
,
tan −Ψ= (A.6.2.3.3)
where n denotes the stage number and tbo is the burnout time in seconds. Note that for stage
one, )1( −Ψ n would actually be the initial launch angle.
In our first attempt at creating an optimization routine, we specified a series of values of 1Ψ and
constant best-guess values of 2Ψ and 3Ψ . We then simulated the trajectory that would result
from each combination of steering angles. For each simulated trajectory, we calculated the speed
of the vehicle at the third-stage burnout (Vbo) as follows:
( )23
23
23
23 φθ &&& ++= rrVbo (A.6.2.3.1)
Project Bellerophon 687
Author: Daniel Chua
where 3r& , 3r , 3θ& and 3θ& are the radial speed of the vehicle, the radial displacement from the
centre of the earth at third-stage burnout, the rate of change of longitude and the rate of change
of latitude at third-stage burnout respectively.
From the third-stage burnout speed, we found the energy of the trajectory:
321
rVenergy bo
μ−= (A.6.2.3.2)
where μ is the standard gravitational parameter of Earth, equal to 3.986×1014 m3/s2.
We then compared this value of energy to the known amount of required energy (energyreq ) for a
circular orbit around a spherical Earth:
energyreq = −μ
2 hreq + REarth( ) (A.6.2.3.3)
where hreq is the required orbit altitude as defined in the mission specifications, equal to 300 km
and REarth is the radius of the Earth, approximately 6376 km.
For each simulated trajectory, if the energy calculated with Eq. (A.6.2.3.2) was less than zero
and 3r was greater than or equal to hreq + REarth( ), we classified the trajectory as orbital. If the
energy calculated was greater than zero, we classified the trajectory as hyperbolic. Lastly, if
neither of the above conditions were met, we classified the trajectory as sub-orbital.
Out of the set of orbital trajectories, we chose the best case as the one that gave the lowest ΔV.
Unfortunately, this first attempt at optimization was mostly unsuccessful. At times, the
simulation would plot out a perfectly viable trajectory but the optimization routine (implemented
Project Bellerophon 688
Author: Daniel Chua
in MATLAB) would consider it hyperbolic. On other occasions, where the simulation clearly
showed that the trajectory was hyperbolic, the optimization routine would pronounce the
trajectory sub-orbital. We were unable to determine if this was a result of a logical or syntactical
error in our code. Furthermore, this version required the user to specify the range of values for
1Ψ , and to make single educated guesses at 2Ψ and 3Ψ .
Since the major problems with our first optimization routine were the classification of
trajectories and the recognition of feasible trajectories, we returned to the mission specifications
and decided on a ranked list of three conditions that a simulated trajectory must pass to be
considered feasible. These three conditions now make up the core of our current optimization
routine:
1. At no time can the magnitude of the vehicle’s position vector (with the center of the Earth
as the origin) fall below the radius of the Earth. We considered this the most important
condition of a trajectory. Many of the early iterations using the first version of the
optimization routine showed that our simulated rocket disappeared beneath the surface of
the Earth shortly after liftoff.
2. The perigee of the trajectory must be at least 300 km above the surface of the Earth. This
condition is expressed in the mission specifications.
3. The eccentricity of the orbit must not be greater than 0.5. This condition allows us to
easily exclude hyperbolic or highly eccentric trajectories.
The next stage in developing the optimization routine was to allow 2Ψ and 3Ψ to be varied. In
this version, the user specified upper and lower bounds for all three angles. Again, we simulated
the trajectory for every possible combination of angles. We tested each resulting trajectory
against the aforementioned conditions. We then chose the feasible orbit with the lowest ΔV as
the best case.
Project Bellerophon 689
Author: Daniel Chua
Using this approach, we immediately ran into another problem. We were effectively searching
for the optimal solution by brute force. To run through every possible combination of angles at a
precision of one degree would have taken us an excessive amount of time. Using the computers
available to us, each simulation took approximately 1 minute to run. Trying all possible
combinations would have taken more than 11 years.
We impose two conditions on the angles that greatly reduce the amount of time that the entire
optimization routine takes to run:
1. The third stage is spin-stabilized. This means that 2Ψ and 3Ψ are always equal, which
effectively limits the number of angles we have to manipulate to two. In fact, since we
were still using a precision of one degree throughout the whole range of angles, this
reduced the run time by up to a factor of 181. Our computation time thus fell from 11
years to about 3 weeks.
2. 2Ψ is always less than or equal to 1Ψ . By limiting the chance that the launch vehicle
pitches back up during the second stage burn, the computation time was further reduced
to about 1.5 weeks.
At this point, we started making use of MATLAB’s parallel processing functionality. The
computers available to us in the lab have dual-core processors, and some of the AAE department
compute servers have quad-core processors. However, most of the functionality in MATLAB
runs on a single core. Since we are trying to solve the problem by brute force using the results of
many independent simulations, distributing the load to both cores can significantly reduce our
computational time. By doing so, we nearly quartered the time to about 3 days.
To quickly obtain preliminary results for the other groups, we were using guessed ranges of
angles and low tolerances followed by a process of iteratively homing-in on a rough result. The
next logical step was therefore to implement a way to do this automatically and systematically,
bringing us to our final optimization routine.
Project Bellerophon 690
Author: Daniel Chua
We start with the largest possible range of 1Ψ and 2Ψ - from negative 90 degrees to positive 90
degrees – at intervals of 30 degrees. We then simulate the trajectories that result from each
combination of angles and choose the combination that gives the lowest eccentricity. We use
eccentricity instead of ΔV due to reports from the D&C group that the steering in our preliminary
results was too aggressive to control. Next, we examine the range centered on the angles making
up the best combination of the previous iteration. This time, we use intervals of 15 degrees. We
repeat this process with intervals of 8˚, 4˚, 2˚ and 1˚. After the final iteration (using intervals of
1˚), we either report the best-case angles (correct to 1˚), or that all simulations failed the above
criteria for feasible orbits.
If there are any feasible trajectories, we re-simulate the best cases and pass the details of the
trajectory to D&C for control. The final optimization routine takes approximately 15 minutes to
run. It should also be mentioned at this point that the exact same optimization routine is used for
the balloon launch since the steering law remains unchanged.
Project Bellerophon 691
Author: Daniel Chua
The best-case angles we obtain using the above routine are tabulated below:
Table A.6.2.3.1 Optimized Angles (0.2kg payload)
Variable Value Units 1Ψ 42 deg
2Ψ -25 deg
3Ψ -25 deg
Angles are the nose pointing based on the horizon
Table A.6.2.3.2 Optimized Angles (1kg payload)
Variable Value Units 1Ψ 30 deg
2Ψ -10 deg
3Ψ -10 deg
Angles are the nose pointing based on the horizon
Table A.6.2.3.3 Optimized Angles (5kg payload)
Variable Value Units 1Ψ 24 deg
2Ψ -32 deg
3Ψ -32 deg
Angles are the nose pointing based on the horizon
Project Bellerophon 692
Author: Scott Breitengross
A.6.2.4 ΔV Analysis The ΔV calculations are essential to the determination of the trajectory, indexing of flight path
characteristics, and fuel mass determination. Due to the vital nature of these calculations, the
equations for each applicable ΔV loss was determined very early in the design process and
implemented within the trajectory codes. The equations used to determine each ΔV calculation
are included below:1
The velocity required to maintain lower Earth orbit is calculated using Eq. (A.6.2.4.1)
pleo R
V μ=Δ (A.6.2.4.1)
μ is 3.986 x 1014 m3/s2 for Earth and Rp is the radius of the Earth plus the height of the periapsis
(from Earth’s surface). Rp is held constant for our simulation.
The velocity required to overcome the effect of drag occurring within the Earth’s atmosphere are
calculated using Eq. (A.6.2.4.2).
dttmtDV
bt
drag ∫=Δ0 )(
)( (A.6.2.4.2)
where D(t) is the drag experienced over every time step, m(t) is the mass of the rocket for every
time step, and tb is the total burn time. It is noted that once the rocket leaves the atmosphere the
D(t) term goes to zero and thus no more drag is accumulated.
The velocity required to overcome gravity losses experienced during flight is calculated using Eq
(A.6.2.4.3) below.
∫=Δ dtttgVgrav ))(sin(*)( γ (A.6.2.4.3)
Project Bellerophon 693
Author: Scott Breitengross
where g(t) is the gravity force experienced by the rocket over the course of the flight for every
time step, and γ(t) is the flight path angle of the rocket from horizontal over the course of the
flight for every time step.
The ΔV earned from launching the spacecraft a certain location on the Earth was calculated
using Eq. (A.6.2.4.4).
d
e
assistearth t
RV
)180
cos(2 φππ=Δ (A.6.2.4.4)
where Re is the radius of the Earth [m] , φ is the latitude of the launch location and td is the total
time in a day in seconds. For Earth, td is 86400 seconds and Re is 6,376,000 meters.
The trajectory group is also interested in determining whether the ΔV from the trajectory code is
matching the ΔV distribution from the MAT codes. In order to determine this, a comparison is
made between the two codes using Eq. (A.6.2.4.5).
dttmtTVthrust ∫=Δ)()( (A.6.2.4.5)
where T(t) is the thrust experienced by the rocket over the entire length of the flight for every
time step. This equation allows the trajectory group to compare the ΔV distribution amongst the
stages from the trajectory codes and the MAT codes.
The previous equations were combined from each stage and then the final ΔV determination is
calculated using Eq. (A.6.2.4.6).
assistearthgravdragleototal VVVVV Δ−Δ+Δ+Δ=Δ (A.6.2.4.6)
This equation allows the team to make a determination about which trajectory is the most ideal
and to give the propulsion group an estimation on the required ΔV consumption and thus the
required fuel needed to reach the trajectory and lower Earth orbit.
Project Bellerophon 694
Author: Scott Breitengross
It is important to note that the values for ΔVthrust, ΔVdrag, and ΔVgrav are calculated using ode45 in
Matlab. Since the ode codes are used separate from the launch vehicle determination, it is
required that the ΔV requirements for each stage be separated until the entire code is run. Once
this is complete the outputs from the separate stages are combined for a total ΔV determination
for the entire flight path.
There is also consideration paid to the fact that while a trajectory may exist, the characteristics of
that trajectory are not ideal and needs to be corrected while in orbit. This consideration prompts
a calculation of the ΔV required to circularize the orbit. This ΔV is calculated using Eq.
(A.6.2.4.7).
))cos(2()( 222 γleocircleocirccirc VVVVV −+=Δ (A.6.2.4.7)
where Vcirc is the velocity required for a circular orbit based on the perioapsis of the obtained
orbit, Vleo is the velocity of the obtained orbit, and γ is the flight path angle.
The ΔV calculations are then used as a comparison tool for the optimization of the trajectory.
There is a correlation between required ΔV and cost of the rocket. This is based on the fuel cost
and the additional size required to carry excess amounts of fuel. In the initial version of the
optimization code, ΔV was the determining factor in choosing the applicable launch parameters,
steering coefficients and angles, and the initial launch angle based on this determination.Later
reviews of the trajectory revealed that there was significant change in the ΔV due to drag when
the rocket was launched from an altitude instead of from the ground.
Project Bellerophon 695
Author: Scott Breitengross
References 1 Humble, Ronald W., Henry, Gary N., Larson, Wiley J., Space Propulsion Analysis and Design. The McGraw-Hill
Companies Inc. St. Louis, Missouri, 1995.
Project Bellerophon 696
Author: Junichi Kanehara
A.6.2.5 Trajectory Code
A.6.2.5.1 Main Script The main script calls all the necessary scripts and functions for getting inputs, calculations,
outputting the numerical results, and producing plots for one particular set of inputs. We
intentionally write the main script so that it represents the entire trajectory code as the “table of
contents”. The users should be able to follow the outline of what the entire trajectory code does
by taking a look at the main script while the details of the actual computations are located in each
script or function that the main script calls.
Another important purpose of the main script is to keep track of the log. The entire trajectory
code consists of approximately 50 files, counting all the input files, scripts and functions that are
necessary to run the entire trajectory code; therefore, it is essential to keep track of who is
responsible for what in which file as we develop the trajectory code. We place the log section as
comment lines at the beginning of the main script, and the log section consists of 63 % of the
script in the final version.
Project Bellerophon 697
Author: Junichi Kanehara
A.6.2.5.2 Three-dimensional Plots Plotting the three-dimensional plots that represent the Earth, the launch site and the trajectory of
the rocket is the very final job of the trajectory code. In the developing phase of the project, we
simply need the three-dimensional plots to judge if the test case gets into an acceptable orbit or
not; however, the three-dimensional plots are the final “products” from the trajectory group, so
they should be realistic and somewhat artistic as well at the end of the project since we have the
final presentation in public.
The mapping toolbox of MATLAB makes it possible to produce a globe. We also implement the
orientation of the Sun in the plots. In order to produce three-dimensional plots with those
features, the following MATLAB commands are convenient: sphere, surf, plot3, rotate, view,
colormap and light.
By using light command, we are able to specify the position of the light source. The distance
between the Sun and the Earth is 1 AU, which is approximately 150 million km, and the axial tilt
of the Earth is 23.44°, or 0.409 radians.
Z rθ≈ (A.6.2.5.2.1)
where Z is the vertical position from X-Y plane, r is the distance between the Sun, and the
Earth and θ is the axial tilt of the Earth.
In our Earth-centered inertial Cartesian coordinating system, the Sun is 61 million [km] above
the plane of the equator of the Earth in summer of the northern hemisphere of the Earth,
calculating by the equation (A.6.2.5.2.1), which approximates the vertical length by the arc
length; we assume it is a good approximation for a technically non-serious calculation.
Once we are able to specify the position of the Sun by light command, it is not difficult to make
it possible to specify the date and time, as the Earth rotates once every day and revolves around
the Sun once every year; we simply use trigonometric functions. The only part that we need to
Project Bellerophon 698
Author: Junichi Kanehara
pay attention to is to make sure to specify the time in UTC, which corresponds to the longitude
of 0°; that is why the time in Fig. A.6.2.5.2.1 is specified in UTC.
Fig. A.6.2.5.2.1: Orbit Trajectory at June Solstice, viewing from the latitude of 20° N.
(Junichi Kanehara)
Fig. A.6.2.5.2.2: Orbit Trajectory at December Solstice, viewing from the latitude of 20° S.
(Junichi Kanehara)
Project Bellerophon 699
Author: Junichi Kanehara
In version 3.2 of AAE450_Trajectory_Plots, we are able to specify the time in our local time
since it automatically computes UTC based on our local time and time zone. We need an
attentive observation of the date and time for this additional feature; for example, 10p.m. on
December 31st, or the day 365, in New York (Eastern Standard Time) is 3a.m. on January 1st, or
the day one, of UTC.
This way, we are able to produce realistic three-dimensional plots that feature the globe, the
orientation of the Sun that is capable of representing the specified date and time, the location of
the launch site, and the trajectory of the rocket as shown in Fig. A.6.2.5.2.1 and Fig. A.6.2.5.2.2.
Project Bellerophon 700
Author: Junichi Kanehara
A.6.2.5.3 Validation of Equations of Motion It is essential to validate our trajectory code since not only the trajectory group but also other
groups use the outputs of our trajectory code. One method of validating our equations of motion
and the numerical integrations is to compare ∆Vthrust of historical data to the ∆Vthrust of our code.
∆Vthrust is defined in Eq. (A.6.2.5.3.1):
0
( )( )
burnt
thrustt
T tV dtm t
Δ = ∫ (A.6.2.5.3.1)
where 0t is the initial time, burnt is the burn time, ( )T t is the thrust as a function of time, and
( )m t is the mass of the launch vehicle as a function of time.
If we set the drag to be 0 N throughout our flight, in other words, if we neglect the atmosphere of
the Earth, ∆Vthrust equals to ∆Vpropulsion, which is the ∆V that the propulsion system produces. We
compute ∆Vpropulsion by using our trajectory and compare to the historical data of Ariane 4, Saturn
V and Pegasus, which are 10,120 m/s, 13,470 m/s and 8,360 m/s respectively1. Running our
trajectory codes with the corresponding inputs, our numerical values matched with the historical
data in the accuracy of 3 to 5 significant figures; therefore, we conclude that our equations of
motion are correct and that we correctly numerically integrate the equations.
References 1 Tsohas, John. Historical data of Ariane 4, Saturn V and Pegasus interview. February 2008.
Project Bellerophon 701
Author: Amanda Briden
A.6.2.5.4 Ballistic Coefficient A vehicle’s ballistic coefficient1 is a “measure of its ability to overcome air resistance in flight”2.
The coefficient is given as Eq. (A.6.2.5.4.1).
SCmCD
ballistic = (A.6.2.5.4.1)
where m is the current mass, DC is the coefficient of drag (calculated by the Aerothermal group’s
solve_cd.m), and S is the reference area (current stage diameter). A larger Cballistic means that a
vehicle is massive enough to overcome air resistance during ascent. Unlike smaller launch
vehicles, the Saturn V, Ariane 4, and Pegasus vehicles are not as susceptible to the effects of
wind and are expected to have much larger Cballistic than our vehicle.
As another way of validating the trajectory model, we perform an analysis comparing the
ballistic coefficient of our launch vehicle to the much larger vehicles listed above. Our trajectory
code is run with our ground, balloon, or aircraft steering law. Table A.6.2.5.4.1 provides the
steering angles at the end of each stage for each launch vehicle run.
Table A.6.2.5.4.1 Key Performance and Steering Law Characteristics
Vehicle 1m& (kg/s) tb1 (s) e1ψ (ο) e2ψ (ο) e3ψ (ο) Saturn V 13,360.24 161.0 87.0 40.0 0.0 Ariane4 01,112.19 205.0 87.0 40.0 0.0
Pegasus 00206.14 073.0 87.0 -25.0 -30.0 SB-HA-DA-DAa 00006.85 196.5 -14.0 -20.0 -20.0 SG-SA-DT-DTb 00014.21 182.4 0.0 -10.0 -10.0 LG-SA-DT-DTc 0018.391 171.2 34.0 -26.0 -26.0
a. 200 g balloon: 1st stage hybrid aluminum, 2nd stage solid aluminum, 3rd stage solid aluminum b. 200 g ground: 1st stage storable aluminum, 2nd stage solid titanium, 3rd stage solid titanium c. 5 kg ground: 1st stage storable aluminum, 2nd stage solid titanium, 3rd stage solid titanium
Project Bellerophon 702
Author: Amanda Briden
For each case, the launch vehicles inputs (i.e. tb, m, T etc.) are changed and come from published
data provided by John Tsohas3. The goal of the analysis is to see trends in the change in ballistic
coefficient and is not meant to capture the exact value for every vehicle.
The ballistic coefficient variation with time for the larger launch vehicles is plotted in Fig.
A.6.2.5.4.1. The coefficient is set to zero after the launch vehicle is out of the atmosphere.
Trends match expectations as the Saturn V has the largest ballistic coefficient initially, followed
by the Ariane 4 and Pegasus. The Ariane 4 is larger than the Saturn V after 60 s. This is
explained by Saturn V’s first stage mass flow rate. It is much larger than the Ariane 4 and has a
burn time that is smaller (refer to
Table A.6.2.5.4.1). The large dips in the plots occur when the vehicle enters the transonic
regime (M = 1) and DC spikes causing a sudden decrease in Cballistic.
Fig. A.6.2.5.4.1: Ballistic coefficient variation with time for larger launch vehicles (i.e. Saturn V, Ariane 4,
Pegasus). (Amanda Briden)
Project Bellerophon 703
Author: Amanda Briden
In comparison to the Saturn V, our large ground launch vehicle’s ballistic coefficient is
approximately 16 times smaller. All of our launch vehicles fit in the lower left hand corner of
Fig. A.6.2.5.4.1. A blown up view of that region is displayed in Fig. A.6.2.5.4.2. Within our
region, the trends remain consistent as the bigger launch vehicle still has the largest ballistic
coefficient.
Fig. A.6.2.5.4.2: Ballistic coefficient variation with time for our launch vehicles (i.e. SB-HA-DA-DA, SG-SA-DT-
DT, LG-SA-DT-DT). (Amanda Briden)
The trends match our expectations and provide a boost of confidence in the modeling of drag in
the trajectory code.
References 1Longuski, Professor James. “AAE 450 Spacecraft Design Lecture #6 Spring 2008.” Purdue University, West Lafayette, IN. 2 “Ballistic coefficient.” Wikipedia [online], January 18, 2008, URL: http://en.wikipedia.org/wiki/Ballistic_coefficient [cited 27 February 2008]. 3 Tsohas, John. Trajectory Input Values for Historical Launch Vehicles interview. February 2008.
Project Bellerophon 704
Author: Elizabeth Harkness
A.6.3 Closing Comments The success of the trajectory design process hinges on the collaborative efforts of the entire
trajectory group, as well as the entire design team. There are many things that we think went well
in the trajectory design process, as well as many things that we would do differently. In
conclusion to the trajectory design section of the appendix, we discuss what we did well, our
lessons learned and recommendations we have on future development of the trajectory design.
With the development of the multi-processor distributing capabilities, we were able to analyze
more steering angles than we would have been able to manually. This was a good improvement
and we recommend that it be used for any large optimization schemes. Another good choice was
the use of a spin stabilized third stage. This greatly reduced the time needed to optimize the
steering angles, since it reduced the number of angles varied from three to two.
Another aspect of our design on which we are proud of and are glad we implemented, was
commenting and cataloging our code. All versions of our code where logged by version number
and each new revision was accompanied by a description of the changes that were made from the
previous version. Additionally, all of the different versions were compiled and organized online
by one person (Junichi Kanehara). This system made it very easy for the entire trajectory group,
as well as anyone else on the design team, to access and understand the progression and use of
our codes.
With all of the things that went well in the trajectory design, there are also many things that we
would do differently. When it came to interfacing with the D&C group to control the launch
vehicle trajectory, we found that the optimized nominal trajectory found by the trajectory group
was too optimistic for effective control by D&C. If faced with this problem again, we would
make sure to work closer with D&C from the beginning of the steering law development phase,
instead of waiting until the design was complete.
We would also spend more time on refining the steering law for all launch types. A lot of time
was spent on the aircraft steering law, while not as much time was spent on the steering law for
the ground and balloon launch. This led to some difficulty in comparing the ΔV and cost of the
Project Bellerophon 705
Author: Elizabeth Harkness
balloon and aircraft launches. Although the aircraft steering law was more optimized, it was
harder for D&C to control.
The benchmarking and validation of our code were difficult, since steering laws and trajectory
optimization processes are proprietary information. However, we feel that we should have started
with a simplified two dimensional model of the trajectory before attempting to add in the
steering laws and degrees of freedom. This would have made it easier in the end for us to
benchmark our code and prove that our programs were modeled with the appropriate physics. On
that same line, we should have worked more with the structures and propulsion groups to get
more accurate input data earlier, so we can benchmark our code sooner. This would allow us to
work more closely with the D&C group, so that we can make sure that the trajectory and the
D&C models of the system work together satisfactorily, before the final design phase of the
project.
Due to the limited time we had to work on the project, there are a few things that we left out of
our analysis, which should be considered in future studies. We did not include any delay time
between the separation of stages. This is not accurate, since the next stage cannot be fired at the
same instant that the previous stage is jettisoned. Throttling the engine was also not considered
as a solution to avoid maximum dynamic pressure. To solve these issues, more collaboration
with the propulsion group would be needed to model the thrust profile more accurately.
More work also needs to be done on integrating the wind model into the dynamic and force
model of the launch vehicle. Because we ultimately decided to use the balloon launch and there
is not wind at the launch altitude, the trajectory group did not finish integrating the wind model.
If future studies were to use the ground or aircraft launch type, the wind model would need to be
implemented, because of greater weather variations at lower altitudes and its effects on the angle
of attack of the launch vehicle.
In all, this project taught us many things about working in teams, both small and large, and the
development of complex computer simulations. We understand the trajectory design process
better and the many different aspects of designing an optimal (or sub-optimal) trajectory. We
Project Bellerophon 706
Author: Elizabeth Harkness
learned that the ability to split the calculations between as many computer processors as possible
made optimization easier and that keeping good version logs and commenting on changes in
code made finding mistakes and transitioning to precious versions easier. We also learned that
more communication earlier in the project with the D&C, propulsion and structures groups is
essential to a smooth compilation at the end of the project. If we had more time to work on this
project, we would write a simpler model of the trajectory and validated it before moving on to
more complicated models. We would work with D&C to optimize the steering law further. We
would integrate the wind model into the code, so that the effects of angle of attack can be
accounted for when launching below 30,000 m and we would further develop the thrust profile
with the propulsion group to take into account stage separation and engine throttling.
Project Bellerophon 707
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
A.6.4 User’s Guide to Running the Trajectory Code Compiled and Edited by Elizabeth Harkness The trajectory code is a conglomeration of 27 MATLAB scripts and functions. The following
document is meant to be a guide to anyone wishing to use the trajectory code. Each script or
function in the trajectory code folder is briefly described here, with a listing of inputs needed and
outputs generated. The first section, AAE450_Trajectory_run(_distribute).m, describes how to
run the overall code, while the rest of the sections are more detailed descriptions of the separate
components.
Index AAE450_Trajectory_run(_distribute).m E. Harkness page 708 AAE450_Trajectory_Main.m J. Kanehara page 716 AAE450_Trajectory_Get_Inputs.m J. Kanehara page 717 AAE450_run_traj_Optimization_GB.m (AAE450_run_traj_Optimization_AC.m)
D. Chua page 718
AAE450_Trajectory_D2MP.m D. Chua page 719 AAE450_Trajectory_Calculations.m J. Kanehara page 720 AAE450_Trajectory_ODE.m J. Kanehara page 721 AAE450_Trajectory_ODE_AC_1st.m J. Kanehara page 723 AAE450_Trajectory_ODE_AC_2nd.m J. Kanehara page 725 AAE450_Trajectory_ODE_AC_linear.m J. Kanehara page 727 AAE450_Trajectory_ODE_steer.m J. Kanehara page 729 AAE450_Trajectory_ODE_coast.m J. Kanehara page 731 AAE450_Wind_Model.m K. Donahue page 733 atmosphere4.m A. Guzik page 734 solve_cd.m B. Ferris page 735 speedofsound.m B. Ferris page 736 thrustprofile.m B. Ferris page 737 AAE450_Trajectory_GSAC.m A. Briden page 738 AAE450_Trajectory_GSAC_2STO.m A. Briden page 739 AAE450_Trajectory_GSAC_Aircraft_2_3linear_sections.m A. Briden page 740 AAE450_Trajectory_GSAC_Aircraft_3.m A. Briden page 742 Delta_V.m S. Breitengross page 744 AAE450_orbit_param.m A. Guzik page 745 AAE450_Trajectory_outputs.m J. Kanehara page 746 AAE450_Trajectory_Plots.m J. Kanehara page 747 AAE450_Trajectory_Body2Inertial.m J. Kanehara page 768 Code Flowchart: Run Once K. Donahue page 749 Code Flowchart: Optimize S. Breitengross page 752
Project Bellerophon 708
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
AAE450_Trajectory_run(_distribute).m Written by Elizabeth Harkness Revision 1.4 – 18 February 2008 Description:
The function AAE450_Trajectory_run.m interfaces between the output of the structures and
propulsion codes and the input of the trajectory code while the function
AAE450_Trajectory_run_distribute.m interfaces between the output of the structures and
propulsion codes and the input of the trajectory code which uses AAE450_Trajectory_D2MP.m
or AAE450_Trajectory_D2MP_ac.m to optimize steering angles (for ground/balloon or aircraft
respectively). This document describes how AAE450_Trajectory_run.m and
AAE450_Trajectory_run_distribute.m function, the required inputs and the expected outputs.
Input Section: To get the inputs from the propulsion/structures code, the main_loop.m (MAT) code needs to be
run with the following call line: [ID,Trajectory_Input]= main_loop Propulsion/Structures Inputs: To make the input file for the AAE450_Trajectory_Main.m code, AAE450_Trajectory_run.m and AAE450_Trajectory_run_distribute.m need to be called with the call line: AAE450_Trajectory_run(ID,Trajectory_Input)
or AAE450_Trajectory_run_distribute(ID,Trajectory_Input)
Project Bellerophon 709
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
All of the variables that are passed into the function from the propulsion/structures codes are
described below:
Variable Name Description
ID Run Identifier. This is the code for each case being run. E.g. ‘XX-XX-XX’
type If the case is running an air launch or ground launch. E.g. Ground: 1, Balloon: 2, Aircraft: 3.
N Number of stages. E.g 1, 2, 3payload_mass Mass of Payload [kg] E.g. 0.2, 1, 5m1 Mass of the 1st Stage [kg] m2 Mass of the 2nd Stage [kg]m3 Mass of the 3rd Stage [kg] T1 Average Thrust of first stage. [N] T2 Average Thrust of second stage. [N]T3 Average Thrust of third stage. [N] t_vertical Time of vertical flight [s]t_burn_1 First stage burn time. [s] t_burn_2 Second stage burn time. [s] t_burn_3 Third stage burn time. [s] m_dot_1 Mass flow rate of 1st Stage. [kg/s] m_dot_2 Mass flow rate of 2nd Stage. [kg/s] m_dot_3 Mass flow rate of 3rd Stage. [kg/s] diam_1 Diameter of first stage. [m] diam_2 Diameter of second stage. [m] diam_3 Diameter of third stage. [m] diam_4 Diameter of fourth (payload) stage. [m] Pe_1 Exit pressure of 1st stage engine. [Pa] Pe_2 Exit pressure of 2nd stage engine. [Pa] Pe_3 Exit pressure of 3rd stage engine. [Pa] Ae_1 Exit area of 1st stage engine. [m^2] Ae_2 Exit area of 2nd stage engine. [m^2] Ae_3 Exit area of 3rd stage engine. [m^2]
Project Bellerophon 710
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
User Inputs: AAE450_Trajectory_run.m
For Ground and Balloon Launch
After the propulsion/structures data has been loaded, the function will then prompt the user to
input the steering angles:
Variable Name Description psi1_0 Angle at the end of 1st stage vertical [deg] psi1_1 Starting angle for end of first stage variation [deg] psi1_2 Final angle for end of first stage variation [deg] psi_increment Number of increments between psi1_1 and psi1_2 psi2 Angle at the end of 2nd stage [deg] psi3 Angle at the end of 3rd stage [deg]
Note: To run only one steering angle, make psi1_1 equal to psi1_2 and set psi_increment to one.
E.g. psi1_1 = 10, psi1_2 = 10, psi_increment = 1.
For Aircraft Launch After the propulsion/structures data has been loaded, the function will then prompt the user to
input the steering angles:
Variable Name Description angle_tclimb Steering angle at the end of climb [deg] tb2sec1_percent_tb2 Percent of first steering law for stage two [s] psi2 Angle at the end of 2nd stage [deg] psi3 Angle at the end of 3rd stage [deg]
AAE450_Trajectory_run_distribute.m
For All Launch Types
There are no user generated inputs for AAE450_Trajectory_run_distribute.m, the steering angles
are all varied by the program AAE450_Trajectory_D2MP.m (or
AAE450_Trajectory_D2MP_ac.m for an aircraft launch).
Internal Inputs:
The following inputs are defined internally in AAE450_Trajectory_run.m and
AAE450_Trajectory_run_distribute.m. These values should not need altering by the casual user
(if ever). They include all initial conditions (these are set to vary with the type of launch), as well
as some placeholder variables (labeled 4) for the orbit propagation stage.
Project Bellerophon 711
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
Variable Name Description h_i Initial altitude [m]psi1_0 ***Initial launch angle [deg] r_dot_i_1 Initial radial velocity [m/s]theta_dot_i_1 Initial tangential velocity [rad/s] launch_lat Launch latitude [deg] launch_long Launch longitude [deg] phi_dot_i_1 Initial phi velocity [rad/sec] b_1 Coefficient of angle at the end of 1st vertical stage. R_Earth Radius of the Earth [m] t_vertical Time of vertical flight to clear launch tower. [sec]
*** Note: For AAE450_Trajectory_run_distribute.m only.
The values for these variables are shown below: %% User non-variable inputs. R_Earth = 6376*1000; launch_lat = 28; %[deg] launch_long = -80; t_vertical = 10; %[sec] (psi1_0 = 88;) ... ... % Set initial conditions for different launches if type == 1 % Ground h_i = 0; r_i_1=R_Earth+h_i; % [m] r_dot_i_1 = 0; % [m/sec] theta_i_1=launch_long*pi/180; % [rad] theta_dot_i_1 = 0; % [rad] phi_i_1=(90-launch_lat)*pi/180; % [rad] phi_dot_i_1=0; % [rad/s] b_1=tan(psi1_0*pi/180); end if type == 2 % Balloon h_i = 30000; r_i_1=R_Earth+h_i; % [m] r_dot_i_1 = 0; % [m/sec] theta_i_1=launch_long*pi/180; % [rad] theta_dot_i_1 = 0; % [rad] phi_i_1=(90-launch_lat)*pi/180; % [rad] phi_dot_i_1=0; % [rad/s] b_1=tan(psi1_0*pi/180); end if type == 3 % Airplane h_i = 15000; % Launch Altitude (from MSL) [m] {Pegasus deployment Altitude} r_i_1=R_Earth+h_i; r_dot_i_1 = 0; % [m/sec] theta_i_1=launch_long*pi/180; theta_dot_i_1=59.72/r_i_1; % [rad/s] phi_i_1=(90-launch_lat)*pi/180;
Project Bellerophon 712
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
phi_dot_i_1=0; b_1=tan(angle_tclimb*pi/180); end % Coasting Orbit Propagation Parameters m4=0; T4 = 0; % Zero thrust for coasting. t_burn_4=3*60^2; % [s] for orbit trajectory m_dot_4=0; % Mass flow rate of coasting Stage [kg/s] Pe_4=0; % Exit pressure, 4th stage engine [Pa] Ae_4=0; % Exit area, 4th stage engine [m^2] diam_4=0; ... ... if N==2 t_burn_3=0; m_dot_3=0; T3 = 0; End Output Section:
The function creates an input file called AAE450_Trajectory_Inputs.m this is the input file used
by AAE450_Trajectory_Main.m. After writing the input file, the main trajectory code needs to be
run to generate the solution. The call line is simply: AAE450_Trajectory_Main
for AAE450_Trajectory_run.m and
AAE450_Trajectory_D2MP
for AAE450_Trajectory_run_distribute.m.
Or, for an aircraft launch, AAE450_Trajectory_D2MP_ac
Note: Before running AAE450_Trajectory_Main.m, make sure that the script
AAE450_Get_Inputs.m has the script AAE450_Trajectory_Inputs.m as the only uncommented
line. Otherwise, AAE450_Trajectory_Main.m will not load the correct inputs.
Once AAE450_Trajectory_Main.m has been run, an output file will be written. This output file is
a copy of what has been printed to the MATLAB Command Window and is named with the
Case ID number that was assigned to it. (E.g. MG-CA-DS-DC)
Project Bellerophon 713
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
AAE450_Trajectory_run.m Sample Output:
The output of AAE450_Trajectory_run(_distribute).m is the input file for the
AAE450_Trajectory_Main.m.
File: AAE450_Trajectory_Inputs.m: ID = 'SB-HA-DA-DA.txt'; type = 2.0000000000; airplane = 0.0000000000; N = 3.0000000000; h_i = 30000.0000000000; r_i_1 = 6406000.0000000000; r_dot_i_1 = 0.0000000000; theta_dot_i_1 = 0.0000000000; payload_mass = 0.2000000000; t_vertical = 10.0000000000; t_burn_1 = 147.7675026979; t_burn_2 = 160.8812170075; t_burn_3 = 206.2408603065; psi1_1 = psi1orig; psi2 = psi2orig; psi3 = psi3orig; psi1_0 = 88.0000000000; m1 = 437.8415091229; m2 = 91.5734691245; m3 = 31.2258015670; T1 = 6606.1670069556; T2 = 1392.5576461998; T3 = 355.7926808351; m_dot_1 = 2.0741303114; m_dot_2 = 0.4325914350; m_dot_3 = 0.1105253106; diam_1 = 0.7731278821; diam_2 = 0.3350953988; diam_3 = 0.2309862864; diam_4 = 0.0000000000; Pe_1 = 2821.1669372331; Pe_2 = 11453.6603989692; Pe_3 = 11453.6603989692; Ae_1 = 0.1054496676; Ae_2 = 0.0064027858; Ae_3 = 0.0016358851; launch_lat = 28.0000000000; launch_long = -80.0000000000; theta_i_1 = -1.3962634016; phi_i_1 = 1.0821041362; phi_dot_i_1 = 0.0000000000; b_1 = 28.6362532829; phi_i_1 = 1.0821041362; m4 = 8.4309664231; T4 = 0.0000000000; t_burn_4 = 32400.0000000000; m_dot_4 = 0.0000000000; Pe_4 = 0.0000000000; Ae_4 = 0.0000000000; m0_1 = 560.8407798144; m0_2 = 122.9992706915; m0_3 = 31.4258015670; m0_4 = 8.6309664231;
Project Bellerophon 714
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
Sample Output for Entire Trajectory Code:
The following is a sample output of the entire trajectory code (this is the output of the code
AAE450_Trajectory_outputs.m). This is output to both the MATLAB command window as well
as to a text file that has the same name as the case ID:
Currently running 24 deg case. *************************************** Output from AAE450_Trajectory_outputs.m *************************************** Case ID: LB_HA_DA_DA Orbital Parameters Period: 6038.7878 [s] Semi-major axis: 7167.36 [km] eccentricity: 0.0025 periapsis: 773.14 [km](from the surface of the Earth) apoapsis: 809.57 [km](from the surface of the Earth) Linear Tangent Steering Parameters: a1 = -0.16117 b1 = 28.6363 a2 = -0.00502483 b2 = 1.32415 a3 = 2.86231e-019 b3 = -0.624869 Flight Path Angle = 0.1 [deg]. at t=0[s]: Altitude: h=30000 [m] (Initial Condition) Radial(Vertical) Speed: Vr=0 [m/s] (Initial Condition) Payload Mass= 5.000 [kg] GLOW= 6294.7686 [kg] Thrust 1st stage: 75.073 [kN] 2nd stage: 15.257 [kN] 3rd stage: 0.692 [kN] Max Acceleration Max a @1st Stage= 28.5 [m/s^2] Max a @1st Stage= 2.90 G Max a @2nd Stage= 51.2 [m/s^2] Max a @2nd Stage= 5.22 G Max a @3rd Stage= 39.0 [m/s^2] Max a @3rd Stage= 3.97 G Max a @Coasting Stage= 3.8 [m/s^2] Max a @Coasting Stage= 0.38 G Burn Times 1st Stage: 175[s] (first 10.00 [s] is vertical flight) 2nd Stage: 212.96[s] 3rd Stage: 178.40[s] Times at the end of each stage End of first stage: 174.00[s] End of second stage: 386.00[s] End of third stage: 564.00[s] Constant Mass Flow Rates 1st Stage: 23.571[kg/s] 2nd Stage: 4.739[kg/s] 3rd Stage: 0.215[kg/s]
Project Bellerophon 715
Author: Elizabeth Harkness Compiled by: Elizabeth Harkness
Constant Exit Pressures 1st Stage: 2.82[kPa] 2nd Stage: 11.45[kPa] 3rd Stage: 11.45[kPa] Altitudes at the end of the vertical part of flight: 30112.44[m] at t= 0 [s] : 30.00[km] at the end of the first stage: 131.57[km] at the end of the second stage: 560.08[km] at the end of the third stage: 801.62[km] from AAE450_Delta_V.m Delta_V_Thrust_1st= 3486 [m/s] (29.4 percent) Delta_V_Thrust_2nd= 4775 [m/s] (40.3 percent) Delta_V_Thrust_3rd= 3592 [m/s] (30.3 percent) Delta_V_Thrust_Total (what we get)= 11853 [m/s] Delta_V_Leo= 7727 [m/s] Delta_V_Grav= 2034 [m/s] DeltaV_drag= 4 [m/s] Delta_V_Earth_assist= 411 [m/s] Delta_V_Total (what we need)= 9354 [m/s] Delta V required to circularize: 568 [m/s] ************************************************************ Note: it takes approximately 20[s] to produce all the plots. Please wait until you get the three figures of 3-D plots. There are six plots that are output: Figure 1: Distance from the ground versus time Figure 3: Radial speed versus time Figure 5: Tangential speed versus time Figure 6: Three views of the 3D orbit and trajectory Figure 7: One view of the orbit (with wireframe Earth) Figure 8: One view of the orbit (with solid sphere Earth)
Project Bellerophon 716
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_Main.m Written by Junichi Kanehara Revision 1.0 – 16 March 2008 Description:
AAE450_Trajectory_Main.m is the main script of the trajectory code. This code calls all the
necessary scripts and functions in order to compute and output the numerical results and produce
plots for one particular set of input.
Assumptions:
All necessary inputs are assumed to be given by the input file, AAE450_Trajectory_Inputs.m,
which has either been created by AAE450_Trajectory_run.m or
AAE450_Trajectory_run_distribute.m as described above.
Important Notes:
The log section of this main script addresses the modifications in every component of the entire
trajectory code.
Input Section:
The call line of the script is: AAE450_Trajectory_Main
Output Section:
There is no “output” in the way a function does since this is a script.
Project Bellerophon 717
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Get_Inputs.m Written by Junichi Kanehara Revision 1.0 – 16 March 2008 Description:
This is a simple script that chooses which input file to call.
Important Notes:
In the early version of the codes, AAE450_Trajectory_default_inputs was usually called.
In the later version of the codes, AAE450_Trajectory_Inputs was usually called.
In the final version of the codes, the winners of each case such as LB_HA_DA_DA_v125_Inputs
should be called.
Input Section:
The call line of the function is: AAE450_Get_Inputs
Output Section:
All the necessary input variables should be obtained by this script, as it calls an input file.
Project Bellerophon 718
Author: Daniel Chua Compiled by: Elizabeth Harkness
AAE450_run_traj_Optimization_GB.m (AAE450_run_traj_Optimization_AC.m) Written by Daniel Chua Revision 1.0 – 10 March 2008 Description:
AAE450_run_traj_Optimization_GB.m runs AAE450_Trajectory_Main.m multiple times for
each given steering angle. AAE450_run_traj_Optimization_AC.m runs
AAE450_Trajectory_Main.m multiple times for each given aircraft input.
Input Section:
The input to AAE450_run_traj_Optimization_GB(AC).m is the input file generated by
AAE450_Trajectory_run_distribute.m.
Output Section:
For each iteration of steering angle through AAE450_Trajectory_Main.m,
AAE450_run_traj_Optimization_GB(AC).m outputs the results to the following files:
• outfile.txt : an output file holding the results of feasible iterations of
AAE450_Trajectory_Main.m
• failfile.txt : an output file holding the results of infeasible iterations of
AAE450_Trajectory_Main.m
• optcount.txt : an output file used to track the number of completed iterations
Project Bellerophon 719
Author: Daniel Chua Compiled by: Elizabeth Harkness
AAE450_Trajectory_D2MP.m Written by Daniel Chua Revision 1.0 – 10 March 2008 Description:
AAE450_Trajectory_D2MP.m runs AAE450_run_traj_Optimization_GB(AC).m multiple times,
narrowing the range of steering angles input into AAE450_run_traj_Optimization_GB(AC).m
with each iteration. The least eccentric output from AAE450_run_traj_Optimization_GB(AC).m
is displayed and used to run AAE450_Trajectory_Main.m to show the results of using the
steering angles that give the least eccentric trajectory. If the Distributed Computing Toolbox
(DCT) is installed, the optimization process is distributed to as many processors as are available
to MATLAB.
Project Bellerophon 720
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_Calculations.m Written by Junichi Kanehara Revision 1.0 – 16 March 2008
Description:
This is a script called by AAE450_Trajectory_Main.m that computes the time history of the
position and the velocity in the spherical coordinating system and ΔV’s in each stage by calling
ODE files (described below).
Input Section:
The call line of the function is: AAE450_Trajectory_Calculations
Output Section:
The main output of this script is the time history of the position and the velocity in the spherical
coordinating system. Please see the description of AAE450_Delta_V.m for ΔV’s.
Variable Name Description r The radial position from the center of the Earth [m] r_dot The radial velocity [m/s] theta One component of angular position [rad] theta_dot One component of angular velocity [rad/s] phi The other component of angular position [rad] phi_dot The other component of angular velocity [rad/s] V Speed of the rocket [m/s]
Project Bellerophon 721
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_ODE.m Written by Junichi Kanehara Revision 1.0 – 17 March 2008
Description:
This is an ordinary differential equation solver; the state variables 1 through 6 are for the time
history of the position and the velocity in the spherical coordinating system, and the state
variables 7 and 8 are the ΔV’s due to the drag and the propulsion respectively.
The first line of this function is: function xdot=AAE450_Trajectory_ODE(t,x,T_full,m0,m_dot,Pe,Ae,t_burn,diam)
Assumptions:
It is assumed that the rocket is launched vertically and is not steering.
Important Notes:
Since this is an ODE, we need the initial conditions, which are defined when the input file is
written: x_i_1v=[r_i_1 r_dot_i_1 theta_i_1 theta_dot_i_1 phi_i_1 phi_dot_i_1 0 0]; t_i_1v=[0:time_step:t_vertical];
Input Section:
The call line of the function is: [t1_v,x1_v]= ode45(@(t,x)AAE450_Trajectory_ODE(t,x,T1_temp,m0_1,m_dot_1,Pe_1,Ae_1, t_burn_1,diam_1),t_i_1v,x_i_1v,options); All of the variables that are passed into the function are described below:
Variable Name Description t Time vector [s] x State Variables
T_full Constant Thrust [N] Note: thrustprofile.m should be used inside the ODE.
m0 Initial Mass of the rocket [kg] m_dot Constant mass flow rate [kg/s] Pe Exit Pressure [Pa] Ae Exit Area [ 2m ] t_burn Burn time [s] diam Cross sectional diameter of the rocket [m]
Project Bellerophon 722
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
Output Section:
The following commands are used to convert from the state variables to the variables with
physical meanings, which will be used in the calculations section of the main program:
r_1_v=x1_v(:,1); r_dot_1_v=x1_v(:,2); theta_1_v=x1_v(:,3); theta_dot_1_v=x1_v(:,4); phi_1_v=x1_v(:,5); phi_dot_1_v=x1_v(:,6); deltaV_1v_drag=(x1_v(:,7)); deltaV_1v_drag=deltaV_1v_drag(length(deltaV_1v_drag)); deltaV_1v_thrust=(x1_v(:,8)); deltaV_1v_thrust=deltaV_1v_thrust(length(deltaV_1v_thrust));
Project Bellerophon 723
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_ODE_AC_1st.m Written by Junichi Kanehara Revision 1.0 – 17 March 2008 Description:
This is an ordinary differential equation solver for the first stage of the aircraft launch; the state
variables 1 through 6 are for the time history of the position and the velocity in the spherical
coordinating system, and the state variables 7 through 9 are the ΔV’s due to the drag, the gravity
loss and the propulsion respectively.
The first line of this function is: function xdot=AAE450_Trajectory_ODE_AC_1st(t,x,T_full,m0,m_dot,a,Pe,Ae,t_burn,diam)
Assumptions:
We assume that the rocket is launched from an aircraft and is steering.
Important Notes:
Since this is an ODE, we need the initial conditions: x_i_1s=[r_i_1 r_dot_1_s theta_i_1 theta_dot_i_1 phi_i_1 phi_dot_i_1 0 0 0]; t_i_1s=[0:time_step:t_burn1];
Project Bellerophon 724
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
Input Section:
The call line of the function is: [t1_s,x1]=ode45(@(t,x)AAE450_Trajectory_ODE_AC_1st(t,x,T1,m0_1_v,m_dot_1,a_1
Pe_1,Ae_1,t_burn_1,diam_1),t_i_1s,x_i_1s,options); All of the variables that are passed into the function are described below:
Variable Name Description t Time vector [s] x State Variables
T_full Constant Thrust [N] Note: thrustprofile.m should be used inside the ODE.
m0 Initial Mass of the rocket [kg] m_dot Constant mass flow rate [kg/s] Pe Exit Pressure [Pa] Ae Exit Area [ 2m ] t_burn Burn time [s] diam Cross sectional diameter of the rocket [m] a The Coefficient of the Steering Law
Output Section:
The following commands are useful to convert from the state variables to the variables with
physical meanings:
r_1=x1(:,1); r_dot_1=x1(:,2); theta_1=x1(:,3); theta_dot_1=x1(:,4); phi_1=x1(:,5); phi_dot_1=x1(:,6); deltaV_1s_drag=(x1(:,7)); deltaV_1s_drag=deltaV_1s_drag(length(deltaV_1s_drag)); deltaV_1s_gravity=(x1(:,8)); deltaV_1s_gravity=deltaV_1s_gravity(length(deltaV_1s_gravity)); deltaV_1s_thrust=(x1(:,9)); deltaV_1s_thrust=deltaV_1s_thrust(length(deltaV_1s_thrust));
Project Bellerophon 725
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_ODE_AC_2nd.m Written by Junichi Kanehara Revision 1.0 – 17 March 2008
Description:
This is an ordinary differential equation solver for the second stage of the aircraft launch; the
state variables 1 through 6 are for the time history of the position and the velocity in the spherical
coordinating system, and the state variables 7 through 9 are the ΔV’s due to the drag, the gravity
loss and the propulsion respectively.
The first line of this function is: function xdot=AAE450_Trajectory_ODE_AC_2nd(t,x,T_full,m0,m_dot,a2sec1,b2sec1,a2sec2,
b2sec2,a2sec3,b2sec3,Pe,Ae,t_burn,diam,tsec1,tsec2);
Assumptions:
We assume that the rocket is launched from an aircraft and is steering.
Important Notes:
Since this is an ODE, we need the initial conditions: x_i_2=[r_i_2 r_dot_i_2 theta_i_2 theta_dot_i_2 phi_i_2 phi_dot_i_2 0 0 0]; t_i_2=[0:time_step:t_burn2];
Project Bellerophon 726
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
Input Section:
The call line of the function is: [t2,x2]=ode45(@(t,x)AAE450_Trajectory_ODE_AC_2nd(t,x,T2,m0_2,m_dot_2,a2_sec1,
b2_sec1,a2_sec2,b2_sec2,a2_sec3,b2_sec3,Pe_2,Ae_2, t_burn_2,diam_2,tb2_sec1,tb2_sec2),t_i_2,x_i_2,options);
Some of the variables that are passed into the function are described below:
Variable Name Description T Time vector [s] x State Variables
T_full Constant Thrust [N] Note: thrustprofile.m should be used inside the ODE.
m0 Initial Mass of the rocket [kg] m_dot Constant mass flow rate [kg/s] Pe Exit Pressure [Pa] Ae Exit Area [ 2m ] t_burn Burn time [s] diam Cross sectional diameter of the rocket [m] a2_sec1 a Coefficient of the Steering Law tb2_sec1 Time for the first segment [s]
Output Section:
The following commands are useful to convert from the state variables to the variables with
physical meanings:
r_2=x2(:,1); r_dot_2=x2(:,2); theta_2=x2(:,3); theta_dot_2=x2(:,4); phi_2=x2(:,5); phi_dot_2=x2(:,6); deltaV_2_drag=(x2(:,7)); deltaV_2_drag=deltaV_2_drag(length(deltaV_2_drag)); deltaV_2_gravity=(x2(:,8)); deltaV_2_gravity=deltaV_2_gravity(length(deltaV_2_gravity)); deltaV_2_thrust=(x2(:,9)); deltaV_2_thrust=deltaV_2_thrust(end);
Project Bellerophon 727
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_ODE_AC_linear.m Written by Junichi Kanehara Revision 1.0 – 17 March 2008
Description:
This is an ordinary differential equation solver for the third stage of the aircraft launch; the state
variables 1 through 6 are for the time history of the position and the velocity in the spherical
coordinating system, and the state variables 7 through 9 are the ΔV’s due to the drag, the gravity
loss and the propulsion respectively.
The first line of this function is: function xdot=AAE450_Trajectory_ODE_AC_linear(t,x,T_full,m0,m_dot,a,b,Pe,Ae,t_burn,diam)
Assumptions:
We assume the rocket is launched from an aircraft and is steering.
Important Notes:
Since this is an ODE, we need the initial conditions: x_i_3=[r_i_3 r_dot_i_3 theta_i_3 theta_dot_i_3 phi_i_3 phi_dot_i_3 0 0 0]; t_i_3=[0:time_step:t_burn3];
Project Bellerophon 728
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
Input Section:
The call line of the function is: [t3,x3]=ode45(@(t,x) AAE450_Trajectory_ODE_AC_linear
(t,x,T3,m0_3,m_dot_3,a_3,b_3,Pe_3,Ae_3,t_burn_3, diam_3),t_i_3,x_i_3,options);
All of the variables that are passed into the function are described below:
Variable Name Description t Time vector [s] x State Variables
T_full Constant Thrust [N] Note: thrustprofile.m should be used inside the ODE.
m0 Initial Mass of the rocket [kg] m_dot Constant mass flow rate [kg/s] Pe Exit Pressure [Pa] Ae Exit Area [ 2m ] t_burn Burn time [s] diam Cross sectional diameter of the rocket [m] a a Coefficient of the Steering Law b a Coefficient of the Steering Law
Output Section:
The following commands are useful to convert from the state variables to the variables with
physical meanings:
r_3=x3(:,1); r_dot_3=x3(:,2); theta_3=x3(:,3); theta_dot_3=x3(:,4); phi_3=x3(:,5); phi_dot_3=x3(:,6); deltaV_3_drag=(x3(:,7)); deltaV_3_drag=deltaV_3_drag(length(deltaV_3_drag)); deltaV_3_gravity=(x3(:,8)); deltaV_3_gravity=deltaV_3_gravity(length(deltaV_3_gravity)); deltaV_3_thrust=(x3(:,9)); deltaV_3_thrust=deltaV_3_thrust(end);
Project Bellerophon 729
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_ODE_steer.m Written by Junichi Kanehara Revision 1.0 – 17 March 2008 Description:
This is an ordinary differential equation solver for the ground launch and the balloon launch; the
state variables 1 through 6 are for the time history of the position and the velocity in the spherical
coordinating system, and the state variables 7 through 9 are the delta V’s due to the drag, the
gravity loss and the propulsion respectively.
The first line of this function is: function xdot=AAE450_Trajectory_ODE_steer
(t,x,T_full,m0,m_dot,a,b,Pe,Ae,t_burn,diam)
Assumptions:
We assume the rocket is steering, following the linear tangent law.
Important Notes:
Since this is an ODE, we need the initial conditions: x_i_2=[r_i_2 r_dot_i_2 theta_i_2 theta_dot_i_2 phi_i_2 phi_dot_i_2 0 0 0]; t_i_2=[0:time_step:t_burn_2];
Project Bellerophon 730
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
Input Section:
The call line of the function is: [t2,x2]=ode45(@(t,x) AAE450_Trajectory_ODE_steer(t,x,T2,m0_2,m_dot_2,a_2,b_2,
Pe_2,Ae_2,t_burn_2,diam_2),t_i_2,x_i_2,options); All of the variables that are passed into the function are described below:
Variable Name Description t Time vector [s] x State Variables
T_full Constant Thrust [N] Note: thrustprofile.m should be used inside the ODE.
m0 Initial Mass of the rocket [kg] m_dot Constant mass flow rate [kg/s] Pe Exit Pressure [Pa] Ae Exit Area [ 2m ] t_burn Burn time [s] diam Cross sectional diameter of the rocket [m] a a Coefficient of the Steering Law b a Coefficient of the Steering Law
Output Section:
The following commands are useful to convert from the state variables to the variables with
physical meanings:
r_2=x2(:,1); r_dot_2=x2(:,2); theta_2=x2(:,3); theta_dot_2=x2(:,4); phi_2=x2(:,5); phi_dot_2=x2(:,6); deltaV_2_drag=(x2(:,7)); deltaV_2_drag=deltaV_2_drag(length(deltaV_2_drag)); deltaV_2_gravity=(x2(:,8)); deltaV_2_gravity=deltaV_2_gravity(length(deltaV_2_gravity)); deltaV_2_thrust=(x2(:,9)); deltaV_2_thrust=deltaV_2_thrust(end);
Project Bellerophon 731
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_ODE_coast.m Written by Junichi Kanehara Revision 1.0 – 17 March 2008
Description:
This is an ordinary differential equation solver for the coasting stage in orbit; the state variables 1
through 6 are for the time history of the position and the velocity in the spherical coordinating
system.
The first line of this function is: function xdot=AAE450_Trajectory_ODE_coast(t,x,T,m0,m_dot,C_D,Pe,Ae,t_burn,diam)
Assumptions:
We assume that no thrust or drug is acting.
Important Notes:
Since this is an ODE, we need the initial conditions: x_i_4=[r_i_4 r_dot_i_4 theta_i_4 theta_dot_i_4 phi_i_4 phi_dot_i_4 0]; t_i_4=[0:time_step:t_burn_4];
Input Section:
The call line of the function is: [t4,x4]=ode45(@(t,x) AAE450_Trajectory_ODE_coast(t,x,T4,m0_4,m_dot_4,
C_D_orbit,Pe_4,Ae_4,t_burn_4,diam_4),t_i_4,x_i_4,options);
Some of the variables that are passed into the function are described below:
Variable Name Description t Time vector [s] x State Variables T Thrust = 0 [N]
t_burn Length of Time to run this ODE [s] This should be longer than one period of the orbit.
Project Bellerophon 732
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
Output Section:
The following commands are useful to convert from the state variables to the variables with
physical meanings:
r_4=x4(:,1); r_dot_4=x4(:,2); theta_4=x4(:,3); theta_dot_4=x4(:,4); phi_4=x4(:,5); phi_dot_4=x4(:,6);
Project Bellerophon 733
Author: Kyle Donahue Compiled by: Elizabeth Harkness
AAE450_Wind_Model.m Written by Kyle Donahue Revision 1.0 – 24 March 2008 Description:
AAE450_Wind_Model.m uses atmosphere4.m to help create a wind profile. The wind profile is
made up of a constant wind profile and randomized wind gusting. It also creates the wind force
which the wind velocity causes on the launch vehicle.
Assumptions:
One assumption is the constant wind can only go from 0o to 180o on the compass. The wind
gusting angle can only be ±90o from the constant wind at the given altitude. Also the wind is
only 2-D which means it will never go “up” or “down”.
Important Notes:
The log section of this script addresses the modifications in every component of the entire
trajectory code.
Input Section:
The call line of the script is: AAE450_Wind_Model
Output Section:
The output is only plots of the wind profile in the north/south direction, the wind profile in the
east/west direction, the force of the wind in the north/south direction, and the force of the wind in
the east/west direction. It also puts the wind force Fw variable in the workspace so it can be used
in the equations of motion.
Project Bellerophon 734
Author: Allen Guzik Compiled by: Elizabeth Harkness
atmosphere4.m Written by Allen Guzik Revision 1.0 – 24 March 2008
Description:
This function calculates static conditions of Earth’s atmosphere based on a given altitude. This
program was no written by the design team. However, it is commonly used and accepted as a
source to obtain standard atmospheric conditions.
Assumptions:
Data is based off of the 1976 NASA standard atmosphere.
Input Section:
The call line of the function is: [temp,press,rho,Hgeopvector]=atmosphere4(Hvector,GeometricFlag) All of the variables that are passed into the function are described below:
Variable Name Description Hvector Vector of geopotential or geometric altitudes [ft]
GeometricFlag Denote if the altitude is geopotential or geometric.
Output Section:
Atmospheric conditions calculated are:
Variable Name Description temp Temperature [°R] press Pressure [lbf/ft2] rho Density [slug/ft3] Hgeopvector Vector of corresponding geopotential altitudes [ft].
Project Bellerophon 735
Author: Brad Ferris Compiled by: Elizabeth Harkness
solve_cd.m Written by Brad Ferris Revision 1.0 – 07 March 2008
Description:
This function was originally written by Jayme Zott from the Aerothermal group. The function
was implemented into AAE450_Trajectory_Main.m by Brad Ferris. This function calculates a
coefficient of drag value based on the current flight Mach number. This allows
AAE450_Trajectory_Main.m to more accurately model drag throughout the launch vehicle’s
flight.
Input Section:
The flight Mach number is input from the ODE functions. Output Section:
The coefficient of drag corresponding to the input Mach number is output to the ODE functions.
Project Bellerophon 736
Author: Brad Ferris Compiled by: Elizabeth Harkness
speedofsound.m Written by Brad Ferris Revision 1.0 – 07 March 2008
Description:
This function calculates the current speed of sound.
Input Section:
The current flight temperature is input from atmosphere4.m and
AAE450_Trajectory_Calculations.m.
Output Section:
The speed of sound corresponding to current flight conditions is output to the body of the code.
Project Bellerophon 737
Author: Brad Ferris Compiled by: Elizabeth Harkness
thrustprofile.m Written by Brad Ferris Revision 1.0 – 07 March 2008 Description:
The purpose of this function is to model the ramp up and ramp down times of a rocket engine. In
its most current revision, the ramp up and ramp down times are one second.
Input Section:
The maximum nominal input, the total burn time, and current time are input into the function.
Output Section:
The thrust corresponding to the current flight time is output to the ODE functions. If the point of
time is during the ramping period, the thrust returned will be less than maximum thrust.
Project Bellerophon 738
Author: Amanda Briden Compiled by: Elizabeth Harkness
AAE450_Trajectory_GSAC.m Written by Amanda Briden Revision 1.0 – 16 March 2008
Description:
This script determines the steering angle coefficients for a linear tangent steering law for each
stage of a balloon or ground launch. It then saves the coefficients to a text file called ab.txt.
Assumptions:
The desired steering angles at the end of each stage and the burn times for each stage are already
defined.
Important Notes:
This script is only called in AAE450_Trajectory _Main.m if there are three stages and if the
launch configuration is balloon or ground.
Input Section:
The call line of the script is: AAE450_Trajectory_GSAC
Output Section:
The linear tangent steering law coefficients are defined based on the desired orientation of the
rocket at the end of each stage and the burn time for each stage.
Variable Name Description Steer_coeffs [a_1temp b_1temp; a_2temp b_2temp; a_3temp b_3temp]
Sample Output:
A sample ab.txt file is shown below. Note that the right column is a and the left column is b.
The rows designate the stage.
-2.2410717e-001 2.8636253e+001 -1.6214735e-003 3.4671470e-001 0.0000000e+000 -1.7632698e-001
Project Bellerophon 739
Author: Amanda Briden Compiled by: Elizabeth Harkness
AAE450_Trajectory_GSAC_2STO.m Written by Amanda Briden Revision 1.0 – 16 March 2008
Description:
This script determines the steering angle coefficients for a linear tangent steering law for each
stage of a balloon or ground launch. It then saves the coefficients to a text file called ab.txt.
Assumptions:
The desired steering angles at the end of each stage and the burn times for each stage are already
defined.
Important Notes:
This script is only called in AAE450_Trajectory_Main.m if there are two stages and if the launch
configuration is balloon or ground.
Input Section:
The call line of the script is: AAE450_Trajectory_GSAC_2STO
Output Section:
The linear tangent steering law coefficients are defined based on the desired orientation of the
rocket at the end of each stage and the burn time for each stage.
Variable Name Description Steer_coeffs [a_1temp b_1temp; a_2temp b_2temp]
Sample Output:
A sample ab.txt file is shown below. Note that the right column is a and the left column is b.
The rows designate the stage.
-2.2410717e-001 2.8636253e+001 -1.6214735e-003 3.4671470e-001
Project Bellerophon 740
Author: Amanda Briden Compiled by: Elizabeth Harkness
AAE450_Trajectory_GSAC_Aircraft_2_3linear_sections.m Written by Amanda Briden Revision 1.0 – 16 March 2008
Description:
This script determines the steering angle coefficients for the first and second stages of an aircraft
launch (with the rocket initially positioned horizontally). A tangent steering law is applied to the
first stage until the rocket is pointed to 88°. The second stage steering law is broken up into
three linear parts. The coefficient a for the first stage steering law, the slope and intercept for the
three linear sections of the second stage steering law, and the amount of time of the second stage
burn time devoted to the first and second sections of the second stage linear steering laws are
determined. These are saved in a text file called ab_AC2.txt in AAE450_Trajectoy_Main.m.
Assumptions:
The desired steering angles at the end of each stage, the burn times for each stage, and the
percent of the 2nd stage burn time that the first linear portion of the steering law should be
applied to are already defined.
Important Notes:
This script is only called in AAE450_Trajectoy_Main.m if there are two stages and if the launch
configuration is aircraft.
Input Section:
The call line of the script is: AAE450_Trajectory_GSAC_Aircraft_2_3linear_sections
Project Bellerophon 741
Author: Amanda Briden Compiled by: Elizabeth Harkness
Output Section:
The following variables create a continuous steering law. Variable Name Description a_1 Coefficient defining the 1st stage tangent steering law b_1 This value is always zero.
a2_sec1 Slope coefficient describing the 1st linear section of the 2nd stage linear steering law
a2_sec2 Slope coefficient describing the 2nd linear section of the 2nd stage linear steering law
a2_sec3 Slope coefficient describing the 3rd linear section of the 2nd stage linear steering law
b2_sec1 Intercept coefficient describing the 1st linear section of the 2nd stage linear steering law
b2_sec2 Intercept coefficient describing the 2nd linear section of the 2nd stage linear steering law
b2_sec3 Intercept coefficient describing the 3rd linear section of the 2nd stage linear steering law
tb2sec1 The amount of time of the second stage burn time devoted to the implementation of the second stage’s first linear steering law portion.
tb2sec2 The amount of time of the second stage burn time devoted to the implementation of the second stage’s second linear steering law portion.
Sample Output:
A sample ab_AC2.txt file is shown below. The order is as such: tb2sec1 tb2sec2 a_1 b_1 a2_sec1 b2_sec1 a2_sec2 b2_sec2 a2_sec3 b2_sec3 8.0000000e+000 2.8000000e+001 1.9081137e+000 0.0000000e+000 -1.0864092e+001 8.7000000e+001 -4.3633231e-003 1.2217305e-001 -8.3910060e-003 2.3494817e-001
Project Bellerophon 742
Author: Amanda Briden Compiled by: Elizabeth Harkness
AAE450_Trajectory_GSAC_Aircraft_3.m Written by Amanda Briden Revision 1.0 – 16 March 2008
Description:
This script determines the steering angle coefficients for the third stage of an aircraft launch
(with the rocket initially positioned horizontally). The third stage is a linear steering law that
continues from the end of the second stage. The user can specify that the steering angle at the
end of the second stage matches the end of the third, thus allowing for spin stabilization of the
rocket’s third stage. The coefficient for the slope and intercept for the third stage are determined.
These are appended to the end of the array specified in
AAE450_Trajectory_GSAC_Aircraft_2_3linear_sections.m and the entire array is then saved in a
text file called ab_AC3.txt in AAE450_Trajectory_Main.m.
Assumptions:
The desired steering angles at the end of the second and third stages, the burn times for the third
stage should already be defined.
Important Notes:
This script is only called in AAE450_Trajectoy_Main.m if there are three stages and if the launch
configuration is aircraft.
Input Section:
The call line of the script is: AAE450_Trajectory_GSAC_Aircraft_3
Output Section:
The following variables create a continuous steering law.
Variable Name Description a_3 Coefficient defining the 3rd stage linear steering law b_3 Intercept coefficient describing the 3rd stage linear steering law
Project Bellerophon 743
Author: Amanda Briden Compiled by: Elizabeth Harkness
Sample Output:
A sample ab_AC3.txt file is shown below. The order is as such (the other variables have been
defined in the user guide for AAE450_Trajectory_GSAC_Aircraft_2_3linear_sections.m): tb2sec1 tb2sec2 a_1 b_1 a2_sec1 b2_sec1 a2_sec2 b2_sec2 a2_sec3 b2_sec3 a_3 b_3 8.0000000e+000 2.8000000e+001 1.9081137e+000 0.0000000e+000 -1.0864092e+001 8.7000000e+001 -4.3633231e-003 1.2217305e-001 -8.3910060e-003 2.3494817e-001 2.1816616e-003 -4.3633231e-001
Project Bellerophon 744
Author: Scott Breitengross Compiled by: Elizabeth Harkness
Delta_V.m Written by Scott Breitengross Revision 1.0 – 15 March 2008
Description:
This is the main function for calculating the values of ΔV. It uses the values obtained from the
ODE functions, AAE450_Trajectory_Calculations.m or from the input values to calculate these.
Assumptions:
We assume the AAE450_Trajectory_Calculations.m has been completed.
Important Notes:
Most of the variables needed are output directly to the workspace so very few variables need to
be created in order for the function to work.
Input Section:
The call line of the function is: AAE450_Delta_V
Output Section:
These are the final determined values from this function which are displayed using
AAE450_Trajectory_output.m
All of the variables that are passed into the function are described below:
Variable Name Description
Delta_V_Earth_assist This is the ΔV due to the rotation of the Earth at the launch site. [m/s]
Delta_V_Leo This is the velocity needed to get into the required orbit [m/s] Delta_V_Grav This is the ΔV due to gravity losses. [m/s] deltaV_drag This is the ΔV due to the drag. [m/s] deltaV_thrust This is the ΔV that the propulsion produces. [m/s]
Delta_V_Total This is the ΔV that we need, not including the delta V to circularize. [m/s]
Project Bellerophon 745
Author: Allen Guzik Compiled by: Elizabeth Harkness
AAE450_orbit_param.m Written by Allen Guzik Revision 1.0 – 24 March 2008
Description:
This program calculates various parameters that defines the orbit the trajectory code propagates.
Assumptions:
Keplerian two-body orbits, the Earth is a point, and Earth’s gravity is uniform throughout the
duration of the orbit.
Input Section:
All of the variables that are passed into the function are described below:
Variable Name Description
r_dot_final Final radial velocity of the vehicle at the end of the third stage [rad/s]
r_final Final altitude of the vehicle at the end of the third stage. [m]
theta_dot_final Final angular velocity of the vehicle at the end of the third stage. [rad/s]
phi_dot_final Final angular velocity of the vehicle at the end of the third stage. [rad/s]
r_4 Vector of the radius from the center of the Earth of the orbit propagation. [m]
mu Gravitational parameter of the Earth.
Output Section:
The orbit parameters calculated are:
Variable Name Description rp Orbit Periapsis [m] ra Orbit Apoapsis [m] a Orbit Semi-major Axis [m] e Orbit Eccentricity energy Orbit Energy [J/kg] period Orbit period [s]
Project Bellerophon 746
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_outputs.m Written by Junichi Kanehara Revision 1.0 – 16 March 2008
Description:
This is a script to output the numerical values to the screen and to the file XX-XX-XX-XX.txt.
Assumptions:
We assume AAE450_Trajectory_Calculations.m has been run.
Input Section:
The call line of the function is: AAE450_Trajectory_outputs
Output Section:
The output of AAE450_Trajectory_outputs.m is what creates the outputs for the entire trajectory
code. A sample output for the code was given at the first section of this guide.
Project Bellerophon 747
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_Plots.m Written by Junichi Kanehara Revision 1.0 – 16 March 2008 Description:
This is a script that produces two-dimensional and three-dimensional plots.
Assumptions:
We assume all the numerical outputs from the entire code have been generated.
Important Notes:
It takes for a while (15-20 seconds) to get all the plots.
Input Section:
The call line of the function is: AAE450_Trajectory_Plots
Some of the variables that are passed into the script are described below:
Variable Name Description X Position in the Cartesian coordinating system [m] r Radial position in the spherical coordinating system [m] R_Earth The radius of the Earth [m] t Time vector [s]
Output Section:
Version 2.0 of this script generates three two-dimensional plots and two three-dimensional plots.
Project Bellerophon 748
Author: Junichi Kanehara Compiled by: Elizabeth Harkness
AAE450_Trajectory_Body2Inertial.m Written by Junichi Kanehara Revision 1.0 – 16 March 2008
Description:
This function converts from the body frame in the spherical coordinating system to the inertial
frame in the Cartesian coordinating system.
Assumptions:
The origin is the center of the Earth.
Input Section:
The call line of the function is: [X Y Z] = AAE450_Trajectory_Body2Inertial(r,phi,theta);
All of the variables that are passed into the function are described below:
Variable Name Description r Radial position from the center of the Earth [m] phi One component of angular position [rad] theta The other component of angular position [rad]
Note: The example above is for the position, but we can also use this function for the velocity
and the acceleration in the same unit vectors.
Output Section:
X, Y and Z describe the position in the Cartesian coordinating system from the center of the
Earth. The unit will be the same as r, assuming phi and theta are in radians.
Variable Name Description X Position in the Cartesian coordinating system [m] Y Position in the Cartesian coordinating system [m] Z Position in the Cartesian coordinating system [m]
Project Bellerophon 749
Author: Kyle Donahue and Compiled by: Elizabeth Harkness
Trajectory Code Flowchart: Run Once Written by Kyle Donahue Revision 1.0 – 24 March 2008
Propulsion and Structures Inputs
AAE 450 Trajectory run. m
Launch Type
User Inputs(steering law angles) Beginning of flight End of 1st stage End of 2nd stage End of 3rd stage
User Inputs Angle at end of climb Fraction for first steering law Angle at end of 2nd stage Angle at end of 3rd stage
Main.m
Get_Inputs.m
Launch Type
# 0f Stages
AAE450_Trajectory_GSAC_ Aircraft_2_3linear_sections.m
# 0f Stages
AAE450_Trajectory_GSAC_ Aircraft_2_3linear_sections.m
AAE450_Trajectory_GSAC_ Aircraft_3.m
AAE450_Trajetory_Main.m
Ground/Balloon Aircraft
2 3 2 3
Ground/Balloon Aircraft
Project Bellerophon 750
Author: Kyle Donahue and Compiled by: Elizabeth Harkness
AAE450_Trajetory_Main.m
AAE450_Tracjetory_Calculations.m
_ODE
Type of Launch
_ODE_Steer _ODE_Steer _ODE_AC_1st
Ground Balloon
Aircraft
_ODE_Steer _ODE_Steer _ODE_AC_2nd
_ODE_AC_linear _ODE_Steer _ODE_Steer
_ODE_coast
AAE450_Tracjetory_Calculations.m
AAE450_Delta_V.m
Project Bellerophon 751
Author: Kyle Donahue and Compiled by: Elizabeth Harkness
AAE450_Delta_V.m
AAE450_Tracjetory_Calculations.m
AAE450_Trajectory_Main.m
_orbit_param _Delta_V _Ballistic_coeff
_Body2Inertial _output _plots
Project Bellerophon 752
Author: Scott Breitengross Compiled by: Elizabeth Harkness
Trajectory Code Flowchart: Optimize Written by Scott Breitengross Revision 1.0 – 24 March 2008
Propulsion and Structures Inputs
AAE 450 Trajectory run distribute.
Launch Type
AAE450_Trajectory_D2MP.m AAE450_Trajectory_D2MP_AC.m
AAE450_run_traj_Optimization_AC.m
Main.m
Get_Inputs.m
Launch Type
# 0f Stages
AAE450_Trajectory_GSAC_ Aircraft_2_3linear_sections.m
# 0f Stages
AAE450_Trajectory_GSAC_ Aircraft_2_3linear_sections.m
AAE450_Trajectory_GSAC_ Aircraft_3.m
AAE450_Trajectory_ GSAC_2STO.m
AAE450_Trajectory _GSAC.m
AAE450_Trajetory_Main.m
Ground/Balloon Aircraft
2 3 2 3
Ground/Balloon Aircraft
AAE450_run_traj_Optimization_GB.
Project Bellerophon 753
Author: Scott Breitengross Compiled by: Elizabeth Harkness
AAE450_Trajetory_Main.m
AAE450_Trajectory_Calculations.m
Launch Type
AAE450_Trajectory_ODE.m
Launch Type
AAE450_Trajectory_ODE_Steer.m AAE450_Trajectory_ODE_AC_1st.m
AAE450_Trajectory_ODE_AC_2nd.m
AAE450_Trajectory_ODE_AC_linear.m
AAE450_Trajectory_ODE_coast.m
AAE450_Delta_V.m
AAE450_orbit_param.m
AAE450_Trajectory_Body2Ineritial.m
AAE450_Trajectory_Plots.m
Ground/Balloon
Aircraft
Ground/Balloon Aircraft