Skip to content

OpenSourceAWE/SymbolicAWEModels.jl

SymbolicAWEModels

Stable Dev CI Coverage Aqua QA

Overview

SymbolicAWEModels.jl provides modular symbolic models for simulating Airborne Wind Energy (AWE) systems, including:

  • One or more wings (kites)
  • Tethers (with or without pulleys)
  • Winches
  • Bridle systems

The kite is modeled as a deforming rigid body with quaternion dynamics for orientation. Aerodynamic forces and moments are computed using the Vortex Step Method. Tethers are modeled as point masses connected by spring-damper elements with realistic drag. Winches are modeled as motors/generators that can reel tethers in/out.

Modular Subcomponents

This package is part of the Julia Kite Power Tools ecosystem:

Julia Kite Power Tools


Installation

Install Julia 1.11 using juliaup.
On Linux, make sure Python3 and Matplotlib are installed:

sudo apt install python3-matplotlib

Recommended workflow:

mkdir test
cd test
julia --project="."

Then add the package:

using Pkg
pkg"add SymbolicAWEModels"

Run the unit tests (can take about 60 minutes):

pkg"test SymbolicAWEModels"

Copy the examples, data and scripts to your project, and install dependencies:

using SymbolicAWEModels
SymbolicAWEModels.init_module(; force=false) # force=true to remove existing files with the same name

This adds extra packages needed for the examples and creates a data folder with example input files.

Run the interactive example menu:

include("examples/menu.jl")

Or run the ram-air-kite example directly:

include("examples/ram_air_kite.jl")

Note: The first run will take a few minutes to precompile.


Ram Air Kite Model

This model represents the kite as a deforming rigid body, with orientation governed by quaternion dynamics. Aerodynamics are computed via the Vortex Step Method. The kite is controlled from the ground via four tethers.

Initialize:

using SymbolicAWEModels, ControlPlots
set = Settings("system.yaml")
sam = SymbolicAWEModel(set, "ram")
init!(sam)

Simulate and plot:

(log, _) = sim_oscillate!(sam)
plot(sam.sys_struct, log; plot_all=false, plot_heading=true)

Ram heading


Simple Ram Model

The simple_ram model removes the bridle system and uses 1-segment tethers. You can approximate its properties using the complex ram air kite model and a helper tether model.

Initialize:

init!(sam)
tether_sam = SymbolicAWEModel(set, "tether")
init!(tether_sam)
simple_sam = SymbolicAWEModel(set, "simple_ram")
init!(simple_sam)

Simulate and plot:

SymbolicAWEModels.copy_to_simple!(sam, tether_sam, simple_sam)
(simple_log, _) = sim_oscillate!(simple_sam)
plot(simple_sam.sys_struct, simple_log; plot_all=false, plot_heading=true)

Simple ram heading


See Also


Questions?

Authors:
Bart van de Lint (bart@vandelint.net)
Uwe Fechner (uwe.fechner.msc@gmail.com)


License

This project is licensed under the MPL-2.0 License.


Citing SymbolicAWEModels

If you use SymbolicAWEModels in your research, please cite this repository:

@misc{SymbolicAWEModels,
  author = {Bart van de Lint, Uwe Fechner, Jelle Poland},
  title = {{SymbolicAWEModels}: Symbolic airborne wind energy system models},
  year = {2025},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{[https://github.com/OpenSourceAWE/SymbolicAWEModels.jl]}},
}

Copyright Notice

Technische Universiteit Delft hereby disclaims all copyright interest in the package “SymbolicAWEModels.jl” (symbolic models for airborne wind energy systems) written by the Author(s).

Prof.dr. H.G.C. (Henri) Werij, Dean of Aerospace Engineering, Technische Universiteit Delft.

See copyright notices in the source files and the list of authors in AUTHORS.md.

Documentation Stable Version --- Development Version

About

Symbolic wing, tether and winch models for the simulation of Airborne Wind Energy systems.

Topics

Resources

License

MPL-2.0 and 2 other licenses found

Licenses found

MPL-2.0
LICENSE
MIT
LICENSE-MIT
MPL-2.0
LICENSE-MPLtwo

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •