JacobC182 / BEng-Thesis-Project---SatOrbit

4th Year Disseration Project Code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

//----------------------------------------------------------------------------------------//
Read-me file for the MATLAB Orbit Propagator - Jacob Currie - 2021

This software was developed as part of a dissertation for partial fulfillment of an
honours degree at the University of Strathclyde. The final Dissertation detailing the
in-depth development of the dynamical model used, as well as the possibilities of
simulation, and detailed postprocessed results examples, is also included.

//----------------------------------------------------------------------------------------//
-Description-
This project encompasses an orbit propagation software system, capable of simulating the
orbit of space debris, satellites, or any other hypothetical body, around Earth, in a
geocentric reference frame.

The model propagates orbits using the MATLAB numerical integration function ODE113,
allowing for settings adjustments to be made following the MATLAB documentation for the
ODE113 integator function.

-Requirements-
This model is implemented in MATLAB R2020b and requires this software or a newer version
to run.

This software also makes use of and requires the following optional MATLAB Add-On's:
1. Aerospace Toolbox
2. AerospaceBlockset
3. Aerospace Blockset CubeSat Simulation Library
4.Parallel Computing Toolbox

For very large and long simulations a very large amount of computing power is
recommended, otherwise the computation time will be very long.

The total file size may also grow very large when computing a large amount of orbits
the precision of the saved output can be adjusted to reduce file size, detailed below.

-Model Capabilities-
The dynamical model used to compute orbits around earth is capable of accounting for
the most significant sources of orbital perturbation, present in the real orbital space
around earth. Included are the following:
1.The Earth's oblateness (causes orbital precession)
2.Lunar Gravity
3.Solar Gravity
4.Direct Solar Radiation Pressure (Simplified)

The properties of the satellite can be adjusted to simulate different sizes of solar
radiation contact area. This is done by adjusting its area to mass ratio value.

-Files Included-
Main.m - This is the MAIN script that is used to run the software and compute orbits!
			Use this file to start simulating orbits for different configurations.
				
					//This, along with the looping variant "MainLoop" should
					//be all you need to propagate orbits with this software.

SatODE.m - This is the dynamical model that allows for computation, it contains the
			equations that allow for the propagation of orbits, this file wont
			need any adjustment.
			
MainLoop.m - While the Main.m allows simulation of a single orbit, this allows for the
			simulation of a range of orbits as a batch, however this requires a large
			amount of computing power, this script utilises multiple CPU cores to
			distribute the load and speed up computation time, a fast, high core-count
			CPU will help with this.
			
StopEvent.m - This is a stop condition function for the software, allowing for the
			simulation to be terminated if the satellite satisfies a certain condition.
			EG. if the satellite leaves earths orbit or performs re-entry.
			
SaveOrbitData.m - This function handles the file saving of the model, does not require
			and alteration.
			
The functions and files written to aid in testing and
validation of the model and creation of the project,
and to create the postprocessed results similar to those
shown in the dissertation paper, are not included.

-Outputs-
The software outputs the results in the form of a numbered, delimited text file
accompanied by a matching metadata file containing the initial conditions and settings
of the model.

The output results are an array of the position and velocity value of the satellite, at
very small discrete time intervals, which can be used to describe the satellites orbital
state at any time inside the simulation time.

-Inputs/Configuration-

All inputs and simulation controls are configured inside the Main.m or MainLoop.m scripts.
all values (input and output) are with respect to a geocentric reference frame.

The initial conditions of the simulated object, can be defined either with traditional
XYZ coordinates, or using the Keplerian system of orbital elements.

The Simulation Start and End time can be set here also.

The perturbing influences offered by the model can be switched on and off here,
(Oblateness, Sun/Moon Gravity, Solar Radiation)

If using the MainLoop.m function to simulate many orbits at once, the range of initial
conditions, as well as the resolution of the discrete gaps between the range of conditions
can be configured here.

To compute results and the run a simulation, configure the Main/Mainloop script as desired
and use the MATLAB "Run" button, if using the MainLoop script, allow for the startup of
the MATLAB parallel pool, configure your parallel pool settings
following MATLAB's documentaton.

About

4th Year Disseration Project Code


Languages

Language:MATLAB 100.0%