First release of Julia Kite Power Tools

I am happy to announce the release of the meta-package KiteSimulators.jl, which bundles all the packages that are part of Julia Kite Power Tools.


It is easy to install on Windows and Linux (hopefully also on Mac, I cannot test this). Scripts to create a system image are included, which means the graphical application launches within a few seconds.

Many examples for running simulations, logging and plotting are also included.


  • You can learn how to steer a Kite using a Joystick. You can also real the tether in and out.
  • I could a achieve a simulation speed of 8x real-time without any violation of the time constraint of 50ms per step. This is 7 to 70 times faster than the original code that was written in Python/ Numba when using the 4-point kite model and 6 tether segments.

Next step
Integrate the package KiteControllers.jl

I will present this package on the Airborne Wind Energy conference in Milan in June:


I may be able to try on Mac

1 Like

It would be very kind of you if you could test it on a Mac. With bash installed you can just follow the Linux instructions. Should be possible to do in 20 or 30 minutes.

Im proud to announce the package KiteControllers version 0.1.7
(see: GitHub - aenarete/KiteControllers.jl: Controllers for airborne wind energy systems).

This is the first version that includes a fully working autopilot for the full pumping cycle.

If you you want to see a kite harvesting wind energy in 3D, just run the example autopilot.jl.

The best way to use KiteControllers is to install the meta package KiteSimulators, which includes all required packages, and create a system image by running the script create_sys_image as explained here

If you want to see and/or modify the source code of KiteControllers, check out the package using git and run the script create_sys_image from the the bin folder of the package. This compiles all packages needed for running the examples, but not KiteController.jl itself, so you are free to modify it according your needs.

As a teaser, the flight path will look similar to this plot:


I presented my work in the Airborne Wind Energy conference in Milano last week, and I hope I could motivate a few researchers to use Julia instead of Matlab or Python…


Great work, Uwe, as usual!

Need to buy a new notebook before I can support Julia Install.

This may be best as a spit-off topic, as I am not seeing that Julia models kite flight aeroelastically, but as a one-point or four-point mass for the basic control purpose and real time performance intended. There are simplified aeroelastic models not yet applied widely, nor in Julia.

One major difference in closely observed kite dynamics is how kites constantly hunt in 6DOF, and these self-oscillations are not commonly modeled, and control systems can impose their own periodicities. It’s a chaotic swamp up there.

Folks are aware of the “Passive Control” AWES paradigm that seeks designs with inherent Dynamic Stability under active exception-handling. Instead of Active Control Derivatives, Passive Stability Derivatives are most studied in Passive Control.

We hope for analytic convergence of the two paradigms, but much more work before these uniformly combine in one elegant framework, so specific designs varying in the control-stability parameters can be rigorously compared in simulation or controlled in specific practice for highly passive designs.

Pondering how PID control oscillations correspond to aerobody harmonics. I guess the idea is active control loops oscillating so fast that aeroelastic harmonics don’t interfere. In passive control, the embodied logic is coupled directly at aeroelastic frequencies.

The Kite Window can now be seen as a field of Positive Control-loop Feedback in the Power Zone, and Negative Feedback at the edges (disregarding gravity for the moment). This is a small step in formally unifying the two control paradigms.

Do you have any particular thoughts on this topic? Will Julia someday be supporting greater multi-physics, perhaps by operating kite models over a powerful conventional solver?


Oh, Dutch Roll is passive fig8 flying-


PS. Thinking through relation of flight control to stability (C&S), a stabilizer surface acts like a control surface when deflected accordingly. Thus, as a kite wanders across the kite window or encounters turbulence, AoA varies passively much as directing an elevator actively would. This seems like a classic reference-frame issue that may resolve fairly simply, even at the user interface layer, rather than require a complex reworking of the deep flight dynamics.

Control-stability saturation is another aspect of a realistic sim, whereby turbulence can overpower C&S.