Journal cover Journal topic
Wind Energy Science The interactive open-access journal of the European Academy of Wind Energy
Journal topic
WES | Articles | Volume 3, issue 1
Wind Energ. Sci., 3, 275-291, 2018
© Author(s) 2018. This work is distributed under
the Creative Commons Attribution 3.0 License.
Wind Energ. Sci., 3, 275-291, 2018
© Author(s) 2018. This work is distributed under
the Creative Commons Attribution 3.0 License.

Research articles 17 May 2018

Research articles | 17 May 2018

System identification, fuzzy control and simulation of a kite power system with fixed tether length

System identification, fuzzy control and simulation results
Tarek N. Dief1, Uwe Fechner2, Roland Schmehl3, Shigeo Yoshida4, Amr M. M. Ismaiel1,5, and Amr M. Halawa1 Tarek N. Dief et al.
  • 1Department of Earth System Science and Technology, Kyushu University, Fukuoka, Japan
  • 2Aenarete – Wind Drones, The Hague, the Netherlands
  • 3Delft University of Technology, Delft, the Netherlands
  • 4Research Institute for Applied Mechanics, Kyushu University, Fukuoka, Japan, Japan
  • 5Faculty of Engineering and Technology, Future University in Egypt (FUE), Cairo, Egypt
Back to toptop

In wind energy research, airborne wind energy systems are one of the promising energy sources in the near future. They can extract more energy from high altitude wind currents compared to conventional wind turbines. This can be achieved with the aid of aerodynamic lift generated by a wing tethered to the ground. Significant savings in investment costs and overall system mass would be obtained since no tower is required. To solve the problems of wind speed uncertainty and kite deflections throughout the flight, system identification is required. Consequently, the kite governing equations can be accurately described. In this work, a simple model was presented for a tether with a fixed length and compared to another model for parameter estimation. In addition, for the purpose of stabilizing the system, fuzzy control was also applied. The design of the controller was based on the concept of Mamdani. Due to its robustness, fuzzy control can cover a wider range of different wind conditions compared to the classical controller. Finally, system identification was compared to the simple model at various wind speeds, which helps to tune the fuzzy control parameters.

1 Introduction
Back to toptop

Airborne wind energy (AWE) systems are very promising energy sources that use flying devices. These devices can fly at high altitudes. Therefore, power can be generated by harvesting stronger and more persistent wind. The kite system is one of the AWE systems being developed. It consists mainly of two parts, a flexible wing and a generator on the ground connected by a tether. To capture as much power as possible from wind, the kite should fly at a high crosswind speed. To satisfy this, control is applied to the kite to keep it flying at high altitude, and perpendicular to the direction of the wind in an optimized path (Fagiano and Milanese2012; van der Vlugt et al.2013).

AWE systems can capture more energy with higher capacities, which is why they are considered a good renewable energy system. The wind energy density at an altitude of 10 km could reach up to 5000 W m−2 according to Wubbo Ockels, the developer of the “ladder-mill” concept in 1997 (Ockels2001). However, it is technically too challenging to build a system that can operate at an altitude of 10 km and generate electricity from wind. This is why most of the current development and research projects have shifted their focus to lower altitudes (Archer et al.2014).

Wind energy density ranges from 1400 to 4500 W m−2 at altitudes of 200–900 m. Wind turbines cannot be installed at these altitudes because of the limitations of tower size (Goudarzi et al.2014). Therefore, it would be an optimum solution to have a system similar to wind turbines at this altitude but with no tower. The concept of wind turbine blade rotary motion can be replaced by a kite connected via the flexible tether to a fixed generator on the ground.

The power generation by AWE follows several concepts; however, in this paper we have only mentioned two different concepts. The first concept is based on the tension force in the tether. The crosswind-flying wing pulls the tether, which is wrapped around a drum on the ground connecting it to the generator, until the tether reaches its maximum length. Then, it is reeled back to the minimum length allowed based on the design limitations. The second concept depends on installing wind turbines mounted on the wing itself, which generates energy during crosswind flight. It sends the generated energy through the electrified tether to the ground. It is crucial for the kite system to control its motion for efficient and reliable operation.

The optimum trajectory for kite flight is one of the key control parameters that can be decided by a flight path planner. To keep the kite on this planned trajectory, a winch controller controls the tether length. The kite flight has two main phases, as shown in Fig. 1. First, the reel-out phase is where the kite is free to go further from the ground station and pulls the tether. To obtain the maximum tensile force, the angle of attack of the wing is maximized. Second, the reel-in phase is where the kite is pulled back toward the ground station. In this case, the angle of attack is minimized to reduce the drag force on the kite, which would cost more energy.

Figure 1Working principle of the pumping kite power system (van der Vlugt et al.2013).


Many researchers have studied the control of the kite system (Baayen and Ockels2012; Canale et al.2010; Costello et al.2013; Diehl et al.2001; Erhard and Strauch2013; Fagiano et al.2014; Houska and Diehl2007; Ilzhöfer et al.2007; Jehle and Schmehl2014b; Williams et al.2008). However, they only considered the first phase of the kite motion, which is considered for power generation, and neglected the second phase, where energy is used to pull the kite back. Other studies were concerned with the modeling of the kite system, winch controller and tether assembly (Ahmed2014; Diehl2001; Fagiano2009; Furey2012; Thorpe2011; Zgraggen2014). The governing equations in most of these studies were defined by using the point mass model (Fechner et al.2015). Other researchers considered the governing equations based on a rigid body model without considering the turn rate law, which is necessary to describe steering of the kite (Fechner et al.2015; Thorpe2011; Williams et al.2007; Zgraggen2014). Other researches discretized the kite into 10 points, which increased the solution accuracy, although the tether was not discretized (Furey2012).

