Rocket Trajectory Predictor

 

The Objective:

The objective of this project is to create a Python program that produces a selection of graphs including a mapped trajectory of a rocket. This project has begun as a preliminary investigation to one of our future aims to fly a specially-designed NORB board on a rocket. This is mainly an educational project so this won't be released as a an actual piece of software and production will be slow.

 

Software Features:

  • A drop down menu where upon the user can select from a multitude of rocket motors which will of course alter the trajectory of the rocket accordingly. If another motor is required, an extra section where the user can enter characteristics of the motor will be available.
  • A section where the user can specify information about the rocket they are using, such as its weight and its coefficient of drag.
  • The predictor will take into account the wind speeds from live wind forecasts taken from a reliable source.

 

Here's an example of the sort of graphs we'll be producing:

 

 

At the moment, the code operates by searching through a given range of possible rocket masses in 100g steps, calculating the drag, velocity and altitude each time until it finds the optimal rocket mass for the highest altitude. It then goes on to plot a few different graphs such as those above.

Also included in these calculations are those required to calculate varying air density with altitude to be used when calculating the force of drag at different stages of flight. This is called the atmospheric pressure model.

The next task is to implement an interface where the user can select from a range of rocket motors for their rocket. There will also be an extra option for the user to enter their own information for a motor, if necessary. At the moment, it is assumed that the default motor provides 50N of constant thrust for exactly 3 seconds. This next step will involve analysing thrust/time curves for different rocket motors and implementing them into the program for the user to select.

Current code can be found on my Github.

 

Published on