fastoad.models.performances.mission.segments.altitude_change module

Classes for climb/descent segments.

class fastoad.models.performances.mission.segments.altitude_change.AltitudeChangeSegment(target: fastoad.model_base.flight_point.FlightPoint, propulsion: fastoad.model_base.propulsion.IPropulsion, polar: fastoad.models.performances.mission.polar.Polar, reference_area: float, time_step: float = 2.0, engine_setting: fastoad.constants.EngineSetting = <EngineSetting.CLIMB: 2>, altitude_bounds: tuple = (-500.0, 40000.0), mach_bounds: tuple = (0.0, 5.0), name: str = '', interrupt_if_getting_further_from_target: bool = True, thrust_rate: float = 1.0, maximum_flight_level: float = 500.0)[source]

Bases: fastoad.models.performances.mission.segments.base.ManualThrustSegment

Computes a flight path segment where altitude is modified with constant speed.

Note

Setting speed

Constant speed may be:

  • constant true airspeed (TAS)

  • constant equivalent airspeed (EAS)

  • constant Mach number

Target should have "constant" as definition for one parameter among true_airspeed, equivalent_airspeed or mach. All computed flight points will use the corresponding start value. The two other speed values will be computed accordingly.

If not “constant” parameter is set, constant TAS is assumed.

Note

Setting target

Target can be an altitude, or a speed:

  • Target altitude can be a float value (in meters), or can be set to:

    • OPTIMAL_ALTITUDE: in that case, the target altitude will be the altitude where maximum lift/drag ratio is achieved for target speed, depending on current mass.

    • OPTIMAL_FLIGHT_LEVEL: same as above, except that altitude will be rounded to the nearest flight level (multiple of 100 feet).

  • For a speed target, as explained above, one value TAS, EAS or Mach must be "constant". One of the two other ones can be set as target.

In any case, the achieved value will be capped so it respects maximum_flight_level.

time_step: float = 2.0

Used time step for computation (actual time step can be lower at some particular times of the flight path).

maximum_flight_level: float = 500.0

The maximum allowed flight level (i.e. multiple of 100 feet).

OPTIMAL_ALTITUDE = 'optimal_altitude'

Using this value will tell to target the altitude with max lift/drag ratio.

OPTIMAL_FLIGHT_LEVEL = 'optimal_flight_level'

Using this value will tell to target the nearest flight level to altitude with max lift/drag ratio.

compute_from(start: fastoad.model_base.flight_point.FlightPoint)pandas.core.frame.DataFrame[source]

Computes the flight path segment from provided start point.

Computation ends when target is attained, or if the computation stops getting closer to target. For instance, a climb computation with too low thrust will only return one flight point, that is the provided start point.

Parameters

start – the initial flight point, defined for altitude, mass and speed (true_airspeed, equivalent_airspeed or mach). Can also be defined for time and/or ground_distance.

Returns

a pandas DataFrame where columns names match fields of FlightPoint()