phases.py

class openconcept.mission.phases.ClimbAngleComp(**kwargs)

Bases: ExplicitComponent

Computes steady climb angle based on excess thrust.

This is a helper function and shouldn’t be instantiated in the top-level model directly.

Inputs:
  • drag (float) – Aircraft drag at v2 (climb out) flight condition (scalar, N)

  • weight (float) – Takeoff weight (scalar, kg)

  • thrust (float) – Thrust at the v2 (climb out) flight condition (scalar, N)

Outputs:

gamma (float) – Climb out flight path angle (scalar, rad)

Options:

num_nodes (int) – Number of points to run

class openconcept.mission.phases.FlipVectorComp(**kwargs)

Bases: ExplicitComponent

Reverses the order of an OpenMDAO vector

This is a helper function and shouldn’t be instantiated in the top-level model directly.

Inputs:

vec_in (float) – Incoming vector in forward order

Outputs:

vec_out (float) – Reversed order version of vec_in

Options:
  • num_nodes (int) – Number of points to run

  • negative (boolean) – Whether to apply a negative scaler. Default False preserves vector values. True returns all values with negative sign.

  • units (string or None) – Units for vec_in and vec_out (Default None) Specify as an OpenMDAO unit string (e.g. ‘kg’)

class openconcept.mission.phases.BFLImplicitSolve(**kwargs)

Bases: ImplicitComponent

Computes a residual equation so Newton solver can set v1 to analyze balanced field length

This residual is equal to zero if:
  • The rejected takeoff and engine-out takeoff distances are equal, or:

  • V1 is equal to VR and the engine out takeoff distance is longer than the RTO distance

Since this is a discontinous function, the partial derivatives are written in a special way to ‘coax’ the V1 value into the right setting with a Newton step. It’s kind of a hack.

Inputs:
  • distance_continue (float) – Engine-out takeoff distance (scalar, m)

  • distance_abort (float) – Distance to full-stop when takeoff is rejected at V1 (scalar, m)

  • takeoff|vr (float) – Rotation speed (scalar, m/s)

Outputs:

takeoff|v1 (float) – Decision speed (scalar, m/s)

class openconcept.mission.phases.Groundspeeds(**kwargs)

Bases: ExplicitComponent

Computes groundspeed for vectorial true airspeed and true vertical speed.

This is a helper function for the main mission analysis routines and shouldn’t be instantiated directly.

Inputs:
  • fltcond|vs (float) – Vertical speed for all mission phases (vector, m/s)

  • fltcond|Utrue (float) – True airspeed for all mission phases (vector, m/s)

Outputs:
  • fltcond|groundspeed (float) – True groundspeed for all mission phases (vector, m/s)

  • fltcond|cosgamma (float) – Cosine of the flght path angle for all mission phases (vector, dimensionless)

  • fltcond|singamma (float) – Sine of the flight path angle for all mission phases (vector, dimensionless)

Options:

num_nodes (int) – Number of points to run

class openconcept.mission.phases.HorizontalAcceleration(**kwargs)

Bases: ExplicitComponent

Computes acceleration during takeoff run and effectively forms the T-D residual.

Inputs:
  • weight (float) – Aircraft weight (scalar, kg)

  • drag (float) – Aircraft drag at each analysis point (vector, N)

  • lift (float) – Aircraft lift at each analysis point (vector, N)

  • thrust (float) – Thrust at each TO analysis point (vector, N)

  • fltcond|singamma (float) – The sine of the flight path angle gamma (vector, dimensionless)

  • braking (float) – Effective rolling friction multiplier at each point (vector, dimensionless)

Outputs:

accel_horiz (float) – Aircraft horizontal acceleration (vector, m/s**2)

Options:

num_nodes (int) – Number of analysis points to run

class openconcept.mission.phases.VerticalAcceleration(**kwargs)

Bases: ExplicitComponent

Computes acceleration during takeoff run in the vertical plane. Only used during full unsteady takeoff performance analysis due to stability issues

Inputs:
  • weight (float) – Aircraft weight (scalar, kg)

  • drag (float) – Aircraft drag at each analysis point (vector, N)

  • lift (float) – Aircraft lift at each analysis point (vector, N)

  • thrust (float) – Thrust at each TO analysis point (vector, N)

  • fltcond|singamma (float) – The sine of the flight path angle gamma (vector, dimensionless)

  • fltcond|cosgamma (float) – The sine of the flight path angle gamma (vector, dimensionless)

Outputs:

accel_vert (float) – Aircraft horizontal acceleration (vector, m/s**2)

Options:

num_nodes (int) – Number of analysis points to run