Neural network modeling was an idea that was analyzed, but the results were not satisfactory. Quasi-static modeling was also considered for more accurate controller implementation, but the results were not sufficient for validation (Erhard and Strauch2013; Fagiano et al.2012). The average system model overcomes this validation problem since it gives a suitable derivation for different types of controllers (Fechner and Schmehl2012).

Experimental efforts for the autonomous take-off of the airborne systems were carried out, however there are still some challenges to get fully autonomous flight in different wind conditions. Moreover, a global controller that can work under all conditions cannot be designed effectively for the commercial products (Baayen and Ockels2012; Fechner and Schmehl2012; Jehle and Schmehl2014a). Nonlinear model predictive control (NMPC) is used as a control strategy by many researchers to stabilize the kite. It is possible to theoretically apply this algorithm to optimize flight trajectory, but in a real flight test, it will require accurate and fast wind data that are currently unavailable (Canale et al.2010; Ilzhöfer et al.2007; Jehle and Schmehl2014b).

Thus, alternative techniques are needed to stabilize the flight trajectory. One technique is very promising for fixed short tethers, as it does not require information about the wind field or the kite and still performs quite well (Fagiano et al.2014). Neither long nor variable length tethers are valid for the simulation. For a tether with a length of 200–500 m, or for a heavy kite, the accuracy is insufficient. Accuracy was increased in other studies that considered the apparent wind speed and gravitational effects in the simulation (Jehle and Schmehl2014a). However, for a tether shorter than 200 m with a time delay greater than 200 ms, the accuracy becomes insufficient.

The uncertainty of the kite's models has recently been presented in Fagiano and Milanese (2012); Fagiano et al. (2014); Jehle and Schmehl (2014a); van der Vlugt et al. (2013). However, several practical questions arise when dealing with the control design process. It is crucial to identify the wind speed, direction, aerodynamic parameters, kite shape and tether shape in real time. Thus, fully autonomous flight for the kite system has not yet been successful.

In this paper, the least square estimation (LSE) was used as a system identification to get a more accurate description for the steering dynamics of the kite in real time; the characteristics of the kite are varying with time because the wing is inflatable and flexible. Also, the wind speed can not be measured in real time, thus it is impossible to obtain the lift and drag forces during flight. This technique especially is used to identify the system parameters as it can calculate them analytically without iteration which means short calculation times and low chance of singularity in the solver.

The novelty of this work is to use an algorithm that is valid for any kite size and any tether length, so it can overcome the problems of the uncertainty. The LSE algorithm needs the steering values from the motors and the course angle from the sensors. Thus, no additional information is needed, such as the wind speed or the mathematical model of the kite, to identify the system that shall be controlled. Therefore, this paper tries to stabilize the kite using fuzzy control based on the LSE in real time.

This paper is divided into five main sections. The first section is the introduction, which gives an overall view of the previous research related to the paper's work. The second section shows the mathematical model (Sect.2) used to describe the kite's motion. The third section gives the system identification derivation and details the sequence of the code (Sect. 3). The fourth section describes the main parts of the fuzzy control and explains the choice of the fuzzy control parameters (Sect. 4). Finally, the last section shows the simulation results of the classical control and the fuzzy algorithm. The comparison also includes varying wind conditions and their effects on system stability (Sect. 5).

2 Mathematical model
Back to toptop

Different mathematical models have been used to derive the kite governing equations. Some of these models considered the system as a kite connected with two control tethers without considering the variation of the angle of attack. These assumptions were considered to allow for an easier implementation of the kite's dynamic states (Diehl et al.2001). Then, more complexity and details were added to the models. Some researchers have assumed that the system consists of the three degrees of freedom model and that the kite is a point mass at the end of a straight tether. Furthermore, the aerodynamic properties of the kite were considered fixed for all wind conditions (Ahmed et al.2011).

Recent work considered the kite with a variable tether length and started to derive mathematical models for this variation of the tether length. A discretized tether model was derived during the reel-in and the reel-out phases using the Lagrangian approach to obtain the governing equations. Moreover, this model considered the segments of the tether as a rigid body connected by spherical joints (Williams et al.2007).

Other research groups considered the tether model as a discretized tether with point masses connected by springs to each other, and aerodynamic analysis was performed using the vortex lattice method; however, the phases of reeling-in and reeling-out were not mentioned in the analysis (Gohl and Luchsinger2013). On the other hand, other research groups detailed the reel-in and reel-out phases (including the winch model) to present full kite motions in different phases (Ahmed et al.2011; Coleman et al.2013).

Some studies on kite design are being conducted to assess the aerodynamic characteristics. They applied the fluid-structure interaction method to study the aero-elasticity of the kite since the kite consists of an inflatable wing (Bosch et al.2014; Viré2012; Viré et al.2012). However, the simulation is slower than the real flight test, and it still needs more work to run the same as the real flight test.

Recent work on kite modeling has been achieved at TU Delft by Fechner et al. (2015). This research considered the dynamics of all system components such as the tether, kite, and generator. Additionally, the reel-in and reel-out phases were detailed to provide a smooth simulation for the tether. Additionally, the authors used two different definitions for the kite. The first definition considered the kite as an improved point mass model. It can be used to calculate the angle of attack and calculate the lift and drag of the kite during changes in the angle of attack. The other model considered the kite as a four-point mass model with rotational inertia in all axes. It closely models the real kite since all dimensions of the kite (the height and the width) are considered.

Figure 2Small Earth reference frame: the position of the kite is projected onto a half sphere with a radius of one. The elevation angle β and the azimuth angle ϕ describe the position of the kite, the angle ψ describes its orientation. The course angle χ is the angle between the direction toward the zenith and the velocity vector of the center of mass of the kite as projected on the tangential plane touching the position of the kite on the half sphere (Fechner2016; Fechner and Schmehl2018).


