Skip to content
Philip Linden edited this page Jul 20, 2016 · 22 revisions

What's all this for?

Small satellites such as CubeSats require propulsion systems in order to perform orbital maneuvers in Low Earth Orbit (LEO), and the average lifespan of a CubeSat in LEO at an altitude of 400 km is about 4 years. The mission lifetime of such vehicles could be extended by years or even decades given the ability to execute short maneuvers which compensate for orbital decay. A delta-V impulse of roughly 100-300 m/s is sufficient to prolong a CubeSat’s orbit or deorbit the craft from LEO. RIT Space Exploration is pursuing a project which requires a 100 m/s impulse in LEO.

A resistojet is a method of propulsion by which an inert gas stored at ambient temperature, a.k.a. a “cold-gas,” is released from a pressurized vessel (or driven by a pump) is heated by an electric heating element before being expelled out of a nozzle. This system, known as an electrothermal rocket engine, is advantageous for use by small satellites since the engines may be small in size, have few moving parts, and do not use combustible fuels. Resistojet engines produce less thrust than chemical rocket engines, but are more efficient, do not require ignition, and are easy to store for long periods.

The project proposal for this project calls for the design and fabrication of a resistojet electrothermal engine (using air or helium as fuel) for use by a 1U or 3U CubeSat, with preference to 1U, and a test stand to quantify the performance of the engine.

Where does the code come in?

The thruster's nozzle, propellant, and chamber conditions each have a huge impact on performance. The fluid mechanics that model engine effectiveness are pretty complicated, unfortunately. The goal of this script is to make it easy to see how tweaks in nozzle geometry, propellants, and chamber conditions affect performance and to find the optimal design solution.

Why Python?

When approaching engine design, especially with respect to the nozzle, there are many interconnected mathematical relationships that must be considered, and changing one parameter is not always trivial. A script is perfectly suited to perform this job: given a set of inputs that may be varied, compute nozzle performance characteristics.

While Matlab, Mape or Mathematica are just as capable to do this, I intend to write this script in Python. Python is free, cross-platform, and extensible. For this project, I'll utilize WinPython 3.4.4.2 which includes SciPy, NumPy, SymPy, and matplotlib libraries.

Documentation

Clone this wiki locally