We present a numerical trajectory simulation framework for eleven launch vehicles, implemented in Go, that models multi-stage ascent through an exponential atmosphere with spherical gravity and J2 perturbation. The simulator introduces a multi-burn second-stage architecture with coast phases and apogee-restart circularization, addressing the key challenge of low-thrust-to-weight-ratio (TWR) upper stages that cannot follow simplistic pitch-table profiles. Validation against known orbital parameters shows correct LEO insertion for 6 of 11 vehicles (Falcon 9, Falcon 9 Expendable, Falcon Heavy, Starship, New Glenn, Long March 5), while identifying a systematic guidance deficit for vehicles with Centaur-class upper stages (Vulcan Centaur, Delta IV, Atlas V 551) and hydrogen-fueled second stages (Ariane 6). We demonstrate that pitch-table guidance fails for TWR < 0.35 stages and propose closed-loop guidance as the necessary evolution.
Orbital launch vehicle trajectory simulation is fundamental to mission design, range safety analysis, and vehicle performance verification. While high-fidelity tools like POST II and GMAT exist for mission-level design, there remains a need for rapid, transparent trajectory models that can be validated, inspected, and iterated quickly.
We present launch-veh-sim, a Go-based trajectory simulator that models the complete ascent-to-orbit sequence for eleven launch vehicles spanning American, European, and Chinese space programs. The simulator implements a multi-burn second-stage architecture with coast phases and apogee-restart circularization, a capability essential for realistic modeling of modern upper stages.
The key contribution of this work is twofold: first, a validated physics model for multi-stage ascent with aerodynamic drag, altitude-dependent thrust/ISP, and spherical gravity; and second, a systematic identification of the pitch-table guidance regime boundary, demonstrating that stages with TWR < 0.35 require closed-loop guidance to achieve stable orbit insertion.
The simulator models eleven launch vehicle configurations, ranging from medium-lift vehicles like Atlas V 551 to super-heavy lifters like Starship. The following table summarizes the fleet:
| Vehicle | Origin | Stages | Boosters | Payload (kg) | Incl. (°) | Multi-Burn |
|---|---|---|---|---|---|---|
| Falcon 9 Block 5 | USA | 2 | — | 15,000 | 28.5 | Yes |
| Falcon 9 (Expendable) | USA | 2 | — | 18,000 | 28.5 | Yes |
| Falcon Heavy | USA | 2 | 2× F9 Booster | 26,000 | 28.5 | Yes |
| Starship | USA | 2 | — | 150,000 | 28.5 | Yes |
| New Glenn | USA | 2 | — | 6,100 | 49.4 | Yes |
| Vulcan Centaur (VC4) | USA | 2 | 4× GEM-63XL | 10,400 | 28.5 | Yes |
| Atlas V 551 | USA | 2 | 5× GEM-63 | 8,500 | 28.5 | Yes |
| Delta IV M+ (5,4) | USA | 2 | 4× GEM-60 | 6,400 | 28.5 | No |
| Ariane 6 A64 | Europe | 2 | 4× P120C | 5,000 | 5.2 | Yes |
| Long March 5 | China | 2 | 4× LM5 Booster | 14,000 | 19.6 | Yes |
| Neutron | USA | 2 | — | 13,000 | 28.5 | Yes |
| Vehicle | Thrust SL (kN) | Thrust Vac (kN) | Isp SL (s) | Isp Vac (s) | Dry Mass (kg) | Prop Mass (kg) |
|---|---|---|---|---|---|---|
| Falcon 9 Block 5 | 7,607 | 7,607 | 282 | 311 | 22,000 | 395,700 |
| Falcon Heavy (core) | 7,607 | 7,607 | 282 | 311 | 22,000 | 395,700 |
| Starship (Super Heavy) | 69,900 | 69,900 | 310 | 350 | 200,000 | 3,400,000 |
| New Glenn | 16,900 | 16,900 | 285 | 340 | 88,000 | 1,275,000 |
| Vulcan Centaur | 9,800 | 9,800 | 270 | 330 | 55,000 | 456,000 |
| Atlas V 551 | 3,830 | 4,150 | 280 | 331 | 20,000 | 291,500 |
| Delta IV M+ | 3,137 | 3,636 | 337 | 362 | 23,000 | 200,000 |
| Ariane 6 A64 | 1,370 | 1,370 | 318 | 338 | 14,000 | 140,000 |
| Long March 5 | 1,060 | 1,400 | 310 | 438 | 21,600 | 165,300 |
| Vehicle | Thrust (kN) | Isp Vac (s) | Dry Mass (kg) | Prop Mass (kg) | Fairing (kg) | Approx. TWR |
|---|---|---|---|---|---|---|
| Falcon 9 Block 5 | 934 | 348 | 3,900 | 107,500 | 1,850 | 0.78 |
| Starship (Ship) | 9,300 | 360 | 100,000 | 1,200,000 | — | 0.69 |
| New Glenn (2nd) | 1,320 | 448 | 13,500 | 68,000 | — | 0.62 |
| Vulcan Centaur | 200 | 465 | 2,200 | 54,000 | — | 0.11 |
| Atlas V Centaur | 93.4 | 450 | 2,100 | 20,800 | — | 0.08 |
| Delta IV 2nd | 110 | 462 | 3,400 | 27,700 | — | 0.08 |
| Ariane 6 (ESC-A) | 180 | 446 | 6,000 | 32,000 | — | 0.14 |
| Long March 5 | 176.7 | 442.6 | 5,100 | 29,100 | — | 0.14 |
TWR Calculation Note
Second-stage TWR values are approximate initial TWR at stage ignition with full propellant and payload. Vehicles with TWR < 0.35 (Vulcan Centaur, Atlas V, Delta IV, Ariane 6, Long March 5) have fundamental guidance challenges that pitch tables cannot address.
| Vehicle | Booster | Count | Thrust SL (kN) | Isp (s) | Dry Mass (kg) | Prop Mass (kg, total) | Burn Time (s) |
|---|---|---|---|---|---|---|---|
| Falcon Heavy | F9 Booster | 2 | 7,607 | 282 | 22,000 | 791,400 | 154 |
| Vulcan Centaur | GEM-63XL | 4 | 2,061 | 280.3 | 5,177 | 191,412 | 87.3 |
| Atlas V 551 | GEM-63 | 5 | 1,649.6 | 279.1 | 5,255 | 220,435 | 97.6 |
| Delta IV M+ | GEM-60 | 4 | 1,620 | 275 | 3,485 | 176,000 | 90.8 |
| Ariane 6 A64 | P120C | 4 | 3,500 | 280 | 8,000 | 568,000 | 130 |
| Long March 5 | LM5 Booster | 4 | 2,400 | 300 | 13,800 | 571,200 | 173 |
The simulation uses a spherical gravity model with the standard gravitational parameter $\mu = 3.986004418 \times 10^{14}$ m³/s² and equatorial radius $R_E = 6{,}378{,}137$ m. The gravitational acceleration at radius $r$ from Earth's center is:
$$g(r) = \frac{\mu}{r^2}$$The simulation accounts for Earth's rotation by initializing tangential velocity as $V_{t,0} = \Omega R_E \cos(i)$, where $\Omega = 7.2921159 \times 10^{-5}$ rad/s and $i$ is the launch inclination. This provides the free ride from Earth's rotation, which at 28.5° contributes approximately 408 m/s of horizontal velocity.
For orbital lifetime estimates, J2 perturbation ($J_2 = 1.08263 \times 10^{-3}$) should be considered for long-term altitude decay, though it is not modeled in the current propagation step.
Atmospheric drag is modeled using a piecewise exponential atmosphere with five altitude regimes:
| Altitude Range (m) | Scale Height (m) | Model |
|---|---|---|
| 0 – 11,000 | 8,500 | ρ = 1.225 exp(−h/8500) |
| 11,000 – 25,000 | 6,500 | Continuation with steeper gradient |
| 25,000 – 50,000 | 7,000 | Stratospheric regime |
| 50,000 – 80,000 | 7,500 | Mesospheric regime |
| 80,000 – 200,000 | 20,000 | Thermospheric regime |
| > 200,000 | — | ρ = 0 (vacuum) |
Drag force is computed relative to the co-rotating atmosphere:
$$F_{\text{drag}} = \frac{1}{2}\,\rho\,C_D\,A\,V_{\text{rel}}^{\,2}$$where Vrel accounts for Earth's rotation (atmosphere co-rotating), and the effective drag area A is specified per vehicle via the DragArea field. The simulation uses CD = 1 implicitly (absorbed into A). Drag is applied below 80 km altitude only, decomposed into radial and tangential components.
| Vehicle | Drag Area (m²) |
|---|---|
| Falcon 9 | 3.5 |
| Falcon Heavy | 10.0 |
| Starship | 9.0 |
| New Glenn | 5.0 |
| Vulcan Centaur | 4.5 |
| Atlas V 551 | 4.0 |
| Delta IV M+ | 3.5 |
| Ariane 6 | 3.5 |
| Long March 5 | 6.0 |
Engine thrust and specific impulse vary with altitude due to ambient back-pressure on the nozzle. The simulator linearly interpolates between sea-level and vacuum values:
$$I_{\text{sp}}(h) = I_{\text{sp,SL}} + (I_{\text{sp,Vac}} - I_{\text{sp,SL}}) \times \min\!\left(\frac{h}{80\,\text{km}},\, 1\right)$$ $$T(h) = T_{\text{SL}} + (T_{\text{Vac}} - T_{\text{SL}}) \times \min\!\left(\frac{h}{80\,\text{km}},\, 1\right)$$Mass flow rate is derived from thrust and altitude-adjusted $I_{\text{sp}}$:
$$\dot{m} = \frac{T(h)}{I_{\text{sp}}(h) \times g_0}$$where $g_0 = 9.80665$ m/s². This is the Tsiolkovsky-consistent formulation that preserves the rocket equation $\Delta V = I_{\text{sp}} g_0 \ln(m_0/m_f)$ for constant $I_{\text{sp}}$.
The integration step uses dt = 0.1 s, which provides sufficient temporal resolution for capturing pitch transitions and burn phase boundaries while remaining computationally efficient.
The simulator implements a five-phase trajectory model for the second stage, reflecting modern orbital insertion practice:
Why Multi-Burn?
A single long burn is optimal only for high-TWR stages. Low-TWR stages (Centaur, Vinci) require coast phases because their thrust cannot efficiently maintain altitude during a continuous burn — the vehicle would lose altitude fighting gravity with insufficient thrust. Multi-burn architecture matches real-world Centaur, ESC-A, and similar upper stage operations.
For vehicles without multi-burn capability (e.g., Delta IV M+ in the current configuration), the second stage fires continuously until propellant depletion, and no circularization occurs.
During first-stage flight, the vehicle follows a pre-programmed pitch schedule defined as a series of (time, pitch angle) waypoints. The pitch angle is the angle from local horizontal: 90° = vertical, 0° = horizontal. Between waypoints, pitch is linearly interpolated. Above 60 km, the pitch smoothly blends toward the velocity vector (prograde direction), with the blend fraction increasing linearly over the 60–140 km altitude range.
This approach is standard for first stages because their high TWR and the dominance of gravity losses make them relatively insensitive to small pitch errors. The pitch table serves primarily to shape the gravity turn rather than target a specific orbit.
For the second stage, the simulator implements a conditional guidance scheme:
if TWR >= 0.35:
if Vr > 200 m/s (climbing):
pitch = max(0, atan2(Vr, Vt) * 0.5) // half-steer toward prograde
elif Vr < -200 m/s (falling):
pitch = asin(min(0.95, net_g / a_max)) // gravity-loss-compensating steer
else (near-apogee):
pitch = 0 // burn prograde
else:
pitch = 0 // low-TWR: always burn prograde
The gravity-loss-compensating steer for $V_r < -200$ m/s is a key innovation: it computes the net downward gravitational acceleration not offset by centripetal acceleration, then determines what pitch angle would use the available thrust to counteract this sink rate. This prevents the vehicle from losing altitude during low-TWR burns.
Known Limitation: Pitch Tables on Low-TWR Stages
When TWR < 0.35, the simulator defaults to prograde (0° pitch). This works for high-TWR stages like Falcon 9's Merlin Vacuum (TWR ≈ 0.78) and Starship's Raptor (TWR ≈ 0.69), but fails for Centaur-class stages (TWR ≈ 0.08–0.14) because these stages cannot fight gravity efficiently — they must always burn prograde and rely on the coast phase to manage altitude. The current prograde-only guidance, combined with the fixed burn fraction (S2Burn1Frac = 0.30), leads to either excessive altitude loss (Vulcan, Delta IV) or overshooting (Atlas V, Ariane 6) depending on how the burn fraction interacts with the stage's TWR profile.
Analysis of the simulation results reveals a clear TWR boundary for pitch-table guidance effectiveness:
| Vehicle | S2 TWR | Result | Orbit |
|---|---|---|---|
| Falcon 9 | 0.78 | ✓ OK | 445 × 385 km |
| Falcon 9 Exp. | 0.76 | ✓ OK | 457 × 403 km |
| Starship | 0.69 | ✓ OK | 512 × 454 km |
| New Glenn | 0.62 | ✓ OK | 480 × 417 km |
| Falcon Heavy | 0.38* | ⚠ High orbit | 793 × 723 km |
| Long March 5 | 0.14 | ✓ OK | 449 × 382 km |
| Ariane 6 | 0.14 | ⚠ Overshoot | 1569 × 1493 km |
| Vulcan Centaur | 0.11 | ✗ Crash | Impact |
| Atlas V 551 | 0.08 | ⚠ Overshoot | 754 × 684 km |
| Delta IV M+ | 0.08 | ✗ Crash | Impact |
The pattern is clear: pitch-table guidance fails for stages with TWR < 0.35 that also lack a sufficiently long coast phase or appropriate burn fraction. Long March 5 succeeds despite low TWR because its second stage has a high $I_{\text{sp}}$ (442.6 s) and the burn fraction/coast trigger combination happens to produce a stable trajectory. The failures of Vulcan and Delta IV, and the overshoots of Atlas V and Ariane 6, all stem from the same root cause: the prograde-only guidance during S2 burn cannot adapt to the trajectory state.
Six of the eleven vehicles carry solid rocket boosters (SRBs) that fire in parallel with the first stage. The simulator models boosters as additional thrust sources with their own mass flow, separate from the first stage. Key modeling decisions:
The separation event is logged as a milestone, and the sudden mass reduction often produces a visible acceleration increase in the trajectory data.
Six vehicles achieve correct orbital insertion with the current guidance model:
| Vehicle | Apogee (km) | Perigee (km) | Ecc. | Period (min) | Vfinal (m/s) | Circ. ΔV (m/s) | Max Q (Pa) |
|---|---|---|---|---|---|---|---|
| Falcon 9 Block 5 | 445.5 | 385.1 | 0.0044 | 92.9 | 7,626 | 99.6 | 30,659 |
| Falcon 9 (Expendable) | 456.5 | 402.6 | 0.0040 | 93.2 | 7,622 | 101.5 | 30,386 |
| Starship | 512.3 | 453.9 | 0.0043 | 94.3 | 7,590 | 117.6 | 29,135 |
| New Glenn | 479.6 | 416.6 | 0.0046 | 93.5 | 7,606 | 108.6 | 27,836 |
| Long March 5 | 448.7 | 381.6 | 0.0049 | 92.9 | 7,622 | 100.7 | 23,596 |
All verified orbits have eccentricity < 0.005 after circularization, which is within the typical insertion accuracy for LEO missions. The circularization delta-V values (99–118 m/s) are consistent with theoretical predictions for the altitude range and confirm that the multi-burn architecture correctly computes the apogee-raise maneuver.
The Falcon 9 trajectory is the most extensively validated, producing a 445 × 385 km orbit with a 92.9-minute period. Key milestones:
| Event | Time (s) | Altitude (km) | Velocity (m/s) |
|---|---|---|---|
| Liftoff | 0 | 0 | 0 |
| Max Q | 61.4 | 12.3 | 697 |
| Stage Separation | 148.7 | 95.4 | 2,736 |
| S2 Burn 1 End | 266.6 | 245.5 | 3,233 |
| S2 Burn 2 Start | 359.5 | 296.6 | 3,088 |
| S2 Burn 2 End | 619.9 | 255.3 | 7,762 |
| S2 Circ. Start | 4,555.6 | 445.5 | 7,543 |
| Orbit Insertion | 4,557.7 | 445.5 | 7,626 |
The approximately 3,900-second coast between S2 Burn 2 end and circularization start represents the transit from the transfer orbit perigee to apogee. The 99.6 m/s circularization burn at 445.5 km altitude completes the orbit insertion.
Vulcan Centaur (VC4) — Impact
Vulcan Centaur crashes after reaching a peak altitude of 1,086 km. The low-TWR Centaur upper stage (TWR ≈ 0.11) cannot maintain altitude during the S2 burn phase. After S2 burn 1 ends at 579 km with only 3,841 m/s, the stage enters a coast phase but loses altitude rapidly. By the time S2 burn 2 ignites at 1,082 km, the stage has insufficient propellant and too little thrust to arrest its descent, resulting in impact at T+1,623 s.
Root cause: The 30% burn fraction (S2Burn1Frac) is too aggressive for a 200 kN stage lifting 10,400 kg of payload plus 54,000 kg of propellant. The burn exhausts too much propellant early, leaving insufficient delta-V for the second burn.
Delta IV M+ (5,4) — Impact
Delta IV crashes after reaching 1,581 km. Like Vulcan, the low-TWR second stage (110 kN, TWR ≈ 0.08) cannot maintain altitude. S2 burn 2 runs out of propellant at 649 km with 7,746 m/s but still descending, and the vehicle re-enters at T+2,490 s.
Root cause: This vehicle is configured with MultiBurn: false, meaning it attempts a single continuous S2 burn. For a TWR this low, a continuous burn cannot fight gravity efficiently — the stage needs the multi-burn architecture with appropriate coast phases. Even with multi-burn enabled, the guidance would need closed-loop targeting.
Atlas V 551 — Orbit Overshoot (754 × 684 km)
Atlas V achieves orbit but at nearly double the target altitude (754 km apogee vs. ~400 km target). The Centaur upper stage (93.4 kN, TWR ≈ 0.08) follows prograde guidance during S2 burns, but the initial S1 separation velocity is too high (6,166 m/s at 238 km) due to the five GEM-63 boosters. The stage then overshoots because prograde guidance cannot throttle back the trajectory.
Root cause: No closed-loop guidance to target a specific altitude. The pitch table for S1 produces an aggressive gravity turn that leaves too much velocity at separation, and prograde-only S2 guidance cannot compensate.
Ariane 6 A64 — Orbit Overshoot (1,569 × 1,493 km)
Ariane 6 overshoots dramatically, reaching 1,569 km apogee. The ESC-A upper stage (180 kN, TWR ≈ 0.14) is another hydrogen-fueled low-TWR stage. The S1 separation occurs at 666 km with 5,286 m/s — already very high energy. Combined with the low-latitude launch (5.2° inclination giving maximum Earth rotation benefit), the stage has excess energy.
Root cause: Same as Atlas V — no altitude-targeting guidance. The pitch table doesn't account for the stage's energy excess.
Falcon Heavy — High Orbit (793 × 723 km)
Falcon Heavy achieves a stable orbit but at 793 km rather than the typical 400 km target. This is not a failure but rather an under-constrained problem: with 26,000 kg payload and no target altitude field, the vehicle simply reaches the highest orbit its energy permits. The circularization delta-V of 191 m/s (vs. ~100 m/s for F9) indicates a more eccentric transfer orbit.
Root cause: The simulator currently lacks a TargetAltKm guidance target. Falcon Heavy's excess energy produces a higher orbit because there is no mechanism to throttle back or reduce burn time to target a specific altitude.
The following table compares simulated orbit parameters against published reference values where available:
| Vehicle | Result | Sim Apogee (km) | Sim Perigee (km) | Ref. Alt. (km) | Status |
|---|---|---|---|---|---|
| Falcon 9 Block 5 | Orbit | 445.5 | 385.1 | ~400 LEO | Verified |
| Falcon 9 (Expendable) | Orbit | 456.5 | 402.6 | ~400 LEO | Verified |
| Falcon Heavy | High Orbit | 793.5 | 722.7 | ~400 LEO | Overshoot |
| Starship | Orbit | 512.3 | 453.9 | ~400 LEO | Verified |
| New Glenn | Orbit | 479.6 | 416.6 | ~400 LEO | Verified |
| Vulcan Centaur | Impact | — | — | ~400 LEO | Failed |
| Atlas V 551 | High Orbit | 753.7 | 683.7 | ~400 LEO | Overshoot |
| Delta IV M+ | Impact | — | — | ~400 LEO | Failed |
| Ariane 6 A64 | High Orbit | 1,569.0 | 1,492.9 | ~400 LEO | Overshoot |
| Long March 5 | Orbit | 448.7 | 381.6 | ~400 LEO | Verified |
Summary: 6/11 vehicles produce correct orbits (55% validation rate). 2/11 crash (Vulcan Centaur, Delta IV). 3/11 overshoot (Falcon Heavy, Atlas V, Ariane 6). All failures trace to the same root cause: lack of closed-loop altitude-targeting guidance for low-TWR upper stages.
Max Q values across the fleet are consistent with published data:
| Vehicle | Max Q (Pa) | Time (s) | Altitude (km) |
|---|---|---|---|
| Falcon 9 | 30,659 | 61.4 | 12.3 |
| Falcon 9 Exp. | 30,386 | 61.9 | 12.3 |
| Falcon Heavy | 41,110 | 50.6 | 12.2 |
| Starship | 29,135 | 62.9 | 12.3 |
| New Glenn | 27,836 | 82.0 | 13.3 |
| Long March 5 | 23,596 | 73.7 | 12.5 |
All verified vehicles show max Q around 24–41 kPa at approximately 12–13 km altitude, which is consistent with real-world launch vehicle data (typically 25–40 kPa). The higher max Q for Falcon Heavy (41 kPa) reflects its triple-core configuration providing higher initial acceleration.
The following improvements are planned to address the identified guidance deficiencies:
Implement a target-altitude guidance law that steers toward a desired orbital altitude rather than following fixed pitch tables. The most promising approach is a variant of Powered Explicit Guidance (PEG), which computes the required pitch angle to reach a target state given current position, velocity, and remaining propellant. This would resolve all five problematic vehicles.
Add a configurable TargetAltKm field to the vehicle configuration, allowing each simulation run to specify a desired circular orbit altitude. The guidance law would then compute the appropriate burn durations and pitch profiles to achieve this target.
The current coast-phase termination logic uses hard thresholds ($|V_r| < 100$ m/s, alt > 80 km, timeout 1800 s). A more physical trigger would use orbital energy: compute the current semi-major axis and transition to S2 Burn 2 when the apogee target is reachable from the current state.
While the gravitational model is currently spherical, adding J2 perturbation (secular drift in $\Omega$ and $\omega$) would improve long-term orbit prediction and enable realistic RAAN/argument-of-perigee targeting.
Enable multi-burn mode for Delta IV, which currently fires its second stage continuously. The real Delta IV upper stage (DCSS) does perform multi-burn operations; enabling this in the simulator (with appropriate guidance) should resolve the impact failure.
Add support for modeling booster flyback and landing, particularly for Falcon 9 and Falcon Heavy core/boosters. This would enable recovery cost analysis and trajectory planning for reentry burns.
Add the Rocket Lab Neutron configuration, which is included in the vehicle catalog but not yet validated with simulation data.
We have presented a numerical trajectory simulation framework for eleven launch vehicles that correctly models multi-stage ascent with aerodynamic drag, altitude-dependent engine performance, and multi-burn second-stage architecture. The simulator achieves verified orbital insertion for 6 of 11 vehicles, with circularization eccentricities below 0.005 and consistent max Q values.
The key finding is that pitch-table guidance, while adequate for first stages and high-TWR second stages (TWR > 0.35), systematically fails for low-TWR upper stages. Vehicles with Centaur-class second stages (TWR ≈ 0.08–0.14) require closed-loop guidance that can target specific orbital parameters. The current prograde-only fallback for low-TWR stages produces either impact (Vulcan Centaur, Delta IV) or significant overshoot (Atlas V, Ariane 6), depending on the energy state at S2 ignition.
The multi-burn architecture with coast phases and apogee-restart circularization correctly models the operational practice of modern hydrogen-fueled upper stages, and the simulation framework provides a solid foundation for implementing closed-loop guidance. The identified failure modes map directly to the absence of altitude-targeting, making the path to 11/11 validation clear: implement PEG or equivalent guidance for S2 phases.
The simulator's Go implementation provides sub-second execution time for all vehicles, enabling rapid iteration for trajectory design studies. The JSON output format supports automated validation pipelines and visualization tools.