This section is divided into three main subsections. The first subsection presents the system model and gives a full description for the kite kinematics framework (Sect. 2.1). The second subsection explains the flight path planner (FPP) (Sect. 2.2) to show the kite path during flight and to show the parameters that affect the kite trajectory. The FPP was chosen to adapt any testing area for the flight test. Finally, the flight path controller (FPC) (Sect. 2.3) was derived to stabilize the kite using the PID controller. This mathematical model was derived based on the turn rate law (Erhard and Strauch2013).

2.1 Kinematic framework

As mentioned in the introduction, there are different concepts to derive the mathematical model of the kite (Ahmed2014; Diehl2001; Fagiano2009; Furey2012; Thorpe2011; Zgraggen2014). Some of these models considered the kite as a point mass model, and other researchers just considered the kite as a rigid body (Fechner et al.2015; Thorpe2011; Williams et al.2007; Zgraggen2014). These models are not totally accurate compared to the 10 point mass model (Furey2012). However, increasing the number of mass points makes the solver slower than the real flight test. Thus, choosing a simple model to derive the governing equations of the kite potentially allows the solver to run in real time. Additionally, it would be suitable for designing and simulating the FPC and FPP in real time.

To give a complete definition of the kite model, it is important to introduce the different frames used in the derivation of the mathematical model of the kite. The first frame is called the “Earth Centered–Earth Fixed”, and the position of the kite and the ground station are measured there. These measurements have to be converted into the “wind reference frame” as shown in Fig. 2. Additionally, the xw axis of the wind reference frame is in the same direction as the average wind speed, and its center is placed at the anchor point of the tether. Together with the tether length lt, the elevation angle β and the azimuth angle ϕ represent a spherical coordinate system that fully defines the position of the kite in the wind reference frame. Figure 2 also introduces the “Small Earth” analogy in which the kite's position is projected onto the unit sphere around the origin and then described by angles β and ϕ.

Based on the given frames of the kite system, the given axes xk, yk, and zk show the body fixed reference frame of the kite. The zk axis goes downward from the position of the kite to the connecting point with the tether. The yk axis is the vector from the left to the right tip of the kite. The xk axis is the orthogonal of yk and zk. The heading angle ψ is the angle between the axes xk and the direction toward the zenith as projected on the tangential plane touching the position of the kite on the half sphere. In the model given in this section, the tether is assumed to be straight, and the design of the FPP and the FPC assumed this as well. To control the motion of the kite, the heading angle and the course angle of the kite must be controlled from one point to another using the control action given by the steering motor.

To control the system using the classical control, the system should be converted into a single input single output (SISO) model (Baayen and Ockels2012), which was achieved after introducing the small Earth reference frame. The input for the kite became the steering action generated from the motor in the kite control unit (KCU), and the system output is the course angle. The angular velocity ω of the kite point with respect to the origin O is derived in Eq. (1) from the rate of change of the elevation and azimuth angles. This point is further highlighted in Appendix A.


The simplified 2-D kite system model is used in the mathematical equations of the kite. The kite is considered to have a fixed length tether, which has to be straight. The test also considered the kite to be flying toward the center of the wind window in the direction of the zenith. The inputs of the model are the steering action us, the apparent wind speed va, and the initial values of the heading, elevation, azimuth, and angular speed. The outputs of the system are the heading angle, its derivative, and the position of the kite, which can be calculated from the elevation and the azimuth angles. The turn rate law is used to calculate the heading angle of the kite, as shown in Eq. (2). After obtaining the heading angle, the integration can easily obtain the value of the heading of the kite. This part is further highlighted in Appendix B.


The position of the kite can be calculated from the substitution of the angular velocity ω into the derivatives of the elevation and the azimuth angles. This concept is valid under the assumption of the similarity of the course angle with the heading angle. Some assumptions are considered when calculating the angular speed ω. One of these assumptions considers that ω depends only on the elevation angle β, and it is calculated from Eq. (3); this part is further highlighted in Appendix A.


2.2 Flight path planner (FPP)

Designing the FPP mainly depends on previous ordered positions that show the required flight path of the kite and the points that the kite should be steered toward. In the work presented in this paper, there are two points called attractor points, on the right and left sides of the wind window, to make the kite fly in a figure eight motion. The figure eight shape was chosen for different reasons: it gives the kite the chance to fly over the wind window to produce more power, by increasing the relative wind velocity. It also aids in smooth steering and reduces the overlapping that occurs if a circular motion is used.

Figure 3Four-step flight path planner for flying a figure eight: First turn left, then steer toward P3, then turn right and finally steer toward P4 (Fechner2016; Fechner and Schmehl2018).


Figure 3 shows the main points of the kite movement. The flight path controller FPC guides the kite to go toward the points set in Fig. 4 in the shape of a figure eight. The algorithm of the FPP is divided into four subsystems as shown in Fig. 4. The cases of the flight are shown in Table 1 to switch between the different conditions of flight and sub-states. During turning, there is a time delay, and an offset δx=112 must be used to compensate for it1.

Table 1Finite sub-states of the figure-eight flight path planner.

Download Print Version | Download XLSX

Figure 4Finite sub-state diagram showing the sub-state and the transitional condition of the figure eight controller. This sub-state machine is active in the state FIG-8 of the high-level controller. The states LAST-LEFT and LAST-RIGHT are omitted for simplicity (Fechner2016).


To design the FPP, we need to define the inputs and the output for the algorithm. The kite orientation ψ, azimuth angle ϕ and set value of the average elevation βsw are considered as inputs for the FPP. The control action obtained from the PID controller, set value of the position Pk, setSE and set value of the turn rate law ψ˙set are considered as the output.

The FPP algorithm needs to obtain the values of P3, P4, and ψ˙turn as a function of the angular width ωfig, the angular height hfig, and the minimum attractor point distance δmin.

