-
Notifications
You must be signed in to change notification settings - Fork 70
Home
PyFME 🚀
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 folder:
- 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:
- an aerodynamic model obtained with DATCOM, AVL and old school Roskam procedures
- a propulsion model calculated with JavaProp
- environment, where the following models can be found:
- an atmosphere class implemented for the ISA1976
- a gravity class with a few models (the simplest one is been currently used)
- a wind class to add a constant effect or simulate gusts (not used yet)
- an environment class, which amalgamates the previous ones
- models, which contains:
- a constants file
- the Flight Dynamics equations (euler_flat_earth) that govern the motion of the aircraft defined as functions
- 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:
- altimetry functions
- anemometry functions
- coordinates functions to change coordinates between different systems of reference
- input_generator functions that simulate the input from a pilot's joystick
- trimmer, which helps to adequate the aircraft initial conditions to the desire attitude and flight pattern
- and last but not least, the proper simulation defined as a class that represent the ❤️ heart ❤️ of PyFME
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.
- aerodynamics characterization of a fixed-wing aircraft
- simulation of the environment (wind, temperature, density, etc.)
- integration of the Euler equations
- simulation of the pilot's input as steps, ramps or doublet
- visualization of the output data
- quaternions
- work with Flight Gear (RTS, joystick) 🕹️
- modelise actuators (surface controls) and throttle response
- modelise different types of engine and fuel consumption
- simulate variable geometry, maybe integrating a CFD approach like VLM to calculate the changing aerodynamics behaviour
- supersonic and hypersonic flight 🚀
- autopilot and SAS (Stability Augmentation Systems, like yaw damping)
https://groups.io/g/aeropython 📧
🚀 What do I need to start collaborating? [ES]
Information about our workflow.
📝 Some coding rules and conventions such us pep8, and our list of symbols.
📅 Our meeting minutes:
Coming soon:
❓ FAQs.
📍 Roadmap.
Developer's guide.