class openconcept.mission.phases.SteadyFlightCL(**kwargs)

Bases: ExplicitComponent

Computes lift coefficient at each analysis point

This is a helper function for the main mission analysis routine and shouldn’t be instantiated directly.

Inputs:
  • weight (float) – Aircraft weight at each analysis point (vector, kg)

  • fltcond|q (float) – Dynamic pressure at each analysis point (vector, Pascal)

  • ac|geom|wing|S_ref (float) – Reference wing area (scalar, m**2)

  • fltcond|cosgamma (float) – Cosine of the flght path angle for all mission phases (vector, dimensionless)

Outputs:

fltcond|CL (float) – Lift coefficient (vector, dimensionless)

Options:

num_nodes (int) – Number of analysis nodes to run

class openconcept.mission.phases.GroundRollPhase(**kwargs)

Bases: PhaseGroup

This component group models the ground roll phase of a takeoff (acceleration before flight) User-settable parameters include: throttle (default 100 percent) rolling friction coeff (default 0.03 for accelerating phases and 0.4 for braking) propulsor_active (default 1 for v0 to v1, 0 for v1 to vr and braking) to model engine failure altitude (fltcond|h)

The BaseAircraftGroup object is passed in. The BaseAircraftGroup should be built to accept the following inputs and return the following outputs. The outputs should be promoted to the top level in the component.

Inputs:
  • range (float) – Total distance travelled (vector, m)

  • fltcond|h (float) – Altitude (vector, m)

  • fltcond|vs (float) – Vertical speed (vector, m/s)

  • fltcond|Ueas (float) – Equivalent airspeed (vector, m/s)

  • fltcond|Utrue (float) – True airspeed (vector, m/s)

  • fltcond|p (float) – Pressure (vector, Pa)

  • fltcond|rho (float) – Density (vector, kg/m3)

  • fltcond|T (float) – Temperature (vector, K)

  • fltcond|q (float) – Dynamic pressure (vector, Pa)

  • fltcond|CL (float) – Lift coefficient (vector, dimensionless)

  • throttle (float) – Motor / propeller throttle setting scaled from 0 to 1 or slightly more (vector, dimensionless)

  • propulsor_active (float) – If a multi-propulsor airplane, a failure condition should be modeled in the propulsion model by multiplying throttle by propulsor_active. It will generally be 1.0 unless a failure condition is being modeled, in which case it will be 0 (vector, dimensionless)

  • braking (float) – Brake friction coefficient (default 0.4 for dry runway braking, 0.03 for resistance unbraked) Should not be applied in the air or nonphysical effects will result (vector, dimensionless)

  • lift (float) – Lift force (vector, N)

Outputs:
  • thrust (float) – Total thrust force produced by all propulsors (vector, N)

  • drag (float) – Total drag force in the airplane axis produced by all sources of drag (vector, N)

  • weight (float) – Weight (mass, really) of the airplane at each point in time. (vector, kg)

  • ac|geom|wing|S_ref – Wing reference area (scalar, m**2)

  • ac|aero|CLmax_TO – CLmax with flaps in max takeoff position (scalar, dimensionless)

  • ac|weights|MTOW – Maximum takeoff weight (scalar, kg)

class openconcept.mission.phases.RotationPhase(**kwargs)

Bases: PhaseGroup

This group models the transition from ground roll to climb out during a takeoff using force balance in the vertical and horizontal directions.

User-settable parameters include: throttle (default 100 percent) rolling friction coeff (default 0.03 for accelerating phases and 0.4 for braking) propulsor_active (default 1 for v0 to v1, 0 for v1 to vr and braking) to model engine failure altitude (fltcond|h) obstacle clearance hight (h_obs) default 35 feet per FAR 25 Rotation CL/CLmax ratio (default 0.83)

The BaseAircraftGroup object is passed in. The BaseAircraftGroup should be built to accept the following inputs and return the following outputs. The outputs should be promoted to the top level in the component.

Inputs:
  • range (float) – Total distance travelled (vector, m)

  • fltcond|h (float) – Altitude (vector, m)

  • fltcond|vs (float) – Vertical speed (vector, m/s)

  • fltcond|Ueas (float) – Equivalent airspeed (vector, m/s)

  • fltcond|Utrue (float) – True airspeed (vector, m/s)

  • fltcond|p (float) – Pressure (vector, Pa)

  • fltcond|rho (float) – Density (vector, kg/m3)

  • fltcond|T (float) – Temperature (vector, K)

  • fltcond|q (float) – Dynamic pressure (vector, Pa)

  • fltcond|CL (float) – Lift coefficient (vector, dimensionless)

  • throttle (float) – Motor / propeller throttle setting scaled from 0 to 1 or slightly more (vector, dimensionless)

  • propulsor_active (float) – If a multi-propulsor airplane, a failure condition should be modeled in the propulsion model by multiplying throttle by propulsor_active. It will generally be 1.0 unless a failure condition is being modeled, in which case it will be 0 (vector, dimensionless)

  • braking (float) – Percentage brakes applied, from 0 to 1. Should not be applied in the air or nonphysical effects will result (vector, dimensionless)

  • lift (float) – Lift force (vector, N)

