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.
- AtmosphericModel from AtmosphericModels.jl
- WinchModel from WinchModels.jl
- Aerodynamics via VortexStepMethod.jl
This package is part of the Julia Kite Power Tools ecosystem:
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.
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)
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)
- Research Fechner – scientific background for winches and tethers
- More kite models: KiteModels.jl
- Meta-package: KiteSimulators.jl
- Utilities: KiteUtils.jl
- Component models: WinchModels.jl, KitePodModels.jl, AtmosphericModels.jl
- Controllers and viewers: KiteControllers.jl, KiteViewers.jl
- Aerodynamics: VortexStepMethod.jl
- Submit an issue
- Start a discussion
- Ask on Julia Discourse
- Email Bart van de Lint: bart@vandelint.net
Authors:
Bart van de Lint (bart@vandelint.net)
Uwe Fechner (uwe.fechner.msc@gmail.com)
This project is licensed under the MPL-2.0 License.
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]}},
}
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