Parachute Class#

class rocketpy.Parachute[source]#

Keeps information of the parachute, which is modeled as a hemispheroid.

Variables:
  • Parachute.name (string) – Parachute name, such as drogue and main. Has no impact in simulation, as it is only used to display data in a more organized matter.

  • Parachute.cd_s (float) – Drag coefficient times reference area for parachute. It has units of area and must be given in squared meters.

  • Parachute.trigger (callable, float, str) –

    This parameter defines the trigger condition for the parachute ejection system. It can be one of the following:

    • A callable function that takes three arguments: 1. Freestream pressure in pascals. 2. Height in meters above ground level. 3. The state vector of the simulation, which is defined as:

      [x, y, z, vx, vy, vz, e0, e1, e2, e3, wx, wy, wz].

      1. A list of sensors that are attached to the rocket. The most recent measurements of the sensors are provided with the sensor.measurement attribute. The sensors are listed in the same order as they are added to the rocket.

      The function should return True if the parachute ejection system should be triggered and False otherwise. The function will be called according to the specified sampling rate.

    • A float value, representing an absolute height in meters. In this case, the parachute will be ejected when the rocket reaches this height above ground level.

    • The string “apogee” which triggers the parachute at apogee, i.e., when the rocket reaches its highest point and starts descending.

Parachute.triggerfuncfunction

Trigger function created from the trigger used to evaluate the trigger condition for the parachute ejection system. It is a callable function that takes three arguments: Freestream pressure in Pa, Height above ground level in meters, and the state vector of the simulation. The returns True if the parachute ejection system should be triggered and False otherwise.

Parachute.sampling_ratefloat

Sampling rate, in Hz, for the trigger function.

Parachute.lagfloat

Time, in seconds, between the parachute ejection system is triggered and the parachute is fully opened.

Parachute.noisetuple, list

List in the format (mean, standard deviation, time-correlation). The values are used to add noise to the pressure signal which is passed to the trigger function. Default value is (0, 0, 0). Units are in Pa.

Parachute.noise_biasfloat

Mean value of the noise added to the pressure signal, which is passed to the trigger function. Unit is in Pa.

Parachute.noise_deviationfloat

Standard deviation of the noise added to the pressure signal, which is passed to the trigger function. Unit is in Pa.

Parachute.noise_corrtuple, list

Tuple with the correlation between noise and time.

Parachute.noise_signallist of tuple

List of (t, noise signal) corresponding to signal passed to trigger function. Completed after running a simulation.

Parachute.noisy_pressure_signallist of tuple

List of (t, noisy pressure signal) that is passed to the trigger function. Completed after running a simulation.

Parachute.clean_pressure_signallist of tuple

List of (t, clean pressure signal) corresponding to signal passed to trigger function. Completed after running a simulation.

Parachute.noise_signal_functionFunction

Function of noiseSignal.

Parachute.noisy_pressure_signal_functionFunction

Function of noisy_pressure_signal.

Parachute.clean_pressure_signal_functionFunction

Function of clean_pressure_signal.

Parachute.drag_coefficientfloat

Drag coefficient of the inflated canopy shape, used only when radius is not provided to estimate the parachute radius from cd_s: R = sqrt(cd_s / (drag_coefficient * pi)). Typical values: 1.4 for hemispherical canopies (default), 0.75 for flat circular canopies, 1.5 for extended-skirt canopies.

Parachute.radiusfloat

Length of the non-unique semi-axis (radius) of the inflated hemispheroid parachute in meters. If not provided at construction time, it is estimated from cd_s and drag_coefficient.

Parachute.heightfloat

Length of the unique semi-axis (height) of the inflated hemispheroid parachute in meters.

Parachute.porosityfloat

Geometric porosity of the canopy (ratio of open area to total canopy area), in [0, 1]. Affects only the added-mass scaling during descent; it does not change cd_s (drag). The default value of 0.0432 is chosen so that the resulting added_mass_coefficient equals approximately 1.0 (“neutral” added-mass behavior).

Parachute.added_mass_coefficientfloat

Coefficient used to calculate the added-mass due to dragged air. It is calculated from the porosity of the parachute.

__init__(name, cd_s, trigger, sampling_rate, lag=0, noise=(0, 0, 0), radius=None, height=None, porosity=0.0432, drag_coefficient=1.4)[source]#

Initializes Parachute class.

Parameters:
  • name (string) – Parachute name, such as drogue and main. Has no impact in simulation, as it is only used to display data in a more organized matter.

  • cd_s (float) – Drag coefficient times reference area of the parachute.

  • trigger (callable, float, str) –

    Defines the trigger condition for the parachute ejection system. It can be one of the following:

    • A callable function that takes three arguments:
      1. Freestream pressure in pascals.

      2. Height in meters above ground level.

      3. The state vector of the simulation, which is defined as:
        u = [x, y, z, vx, vy, vz, e0, e1, e2, e3, wx, wy, wz]
        

      Note

      The function should return True if the parachute ejection system should be triggered and False otherwise.

    • A float value, representing an absolute height in meters. In this case, the parachute will be ejected when the rocket reaches this height above ground level.

    • The string “apogee” which triggers the parachute at apogee, i.e., when the rocket reaches its highest point and starts descending.

    Note

    The function will be called according to the sampling rate specified.

  • sampling_rate (float) – Sampling rate in which the parachute trigger will be checked at. It is used to simulate the refresh rate of onboard sensors such as barometers. Default value is 100. Value must be given in hertz.

  • lag (float, optional) – Time between the parachute ejection system is triggered and the parachute is fully opened. During this time, the simulation will consider the rocket as flying without a parachute. Default value is 0. Must be given in seconds.

  • noise (tuple, list, optional) – List in the format (mean, standard deviation, time-correlation). The values are used to add noise to the pressure signal which is passed to the trigger function. Default value is (0, 0, 0). Units are in Pa.

  • radius (float, optional) – Length of the non-unique semi-axis (radius) of the inflated hemispheroid parachute. If not provided, it is estimated from cd_s and drag_coefficient using: radius = sqrt(cd_s / (drag_coefficient * pi)). Units are in meters.

  • height (float, optional) – Length of the unique semi-axis (height) of the inflated hemispheroid parachute. Default value is the radius of the parachute. Units are in meters.

  • porosity (float, optional) – Geometric porosity of the canopy (ratio of open area to total canopy area), in [0, 1]. Affects only the added-mass scaling during descent; it does not change cd_s (drag). The default value of 0.0432 is chosen so that the resulting added_mass_coefficient equals approximately 1.0 (“neutral” added-mass behavior).

  • drag_coefficient (float, optional) –

    Drag coefficient of the inflated canopy shape, used only when radius is not provided. It relates the aerodynamic cd_s to the physical canopy area via cd_s = drag_coefficient * pi * radius**2. Typical values:

    • 1.4 — hemispherical canopy (default, NASA SP-8066)

    • 0.75 — flat circular canopy

    • 1.5 — extended-skirt canopy

    Has no effect when radius is explicitly provided.

__str__()[source]#

Returns a string representation of the Parachute class.

Returns:

String representation of Parachute class. It is human readable.

Return type:

string

__repr__()[source]#

Representation method for the class, useful when debugging.

info()[source]#

Prints information about the Parachute class.

all_info()[source]#

Prints all information about the Parachute class.