.. chamber_eff
Chamber Efficiencies
====================
Mixing Efficiency
-----------------
**RocketIsp** considers two types of mixing efficiency,
the mixing between adjacent elements (Mixing Angle) and
the mixing within a given injector element (Rupe :math:`E_m`).
In **RocketIsp** those two types are handled by a mixing angle model and a Rupe :math:`E_m` model.
Both mixing models require the use of an :ref:`Injector model `
in order to characterize the injector face and the individual elements.
Mixing Angle
~~~~~~~~~~~~
The adjacent element mixing efficiency model is based on the "Mixing Angle", defined as the
angle between injector face elements as measured from the throat plane.
(Note that the angle is measured from edge-to-edge of each element, not center-to-center)
Historically, thrusters with a mixing angle of 2 degrees has about a 99% mixing efficiency.
This observation, known as the "Two Degree Rule", is the basis for the simple scaling
equation used by **RocketIsp** to approximate the mixing efficiency.
The equation below shows how the "Two Degree Rule" is used in a simple scaling equation
for :math:`\eta_{mix}`.
Once the angle between the elements is determined (:math:`\alpha_{deg}`) in degrees,
the mixing efficiency is:
:math:`\Large{\eta_{mix} = 1 - 0.01 * ( \alpha_{deg} / 2 )^2}`
The chart below shows a typical inter-element mixing loss, as calculated by the
"Two Degree Rule" used in **RocketIsp**.
.. image:: ./_static/mixing_eff.png
:width: 49%
Notice that the chart uses "element density",
defined as the total number of elements divided by the injector face area::
elemDens = Nelements / Ainj
where:
Nelements = number of elements on injector face
Ainj = injector face area (in**2)
elemDens = element density (elements / in**2)
.. note::
While high element density is very good for mixing efficiency, it should be noted that
there are manufacturing and combustion stability limits on how high element density can be.
Rupe :math:`E_m`
~~~~~~~~~~~~~~~~
In 1953, Rupe published the paper
`The Liquid-Phase Mixing of a Pair of Impinging Streams `_
that measured the effectiveness of mixing in a pair of impinging streams
and defined the mixing factor, :math:`E_m`.
The mixing factor, :math:`E_m`, was evaluated experimentally on the basis of local mixture ratios
at different radial angle and distance from the impingement element.
In this original paper, :math:`E_m` ranged from 0 to 100 as described by the equation below.
When :math:`E_m` is 0, the propellants are totally unmixed, when :math:`E_m` is 100 the propellants are perfectly mixed.
(NOTE: In recent times, :math:`E_m` is usually expressed as a fraction from 0.0 to 1.0
and sometimes referred to as the mixing efficiency, :math:`\eta_m`)
.. image:: ./_static/Rupe_1953_Em_v2.jpg
Rupe typically found maximum values of :math:`E_m` between 75 and 85 (0.75 to 0.85 as :math:`\eta_m`)
In 1993, the final report
`Additional support for the TDK/MABL computer program `_
discusses possible approaches to using :math:`E_m` in performance calculations.
The chart below, Figure 4 from appendix C, suggests the use of a cumulative mass fraction distribution chart
as a way to characterize average high and low oxidizer mass fraction (i.e. mixture ratio)
as a function of :math:`E_m`.
.. image:: ./_static/Rupe_Nickerson_Em.jpg
:width: 49%
This idea of an average high and low mixture ratio, each a function of :math:`E_m`,
is used in **RocketIsp** to calculate the Isp efficiency :math:`\large{\eta_{E_m}}`.
The approach is defined in the
`User's manual for rocket combustor interactive design (ROCCID) and analysis computer program `_
in section 2.2, STEADY STATE COMBUSTION ITERATION (SSCI).
Equations 2.4a and 2.4b from ROCCID (equations below) calculate average high and low mixture ratios as well
as high and low stream tube mass fractions.
.. image:: ./_static/ROCCID_MRhi_MRlo.jpg
Based on these ROCCID equations, **RocketIsp** calculates :math:`\eta_{E_m}` as
.. code-block:: python
mrLow = MRcore * elemEm
mrHi = MRcore / elemEm
IspLow = calcIsp( mrLow )
IspHi = calcIsp( mrHi )
IspCore = calcIsp( MRcore )
xm1 = (1.0 + mrLow) / (1.0 + elemEm) / (1.0 + MRcore)
xm2 = 1.0 - xm1
effEm = (xm1*IspLow + xm2*IspHi) / IspCore
or
:math:`\Large{\eta_{E_m} = (xm1*IspLow + xm2*IspHi) / IspCore}`
.. note::
:math:`E_m` is an input to RocketIsp.
For preliminary design purposes, think of mixing factor, :math:`E_m`, as:
:math:`E_m` = 0.7 Below average injector
:math:`E_m` = 0.8 Average injector
:math:`E_m` = 0.9 Above average injector
.. _ref_to_EmMRopt:
:math:`E_m` and :math:`MR_{opt}`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
One consequence of a mixture ratio distribution due to :math:`E_m` is that a
real engine's optimum mixture ratio
will be moved away from the steeper side of an Isp vs mixture ratio curve.
The image below shows how optimum mixture ratio for a sample N2O4/MMH thruster
is affected by an injector element's ability
to mix propellants. A perfect injector will tend to optimize near the ODK optimum,
real injectors with wider MR distributions will optimize at a more fuel rich mixture ratio.
.. image:: ./_static/effEm_Isp_impact.png
:width: 49%
Vaporization Efficiency
-----------------------
The vaporization efficiency model in **RocketIsp** is based on the report
`Propellant Vaporization as a Design Criterion for Rocket-Engine Combustion Chambers
`_
by Richard J. Priem and Marcus F. Heidmann.
The model calculates the vaporized fraction of both the oxidizer and fuel
by using the following equation for the generalized vaporization length (Lgen)
and the chart below the equation to look up their vaporized fractions.
(see document for definition of terms in Lgen equation)
.. image:: ./_static/Lgen_equation.jpg
.. image:: ./_static/lgen_chart.jpg
Once the vaporized fractions of ox and fuel are available, use them to calculate
the Isp vaporization efficiency :math:`\large{\eta_{vap}}`
as the fraction of total propellant vaporized times the ratio of (Isp at vaporized MR)
to (Isp at core MR).
:math:`\huge{ \eta_{vap} = \frac { f_{vap} * IspODK_{MRvap}} {IspODK_{MRcore}} }`
In python code...
.. code-block:: python
# get vaporized MR
mrVap = MRcore * fracVapOx / fracVapFuel
# get total vaporized propellant fraction
fracVapTot = (fracVapOx*wdotOx + fracVapFuel*wdotFl) / wdotTot
# calc vaporization efficiency
vapIsp = get_IspODK( MR=mrVap )
effVap = fracVapTot * vapIsp / IspODK
Fuel Film Cooling
-----------------
Estimating the performance loss due to fuel film cooling (FFC) reduces down to estimating the amount of
core stream tube combustion gas that is entrained into the barrier stream tube.
The model for calculating the entrained core gases,
comes from `Combustion effects on film cooling, NASA-CR-135052 `_.
That model assumes two stream tubes, as shown in the illustration below, and uses the input, ko (typical range from 0.03 to 0.06)
as the main input affecting entrainment.
As a general first estimate of ko, the default value of 0.035 is a good starting point.
Note that `Combustion effects on film cooling, NASA-CR-135052 `_
recommends using test data to determine the best value.
.. image:: ./_static/entrained_ffc.jpg
Pulsing Efficiency
------------------
One of the options for the **RocketThruster** is to run the engine in short pulses.
The two inputs to the thruster that control the pulsing efficiency are: **pulse_sec** and **pulse_quality**
(:ref:`see RocketThruster definitions `).
The :math:`\eta_{pulse}` model is just a rough approximation based on the curves below.
Engine design features like dribble volume or ox/fuel lead/lag will impact pulsing performance, however,
the shape of the pulsing efficiency will probably look similar to the chart below. (Note that the vehicle's
tank mixture ratio can shift dramatically from the steady state MR if a lot of the duty cycle involves pulsing.)
The chart reflects some historical data where a **pulse_quality** of 0 is fairly poor and a
**pulse_quality** of 1 is fairly good.
In all cases, the shorter the pulse, the more loss in :math:`Isp_{del}`.
.. image:: ./_static/pulse_eff_range.png