Source code for RCAIDE.Library.Components.Powertrain.Propulsors.Propulsor

# RCAIDE/Library/Components/Propulsors/Propulsor.py
#  
# 
# Created:  Mar 2024, M. Clarke 

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ---------------------------------------------------------------------------------------------------------------------- 

# RCAIDE imports  
import RCAIDE
from RCAIDE.Library.Components           import Component  
from RCAIDE.Library.Methods.Mass_Properties.Moment_of_Inertia  import compute_cylinder_moment_of_inertia 

import numpy as  np

# ----------------------------------------------------------------------------------------------------------------------
#  Propusor
# ---------------------------------------------------------------------------------------------------------------------- 
[docs] class Propulsor(Component): """ Base class for all propulsion system components in RCAIDE. Attributes ---------- tag : str Identifier for the propulsor, defaults to 'propulsor' active : bool Flag indicating if the propulsor is operational, defaults to True wing_mounted : bool Flag indicating if the propulsor is mounted on a wing, defaults to True Notes ----- This class serves as the foundation for all propulsion system implementations in RCAIDE. It provides the basic structure and common attributes needed for: * Electric propulsion systems (rotors, ducted fans) * Internal combustion engine systems (fixed and constant-speed propellers) * Gas turbine systems (turbofans, turbojets, turboprops) The class inherits from Component, providing basic component functionality while adding propulsion-specific features. Derived classes must implement their own performance calculation methods and system-specific attributes. **Definitions** 'Propulsor' Any device that generates thrust or lift force through the manipulation of fluid momentum (air in most cases) 'Wing-mounted' Configuration where the propulsor is attached to the aircraft's wing rather than the fuselage or other structures See Also -------- RCAIDE.Library.Components.Component RCAIDE.Library.Components.Powertrain.Propulsors.Electric_Rotor RCAIDE.Library.Components.Powertrain.Propulsors.Electric_Ducted_Fan RCAIDE.Library.Components.Powertrain.Propulsors.ICE_Propeller RCAIDE.Library.Components.Powertrain.Propulsors.Constant_Speed_ICE_Propeller """ def __defaults__(self): """ This sets the default values. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: None """ self.tag = 'propulsor' self.active = True self.wing_mounted = True self.nacelle = None self.sealevel_static_thrust = 0.0 self.diameter = 0.0 self.length = 0.0 self.height = 0.0 self.working_fluid = RCAIDE.Library.Attributes.Gases.Air()
[docs] def compute_moments_of_inertia(self,vehicle,center_of_gravity=[[0, 0, 0]]): """ Computes the moment of inertia tensor for the propulsor. Parameters ---------- center_of_gravity : list, optional Reference point coordinates, defaults to [[0, 0, 0]] Returns ------- ndarray 3x3 moment of inertia tensor """ _, _ = compute_cylinder_moment_of_inertia(self, self.length, self.diameter/2, 0, 0, center_of_gravity=center_of_gravity) return