aerosandbox.aerodynamics.aero_3D.aero_buildup#

Module Contents#

Classes#

AeroBuildup

A workbook-style aerodynamics buildup.

Attributes#

class aerosandbox.aerodynamics.aero_3D.aero_buildup.AeroBuildup(airplane, op_point, xyz_ref=None, model_size='small', include_wave_drag=True)[source]#

Bases: aerosandbox.ExplicitAnalysis

A workbook-style aerodynamics buildup.

Example usage:

>>> import aerosandbox as asb
>>> ab = asb.AeroBuildup(  # This sets up the analysis, but doesn't execute calculation
>>>     airplane=my_airplane,  # type: asb.Airplane
>>>     op_point=my_operating_point,  # type: asb.OperatingPoint
>>>     xyz_ref=[0.1, 0.2, 0.3],  # Moment reference and center of rotation.
>>> )
>>> aero = ab.run()  # This executes the actual aero analysis.
>>> aero_with_stability_derivs = ab.run_with_stability_derivatives()  # Same, but also gets stability derivatives.
Parameters:
class AeroComponentResults[source]#
property F_b: List[float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray][source]#

An [x, y, z] list of forces in body axes [N]

Return type:

List[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]]

property F_w: List[float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray][source]#

An [x, y, z] list of forces in wind axes [N]

Return type:

List[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]]

property M_b: List[float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray][source]#

An [x, y, z] list of moments about body axes [Nm]

Return type:

List[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]]

property M_w: List[float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray][source]#

An [x, y, z] list of moments about wind axes [Nm]

Return type:

List[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]]

property L: float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray[source]#

The lift force [N]. Definitionally, this is in wind axes.

Return type:

Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]

property Y: float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray[source]#

The side force [N]. Definitionally, this is in wind axes.

Return type:

Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]

property D: float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray[source]#

The drag force [N]. Definitionally, this is in wind axes.

Return type:

Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]

property l_b: float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray[source]#

The rolling moment [Nm] in body axes. Positive is roll-right.

Return type:

Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]

property m_b: float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray[source]#

The pitching moment [Nm] in body axes. Positive is nose-up.

Return type:

Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]

property n_b: float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray[source]#

The yawing moment [Nm] in body axes. Positive is nose-right.

Return type:

Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]

s_ref: float[source]#
c_ref: float[source]#
b_ref: float[source]#
op_point: aerosandbox.performance.OperatingPoint[source]#
F_g: List[float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray][source]#
M_g: List[float | aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray][source]#
span_effective: float[source]#
oswalds_efficiency: float[source]#
__repr__()[source]#

Return repr(self).

default_analysis_specific_options[source]#
__repr__()[source]#

Return repr(self).

run()[source]#

Computes the aerodynamic forces and moments on the airplane.

Returns: a dictionary with keys:

  • ‘F_g’ : an [x, y, z] list of forces in geometry axes [N]

  • ‘F_b’ : an [x, y, z] list of forces in body axes [N]

  • ‘F_w’ : an [x, y, z] list of forces in wind axes [N]

  • ‘M_g’ : an [x, y, z] list of moments about geometry axes [Nm]

  • ‘M_b’ : an [x, y, z] list of moments about body axes [Nm]

  • ‘M_w’ : an [x, y, z] list of moments about wind axes [Nm]

  • ‘L’ : the lift force [N]. Definitionally, this is in wind axes.

  • ‘Y’ : the side force [N]. This is in wind axes.

  • ‘D’ : the drag force [N]. Definitionally, this is in wind axes.

  • ‘l_b’, the rolling moment, in body axes [Nm]. Positive is roll-right.

  • ‘m_b’, the pitching moment, in body axes [Nm]. Positive is pitch-up.

  • ‘n_b’, the yawing moment, in body axes [Nm]. Positive is nose-right.

  • ‘CL’, the lift coefficient [-]. Definitionally, this is in wind axes.

  • ‘CY’, the sideforce coefficient [-]. This is in wind axes.

  • ‘CD’, the drag coefficient [-]. Definitionally, this is in wind axes.

  • ‘Cl’, the rolling coefficient [-], in body axes

  • ‘Cm’, the pitching coefficient [-], in body axes

  • ‘Cn’, the yawing coefficient [-], in body axes

Nondimensional values are nondimensionalized using reference values in the AeroBuildup.airplane object.

Data types:
  • The “L”, “Y”, “D”, “l_b”, “m_b”, “n_b”, “CL”, “CY”, “CD”, “Cl”, “Cm”, and “Cn” keys are:

    • floats if the OperatingPoint object is not vectorized (i.e., if all attributes of OperatingPoint

    are floats, not arrays).

    • arrays if the OperatingPoint object is vectorized (i.e., if any attribute of OperatingPoint is an

    array).

  • The “F_g”, “F_b”, “F_w”, “M_g”, “M_b”, and “M_w” keys are always lists, which will contain either

floats or arrays, again depending on whether the OperatingPoint object is vectorized or not.

Return type:

Dict[str, Union[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray], List[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]]]]

run_with_stability_derivatives(alpha=True, beta=True, p=True, q=True, r=True)[source]#

