$g = gravity\ \frac{in}{s^2} $
$c* = characteristic\ velocity $
$\gamma= specific\ heat\ ratio$ (obtained from CEA)
$C_f = thrust\ coefficient$
$P_e = exit\ pressure\ (PSI) $
$P_a = ambient\ pressure\ (PSI) $
$P_{c_{ns}} = nozzle\ stagnation\ pressure\ (PSI) $
$P_{c_{inj}} = chamber\ total\ pressure\ at\ injector\ end$ (This is generally treated as equivalent to the total pressure)
$P_i = inlet\ pressure\ (PSI)$
$A_e = Exit\ Area\ (in^2)$
$A_t = Throat\ Area\ (in^2)$
$F = thrust\ (lb)$
$ISP = specific\ impulse\ (s)$
$r = mixture\ ratio$ (Taken from https://www.braeunig.us/space/comb-OE )
$T_C= chamber\ temperature\ (deg\ R)$
$M_i= nozzle\ inlet\ flow\ mach\ number$
$M= molecular\ weight$
$R_{gas}= gas\ constant$
(source https://www.applichem.com/en/shop/product-detail/as/ethanol-70-reinst-dab/ )
$\rho_{lox} = 71.38$ $\frac{lb}{ft^3}$
$\rho_{lox} = 0.0413$ $\frac{lb}{in^3}$
$\nu_{lox} = 0.0003389$ $\frac{in^2}{s}$
$\nu_{ethanol} = 0.00210187$ $\frac{in^2}{s}$
$\rho_{ethanol} = 55.249$ $\frac{lb}{ft^3}$
$\rho_{ethanol} = 0.03197$ $\frac{lb}{in^3}$
$\mu_{lox} = 0.000013999$ $\frac{lb}{in*s}$
$\mu_{ethanol} = 0.000067197$ $\frac{lb}{in*s}$
$M= 22 \frac{g}{mol} = 22 \frac{lbf}{lb*mol}$ (Taken from CEA)
$M_i = 0.3$
The flow is:
Laminar when $Re<2300$
Transient when $2300<Re<4000$
Turbulent when $4000<Re$
$Re = Reynolds\ number = \frac{\rho*u*D_h}{\mu}$
$D_h= hydraulic diameter$
For an annulus $D_h= D_o-D_i$
From Huzzel and Huang Eqn 1-28......:
$$ISP = \frac{(c*)C_f}{g} = \frac{F}{\dot{m}_{total}}$$$Theoretical\ c*$ $$c*_{theo}= \frac{\sqrt{g\gamma*T_c*R}}{{\gamma\sqrt{\frac{2}{\gamma+1}}}^{\frac{\gamma+1}{\gamma-1}}} $$
$Actual\ c*$ $$c*_{act} = \eta_v*(c*_{theo})$$
$Theoretical\ C_F$ $$C_{f_{theo}} = \sqrt{\frac{2\gamma^2}{\gamma-1}[{\frac{2}{\gamma+1}}]^{\frac{\gamma+1}{\gamma-1}}[1-{\frac{P_e}{P_{c_{ns}}}}^{\frac{\gamma-1}{\gamma}}]}+\epsilon[\frac{P_e-Pa}{P_{c_{ns}}}]$$
$Actual\ C_F$ $$C_{f_{act}} = \eta_f(C_{f_{theo}})$$
$$P_{c_{ns}} = P_i*(1+\frac{1}{2}*(\gamma-1)Mi^2)^\frac{\gamma}{\gamma-1}$$$$\epsilon = \frac{A_e}{A_t} = \frac{\frac{2}{\gamma +1}^\frac{1}{\gamma-1}\frac{P_{c_{ns}}}{P_e}^\frac{1}{\gamma}}{\sqrt{\frac{\gamma +1}{\gamma-1}(1-\frac{P_e}{P_{c_{ns}}})^\frac{\gamma-1}{\gamma}}}$$From Huzzel and Huang Eqn 128......:
$$\dot{m}_{total} = \frac{F}{ISP}$$$$\dot{m}_{ethanol} = \frac{\dot{m}_{total}}{1+r}$$$$\dot{m}_{lox} = r*\dot{m}_{ethanol}$$$P_c = Chamber\ Pressure\ = 350\ PSI$
$P_a = 14.7\ PSI$
$P_e= 14.7\ PSI$
$r = 1.25$
$\gamma = 1.192$
$T_c= 3050\ K = 5490\ R$
$R_{gas} = \frac{1544}{M} \frac{ft}{degR} = \frac{18528}{M} \frac{in}{degR}$
import math
from IPython.display import display
from ipywidgets import widgets
F_ = widgets.Text("500", description="Thrust, F (lb)", width=60)
r_ = widgets.Text("1.2", description="Mixture Ratio, r", width=60)
gam_ = widgets.Text("1.12", description="Specific Heat Ratio, gamma", width=60)
Pa_ = widgets.Text("14.7", description="Ambient Pressure, Pa, (PSI)", width=60)
Pc_ = widgets.Text("350", description="Chamber Pressure, Pc, (PSI)", width=60)
Pe_ = widgets.Text("14.7", description="Exit Pressure, Pe, (PSI)", width=60)
g_ = widgets.Text("386.4", description="Gravity, g (in/s^2)", width=60)
Tc_ = widgets.Text("5232", description="Chamber Temperature, Tc (R)", width=60)
Pinj_= widgets.Text("350", description= "chamber total pressure at injector, (PSI)", width=60)
Mi_ = widgets.Text("0.3", description="Mach Number at inlet", width=60 )
M_ = widgets.Text("22.1", description="Molecular Weight from CEA", width=60 )
etaf_ = widgets.Text(".98", description="eta_f", width=60 )
etav_ = widgets.Text(".98", description="eta_v", width=60 )
display(F_)
display(r_)
display(gam_)
display(Pa_)
display(Pc_)
display(Pe_)
display(Pinj_)
display(g_)
display(Tc_)
display(Mi_)
display(M_)
display(etaf_)
display(etav_)
g=float(g_.value)
r=float(r_.value)
F=float(F_.value)
Pe=float(Pe_.value)
Pc=float(Pc_.value)
Pa=float(Pa_.value)
Pinj=float(Pinj_.value)
gam=float(gam_.value)
Tc=float(Tc_.value)
Mi=float(Mi_.value)
M=float(M_.value)
eta_f= float(etaf_.value)
eta_v= float(etav_.value)
#Solving for c, c*, epsilon
R=18528/M
Pcinj = Pinj #Chamber total pressure is equal to injector pressure
Pi = Pinj/(1+gam*Mi**2)
Pcns = Pi*(1+((gam-1)/2)*Mi**2)**(gam/(gam-1))
cstar_theo = math.sqrt(g*R*gam*Tc)/(gam*math.sqrt((2/(gam+1))**((gam+1)/(gam-1))))
epsilon = ((2/(gam+1))**(1/(gam-1))*(Pcns/Pe)**(1/gam))/math.sqrt((gam+1)/(gam-1)*(1-(Pe/Pcns))**((gam-1/gam)))
Cf_theo = (math.sqrt(2*gam**2/(gam-1)*(2/(gam+1))**((gam+1)/(gam-1))
*(1-(Pe/Pcns)**((gam-1)/gam))))+epsilon*((Pe-Pa)/Pcns)
cstar_act= eta_v*cstar_theo
Cf_act= eta_f*Cf_theo
print("c*_theo = ", cstar_theo)
print("epsilon = ", epsilon)
print("Cf_theo = ", Cf_theo)
print("c*_act = ", cstar_act)
print("Cf_act = ", Cf_act)
print(R)
c*_theo = 65087.36539697642 epsilon = 2.3946989791123037 Cf_theo = 1.4575862419184928 c*_act = 63785.61808903689 Cf_act = 1.428434517080123 838.3710407239819
ISP=(cstar_act*Cf_act)/g
m_total = F/ISP
m_ethanol = m_total/(1+r)
m_lox = r*m_ethanol
print("m_total = ", m_total)
print("m_ethanol = ", m_ethanol)
print("m_lox = ", m_lox)
print("ISP = ", ISP)
m_total = 2.1204303796280763 m_ethanol = 0.9638319907400347 m_lox = 1.1565983888880416 ISP = 235.80118677968576
The injector design should produce high combustion performance and stable operation without affecting injector and thrust chamber durabilities. There are a few different types of injectors used in a rocket engine. The types of injectors are impinging, pintle..... there are various combinations, unlike vs. like combined with either doublet, triplet or quadlet.
For ease of machinability and other reasons, the pintle injector has been chosen as the injector for the liquid fueled rocket engine.
The advantages of the pintle injector are throtteability, dependability, manufacture simplicity and large thrust per element. The disadvantages of the pintle are wall compatiblity problems and lack of correlations for level of mixing and spray size.
The pintle injector can be either fuel centered or lox centered.
Fuel centered is typically used for smaller engines, but a lox center pintle is advantageous with machinability.
We are choosing our pintle radius, $R_p$ (We are basing this off of Penn State AIAA-98-3816, Woodward et. al)
$$R_p = outer\ radius\ = 0.14\ in$$$$r_p = inner\ radius\ = .05\ in$$$N = number\ of\ primary\ holes$
$n = number\ of\ secondary\ holes$
$W = big\ hole\ diameter$
$w = small\ hole\ diameter$
$TMR = total\ momentum\ ratio$
$BF = blockage\ factor$
$D_p = outer\ post\ diameter$
$EMR = effective\ momentum\ ratio$
$$TMR = \frac{\dot{m}U_{inner}}{\dot{m}U_{outer}}$$$$BF = \frac{(n*w)(N*W)}{D_p*pi}$$$$EMR = \frac{TMR}{BF}$$*Note:
BF should be less than 1, preferably between 0.3 and 0.7.
If $BF > 1$ , there will be risk of interfacial shear
Performance is best when $TMR = 1$
As TMR increases, the fan angle increases. If ratio is too low, fan angle is extremely small and the spray will be very close to tip. If ratio is too high, fan angle is high and the flow will impinge directly on chamber walls (Stanford 2014).
$$U= \frac{Q}{A} $$$U=velocity$
The design is currently fuel centered, with the lox flowing through the annulus
The flow rate is computed using the Hagen-Poiseuille equation:
$$\dot m = \frac{\pi*R(R-r)^3}{6\nu\rho*L}*(1+\frac{3}{2}E^2)*\Delta P$$$E = \frac{e}{R-r}$
where,
$E= eccentricity\ ratio$
$e= eccentricity$
Since, the pintle annulus will be concentric, $E = 0$
from ipywidgets import widgets
#Outer (Rp) and Inner (rp) radii of Pintle
Rp_ = widgets.Text(".14", description="Outer radius of pintle, R_p", width=60 )
rp_ = widgets.Text(".06", description="Inner radius of pintle, r_p", width=60 )
#Annulus Radius input
Ra_= widgets.Text(".152", description="Annulus radius, Ra (in)", width=60)
display(Ra_)
display(Rp_)
display(rp_)
#Pressure drop ranges from 10-20% of chamber pressure
dp=.2*Pc
#Densities and viscosities of ethanol and lox
rhoethanol= widgets.Text("0.03197", description="Density of Ethanol, lb/s^3", width=65)
rholox= widgets.Text("0.0413", description="Density of Lox, lb/s^3", width=65)
nulox= widgets.Text("0.0003389", description="Viscosity of Lox, in^2/s", width=65)
nuethanol=widgets.Text("0.00210187", description="Viscosity of Ethanol, in^2/s", width=65)
print("Change in Pressure, PSI = ", dp)
display(rholox)
display(rhoethanol)
display(nuethanol)
display(nulox)
Change in Pressure, PSI = 70.0
#floating annulus radius for usage in formulas
Ra=float(Ra_.value)
Rp=float(Rp_.value)
rp=float(rp_.value)
#floating densities and viscocities for ethanol and lox
nu_lox = float(nulox.value)
nu_ethanol = float(nuethanol.value)
rho_ethanol = float(rhoethanol.value)
rho_lox = float(rholox.value)
#Fuel Center or Lox Center
FCenter = False
#assign inner fluid
if (FCenter):
m_inner = m_ethanol
m_outer = m_lox
rhoi = rho_ethanol
rhoo = rho_lox
nuo = nu_lox
nui = nu_ethanol
else:
m_inner = m_lox
m_outer = m_ethanol
rhoi = rho_lox
rhoo = rho_ethanol
nuo = nu_ethanol
nui = nu_lox
from sympy.solvers import solve
from sympy import Symbol
L= Symbol('L')
solve((((math.pi * Ra*(Ra-Rp)**3)/(6*nuo*rhoo*L))*dp)-m_outer,L)
[0.297278950634915]
#Using round holes
W_ = widgets.Text(".02",description="Primary slot width in pintle, W (in)", width=60 )
#w_ = widgets.Text(".005",description="Secondary round hole diameter in pintle, w(in)", width=60 )
#Using square holes
h_ = widgets.Text(".035",description="Primary slot height in pintle, h (in)", width=60 )
#w2_ = widgets.Text(".005", description="Secondary square hole width in pintle, w", width=60 )
#number of holes input (3 variations to compare)
N1_ = widgets.Text("16",description="number of primary holes, N1", width=60)
N2_ = widgets.Text("12",description="number of primary holes, N2", width=60)
N3_ = widgets.Text("6",description="number of primary holes, N3", width=60)
#n_ = widgets.Text("24",description="number of secondary holes, n", width=60)
display(N1_)
display(N2_)
display(N3_)
#display(n_)
display(W_)
display(h_)
W=float(W_.value)
h=float(h_.value)
N1=float(N1_.value)
N2=float(N2_.value)
N3=float(N3_.value)
#Area of slots
area_slot = W*h
#Area of total slots using first input of amount of holes, N1
areatotal_slot = N1*area_slot
#Cross sectional areas of Annulus and Pintle
Area_rp = math.pi*rp**2
Area_Ra = math.pi*Ra**2
Area_Rp = math.pi*Rp**2
#Inner and Outer Pintle Velocities
Ui= m_inner/(rhoi*areatotal_slot)
Uo =m_outer/(rhoo*(Area_Ra-Area_Rp))
display("Uinner = " , Ui)
display("Uouter = " , Uo)
'Uinner = '
1250.214446653452
'Uouter = '
1369.350847223162
di=2*Rp
#blockage factor
BF1 = ((N1*W))/(di*math.pi)
BF2 = ((N2*W))/(di*math.pi)
BF3 = ((N3*W))/(di*math.pi)
#TMR=massflowrate*velocity(inner)/ massflowrate*velocity(outer)
mil = m_inner*Ui
mfl = m_outer*Uo
TMR = mil/mfl
EMR1 = TMR/BF1
EMR2 = TMR/BF2
EMR3 = TMR/BF3
print("BF with 16 slots= ", BF1)
print("BF with 12 slots= ", BF2)
print("BF with 6 slots= ", BF3)
print("TMR = ", TMR)
print("EMR with 16 slots= ", EMR1)
print("EMR with 12 slots= ", EMR2)
print("EMR with 6 slots= ", EMR3)
BF with 16 slots= 0.3637827270671893 BF with 12 slots= 0.272837045300392 BF with 6 slots= 0.136418522650196 TMR = 1.0955974789269227 EMR with 16 slots= 3.0116808672022795 EMR with 12 slots= 4.015574489603039 EMR with 6 slots= 8.031148979206078