Skip to content
This repository has been archived by the owner on Aug 13, 2020. It is now read-only.
aqreed edited this page Nov 6, 2016 · 37 revisions

Welcome to the PyFME wiki!

PyFME 🚀 ✈️ stands for Python Flight Mechanics Engine.

The purpose behind PyFME is to build a library that simulates the motion of an aircraft in the air, and to do so the modeling of all the physics involved in flying is carried out. The following folders can be found in the source code:

  • aircraft (fixed-wing). An aircraft class has been defined and the current workbench is the Cessna 172, while the previous Cessna 310 model is deprecated. As of the v0.1, the aircraft class includes:
  1. an aerodynamic model obtained with DATCOM, AVL and old school Roskam procedures
  2. a propulsion model calculated with JavaProp
  • environment, where the following models can be found:
  1. an atmosphere class implemented for the ISA1976
  2. a gravity class with a few models (the simplest one is been currently used)
  3. a wind class to add a constant effect or simulate gusts (not used yet)
  4. an environment class, which amalgamates the previous ones
  1. a constants file
  2. the Flight Dynamics equations (euler_flat_earth) that govern the motion of the aircraft defined as functions
  3. the systems file, with classes and methods that integrate the above equations and computes the state vector using a Runge-Kutta 4(5)
  • utils, which contains the following tools:
  1. altimetry functions
  2. anemometry functions
  3. coordinates functions to change coordinates between different systems of reference
  4. input_generator functions that simulate the input from a pilot's joystick
  5. trimmer, which helps to adequate the aircraft initial conditions to the desire attitude and flight pattern

The code was recently refactored in order to apply OOP principles. It might (or should!) change in the near future, and it is our intention to keep up with the progress and have updated tests for all models and methods.

What PyFME does:

  • aerodynamics characterization of a fixed-wing aircraft
  • simulation of the environment (wind, temperature, density, etc.)
  • simulation of the pilot's input as steps, ramps or doublet
  • integration of the Euler equations of motion (flight!)
  • visualization of the output data

What we want PyFME to do:

Near future

  • quaternions
  • work with Flight Gear (RTS, joystick) 🕹️
  • modelization of actuators (surface controls) and throttle response
  • modelization of different types of engine and fuel consumption

Long term

  • simulation of variable geometry, maybe with a CFD approach like VLM to calculate the changing aerodynamics behaviour
  • supersonic and hypersonic flight 🚀
  • autopilot and SAS (Stability Augmentation Systems, like yaw damping)

Don't hesitate to contact us if you want to participate! 🤘

http://telegram.me/AeroPython

https://groups.io/g/aeropython 📧

This wiki contains:

🚀 What do I need to start collaborating? [ES]

:octocat: Information about our workflow.

📝 Some coding rules and conventions such us pep8, and our list of symbols.

📅 Our meeting minutes:


Coming soon:

❓ FAQs.

📍 Roadmap.

:shipit: Developer's guide.