Space Shuttle - 1 (Program "shuttle")

Our theme exercise for this quarter is based on the NASA Space Shuttle. In spite of its age, the Space Shuttle has continued until now to be the prime element of the US Space Transportation System for space research and applications. It can carry payloads of up to 29,000 kg, and is capable of launching deep space missions into their initial low Earth orbit. It is also able to retrieve satellites from Earth orbit and repair and redeploy them or bring them back to Earth for refurbishment and reuse. It was hoped that the Shuttle would continue to play a major role in the International Space Station program, however since the latest accident in which the Columbia was destroyed the entire Shuttle program is currently under review. This exercise sequence is dedicated to the memory of the seven astronauts who perished in the tragic accident of the Columbia on Feb 1, 2003.

We see from the following photograph that the Space Shuttle consists of four major subsystems: the two Solid Fuel Rocket Boosters, the External Liquid Fuel Tank, and the Orbiter.

There are a number of phases in the cycle of a complete mission. These include the 'launch' phase in which the full power of the Space Shuttle Vehicle is used, including the two solid fuel booster rockets and the three main engines of the orbiter. During this phase the Shuttle flight is almost completely vertically upwards. This phase ends after an elapsed time of about 2 minutes, when the two booster rockets have reached the 'Brennschluss' (burnout) condition and separate from the Shuttle. In the second phase the orbiter continues to use the liquid fuel in the external tank (liquid hydrogen, with liquid oxygen as the oxidizer) for about 6.5 more minutes, discards the external fuel tank and enters the 'orbit insertion' phase. With the various orbital operations, deorbit and return to Earth, a mission can last up to fifteen days. Our exercise sequence will consider the initial 'launch' phase, i.e. the first 2 minutes of the Shuttle mission, and then follow the empty booster shells until they fall to earth (booster splashdown).

We will be concerned with evaluating the upward velocity and height of the Shuttle throughout the 'launch' phase. It is believed that during this phase of extreme acceleration a piece of the protective insulation broke off, causing the Columbia accident. We first derive the upward velocity equation. From Newton's second law, the upward acceleration of the Shuttle is given by:

where 	F   is the total upward force (N)
	M   is the total mass of the Shuttle (kg)
	V   is the upward velocity (m/s)
	t   is the elapsed time (s).

The upward force is comprised of the thrust from both the booster rockets and the main orbiter engines, modified by the gravitational force, thus:

where	Tb   is the booster thrust (N)
	To   is the orbiter thrust (N)
	g   is the acceleration due to gravity (m/s/s)

The thrust is given by:

where vf is the velocity of the exhaust fuel gases (m/s)

At this stage we encounter a problem. The booster rockets and the orbiter engines operate under very different exhausting fuel velocities, hence their respective influence on the Shuttle motion need to be evaluated separately. In order to simplify the analysis we assume (tongue in cheek) that we can linearly superpose the contribution of each engine system to the resulting Shuttle velocity. Combining the above equations we obtain:

where the subscript b refers to the boosters and o refers to the orbiter main engines.

This equation can be rearranged in the form of a variables separable differential equation, thus:

Each term in this equation can be separately integrated over the elapsed time, thus finally:

where 	Mt   is the total initial mass of the Space Shuttle Vehicle (including the solid booster fuel) (kg)
	qb   is the ejection rate of the exhausting fuel in the booster (kg/s)
	qo   is the ejection rate of the exhausting fuel in the orbiter (kg/s)
	gm   is the effective mean value of gravitational acceleration (m/s/s)
	log( )   is the natural logarithm function - in the C++ language it is available in the math library. 	

The values of these parameters for a typical space mission are given in the figure above.

Digression: We normally treat g as a constant, having a value of 9.807 m/s2. However this value varies with altitude according to the Law of Universal Gravitation, thus:

where	gs   is the value of g at Earth's surface (9.807 m/s/s )
		Rs   is the radius of Earth (6.38 x 106 m)
		h   is the altitude above Earth (m)
		gh   is the value of g at altitude h ( m/s/s )

In this exercise sequence we wish to consider both the velocity and height of the shuttle as a function of elapsed time. In particular we would like to determine the elapsed time to reach a specified height. There is no easy explicit solution to this highly nonlinear problem, hence we will spend the entire quarter over six exercises developing a computer approach to solution.

There are two parts to this exercise, the computer program to evaluate the upward velocity of the shuttle, and a graph to evaluate the height attained by the shuttle, which you will plot by hand on regular graph paper.

1. Write a program that will define a class Shuttle based on the equation given above to evaluate the upward velocity as a function of elapsed time from liftoff. The various parameters used in the equation should be declared as private or public variables, as shown in the structure diagram below. We will use the values given in the figure, excepting for the total mass at liftoff (Mt). Choose a value of the total mass at liftoff (Mt) 2abcdef kilograms, where abcdef are the 6 digits of your Oak id account. Thus for an Oak id iu123456 the mass used should be 2,123,456 kg.
The user first enters the chosen total mass at liftoff. The main program then uses this value to construct an object of the class 'Shuttle', assigning and displaying the values of all the private and public variables. Subsequently the main function should get a value of elapsed time from the keyboard, invoke a class function find_velo to evaluate the upward velocity, and display both on the screen. The function find_velo should have only one argument, being the elapsed time in seconds. A flow diagram of the program is shown below:

The source code of your program should be in your home directory and named shuttle.cpp.

2. You will need to execute the program as many times as required to obtain enough points in order to plot a suitable velocity vs time graph. In order to evaluate the height at any value of elapsed time t, we need to evaluate the relevant area under the velocity curve, since:

Probably the easiest method of evaluating an area is through counting the elemental squares enclosed by that area and multiplying the result by the width (seconds) and height (meters/second) of an elemental square. This approach will be demonstrated in class.
Once you have drawn the graph of height vs elapsed time you should draw a horizontal line representing the height attained when the booster rockets have used up all their fuel (this will vary, depending on your social security number). You will first need to evaluate the elapsed time for all the fuel to be used up in the booster rockets.

Notice that in this exercise we use the computer in a very unsophisticated role - as a mere calculator. However, we have to start somewhere. In the coming exercises we will successively (and joyfully) relinquish all of the manual processes above to the computer, including drawing the graphs, evaluating the integral (area under the curve) to determine the cumulative height of the shuttle. Obviously we will always remain with the creative manual process of designing and writing the program.

Telnet: "condor"