This lab targets a graduate flight dynamics / aerospace systems course
(MSc core or PhD elective). Prerequisites: rigid-body dynamics (Euler’s
equations), an ODE course covering numerical integration basics, and
familiarity with Python/NumPy. No prior exposure to missile/rocket
aerodynamics is assumed — aerodynamic-model.md and atmosphere-model.md
are written to stand alone.
mathematical-model.md and
FM04.pdf Secs. 1-2 together. Discuss why each of the five modeling
assumptions is reasonable for this problem and where it would break.coordinate-systems.md +
Exercise 1(c). Whiteboard the 3-rotation derivation of L_BE live.equations.md. Walk through
equations_of_motion.py line-by-line, matching each Python line to a
term in Eq. (1)/Euler’s equation.numerical-methods.md + Exercises 2-3 as an
in-class coding session (pair programming: implement Euler, then RK4).atmosphere-model.md +
aerodynamic-model.md. Use the GUI’s Aerodynamics page live to
sweep Mach and discuss the transonic hump.uncertainty-analysis.md +
Exercise 8 assigned as a take-home. Discuss OAT vs. global sensitivity
methods.Emphasize numerical rigor over cosmetic plot-matching: a student who gets a different impact range than the paper but correctly explains why (digitized-coefficient caveat, different elevation angle used in the worked example, etc.) should score higher than one who does not acknowledge the discrepancy at all.
aerodynamic-model.md before spending hours trying to exactly match the
paper’s numeric figures — the source PDF’s coefficient table is
corrupted by OCR/extraction and this repo’s values are a stand-in.The codebase is intentionally modular (rocket.py, atmosphere.py,
aerodynamics.py, frames.py, equations_of_motion.py, integrators.py,
simulate.py, dispersion.py) so instructors can swap in:
RocketParams),aerodynamics.py’s tables),without touching the rest of the pipeline.