BallisticDescent2ndOrderDragApproximation

Class supports computation of a ballistic descent under the influence of gravity and drag.

class casex.ballistic_descent_models.BallisticDescent2ndOrderDragApproximation[source]

This class allows for computation of ballistic descent using a variation of the standard second order drag model. In this implementation it has been modified to support fast calculations. Details on this can be found in [1].

aircraft

Class holding information about the aircraft.

Type

:class:’AircraftSpecs’

distance1

[m] Horizontal distance travelled between start time of descent and time time_top.

Type

float

distance2

[m] Horizontal distance travelled between time time_top and time time_cross.

Type

float

distance3

[m] Horizontal distance travelled between time time_cross and time time_impact.

Type

float

velocity_x

[m/s] Horizontal part of the impact velocity.

Type

float

velocity_y

[m/s] Vertical part of the impact velocity.

Type

float

time_top

[s] Time from start of descent to reaching the top of the descent curve. This is 0 if the descent starts with a descent.

Type

float

time_cross

[s] Time from start of descent to reaching the point, where the vertical velocity exceeds the horizontal velocity.

Type

float

time_impact

[s] Time from start of descent to impact.

Type

float

c

This represents the multiplication of frontal area, air density, and drag coefficient, which often appears together in the computations. The c attribute is just a placeholder for this multiplication.

Type

float

gamma

A placeholder for \(\sqrt{m \cdot g / c}\), where \(m\) is the mass of the aircraft, and \(g\) is the gravitational constant.

Type

float

compute_ballistic_distance(altitude, initial_velocity_x, initial_velocity_y)[source]

Compute the distance, time, angle, and velocity of a ballistic descent impact.

One of the following parameters can be an numpy.array

  • altitude

  • initial_velocity_x

  • initial_velocity_y

  • aircraft.ballistic_drag_coefficient

  • aircraft.ballistic_frontal_area

and the output will also be an numpy.array for the outputs that depends on the parameters given as an numpy.array. Note that aircraft refers to the variable set with the methods set_aircraft.

The following requirements apply to the inputs

  • initial_velocity_x must be positive.

  • initial_velocity_x must be larger than initial_velocity_y.

  • absolute value of initial_velocity_y must be less than the terminal velocity.

Parameters
  • altitude (float) – [m] Altitude of aircraft at time of event.

  • initial_velocity_x (float) – [m/s] Horizontal velocity as time of event.

  • initial_velocity_y (float) – [m/s] Vertical velocity as time of event.

Returns

  • distance_impact (float) – [m] Horizontal distance to impact point relative to event point.

  • velocity_impact (float) – [m/s] Impact velocity.

  • angle_impact (float) – [deg] Impact angle (relative to horizontal).

  • time_impact (float) – [s] Time from event to impact.

Raises
set_aircraft(aircraft)[source]

Set the aircraft.

Parameters

aircraft (AircraftSpecs) – Class holding information about the aircraft.

Returns

Return type

None

1

A. la Cour-Harbo and H. Schioler. How obstacles may reduce the impact of a crashing unmanned aircraft. Preprint, pages, 2021.