Lift methods that are directly specified by analyses. More...
Lift methods that are directly specified by analyses.
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.aircraft_total.aircraft_total | ( | state, | |
settings, | |||
geometry | |||
) |
aircraft_total.py
Created: Dec 2013, A. Variyar, Modified: Feb 2014, A. Variyar, T. Lukaczyk, T. Orra Apr 2014, A. Variyar
Jan 2016, E. Botero
Returns total aircraft lift and stores values Assumptions: None Source: None Inputs: state.conditions.aerodynamics.lift_coefficient [Unitless] Outputs: aircraft_lift_total (lift coefficient) [Unitless] Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.BET_calculations.compute_airfoil_aerodynamics | ( | beta, | |
c, | |||
r, | |||
R, | |||
B, | |||
Wa, | |||
Wt, | |||
a, | |||
nu, | |||
a_loc, | |||
a_geo, | |||
cl_sur, | |||
cd_sur, | |||
ctrl_pts, | |||
Nr, | |||
Na, | |||
tc, | |||
use_2d_analysis | |||
) |
Cl, Cdval = compute_airfoil_aerodynamics( beta,c,r,R,B, Wa,Wt,a,nu, a_loc,a_geo,cl_sur,cd_sur, ctrl_pts,Nr,Na,tc,use_2d_analysis ) Computes the aerodynamic forces at sectional blade locations. If airfoil geometry and locations are specified, the forces are computed using the airfoil polar lift and drag surrogates, accounting for the local Reynolds number and local angle of attack. If the airfoils are not specified, an approximation is used. Assumptions: N/A Source: N/A Inputs: beta blade twist distribution [-] c chord distribution [-] r radius distribution [-] R tip radius [-] B number of rotor blades [-] Wa axial velocity [-] Wt tangential velocity [-] a speed of sound [-] nu viscosity [-] a_loc Locations of specified airfoils [-] a_geo Geometry of specified airfoil [-] cl_sur Lift Coefficient Surrogates [-] cd_sur Drag Coefficient Surrogates [-] ctrl_pts Number of control points [-] Nr Number of radial blade sections [-] Na Number of azimuthal blade stations [-] tc Thickness to chord [-] use_2d_analysis Specifies 2d disc vs. 1d single angle analysis [Boolean] Outputs: Cl Lift Coefficients [-] Cdval Drag Coefficients (before scaling) [-] alpha section local angle of attack [rad]
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.generate_vortex_distribution.compute_panel_area | ( | VD | ) |
This computes the area of the panels on the lifting surface of the vehicle Assumptions: None Source: None Inputs: VD - vortex distribution Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.compute_RHS_matrix.compute_RHS_matrix | ( | delta, | |
phi, | |||
conditions, | |||
settings, | |||
geometry, | |||
propeller_wake_model | |||
) |
This computes the right hand side matrix for the VLM. In this function, induced velocites from propeller wake are also included when relevent and where specified Source: 1. Low-Speed Aerodynamics, Second Edition by Joseph Katz, Allen Plotkin Pgs. 331-338 2. VORLAX Source Code Inputs: geometry networks [Unitless] vehicle vortex distribution [Unitless] conditions.aerodynamics.angle_of_attack [radians] conditions.aerodynamics.side_slip_angle [radians] conditions.freestream.velocity [m/s] conditions.stability.dynamic.pitch_rate [radians/s] conditions.stability.dynamic.roll_rate [radians/s] conditions.stability.dynamic.yaw_rate [radians/s] sur_flag - use_surrogate flag [Unitless] slipstream - propeller_wake_model flag [Unitless] delta, phi - flow tangency angles [radians] Outputs: rhs. RHS ONSET Vx_ind_total Vz_ind_total V_distribution dt YGIRO ZGIRO VX SCNTL CCNTL COD SID Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.generate_vortex_distribution.compute_unit_normal | ( | VD | ) |
This computes the unit normal vector of each panel Assumptions: None Source: None Inputs: VD - vortex distribution Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.compute_wing_induced_velocity.compute_wing_induced_velocity | ( | VD, | |
mach, | |||
compute_EW = False |
|||
) |
This computes the induced velocities at each control point of the vehicle vortex lattice Assumptions: Trailing vortex legs infinity are alligned to freestream Outside of a call to the VLM() function itself, EW does not need to be computed, as C_mn provides the same information in the body-frame. Source: 1. Miranda, Luis R., Robert D. Elliot, and William M. Baker. "A generalized vortex lattice method for subsonic and supersonic flow applications." (1977). (NASA CR) 2. VORLAX Source Code Inputs: VD - vehicle vortex distribution [Unitless] mach [Unitless] Outputs: C_mn - total induced velocity matrix [Unitless] s - semispan of the horshoe vortex [m] t - tangent of the horshoe vortex [-] CHORD - chord length for a panel [m] RFLAG - sonic vortex flag [boolean] ZETA - tangent incidence angle of the chordwise strip [-] Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.extract_wing_VD.extract_wing_collocation_points | ( | geometry, | |
wing_instance_idx | |||
) |
This extracts the collocation points of the vehicle vortex distribution belonging to the specified wing instance index. This is useful for slipstream analysis, where the wake of a propeller is included in the VLM analysis of a specified wing in the vehicle. Source: None Inputs: geometry - SUAVE vehicle wing_instance - wing instance tag Outputs: VD_wing - colocation points of vortex distribution for specified wing ids - indices in the vortex distribution corresponding to specified wing Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.fuselage_correction.fuselage_correction | ( | state, | |
settings, | |||
geometry | |||
) |
fuselage_correction.py
Created: Dec 2013, A. Variyar Modified: Feb 2014, A. Variyar, T. Lukaczyk, T. Orra Apr 2014, A. Variyar Jan 2015, E. Botero
Corrects aircraft lift based on fuselage effects Assumptions: None Source: adg.stanford.edu (Stanford AA241 A/B Course Notes) Inputs: settings.fuselage_lift_correction [Unitless] state.conditions. freestream.mach_number [Unitless] aerodynamics.angle_of_attack [radians] aerodynamics.lift_coefficient [Unitless] Outputs: aircraft_lift_total [Unitless] Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.generate_vortex_distribution.generate_fuselage_and_nacelle_vortex_distribution | ( | VD, | |
fus, | |||
n_cw, | |||
n_sw, | |||
precision, | |||
model_geometry = False |
|||
) |
This generates the vortex distribution points on a fuselage or nacelle component Assumptions: If nacelle has segments defined, the mean width and height of the nacelle is used Source: None Inputs: VD - vortex distribution Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.generate_vortex_distribution.generate_vortex_distribution | ( | geometry, | |
settings | |||
) |
Compute the coordinates of panels, vortices , control points and geometry used to build the influence coefficient matrix. A different discretization (n_sw and n_cw) may be defined for each type of major section (wings and fuselages). Control surfaces are modelled as wings, but adapt their panel density to that of the area in which they reside on their own wing. Assumptions: Below is a schematic of the coordinates of an arbitrary panel XA1 ____________________________ XB1 | | | bound vortex | XAH| ________________________ |XBH | | XCH | | | | | | | | | | | | | | | | | | | | 0 <--control | | | | XC point | | | | | | XA2 |_|________________________|_|XB2 | | | trailing | | <-- vortex --> | | legs | In addition, all control surfaces should be appended directly to the wing, not the wing segments For control surfaces, "positve" deflection corresponds to the RH rule where the axis of rotation is the OUTBOARD-pointing hinge vector symmetry: the LH rule is applied to the reflected surface for non-ailerons. Ailerons follow a RH rule for both sides Source: None Inputs: geometry.wings [Unitless] settings.floating_point_precision [np.dtype] Of the following settings, the user should define either the number_ atrributes or the wing_ and fuse_ attributes. settings.number_spanwise_vortices - a base number of vortices to be applied to both wings and fuselages settings.number_chordwise_vortices - a base number of vortices to be applied to both wings and fuselages settings.wing_spanwise_vortices - the number of vortices to be applied to only the wings settings.wing_chordwise_vortices - the number of vortices to be applied to only the wings settings.fuselage_spanwise_vortices - the number of vortices to be applied to only the fuslages settings.fuselage_chordwise_vortices - the number of vortices to be applied to only the fuselages Outputs: VD - vehicle vortex distribution [Unitless] Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.generate_vortex_distribution.generate_wing_vortex_distribution | ( | VD, | |
wing, | |||
n_cw, | |||
n_sw, | |||
spc, | |||
precision | |||
) |
This generates vortex distribution points for the given wing Assumptions: The wing is segmented and was made or modified by make_VLM_wings() For control surfaces, "positve" deflection corresponds to the RH rule where the axis of rotation is the OUTBOARD-pointing hinge vector symmetry: the LH rule is applied to the reflected surface for non-ailerons. Ailerons follow a RH rule for both sides The hinge_vector will only ever be calcualted on the first strip of any control/all-moving surface. It is assumed that all control surfaces are trapezoids, thus needing only one hinge, and that all all-moving surfaces have exactly one point of rotation. Source: None Inputs: VD - vortex distribution wing - a Data object made or modified by make_VLM_wings() to mimick a Wing object Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.make_VLM_wings.make_VLM_wings | ( | geometry, | |
settings | |||
) |
This parses through geometry.wings to create a Container of Data objects. Relevant VLM attributes are copied from geometry.wings to the Container. After, the wing data objects are reformatted. All control surfaces are also added to the Container as Data objects representing full wings. Helper variables are then computed (most notably span_breaks) for later. see make_span_break() for further details Assumptions: All control surfaces are appended directly to the wing, not wing segments. If a given wing has no segments, it must have either .taper or .chords.root and .chords.tip defined Source: None Inputs: geometry. wings.wing. twists.root twists.tip dihedral sweeps.quarter_chord OR sweeps.leading_edge thickness_to_chord taper chord.root chords.tip control_surface. tag span_fraction_start span_fraction_end deflection chord_fraction settings.discretize_control_surfaces --> set to True to generate control surface panels Properties Used: N/A
def SUAVE.Methods.Aerodynamics.Common.Fidelity_Zero.Lift.VLM.VLM | ( | conditions, | |
settings, | |||
geometry | |||
) |
Uses the vortex lattice method to compute the lift, induced drag and moment coefficients. The user has the option to discretize control surfaces using the boolean settings.discretize_control_surfaces. The user should be forwarned that this will cause very slight differences in results for 0 deflection due to the slightly different discretization. The user has the option to use the boundary conditions and induced velocities from either SUAVE or VORLAX. See build_RHS in compute_RHS_matrix.py for more details. By default in Vortex_Lattice, VLM performs calculations based on panel coordinates with float32 precision. The user may also choose to use float16 or float64, but be warned that the latter can be memory intensive. The user should note that fully capitalized variables correspond to a VORLAX variable of the same name Assumptions: The user provides either global discretezation (number_spanwise/chordwise_vortices) or separate discretization (wing/fuselage_spanwise/chordwise_vortices) in settings, not both. The set of settings not being used should be set to None. The VLM requires that the user provide a non-zero velocity that matches mach number. For surrogate training cases at mach 0, VLM uses a velocity of 1e-6 m/s Source: 1. Miranda, Luis R., Robert D. Elliot, and William M. Baker. "A generalized vortex lattice method for subsonic and supersonic flow applications." (1977). (NASA CR) 2. VORLAX Source Code Inputs: geometry. reference_area [m^2] wing. spans.projected [m] chords.root [m] chords.tip [m] sweeps.quarter_chord [radians] taper [Unitless] twists.root [radians] twists.tip [radians] symmetric [Boolean] aspect_ratio [Unitless] areas.reference [m^2] vertical [Boolean] origin [m] fuselage. origin [m] width [m] heights.maximum [m] lengths.nose [m] lengths.tail [m] lengths.total [m] lengths.cabin [m] fineness.nose [Unitless] fineness.tail [Unitless] settings.number_spanwise_vortices [Unitless] <---| settings.number_chordwise_vortices [Unitless] <---| |--Either/or; see generate_vortex_distribution() for more details settings.wing_spanwise_vortices [Unitless] <---| settings.wing_chordwise_vortices [Unitless] <---| settings.fuselage_spanwise_vortices [Unitless] <---| settings.fuselage_chordwise_vortices [Unitless] <---| settings.use_surrogate [Unitless] settings.propeller_wake_model [Unitless] settings.discretize_control_surfaces [Boolean], set to True to generate control surface panels settings.use_VORLAX_matrix_calculation [boolean] settings.floating_point_precision [np.float16/32/64] conditions.aerodynamics.angle_of_attack [radians] conditions.aerodynamics.side_slip_angle [radians] conditions.freestream.mach_number [Unitless] conditions.freestream.velocity [m/s] conditions.stability.dynamic.pitch_rate [radians/s] conditions.stability.dynamic.roll_rate [radians/s] conditions.stability.dynamic.yaw_rate [radians/s] Outputs: results. CL [Unitless], CLTOT in VORLAX CDi [Unitless], CDTOT in VORLAX CM [Unitless], CMTOT in VORLAX CYTOT [Unitless], Total y force coeff CRTOT [Unitless], Rolling moment coeff (unscaled) CRMTOT [Unitless], Rolling moment coeff (scaled by w_span) CNTOT [Unitless], Yawing moment coeff (unscaled) CYMTOT [Unitless], Yawing moment coeff (scaled by w_span) CL_wing [Unitless], CL of each wing CDi_wing [Unitless], CDi of each wing cl_y [Unitless], CL of each strip cdi_y [Unitless], CDi of each strip alpha_i [radians] , Induced angle of each strip in each wing (array of numpy arrays) CP [Unitless], Pressure coefficient of each panel gamma [Unitless], Vortex strengths of each panel Properties Used: N/A