Figure 5Schematic to show the turn rate law of the kite as a function of the angular velocity and turn radius (Fechner2016; Fechner and Schmehl2018).


As shown in Fig. 5, the tangential velocity of the kite Vk,τ is given in Eq. (4):


Then, the radius of the turn ϱ is given in Eq. (5):


The turn rate χ˙turn is calculated from the angular velocity of the kite ω, which is calculated from Eq. (1), and can be calculated as shown in Eq. (6):


The value of ϕc2 can be calculated from Eq. (7):


Then, the azimuth angles ϕsw and the elevation angle βsw of the switch point can be calculated from Eqs. (8) and (9) by combining the right turning circle with the tangent:


The slope of the line toward P4 can be calculated from Eq. (10):


After solving for the points P3 and P4, we can obtain the following:


2.3 Flight path controller (FPC)

The kite's position can be controlled using the setting values of the elevation, the azimuth and the normalized depower setting ud as inputs and the steering of the motor us as the output. The controller includes the navigator of the kite to estimate the desired heading angle based on the current elevation and required elevation β and on the azimuth angles ϕ. The desired flight direction can be calculated by substituting Eqs. (13) and (14) into Eq. (15). The resultant from Eq. (15) can be compared with the heading angle that comes from the sensor to obtain the error signal used in the control design as an input. Then, the steering action can calculated from the control block as an output us.


After obtaining the result of Eq. (15), the system is ready for the controller, as the SISO and PID controllers were used to update the steering value of the motor us. LSE and fuzzy control had been described in Sects. 3 and 4 and then the results of fuzzy control were compared with the classical control in Sect. 5 using Simulink2.

3 System identification using least square estimation
Back to toptop

The aim of this section is to identify the variation of the system parameters during flight. The parameters must be updated in real time by analyzing the history of the model's input (control action) and output data (course angle). Least square estimation (LSE) (Bobál et al.2006; Dutton et al.1997; Plackett1950) is used as a system identification technique to update the system's governing equations. The algorithm minimizes the mean square error (MSE) as defined in Eq. (16):


where r is number of the time steps in the discrete time process, Ym is the measured data obtained from the sensor, and Yr is the value results estimated from the system identification shown in Eq. (22). The open loop transfer function of the kite is derived in Fechner (2016) in the form of a simple model. It has the unknown apparent wind speed as a parameter. Furthermore, the model parameters depend on the angle of attack of the kite, which varies. Thus, the mathematical model cannot exactly define the system (Jehle and Schmehl2014b). Therefore, it is suggested to use parameter estimation to update the values for the open loop transfer function, as shown in Fig. 6.

This figure shows that the system is SISO with the course angle required as an input, and the output is the measured course angle of the kite. Then, the error would be calculated from the difference between the input and measured course angle obtained from the sensors. Then, the error signal will be the input for the controller block (adaptive controller) to obtain the suitable control action.

The system identification block will use the control action results from the controller block and the measured course angle as input and then begin estimating the system's parameters (Eq. 23) in real time; these parameters will be used to generate the open-loop transfer function of the kite. These parameters will then be sent to the controller block for use in designing the adaptive control.

Figure 6Block diagram of the adaptive control system.


This algorithm has the advantage of quickly obtaining system parameter values and has no singularity for any initial conditions, even if they are zeros. The LSE uses the motor action us and the sensor data for the course angle to update its parameters. The open loop discrete transfer function for the kite can be approximated as shown in Eq. (17):


Both the first and second order polynomials would be sufficient to identify the system parameters because the sample time is short, which helps to overcome the error from discretization.

A(z−1) and B(z−1) are considered as second order polynomial equations in the discrete domain. Thus, the parameters a1, a2, b1, and b2 are the non-dimensional independent variables of the polynomial equations, and they varying with time due to the change that occurs in the system governing equations. After rewriting A(z−1) and B(z−1) in the discrete form, they are as given in Eqs. (18) and (19):


After substituting Eqs. (18) and (19) into Eq. (17):


Additionally, we can rewrite Eq. (20) in the difference form as shown in Eq. (21):


Thus, the open loop model can be rewritten as shown in Eq. (22):




Thus, the MSE can be written as follows:


The objective of using the system identification is to obtain the values of θ that can minimize the mean square error. From the derivation, the values of θ can be easily calculated using Eq. (26):




By rewriting Eq. (12), we can find the following Eq. (28):


After substituting Eq. (28) into Eq. (26):


Thus, the unknown parameters a1, a2, b1 and b2 should be calculated in every time step. To obtain these parameters, it the following calculation steps must be conducted:

  1. Initialize matrix Pk−1 with large positive numbers on the leading diagonal and zeros on the off-diagonal elements. The vector θk−1 must be populated with initial parameters close to the model.

  2. Xk is updated every for sample time by the system outputs and inputs as previously defined.

  3. Calculate θk and Pk from Eqs. (28) and (29).

  4. Update θk−1 and Pk−1 with θk and Pk.

  5. Repeat the loop for each time step.

Using LSE is a good choice to identify the kite parameters compared with other system identification algorithms. Since it is a non-iterative technique with low computational costs, it has no singularity in the solution, even if the initial conditions are zeros, due to its simple implementation. The results from the LSE are used to predict the behavior of the system (open loop transfer function), and it was used to design the fuzzy control (Sect. 4).

Figure 7Fuzzy logic control system.


4 Fuzzy control
Back to toptop

In this section, the control strategy is detailed using Mamdani's fuzzy algorithm (Amindoust et al.2012; Burns2001). Fuzzy logic control (Deif et al.2014; Zadeh1968, 1978) is a digital control technique that uses the multivalued logic output to obtain the solution. It was developed for the systems that do not have accurate mathematical models. Thus, choosing the parameters of the fuzzy controller depends on the experience and the common sense of the designer to overcome the inaccuracy of the mathematical model (Burns2001).

