Source code for RCAIDE.Library.Components.Wings.Vertical_Tail
# RCAIDE/Library/Compoments/Wings/Vertical_Tail.py
#
# Created: Mar 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
# RCAIDE imports
from .Wing import Wing
from copy import deepcopy
from RCAIDE.Library.Methods.Mass_Properties.Moment_of_Inertia.compute_wing_moment_of_inertia import compute_wing_moment_of_inertia
# ----------------------------------------------------------------------------------------------------------------------
# Vertical_Tail
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Vertical_Tail(Wing):
"""
A class representing a vertical stabilizer surface for aircraft directional control
and stability.
Attributes
----------
tag : str
Unique identifier for the vertical tail, defaults to 'vertical_tail'
vertical : bool
Flag indicating vertical orientation, defaults to True
symmetric : bool
Flag indicating if tail is symmetric about x-z plane, defaults to False
Notes
-----
The vertical tail provides directional stability and serves as a mounting surface
for the rudder. It inherits all geometric and aerodynamic functionality from the
Wing class and adds specific attributes for vertical tail operation.
See Also
--------
RCAIDE.Library.Components.Wings.Wing
Base wing class providing core functionality
RCAIDE.Library.Components.Wings.Control_Surfaces.Rudder
Control surface typically mounted on vertical tail
RCAIDE.Library.Components.Wings.Vertical_Tail_All_Moving
All-moving vertical tail variant
"""
def __defaults__(self):
"""
Sets default values for the vertical tail attributes.
"""
self.tag = 'vertical_tail'
self.vertical = True
self.symmetric = False
[docs]
def make_x_z_reflection(self):
"""
Creates a reflected copy of the vertical tail over the x-z plane.
Returns
-------
Component
Reflected vertical tail with appropriate sign conventions
Notes
-----
* Used when vertical tail's symmetric attribute is True
* Reflects dihedral angles and origin location
* Control surface deflections are reflected according to sign_duplicate
* Should be called after setting control surface deflections
WARNING: this uses deepcopy to achieve its purpose. If this copies too many unwanted
attributes, it is recommended that the user should write their own code, taking
after the form of this function.
It is also recommended that the user call this function after they set control surface
or all moving surface deflections. This way the deflection is also properly reflected
to the other side
"""
wing = deepcopy(self)
wing.dihedral *= -1
wing.origin[0][1] *= -1
for segment in wing.segments:
segment.dihedral_outboard *= -1
for cs in wing.control_surfaces:
cs.deflection *= -1*cs.sign_duplicate
return wing
[docs]
def moment_of_inertia(wing, center_of_gravity):
"""
Computes the moment of inertia tensor for the vertical tail.
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