Source code for RCAIDE.Library.Methods.Powertrain.Converters.Turboshaft.append_turboshaft_conditions
# RCAIDE/Library/Methods/Powertrain/Converters/Turboshaft/append_turboshaft_conditions.py
#
# Created: Jun 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
import RCAIDE
from RCAIDE.Framework.Mission.Common import Conditions
# ----------------------------------------------------------------------------------------------------------------------
# append_turboshaft_conditions
# ----------------------------------------------------------------------------------------------------------------------
[docs]
def append_turboshaft_conditions(turboshaft, segment, energy_conditions, noise_conditions):
"""
Appends data structures for storing turboshaft operating conditions during mission analysis.
Parameters
----------
turboshaft : RCAIDE.Components.Energy.Converters.Turboshaft
The turboshaft component for which conditions are being appended
segment : RCAIDE.Analyses.Mission.Segments
The mission segment being evaluated
energy_conditions : RCAIDE.Framework.Mission.Common.Conditions
Container for energy-related conditions during the mission segment
noise_conditions : RCAIDE.Framework.Mission.Common.Conditions
Container for noise-related conditions during the mission segment
Returns
-------
None
This function modifies the energy_conditions and noise_conditions objects in-place
Notes
-----
This function initializes the condition structure for a turboshaft engine with zero values
for throttle, thrust vector angle, power, and fuel flow rate. It then recursively calls
the append_operating_conditions method for all subcomponents of the turboshaft.
The function creates a hierarchical data structure that mirrors the component hierarchy
of the turboshaft engine, allowing for detailed tracking of operating conditions at each
level during mission analysis.
**Major Assumptions**
* The segment state contains a ones_row method for creating arrays
* All subcomponents have properly implemented append_operating_conditions methods
See Also
--------
RCAIDE.Library.Methods.Powertrain.Converters.Turboshaft.compute_turboshaft_performance
RCAIDE.Library.Components.Powertrain.Converters.Turboshaft
"""
ones_row = segment.state.ones_row
energy_conditions.converters[turboshaft.tag] = Conditions()
energy_conditions.converters[turboshaft.tag].throttle = 0. * ones_row(1)
energy_conditions.converters[turboshaft.tag].commanded_thrust_vector_angle = 0. * ones_row(1)
energy_conditions.converters[turboshaft.tag].power = 0. * ones_row(1)
energy_conditions.converters[turboshaft.tag].fuel_flow_rate = 0. * ones_row(1)
energy_conditions.converters[turboshaft.tag].inputs = Conditions()
energy_conditions.converters[turboshaft.tag].outputs = Conditions()
for tag, item in turboshaft.items():
if issubclass(type(item), RCAIDE.Library.Components.Component):
item.append_operating_conditions(segment,energy_conditions,noise_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,noise_conditions)
return