The computations of fuzzy control were calculated as hardware-in-the-loop (HIL) (Bondoky et al.2017). This means that sensors sent data to the ground station using wireless communications. Then, the calculations were performed using computers on the ground based on the results of the system identification algorithm to choose the suitable control action. Finally, the control action was sent again to the motor to steer the kite.

The kite system consists of an inflatable wing, and its shape changes with time due to the force distribution on its surface. Thus, the mathematical model of the kite cannot be fixed during the whole flight. Moreover, the wind speed varies during the flight, and there is no accurate way to assess it in real time to calculate the force distribution on the kite's surface (van der Vlugt et al.2013).

Due to all these difficulties, the need for robust control such as fuzzy control to stabilize the kite is very important. Therefore, choosing the fuzzy logic controller is a good choice to satisfy these requirements because it is strong in stabilizing nonlinear systems and can address systems with inaccurate mathematical models. However, the fuzzy logic controller is difficult to implement on small-sized commercial microcontrollers since it requires many calculations that are difficult to implement on microcontrollers fixed on the kite's surface. Therefore, sending the sensor data to the ground station by wireless communications and performing the calculation using a ground station is a good choice to obtain the control action. This step causes a delay due to the transmission time, which is considered in the model and calculation.

Mamdani's model consists of three stages to stabilize the kite system, including fuzzification (Sect. 4.1), inference (Sect. 4.2) and defuzzification (Sect. 4.3), as shown in Fig. 7. The mathematical model used for the simulation was built in TU Delft and given in Fechner (2016). It details the kite model and the flight path controller using classical control us. Based on the error signal e, the input of the fuzzy model can be estimated. Then, the number of memberships will be chosen, and the width of each membership will be changed to tune the system to obtain the suitable control action. The sample time of the simulation plays a very important role in the stability of the kite. Therefore, it should be chosen based on the hardware used and the speed of calculation in the ground station. In our simulation, the sample time was 0.02 s.

Figure 8The main membership of fuzzification and defuzzification. (a) Three set fuzzy input window for error e. (b) Three set fuzzy output window for control signal u.


Figure 9(a) Time history of the values a1 and a1. (b) Time history of the values b1 and b2.


Figure 10(a) Simulation results for the azimuth and elevation angles using classical control. (b) Simulation results for the azimuth and elevation angles using SI with fuzzy control.


Figure 11(a) Time history of the measured and estimated course angles. (b) Time history for the wind speed during the first flight condition.


Figure 12(a) Time history of the values a1 and a2. (b) Time history of the values b1 and b2.


Figure 13(a) Simulation results for the azimuth and elevation angles using classical control. (b) Simulation results for the azimuth and elevation angles using SI with fuzzy control.


Figure 14(a) Time history of the measured and estimated course angles. (b) Time history for the wind speed during the second flight condition.


4.1 Fuzzification

The process arranges the inputs of the fuzzy logic control to obtain the fuzzy set membership values in the various input universes of discourse (Burns2001; Yen and Langari1999). To construct the fuzzification stage, one must choose the number of inputs, the size of the universes of discourse and the number and shape of the fuzzy sets. The fuzzy logic control that acts as a proportional controller aims to minimize the error e. Therefore, the range of expected values of error e should be known during the estimation of the size of the universes of discourse. In our case, the range of the error e is 5 to 5 rad, as shown in Eq. (30)3. The last step in designing the fuzzification is to choose the number and shape of fuzzy sets in a particular universe of discourse. Choosing them affects the accuracy of the control action, but it reduces the real time computational complexity. In the simulation, three sets were selected to satisfy the requirements within the given limits, as given in Fig. 8a and b. There was an optimization between the number of sets and the response's accuracy. Therefore, choosing three sets satisfies the stability requirements.


4.2 Rule base and interface

This is the second stage of the fuzzy logic algorithm. It consists of “if-statements” (Burns2001) and follows conditional linguistic rules. For example, if e is Ne, then u is Nu.

This style of fuzzy logic control is called the Mamdani rule. Choosing the rule base of the fuzzy logic control depends on the designer's experience with the system. The designer of the rule bases chooses them based on the mathematical model of the system. From the experience of the kite system, the rule bases are chosen as follows:

if e is Ne, then u is Nu,if e is Ze, then u is Zu.


if e is Pe, then u is Pu.

Now the system is ready for the last stage of the fuzzy logic control to obtain the control action.

4.3 Defuzzification

This is the last stage of the fuzzy logic control. It is the process of converting the set of inferred fuzzy signals chosen from the fuzzy output, as mentioned in the rule base (Sect. 4.2), into the non-fuzzy (crisp) control action (Burns2001; Deif et al.2014), as shown in Fig. 8a. The most known defuzzification technique is the center of area method. In this case, the control action can be easily obtained by calculating the sum of the first moments of the area divided by the sum of the area. The Matlab fuzzy toolbox is used to simplify the work and save programming time.

5 Simulation results
Back to toptop

This section shows the result of the system identification (Sect. 3) and the fuzzy control (Sect. 4). The system identification model gives us the definition and description of the kite. The parameters are updated in real time and help us gain the experience needed to design the controller. Fuzzy control was simulated, and the three sets were chosen for the error e and control action us. The following simulated results were achieved using the model developed in TU Delft (Fechner2016). This model gives a detailed description of the kite using the simple model algorithm, and the flight path of the kite makes a figure eight pattern.

Two flight conditions were tested in this simulation. The difference between the two flight conditions is the wind speed. The wind speed is modeled as shown in Figs. 11b and 14b. The difference between the two models is that the frequency of the wind in Fig. 14b is much higher than that in Fig. 11b. Gaussian noise was added to the sensor data (elevation, azimuth, and apparent wind speed).

5.1 Flight condition I

