Skip to content

Commit

Permalink
Saved README as md instead of txt.
Browse files Browse the repository at this point in the history
  • Loading branch information
newpomax committed May 21, 2021
1 parent 43b71cc commit 2435767
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 207 deletions.
87 changes: 44 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@ This code is meant to simulate the performance of small liquid rocket engines.
Currently, the code is set to handle the properties of nitrous oxide as an
oxidizer. However, the properties of any fuel can be taken as input.

* **Features:**
* Two-phase nitrous oxide injector flow simulation using the Homogeneous
* **Features:**
* Two-phase nitrous oxide injector flow simulation using the Homogeneous
Equilibrium Model
* Ability to import real combustion data varying with oxidizer to fuel
* Ability to import real combustion data varying with oxidizer to fuel
ratio and combustion chamber pressure.
* Capability of simulating a self-pressurized oxidizer tank, an oxidizer
* Capability of simulating a self-pressurized oxidizer tank, an oxidizer
tank with pressurant gas loaded in the ullage, or an oxidizer tank with an
external pressurant gas supply tank with a regulator.
* Over fifteen plotting outputs allowing extensive insight into rocket
* Over fifteen plotting outputs allowing extensive insight into rocket
motor dynamics.
* A simple Python-based graphic user interface for easy interaction.
* A simple Python-based graphic user interface for easy interaction.

* **Requirements:**
* This code requires the MATLAB Optimization toolbox. Please make sure you have it installed before using!
* If using the Python GUI, please see the **PYTHON GUI** section below about MATLAB engine requirements and
* **Requirements:**
* This code requires the MATLAB Optimization toolbox. Please make sure you have it installed before using!
* If using the Python GUI, please see the **PYTHON GUI** section below about MATLAB engine requirements and
requirements.txt location.

----------------------------------------------
Expand Down Expand Up @@ -63,21 +63,21 @@ of the rocket engine with combustion (hot fire).
Test cases are meant to easily verify that parts of the code are working for
development purposes. However, they may serve useful purposes.

### PlotN2OProperties.m
* **PlotN2OProperties.m**
This script tests the generation of nitrous oxide oxidizer properties. It
also provides insight into the important properties of the chemical that
drive the rocket motor dynamics, such as the vapor pressure and its
dependence on temperature.

### TestCodeAccuracy.m
* **TestCodeAccuracy.m**
This script tests the numerical convergence of the simulation and can be used
to determine the numerical error as a function of time step.

### TestNozzleCalc.m
* **TestNozzleCalc.m**
This script tests the compressible quasi-1D flow calculator that is used
for nozzle calculations and injector gas flow calculations.

### TestOxMassFlux.m
* **TestOxMassFlux.m**
This script tests the calculation of two-phase nitrous oxide flow
calculation. The functions tested here are used for the prediction of
injector mass flow rate.
Expand All @@ -98,67 +98,68 @@ injector mass flow rate.

----------------------------------------------
## DEVELOPMENT NOTES
* For ease of calculation, all units within the simulation are metric. This
For ease of calculation, all units within the simulation are metric. This
includes the following units: m, s, kg, K, mol, J, N. However, outputs or
inputs may be defined in other convenient units.
* Output variable recording is set up to be independent of the state
inputs may be defined in other convenient units.

Output variable recording is set up to be independent of the state
calculation for run-time efficiency.

----------------------------------------------
## THEORETICAL BASIS
* Tank Dynamics:
* The liquid and gas within the oxidizer tank is assumed to be in thermal
* Tank Dynamics:
* The liquid and gas within the oxidizer tank is assumed to be in thermal
equilibrium. The van der Waal's equation is used to model the state of the
gas and while not completely as accurate as empirical saturation state data,
allows the calculation of non-saturated states.
* Pressurant Gas:
* Pressurant gas can be modeled as loaded into the ullage volume or supplied
* Pressurant Gas:
* Pressurant gas can be modeled as loaded into the ullage volume or supplied
from an external tank. In either case, all gas within the tank is assumed to
be in thermal equilibrium with the nitrous oxide. Isentropic expansion is
simulated in the external pressurant tank.
* Injector Dynamics:
* Two types of injector flow are modeled. While liquid remains in the tank,
* Injector Dynamics:
* Two types of injector flow are modeled. While liquid remains in the tank,
two-phase flow is assumed, modeled using the Homogeneous Equilibrium Model.
With only gas in the oxidizer tank, isentropic compressible quasi-1D flow
modelling is used. However, no frictional losses are modeled apart from a
discharge coefficient factor for the injector orifices.
* Combustion:
* The combustion is modeled by predicting the exhaust properties within the
* Combustion:
* The combustion is modeled by predicting the exhaust properties within the
combustion chamber. An efficiency factor, or c-star efficiency, is applied
to the exhaust gas temperature.
* Nozzle:
* Quasi-1D isentropic flow is used to model the nozzle flow, including the
* Nozzle:
* Quasi-1D isentropic flow is used to model the nozzle flow, including the
cases of subsonic flow, supersonic flow, and normal shocks in the nozzle.
A nozzle exhaust thermal efficiency is applied to the exhaust energy. A
correction factor accounting for the divergence factor of the nozzle is
also applied.
* Integration:
* Euler's method is used for integration, using a constant time step.
* Integration:
* Euler's method is used for integration, using a constant time step.

----------------------------------------------
## TODO:
* Useability:
* Creation of a format for storing run data, so that runs can be stored and
* Useability:
* Creation of a format for storing run data, so that runs can be stored and
graphed without rerunning the code every time and even more easily compared.
* Reformatting the data analysis function for user-friendliness. (Should come
* Reformatting the data analysis function for user-friendliness. (Should come
after above).

* Accuracy:
* Upgrading of integration method. Removal of all of the Euler elements remaining
in the integrator, so that it's fully handled by variable timestep ode15s
* Implementing of drag in flow lines and cooling from orifices in mainline code.
* Upgrading of nitrous tank model to simulate pressure dip. Ongoing research effort.
* Accuracy:
* Upgrading of integration method. Removal of all of the Euler elements remaining
in the integrator, so that it's fully handled by variable timestep ode15s
* Implementing of drag in flow lines and cooling from orifices in mainline code.
* Upgrading of nitrous tank model to simulate pressure dip. Ongoing research effort.
Could possibly approximate by just preventing boil off for a certain time during burn.
* Replacing the Van der Waals equations of state with Peng-Robinson for greater accuracy
* Replacing the Van der Waals equations of state with Peng-Robinson for greater accuracy
at supercritical temperatures.

* Capability:
* Create tool for analyzing accelerometer data for combustion stability.
* Create GSE analysis tools. Given a launch time, how long do we have for tank load
* Capability:
* Create tool for analyzing accelerometer data for combustion stability.
* Create GSE analysis tools. Given a launch time, how long do we have for tank load
before we reach supercritical? Input those settings into launch.
* Monte Carlo simulation. Be able to input a spread of input parameters and have the
* Monte Carlo simulation. Be able to input a spread of input parameters and have the
code automatically provide the spread in a given output parameter.
* Add more propellant combinations to the database.
* Investigate differences between simulation and test data for
* Add more propellant combinations to the database.
* Investigate differences between simulation and test data for
supercharged oxidizer tank case

164 changes: 0 additions & 164 deletions README.txt

This file was deleted.

0 comments on commit 2435767

Please sign in to comment.