fastoad_cs25.models.propulsion.fuel_propulsion.rubber_engine.rubber_engine module

Parametric turbofan engine.

class fastoad_cs25.models.propulsion.fuel_propulsion.rubber_engine.rubber_engine.RubberEngine(bypass_ratio: float, overall_pressure_ratio: float, turbine_inlet_temperature: float, mto_thrust: float, maximum_mach: float, design_altitude: float, delta_t4_climb: float = -50, delta_t4_cruise: float = -100, k_sfc_sl: float = 1.0, k_sfc_cr: float = 1.0)[source]

Bases: AbstractFuelPropulsion

Parametric turbofan engine.

It computes engine characteristics using analytical model from following sources:

[Ray99] (1,2)

Daniel P. Raymer. Aircraft Design: A Conceptual Approach, Third edition. AIAA (American Institute of Aeronautics & Astronautics), 1999. ISBN 1563473437.

[Rou02]

Elodie Roux. Modèles Moteurs... Réacteurs double flux civils et réacteurs militaires à faible taux de dilution avec Post-Combustion. INSA-SupAéro-ONÉRA, 2002. URL: http://elodieroux.com/ReportFiles/ModelesMoteurVersionPublique.pdf.

[Rou05] (1,2,3)

Elodie Roux. Pour une approche analytique de la Dynamique du Vol. PhD thesis, SupAéro, 2005. URL: http://depozit.isae.fr/theses/2005/2005_Roux_Elodie.pdf.

Parameters:
  • bypass_ratio

  • overall_pressure_ratio

  • turbine_inlet_temperature – (unit=K) also noted T4

  • mto_thrust – (unit=N) Maximum TakeOff thrust, i.e. maximum thrust on ground at speed 0, also noted F0

  • maximum_mach

  • design_altitude – (unit=m)

  • delta_t4_climb – (unit=K) difference between T4 during climb and design T4

  • delta_t4_cruise – (unit=K) difference between T4 during cruise and design T4

  • k_sfc_sl – SFC correction at sea level and below

  • k_sfc_cr – SFC correction at 43000ft and above in cruise

compute_flight_points(flight_points: FlightPoint | DataFrame)[source]

Computes Specific Fuel Consumption according to provided conditions.

See FlightPoint for available fields that may be used for computation. If a DataFrame instance is provided, it is expected that its columns match field names of FlightPoint (actually, the DataFrame instance should be generated from a list of FlightPoint instances).

Note

About thrust_is_regulated, thrust_rate and thrust

thrust_is_regulated tells if a flight point should be computed using thrust_rate (when False) or thrust (when True) as input. This way, the method can be used in a vectorized mode, where each point can be set to respect a thrust order or a thrust rate order.

  • if thrust_is_regulated is not defined, the considered input will be the defined one between thrust_rate and thrust (if both are provided, thrust_rate will be used)

  • if thrust_is_regulated is True or False (i.e., not a sequence), the considered input will be taken accordingly, and should of course be defined.

  • if there are several flight points, thrust_is_regulated is a sequence or array, thrust_rate and thrust should be provided and have the same shape as thrust_is_regulated:code:. The method will consider for each element which input will be used according to thrust_is_regulated.

Parameters:

flight_points – FlightPoint or DataFrame instance

Returns:

None (inputs are updated in-place)

compute_flight_points_from_dt4(mach: float | Sequence, altitude: float | Sequence, delta_t4: float | Sequence, isa_offset: float | Sequence = 0, thrust_is_regulated: bool | Sequence | None = None, thrust_rate: float | Sequence | None = None, thrust: float | Sequence | None = None) Tuple[float | Sequence, float | Sequence, float | Sequence][source]

Same as compute_flight_points() except that delta_t4 is used directly instead of specifying flight engine_setting.

Parameters:
  • mach – Mach number

  • altitude – (unit=m) altitude w.r.t. to sea level

  • delta_t4 – (unit=K) difference between operational and design values of turbine inlet temperature in K

  • isa_offset – (unit=degK) temperature difference from isa conditions

  • thrust_is_regulated – tells if thrust_rate or thrust should be used (works element-wise)

  • thrust_rate – thrust rate (unit=none)

  • thrust – required thrust (unit=N)

Returns:

SFC (in kg/s/N), thrust rate, thrust (in N)

sfc_at_max_thrust(atmosphere: Atmosphere, mach: float | Sequence[float]) ndarray[source]

Computation of Specific Fuel Consumption at maximum thrust.

Uses model described in [Rou05], p.41.

Parameters:
  • atmosphere – Atmosphere instance at intended altitude

  • mach – Mach number(s)

Returns:

SFC (in kg/s/N)

sfc_ratio(altitude: float | Sequence[float], thrust_rate: float | Sequence[float], mach: float | Sequence[float] = 0.8) ndarray[source]

Computation of ratio \(\frac{SFC(F)}{SFC(Fmax)}\), given altitude and thrust_rate \(\frac{F}{Fmax}\).

Uses a patched version of model described in [Rou02], p.85.

Warning: this model is very limited

Parameters:
  • altitude

  • thrust_rate

  • mach – only used for logger checks as model is made for Mach~0.8

Returns:

SFC ratio

max_thrust(atmosphere: Atmosphere, mach: float | Sequence[float], delta_t4: float | Sequence[float]) ndarray[source]

Computation of maximum thrust.

Uses model described in [Rou05], p.57-58

Parameters:
  • atmosphere – Atmosphere instance at intended altitude (should be <=20km)

  • mach – Mach number(s) (should be between 0.05 and 1.0)

  • delta_t4 – (unit=K) difference between operational and design values of turbine inlet temperature in K

Returns:

maximum thrust (in N)

installed_weight() float[source]

Computes weight of installed engine, depending on MTO thrust (F0).

Uses model described in [Rou05], p.74

Returns:

installed weight (in kg)

length() float[source]

Computes engine length from MTO thrust and maximum Mach.

Model from [Ray99], p.74

Returns:

engine length (in m)

nacelle_diameter() float[source]

Computes nacelle diameter from MTO thrust and bypass ratio.

Model of engine diameter from [Ray99], p.235. Nacelle diameter is considered 10% greater ([kro01])

Returns:

nacelle diameter (in m)