Skip to content

Commit

Permalink
Launch of ORBITM v1.0 (Stable)!
Browse files Browse the repository at this point in the history
Now with full documentation on Read-The-Docs!

https://orbitm.readthedocs.io/en/latest/
  • Loading branch information
sammmlow committed Apr 2, 2021
1 parent 9ac1e56 commit 1c4659b
Show file tree
Hide file tree
Showing 93 changed files with 18,064 additions and 117 deletions.
80 changes: 0 additions & 80 deletions README.md

This file was deleted.

81 changes: 81 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
.. image:: https://raw.githubusercontent.com/sammmlow/ORBITM/master/gui/orbm_logo_large.png

.. |docs| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat-square
:target: https://orbitm.readthedocs.io/en/latest/

.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
:target: https://github.com/sammmlow/ORBITM/blob/master/LICENSE

.. |orcid| image:: https://img.shields.io/badge/ID-0000--0002--1911--701X-a6ce39.svg
:target: https://orcid.org/0000-0002-1911-701X/

.. |linkedin| image:: https://img.shields.io/badge/LinkedIn-sammmlow-blue.svg
:target: https://www.linkedin.com/in/sammmlow

:Project: ORBITM
:Github: https://github.com/sammmlow/ORBITM
:Documents: https://orbitm.readthedocs.io/en/latest/
:Version: 1.0 (Stable)

|docs| |license|

:Author: Samuel Y. W. Low

|linkedin| |orcid|



Welcome to Orbit.M!
-------------------

Orbit.M is an open-source and free orbit maintenance simulator and propulsion sizing tool, recommended for use with near-circular low Earth orbits up to 1,000 km altitude, on Python.

It stands for the **Orbit Maintenance and Propulsion Sizing Tool**, and it comes with its own built-in orbit decay model and maintenance simulator. Alternatively, ORBITM can also be used to interface with and automate orbit maintenance simulations using AGI's Systems Tool Kit (STK) as an alternative simulator, through the STK Integration Object Model libraries.

.. note:: A valid license for STK 10 and 11, with Astrogator and Integration modules, is needed for interfacing with STK.

The objective of ORBITM is to allow for a quick sizing of low Earth orbit (LEO) mission lifetimes, sized against propulsion units of the user's choosing. The user can enter the parameters of their intended mission, the orbital elements, the spacecraft characteristics, and ORBITM would compute the ΔV necessary to counteract drag forces throughout the mission, while sizing it against your choices of thrusters (depending on your inputs in the **"thruster_shortlist.txt"** file).



First Steps in Using Orbit.M
----------------------------

First things first, check that you have these Python libraries: **TKinter, NumPy, Matplotlib**, and among other standard libraries such as **os, datetime, comtypes etc**. If you do not have Python, I recommend using the `Anaconda installer <https://www.anaconda.com/>`_ with Spyder as your IDE, as it comes with all the installed packages by default.

