flight_dynamics

class description

class flight_dynamics.FlightDynamics(**kwargs)[source]

Bases: openmdao.core.explicitcomponent.ExplicitComponent

Computes flight dynamics parameters along the trajectory.

The FlightDynamics component requires the following inputs:

  • inputs['x']: aircraft x-position [m]

  • inputs['z']: aircraft z-position [m]

  • inputs['v']: aircraft velocity [m/s]

  • inputs['alpha']: aircraft angle of attack [deg]

  • inputs['gamma']: aircraft climb angle [deg]

  • inputs['F_n']: aircraft net thrust [N]

  • inputs['L']: aircraft lift [N]

  • inputs['D']: aircraft drag [N]

  • inputs['rho_0']: ambient density [kg/m3]

  • inputs['c_0']: ambient speed of sound [m/s]

  • inputs['drho_0_dz']: change in atmospheric density with change in altitude [kg/m4]

The FlightDynamics component computes the following outputs:

  • outputs['x_dot']: rate of change of aircraft x-position [m/s]

  • outputs['z_dot']: rate of change of aircraft z-position [m/s]

  • outputs['alpha_dot']: rate of change of aircraft angle of attack [deg/s]

  • outputs['gamma_dot']: rate of change of aircraft climb angle [deg/s]

  • outputs['v_dot']: rate of change of aircraft velocity [m/s2]

  • outputs['eas_dot']: rate of change of aircraft equivalent airspeed [m/s2]

  • outputs['y']: aircraft lateral position [m]

  • outputs['eas']: aircraft equivalent airspeed [m/s]

  • outputs['net_F_up']: aircraft net upward force [N]

  • outputs['I_landing gear']: flag for landing gear extraction [-]

compute(inputs: openmdao.vectors.default_vector.DefaultVector, outputs: openmdao.vectors.default_vector.DefaultVector)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

Parameters
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict or None) – If not None, dict containing discrete input values.

  • discrete_outputs (dict or None) – If not None, dict containing discrete output values.

compute_partials(inputs: openmdao.vectors.default_vector.DefaultVector, partials: openmdao.vectors.default_vector.DefaultVector)[source]

Compute sub-jacobian parts. The model is assumed to be in an unscaled state.

Parameters
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..

  • discrete_inputs (dict or None) – If not None, dict containing discrete input values.

initialize()[source]

Perform any one-time initialization run at instantiation.

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

theory

A set of 2-dimensional flight dynamics equations is used in the trajectory module, describing the horizontal and vertical motion, \((x, z)\), of the aircraft. The rate equations for the position vector, \((x, z)\), are given by:

\[\begin{split}\begin{cases} \dot{x} = v \cos \gamma &\\ \dot{z} = v \sin \gamma \end{cases}\end{split}\]

The rate equation for the velocity, \(v\), is given by:

\[\begin{split}\dot{v} = \begin{cases} \frac{1}{m}\left(F_n \cos \tilde{\alpha} - D - F_{fric} - mg \sin \gamma \right) & \textrm{for ground roll and rotation} \\ \frac{1}{m}\left(F_n \cos \tilde{\alpha} - D - mg \sin \gamma \right) & \textrm{for climb, vnrs and cutback} \\ \end{cases}\end{split}\]

where the frictional force, \(F_{fric} = \mu (mg-L)\). The effective angle of attack, \(\tilde{\alpha}\), is given by the sum of the wing angle of attack, $alpha$, the thrust inclination angle, \(i_{F_n}\), and the wing installation angle, \(\alpha_0$, i.e. $\tilde{\alpha} = \alpha + i_{F_n} - \alpha_0\). The rate equation for the climb angle, $gamma$, is given by:

\[\begin{split}\dot{\gamma} = \begin{cases} \hspace{2cm} 0 & \textrm{for ground roll and rotation} \\ \frac{1}{m v}\left(F_n \sin \tilde{\alpha} + L - mg \cos \gamma\right) & \textrm{for climb, vnrs and cutback} \end{cases}\end{split}\]

The rate of change of the angle of attack, \(\frac{d\alpha}{dt} = cnst.\), is explicitly prescribed in the rotation phase and equal to 3.5deg/s. The equivalent airspeed is defined as \(v_{eas} = v \sqrt{\rho_0 / \rho_{sl}}\). The rate equation for the equivalent airspeed is given by:

\[\dot{v_{eas}} = \dot{v} \sqrt{\frac{\rho_0}{\rho_{sl}}} + \frac{v\dot{z}}{2\sqrt{\rho_0\rho_{sl}}} \frac{d\rho_0}{dz}\]

The rate of change of ambient density with altitude, \(\frac{d\rho_0}{dz}\), is obtained by differentiating the density equation with respect to altitude. Finally, the aircraft landing gear is retracted at an altitude of \(z=55m\).