Source code for RCAIDE.Library.Methods.Geometry.Planform.estimate_wing_internal_volume

# estimate_naca_4_series_internal_volume.py
#
# Created:  ### ####, M. Vegh
# Modified: Jan 2016, E. Botero

# ----------------------------------------------------------------------
#  Imports
# ----------------------------------------------------------------------
import numpy as np

# ----------------------------------------------------------------------
#  Methods
# ----------------------------------------------------------------------
[docs] def estimate_wing_internal_volume(wing, m, p): """Computes the volume of a wing with NACA 4-series airfoils. Assumptions: Wing has constant thickness to chord along the span Front spar is at 10%chord and rear spar is at 60% chord Source: Wikipedia, based on Moran, Jack (2003). An introduction to theoretical and computational aerodynamics. Dover. Inputs: m [-] percent camber (.1 is 10%) p [-] location of max camber (.1 is 10% along chord) wing.chords. root [m] tip [m] wing.taper [-] wing.thickness_to_chord [-] wing.spans.projected [m] chord_length [m] Outputs: volume [m^3] Properties Used: N/A """ #unpack inputs t_c = wing.thickness_to_chord taper = wing.taper rc = wing.chords.root tc = wing.chords.tip span = wing.spans.projected yc_front_spar_root = m*(.1*rc/p**2.)*(2*p-.1) #front spar is 10%chords yc_rear_spar_root = m*((rc-.6*rc)/(1-p)**2.)*(1+.6-2*p) yc_front_spar_tip = m*(.1*tc/p**2.)*(2*p-.1) yc_rear_spar_tip = m*((tc-.6*tc)/(1-p)**2.)*(1+.6-2*p) dy_dx_front_spar = (2.*m/p**2.)*(p-.1) dy_dx_rear_spar = (2.*m/(1-p)**2.)*(p-.6) theta_front_spar=np.arctan(dy_dx_front_spar) theta_rear_spar=np.arctan(dy_dx_rear_spar) x_front_spar_root = .1*rc x_rear_spar_root = .6*rc yt_front_spar_root = 5*t_c*rc*(.2969*(.1**.5)-.126*.1-.3516*.1**2+.2843*.1**3.-.1015*.1**4.) yt_rear_spar_root = 5*t_c*rc*(.2969*(.6**.5)-.126*.6-.3516*.6**2.+.2843*.6**3.-.1015*.6**4.) yt_front_spar_tip = 5*t_c*tc*(.2969*(.1**.5)-.126*.1-.3516*.1**2+.2843*.1**3.-.1015*.1**4.) yt_rear_spar_tip = 5*t_c*tc*(.2969*(.6**.5)-.126*.6-.3516*.6**2.+.2843*.6**3.-.1015*.6**4.) yu_front_spar_root = yc_front_spar_root+yt_front_spar_root*np.cos(theta_front_spar) yl_front_spar_root = yc_front_spar_root-yt_front_spar_root*np.cos(theta_front_spar) yu_rear_spar_root = yc_rear_spar_root+yt_rear_spar_root*np.cos(theta_rear_spar) yl_rear_spar_root = yc_rear_spar_root-yt_rear_spar_root*np.cos(theta_rear_spar) yu_front_spar_tip = yc_front_spar_tip+yt_front_spar_tip*np.cos(theta_front_spar) yl_front_spar_tip = yc_front_spar_tip-yt_front_spar_tip*np.cos(theta_front_spar) yu_rear_spar_tip = yc_rear_spar_tip+yt_rear_spar_tip*np.cos(theta_rear_spar) yl_rear_spar_tip = yc_rear_spar_tip-yt_rear_spar_tip*np.cos(theta_rear_spar) #create line between root and tip points slopeu_front_spar = (yu_front_spar_root-yu_front_spar_tip)/(span/2.) slopel_front_spar = (yl_front_spar_root-yl_front_spar_tip)/(span/2.) slopeu_rear_spar = (yu_rear_spar_root-yu_rear_spar_tip)/(span/2.) slopel_rear_spar = (yl_rear_spar_root-yl_rear_spar_tip)/(span/2.) yu_front_spar_mid = (span/4.)*slopeu_front_spar+yu_front_spar_tip yl_front_spar_mid = (span/4.)*slopeu_front_spar+yl_front_spar_tip yu_rear_spar_mid = (span/4.)*slopeu_rear_spar+yu_rear_spar_tip yl_rear_spar_mid = (span/4.)*slopel_rear_spar+yl_rear_spar_tip slope_chord = (rc-tc)/(span/2.) mid_chord = slope_chord*(span/4.)+tc Aroot = ((yu_front_spar_root-yl_front_spar_root)+(yu_rear_spar_root-yl_rear_spar_root))*(rc*(.6-.1))/2. Atip = ((yu_front_spar_tip-yl_front_spar_tip)+(yu_rear_spar_tip-yl_rear_spar_tip))*(tc*(.6-.1))/2. Amid = ((yu_front_spar_mid-yl_front_spar_mid)+(yu_rear_spar_mid-yl_rear_spar_mid))*(mid_chord*(.6-.1))/2. volume = 2*(span/12.)*(Aroot+4*(Amid)+Atip) #integrate a side and multiply by two return volume