Source code for RCAIDE.Library.Methods.Powertrain.Converters.Rotor.compute_rotor_performance

# RCAIDE/Library/Methods/Powertrain/Converters/Rotor/compute_rotor_performance.py
# 
# Created:  Jul 2024, RCAIDE Team 

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ---------------------------------------------------------------------------------------------------------------------- 
 # RCAIDE imports
import RCAIDE.Library.Methods.Powertrain.Converters.Rotor.Performance.Actuator_Disc_Theory.Actuator_Disk_performance as Actuator_Disk_performance
import RCAIDE.Library.Methods.Powertrain.Converters.Rotor.Performance.Blade_Element_Momentum_Theory_Helmholtz_Wake.BEMT_Helmholtz_performance as BEMT_Helmholtz_performance
 
# ---------------------------------------------------------------------------------------------------------------------- 
#  Generalized Rotor Class
# ----------------------------------------------------------------------------------------------------------------------  
[docs] def compute_rotor_performance(rotor, conditions): """ Analyzes a general rotor given geometry and operating conditions. Parameters ---------- rotor : RCAIDE.Library.Components.Powertrain.Converters.Rotor Rotor component with the following attributes: - fidelity : str Analysis fidelity level ('Actuator_Disk_Theory' or 'Blade_Element_Momentum_Theory_Helmholtz_Wake') - tag : str Identifier for the rotor - number_of_blades : int Number of blades on the rotor - tip_radius : float Tip radius of the rotor [m] - hub_radius : float Hub radius of the rotor [m] - twist_distribution : array_like Blade twist distribution [radians] - chord_distribution : array_like Blade chord distribution [m] - orientation_euler_angles : list Orientation of the rotor [rad, rad, rad] conditions : RCAIDE.Framework.Mission.Common.Conditions Flight conditions with: - freestream : Data Freestream properties - density : array_like Air density [kg/m³] - dynamic_viscosity : array_like Dynamic viscosity [kg/(m·s)] - speed_of_sound : array_like Speed of sound [m/s] - temperature : array_like Temperature [K] - frames : Data Reference frames - body : Data Body frame - transform_to_inertial : array_like Rotation matrix from body to inertial frame - inertial : Data Inertial frame - velocity_vector : array_like Velocity vector in inertial frame [m/s] - energy : Data Energy conditions - converters : dict Converter energy conditions indexed by tag - throttle : array_like Throttle setting [0-1] Returns ------- None Results are stored in conditions.energy.converters[rotor.tag] with attributes depending on the fidelity level used. See the documentation for the specific analysis method for details on the outputs. Notes ----- This function serves as a dispatcher that calls the appropriate rotor analysis method based on the specified fidelity level. It supports two fidelity levels: 1. Actuator_Disk_Theory: A simplified model that treats the rotor as an actuator disk, suitable for preliminary design and analysis. 2. Blade_Element_Momentum_Theory_Helmholtz_Wake: A higher-fidelity model that combines blade element theory with a Helmholtz wake model, providing more accurate predictions of rotor performance. The function simply checks the fidelity level and calls the corresponding analysis function, passing the rotor and conditions as arguments. **Major Assumptions** * The assumptions depend on the specific analysis method used * See the documentation for Actuator_Disk_performance or BEMT_Helmholtz_performance for details on the assumptions made by each method References ---------- [1] Drela, M. "Qprop Formulation", MIT AeroAstro, June 2006 http://web.mit.edu/drela/Public/web/qprop/qprop_theory.pdf [2] Leishman, Gordon J. Principles of helicopter aerodynamics Cambridge university press, 2006. See Also -------- RCAIDE.Library.Methods.Powertrain.Converters.Rotor.Performance.Actuator_Disc_Theory.Actuator_Disk_performance RCAIDE.Library.Methods.Powertrain.Converters.Rotor.Performance.Blade_Element_Momentum_Theory_Helmholtz_Wake.BEMT_Helmholtz_performance """ if rotor.fidelity == 'Blade_Element_Momentum_Theory_Helmholtz_Wake': BEMT_Helmholtz_performance(rotor,conditions) elif rotor.fidelity == 'Actuator_Disk_Theory': Actuator_Disk_performance(rotor,conditions) return