WinchControllers
Documentation for the package WinchControllers.
This package is part of Julia Kite Power Tools, which consists of the following packages:

Goals of this package
The goal of this package is to provide controllers for winches that consist of a motor/generator connected to a drum (with or without gearbox). On the drum is a tether that is connected to a load or a kite. Currently operation in air is assumed, but the package could also be extended for winches connected to under-water cables. While the main use case of the author are airborne wind energy systems, I am open to add features needed for other use cases.
Implemented features:
- lower force control (assure that there is always a minimal cable tension)
- upper force control (keep the maximal force limited)
- reel-out speed control proportional to the square root of the force (other relationships can easily be added), either piecewise between the force limits or as a pure
kv * sqrt(force)law (WCSettings.mode = "reelout") - control of asynchronous motors/ generators
- speed control
- auto-tuning of the controller
- disk based stability analysis of linearized system including the force controllers
- torque controlled winches, holding either a length (
WinchPosController) or a force (WinchForceController); the length controller has an optional acceleration feed-forward (WCSettings.winch_acc_ff) - soft force limiting for REELOUT mode, a continuous alternative to the upper/lower force controllers ([`calcvrosoft
](@ref), settingsforcelimitandsoftlfc): a smoothly saturated inverse of the tension curve, a reel-in line belowflow`, an optional low-pass filter of the measured force and an optional soft clamp at the maximal reel-out speed
Planned features
- improved, simplified system model using a quasi-steady tether model and an aerodynamic model including kite mass the cross-wind factor
Installation
Install Julia 1.12 or later, if you haven't already. Before installing this software it is suggested to create a new project, for example like this:
mkdir test
cd test
julia --project="."Then add WinchControllers from Julia's package manager, by typing:
using Pkg
pkg"add WinchControllers"at the Julia prompt. You can run the unit tests with the command:
pkg"test WinchControllers"To add the examples and install the packages needed by the examples, run:
using WinchControllers
WinchControllers.install_examples()
exit()Installation using git
If you want to modify, tune and understand the controllers, it is better to check out this project from git:
git clone https://github.com/OpenSourceAWE/WinchControllers.jl.git
cd WinchControllers.jl
git checkout v0.6.2
bin/installFor the checkout command, use the tag of the latest version. The installation script asks which Julia version to use (1.11, 1.12 or 1.13), installs the matching default manifest, instantiates and precompiles the main, examples, test and docs projects and, on Julia 1.12 and 1.13, also runs the tests.
Running the examples
To run the examples, launch Julia with:
bin/run_juliaand then, in the Julia REPL, type:
menu()Alternatively, launch Julia with julia --project and type include("examples/menu.jl"). You should now see a terminal menu with some examples. Select one using the <CURSOR UP> and <CURSOR DOWN> keys, and press <ENTER> to run the selected example.
Provides
- a set of generic control components, see Generic Components
- a winch controller WinchController, that limits the upper and lower force and controls the speed as function of the force
- a winch controller settings struct
WCSettingsfor the settings - Torque Controllers,
WinchPosControllerandWinchForceController, for winches driven by a torque command instead of a speed command - Utility Functions and Macros
See also
- Research Fechner for the scientific background of this code
- The meta-package KiteSimulators
- the package KiteUtils
- the packages WinchModels and KitePodModels and AtmosphericModels
- the packages KiteControllers and KiteViewers
- the package SimpleKiteControllers, which uses the soft force limiting and the torque controllers of this package to fly a single line kite
Author: Uwe Fechner (uwe.fechner.msc@gmail.com)