Source code for RCAIDE.Library.Methods.Powertrain.Converters.Combustor.compute_combustor_performance
# RCAIDE/Library/Methods/Powertrain/Converters/Combustor/compute_combustor_performance.py
# (c) Copyright 2023 Aerospace Research Community LLC
#
# Created: Jun 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# Imports
# ----------------------------------------------------------------------------------------------------------------------
import numpy as np
# ----------------------------------------------------------------------------------------------------------------------
# compute_combustor_performance
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def compute_combustor_performance(combustor, conditions):
"""
Computes the thermodynamic performance of a combustor in a gas turbine engine.
Parameters
----------
combustor : RCAIDE.Library.Components.Converters.Combustor
Combustor component with the following attributes:
- tag : str
Identifier for the combustor
- working_fluid : Data
Working fluid properties object
- turbine_inlet_temperature : float
Target turbine inlet temperature [K]
- pressure_ratio : float
Pressure ratio across the combustor (typically < 1.0 due to losses)
- efficiency : float
Combustion efficiency
- area_ratio : float
Exit to inlet area ratio
- fuel_data : Data
Fuel properties
- specific_energy : float
Fuel specific energy [J/kg]
conditions : RCAIDE.Framework.Mission.Common.Conditions
Flight conditions with:
- energy : Data
Energy conditions
- converters : dict
Converter energy conditions indexed by tag
Returns
-------
None
Results are stored in conditions.energy.converters[combustor.tag].outputs:
- stagnation_temperature : numpy.ndarray
Stagnation temperature at combustor exit [K]
- stagnation_pressure : numpy.ndarray
Stagnation pressure at combustor exit [Pa]
- stagnation_enthalpy : numpy.ndarray
Stagnation enthalpy at combustor exit [J/kg]
- fuel_to_air_ratio : numpy.ndarray
Fuel-to-air ratio
- static_temperature : numpy.ndarray
Static temperature at combustor exit [K]
- static_pressure : numpy.ndarray
Static pressure at combustor exit [Pa]
- mach_number : numpy.ndarray
Mach number at combustor exit
Notes
-----
This function computes the thermodynamic properties at the combustor exit based on
the inlet conditions, combustor characteristics, and fuel properties. It calculates
the fuel-to-air ratio required to achieve the specified turbine inlet temperature,
accounting for combustion efficiency and pressure losses.
The computation follows these steps:
1. Extract inlet conditions (temperature, pressure, Mach number)
2. Compute working fluid properties (gamma, Cp)
3. Calculate stagnation pressure at exit using pressure ratio
4. Set exit stagnation temperature to the specified turbine inlet temperature
5. Compute stagnation enthalpies at inlet and exit
6. Calculate fuel-to-air ratio required to achieve the temperature rise
7. Compute exit static conditions (temperature, pressure) based on exit Mach number
8. Store all results in the conditions data structure
**Major Assumptions**
* Constant efficiency and pressure ratio
* Turbine inlet temperature is controlled to a specified value
* Mach number is preserved from inlet to exit
References
----------
[1] Cantwell, B., "AA283 Course Notes", Stanford University https://web.stanford.edu/~cantwell/AA283_Course_Material/
See Also
--------
RCAIDE.Library.Methods.Powertrain.Converters.Turbine.compute_turbine_performance
"""
combustor_conditions = conditions.energy.converters[combustor.tag]
T0 = combustor_conditions.inputs.static_temperature
P0 = combustor_conditions.inputs.static_pressure
M0 = combustor_conditions.inputs.mach_number
# Unpack ram inputs
working_fluid = combustor.working_fluid
# Compute the working fluid properties
gamma = working_fluid.compute_gamma(T0,P0)
Cp = working_fluid.compute_cp(T0,P0)
# unpacking the values form inputs
Tt_in = combustor_conditions.inputs.stagnation_temperature
Pt_in = combustor_conditions.inputs.stagnation_pressure
nondim_r = combustor_conditions.inputs.nondim_mass_ratio
Tt4 = combustor.turbine_inlet_temperature * np.ones_like(Tt_in)
pib = combustor.pressure_ratio
eta_b = combustor.efficiency
htf = combustor.fuel_data.specific_energy
# compute stanation pressure
Pt_out = pib * Pt_in
#Computing stagnation enthalpies from stagnation temperatures
ht4 = nondim_r * Cp* Tt4
ht_in = nondim_r * Cp* Tt_in
# Compute the fuel to air ratio using turbine exit temperature, the fuel properties and freestream temperature
f = (ht4 - ht_in)/(eta_b*htf-ht4)
# Computing the exit static and stagnation conditions
ht_out = Tt4 * Cp
T_out = Tt4/(1.+(gamma-1.)/2.*M0*M0)
P_out = Pt_out/((1.+(gamma-1.)/2.*M0*M0)**(gamma/(gamma-1.)))
# Pack results
combustor_conditions.outputs.stagnation_temperature = Tt4
combustor_conditions.outputs.stagnation_pressure = Pt_out
combustor_conditions.outputs.stagnation_enthalpy = ht_out
combustor_conditions.outputs.fuel_to_air_ratio = f
combustor_conditions.outputs.static_temperature = T_out
combustor_conditions.outputs.static_pressure = P_out
combustor_conditions.outputs.mach_number = M0
return