openap 1.4__tar.gz → 2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openap-1.4 → openap-2.0}/PKG-INFO +26 -37
- openap-2.0/README.md +69 -0
- {openap-1.4 → openap-2.0}/openap/__init__.py +3 -7
- {openap-1.4 → openap-2.0}/openap/casadi/aero_override.py +9 -5
- {openap-1.4 → openap-2.0}/openap/data/aircraft/_synonym.csv +1 -2
- openap-2.0/openap/data/aircraft/a19n.yml +58 -0
- openap-2.0/openap/data/aircraft/a20n.yml +62 -0
- openap-2.0/openap/data/aircraft/a21n.yml +60 -0
- openap-2.0/openap/data/aircraft/a318.yml +59 -0
- openap-2.0/openap/data/aircraft/a319.yml +63 -0
- openap-2.0/openap/data/aircraft/a320.yml +64 -0
- openap-2.0/openap/data/aircraft/a321.yml +63 -0
- openap-2.0/openap/data/aircraft/a332.yml +61 -0
- openap-2.0/openap/data/aircraft/a333.yml +64 -0
- openap-2.0/openap/data/aircraft/a343.yml +54 -0
- openap-2.0/openap/data/aircraft/a359.yml +52 -0
- openap-2.0/openap/data/aircraft/a388.yml +54 -0
- openap-2.0/openap/data/aircraft/b37m.yml +52 -0
- openap-2.0/openap/data/aircraft/b38m.yml +52 -0
- openap-2.0/openap/data/aircraft/b39m.yml +52 -0
- openap-2.0/openap/data/aircraft/b3xm.yml +53 -0
- openap-2.0/openap/data/aircraft/b734.yml +57 -0
- openap-2.0/openap/data/aircraft/b737.yml +60 -0
- openap-2.0/openap/data/aircraft/b738.yml +58 -0
- openap-2.0/openap/data/aircraft/b739.yml +58 -0
- openap-2.0/openap/data/aircraft/b744.yml +54 -0
- openap-2.0/openap/data/aircraft/b748.yml +52 -0
- openap-2.0/openap/data/aircraft/b752.yml +53 -0
- openap-2.0/openap/data/aircraft/b763.yml +54 -0
- openap-2.0/openap/data/aircraft/b772.yml +57 -0
- openap-2.0/openap/data/aircraft/b773.yml +54 -0
- openap-2.0/openap/data/aircraft/b77w.yml +52 -0
- openap-2.0/openap/data/aircraft/b788.yml +57 -0
- openap-2.0/openap/data/aircraft/b789.yml +56 -0
- openap-2.0/openap/data/aircraft/c550.yml +52 -0
- openap-2.0/openap/data/aircraft/e145.yml +52 -0
- openap-2.0/openap/data/aircraft/e170.yml +57 -0
- openap-2.0/openap/data/aircraft/e190.yml +56 -0
- openap-2.0/openap/data/aircraft/e195.yml +58 -0
- openap-2.0/openap/data/aircraft/e75l.yml +57 -0
- openap-2.0/openap/data/aircraft/glf6.yml +53 -0
- openap-2.0/openap/data/fuel/_synonym.csv +32 -0
- openap-2.0/openap/data/fuel/a318.yml +5 -0
- openap-2.0/openap/data/fuel/a319.yml +5 -0
- openap-2.0/openap/data/fuel/a320.yml +5 -0
- openap-2.0/openap/data/fuel/a321.yml +5 -0
- openap-2.0/openap/data/fuel/a332.yml +5 -0
- openap-2.0/openap/data/fuel/a333.yml +5 -0
- openap-2.0/openap/data/fuel/b734.yml +5 -0
- openap-2.0/openap/data/fuel/b737.yml +5 -0
- openap-2.0/openap/data/fuel/b738.yml +5 -0
- openap-2.0/openap/data/fuel/b739.yml +5 -0
- openap-2.0/openap/data/fuel/e170.yml +5 -0
- openap-2.0/openap/data/fuel/e190.yml +5 -0
- openap-2.0/openap/data/fuel/e195.yml +5 -0
- openap-2.0/openap/data/fuel/e75l.yml +5 -0
- {openap-1.4 → openap-2.0}/openap/drag.py +37 -23
- {openap-1.4 → openap-2.0}/openap/emission.py +15 -7
- {openap-1.4 → openap-2.0}/openap/extra/aero.py +11 -10
- openap-2.0/openap/extra/fuzzy.py +199 -0
- {openap-1.4 → openap-2.0}/openap/extra/nav.py +3 -1
- {openap-1.4 → openap-2.0}/openap/extra/statistics.py +24 -20
- {openap-1.4 → openap-2.0}/openap/fuel.py +60 -36
- {openap-1.4 → openap-2.0}/openap/kinematic.py +8 -9
- {openap-1.4 → openap-2.0}/openap/phase.py +87 -80
- {openap-1.4 → openap-2.0}/openap/prop.py +24 -10
- {openap-1.4 → openap-2.0}/openap/thrust.py +73 -45
- {openap-1.4 → openap-2.0}/pyproject.toml +22 -12
- openap-1.4/README.md +0 -81
- openap-1.4/openap/data/aircraft/a19n.yml +0 -46
- openap-1.4/openap/data/aircraft/a20n.yml +0 -49
- openap-1.4/openap/data/aircraft/a21n.yml +0 -48
- openap-1.4/openap/data/aircraft/a319.yml +0 -51
- openap-1.4/openap/data/aircraft/a320.yml +0 -52
- openap-1.4/openap/data/aircraft/a321.yml +0 -51
- openap-1.4/openap/data/aircraft/a332.yml +0 -49
- openap-1.4/openap/data/aircraft/a333.yml +0 -52
- openap-1.4/openap/data/aircraft/a343.yml +0 -46
- openap-1.4/openap/data/aircraft/a359.yml +0 -45
- openap-1.4/openap/data/aircraft/a388.yml +0 -46
- openap-1.4/openap/data/aircraft/b37m.yml +0 -45
- openap-1.4/openap/data/aircraft/b38m.yml +0 -45
- openap-1.4/openap/data/aircraft/b39m.yml +0 -44
- openap-1.4/openap/data/aircraft/b3xm.yml +0 -45
- openap-1.4/openap/data/aircraft/b734.yml +0 -45
- openap-1.4/openap/data/aircraft/b737.yml +0 -48
- openap-1.4/openap/data/aircraft/b738.yml +0 -46
- openap-1.4/openap/data/aircraft/b739.yml +0 -46
- openap-1.4/openap/data/aircraft/b744.yml +0 -46
- openap-1.4/openap/data/aircraft/b748.yml +0 -44
- openap-1.4/openap/data/aircraft/b752.yml +0 -45
- openap-1.4/openap/data/aircraft/b763.yml +0 -46
- openap-1.4/openap/data/aircraft/b772.yml +0 -49
- openap-1.4/openap/data/aircraft/b773.yml +0 -46
- openap-1.4/openap/data/aircraft/b77w.yml +0 -44
- openap-1.4/openap/data/aircraft/b788.yml +0 -49
- openap-1.4/openap/data/aircraft/b789.yml +0 -48
- openap-1.4/openap/data/aircraft/c550.yml +0 -44
- openap-1.4/openap/data/aircraft/e145.yml +0 -44
- openap-1.4/openap/data/aircraft/e170.yml +0 -45
- openap-1.4/openap/data/aircraft/e190.yml +0 -44
- openap-1.4/openap/data/aircraft/e195.yml +0 -44
- openap-1.4/openap/data/aircraft/e75l.yml +0 -45
- openap-1.4/openap/data/aircraft/glf6.yml +0 -45
- {openap-1.4 → openap-2.0}/LICENSE +0 -0
- {openap-1.4 → openap-2.0}/openap/casadi/__init__.py +0 -0
- {openap-1.4 → openap-2.0}/openap/casadi/numpy_override.py +0 -0
- {openap-1.4 → openap-2.0}/openap/contrail.py +0 -0
- {openap-1.4 → openap-2.0}/openap/data/.gitignore +0 -0
- {openap-1.4 → openap-2.0}/openap/data/LICENSE +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/_synonym.csv +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a20n.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a319.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a320.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a321.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a332.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a333.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a343.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a359.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/a388.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b38m.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b734.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b737.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b738.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b739.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b744.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b748.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b752.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b772.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b77w.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b788.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/b789.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/c550.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/e190.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/e195.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/e75l.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/dragpolar/glf6.yml +0 -0
- {openap-1.4 → openap-2.0}/openap/data/engine/engines.csv +0 -0
- {openap-1.4 → openap-2.0}/openap/data/nav/airports.csv +0 -0
- {openap-1.4 → openap-2.0}/openap/data/nav/fix.dat +0 -0
- {openap-1.4 → openap-2.0}/openap/data/nav/nav.dat +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/_synonym.csv +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a319.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a320.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a321.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a332.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a333.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a343.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/a388.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b737.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b738.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b739.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b744.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b752.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b763.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b77w.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b788.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/b789.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/data/wrap/e190.txt +0 -0
- {openap-1.4 → openap-2.0}/openap/extra/__init__.py +0 -0
- {openap-1.4 → openap-2.0}/openap/extra/filters.py +0 -0
- {openap-1.4 → openap-2.0}/openap/traj/__init__.py +0 -0
- {openap-1.4 → openap-2.0}/openap/traj/gen.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: openap
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0
|
|
4
4
|
Summary: Open Aircraft Performance Model (OpenAP) in Python
|
|
5
5
|
Home-page: https://openap.dev
|
|
6
6
|
License: GNU Lesser General Public License v3 (LGPLv3)
|
|
@@ -9,6 +9,8 @@ Author-email: j.sun-1@tudelft.nl
|
|
|
9
9
|
Requires-Python: >=3.9
|
|
10
10
|
Classifier: Development Status :: 4 - Beta
|
|
11
11
|
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: Information Technology
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
14
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
|
|
13
15
|
Classifier: License :: Other/Proprietary License
|
|
14
16
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -21,7 +23,6 @@ Requires-Dist: matplotlib (>=3.1)
|
|
|
21
23
|
Requires-Dist: numpy (>=1.24)
|
|
22
24
|
Requires-Dist: pandas (>=1.2)
|
|
23
25
|
Requires-Dist: pyyaml (>=5.1)
|
|
24
|
-
Requires-Dist: scikit-fuzzy (>=0.4)
|
|
25
26
|
Requires-Dist: scipy (>=1.7)
|
|
26
27
|
Project-URL: Repository, https://github.com/junzis/openap
|
|
27
28
|
Description-Content-Type: text/markdown
|
|
@@ -30,23 +31,10 @@ Description-Content-Type: text/markdown
|
|
|
30
31
|
|
|
31
32
|
This repository contains the OpenAP model data and Python packages for aircraft performance and emission calculations.
|
|
32
33
|
|
|
33
|
-
More information on user guide and related articles at: [OpenAP.dev](https://openap.dev/)
|
|
34
|
-
|
|
35
|
-
The most recent development fork of OpenAP is: https://github.com/junzis/openap. For discussions and issues, you can use the following links:
|
|
36
|
-
|
|
37
|
-
- https://github.com/junzis/openap/discussions (discussions, feedback and suggestions)
|
|
38
|
-
- https://github.com/junzis/openap/issues (bug reporting)
|
|
39
|
-
|
|
34
|
+
More information on the user guide and related articles at: [OpenAP.dev](https://openap.dev/)
|
|
40
35
|
|
|
41
36
|
## Install
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
Install the development branch from GitHub:
|
|
45
|
-
|
|
46
|
-
```sh
|
|
47
|
-
pip install --upgrade git+https://github.com/junzis/openap
|
|
48
|
-
```
|
|
49
|
-
|
|
50
38
|
Install the latest stable release from pypi:
|
|
51
39
|
|
|
52
40
|
```sh
|
|
@@ -59,39 +47,40 @@ Install the latest stable release on conda-forge:
|
|
|
59
47
|
conda install openap
|
|
60
48
|
```
|
|
61
49
|
|
|
62
|
-
|
|
50
|
+
Install the development branch from GitHub (may not be stable):
|
|
63
51
|
|
|
64
|
-
|
|
52
|
+
```sh
|
|
53
|
+
pip install --upgrade git+https://github.com/junzis/openap
|
|
54
|
+
```
|
|
65
55
|
|
|
56
|
+
## Content
|
|
66
57
|
|
|
67
58
|
### Model data
|
|
68
59
|
|
|
69
60
|
Data in this repository includes:
|
|
70
61
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
62
|
+
- Aircraft data: Collected from open literature.
|
|
63
|
+
- Engines data: Primarily from the ICAO emission data-bank, including fuel flow and emissions.
|
|
64
|
+
- Drag polar model data: Exclusively derived from open data ([reference](https://research.tudelft.nl/files/71038050/published_OpenAP_drag_polar.pdf)).
|
|
65
|
+
- Fuel mode data: Polynomial models derived from the [acropole model](https://github.com/DGAC/Acropole) by [@JarryGabriel](https://github.com/JarryGabriel).
|
|
66
|
+
- Kinematic data: The kinematic model describes speed, altitude, and vertical rate ([reference](https://github.com/junzis/wrap)).
|
|
67
|
+
- Navigation data: Airport and waypoints obtained from [X-Plane](https://developer.x-plane.com/docs/data-development-documentation/).
|
|
77
68
|
|
|
78
69
|
### Python packages
|
|
79
70
|
|
|
80
71
|
The OpenAP Python library includes the following packages:
|
|
81
72
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
73
|
+
- `prop`: module for accessing aircraft and engine properties
|
|
74
|
+
- `thrust`: module for computing aircraft thrust
|
|
75
|
+
- `drag`: module for computing aircraft drag
|
|
76
|
+
- `fuel`: module for computing fuel consumption
|
|
77
|
+
- `emission`: module for computing aircraft emissions
|
|
78
|
+
- `kinematic`: module for accessing WRAP data
|
|
79
|
+
- `aero`: module for common aeronautical conversions
|
|
80
|
+
- `nav`: module for accessing navigation information
|
|
81
|
+
- `segment`: module for determining climb, cruise, descent, level flight
|
|
82
|
+
- `phase`: module providing identification of all flight phases
|
|
83
|
+
- `traj`: module contains a set of tools for trajectory generation
|
|
95
84
|
|
|
96
85
|
## Citing OpenAP
|
|
97
86
|
|
openap-2.0/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Open Aircraft Performance Model (OpenAP) and Toolkit
|
|
2
|
+
|
|
3
|
+
This repository contains the OpenAP model data and Python packages for aircraft performance and emission calculations.
|
|
4
|
+
|
|
5
|
+
More information on the user guide and related articles at: [OpenAP.dev](https://openap.dev/)
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
Install the latest stable release from pypi:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
pip install --upgrade openap
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Install the latest stable release on conda-forge:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
conda install openap
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Install the development branch from GitHub (may not be stable):
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
pip install --upgrade git+https://github.com/junzis/openap
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Content
|
|
28
|
+
|
|
29
|
+
### Model data
|
|
30
|
+
|
|
31
|
+
Data in this repository includes:
|
|
32
|
+
|
|
33
|
+
- Aircraft data: Collected from open literature.
|
|
34
|
+
- Engines data: Primarily from the ICAO emission data-bank, including fuel flow and emissions.
|
|
35
|
+
- Drag polar model data: Exclusively derived from open data ([reference](https://research.tudelft.nl/files/71038050/published_OpenAP_drag_polar.pdf)).
|
|
36
|
+
- Fuel mode data: Polynomial models derived from the [acropole model](https://github.com/DGAC/Acropole) by [@JarryGabriel](https://github.com/JarryGabriel).
|
|
37
|
+
- Kinematic data: The kinematic model describes speed, altitude, and vertical rate ([reference](https://github.com/junzis/wrap)).
|
|
38
|
+
- Navigation data: Airport and waypoints obtained from [X-Plane](https://developer.x-plane.com/docs/data-development-documentation/).
|
|
39
|
+
|
|
40
|
+
### Python packages
|
|
41
|
+
|
|
42
|
+
The OpenAP Python library includes the following packages:
|
|
43
|
+
|
|
44
|
+
- `prop`: module for accessing aircraft and engine properties
|
|
45
|
+
- `thrust`: module for computing aircraft thrust
|
|
46
|
+
- `drag`: module for computing aircraft drag
|
|
47
|
+
- `fuel`: module for computing fuel consumption
|
|
48
|
+
- `emission`: module for computing aircraft emissions
|
|
49
|
+
- `kinematic`: module for accessing WRAP data
|
|
50
|
+
- `aero`: module for common aeronautical conversions
|
|
51
|
+
- `nav`: module for accessing navigation information
|
|
52
|
+
- `segment`: module for determining climb, cruise, descent, level flight
|
|
53
|
+
- `phase`: module providing identification of all flight phases
|
|
54
|
+
- `traj`: module contains a set of tools for trajectory generation
|
|
55
|
+
|
|
56
|
+
## Citing OpenAP
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
@article{sun2020openap,
|
|
60
|
+
title={OpenAP: An open-source aircraft performance model for air transportation studies and simulations},
|
|
61
|
+
author={Sun, Junzi and Hoekstra, Jacco M and Ellerbroek, Joost},
|
|
62
|
+
journal={Aerospace},
|
|
63
|
+
volume={7},
|
|
64
|
+
number={8},
|
|
65
|
+
pages={104},
|
|
66
|
+
year={2020},
|
|
67
|
+
publisher={Multidisciplinary Digital Publishing Institute}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
from .extra import aero
|
|
2
|
-
from .extra import nav
|
|
3
|
-
from .extra import filters
|
|
4
|
-
from .extra import statistics
|
|
5
|
-
|
|
6
|
-
from .thrust import Thrust
|
|
7
1
|
from .drag import Drag
|
|
8
|
-
from .fuel import FuelFlow
|
|
9
2
|
from .emission import Emission
|
|
3
|
+
from .extra import aero, filters, nav, statistics
|
|
4
|
+
from .fuel import FuelFlow
|
|
10
5
|
from .kinematic import WRAP
|
|
11
6
|
from .phase import FlightPhase
|
|
7
|
+
from .thrust import Thrust
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""aero.py adapted for CasADi"""
|
|
2
2
|
|
|
3
3
|
from casadi import casadi
|
|
4
|
-
from . import numpy_override as np
|
|
5
4
|
|
|
5
|
+
from . import numpy_override as np
|
|
6
6
|
|
|
7
7
|
"""Aero and Geo Constants """
|
|
8
8
|
kts = 0.514444 # knot -> m/s
|
|
@@ -39,10 +39,14 @@ def atmos(h):
|
|
|
39
39
|
Air pressure (Pa), density (kg/m3), and temperature (K).
|
|
40
40
|
|
|
41
41
|
"""
|
|
42
|
-
T = np.maximum(288.15 - 0.0065 * h, 216.65)
|
|
43
|
-
rhotrop = 1.225 * (T / 288.15) ** 4.256848030018761
|
|
44
|
-
dhstrat = np.maximum(0.0, h - 11000.0)
|
|
45
|
-
rho = rhotrop * np.exp(-dhstrat / 6341.552161)
|
|
42
|
+
# T = np.maximum(288.15 - 0.0065 * h, 216.65)
|
|
43
|
+
# rhotrop = 1.225 * (T / 288.15) ** 4.256848030018761
|
|
44
|
+
# dhstrat = np.maximum(0.0, h - 11000.0)
|
|
45
|
+
# rho = rhotrop * np.exp(-dhstrat / 6341.552161)
|
|
46
|
+
|
|
47
|
+
# use exponential model to avoid discontinuity at tropopause
|
|
48
|
+
T = 85.46369268 * np.exp(-0.00017235 * h) + 213.31449979
|
|
49
|
+
rho = 1.31788377 * np.exp(-0.00011107 * h) - 0.03933069
|
|
46
50
|
p = rho * R * T
|
|
47
51
|
return p, rho, T
|
|
48
52
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
aircraft: Airbus A319neo
|
|
2
|
+
|
|
3
|
+
mtow: 75500
|
|
4
|
+
mlw: 62500
|
|
5
|
+
oew: 42600
|
|
6
|
+
mfc: 29700
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 160
|
|
13
|
+
low: 120
|
|
14
|
+
high: 150
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 33.84
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 124
|
|
23
|
+
span: 35.8
|
|
24
|
+
mac: 4.29
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: single-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900 #a20n
|
|
33
|
+
cf/c: 0.176 #a20n
|
|
34
|
+
Sf/S: 0.170 #a20n
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: PW1124G1-JM
|
|
45
|
+
options:
|
|
46
|
+
A319-171N: PW1124G1-JM
|
|
47
|
+
A319-151N: LEAP-1A24
|
|
48
|
+
A319-153N: LEAP-1A26
|
|
49
|
+
|
|
50
|
+
drag:
|
|
51
|
+
cd0: 0.017 #a20n
|
|
52
|
+
k: 0.038 #a20n
|
|
53
|
+
e: 0.807 #a20n
|
|
54
|
+
gears: 0.017 #a20n
|
|
55
|
+
|
|
56
|
+
fuel:
|
|
57
|
+
engine: V2524-A5 #a319
|
|
58
|
+
fuel_coef: 2.33357287 #a319
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
aircraft: Airbus A320neo
|
|
2
|
+
|
|
3
|
+
mtow: 79000
|
|
4
|
+
mlw: 66000
|
|
5
|
+
oew: 44300
|
|
6
|
+
mfc: 29700
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 194
|
|
13
|
+
low: 150
|
|
14
|
+
high: 180
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 37.57
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 124
|
|
23
|
+
span: 35.8
|
|
24
|
+
mac: 4.29
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: single-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900
|
|
33
|
+
cf/c: 0.176
|
|
34
|
+
Sf/S: 0.170
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: PW1127G-JM
|
|
45
|
+
options:
|
|
46
|
+
A320-271N: PW1127G-JM
|
|
47
|
+
A320-272N: PW1124G1-JM
|
|
48
|
+
A320-273N: PW1129G-JM
|
|
49
|
+
A320-251N: LEAP-1A26
|
|
50
|
+
A320-252N: LEAP-1A24
|
|
51
|
+
A320-253N: LEAP-1A29
|
|
52
|
+
|
|
53
|
+
drag:
|
|
54
|
+
cd0: 0.017
|
|
55
|
+
k: 0.038
|
|
56
|
+
e: 0.807
|
|
57
|
+
gears: 0.017
|
|
58
|
+
|
|
59
|
+
fuel:
|
|
60
|
+
aircraft: Airbus A320
|
|
61
|
+
engine: CFM56-5B4/P
|
|
62
|
+
fuel_coef: 2.65942225
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
aircraft: Airbus A321neo
|
|
2
|
+
|
|
3
|
+
mtow: 97000
|
|
4
|
+
mlw: 77800
|
|
5
|
+
oew: 50000
|
|
6
|
+
mfc: 33000
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 244
|
|
13
|
+
low: 180
|
|
14
|
+
high: 220
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 44.51
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 128
|
|
23
|
+
span: 35.8
|
|
24
|
+
mac: 4.29
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: double-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900 #a20n
|
|
33
|
+
cf/c: 0.176 #a20n
|
|
34
|
+
Sf/S: 0.170 #a20n
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: PW1133G-JM
|
|
45
|
+
options:
|
|
46
|
+
A321-271N: PW1133G-JM
|
|
47
|
+
A321-272N: PW1130G-JM
|
|
48
|
+
A321-251N: LEAP-1A32
|
|
49
|
+
A321-252N: LEAP-1A30
|
|
50
|
+
A321-253N: LEAP-1A33
|
|
51
|
+
|
|
52
|
+
drag:
|
|
53
|
+
cd0: 0.017 #a20n
|
|
54
|
+
k: 0.038 #a20n
|
|
55
|
+
e: 0.807 #a20n
|
|
56
|
+
gears: 0.017 #a20n
|
|
57
|
+
|
|
58
|
+
fuel:
|
|
59
|
+
engine: CFM56-5B4/P #a320
|
|
60
|
+
fuel_coef: 2.65942225 #a320
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
aircraft: Airbus A318
|
|
2
|
+
|
|
3
|
+
mtow: 68000
|
|
4
|
+
mlw: 57500
|
|
5
|
+
oew: 39500
|
|
6
|
+
mfc: 24210
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 136
|
|
13
|
+
low: 107
|
|
14
|
+
high: 117
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 31.44
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 122.4
|
|
23
|
+
span: 34.10
|
|
24
|
+
mac: 4.1935
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: single-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900 #a319
|
|
33
|
+
cf/c: 0.176 #a319
|
|
34
|
+
Sf/S: 0.170 #a319
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: CFM56-5B9
|
|
45
|
+
options:
|
|
46
|
+
A318-111: CFM56-5B8
|
|
47
|
+
A318-112: CFM56-5B9
|
|
48
|
+
A318-121: PW6122A
|
|
49
|
+
A318-122: PW6124A
|
|
50
|
+
|
|
51
|
+
drag:
|
|
52
|
+
cd0: 0.020 #a319
|
|
53
|
+
k: 0.039 #a319
|
|
54
|
+
e: 0.783 #a319
|
|
55
|
+
gears: 0.017 #a319
|
|
56
|
+
|
|
57
|
+
fuel:
|
|
58
|
+
engine: CFM56-5B9/3
|
|
59
|
+
fuel_coef: 2.03114004
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
aircraft: Airbus A319
|
|
2
|
+
|
|
3
|
+
mtow: 75500
|
|
4
|
+
mlw: 62500
|
|
5
|
+
oew: 40800
|
|
6
|
+
mfc: 30190
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 156
|
|
13
|
+
low: 110
|
|
14
|
+
high: 140
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 33.84
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 124
|
|
23
|
+
span: 35.8
|
|
24
|
+
mac: 4.1935
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: single-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900
|
|
33
|
+
cf/c: 0.176
|
|
34
|
+
Sf/S: 0.170
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: CFM56-5B7
|
|
45
|
+
options:
|
|
46
|
+
A319-111: CFM56-5B5
|
|
47
|
+
A319-112: CFM56-5B6
|
|
48
|
+
A319-113: CFM56-5A4
|
|
49
|
+
A319-114: CFM56-5A5
|
|
50
|
+
A319-115: CFM56-5B7
|
|
51
|
+
A319-131: V2522-A5
|
|
52
|
+
A319-132: V2524-A5
|
|
53
|
+
A319-133: V2527M-A5
|
|
54
|
+
|
|
55
|
+
drag:
|
|
56
|
+
cd0: 0.020
|
|
57
|
+
k: 0.039
|
|
58
|
+
e: 0.783
|
|
59
|
+
gears: 0.017
|
|
60
|
+
|
|
61
|
+
fuel:
|
|
62
|
+
engine: V2524-A5
|
|
63
|
+
fuel_coef: 2.33357287
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
aircraft: Airbus A320
|
|
2
|
+
|
|
3
|
+
mtow: 78000
|
|
4
|
+
mlw: 66000
|
|
5
|
+
oew: 42600
|
|
6
|
+
mfc: 24210
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 180
|
|
13
|
+
low: 140
|
|
14
|
+
high: 170
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 37.57
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 124
|
|
23
|
+
span: 35.8
|
|
24
|
+
mac: 4.1935
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: single-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900
|
|
33
|
+
cf/c: 0.176
|
|
34
|
+
Sf/S: 0.170
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: CFM56-5B4
|
|
45
|
+
options:
|
|
46
|
+
A320-111: CFM56-5-A1
|
|
47
|
+
A320-211: CFM56-5-A1
|
|
48
|
+
A320-212: CFM56-5A3
|
|
49
|
+
A320-214: CFM56-5B4
|
|
50
|
+
A320-215: CFM56-5B5
|
|
51
|
+
A320-216: CFM56-5B6
|
|
52
|
+
A320-231: V2500-A1
|
|
53
|
+
A320-232: V2527-A5
|
|
54
|
+
A320-233: V2527E-A5
|
|
55
|
+
|
|
56
|
+
drag:
|
|
57
|
+
cd0: 0.018
|
|
58
|
+
k: 0.039
|
|
59
|
+
e: 0.799
|
|
60
|
+
gears: 0.017
|
|
61
|
+
|
|
62
|
+
fuel:
|
|
63
|
+
engine: CFM56-5B4/P
|
|
64
|
+
fuel_coef: 2.65942225
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
aircraft: Airbus A321
|
|
2
|
+
|
|
3
|
+
mtow: 93500
|
|
4
|
+
mlw: 77800
|
|
5
|
+
oew: 48500
|
|
6
|
+
mfc: 30030
|
|
7
|
+
vmo: 350
|
|
8
|
+
mmo: 0.82
|
|
9
|
+
ceiling: 12500
|
|
10
|
+
|
|
11
|
+
pax:
|
|
12
|
+
max: 220
|
|
13
|
+
low: 170
|
|
14
|
+
high: 210
|
|
15
|
+
|
|
16
|
+
fuselage:
|
|
17
|
+
length: 44.51
|
|
18
|
+
height: 4.14
|
|
19
|
+
width: 3.95
|
|
20
|
+
|
|
21
|
+
wing:
|
|
22
|
+
area: 128
|
|
23
|
+
span: 35.8
|
|
24
|
+
mac: 4.1935
|
|
25
|
+
sweep: 25
|
|
26
|
+
t/c: null
|
|
27
|
+
|
|
28
|
+
flaps:
|
|
29
|
+
type: double-slotted
|
|
30
|
+
area: 21.1
|
|
31
|
+
bf/b: 0.780
|
|
32
|
+
lambda_f: 0.900
|
|
33
|
+
cf/c: 0.176
|
|
34
|
+
Sf/S: 0.165
|
|
35
|
+
|
|
36
|
+
cruise:
|
|
37
|
+
height: 11000
|
|
38
|
+
mach: 0.78
|
|
39
|
+
|
|
40
|
+
engine:
|
|
41
|
+
type: turbofan
|
|
42
|
+
mount: wing
|
|
43
|
+
number: 2
|
|
44
|
+
default: CFM56-5B1
|
|
45
|
+
options:
|
|
46
|
+
A321-111: CFM56-5B1
|
|
47
|
+
A321-112: CFM56-5B2
|
|
48
|
+
A321-131: V2530-A5
|
|
49
|
+
A321-211: CFM56-5B3
|
|
50
|
+
A321-212: CFM56-5B1
|
|
51
|
+
A321-213: CFM56-5B2
|
|
52
|
+
A321-231: V2533-A5
|
|
53
|
+
A321-232: V2530-A5
|
|
54
|
+
|
|
55
|
+
drag:
|
|
56
|
+
cd0: 0.020
|
|
57
|
+
k: 0.041
|
|
58
|
+
e: 0.785
|
|
59
|
+
gears: 0.019
|
|
60
|
+
|
|
61
|
+
fuel:
|
|
62
|
+
engine: V2533-A5
|
|
63
|
+
fuel_coef: 3.2375643
|