Skip to content
timeout187 edited this page Jul 9, 2026 · 1 revision

FAQ

Q: Is this a real weapons-engineering tool? No. RocketDynamicsLab is a teaching laboratory for graduate flight-dynamics courses. It is not validated, certified, or intended for any operational, design, or targeting use. See the repository README's "teaching tool, not operational tool" banner.

Q: Why don't the trajectory numbers exactly match the source paper?

Two reasons:

  1. Different firing angle. The paper's worked example (Figs. 2–9) uses a 50° elevation angle; this repo's GUI/example defaults use 45° unless you change it.
  2. Reconstructed aerodynamic coefficients. The source PDF's Table 1 (Missile-Datcom-derived coefficients) has a corrupted text layer — its columns of numbers are interleaved by OCR/extraction and cannot be reliably separated back into the original per-Mach rows. This repo uses a representative reconstruction that preserves the reported trend (transonic hump around M≈1.0–1.4, supersonic decay) but is rescaled to numerically well-behaved, textbook-typical magnitudes. See docs/aerodynamic-model.md in the main repo for the full explanation.

Every numeric default in this repository should be treated as a fictional teaching dataset, not the paper's actual proprietary design data.

Q: My trajectory "blew up" — huge numbers or NaN. Is that a bug?

Usually not — see User Manual: Interpreting a divergent trajectory. This is intentional pedagogical territory: the system has a fast gyroscopic "coning" oscillation near launch that a fixed-step integrator must resolve even though we only care about the slow trajectory outcome. Push dt down until it stabilizes — that's Assignment Exercise 3.

Q: Why does the rotational-dynamics equation not show the general (non-axisymmetric) Izx cross-product term from the paper's Euler's Equation box?

This repo implements the simplified axisymmetric case (Iyy=Izz, Ixy=Iyz=Izx=0), matching the paper's own Sec. 3 case-study assumption ("the two lateral principal moments of inertia are identical"). See Equations and docs/equations.md for the full derivation context.

Q: Can I use a different rocket's mass/geometry properties?

Yes — RocketParams (src/simulator/rocket.py) is a plain dataclass; pass your own values to run_simulation(rocket=RocketParams(...)). Similarly, AeroModel and Atmosphere accept custom coefficient tables/parameters. The whole pipeline is modular by design (see the Architecture section of the main README).

Q: Does this model Earth's rotation / Coriolis effects?

There's an optional include_earth_rotation flag in state_derivative() implementing the paper's Eq. (3), disabled by default (flat, non-rotating Earth) since it's negligible for this rocket's short (~1-2 min) flight time. Assignment Exercise 6 asks you to enable it and discuss when it would matter more (e.g., long-range ballistic missiles).

Q: Where are the exercises and grading guidance?

See docs/assignments.md (nine graduate-level exercises) and docs/instructor-guide.md (7-session schedule, rubric, pitfalls) in the main repository.

Q: How do I report a bug or suggest an improvement?

Open an issue or pull request at https://github.com/timeout187/RocketDynamicsLab. See the README's Contributing section.

Clone this wiki locally