Source code for RCAIDE.Library.Methods.Aerodynamics.Common.Lift.compute_max_lift_coeff


# ----------------------------------------------------------------------
#  Imports
# ----------------------------------------------------------------------

#RCAIDE Imports
from RCAIDE import  * 
from RCAIDE.Framework.Core import Units,  Data
from RCAIDE.Library.Components import Wings

from RCAIDE.Library.Methods.Aerodynamics.Common.Lift.compute_slat_lift import compute_slat_lift
from RCAIDE.Library.Methods.Aerodynamics.Common.Lift.compute_flap_lift import compute_flap_lift

# ----------------------------------------------------------------------
#  compute_max_lift_coeff
# ----------------------------------------------------------------------

[docs] def compute_max_lift_coeff(state,settings,geometry): """Computes the maximum lift coefficient associated with an aircraft high lift system Assumptions: None Source: Unknown Inputs: analyses.max_lift_coefficient_factor [Unitless] vehicle.reference_area [m^2] vehicle.wings. areas.reference [m^2] thickness_to_chord [Unitless] chords.mean_aerodynamic [m] sweeps.quarter_chord [radians] taper [Unitless] flaps.chord [m] control_surfaces.flap.deflection [radians] control_surfaces.slat.deflection [radians] areas.affected [m^2] control_surfaces.flap.configuration_type [string] conditions.freestream. velocity [m/s] density [kg/m^3] dynamic_viscosity [N s/m^2] Outputs: Cl_max_ls (maximum CL) [Unitless] Cd_ind (induced drag) [Unitless] Properties Used: N/A """ # initializing Cl and CDi Cl_max_ls = 0 Cd_ind = 0 vehicle = geometry conditions = state.conditions #unpack max_lift_coefficient_factor = settings.maximum_lift_coefficient_factor for wing in vehicle.wings: if not wing.high_lift: continue #geometrical data Sref = vehicle.reference_area Swing = wing.areas.reference tc = wing.thickness_to_chord * 100 chord_mac = wing.chords.mean_aerodynamic sweep = wing.sweeps.quarter_chord sweep_deg = wing.sweeps.quarter_chord / Units.degree # convert into degrees taper = wing.taper # conditions data V = conditions.freestream.velocity roc = conditions.freestream.density nu = conditions.freestream.dynamic_viscosity #--cl max based on airfoil t_c Cl_max_ref = -0.0009*tc**3 + 0.0217*tc**2 - 0.0442*tc + 0.7005 #-reynolds number effect Reyn = V * roc * chord_mac / nu Re_ref = 9*10**6 op_Clmax = Cl_max_ref * ( Reyn / Re_ref ) **0.1 #wing cl_max to outer panel Cl_max w_Clmax = op_Clmax* ( 0.919729714285715 -0.044504761904771*taper \ -0.001835900000000*sweep_deg + 0.247071428571446*taper**2 + \ 0.003191500000000*taper*sweep_deg -0.000056632142857*sweep_deg**2 \ -0.279166666666676*taper**3 + 0.002300000000000*taper**2*sweep_deg + \ 0.000049982142857*taper*sweep_deg**2 -0.000000280000000* sweep_deg**3) #---FAR stall speed effect--------------- #should be optional based on aircraft being modelled Cl_max_FAA = 1.1 * w_Clmax #-----------wing mounted engine ---- Cl_max_w_eng = Cl_max_FAA - 0.2 # Compute CL increment due to Flap if 'slat' in wing.control_surfaces.keys(): # Compute CL increment due to Slat slat_angle = wing.control_surfaces.slat.deflection dcl_slat = compute_slat_lift(slat_angle, sweep) else: dcl_slat = 0. # Compute CL increment due to Flap if 'flap' in wing.control_surfaces.keys(): flap_type = wing.control_surfaces.flap.configuration_type flap_chord = wing.control_surfaces.flap.chord_fraction # correct !!! flap_angle = wing.control_surfaces.flap.deflection Swf = wing.areas.affected # portion of wing area with flaps dcl_flap = compute_flap_lift(tc,flap_type,flap_chord,flap_angle,sweep,Sref,Swf) else: dcl_flap = 0.0 #results Cl_max_ls += (Cl_max_w_eng + dcl_slat + dcl_flap) * Swing / Sref Cd_ind += ( 0.01 ) * Swing / Sref Cl_max_ls = Cl_max_ls * max_lift_coefficient_factor return Cl_max_ls, Cd_ind