In the first flight condition, the kite model was affected by the wind speed given in Fig. 11b. Thus, the kite's parameters a1, a2, b1 and b2 could be calculated from Sect. 3, as given in Fig. 9a and b. After obtaining the kite's parameters a1, a2, b1 and b2, we can easily compare the course angle of the classical model and the estimated model, as shown in Fig. 11a. The comparison between the figure eight motion is given in Fig. 10a for the classical control and Fig. 10b for the fuzzy control.

As mentioned in Sect. 4, the fuzzy control will stabilize the kite based on the error signal that comes from the sensors and the input. Thus, it takes the suitable control action to satisfy the requirements.

5.2 Flight condition II

In the second flight condition, the wind speed was changed as given in Fig. 14b. The wind speed is modeled to be more aggressive for the kite's controller. This is achieved by increasing the frequency of the wind speed in the first flight test (Sect. 5.1) compared to the second flight test (Sect. 5.2). After applying the system identification algorithm given in Sect. 3, the values of a1, a2, b1 and b2 will be updated as shown in Figs. 12a and b. The figure eight motion given in Fig. 13b is calculated using the simple model and the classical controller. The figure eight concept is satisfied, but the elevation angle is reduced toward the instable region. Thus, using the classical control cannot satisfy the condition of stability in different wind conditions. However, Fig. 13a is calculated using the fuzzy control, which can handle the strong changes in the wind speed in addition to the noise that comes from the sensors using the same algorithms without any change in the code. The comparison between the course angles measured and estimated using the system identification are given in Fig. 14a. Even though the wind speed was changed, the system identification can predict the course angle to become almost identical to that measured from the sensors.

6 Conclusions
Back to toptop

This paper presented a technique to identify the kite's parameters and controller that would be robust enough to stabilize the kite in real time when other classical controls cannot satisfy this. Using the least square estimation algorithm for system identification helps to present a complete definition for the kite's parameters in real time. The variation of the kite's parameters comes from the changes in wind speed and direction, the change in the aerodynamic coefficients, and the change in the kite's shape (as it consists of an inflatable wing).

The kite model is mainly non-linear. Therefore, the choice of fuzzy control is suitable for such systems. Additionally, the computations of fuzzy control were calculated as HIL. When deriving the system identification equations, the model was considered as a discrete linear model with a short sample time. The results of the system identification were compared with the classical model for different wind speeds, as shown in Figs. 914, which show the differences between the classical and fuzzy controls in stabilizing the kite.

Data availability
Back to toptop
Data availability. 

The wind field data and the model implementation code could be made available in the framework of a cooperation agreement. Please contact the corresponding author for further information.

Appendix A: The angular velocity ω of the kite motion
Back to toptop

The kite is moving in two directions (spherical coordinates). ϕ is the rotation around the Zw axis, and β is moving in the direction of Xse, as shown in Fig. 2. They can be as given in Eq. (A1):


where zw is given in Eq. (A2).


From Eq. (A1) and Eq. (A2), we obtain the following:


The angular velocity ω of the kite point with respect to the origin O is derived in Eq. (A4) from the rate of change of the elevation and azimuth angles.


Another simplified equation is given as a function of the elevation angle β in Eq. (A5). This equation is derived from an experimental test, and the relationship between the angular speed and elevation angle is assumed to be linear within a specified range for the elevation angle β.


This equation assumes that the angular speed reaches the constant value ω22 at an elevation angle of 22 and an angular speed of zero at β=βmax=73. This angle is the elevation angle of the Hydra kite while parked at a 300m tether length for an approximate wind speed of 6m s−1. From the experimental test for the Hydra kite used in the simulation, we obtained the values of βmax=73, ω22=0.25/s and βmin=22 (Fechner2016).

Appendix B: Turn rate law
Back to toptop

The law states that the turn rate of the kite about its yaw axis is a function of the steering deflection of the actuator us, the kite's dependent constants co, c1, c2, the heading angle ψ, the elevation angle β and the apparent wind speed va (Erhard and Strauch2013). The turn rate law is used to calculate the heading angle of the kite as shown in Eq. (B1). After obtaining the rate of the heading angle, the integration can easily obtain the value of the heading of the kite.

The steering value of the motor us is the control action responsible for steering the kite. It is the change of the length of the tether connected between the kite and the KCU. The control action us is calculated based on the calculations of the FPP and FPC.


The algorithm is an iterative technique to obtain the empirical relationship between the kite parameters c1 and c2 and the turn rate of the kite ψ˙. The characteristics of the kite (such as its size and weight) are considered in the parameters c1 and c2, which estimate the main behavior of the kite.

Figure B1Comparison between the estimated turn rate and the measured turn rate for the 25 m2 kite surface area (Jehle and Schmehl2014b).


An empirical relationship is achieved in (Jehle and Schmehl2014b) for other projects, as shown in Fig. B1, for the 25m2 kite surface area, but it is not used in this thesis. From this experiment, the authors obtained the parameters of the kite as c1=0.153 and c2=0.25. The parameters used in the simulation to substitute in the turn rate law in this thesis are given in Table B1. The Hydra kite with a 10.18 m2 projected surface area was used in the simulation, and the experiment was implemented to obtain its parameters (Fechner2016).

Table B1Fitted turn rate law parameters of the Hydra kite (Fechner2016).

Download Print Version | Download XLSX