Outputs:
  • thrust (float) – Total thrust force produced by all propulsors (vector, N)

  • drag (float) – Total drag force in the airplane axis produced by all sources of drag (vector, N)

  • weight (float) – Weight (mass, really) of the airplane at each point in time. Generally will need to be integrated by Dymos as a state with a rate source (vector, kg)

  • ac|geom|wing|S_ref – Wing reference area (scalar, m**2)

  • ac|aero|CLmax_TO – CLmax with flaps in max takeoff position (scalar, dimensionless)

  • ac|weights|MTOW – Maximum takeoff weight (scalar, kg)

class openconcept.mission.phases.SteadyFlightPhase(**kwargs)

Bases: PhaseGroup

This component group models steady flight conditions. Settable mission parameters include: Airspeed (fltcond|Ueas) Vertical speed (fltcond|vs) Duration of the phase (duration)

Throttle is set automatically to ensure steady flight

The BaseAircraftGroup object is passed in. The BaseAircraftGroup should be built to accept the following inputs and return the following outputs. The outputs should be promoted to the top level in the component.

Inputs:
  • range (float) – Total distance travelled (vector, m)

  • fltcond|h (float) – Altitude (vector, m)

  • fltcond|vs (float) – Vertical speed (vector, m/s)

  • fltcond|Ueas (float) – Equivalent airspeed (vector, m/s)

  • fltcond|Utrue (float) – True airspeed (vector, m/s)

  • fltcond|p (float) – Pressure (vector, Pa)

  • fltcond|rho (float) – Density (vector, kg/m3)

  • fltcond|T (float) – Temperature (vector, K)

  • fltcond|q (float) – Dynamic pressure (vector, Pa)

  • fltcond|CL (float) – Lift coefficient (vector, dimensionless)

  • throttle (float) – Motor / propeller throttle setting scaled from 0 to 1 or slightly more (vector, dimensionless)

  • propulsor_active (float) – If a multi-propulsor airplane, a failure condition should be modeled in the propulsion model by multiplying throttle by propulsor_active. It will generally be 1.0 unless a failure condition is being modeled, in which case it will be 0 (vector, dimensionless)

  • braking (float) – Brake friction coefficient (default 0.4 for dry runway braking, 0.03 for resistance unbraked) Should not be applied in the air or nonphysical effects will result (vector, dimensionless)

  • lift (float) – Lift force (vector, N)

Outputs:
  • thrust (float) – Total thrust force produced by all propulsors (vector, N)

  • drag (float) – Total drag force in the airplane axis produced by all sources of drag (vector, N)

  • weight (float) – Weight (mass, really) of the airplane at each point in time. (vector, kg)

  • ac|geom|wing|S_ref – Wing reference area (scalar, m**2)

  • ac|aero|CLmax_TO – CLmax with flaps in max takeoff position (scalar, dimensionless)

  • ac|weights|MTOW – Maximum takeoff weight (scalar, kg)

class openconcept.mission.phases.ClimbAnglePhase(**kwargs)

Bases: Group

This component checks the climb angle for a single flight condition at the V2 speed. No integration is performed.

User settable parameter includes the V2/Vstall multiple (default 1.2)

Useful for ensuring all-engine climb gradients in optimization. Choose flight_phase = AllEngineClimbAngle or EngineOutClimbAngle to set the propulsor_active property correctly.

Inputs:
  • range (float) – Total distance travelled (vector, m)

  • fltcond|h (float) – Altitude (vector, m)

  • fltcond|vs (float) – Vertical speed (vector, m/s)

  • fltcond|Ueas (float) – Equivalent airspeed (vector, m/s)

  • fltcond|Utrue (float) – True airspeed (vector, m/s)

  • fltcond|p (float) – Pressure (vector, Pa)

  • fltcond|rho (float) – Density (vector, kg/m3)

  • fltcond|T (float) – Temperature (vector, K)

  • fltcond|q (float) – Dynamic pressure (vector, Pa)

  • fltcond|CL (float) – Lift coefficient (vector, dimensionless)

  • throttle (float) – Motor / propeller throttle setting scaled from 0 to 1 or slightly more (vector, dimensionless)

  • propulsor_active (float) – If a multi-propulsor airplane, a failure condition should be modeled in the propulsion model by multiplying throttle by propulsor_active. It will generally be 1.0 unless a failure condition is being modeled, in which case it will be 0 (vector, dimensionless)

  • lift (float) – Lift force (vector, N)

