-
Notifications
You must be signed in to change notification settings - Fork 0
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:
- 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.
-
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.mdin 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.
RocketDynamicsLab