Appendix C: Nomenclature
Back to toptop
Y(z−1) Estimated course angle obtained from rad
the system identification in Z domain
G(z−1) Open loop transfer function of
the model in Z domain
U(z−1) System input which is defined as us
in Z domain
k Summing counter
z−1 Backward shift operator in Z domain
xw, yw, zw Wind reference frame of the kite
xse, yse, zse Unit sphere reference frame
xk, yk, zk Body fixed reference frame of the kite
xk, yk, zk Projection of the body fixed reference
frame on the unit sphere
hfig Angular height rad
us Steering action
c0 Steering offset of the turn rate law
c1 Steering sensitivity coefficient of
the turn rate law
c2 Gravity sensitivity coefficient of
the turn rate law
vw,ref Horizontal wind velocity at the m s−1
reference height
yr Estimated course angle obtained m
from system identification
ym Measured course angle obtained m
from the sensor
χset Set value for the course angle rad
μ Membership function (the range is
from 0 to 1)
ϱ Turn radius of the trajectory of the rad
kite point
δmin⁡ Minimal, angular attractor point rad
ωfig Angular width rad s−1
ω22 Angular speed at elevation angle 22 rad s−1
ω Norm of the angular velocity of the kite rad s−1
on the unit sphere
βmin⁡ Elevation angle at angular speed ω22 rad
βmax⁡ Elevation angle at zero angular rad
β Elevation angle rad
ϕ Azimuth angle rad
χ Course angle rad
ψ Heading angle rad
Pk,setSE Position of the kite in angular rad
coordinates (ϕ, β)
Va Apparent wind speed m s−1
Pk Covariance matrix of the estimated
Ym Measured course angle obtained from rad
the sensor
θ^ Last vector estimated using the LSE
Competing interests
Back to toptop
Competing interests. 

All authors declare that there is no support from any organization for the submitted work. There are have been no financial relationships with any organizations that might have an interest in the submitted work in the previous three years. There are no other relationships or activities that could have influenced the submitted work.

Back to toptop

Roland Schmehl was supported by the H2020-ITN project AWESCO funded by the European Union's Horizon 2020 research and innovation program under the Marie Skłodowska-Curie grant agreement no. 642682.

Edited by: Joachim Peinke
Reviewed by: two anonymous referees

Back to toptop

Ahmed, M.: Optimisation de contrôle commande des systèmes de génération d'électricité à cycle de relaxation, PhD Thesis, Université de Grenoble, 2014. a, b

Ahmed, M., Hably, A., and Bacha, S.: Power maximization of a closed-orbit kite generator system, in: Decision and Control and European Control Conference (CDC-ECC), 2011 50th IEEE Conference on, 7717–7722, IEEE, 2011. a, b

Amindoust, A., Ahmed, S., Saghafinia, A., and Bahreininejad, A.: Sustainable supplier selection: A ranking model based on fuzzy inference system, Appl. Soft Comput., 12, 1668–1677, 2012. a

Archer, C. L., Delle Monache, L., and Rife, D. L.: Airborne wind energy: Optimal locations and variability, Renew. Energ., 64, 180–186, 2014. a

Baayen, J. H. and Ockels, W. J.: Tracking control with adaption of kites, IET Control Theory A, 6, 182–191, 2012. a, b, c

Bobál, V., Böhm, J., Fessl, J., and Machácek, J.: Digital Self-tuning Controllers: Algorithms, Implementation and Applications, Springer Science & Business Media, Berlin, 2006. a

Bondoky, K., Janschek, K., Rathke, A., and Schwarz, S.: Analysis of Hardware-in-the-Loop setup without artificial compliance for docking contact dynamics of satellites, in: AIAA SPACE and Astronautics Forum and Exposition, p. 5183, 2017. a

Bosch, A., Schmehl, R., Tiso, P., and Rixen, D.: Dynamic nonlinear aeroelastic model of a kite for power generation, J. Guid. Control Dynam., 37, 1426–1436, 2014. a

Burns, R.: Advanced control engineering, Butterworth-Heinemann, UK, 2001. a, b, c, d, e

Canale, M., Fagiano, L., and Milanese, M.: High altitude wind energy generation using controlled power kites, IEEE T. Contr. Syst. T., 18, 279–293, 2010. a, b

Coleman, J., Ahmad, H., Pican, E., and Toal, D.: Non-reversing generators in a novel design for pumping mode airbornewind energy farm, in: Airborne Wind Energy, edited by: Ahrens, U., Diehl, M., and Schmehl, R., Springer, Berlin/Heidelberg, Germany, 587–597, 2013. a

Costello, S., François, G., and Bonvin, D.: Real-time optimization for kites, IFAC Proc. Vol., 46, 64–69, 2013. a

Deif, T. N., Kassem, A. H., and El Baioumi, G. M.: Modeling, Robustness, and Attitude Stabilization of Indoor Quad Rotor Using Fuzzy Logic Control, Int. Rev. Aerospace Engin., 7, 197–201,, 2014. a, b

Diehl, M.: Real-time optimization for large scale nonlinear processes, PhD Thesis, Heidelberg University, Germany, 2001. a, b

Diehl, M., Uslu, I., Findeisen, R., Schwarzkopf, S., Allgöwer, F., Bock, H. G., Bürner, T., Gilles, E. D., Kienle, A., Schlöder, J. P., and Stein, E.,: Real-time optimization for large scale processes: Nonlinear model predictive control of a high purity distillation column, in: Online Optimization of Large Scale Systems, Springer Verlag, New York, 363–383, 2001. a, b

Dutton, K., Thompson, S., and Barraclough, B.: The art of control engineering, Addison-Wesley Longman Publishing Co., Inc., Essex, UK, 1997. a

Erhard, M. and Strauch, H.: Control of towing kites for seagoing vessels, IEEE T. Contr. Syst. T., 21, 1629–1640, 2013. a, b, c, d

Fagiano, L.: Control of tethered airfoils for high–altitude wind energy generation, PhD Thesis, Politecnico di Torino, Italy, 2009. a, b

Fagiano, L. and Milanese, M.: Airborne wind energy: an overview, in: 2012 American Control Conference (ACC), IEEE, 3132–3143, 2012. a, b

