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

. 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. Signiﬁcant 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 deﬂections throughout the ﬂight, system identiﬁcation is required. Consequently, the kite governing equations can be accurately described. In this work, a simple model was presented for a tether with a ﬁxed 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 identiﬁcation was compared to the simple model at various wind speeds,


Introduction
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 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 (Ockels, 2001). 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.
Many researchers have studied the control of the kite system (Canale et al., 2010;Jehle and Schmehl, 2014b;Ilzhöfer et al., 2007;Baayen and Ockels, 2012;Williams et al., 2008;Houska and Diehl, 2007;Costello et al., 2013;Diehl et al., 2001;Fagiano et al., 2014;Erhard and Strauch, 2013). 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 (Diehl, 2001;Ahmed, 2014;Fagiano, 2009;Furey, 2012;Thorpe, 2011;Zgraggen, 2014). 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 (Thorpe, 2011;Zgraggen, 2014;Fechner et al., 2015;Williams et al., 2007). Other researches discretized the kite into 10 points, which increased the solution accuracy, although the tether was not discretized (Furey, 2012).
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 Strauch, 2013). The average system model overcomes this validation problem since it gives a suitable derivation for different types of controllers (Fechner and Schmehl, 2012).
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 differ-ent wind conditions. Moreover, a global controller that can work under all conditions cannot be designed effectively for the commercial products (Fechner and Schmehl, 2012;Jehle and Schmehl, 2014a;Baayen and Ockels, 2012). 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;Jehle and Schmehl, 2014b;Ilzhöfer et al., 2007).
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 Schmehl, 2014a). 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 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).

Mathematical model
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 . 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 Luchsinger, 2013). 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 fluidstructure interaction method to study the aero-elasticity of the kite since the kite consists of an inflatable wing (Viré, 2012;Viré et al., 2012;Bosch et al., 2014). 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.
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 sta- Figure 2. Small 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 (Fechner, 2016;Fechner and Schmehl, 2018). bilize the kite using the PID controller. This mathematical model was derived based on the turn rate law (Erhard and Strauch, 2013).

Kinematic framework
As mentioned in the introduction, there are different concepts to derive the mathematical model of the kite (Diehl, 2001;Ahmed, 2014;Fagiano, 2009;Furey, 2012;Thorpe, 2011;Zgraggen, 2014). Some of these models considered the kite as a point mass model, and other researchers just considered the kite as a rigid body (Thorpe, 2011;Zgraggen, 2014;Fechner et al., 2015;Williams et al., 2007). These models are not totally accurate compared to the 10 point mass model (Furey, 2012). 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 x w 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 l t , 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 x k , y k , and z k show the body fixed reference frame of the kite. The z k axis goes downward from the position of the kite to the connecting point with the tether. The y k axis is the vector from the left to the right tip of the kite. The x k axis is the orthogonal of y k and z k . The heading angle ψ is the angle between the axes x k 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 Ockels, 2012), 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 ω = β2 +φ 2 sin 2 β (1) 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 u s , the apparent wind speed v a , 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.

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 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   First turn left, then steer toward P 3 , then turn right and finally steer toward P 4 (Fechner, 2016;Fechner and Schmehl, 2018).
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 it 1 .
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 P SE k, set and set value of the turn rate lawψ set are considered as the output.
The FPP algorithm needs to obtain the values of P 3 , P 4 , andψ turn as a function of the angular width ω fig , the angular height h fig , and the minimum attractor point distance δ min .
As shown in Fig. 5, the tangential velocity of the kite V k,τ is given in Eq. (4):   (Fechner, 2016). Figure 5. Schematic to show the turn rate law of the kite as a function of the angular velocity and turn radius (Fechner, 2016;Fechner and Schmehl, 2018).
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 P 4 can be calculated from Eq. (10): After solving for the points P 3 and P 4 , we can obtain the following: P 4 = φ sw + δ min 1 1 + k 2 , β sw + δ min k Wind Energ. Sci., 3, 275-291, 2018 www.wind-energ-sci.net/3/275/2018/

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 u d as inputs and the steering of the motor u s 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 u s .
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 u s . 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 Simulink 2 .

System identification using least square estimation
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) (Plackett, 1950;Bobál et al., 2006;Dutton et al., 1997) 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, Y m is the measured data obtained from the sensor, and Y r 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 2 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 Lunzman, 2010) 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 Schmehl, 2014b). 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.
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 u s 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 a 1 , a 2 , b 1 , and b 2 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): where: 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): where, By rewriting Eq. (12), we can find the following Eq. (28): After substituting Eq. (28) into Eq. (26): Thus, the unknown parameters a 1 , a 2 , b 1 and b 2 should be calculated in every time step. To obtain these parameters, it the following calculation steps must be conducted: 1. Initialize matrix P k−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. X k is updated every for sample time by the system outputs and inputs as previously defined.
4. Update θ k−1 and P k−1 with θ k and P k .

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).

Fuzzy control
In this section, the control strategy is detailed using Mamdani's fuzzy algorithm (Burns, 2001;Amindoust et al., 2012). Fuzzy logic control (Zadeh, 1968(Zadeh, , 1978Deif et al., 2014) 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 (Burns, 2001). The computations of fuzzy control were calculated as hardware-in-the-loop (HIL) (Bondoky et al., 2017). This Wind Energ. Sci., 3, 275-291, 2018 www.wind-energ-sci.net/3/275/2018/ 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 u s . 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.

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 (Burns, 2001;Yen and Langari, 1999). 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.

Rule base and interface
This is the second stage of the fuzzy logic algorithm. It consists of "if-statements" (Burns, 2001) and follows conditional linguistic rules. For example, if e is N e , then u is N u . 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: Additionally, if e is P e , then u is P u .
Now the system is ready for the last stage of the fuzzy logic control to obtain the control action.

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 (Deif et al., 2014;Burns, 2001), 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.

Simulation results
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 u s . The following simulated results were achieved using the model developed in TU Delft (Fechner, 2016). This model gives a detailed description of the kite us- ing 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).

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 a 1 , a 2 , b 1 and b 2 could be calculated from Sect. 3, as given in Fig. 9a and b. After obtaining the kite's parameters a 1 , a 2 , b 1 and b 2 , 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.

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 a 1 , a 2 , b 1 and b 2 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 Wind Energ. Sci., 3, 275-291, 2018 www.wind-energ-sci.net/3/275/2018/ 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.

Conclusions
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. 9-14, which show the differences between the classical and fuzzy controls in stabilizing the kite. 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.