Source code for RCAIDE.Library.Components.Wings.All_Moving_Surface

# RCAIDE/Library/Compoments/Wings/All_Moving_Surface.py
# 
# Created:  Mar 2024, M. Clarke 

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ---------------------------------------------------------------------------------------------------------------------- 
# RCAIDE imports     
from RCAIDE.Library.Components     import Component 
from RCAIDE.Framework.Core         import DataOrdered 
import numpy as np
from RCAIDE.Library.Methods.Mass_Properties.Moment_of_Inertia.compute_wing_moment_of_inertia import  compute_wing_moment_of_inertia

# ---------------------------------------------------------------------------------------------------------------------- 
#  All_Moving_Surface
# ----------------------------------------------------------------------------------------------------------------------  
[docs] class All_Moving_Surface(Component): """ A base class for control surfaces that pivot as complete aerodynamic surfaces. This class provides common functionality for surfaces like stabilators and all-moving vertical tails. Attributes ---------- tag : str Unique identifier for the surface, defaults to 'All_Moving_Surface_Data_Object' sign_duplicate : float Sign convention for duplicate surface deflection, defaults to 1.0 hinge_fraction : float Location of the hinge line as fraction of chord, defaults to 0.25 deflection : float Surface deflection angle, defaults to 0.0 segments : Container Collection of surface segments, initialized empty use_constant_hinge_fraction : bool Flag to use constant chord fraction for hinge line, defaults to False hinge_vector : ndarray Vector defining hinge line orientation in body frame, defaults to [0.0, 0.0, 0.0] Notes ----- This class is designed to be inherited alongside a Wing-derived class to create specific all-moving control surfaces. It provides: * Hinge line definition options * Deflection handling * Moment of inertia calculations **Definitions** 'Hinge Vector' Three-dimensional vector defining the orientation of the surface's hinge line in the body frame. Default [0,0,0] indicates hinge normal to root chord 'Hinge Fraction' Location of hinge line as fraction of chord when using constant fraction mode See Also -------- RCAIDE.Library.Components.Wings.Stabilator All-moving horizontal stabilizer implementation RCAIDE.Library.Components.Wings.Vertical_Tail_All_Moving All-moving vertical stabilizer implementation """ def __defaults__(self): """ Sets default values for the all-moving surface attributes. """ self.tag = 'All_Moving_Surface_Data_Object' self.sign_duplicate = 1.0 self.hinge_fraction = 0.25 self.deflection = 0.0 self.segments = Container() self.use_constant_hinge_fraction = False self.hinge_vector = np.array([0.,0.,0.])
[docs] def moment_of_inertia(wing, center_of_gravity): """ Computes the moment of inertia tensor for the all-moving surface. Parameters ---------- wing : Component Wing component data center_of_gravity : list Reference point coordinates for moment calculation Returns ------- ndarray 3x3 moment of inertia tensor """ I = compute_wing_moment_of_inertia(wing, center_of_gravity) return I