Diagrams
jetfuelburn.diagrams ¶
calculate_fuel_consumption_payload_range ¶
calculate_fuel_consumption_payload_range(
d,
oew,
mtow,
range_point_A,
payload_point_B,
range_point_B,
payload_point_C,
range_point_C,
range_point_D,
)
Given aircraft performance parameters from a payload/range diagram and a flight distance \(d\), calculates the required fuel mass \(m_F\) and payload mass \(m_{PL}\) for a given mission.
This function implements the simple "reading fuel mass off the payload/range diagram directly" method:
Payload/Range diagram of the Airbus A350-900 (data derived from manufacturer information).
Note that in this figure, the y-axis shows total aircraft weight, not payload weight.
Total aircraft weight can be computed by adding the operating empty weight (OEW) to the payload weight and fuel weight.
Notes
Key assumptions of this fuel calculation function:
| Parameter | Assumption |
|---|---|
| data availability | excellent for existing aircraft (payload/range diagrams are public) |
| aircraft payload | maximum payload possible payload |
| climb/descent | implicitly considered |
| fuel reserves | depends on (sometimes unknown) manufacturer assumptions |
| alternate airport | depends on (sometimes unknown) manufacturer assumptions |
Warnings
There is no manufacturer-independent convention for including reserve and alternate fuel in payload/range diagrams. Limited evidence suggests that eg. Boeing always assumes a 200nmi diversion distance (cf. Slide 43 in this Boeing presentation and this airliners.net discussion). The user is therefore cautioned against directly comparing aircraft of different manufacturers using this function.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
d
|
float
|
Flight distance [length] |
required |
oew
|
float
|
Operating Empty Weight (OEW) of the aircraft [mass] |
required |
mtow
|
float
|
Maximum Takeoff Weight (MTOW) of the aircraft [mass] |
required |
range_point_A
|
float
|
Range at point A [length] |
required |
payload_point_B
|
float
|
Payload mass at point B [mass] |
required |
range_point_B
|
float
|
Range at point B [length] |
required |
payload_point_C
|
float
|
Payload mass at point C [mass] |
required |
range_point_C
|
float
|
Range at point C [length] |
required |
range_point_D
|
float
|
Range at point D [length] |
required |
Returns:
| Type | Description |
|---|---|
dict
|
'mass_fuel' : ureg.Quantity Fuel mass [kg] 'mass_payload' : ureg.Quantity Payload mass [kg] |
Raises:
| Type | Description |
|---|---|
ValueError
|
If any of the input parameters are not pint Quantity instances of the correct dimension. |
ValueError
|
If the distance is less than zero. |
ValueError
|
If the distance exceeds the maximum range of the aircraft as per the payload-range diagram. |
Example
import jetfuelburn
from jetfuelburn import ureg
from jetfuelburn.diagrams import calculate_fuel_consumption_payload_range
calculate_fuel_consumption_payload_range(
d=2000*ureg.nmi,
oew=142.4*ureg.metric_ton,
mtow=280*ureg.metric_ton,
range_point_A=500*ureg.nmi,
payload_point_B=54*ureg.metric_ton,
range_point_B=5830*ureg.nmi,
payload_point_C=25*ureg.metric_ton,
range_point_C=8575*ureg.nmi,
range_point_D=9620*ureg.nmi,
)
Source code in jetfuelburn/diagrams.py
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | |