Plane module#
This module includes a set of flight mechanics equations allowing to compute the plane characteristics.
Please note that all equations and variables are defined in the international unit system.
Functionalities#
The plane model allows to compute the following quantities:
max glide ratio
speed at specific angle of incidence and altitude
drag
lift
thrust
stall speed
reference speed
minimum descent gliding slope
gliding speed
maximum gliding time
maximum gliding range
authorized velocity interval at fixed thrust for flight at constant altitude
thrust needed at fixed altitude and angle of incidence
minimum thrust needed at fixed altitude
speed at minimum thrust
maximum flight altitude
speed for maximum ascension speed
ascension slope for a specific angle of incidence and altitude
load factor in turn
maximum range at fixed altitude
maximum range at fixed speed
endurance
take off distance without friction
take off distance with friction
landing distance
take off speed
landing speed
alpha and delta coefficient at a flight point
Additionally, the following graphs can be generated:
polar graph
thrust-speed graph
power-speed graph
Some examples are provided in the examples folder (please note that they do not cover all the use cases) as well with a few plane models in the plane_database folder.
Quick start#
When loading a plane from the database, you can directly compute its basic characteristics like the glide ratio for instance:
>>> plane = Plane("cessna_172", "./plane_database")
>>> print(plane.C_L_f_max, plane.f_max)
0.7745966692414834, 12.909944487358056
If some information are missing, you can set them yourself.
>>> plane.m_fuel = 136.26 # kg
>>> plane.update_variables(force=True)
The module also includes functions to compute quantities at a specific flight point:
>>> plane.compute_reference_speed(8000) # m.s-1
56.214394963985406
>>> plane.compute_velocity_interval_for_fixed_thrust(8000) # m.s-1
(22.544275306567194, 140.17120347383343)
>>> plane.compute_stall_speed(8000, C_L_max=1.5) # m.s-1
41.80281924283373
Here is another example with the ascension speed and slop at sea level for an almost empty tank:
>>> plane.m_fuel = 0 # kg
>>> plane.update_variables(True)
>>> plane.compute_max_ascension_speed(z=0) # m.s-1
32.89763560421959
>>> plane.compute_reference_speed(z=0) # m.s-1
34.523934888646956
>>> plane.compute_max_ascension_slope(z=0)
0.5695896796157822
Hypotheses#
All the computations performed in the model rely on some hypotheses. Here is the list of the main ones:
The flight is considered to be symmetric (no yaw angle). The aerodynamic forces therefore have only two components, the drag along the x axis and the lift along the z one.
The aerodynamic forces are functions of the surrounding flow velocity.
No wind effect is considered.
The thrust is parallel to the velocity vector and does not participate in the lift.
Please consult the documentation of each functions if needed for more details.