Rocket Simulation

Modelling of a rocket's trajectory and Kalman filter-based noise reduction.

Screenshot 1 Screenshot 2

In this project, I aimed to simulate the trajectory of a rocket with custom thrust profiles and evaluate methods for attenuating noisy tracking data.

The trajectory was simulated using a higher-order numerical method (Runge-Kutta 4) to maintain accuracy while allowing larger step sizes. Thrust was modelled through a configurable thrust equation, with impulse calculated via trapezoidal integration, allowing for arbitrary thrust profiles such as bell-shaped curves or profiles with an initial spike. The simulation also accounted for gravity and a basic atmospheric drag model using a drag coefficient of 0.75.

For example, a 5-second bell-shaped burn applied at t = 20 seconds increases the rocket’s apogee, as shown in the left image.

To simulate measurement uncertainty, I added discrete white noise, Gaussian noise, and a constant offset to the tracking data using FilterPy. I then applied a Kalman filter and Rauch–Tung–Striebel (RTS) smoother to estimate the true trajectory.

The filtered trajectory matched the true path within approximately two metres of error, despite significant noise in the measurements. As shown in the right image, the system was able to recover the original flight path with only a small residual offset.

Technologies: Python, Kalman Filtering, Runge-Kutta Methods, Thrust Curve Modelling
← Back to Projects
This portfolio is best viewed on desktop