def compute_max_lift_coeff(vehicle,conditions=None): """ SUAVE.Methods.Aerodynamics.compute_max_lift_coeff(vehicle): Computes the maximum lift coefficient associated with an aircraft high lift system Inputs: vehicle - SUave type vehicle conditions - data dictionary with fields: mach_number - float or 1D array of freestream mach numbers airspeed - float or 1D array of freestream airspeed rho - air density mu - air dynamic_viscosity geometry - Not used Outputs: Cl_max_ls - maximum lift coefficient Cd_ind - induced drag increment due to high lift device Assumptions: if needed """ # initializing Cl and CDi Cl_max_ls = 0 Cd_ind = 0 #unpack max_lift_coefficient_factor = vehicle.max_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.sweep # convert into degrees taper = wing.taper flap_chord = wing.flaps.chord flap_angle = wing.flaps.angle slat_angle = wing.slats.angle Swf = wing.areas.affected #portion of wing area with flaps flap_type = wing.flaps.type # conditions data V = conditions.freestream.velocity roc = conditions.freestream.density nu = conditions.freestream.dynamic_viscosity ##Mcr = segment.M #--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 + 0.247071428571446*taper**2 + \ 0.003191500000000*taper*sweep -0.000056632142857*sweep**2 \ -0.279166666666676*taper**3 + 0.002300000000000*taper**2*sweep + \ 0.000049982142857*taper*sweep**2 -0.000000280000000* sweep**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 Slat dcl_slat = compute_slat_lift(slat_angle, sweep) # Compute CL increment due to Flap dcl_flap = compute_flap_lift(tc,flap_type,flap_chord,flap_angle,sweep,Sref,Swf) #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
def compute_max_lift_coeff(vehicle,conditions=None): """Computes the maximum lift coefficient associated with an aircraft high lift system Assumptions: None Source: Unknown Inputs: vehicle.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] flaps.angle [radians] slats.angle [radians] areas.affected [m^2] flaps.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 #unpack max_lift_coefficient_factor = vehicle.max_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 # convert into degrees taper = wing.taper flap_chord = wing.flaps.chord flap_angle = wing.flaps.angle slat_angle = wing.slats.angle Swf = wing.areas.affected #portion of wing area with flaps flap_type = wing.flaps.type # 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 + 0.247071428571446*taper**2 + \ 0.003191500000000*taper*sweep -0.000056632142857*sweep**2 \ -0.279166666666676*taper**3 + 0.002300000000000*taper**2*sweep + \ 0.000049982142857*taper*sweep**2 -0.000000280000000* sweep**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 Slat dcl_slat = compute_slat_lift(slat_angle, sweep) # Compute CL increment due to Flap dcl_flap = compute_flap_lift(tc,flap_type,flap_chord,flap_angle,sweep,Sref,Swf) #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
def compute_max_lift_coeff(vehicle, conditions=None): """Computes the maximum lift coefficient associated with an aircraft high lift system Assumptions: None Source: Unknown Inputs: vehicle.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] flaps.angle [radians] slats.angle [radians] areas.affected [m^2] flaps.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 #unpack max_lift_coefficient_factor = vehicle.max_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 # convert into degrees taper = wing.taper flap_chord = wing.flaps.chord flap_angle = wing.flaps.angle slat_angle = wing.slats.angle Swf = wing.areas.affected #portion of wing area with flaps flap_type = wing.flaps.type # 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 + 0.247071428571446*taper**2 + \ 0.003191500000000*taper*sweep -0.000056632142857*sweep**2 \ -0.279166666666676*taper**3 + 0.002300000000000*taper**2*sweep + \ 0.000049982142857*taper*sweep**2 -0.000000280000000* sweep**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 Slat dcl_slat = compute_slat_lift(slat_angle, sweep) # Compute CL increment due to Flap dcl_flap = compute_flap_lift(tc, flap_type, flap_chord, flap_angle, sweep, Sref, Swf) #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