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. 

