Specific Impulse and Thrust Coefficient¶
An Aerothermodynamics design point reports specific impulse under four
different names: Isp_vac, Isp_optimum, Isp_amb, and Isp_SL. They can
differ by more than an order of magnitude for the same engine. This page
explains what each one assumes, and when the ambient values stop being
meaningful.
Where the differences come from¶
The thrust of a rocket nozzle has two parts:
where \(\dot{m}\) is the propellant mass flow, \(v_e\) is the exhaust velocity at the nozzle exit, \(p_e\) is the static pressure at the exit plane, \(A_e\) is the exit area, and \(p_{amb}\) is the pressure of the surrounding atmosphere.
The first term is fixed by the combustion and expansion process. The second term is pure geometry and pressure: it depends on where the engine is flying, not on how well it burns. Every specific impulse below is the same first term combined with a different assumption about the second.
Specific impulse follows from thrust as
with \(g_0 = 9.81\ \mathrm{m\,s^{-2}}\). It is convenient to separate the contributions of the combustion chamber and the nozzle by writing thrust as
where \(p_c\) is the chamber pressure and \(A_t\) the throat area. The characteristic velocity \(c^*\) measures the chamber, and the thrust coefficient \(C_F\) measures the nozzle:
Pyskyfire computes one \(c^*\) and one vacuum thrust coefficient, then obtains every other operating condition by subtracting the ambient pressure term:
The four quantities¶
Isp_vac is the vacuum specific impulse, \(p_{amb} = 0\). The full pressure
term is added, so this is the largest of the four. It is the value to use for
upper stages and in-space engines, and it is what the mixture-ratio optimiser
in Mixture ratio optimisation
maximises.
Isp_optimum is the specific impulse at optimum expansion, meaning the
condition \(p_e = p_{amb}\) where the nozzle exit pressure exactly matches the
surrounding atmosphere. The pressure term vanishes and only \(\dot{m}v_e\)
remains, so this quantity is simply \(v_e/g_0\). It is the number NASA CEA
reports as Isp.
Two properties of Isp_optimum are easy to misread. It does not depend on the
p_amb given to the constructor — CEA never receives that value. And it is not
tied to a fixed altitude: it floats with whatever exit pressure the expansion
ratio happens to produce, so it describes a different altitude for every
nozzle.
Isp_amb is the specific impulse at the ambient pressure supplied as p_amb
when the design point is constructed. Isp_SL is the same calculation at a
fixed sea-level pressure of 101325 Pa. Both subtract the pressure term above,
and both carry the validity limit described in the next section.
The thrust coefficients CF_vac, CF_amb, and CF_SL correspond one-to-one
with these, and are related to them by \(I_{sp} = C_F c^*/g_0\).
A worked example¶
The RL10A-3-3A validation case in validation/RL10/ is a hydrogen/oxygen
upper-stage engine with \(\varepsilon = 61\), \(p_c = 33.2\) bar, and
\(c^* = 2375\ \mathrm{m\,s^{-1}}\), constructed with p_amb=1e5:
Quantity |
\(C_F\) |
\(I_{sp}\) |
Assumed \(p_{amb}\) |
|---|---|---|---|
Vacuum |
1.937 |
469.1 s |
0 |
Optimum expansion |
— |
452.0 s |
\(p_e = 3.85\) kPa |
Ambient |
0.102 |
24.7 s |
100 kPa |
Sea level |
0.078 |
18.8 s |
101.325 kPa |
The gap between the vacuum and optimum values, 17.1 s, is exactly the pressure
thrust \(p_e A_e/(\dot{m}g_0)\). The exit pressure of 3.85 kPa corresponds to an
altitude near 22 km, which is the altitude Isp_optimum describes for this
particular nozzle.
The sea-level figure is a different matter. It is not a small correction to 469 s; it is 4% of it.
When the ambient values stop being valid¶
The expression for \(C_{F,amb}\) assumes the nozzle flows full, with the exhaust attached to the wall all the way to the exit plane. A nozzle sized for vacuum violates that assumption at sea level.
In the example above the exit pressure is 3.85 kPa against an ambient of 101 kPa, an overexpansion of a factor of 26. Real flow does not tolerate this. The exhaust separates from the wall well upstream of the exit, at roughly the station where the wall pressure falls to \(0.3\)–\(0.4\) times ambient, which for this gas is somewhere near \(\varepsilon = 10\) rather than 61. The engine then behaves like a much smaller nozzle, delivers substantially more than the tabulated 18.8 s, and generates severe lateral loads on the nozzle extension.
Engine practice reflects this. Ground testing of the RL10 is done with altitude simulation — either in a true altitude chamber, such as the NASA Plum Brook B-2 facility that fired more than a hundred RL10s during Centaur development, or on a stand at sea level where a diffuser and steam-ejector system holds the pressure at the nozzle exit down to a few psia. And when a sea-level-capable RL10 was needed for the DC-X vehicle, the RL10A-5 variant was built with the expansion ratio cut from 57–61 to 4. The tabulated sea-level figure for the \(\varepsilon = 61\) engine therefore does not correspond to a condition the engine is operated in.
Note that the expansion ratio alone does not decide this; the ratio \(p_e/p_{amb}\) does. The Space Shuttle Main Engine has a comparable \(\varepsilon \approx 69\), but its chamber pressure of roughly 200 bar puts the exit pressure near 20 kPa rather than 3.85 kPa. It is overexpanded by a factor of about five at sea level instead of 26, and is routinely fired at sea level.
There is a numerical problem alongside the physical one. At \(\varepsilon = 61\)
the pressure term is \(1.860\) against a vacuum thrust coefficient of \(1.937\), so
CF_SL is the small difference of two nearly equal numbers. A 1% error in
\(C_{F,vac}\) moves Isp_SL by about 25%. Even as an idealisation, the value
carries almost no significant figures.
Pyskyfire reports Isp_amb and Isp_SL unconditionally and does not check for
separation. Treat them as valid only when the nozzle is close to matched — as a
rule of thumb, when \(p_e\) is within a factor of two or three of \(p_{amb}\). For
a high-expansion vacuum nozzle, use Isp_vac.
From ideal to delivered performance¶
All four values are ideal: they come from a one-dimensional equilibrium expansion and assume complete combustion. Real engines lose performance to two-dimensional divergence, the wall boundary layer, finite-rate chemistry, and imperfect injection.
If you are interested in reading more¶
Binder, M., Tomsik, T., and Veres, J. P., “RL10A-3-3A Rocket Engine Modeling Project”, NASA TM-107318, 1997 The source of the RL10A-3-3A design point and cooling-jacket data used in the
validation/RL10/case. Appendix E.2 states the efficiency relation, and table E3 tabulates \(\eta_{cf}\).Binder, M., “An RL10A-3-3A Rocket Engine Model Using the Rocket Engine Transient Simulator (ROCETS) Software”, NASA CR-190786, 1993 The earlier model of the same engine by the same author, and the predecessor to the report above.
RL10 variants and expansion ratios (Wikipedia) Convenient comparison of expansion ratios across the RL10 family, from the 4:1 sea-level RL10A-5 built for the DC-X to the 280:1 RL10B-2.
The RL10, a Usenet discussion by Bruce Dunn, Gary Hudson and Henry Spencer Informal but well-informed discussion of why the RL10 cannot be operated at sea level, including an estimate of the performance cost of shortening the nozzle enough to avoid separation.
NASA Plum Brook Station B-2 Spacecraft Propulsion Facility Description of the altitude chamber in which much RL10 and Centaur testing was carried out.
RL10 rocket engine literature index (science.gov) Aggregated abstracts, including descriptions of the steam-ejector and diffuser altitude-simulation systems used for static firing at sea level.