Linear Generic Surface Class#

class rocketpy.LinearGenericSurface[source]#

Class that defines a generic linear aerodynamic surface. This class is used to define aerodynamic surfaces that have aerodynamic coefficients defined as linear functions of the coefficients derivatives.

__init__(reference_area, reference_length, coefficients, center_of_pressure=(0, 0, 0), name='Generic Linear Surface')[source]#

Create a generic linear aerodynamic surface, defined by its aerodynamic coefficients derivatives. This surface is used to model any aerodynamic surface that does not fit the predefined classes.

Important

All the aerodynamic coefficients can be input as callable functions of angle of attack, angle of sideslip, Mach number, Reynolds number, pitch rate, yaw rate and roll rate. For CSV files, the header must contain at least one of the following: “alpha”, “beta”, “mach”, “reynolds”, “pitch_rate”, “yaw_rate” and “roll_rate”.

Parameters:
  • reference_area (int, float) – Reference area of the aerodynamic surface. Has the unit of meters squared. Commonly defined as the rocket’s cross-sectional area.

  • reference_length (int, float) – Reference length of the aerodynamic surface. Has the unit of meters. Commonly defined as the rocket’s diameter.

  • coefficients (dict, optional) –

    List of coefficients. If a coefficient is omitted, it is set to 0. The valid coefficients are:

    cL_0: callable, str, optional

    Coefficient of lift at zero angle of attack. Default is 0.

    cL_alpha: callable, str, optional

    Coefficient of lift derivative with respect to angle of attack. Default is 0.

    cL_beta: callable, str, optional

    Coefficient of lift derivative with respect to sideslip angle. Default is 0.

    cL_p: callable, str, optional

    Coefficient of lift derivative with respect to roll rate. Default is 0.

    cL_q: callable, str, optional

    Coefficient of lift derivative with respect to pitch rate. Default is 0.

    cL_r: callable, str, optional

    Coefficient of lift derivative with respect to yaw rate. Default is 0.

    cQ_0: callable, str, optional

    Coefficient of side force at zero angle of attack. Default is 0.

    cQ_alpha: callable, str, optional

    Coefficient of side force derivative with respect to angle of attack. Default is 0.

    cQ_beta: callable, str, optional

    Coefficient of side force derivative with respect to sideslip angle. Default is 0.

    cQ_p: callable, str, optional

    Coefficient of side force derivative with respect to roll rate. Default is 0.

    cQ_q: callable, str, optional

    Coefficient of side force derivative with respect to pitch rate. Default is 0.

    cQ_r: callable, str, optional

    Coefficient of side force derivative with respect to yaw rate. Default is 0.

    cD_0: callable, str, optional

    Coefficient of drag at zero angle of attack. Default is 0.

    cD_alpha: callable, str, optional

    Coefficient of drag derivative with respect to angle of attack. Default is 0.

    cD_beta: callable, str, optional

    Coefficient of drag derivative with respect to sideslip angle. Default is 0.

    cD_p: callable, str, optional

    Coefficient of drag derivative with respect to roll rate. Default is 0.

    cD_q: callable, str, optional

    Coefficient of drag derivative with respect to pitch rate. Default is 0.

    cD_r: callable, str, optional

    Coefficient of drag derivative with respect to yaw rate. Default is 0.

    cm_0: callable, str, optional

    Coefficient of pitch moment at zero angle of attack. Default is 0.

    cm_alpha: callable, str, optional

    Coefficient of pitch moment derivative with respect to angle of attack. Default is 0.

    cm_beta: callable, str, optional

    Coefficient of pitch moment derivative with respect to sideslip angle. Default is 0.

    cm_p: callable, str, optional

    Coefficient of pitch moment derivative with respect to roll rate. Default is 0.

    cm_q: callable, str, optional

    Coefficient of pitch moment derivative with respect to pitch rate. Default is 0.

    cm_r: callable, str, optional

    Coefficient of pitch moment derivative with respect to yaw rate. Default is 0.

    cn_0: callable, str, optional

    Coefficient of yaw moment at zero angle of attack. Default is 0.

    cn_alpha: callable, str, optional

    Coefficient of yaw moment derivative with respect to angle of attack. Default is 0.

    cn_beta: callable, str, optional

    Coefficient of yaw moment derivative with respect to sideslip angle. Default is 0.

    cn_p: callable, str, optional

    Coefficient of yaw moment derivative with respect to roll rate. Default is 0.

    cn_q: callable, str, optional

    Coefficient of yaw moment derivative with respect to pitch rate. Default is 0.

    cn_r: callable, str, optional

    Coefficient of yaw moment derivative with respect to yaw rate. Default is 0.

    cl_0: callable, str, optional

    Coefficient of roll moment at zero angle of attack. Default is 0.

    cl_alpha: callable, str, optional

    Coefficient of roll moment derivative with respect to angle of attack. Default is 0.

    cl_beta: callable, str, optional

    Coefficient of roll moment derivative with respect to sideslip angle. Default is 0.

    cl_p: callable, str, optional

    Coefficient of roll moment derivative with respect to roll rate. Default is 0.

    cl_q: callable, str, optional

    Coefficient of roll moment derivative with respect to pitch rate. Default is 0.

    cl_r: callable, str, optional

    Coefficient of roll moment derivative with respect to yaw rate. Default is 0.

  • center_of_pressure (tuple, optional) – Application point of the aerodynamic forces and moments. The center of pressure is defined in the local coordinate system of the aerodynamic surface. The default value is (0, 0, 0).

  • name (str) – Name of the aerodynamic surface. Default is ‘GenericSurface’.

_get_default_coefficients()[source]#

Returns default coefficients

Returns:

default_coefficients – Dictionary whose keys are the coefficients names and keys are the default values.

Return type:

dict

compute_forcing_coefficient(c_0, c_alpha, c_beta)[source]#

Compute the forcing coefficient from the derivatives of the aerodynamic coefficients.

compute_damping_coefficient(c_p, c_q, c_r)[source]#

Compute the damping coefficient from the derivatives of the aerodynamic coefficients.

compute_all_coefficients()[source]#

Compute all the aerodynamic coefficients from the derivatives.

_compute_from_coefficients(rho, stream_speed, alpha, beta, mach, reynolds, pitch_rate, yaw_rate, roll_rate)[source]#

Compute the aerodynamic forces and moments from the aerodynamic coefficients.

Parameters:
  • rho (float) – Air density.

  • stream_speed (float) – Magnitude of the airflow speed.

  • alpha (float) – Angle of attack in radians.

  • beta (float) – Sideslip angle in radians.

  • mach (float) – Mach number.

  • reynolds (float) – Reynolds number.

  • pitch_rate (float) – Pitch rate in radians per second.

  • yaw_rate (float) – Yaw rate in radians per second.

  • roll_rate (float) – Roll rate in radians per second.

Returns:

The aerodynamic forces (lift, side_force, drag) and moments (pitch, yaw, roll) in the body frame.

Return type:

tuple of float