Source code for RCAIDE.Library.Methods.Aerodynamics.Athena_Vortex_Lattice.AVL_Objects.Wing

# RCAIDE/Library/Methods/Aerodynamics/Athena_Vortex_Lattice/AVL_Objects/Settings.py
#
# Created: Oct 2024, M. Clarke

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

# RCAIDE imports
from RCAIDE.Framework.Core import  Data   

# ----------------------------------------------------------------------------------------------------------------------
# Wing
# ----------------------------------------------------------------------------------------------------------------------  
[docs] class Wing(Data): """ This class that defines parameters of the AVL aircraft wing Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ def __defaults__(self): self.tag = 'wing' self.symmetric = True self.vertical = False self.origin = [0.,0.,0.] self.sweep = 0.0 self.dihedral = 0.0 self.sections = Data() self.configuration = Data() self.control_surfaces = Data()
[docs] def append_section(self,section): """ Adds a segment to the wing """ # assert database type if not isinstance(section,Data): raise Exception('input component must be of type Data()') # store data self.sections.append(section) return
# ------------------------------------------------------------ # AVL Wing Sections # ------------------------------------------------------------
[docs] class Section(Data): """ This class defines the sections of the aircraft wing in AVL. Each section can be thought of as a trapezoid Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ def __defaults__(self): """ Sets the defaunts of the aircraft wing geometry Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ self.tag = 'section' self.origin = [0.0,0.0,0.0] self.chord = 0.0 self.twist = 0.0 self.naca_airfoil = None self.airfoil_coord_file = None self.control_surfaces = Data()
[docs] def append_control_surface(self,control): """ Adds a control_surface to the wing section in AVL Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ # assert database type if not isinstance(control,Data): raise Exception('input component must be of type Data()') # store data self.control_surfaces.append(control) return
# ------------------------------------------------------------ # AVL Control Surface # ------------------------------------------------------------
[docs] class Control_Surface(Data): """ This class defines the control surface geometry and deflection on the aircraft wing in AVL Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ def __defaults__(self): """ Sets the defaults of the control surface on the aircraft wing in AVL Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ self.tag = 'control_surface' self.function = 'function' self.gain = 0.0 self.x_hinge = 0.0 self.deflection = 0.0 self.hinge_vector = '0. 0. 0.' # the vector of rotation is along the hinge of the control surface self.sign_duplicate = '+1' # sign_duplicate: 1.0 or -1.0 - the sign of
# the duplicate control on the mirror wing. # Use 1.0 for a mirrored control surface, # like an elevator. Use -1.0 for an aileron. # ------------------------------------------------------------ # AVL Control Surface # ------------------------------------------------------------
[docs] class Control_Surface_Data(Data): """ This class stores results from the control surfaces """ def __defaults__(self): self.tag = 'control_surface_results' self.control_surfaces = Data()
[docs] def append_control_surface_result(self,control_res): """ Adds a control_surface to the wing section in AVL """ # assert database type if not isinstance(control_res,Data): raise Exception('input component must be of type Data()') # store data self.control_surfaces.append(control_res) return
[docs] class Control_Surface_Results(Data): """ This class defines the control surface geometry and deflection """ def __defaults__(self): """ Sets the defaults of the control surface on the aircraft wing """ self.tag = 'control_surface' self.deflection = 0.0 self.CL = 0.0 self.CY = 0.0 self.Cl = 0.0 self.Cm = 0.0 self.Cn = 0.0 self.CDff = 0.0 self.e = 0.0