Outputs:
  • thrust (float) – Total thrust force produced by all propulsors (vector, N)

  • drag (float) – Total drag force in the airplane axis produced by all sources of drag (vector, N)

  • weight (float) – Weight (mass, really) of the airplane at each point in time. Generally will need to be integrated by Dymos as a state with a rate source (vector, kg)

  • ac|geom|wing|S_ref – Wing reference area (scalar, m**2)

  • ac|aero|CLmax_TO – CLmax with flaps in max takeoff position (scalar, dimensionless)

  • ac|weights|MTOW – Maximum takeoff weight (scalar, kg)

class openconcept.mission.phases.TakeoffTransition(**kwargs)

Bases: ExplicitComponent

Computes distance and altitude at end of circular transition.

Based on TO distance analysis method in Raymer book. Obstacle clearance height set for GA / Part 23 aircraft Override for analyzing Part 25 aircraft

Inputs:
  • fltcond|Utrue – Transition true airspeed (generally avg of vr and v2) (scalar, m/s)

  • gamma (float) – Climb out flight path angle (scalar, rad)

Outputs:
  • s_transition (float) – Horizontal distance during transition to v2 climb out (scalar, m)

  • h_transition (float) – Altitude at transition point (scalar, m)

  • t_transition (float) – Elapsed time in transition (scalar, s)

Options:
  • h_obstacle (float) – Obstacle height to clear (in meters) (default 10.66, equiv. 35 ft)

  • load_factor (float) – Load factor during rotation and transition (default 1.2 from Raymer book)

class openconcept.mission.phases.TakeoffClimb(**kwargs)

Bases: ExplicitComponent

Computes ground distance from end of transition until obstacle is cleared.

Analysis based on Raymer book.

Inputs:
  • gamma (float) – Climb out flight path angle (scalar, rad)

  • h_transition (float) – Altitude at transition point (scalar, m)

Outputs:

s_climb (float) – Horizontal distance from end of transition until obstacle is cleared (scalar, m)

Options:

h_obstacle (float) – Obstacle height to clear (in meters) (default 10.66, equiv. 35 ft)

class openconcept.mission.phases.RobustRotationPhase(**kwargs)

Bases: PhaseGroup

This adds general mission analysis capabilities to an existing airplane model. The BaseAircraftGroup object is passed in. It should be built to accept the following inputs and return the following outputs. The outputs should be promoted to the top level in the component.

Inputs:
  • range (float) – Total distance travelled (vector, m)

  • fltcond|h (float) – Altitude (vector, m)

  • fltcond|vs (float) – Vertical speed (vector, m/s)

  • fltcond|Ueas (float) – Equivalent airspeed (vector, m/s)

  • fltcond|Utrue (float) – True airspeed (vector, m/s)

  • fltcond|p (float) – Pressure (vector, Pa)

  • fltcond|rho (float) – Density (vector, kg/m3)

  • fltcond|T (float) – Temperature (vector, K)

  • fltcond|q (float) – Dynamic pressure (vector, Pa)

  • fltcond|CL (float) – Lift coefficient (vector, dimensionless)

  • throttle (float) – Motor / propeller throttle setting scaled from 0 to 1 or slightly more (vector, dimensionless)

  • propulsor_active (float) – If a multi-propulsor airplane, a failure condition should be modeled in the propulsion model by multiplying throttle by propulsor_active. It will generally be 1.0 unless a failure condition is being modeled, in which case it will be 0 (vector, dimensionless)

  • braking (float) – Percentage brakes applied, from 0 to 1. Should not be applied in the air or nonphysical effects will result (vector, dimensionless)

  • lift (float) – Lift force (vector, N)

Outputs:
  • thrust (float) – Total thrust force produced by all propulsors (vector, N)

  • drag (float) – Total drag force in the airplane axis produced by all sources of drag (vector, N)

  • weight (float) – Weight (mass, really) of the airplane at each point in time. Generally will need to be integrated by Dymos as a state with a rate source (vector, kg)

  • ac|geom|wing|S_ref – Wing reference area (scalar, m**2)

  • ac|aero|CLmax_TO – CLmax with flaps in max takeoff position (scalar, dimensionless)

  • ac|weights|MTOW – Maximum takeoff weight (scalar, kg)