Space Launch System Trajectory Simulations

Here you will find trajectory simulations of the Space Launch System (SLS). Our naming convention:

1st digit: Booster Type:
1B = RSRMV (updated)
1C = RSRMV
2B = ATK Advanced Booster
2C = Pyrios (2xF-1B)
3 = Aerojet (3xAJ1E6)
4 = ATK Advanced Booster

2nd digit: Core Type:
C = Boeing IAC2012
B = Boeing IAC2013

3rd digit: Number of RS-25D engines

4th digit: Upper Stage Engine Type:
A = RS-25D
B = MB-60
C = RL-10C-2
J = J-2X
O = AJ10190
V = Vinci

5th digit: Number of Upper Stage Engines

.6th digit: Variation Number

The following configurations have been simulated to a 200 km 28.45° orbit:

NameBoosterCoreUpper StagePayload (t)Comment
SLS1BRSRMV4 x RS-25E4 x RL-10C-297.1Core at 111%. Standard Block IB.
SLS2BATK AB4 x RS-25E4 x RL-10C-2113.4Core at 111%. Standard Block IIB.
SLS2B4V4ATK AB4 x RS-25E4 x Vinci120.2Core at 111%.
SLS2B4B4ATK AB4 x RS-25E4 x MB-60126.1Core at 111%.
SLS2B5C4ATK AB5 x RS-25E4 x RL-10C-2117.9Core at 111%.
SLS2B5B4ATK AB5 x RS-25E4 x MB-60136.1Core at 111%.
SLS1C4J2.0RSRMV4 x RS-25D2 x J-2X97.7Core at 110%
SLS1C4J2.1RSRMV4 x RS-25D2 x J-2X72.1Core at 110% with 65% thrust bucket
SLS1C4J2.2RSRMV4 x RS-25D2 x J-2X102.8Core at 109% with optimised upper stage
SLS1C4J1RSRMV4 x RS-25D1 x J-2X103.3"
SLS1C4A1RSRMV4 x RS-25D1 x RS-25D107.5"
SLS1C5J1RSRMV5 x RS-25D1 x J-2X118.2"
SLS1C5J2RSRMV5 x RS-25D2 x J-2X123.7"
SLS1C5J3RSRMV5 x RS-25D3 x J-2X122.2"
SLS1C6J2RSRMV6 x RS-25D2 x J-2X133.0"
SLS2C4B22 x F-1B4 x RS-25D2 x MB-60121.8"
SLS2C4J22 x F-1B4 x RS-25D2 x J-2X129.0"
SLS2C4B42 x F-1B4 x RS-25D4 x MB-60129.4"
SLS3C4B43 x AJ1E64 x RS-25D4 x MB-60132.6"
SLS4C4J2ATK AB4 x RS-25D2 x J-2X121.5"
SLS4C5J2ATK AB5 x RS-25D2 x J-2X140.2"
SLS1C4J1.1RSRMV4 x RS-25E1 x J-2X113.6Core at 111% thrust
SLS2C4J2.22 x F-1B4 x RS-25E2 x J-2X133.2"
SLS3C4J2.23 x AJ1E64 x RS-25E2 x J-2X136.2"
SLS4C4J2.2ATK AB4 x RS-25E2 x J-2X124.8"
SLS1C5J2.1RSRMV5 x RS-25E2 x J-2X130.6Heavy core at 111% thrust
SLS1C6J2.1RSRMV6 x RS-25E2 x J-2X137.0"
SLS4C5J2.2ATK AB5 x RS-25E2 x J-2X144.1"
SLS1C6J2C4RSRMV6 x RS-25E 2 x J-2X140.7 LUS and 4 x RL-10C-2 CPS use common bulkheads.

The following configurations have been simulated to a 96x241 km 28.45° orbit:

NameBoosterCoreUpper StagePayload (t)
SLS4C5J2.1ATK AB5 x RS-25D2 x J-2X146.2

The following configurations have been simulated to a 400 km 51.6° orbit:

