Source code for RCAIDE.Library.Methods.Powertrain.Propulsors.Turbofan.append_turbofan_conditions
# RCAIDE/Library/Methods/Powertrain/Propulsors/Turbofan/append_turbofan_conditions.py
# (c) Copyright 2023 Aerospace Research Community LLC
#
# Created: Jun 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
import RCAIDE
from RCAIDE.Framework.Mission.Common import Conditions
# ----------------------------------------------------------------------------------------------------------------------
# append_propulsor_conditions
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def append_turbofan_conditions(propulsor, segment, energy_conditions, noise_conditions):
"""
Initializes turbofan operating conditions for a mission segment.
Parameters
----------
propulsor : RCAIDE.Library.Components.Propulsors.Turbofan
Turbofan propulsor component with the following attributes:
- tag : str
Identifier for the turbofan
- items : dict
Dictionary of subcomponents
segment : RCAIDE.Framework.Mission.Segments.Segment
Mission segment with the following attributes:
- state : Data
Segment state
- ones_row : function
Function to create array of ones with specified length
energy_conditions : RCAIDE.Framework.Mission.Common.Conditions
Energy conditions container where turbofan conditions will be stored
noise_conditions : RCAIDE.Framework.Mission.Common.Conditions
Noise conditions container where turbofan noise conditions will be stored
Returns
-------
None
Results are stored in energy_conditions.propulsors[propulsor.tag] and
noise_conditions.propulsors[propulsor.tag]
Notes
-----
This function initializes the necessary data structures for storing turbofan
operating conditions during a mission segment. It creates zero-filled arrays
for various performance parameters and recursively calls the append_operating_conditions
method for each subcomponent of the turbofan.
The function initializes the following parameters in energy_conditions:
* throttle
* commanded_thrust_vector_angle
* thrust
* power
* moment
* fuel_flow_rate
* inputs and outputs containers
It also creates the following containers in noise_conditions:
* core_nozzle
* fan_nozzle
* fan
**Major Assumptions**
* All arrays are initialized with zeros
* Each component has an append_operating_conditions method
See Also
--------
RCAIDE.Library.Methods.Powertrain.Propulsors.Turbofan.compute_turbofan_performance
RCAIDE.Library.Methods.Powertrain.Propulsors.Turbofan.compute_thurst
"""
# unpack
ones_row = segment.state.ones_row
# add propulsor conditions
energy_conditions.propulsors[propulsor.tag] = Conditions()
energy_conditions.propulsors[propulsor.tag].throttle = 0. * ones_row(1)
energy_conditions.propulsors[propulsor.tag].commanded_thrust_vector_angle = 0. * ones_row(1)
energy_conditions.propulsors[propulsor.tag].thrust = 0. * ones_row(3)
energy_conditions.propulsors[propulsor.tag].power = 0. * ones_row(1)
energy_conditions.propulsors[propulsor.tag].moment = 0. * ones_row(3)
energy_conditions.propulsors[propulsor.tag].fuel_flow_rate = 0. * ones_row(1)
energy_conditions.propulsors[propulsor.tag].inputs = Conditions()
energy_conditions.propulsors[propulsor.tag].outputs = Conditions()
noise_conditions.propulsors[propulsor.tag] = Conditions()
noise_conditions.propulsors[propulsor.tag].core_nozzle = Conditions()
noise_conditions.propulsors[propulsor.tag].fan_nozzle = Conditions()
noise_conditions.propulsors[propulsor.tag].fan = Conditions()
for tag, item in propulsor.items():
if issubclass(type(item), RCAIDE.Library.Components.Component):
item.append_operating_conditions(segment,energy_conditions)
for sub_tag, sub_item in item.items():
if issubclass(type(sub_item), RCAIDE.Library.Components.Component):
sub_item.append_operating_conditions(segment,energy_conditions)
return