Python simulation estimating the center of mass (CoM), center of pressure (CoP), moment of inertia, and static stability of the Mercury-Redstone rocket during powered ascent.
The rocket is statically unstable for roughly 87% of the burn duration, consistent with its historical reliance on active inertial guidance rather than passive aerodynamic stability.
The rocket's main body is modelled as a vertical cylinder divided into seven axially-stacked components (nozzle, oxidizer tank, fuel tank, guidance system, Mercury capsule, escape tower, frame), plus four fins. The capsule and tower are modelled as frustums. Component masses and CoM positions are computed via Gaussian quadrature, and the CoM's time evolution is obtained by modelling propellant depletion at a constant mass flow rate, with the liquid surface height dropping as each tank empties. The CoP is estimated using the Barrowman equations for subsonic slender-body flight. Static stability margin is defined as the axial distance between CoM and CoP, benchmarked against the one-caliber criterion (SM >= one body diameter).
A full derivation of the model, all assumptions, and a discussion of the
results is in report/Rocket_CoM.pdf.
- Initial CoM: 8.52 m from the base (inside the fuel tank)
- Minimum CoM during burn: 7.55 m, at t = 77.09 s
- Final CoM at burnout: 11.49 m
- Initial moment of inertia: 551,100 kg m^2
- Moment of inertia at burnout: 268,600 kg m^2 (a ~51% decrease)
- Center of pressure (time-invariant): 7.94 m from the base
- Statically unstable (SM < 0) between t = 23.3 s and t = 110.4 s
- One-caliber stability criterion met only for the final 8.3 s of the 143.5 s burn
rocket-com-cop-stability/
src/
rocket_CoM.py Main simulation script
figures/
(generated on run)
report/
Rocket_CoM.pdf Full write-up (MNRAS format)
requirements.txt
README.md
Requires Python 3.9+.
pip install -r requirements.txt
python src/rocket_CoM.py
This prints the key computed values to the terminal and saves all
figures to figures/ (CoM evolution, moment of inertia, angular
velocity under perturbation torques, stability margin, CoP vs CoM, and
the 3D rocket surface plot). No plot windows pop up by default; pass
show_plots=True to main() if you want them displayed interactively.
The script is organised as a set of functions rather than one linear script, so individual pieces can be imported and reused, e.g.:
from rocket_CoM import define_geometry, compute_initial_state
g = define_geometry()
state = compute_initial_state(g)
print(state['CoM_init'])- Ground-test approximation: the rocket is assumed to remain vertical for the full burn (no gravity turn, no tilt).
- Rigid body: no structural flexing or propellant sloshing.
- Uniform density per component; masses of the nozzle, guidance system, and frame are estimated rather than sourced directly, since these are not publicly documented for Mercury-Redstone.
- The Barrowman equations assume subsonic flight at small angles of attack. Mercury-Redstone reached approximately Mach 6 during powered flight, so the CoP estimate is only valid for the early subsonic portion of the burn; no supersonic correction is applied.
- Constant propellant mass flow rate (no startup transient or throttling).
See the Discussion section of the report for the full treatment of these limitations and their expected effect on the results.
Cassidy J., Johnson R., Leveye I., Miller F., 1964, The Mercury-Redstone Project. NASA Technical Reports Server.
MIT