NameBoosterCoreUpper StagePayload (t)
SLS1B4O1RSRMV4 x RS-25E1 x AJ10-19075.4
SLS2B4O1ATK AB4 x RS-25E1 x AJ10-19091.3
SLS1C4RSRMV4 x RS-25D-28.7
SLS1C4O1RSRMV4 x RS-25D1 x AJ10-19050.5

I have written a general purpose simulation program that simulates the Space Shuttle. The heart of the simulation program is rocket.pas which contains procedures used to determine the trajectory of any rocket using the Runga-Kutta fourth order method. I first wrote this for a Saturn V trajectory simulation program. rocket.pas is separate from the stage*.pas procedures which generate the appropriate values (such as thrust F, propellant rate Rp, time increment dt, etc.) for input to rocket.pas. const.pas contains the constants used in the stage*.pas procedures.

This program was compiled using Free Pascal.

When you execute "sls1c" you will get the following response

Enter output filename (return is standard output): 

   t      a     vi     h0       r0      alpha  beta  theta     Pq     m0+Me
  sec   m/s^2  m/s   metres   metres     deg    deg   deg      Pa       kg
-----------------------------------------------------------------------------
Turn time (s)? 

You should then enter the duration in which you want the rocket to pitch over. The pitch angle can be adjusted in const.pas with name angle1. The rocket then takes off vertically before pitching over for the time specified. This time does not include the time to move the rocket to and from angle1, so even if you set the angle to 0, the rocket will slightly pitch over. The output from the program has in each line

t	time, seconds
a	acceleration (excluding any external forces such as gravity and
        air drag); metres per second per second
vi	inertial speed; metres per second
h0	altitude above planet's surface; metres
r0	range; metres
alpha	thrust angle relative to inertial velocity vector or angle of attack; 
        degrees
beta	velocity angle relative to motionless planet; degrees
theta   velocity angle relative to rotating planet; degrees
Pq	Dynamic pressure; Pascals
m0+Me   the mass of the rocket

The first stage performs a gravity turn keeping the thrust vector and the air velocity vector the same. Thus the air angle of attack is zero. At the end of the first stage burn you are asked for the maximum angle of attack. This is relative to the inertial velocity vector. When this angle is greater than the air angle of attack, the angle of attack will gradually increase. This is due to the trajectory algorithm trying to maintain the rate of altitude increase. We have h0 as the height, h1 = dh0/dt is the rate of increase of height, and h2 = dh1/dt. Our orbit algorithm has h2 proportional to sign(h1)|h1|pow. pow is a constant and is set to 2.0. This seems to be not the most optimal algorithm, but I have found that it does a reasonable good job, getting you where you want to go.

The angle of attack will increase until the maximum angle is reached and be maintained there until centrifugal acceleration becomes strong enough. The angle of attack will then naturally decrease. The reason that "sls1c" needs this algorithm is that the engines doesn't have enough thrust to allow for a zero angle of attack. Well, this is what I found anyway. If anyone has a better way that uses a smaller angle of attack, I would be glad to hear from them.

One area I would like to improve is determining the coefficient of drag (cd) versus speed. The values I used were from the Mars Project by Werner von Braun for a 20 m diameter rocket. If anyone can help me out on this, I would greatly appreciate it.

20 May 2016 Corrected SLS2B5B4. Added SLS2B4V4.
19 May 2016 Added SLS2B5B4
18 May 2016 Added SLS1B4O1 and SLS2B4O1
8 Mar 2016 Added SLS2B4B4
7 Mar 2016 Added SLS2B5
4 Mar 2016 Added SLS2B
3 Mar 2016 Added SLS1B
20 Jul 2015 Updated SLS1C6J2C4
7 Jul 2015 Added SLS1C4J1.1, SLS1C5J2.1 and SLS4C4J2.2
6 Jul 2015 Added SLS1C6J2.1, SLS2C4J2.2, SLS3C4J2.2 and SLS4C5J2.2
24 Jun 2015 Added SLS1C6J2C4
28 Dec 2013 First release


Any comments, questions, additions, or corrections should be directed to
Steven S. Pietrobon
Small World Communications
6 First Avenue
Payneham South SA 5070
Australia

ph. +61 8 8332 0319
fax. +61 8 8332 3177
email: steven@sworld.com.au
web: http://www.sworld.com.au/