This project's objective was to propagate the trajectory of a spacecraft orbiting the Sun for 20 years. It compares using Cowell's and Encke's Methods for propagating perturbed orbits, and provides methods for obtaining the osculating orbits.
The spaceship is equipped with an efficient electric propulsion system providing a tangential thrust acceleration
The 2-body perturbed equations of motion are:
where
To solve the problem numerically, the equations of motion were converted to a 1st order ODE by introducing the augmented state vector
The initial conditions in the Sun-centred inertial frame were set as
with final state:
By converting from position and velocity in the inertial frame to orbital elements (OE), one can obtain the OE of the osculating orbit. An osculating orbit is a Keplerian Orbit tangential to the perturbed orbit at the point in which the OE were calculated, and shows the trajectory that the spacecraft would follow if the perturbations were to suddenly vanish. The osculating orbits of 5 instances along the perturbed trajectory are plotted below:
As can be seen below, the semi-major axis
The upwards trend can be understood by considering the energy added to the system by raising the orbiting altitude.
This program can propagate perturbed orbits using either Cowell's Method or Encke's Method. It can also obtain the osculating orbit at any instant along the perturbed trajectory. The initial conditions get_at()
function. The duration of the propagation is set in tf
. Parameters are currently defined in au and years, but these could be easily changed to other units or non-dimensionalized. The relative and absolute tolerance of the integration methods can be changed in the 3rd codeblock. MATLAB's ode45 was used for solving the 1st Order ODE but other methods could be employed by changing lines 24, 65 and 92.
This project was developed as part of a coursework for AERO70016 - Orbital Mechanics taught by Dr. Davide Amato and Dr. Rob Hewson (Imperial College London - MEng Aeronautical Engineering).