Skip to content

trifwn/Icarus

Repository files navigation

ICARUS

Version v0.1

Working Effort.

Code and Tools to analyze the performance of low speed aircraft using different computational methods and codes. Inspired by a model aircraft designed by EUROAVIA Athens for the European Competion Air Cargo Challenge (ACC) that failed to fly because of of dynamic instability (hence the ICARUS name). This software is developed for it to be used as part of a more general optimization workflow that will use different fidelity levels to produce mission specific aircrafts.

Current Goals

  • Improve Examples
  • Create functional API (instead of object orienting) for analysis
  • Convert to jax typing
  • Finish integrating Control Surfaces for AVL, GenuVP
  • Ameliorate Trajectory calculations
  • Create Panel/Particle Solver (insted of LSPT) to deprecate external aerodynamic solvers.
  • Create Results Class to handle Analysis output.
  • Improve Airfoil Polar class to handle higher order jax compatible interpolations
  • Create Airplane Polar class
  • Create Workflow Class to combine Analyses Together

Long Term Goals

  • Integrate DATCOM for conceputal design. Also add Lower Order Models and Analytical Formulas for Stability
  • Integrate Different fidelity levels for improved optimization
  • Add more optimization techniques (stohastic, GAs, swarm, etc.)
  • Improve testing
  • Finish Documentation and add doctests
  • Add CD/CI
  • Create fully working demo of design an airplane from start to finish in ICARUS
  • Add GUI and find alternative to matplotlib for visualization (3d graphics are slows). One alternative is plotly or julia


How to run

More information on how to run and compile dependencies will be availabe in the future. This project depends on the following 3d Party Software for aerodynamic calculations:

  • OpenFoam (by OpenFoam.org)
  • Foil2Wake (National Technical University of Athens Laboratory of Aerodynamics)
  • XFoil (MIT)
  • GenuVP (National Technical University of Athens Laboratory of Aerodynamics)

Basic Modules

  • Aerodynamics

Library for Aerodynamic calculations. Right now it contains a 3d lifting surface solver used to calculate aircraft aerodynamic loads

  • Airfoils

This library is used to handle and generate airfoils. It is an extension of the airfoils pip module (https://pypi.org/project/airfoils/).

  • Computation

Abstraction Layer for the solvers and running of analyses. Handles the translation of internal objects to solver specific formats. It contains the solvers and analyses

  • Conceptual

Module for conceptual Analysis and sizing of airplanes based on constrained optimization. The final goal is that a user will be able to size an aircraft by defining mission goals and constraints

  • Core

Core functions for the program. Basically any operation that is not significant enough to deserve module or doesnt clearly belong somewhere

  • Database:

Storage Interface to save vehicles, airfoils, analyses, solvers and more. Currently it works with the filesystem. Uses JSON to maybe one day integrate with frontend.

  • Environment

Abstraction for the Environment. Usefull for calculations of fluid and thermodynamical properties at different flight envelope points

  • Flight_Dynamics

Defines Flight State as a trimmed airplane position. The intnent of the class is to one day integrate the control surface movement as well and also account for transient states.

  • Mission

Defines the mission of the airplane and the flight envelope.

  • Optimization

Defines Optimizers for Different Solvers, Integrators and other functions that are used to optimize aerodynamic performance

  • Vehicle

Defines Airplane and other vehicles. Defines an airplane as a part of wings that are themselvesade of wing segments. Each class calculates geometrical characteristics and provides io for optimization workflows

  • Visualization

All Around visualization functions that are grouped according to their function


Building and Installing the Python Module


Currently there are some errors on building the module. Will be worked out in the future as they are not a priority and project changes rapidly. With some basic debugging it works. The most common problem is with the xfoil package. If you want you can create a venv enviroment first:

python -m venv venv
.\venv\Scripts\activate # Windows
./venv/bin/activate # Linux

To install the package run:

pip install .

On Windows to install the xfoil package, you may have to force the system to use MinGW. If the installation fails change the comments on pyproject.toml at the root of the repo to:

    "xfoil @git+https://github.com/trifwn/xfoil-python-windows.git",
    #"xfoil @git+https://github.com/DARcorporation/xfoil-python.git",

The end goal of the project is to come packaged with all 3d party software. Right now it is difficult fore to automate the bulding process or wrap the libraries.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages