Skip to main content

A Python library of aircraft conceptual design tools.

Project description

![ADRpy](https://github.com/sobester/ADRpy/blob/master/docs/ADRpy/ADRpy_splash.png)

Aircraft Design Recipes in Python
=================================

A library of aircraft conceptual design and performance tools, including virtual (design) atmospheres,
constraint analysis methods, propulsion system performance models, conversion functions and much else.

version number: 0.1.0
author: Andras Sobester

Installation / Usage
--------------------

To install use pip:

$ pip install ADRpy

Or clone the GitHub repository:

$ git clone https://github.com/sobester/ADRpy.git
$ python setup.py install

A 'hello world' example: atmospheric properties
-----------------------------------------------

```python
from ADRpy import atmospheres as at
from ADRpy import unitconversions as co

# Instantiate an atmosphere object: an ISA with a +10C offset
isa = at.Atmosphere(offset_deg=10)

# Query the ambient density in this model at 41,000 feet
print("ISA+10C density at 41,000 feet (geopotential):",
isa.airdens_kgpm3(co.feet2m(41000)), "kg/m^3")
```

A design example: wing/powerplant sizing for take-off
-----------------------------------------------------

```python
# Compute the thrust to weight ratio required for take-off, given
# a basic design brief, a basic design definition and a set of
# atmospheric conditions

from ADRpy import atmospheres as at
from ADRpy import constraintanalysis as ca
from ADRpy import unitconversions as co


# The environment: 'unusually high temperature at 5km' atmosphere
# from MIL-HDBK-310.

# Extract the relevant atmospheric profiles...
profile_ht5_1percentile, _ = at.mil_hdbk_310('high', 'temp', 5)

# ...then use them to create an atmosphere object
m310_ht5 = at.Atmosphere(profile=profile_ht5_1percentile)

#====================================================================

# The take-off aspects of the design brief:
designbrief = {'rwyelevation_m':1000, 'groundrun_m':1200}

# Basic features of the concept:
# aspect ratio, engine bypass ratio, throttle ratio
designdefinition = {'aspectratio':7.3, 'bpr':3.9, 'tr':1.05}

# Initial estimates of aerodynamic performance:
designperf = {'CDTO':0.04, 'CLTO':0.9, 'CLmaxTO':1.6, 'mu_R':0.02}

# An aircraft concept object can now be instantiated
concept = ca.AircraftConcept(designbrief, designdefinition,
designperf, m310_ht5)

#====================================================================

# Compute the required standard day sea level thrust/MTOW ratio reqd.
# for the target take-off performance at a range of wing loadings:
wingloadinglist_pa = [2000, 3000, 4000, 5000]

tw_sl, liftoffspeed_mpstas, _ = concept.twrequired_to(wingloadinglist_pa)

# The take-off constraint calculation also supplies an estimate of
# the lift-off speed; this is TAS (assuming zero wind) - we convert
# it to equivalent airspeed (EAS), in m/s:
liftoffspeed_mpseas = \
m310_ht5.tas2eas(liftoffspeed_mpstas, designbrief['rwyelevation_m'])

print("Required T/W and V_liftoff under MIL-HDBK-310 conditions:")
print("\nT/W (std. day, SL, static thrust):", tw_sl)
print("\nLiftoff speed (KEAS):", co.mps2kts(liftoffspeed_mpseas))
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ADRpy, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size ADRpy-0.1.0-py2.py3-none-any.whl (979.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size ADRpy-0.1.0.tar.gz (954.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page