|
2 | 2 | import numpy as np |
3 | 3 |
|
4 | 4 |
|
5 | | -def fuel_mass_flow(): |
6 | | - N = 1000 |
| 5 | +def mdot_spi(Cd, A, n, rho, p_chamber): |
| 6 | + # Calculates and plots a single phase incompressible (SPI) approximation of the mass flow. |
7 | 7 |
|
8 | | - Cd = 0.77 # sensible discharge coefficient |
9 | | - A = np.pi * 0.5e-3 ** 2 # area of a 0.5mm radius orifice |
10 | | - n = 95 # number of orifices |
11 | | - rho = 1000 # kg/m3 |
12 | | - p_chamber = 1500000 # 1.5MPa, 15bar |
| 8 | + N = 1000 |
13 | 9 | dp = np.linspace(0.15 * p_chamber, 0.2 * p_chamber, N) # 25-20% of chamber pressure |
14 | 10 |
|
15 | | - mdot = n * Cd * A * np.sqrt(2 * rho * dp) # aiming for 1.3 kg/s for fuel |
| 11 | + mdot = n * Cd * A * np.sqrt(2 * rho * dp) # aiming for 1.3 kg/s for fuel |
16 | 12 |
|
17 | 13 | ax = plt.subplot(1, 1, 1) |
18 | 14 | ax.plot(dp, mdot) |
19 | 15 | ax.set_xlabel("Pressure Drop [Pa]") |
20 | 16 | ax.set_ylabel("Mass Flow Rate [kgs$^{-1}$]") |
21 | | - ax.set_title("Fuel Flow Rate (Standard Model)") |
| 17 | + ax.set_title("Fuel Flow Rate (SPI)") |
22 | 18 |
|
23 | 19 | plt.show() |
24 | 20 |
|
25 | 21 |
|
| 22 | +def mdot_hem(A): |
| 23 | + # produces mass flow given a total area, assuming choked flow in HEM |
| 24 | + |
| 25 | + h_fgo = 1000 * ((-69.8) - (-355)) # J/kg |
| 26 | + v_fgo = (1 / 40.11) - (1 / 1014.8) # m3/kg |
| 27 | + C_fo = 1915 # J/Kg.K |
| 28 | + T_o = 273 - 25 # K |
| 29 | + return (h_fgo / v_fgo) * np.power(C_fo * T_o, -0.5) * A |
| 30 | + |
| 31 | + |
| 32 | +def req_A(mdot): |
| 33 | + # produces the required total area for a given mass flow using HEM |
| 34 | + |
| 35 | + h_fgo = 1000 * ((-69.3) - (-345)) # J/kg |
| 36 | + v_fgo = (1 / 46.82) - (1 / 995.4) # m3/kg |
| 37 | + C_fo = 1957 # J/Kg.K |
| 38 | + T_o = 273 - 20 # K |
| 39 | + return (v_fgo / h_fgo) * np.power(C_fo * T_o, 0.5) * mdot |
| 40 | + |
| 41 | + |
| 42 | +def delta_p(mdot, A, n, Cd, rho): |
| 43 | + return np.power(mdot / (A * n * Cd), 2) / (2 * rho) |
| 44 | + |
| 45 | + |
26 | 46 | if __name__ == "__main__": |
27 | | - fuel_mass_flow() |
| 47 | + Cd = 0.7 # sensible discharge coefficient |
| 48 | + A = np.pi * 0.5e-3 ** 2 # area of a 0.5mm radius orifice |
| 49 | + rho = 995.4 # kg/m3 |
| 50 | + mdot = 4.1 |
| 51 | + p_chamber = 1500000 # 1.5MPa, 15bar |
| 52 | + |
| 53 | + # mdot_spi(Cd, A, n, rho, p_chamber) |
| 54 | + calc_A = req_A(mdot) |
| 55 | + n = int(calc_A / A) |
| 56 | + dp = delta_p(mdot, A, n, Cd, rho) |
| 57 | + print(f'required area for {mdot}kg/s: {round(calc_A, 7)}m^2. Assuming 1mm diameter, {n} orifices required') |
| 58 | + print(f'required pressure drop for {mdot}kg/s over {n} {round(A, 7)}m^2 orifices: {round(dp, 4)}Pa') |
0 commit comments