Source code for RCAIDE.Library.Components.Landing_Gear.Landing_Gear
# RCAIDE/Library/Components/Landing_Gear/Landing_Gear.py
#
# Created: Nov 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_cuboid_moment_of_inertia
from RCAIDE.Library.Methods.Mass_Properties.Center_of_Gravity import compute_cuboid_center_of_gravity
# ----------------------------------------------------------------------------------------------------------------------
# Landing_Gear
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Landing_Gear(Component):
"""
Base class for aircraft landing gear components providing core functionality for
both main and nose gear configurations.
Attributes
----------
tag : str
Unique identifier for the landing gear component, defaults to 'landing_gear'
tire_diameter : float
Diameter of the landing gear tire, defaults to 0
tire_width : float
Width of the landing gear tire, defaults to 0
gear_extended : bool
Flag indicating whether the landing gear is in extended position,
defaults to False
wheels : int
Number of wheels per landing gear unit, defaults to 0
number_of_gear_types_in_tandem : int
Number of wheels in tandem on landing gear, defaults to None
number_of_wheels_in_gear_type : int
Configuration of wheels in tandem, defaults to None
fairing : bool
Configuration of wheels in tandem, defaults to 0
Notes
-----
This class serves as the foundation for specific landing gear types, providing:
* Basic geometric properties
* Configuration parameters
* State tracking (extended/retracted)
**Major Assumptions**
* Landing gear components are rigid bodies
* Tire and strut properties are uniform within each unit
* Gear state is binary (either fully extended or fully retracted)
**Definitions**
'struct length'
The main structural member of the landing gear that absorbs landing loads
and supports the wheel assembly
References
----------
[1] https://www.faa.gov/documentLibrary/media/Order/Construction_5300_7.pdf
See Also
--------
RCAIDE.Library.Components.Landing_Gear.Main_Landing_Gear
Implementation for main landing gear
RCAIDE.Library.Components.Landing_Gear.Nose_Landing_Gear
Implementation for nose landing gear
"""
def __defaults__(self):
"""
Sets default values for the landing gear attributes.
"""
self.tag = 'landing_gear'
self.tire_diameter = 0
self.rim_diameter = 0
self.tire_width = 0
self.strut_length = 0
self.wheels = 0
self.length = 0
self.width = 0
self.height = 0
self.longitudinal_wheel_spacing = 0.25
self.lateral_wheel_spacing = 0.25
self.wheel_clearance_factor = 1.1
self.number_of_gear_types_in_tandem = 1
self.number_of_wheels_in_gear_type = 1
self.gear_extended = False
self.fairing = False
[docs]
def compute_center_of_gravity(self,vehicle):
"""
Computes the center of gravity for a landing gear.
See Also
--------
RCAIDE.Library.Methods.weights.vehicle.center_of_gravity.compute_fuselage_center_of_gravity
Implementation of the center of gravity calculation
"""
if type(self) == RCAIDE.Library.Components.Landing_Gear.Nose_Landing_Gear():
length = self.strut_length*self.wheel_clearance_factor
else:
length = self.tire_diameter*self.wheel_clearance_factor
_ = compute_cuboid_center_of_gravity(self,length)
return
[docs]
def compute_moments_of_inertia(self,vehicle,center_of_gravity=[[0, 0, 0]]):
"""
Computes the moment of inertia tensor for the landing gear.
Parameters
----------
center_of_gravity : list, optional
Reference point coordinates, defaults to [[0, 0, 0]]
"""
if type(self) == RCAIDE.Library.Components.Landing_Gear.Nose_Landing_Gear():
length = self.strut_length*self.wheel_clearance_factor
width = self.tire_diameter*self.wheel_clearance_factor
height = self.tire_diameter*self.wheel_clearance_factor
else:
length = self.tire_diameter*self.wheel_clearance_factor
width = self.strut_length*self.wheel_clearance_factor
height = self.tire_diameter*self.wheel_clearance_factor
_, _ = compute_cuboid_moment_of_inertia(self,length,width,height, inner_length = 0, inner_width = 0, inner_height = 0, center_of_gravity = center_of_gravity )
return