Now, the software can be started by running the Python file **orbitm.py** in the main directory (equivalent to the directory you see on the master branch on ORBITM's github page). You should see a GUI, like below, pop up:

.. image:: https://raw.githubusercontent.com/sammmlow/ORBITM/master/gui/orbm_screenshot.png

You can fill in your spacecraft and orbit parameters through the GUI, check that you have your desired thruster specified in the "thruster_shortlist.txt" file on the main ORBITM directory.

Now, you can hit **Run ORBITM**, and it will output a ΔV report as a text file, and plot the altitude profile and the locus of thruster requirements that satisfy your mission (in terms of the required fuel mass against Isp). Example plots are shown below, with plots in blue ran under the fast algorithm (Sam's), and plots in orange ran under the more precise orbit model in STK.

.. image:: https://raw.githubusercontent.com/sammmlow/ORBITM/master/gui/orbm_outp_550km.png

The above results were run for a 200kg satellite at 550km circular orbit. Note that the blue and orange plots in the thruster requirements profile almost overlap.

For full documentation, please refer to the `ORBITM Read-The-Docs. <https://orbitm.readthedocs.io/en/latest/>`_



Final Notes
-----------

This project is free, and open-source. If you would like to contribute to this project, add in new features, or enhance existing atmospheric models etc, please free free to branch the master repository and collaborate with me. I am also hoping to interface ORBITM's use with other astrodynamics softwares like GMAT, and improve on existing features such as improving the accuracy of the atmospheric density models etc.

If you had felt that OrbitM was useful in your research, please do give the due credit and cite my paper or this project!

Low, S. Y. W., &; Chia, Y. X. (2018). “Assessment of Orbit Maintenance Strategies for Small Satellites”, 32nd Annual AIAA/USU Conference on Small Satellites, Logan, Utah, Utah State University, USA.

Contact
-------

If you have any other queries feel free to reach out to me at:

[email protected]

|linkedin| |orcid|

*Last Modified on 03-04-2021*

2 changes: 1 addition & 1 deletion codes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
## | _ | _ \| _ \|_ _||_ _| | | ##
## | |_| | <| _ < | | | | | \ / | _ ##
## |_____|_|\_|____/|___| |_| |_|\/|_| |_| ##
## v 0.1 ##
## v 1.0 ##
## ##
## This is just a blank initialisation file. ##
## ##
Expand Down
Binary file modified codes/__pycache__/__init__.cpython-37.pyc
Binary file not shown.
Binary file removed codes/__pycache__/orbitm_func_atmos.cpython-37.pyc
Binary file not shown.
Binary file removed codes/__pycache__/orbitm_func_kepler.cpython-37.pyc
Binary file not shown.
Binary file removed codes/__pycache__/orbitm_run_offline.cpython-37.pyc
Binary file not shown.
Binary file removed codes/__pycache__/orbitm_run_stk.cpython-37.pyc
Binary file not shown.
Binary file removed codes/__pycache__/orbitm_tkinter_ui.cpython-37.pyc
Binary file not shown.
33 changes: 23 additions & 10 deletions codes/orbitm_func_atmos.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
###########################################################
###########################################################
### Created on Wed May 24 11:27:54 2017 ###
### Updated on Thu Oct 22 15:55:15 2020 ###
### By Samuel Low, DSO National Laboratories ###
### Atmospheric Density Model ###
### U.S. Standard Atmosphere Table 1976 ###
### Valid only for altitudes 86km to 1000km ###
###########################################################
###########################################################
# -*- coding: utf-8 -*-

###############################################################################
###############################################################################
## ##
## _____ ___ ____ ___ _____ ______ ##
## | _ | _ \| _ \|_ _||_ _| | | ##
## | |_| | <| _ < | | | | | \ / | _ ##
## |_____|_|\_|____/|___| |_| |_|\/|_| |_| ##
## v 1.0 ##
## ##
## FILE DESCRIPTION: ##
## ##
## Atmospheric density model based on the U.S. Standard Atmosphere 1976. ##
## Returns the atmospheric density (km/m^3) given an altitude input (km). ##
## Valid only for altitudes between 86km to 1000km. ##
## ##
## Written by Samuel Y. W. Low. ##
## First created 24-05-2017 11:27:54 (+8 GMT) ##
## Last modified 22-10-2020 15:55:15 (+8 GMT) ##
## ##
###############################################################################
###############################################################################

import math

Expand Down
33 changes: 23 additions & 10 deletions codes/orbitm_func_kepler.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
###########################################################
###########################################################
### Created on Wed May 24 11:27:54 2017 ###
### Updated on Thu May 25 13:36:15 2017 ###
### By Samuel Low ###
### Atmospheric Density Model ###
### U.S. Standard Atmosphere Table 1976 ###
### Valid only for altitudes 86km to 1000km ###
###########################################################
###########################################################
# -*- coding: utf-8 -*-

###############################################################################
###############################################################################
## ##
## _____ ___ ____ ___ _____ ______ ##
## | _ | _ \| _ \|_ _||_ _| | | ##
## | |_| | <| _ < | | | | | \ / | _ ##
## |_____|_|\_|____/|___| |_| |_|\/|_| |_| ##
## v 1.0 ##
## ##
## FILE DESCRIPTION: ##
## ##
## A solver for Kepler's equation; taking in the mean anomaly and the ##
## orbit eccentricity as input, the program solves for the eccentric ##
## anomaly of the spacecraft via a Newton-Raphson approach. ##
## ##
## Written by Samuel Y. W. Low. ##
## First created 13-01-2021 10:34 AM (+8 GMT) ##
## Last modified 13-01-2021 10:34 AM (+8 GMT) ##
## ##
###############################################################################
###############################################################################

import math

Expand Down
Loading

0 comments on commit 1c4659b

Please sign in to comment.