SymbolicAWEModels
Documentation for the package SymbolicAWEModels.
This package provides modular symbolic models of Airborne Wind Energy (AWE) systems, which consist of one or more wings, tethers, winches and a bridle system with or without pulleys. The kite is modeled as a deforming rigid body with orientation governed by quaternion dynamics. The aerodynamic forces and moments are computed using the Vortex Step Method. The tether is modeled as point masses connected by spring-damper elements, with aerodynamic drag modeled realistically. The winchs are modeled as motors/generators that can reel in or out the tethers.
The SymbolicAWEModel
has the following subcomponents implemented in separate packages:
- AtmosphericModel from AtmosphericModels
- WinchModel from WinchModels
- The aerodynamic forces and moments of some of the models are calculated using the package VortexStepMethod
This package is part of the Julia Kite Power Tools, which consist of the following packages:
Installation
Install Julia 1.11 using juliaup
, if you haven't already. On Linux, make sure that Python3 and Matplotlib are installed:
sudo apt install python3-matplotlib
Before installing this software it is suggested to create a new project, for example like this:
mkdir test
cd test
julia --project="."
Then add SymbolicAWEModels from Julia's package manager, by typing:
using Pkg
pkg"add SymbolicAWEModels"
at the Julia prompt. You can run the unit tests with the command (careful, can take 60 min):
pkg"test SymbolicAWEModels"
You can copy the examples to your project with:
using SymbolicAWEModels
SymbolicAWEModels.install_examples()
This also adds the extra packages, needed for the examples to the project. Furthermore, it creates a folder data
with some example input files. You can now run the examples with the command:
include("examples/menu.jl")
You can also run the ram-air-kite example like this:
include("examples/ram_air_kite.jl")
This will take some minutes to precompile the first time you run it.
Ram air kite model
This model represents the kite as a deforming rigid body, with orientation governed by quaternion dynamics. Aerodynamics are computed using 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 has 1-segment tethers. The tether properties and attach points can be approximated using the complex ram air kite model and a helper tether model. This makes the heading response of the simple model very close to the heading response of the complex 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)
See also
- Research Fechner for the scientic background of the winches and tethers.
- More kite models KiteModels
- The meta-package KiteSimulators
- the package KiteUtils
- the packages WinchModels and KitePodModels and AtmosphericModels
- the packages KiteControllers and KiteViewers
- the VortexStepMethod
Questions?
If you have any questions or problems, please submit an issue or start a discussion. The Julia community is also very helpful: Julia Discourse. You can also send an email to Bart van de Lint (bart@vandelint.net).
Authors: Bart van de Lint (bart@vandelint.net), Uwe Fechner (uwe.fechner.msc@gmail.com)