Fagiano, L., Milanese, M., and Piga, D.: Optimization of airborne wind energy generators, Int. J. Robust Nonlin., 22, 2055–2083, 2012. a

Fagiano, L., Zgraggen, A. U., Morari, M., and Khammash, M.: Automatic crosswind flight of tethered wings for airborne wind energy: Modeling, control design, and experimental results, IEEE T. Contr. Syst. T., 22, 1433–1447, 2014. a, b, c

Fechner, U.: A Methodology for the Design of Kite-Power Control Systems, PhD Thesis, Delft University of Technology, the Netherlands, 2016. a, b, c, d, e, f, g, h, i, j

Fechner, U. and Schmehl, R.: Design of a distributed kite power control system, in: Control Applications (CCA), 2012 IEEE International Conference on, IEEE, 800–805, 2012. a, b

Fechner, U. and Schmehl, R.: Flight Path Planning in a Turbulent Wind Environment, in: Airborne Wind Energy – Advances in Technology Development and Research, edited by: Schmehl, R., Springer, Berlin/Heidelberg, Germany, 361–390, 2018. a, b, c

Fechner, U., van der Vlugt, R., Schreuder, E., and Schmehl, R.: Dynamic Model of a Pumping Kite Power System, Renew. Energ., 83, 705–716,, 2015. a, b, c, d

Furey, A. D. J.: Evolutionary Robotics in High Altitude Wind Energy Applications, PhD Thesis, University of Sussex, UK, 2012. a, b, c, d

Gohl, F. and Luchsinger, R. H.: Simulation based wing design for kite power, in: Airborne Wind Energy, edited by: Ahrens, U., Diehl, M., and Schmehl, R., Springer, Berlin/Heidelberg, Germany, 325–338, 2013. a

Goudarzi, M., Stonis, M., and Behrens, B.-A.: Development of Lightweight Designs for the Production of Wind Turbine Towers, in: Enabling Manufacturing Competitiveness and Economic Sustainability, Springer, Munich, Germany, 443–448, 2014. a

Houska, B. and Diehl, M.: Optimal control for power generating kites, in: Control Conference (ECC), 2007 European, IEEE, 3560–3567, 2007. a

Ilzhöfer, A., Houska, B., and Diehl, M.: Nonlinear MPC of kites under varying wind conditions for a new class of large-scale wind power generators, Int. J. Robust Nonlin., 17, 1590–1599, 2007. a, b

Jehle, C. and Schmehl, R.: Tracking control on the unit sphere applied to traction kites for power generation, AIAA J. Guidance Control Dynamics, 37, 1211–1222, 2014a. a, b, c

Jehle, C. and Schmehl, R.: Applied tracking control for kite power systems, J. Guid. Control Dynam., 37, 1211–1222, 2014b. a, b, c, d, e

Ockels, W. J.: Laddermill, a novel concept to exploit the energy in the airspace, Aircraft Design, 4, 81–97, 2001. a

Plackett, R. L.: Some theorems in least squares, Biometrika, 37, 149–157, 1950. a

Reedy, J. and Lunzman, S.: Model based design accelerates the development of mechanical locomotive controls, Tech. rep., SAE Technical Paper, 2010. a

Thorpe, D.: Modelling and control of tethered kite systems for wind energy extraction, PhD Thesis, RMIT University, Australia, 2011. a, b, c, d

van der Vlugt, R., Peschel, J., and Schmehl, R.: Design and experimental characterization of a pumping kite power system, in: Airborne Wind Energy, edited by: Ahrens, U., Diehl, M., and Schmehl, R., Springer, Berlin/Heidelberg, Germany, 403–425, 2013. a, b, c, d

Viré, A.: How to float a wind turbine, Rev. Environ. Sci. Bio., 11, 223–226, 2012.  a

Viré, A., Xiang, J., Milthaler, F., Farrell, P. E., Piggott, M. D., Latham, J.-P., Pavlidis, D., and Pain, C. C.: Modelling of fluid–solid interactions using an adaptive mesh fluid model coupled with a combined finite–discrete element model, Ocean Dynam., 62, 1487–1501,, 2012. a

Williams, P., Lansdorp, B., and Ockels, W.: Modeling and control of a kite on a variable length flexible inelastic tether, in: AIAA Guidance, navigation and control conference, 2007. a, b, c

Williams, P., Lansdorp, B., and Ockesl, W.: Optimal crosswind towing and power generation with tethered kites, J. Guid. Control Dynam., 31, 81–93, 2008. a

Yen, J. and Langari, R.: Fuzzy logic: intelligence, control, and information, vol. 1, Prentice Hall, Upper Saddle River, NJ, 1999. a

Zadeh, L. A.: Probability measures of fuzzy events, J. Math. Anal. Appl., 23, 421–427, 1968. a

Zadeh, L. A.: Fuzzy sets as a basis for a theory of possibility, Fuzzy Set. Syst., 1, 3–28, 1978. a

Zgraggen, A. U.: Automatic Power Cycles for Airborne Wind Energy Generators, PhD Thesis, Diss., Eidgenössische Technische Hochschule ETH Zürich, Zürich, Nr. 22277, 2014. a, b, c, d


This offset is needed to compensate for the time delay between the command to stop turning and the kite actually stopping. This value depends mainly on the rotational inertia of the kite but also on the speed of the steering actuators


Simulink is commercial software developed by MathWorks. It is a graphical programming tool for different aspects of engineering. However, it is used here to represent the system's model and design the controller for a fixed sample time. It mainly aims to save time for the user by replacing long code with simple blocks to achieve the same requirements. Simulink is widely used in automatic control and digital signal processing (Reedy and Lunzman2010)


The range of the error was estimated based on the error of the classical control in Sect. 2.3. Moreover, the tuning for the memberships' shape was estimated from trial and error to obtain a reasonable response for the system.

Publications Copernicus