Computes the aerodynamic forces and moments on the airplane, and the stability derivatives.

Arguments essentially determine which stability derivatives are computed. If a stability derivative is not needed, leaving it False will speed up the computation.

Parameters:
  • alpha (-) – If True, compute the stability derivatives with respect to the angle of attack (alpha).

  • beta (-) – If True, compute the stability derivatives with respect to the sideslip angle (beta).

  • p (-) – If True, compute the stability derivatives with respect to the body-axis roll rate (p).

  • q (-) – If True, compute the stability derivatives with respect to the body-axis pitch rate (q).

  • r (-) – If True, compute the stability derivatives with respect to the body-axis yaw rate (r).

Return type:

Dict[str, Union[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray], List[Union[float, aerosandbox.aerodynamics.aero_3D.aero_buildup_submodels.fuselage_aerodynamics_utilities.np.ndarray]]]]

Returns: a dictionary with keys:

  • ‘F_g’ : an [x, y, z] list of forces in geometry axes [N]

  • ‘F_b’ : an [x, y, z] list of forces in body axes [N]

  • ‘F_w’ : an [x, y, z] list of forces in wind axes [N]

  • ‘M_g’ : an [x, y, z] list of moments about geometry axes [Nm]

  • ‘M_b’ : an [x, y, z] list of moments about body axes [Nm]

  • ‘M_w’ : an [x, y, z] list of moments about wind axes [Nm]

  • ‘L’ : the lift force [N]. Definitionally, this is in wind axes.

  • ‘Y’ : the side force [N]. This is in wind axes.

  • ‘D’ : the drag force [N]. Definitionally, this is in wind axes.

  • ‘l_b’ : the rolling moment, in body axes [Nm]. Positive is roll-right.

  • ‘m_b’ : the pitching moment, in body axes [Nm]. Positive is pitch-up.

  • ‘n_b’ : the yawing moment, in body axes [Nm]. Positive is nose-right.

  • ‘CL’ : the lift coefficient [-]. Definitionally, this is in wind axes.

  • ‘CY’ : the sideforce coefficient [-]. This is in wind axes.

  • ‘CD’ : the drag coefficient [-]. Definitionally, this is in wind axes.

  • ‘Cl’ : the rolling coefficient [-], in body axes

  • ‘Cm’ : the pitching coefficient [-], in body axes

  • ‘Cn’ : the yawing coefficient [-], in body axes

Along with additional keys, depending on the value of the alpha, beta, p, q, and r arguments. For example, if alpha=True, then the following additional keys will be present:

  • ‘CLa’ : the lift coefficient derivative with respect to alpha [1/rad]

  • ‘CDa’ : the drag coefficient derivative with respect to alpha [1/rad]

  • ‘CYa’ : the sideforce coefficient derivative with respect to alpha [1/rad]

  • ‘Cla’ : the rolling moment coefficient derivative with respect to alpha [1/rad]

  • ‘Cma’ : the pitching moment coefficient derivative with respect to alpha [1/rad]

  • ‘Cna’ : the yawing moment coefficient derivative with respect to alpha [1/rad]

  • ‘x_np’: the neutral point location in the x direction [m]

Nondimensional values are nondimensionalized using reference values in the AeroBuildup.airplane object.

Data types:
  • The “L”, “Y”, “D”, “l_b”, “m_b”, “n_b”, “CL”, “CY”, “CD”, “Cl”, “Cm”, and “Cn” keys are:

    • floats if the OperatingPoint object is not vectorized (i.e., if all attributes of OperatingPoint

    are floats, not arrays).

    • arrays if the OperatingPoint object is vectorized (i.e., if any attribute of OperatingPoint is an

    array).

  • The “F_g”, “F_b”, “F_w”, “M_g”, “M_b”, and “M_w” keys are always lists, which will contain either

floats or arrays, again depending on whether the OperatingPoint object is vectorized or not.

wing_aerodynamics(wing, include_induced_drag=True)[source]#

Estimates the aerodynamic forces, moments, and derivatives on a wing in isolation.

Moments are given with the reference at Wing [0, 0, 0].

Parameters:
  • wing (aerosandbox.geometry.Wing) – A Wing object that you wish to analyze.

  • op_point – The OperatingPoint that you wish to analyze the fuselage at.

  • include_induced_drag (bool) –

Return type:

AeroComponentResults

Returns:

fuselage_aerodynamics(fuselage, include_induced_drag=True)[source]#

Estimates the aerodynamic forces, moments, and derivatives on a fuselage in isolation.

Assumes:
  • The fuselage is a body of revolution aligned with the x_b axis.

  • The angle between the nose and the freestream is less than 90 degrees.

Moments are given with the reference at Fuselage [0, 0, 0].

Uses methods from Jorgensen, Leland Howard. “Prediction of Static Aerodynamic Characteristics for Slender Bodies Alone and with Lifting Surfaces to Very High Angles of Attack”. NASA TR R-474. 1977.

Parameters:
Return type:

AeroComponentResults

Returns:

aerosandbox.aerodynamics.aero_3D.aero_buildup.aero[source]#