awebox

Modelling and optimal control of single- and multiple-kite systems for airborne wind energy

https://github.com/awebox/awebox

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    4 of 10 committers (40.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Modelling and optimal control of single- and multiple-kite systems for airborne wind energy

Basic Info
  • Host: GitHub
  • Owner: awebox
  • License: lgpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 18.5 MB
Statistics
  • Stars: 29
  • Watchers: 5
  • Forks: 21
  • Open Issues: 20
  • Releases: 1
Created almost 7 years ago · Last pushed 8 months ago
Metadata Files
Readme Contributing License

README.md

AWEbox

build License: LGPL v3

AWEbox is a Python toolbox for modelling and optimal control of multiple-kite systems for Airborne Wind Energy (AWE). It provides interfaces that aim to take away from the user the burden of

  • generating optimization-friendly high-fidelity system dynamics for different modeling options.
  • formulating and solving the trajectory optimization problem efficiently and reliably, also for long time horizons
  • postprocessing and visualizing the solution and performing quality checks
  • tracking MPC design and solver generation for closed-loop simulations

The main focus of the toolbox are rigid-wing, lift- and drag-mode multiple-kite systems.

Single-kite optimal trajectory | Dual-kite optimal trajectory (reel-out) :-------------------------:|:-------------------------: |

Implemented aircraft models

  • Ampyx AP2 (6DOF)
  • MegAWES (6DOF)
  • point-mass model with lift and roll control (3DOF)

Installation

awebox runs on Python 3. It depends heavily on the modeling language CasADi, which is a symbolic framework for algorithmic differentiation. CasADi also provides the interface to the NLP solver IPOPT.
It is optional but highly recommended to use HSL linear solvers as a plugin with IPOPT.

  1. Get a local copy of the latest awebox release:

    git clone https://github.com/awebox/awebox.git

  2. Install using pip

    pip3 install awebox/

  3. In order to get the HSL solvers and render them visible to CasADi, follow these instructions. Additional installation instructions can be found here.

Getting started

To run one of the examples from the awebox root folder:

python3 examples/ampyx_ap2_trajectory.py

Acknowledgments

AWEbox has been developed under the supervision of Prof. Dr. Moritz Diehl (University of Freiburg, Germany) and has received financial support from the company Kiteswarms GmbH through an industrial research project as well as from the EU Horizon 2020 programme under the Marie Skłodowska-Curie grant agreement No 642682 (AWESCO) and from the German DFG via Grant No 525018088 (MAWERO).

Citing awebox

Please use the following citation:

De Schutter, J.; Leuthold, R.; Bronnenmeyer, T.; Malz, E.; Gros, S.; Diehl, M. AWEbox: An Optimal Control Framework for Single- and Multi-Aircraft Airborne Wind Energy Systems. Energies 2023, 16, 1900. https://doi.org/10.3390/en16041900

and see also:

Harzer, J,; De Schutter, J.; Diehl, M. Numerical Trajectory Optimization of Airborne Wind Energy Systems With Stroboscopic Averaging Methods, IEEE Control Systems Letters 2025 (9), pp. 703-708. https://doi.org/10.1109/LCSYS.2025.3577225

Owner

  • Name: awebox
  • Login: awebox
  • Kind: organization

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 2
  • Watch event: 5
  • Issue comment event: 10
  • Push event: 15
  • Pull request review comment event: 2
  • Pull request review event: 5
  • Pull request event: 20
  • Fork event: 2
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 2
  • Watch event: 5
  • Issue comment event: 10
  • Push event: 15
  • Pull request review comment event: 2
  • Pull request review event: 5
  • Pull request event: 20
  • Fork event: 2

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 1,333
  • Total Committers: 10
  • Avg Commits per committer: 133.3
  • Development Distribution Score (DDS): 0.429
Past Year
  • Commits: 170
  • Committers: 4
  • Avg Commits per committer: 42.5
  • Development Distribution Score (DDS): 0.288
Top Committers
Name Email Commits
Jochem De Schutter j****r@i****e 761
rcleuthold r****d@g****m 446
Jakob Harzer j****r@i****e 35
Thilo Bronnenmeyer t****o@k****m 26
Hasan Berkay Çağır b****y@c****r 24
Jochem De Schutter J****r@i****e 24
Thomas Haas t****h@c****e 11
dependabot[bot] 4****]@u****m 3
Jochem De Schutter j****r@h****m 2
Michael K. McWilliam m****c@d****k 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 31
  • Total pull requests: 141
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 6
  • Total pull request authors: 8
  • Average comments per issue: 1.13
  • Average comments per pull request: 1.03
  • Merged pull requests: 118
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 2
  • Pull requests: 25
  • Average time to close issues: N/A
  • Average time to close pull requests: 16 days
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.32
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jdeschut (19)
  • rcleuthold (6)
  • ufechner7 (2)
  • jcrismer (2)
  • thilobro (1)
  • Laxnring (1)
Pull Request Authors
  • jdeschut (111)
  • rcleuthold (16)
  • thilobro (9)
  • dependabot[bot] (9)
  • JakobHarz (5)
  • pilotmm (4)
  • thfhaas (4)
  • abavoil (1)
Top Labels
Issue Labels
bug (3) enhancement (3)
Pull Request Labels
dependencies (9)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
proxy.golang.org: github.com/awebox/awebox
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • Pillow ==9.2.0
  • casadi ==3.5.5
  • cycler ==0.11.0
  • fonttools ==4.34.4
  • kiwisolver ==1.4.4
  • matplotlib ==3.5.2
  • numpy ==1.23.1
  • packaging ==21.3
  • pyparsing ==3.0.9
  • python-dateutil ==2.8.2
  • scipy ==1.9.0rc3
  • six ==1.16.0
  • tk ==0.1.0
setup.py pypi
  • Pillow ==9.2.0
  • casadi ==3.5.5
  • cycler ==0.11.0
  • fonttools ==4.34.4
  • kiwisolver ==1.4.4
  • matplotlib ==3.5.2
  • numpy ==1.23.1
  • packaging ==21.3
  • pyparsing ==3.0.9
  • python-dateutil ==2.8.2
  • scipy ==1.9.0rc3
  • six ==1.16.0
  • tk ==0.1.0
.github/workflows/python-app.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite