nonlinear kite control

While taking a class in nonlinear control, it was only natural to wonder if a computer could fly a kite.  I wrote a robust controller to fly a simulated kite, specifically  a revolution kite simulated by   RevSim, written by Dr.-Ing. Jörg J. Buchholz.

A kite is a very interesting control problem, because unlike a robot or electric motor, most of the power flowing into the system does not come from the inputs.  Nonlinear control is, essentially, cancelling out unwanted nonlinearities in the system dynamics by judicious choice of input signal.  For example, if the equations of motion have a sinusoidal term, it can simply be removed by a sinusoidal input in addition to a contol input that yields the desired trajectory of the system without the sinusoidal term.  However, the kite's power comes from the wind, while the control inputs are differential tensions on the lines caused by various handle angles, and are  thus tightly coupled to the kite's system dynamics.

Due to the large number of simplifications required to get the system equations into a managable form a robust controller was written to control only the elevation of the kite, directly downwind.  Without any of these assumptions the system required 154 pages of mathematica equations!  This was largely due to the complicated transformation matrices needed to compare the kite's velocity with that of the wind.  A PID controller was able to successfully control all the state variables, but it displayed worse disturbance rejection and trajectory following than the robust elevation controller.

Presentation (PDF)

Report (PDF) includes code fragments used to implement the robust controller

RevSim executable - same controls as the original RevSim, with a PID and robust elevation controller.  Press 'c' to change between the controllers, 'm' to change the desired flight path, and 'g' to give the kite a gust.