Renewable Energy 87 (2016) 298e306 Contents lists available at ScienceDirect Renewable Energy journal homepage: www.elsevier.com/locate/renene Wind-turbine collective-pitch control via a fuzzy predictive algorithm Ahmed Lasheen*, Abdel Latif Elshafei Electric Power and Machines Department, Faculty of Engineering, Cairo University, Giza, Egypt a r t i c l e i n f o a b s t r a c t Article history: Received 22 May 2015 Received in revised form 23 September 2015 Accepted 19 October 2015 Available online xxx This paper proposes a new fuzzy predictive algorithm for collective pitch control of large wind turbines. Collective pitch controllers operate in region three to harvest the rated power and maintain the rated speed. The wind turbine model is represented by a TakagieSugeno (TeS) fuzzy model. The number of T eS fuzzy rules is reduced based on a gap e metric criterion. A model predictive controller is designed based on the fuzzy model taking into consideration the pitch actuator constraints. The proposed controller is coupled with conventional PI controllers for individual pitch control so as to minimize the moments on the turbine blades. A Kalman observer is designed to estimate the immeasurable states. The performance of the proposed fuzzy-predictive controller is compared to a gain schedule PI controller and a mixed H2/H∞ controller. Simulation results, based on a typical 5-MW offshore wind turbine, demonstrate the superiority of the proposed fuzzy-predictive controller. © 2015 Elsevier Ltd. All rights reserved. Keywords: Wind turbines Collective pitch control Predictive control TeS fuzzy models 1. Introduction The installed wind-energy capacity reached 336 GW in the mid of 2014 [1]. The expected annual growth rate in 2014 is 13.5%. It was 12.8% in 2013. The steady growth of the installed wind power is due to its economic and environmental advantages. Control systems can play a pivotal role in enhancing the economic performance of the wind energy systems [2]. This can be achieved by increasing power extraction, alleviating mechanical stresses, and improving power quality. The operation modes of a wind turbine depend on wind speeds. Typically, there are three main regions of operations. Region 1 is defined by wind speeds up to the cut-in value. In this region, the wind is utilized merely to accelerate the rotor for startup. Wind speeds higher than the cut in value and lower than the rated value define Region 2. In this region, the turbine should operate to extract the maximum power [3]. Wind speeds higher than the rated value and up to the cut-out value specify Region 3. Typically, wind turbines are controlled using decentralized controllers to take care of the operations in regions 2 and 3. This study focuses on Region 3. In Region 3, wind turbines are usually subject to undesirable high structural loading. As a result, the control objectives are to reap rated power, maintain rated speed, and alleviate the mechanical * Corresponding author. E-mail addresses: [email protected] (A. Lasheen), [email protected]. edu.eg (A.L. Elshafei). http://dx.doi.org/10.1016/j.renene.2015.10.030 0960-1481/© 2015 Elsevier Ltd. All rights reserved. loads. Designing a pitch controller, taking into consideration the restrictions on the pitch angle limits and rates of change, is our target. The pitch angle of a wind turbine is controlled individually and collectively. The target of collective pitch control (CPC) is to regulate the generator power at the rated value by maintaining the rated generator speed. On the other hand, individual pitch control (IPC) aims at attenuating the flap-wise moments on the blades [4]. Many researchers have focused on controlling variable-speed variable-pitch wind turbines. In Ref. [5], an adaptive neural network controller is introduced. The objective is to control all operating regions of the turbine. In Ref. [6], the pitch angle is controlled utilizing the artificial neural network. The operation of the turbine is observed by utilizing the back propagation learning algorithm. In Ref. [7], a CPC is designed based on mixed H2/H∞ control with pole placement. In Ref. [8], the objective of the pitch control is to achieve different load reduction criteria. In Ref. [9], a linear quadratic Gaussian controller is proposed. Both CPC and IPC are designed based on a single linear model. The main disadvantage in Refs. [5e9] is that the proposed algorithms do not take into account constraints on the pitch angles. This may lead to the wind up phenomenon and significant degradation of performance if the control signal hits the saturation limits. In Refs. [10e12], different IPC strategies are discussed to reduce the flicker emission on the turbine blades. In Ref. [13], a non-linear pitch control strategy is proposed to damp the tower oscillations, regulate the rotor speed, and compensate the phase-lag introduced by the pitch actuator. In Ref. [14], pitch faults, due to pitch A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 asymmetry and pitch implausibility, are analyzed. In Refs. [15,16], the effects of short-duration wind variations on the output power of a wind turbine, under pitch control, are studied. Model Predictive Control (MPC) is a control algorithm that depends on a system's model for predicting the future output over a selected horizon. At every sampling instant, an optimization problem is solved on-line over the prediction horizon to get the control action. Several authors have used MPC to implement different wind turbine controllers. In Refs. [17e19], an MPC is used to extract the maximum power from the wind turbine (region 2). In Ref. [20], a multiple MPC strategy is represented for the full operating regions of the turbine. The generator torque and pitch angle are controlled simultaneously to maximize energy capturing, smooth the generator power, and reduce the transient loads. The main disadvantage in Ref. [20] is the use of a large number of models which increases the computational complexity of the algorithm. Abrupt switching between models could result in sluggish transient responses. In this paper, a fuzzy model predictive algorithm for CPC is investigated. The fuzzy rule-base is reduced by using a gap metric criterion. The fuzzy model is employed to construct the predictor. Fuzzy models represent nonlinear mappings. So, they can effectively represent the nonlinearities of wind turbine models. MPC is used to obtain the CPC action taking into account the allowed pitch-actuator limits and rates of change. There are four main contributions in this research. First, it introduces a gap metric measure as a tool to determine the number of fuzzy rules that adequately model a system. Second, it utilizes a fuzzy model to mimic the nonlinear behavior of wind turbines in region 3. The resulting model has a simple form amenable to predict the future response. Third, the use of a predictive control algorithm allows us to include the input constraints explicitly while deducing the optimal control action. Explicit inclusion of the constraints is a fundamental difference in predictive control design compared to traditional PI controllers. Fourth, the proposed controller significantly reduces the mechanical stresses applied to the wind turbine. This has a definite economic benefit as it reduces the maintenance cost. This paper is organized as follows. In Section 2, the wind model is discussed. The procedure to emulate the nonlinear behavior of a wind turbine using a fuzzy model is proposed. A gap metric criterion is applied to these linearized models to determine which of them should be included. Furthermore, the procedure to write a simplified fuzzy model for design purposes is discussed. The design of MPC for collective pitch control is discussed in Section 3. Simulation results, comparing the proposed controller to different controllers, are depicted in Section 4. Conclusions are derived in Section 5. 2. Developing the fuzzy model A large wind turbine can be modeled by up to 24 degrees of Table 1 The degrees of freedom of a 3-blade horizontal-axis wind turbine. Element Number of DOF Description Blades 2 1 1 1 1 1 1 2 2 3 3 Flap modes per blade Edge mode per blade Yaw bearing Generator azimuth Shaft torsion Rotor-furl hinge between nacelle and rotor Tail-furl hinge between nacelle and tail Fore-aft modes Side-to-side modes Translational modes (surge, sway, heave) Rotational modes (roll, pitch, yaw) Nacelle Derive-train Furl Tower Platform 299 freedom (DOF). Table 1 summarizes the main degrees of freedom of a 3-blade horizontal-axis wind turbine [4]. Detailed wind-turbine models are available via specialized software packages like HAWC2 [21], FAST [4], and Cp-Lambda [22]. FAST (Fatigue, Aerodynamics, Structures and Turbulence) is employed in this work to simulate the operation of a 5-MW, three-blade, variable-speed variable-pitch offshore wind turbine. FAST is developed by the US National Renewable Energy Laboratory. It is provided with a tuned gain schedule PI controller for CPC. The gain schedule PI controller supplied with FAST is considered the baseline controller and used for comparisons with the proposed CPC controller. The 5-MW wind turbine specifications are stated in Ref. [4]. For a CPC design, the enabled DOFs are the generator and the drivetrain. The DOFs are considered as the dominant dynamics of the turbine [4]. Although our control design is based on a reduced order model that represents 2 DOF, the resulting controller will be tested based on the full order nonlinear model. The states of the design model are the perturbations in the drivetrain torsional speed, drivetrain torsional displacement, and rotor speed. This section discusses three main points:1) the linearized models that cover the operating region, 2) the gap-metric measure to select the effective linearized models, and 3) the procedure to write a simplified fuzzy model. 2.1. FAST linearized models In order to design a CPC, linearized models are derived. Each of the resulting models relates the perturbations of the collective pitch to those of the generator speed. FAST can produce these linear models around a specific operating point in the form of (1). Generator speed, azimuth angle of the rotor, the hub height wind speed, and the pitch angle are the main variables that specify an operating point. In Region 3, the generator speed should be at the rated value. Linearized models are calculated at different azimuth angles for a given wind speed. Then, an average model is derived, for design purposes, using Multi-blade Coordinate Transformation [23]. Moreover, at steady state, FAST will give a nominal pitch angle that is associated with a given average wind speed. Hence, the main variable that characterizes the linearized models is the wind speed. The resulting model takes the standard state-space form x_ ¼ Ac x þ Bc ucpc y ¼ Cc x (1) where Ac, Bc, and Cc are constant matrices with appropriate dimensions. ucpc and y are the perturbations in the collective pitch and generator speed, respectively. x is the perturbation in the states. The state vector, x, includes the perturbations in the drivetrain torsional speed, drivetrain torsional displacement, and rotor speed. In a FAST model, the generator torque is based on the generator speed. If the generator speed is greater than or equal to the rated value, then the generator torque is constant at its rated value. Otherwise, the generator torque is proportional to the square of its speed while the generated power is proportional to the cube of the speed. Hence, the generator speed is the fundamental quantity that we measure and rely on to obtain our results [4]. 2.2. The gap-metric concept The gap metric criterion can be used to check the proximity of linear models [24,25]. The idea is that the distance between the two selected models should be larger than a prescribed level, otherwise, one model is enough to describe them both. In this section, a gap metric criterion is defined. Then, it is used to determine the linearized models that can adequately represent 300 A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 the wind turbine through region 3. The resulting linearized models will form the consequents of the proposed fuzzy rules. This means that the number of models suggested by the gap metric criterion dictates the number of rules in the fuzzy system that models the wind turbine. This concept is one of the main contributions of this work. It avoids the rule explosion phenomenon which is a main criticism of fuzzy systems. This leads to a limited number of rules so the computational burden is reduced. The gap metric, d(Gi,Gj), is a measure of the maximum difference between the two transfer functions Gi and Gj [24]. For single-input single-output systems, it is defined as G G i j d Gi ; Gj ¼ qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiqffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi 1 þ Gi Gi 1 þ Gj Gj (2) ∞ where Gi and Gj are the conjugates of Gi and Gj, respectively. It is noted that the infinite norm, k:k∞ , is simply the maximum amplitude of the frequency response of the associated transfer function. In this work, the objective of the controller is to limit the power and speed at their rated values. The rated values define the operating point which is used to derive the linearized models. The wind speeds range from 12 m/s to 22 m/s. Six linearized models are obtained in the previous range with a step of 2 m/s. The gap metric criterion is used to measure the mutual distance between each pair of models. The results are shown in Table 2. In Table 2, G12 refers to the linearized model calculated at the wind speed 12 m/s, G22 refers to the linearized model calculated at the wind speed 22 m/s, and so on. The entries of Table 2 give the gap-metric measures between the two relevant models. For example, the gap-metric measure between the models G18 and G14 is 0.253. The values are calculated using the MATLAB command ‘gapmetric’. Theoretically, if the result is zero, this means that the two models have the same dynamics. On the other hand, if the result is one, this means that the two models are totally different in the dynamics. The threshold value of the gap metric, at which two models are considered as different, is a design parameter. It reflects a compromise between the simplicity of a fuzzy model and the computational complexity. Simulations can be used to guide our choice of the gap metric threshold value. Fig. 2 demonstrates the accuracy of the proposed fuzzy model. 2.3. A simplified TeS fuzzy model The core of a fuzzy system is its rulebase. A fuzzy rulebase consists of if-then rules. The antecedent of each rule assigns a linguistic value to each input variable. The linguistic value is defined by a membership function selected by the designer. The consequent of the rule, in a TakagieSugeno fuzzy system, is a mathematical expression. The output of the fuzzy system is a weighted sum of its consequents where the weights depend on the firing strength of each rule. So, a fuzzy system represents a mapping function of its input space to it output space. The nonlinearity of the fuzzy model stems from the multiplication of the rule strength by the rule Table 2 Gap metric between the linearized models. G G G G G G 12 14 16 18 20 22 consequent. By adjusting the shapes and parameters of the memberships, it is possible to shape the mapping from the input to output of a fuzzy system. Based on the Universal Approximation Theorem [26], the nonlinear model of a wind turbine can be approximated by a TakagieSugeno fuzzy model. This retains the accuracy of the model and the simplicity of the representations. The main variable that characterizes the linearized models is the wind speed. This motivates us to use the wind speed as the linguistic variable in the rules' antecedents of the fuzzy rule-base that models a wind turbine. Measurements of the wind speed are inaccurate due to its variations across the blades' swept area and due to the high level of noise. The use of a fuzzy model is suitable as it can inherently accommodate inaccurate wind measurements. The linearized models, which are selected based on the gap criterion, form the consequents of the fuzzy rules. The resulting overall fuzzy model (after blending all rules) looks like a time varying linear model which eases its use to calculate the future predictions of the output and states. Using TakagieSugeno fuzzy models [26], the discrete linear models equivalent to (1), and the gap metric discussed above, it is possible to emulate the wind turbine by a set of fuzzy rules. Each rule represents a local model in the form: Rule #j: If the wind speed is Vj Then xðk þ 1Þ ¼ Adj xðkÞ þ Bdj ucpc ðkÞ yðkÞ ¼ Cdj xðkÞ where x is the state vector, k is the current instant, and j is the rule index. ucpc and y are the perturbations in the collective pitch and generator speed, respectively. Adj, Bdj, and Cdj are the discrete model matrices that follow from discretizing (1). The antecedent of the fuzzy rule (3) has one linguistic variable which is the wind speed. The wind speed as a linguistic variable is assigned a linguistic value Vj which is described by an appropriate membership function. In our problem, there are three rules corresponding to the linearized models selected based on the gap metric criterion. The models correspond to wind speeds 12 m/s, 16 m/s, and 20 m/s. Each speed, Vj, is assigned a membership function, Nj, as shown in Fig. 1. This allows a fuzzy representation of the wind speeds. The advantage of using a fuzzy model is that it can accommodate imprecise wind-speed measurements. Once a wind-speed measurement is received, the fuzzy rules are fired. This corresponds to calculating the rules' strength which is obtained by direct substitution of the wind-speed measured value into the membership function Vj, j ¼ 1, 2, 3. The resulting rule strength is a weight between 0 and 1. The output of each rule is the product of the rule strength and the rule consequent. The rule consequent is nothing but the linearized model that appears in the rule. Finally, the outputs of the rules are aggregated by adding the outputs of the fired rules. So, our fuzzy model is a weighted sum of the linearized models. The weight of each rule is time varying as it depends on the wind measurement at each sample. Based on the fuzzy model in (3), firing and aggregation of the rules leads to xðk þ 1Þ ¼ G 12 G 14 G 16 G 18 G 20 G 22 0 0.176 0.402 0.494 0.552 0.594 0.176 0 0.142 0.253 0.326 0.382 0.402 0.142 0 0.115 0.193 0.253 0.494 0.253 0.115 0 0.080 0.142 0.552 0.326 0.193 0.080 0 0.063 0.594 0.382 0.253 0.142 0.063 0 (3) yðkÞ ¼ n P j¼1 n P j¼1 n o Nj ðkÞ Adj xðkÞ þ Bdj ucpc ðkÞ ; n o Nj ðkÞ Cdj xðkÞ ; (4) where Nj(k) is the membership value calculated at the sampling instant k and n is the number of fuzzy rules (n ¼ 3). As stated in Subsection 2.2, our controller is designed based on A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 301 Fig. 1. The membership functions assigned to (3). linear models for prediction. As real industrial processes are nonlinear, there is a trend is to rely on nonlinear models. On the other hand, the utilization of a nonlinear model will increase the complexity of the optimization problem [29]. This may limit the utilization of nonlinear MPC in industrial applications. So, we propose here the use of fuzzy models as a remedy. A fuzzy model adopts linearized models in its consequents while the overall model can well-approximate a nonlinear system. The following subsections describe the control loop structure and the optimization problem setup. 3.1. The pitch control loop Fig. 2. The generator speed measured from FAST versus the generator speed calculated based on the fuzzy model (a) full time (120 s) (b) 1 s interval. the TeS fuzzy model which consists of three fuzzy rules. Fig. 2 shows the generator speed measured from the nonlinear FAST model and the generator speed calculated based on the TeS fuzzy model. As shown in Fig. 2, the exact output and the calculated output are very close to each other. As shown in Fig. 3, the pitch control loop consists of three main components. The first component is the individual pitch controller (IPC). A PI controller is implemented as an IPC [30]. The main objective is to reduce the flap-wise moment on the turbine blades. The steady state pitch angle operating point is the second component. It depends on the average wind speed. It can be calculated through a lookup table. The collective pitch component is the third component. An MPC is used to control the collective pitch angle in order to keep the generator speed and power at the rated values. The design of the CPC will be discussed in the following subsection. Consider Fig. 3. Let FM1,2,3 be the flap-wise moments on the blades, wgen be the generator speed, and U be the control action (pitch angle). The control action, U, can be calculated as U ¼ uipc þ u0 þ ucpc (5) where uipc is the IPC action, u0 is the steady state control action, and ucpc is the CPC action. 3.2. MPC for collective pitch control 3. Model predictive collective pitch control The proposed controller uses the fuzzy model (4) to predict the future outputs over a specific prediction horizon. At every sampling instant, an optimization problem is solved on-line over the prediction horizon to obtain the control actions. According to the receding horizon policy [27], the first control action only is implemented. The whole optimization problem is solved again in the next sampling interval. MPC has several benefits: 1) it can control multivariable systems subject to constraints [28], 2) it is effective in controlling non-minimum phase and unstable systems [29]. It is observed that most industrial predictive controllers use The main components of the proposed fuzzy MPC are the predictor, the optimization solver, and the state estimator. A brief description of each component is given below. 3.2.1. The predictor Let x(k) be the current state where k is the index of the current sampling interval. The notation x(k þ j/k) refers to the predicted value of the state j-step ahead given information at sample k. The future control actions are ucpc(k), ucpc(k þ 1),…, ucpc(k þ Nu1), where Nu is the control horizon. Let NP be the prediction horizon. The future states predicted at k are 302 A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 Fig. 3. The structure of a pitch control loop. xðk þ 1=kÞ ¼ Ad xðkÞ þ Bd ucpc ðkÞ xðk þ 2=kÞ ¼ A2d xðkÞ þ Ad Bd ucpc ðkÞ þ Bd ucpc ðk þ 1Þ « P P 1 xðk þ NP =kÞ ¼ AN xðkÞ þ Bd ucpc ðk þ NP 1Þ þ Ad Bd ucpc ðk þ NP 2Þ þ … þ AN Bd ucpc ðkÞ d d P P P where Ad ¼ nj¼1 Nj ðkÞAdj , Bd ¼ nj¼1 Nj ðkÞBdj , Cd ¼ nj¼1 Nj ðkÞCdj . Let the notation y(k þ j/k) refer to the predicted output j-steps ahead giving information at the sample k. The predicted outputs are 3.2.2. The optimization problem The predictive control main target is to find the control vector up that brings the predicted outputs (8) as close as attainable to the yðk þ 1=kÞ ¼ Cd Ad xðkÞ þ Cd Bd ucpc ðkÞ yðk þ 2=kÞ ¼ Cd A2d xðkÞ þ Cd Ad Bd ucpc ðkÞ þ Cd Bd ucpc ðk þ 1Þ « P P 1 yðk þ NP =k Þ ¼ Cd AN xðkÞ þ Cd Bd ucpc ðk þ NP 1Þ þ Cd Ad Bd ucpc ðk þ NP 2Þ þ … þ Cd AN Bd ucpc ðkÞ d d Assume that Nu < NP, this leads to ucpc(k þ Nu),…, ucpc(k þ Np1) ¼ ucpc(k þ Nu1). Hence, the output prediction can be expressed as Y ¼ FxðkÞ þ wup (8) 3 2 3 Cd Ad yðk þ 1=kÞ 6 Cd A2 7 6 yðk þ 2=kÞ 7 d 7 where F¼ 6 5, w ¼ ½ w1 w2 G , 4 « 5; Y ¼ 4 « NP yðk þ NP =kÞ Cd Ad 3 2 Cd Bd 0 … 0 B … 0 C 7 6 Cd Ad Bd d d 7, w1 ¼ 6 « « « 5 4 « NP 2 NP Nu NP 1 A B … C A B C Bd Cd Ad d d d d d d 3 2 0 0 … 0 6 « « « 0 7 7 6 T … … « 7 Cd Bd w2 ¼ 6 7, G ¼ ½ 1 / 1 , 6 4 « « « 0 5 P Nu 1 Cd AN Bd … Cd Ad Bd Cd Bd 2d 3 ucpc ðkÞ 4 5. « and up ¼ ucpc ðk þ Nu 1Þ 2 (6) (7) zero set-point in the least-squares sense. The set-point is zero since our objective is to maintain zero deviations from the rated power and speed. Hence, the MPC cost function can be written as J ¼ Y T Y þ uTp Rs up (9) where Rs is a diagonal matrix that is used as a tuning parameter to penalize high control actions. The pitch angle of the wind turbine has a permissible range of variations from 0 rad to 1.57 rad with a maximum rate of 0.139 rad/s [4]. The input constraints can be written as uipc ðkÞ u0 ðkÞ þ umin ucpc ðkÞ (10) uipc ðkÞ u0 ðkÞ þ umax ucpc ðkÞ (11) Duipc ðkÞ Du0 ðkÞ þ amin Ducpc ðkÞ (12) Duipc ðkÞ Du0 ðkÞ þ amax Ducpc ðkÞ (13) umin and umax are the minimum and maximum values of the pitch A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 303 angle, respectively. amin and amax are the minimum and maximum pitch angle rates of change, respectively. Note that, amin and amax depend on the sampling interval (see Appendix A.1). D is the backward difference operator. To find the optimal sequence of control inputs, the following optimization problem is posed min :J ¼ ½FxðkÞT ½FxðkÞ þ 2uTp ðwÞT FxðkÞ þ uTp ðwÞT ðwÞ þ Rs up up (14) Subject to the following constraints Tup M; and ð4Þ (15) where T and M can be constructed from (10)e(13) (given in Appendix A.1). Since the cost function is quadratic and the constraints are linear, the problem is a standard constrained quadratic program. The Hildreth's quadratic programming procedure, described in Ref. [27], is used to solve the optimization problem (14)e(15) (see Appendix A.2). 3.2.3. The state estimator In this work, some states are immeasurable. So, a Kalman filter is implemented as a state observer. The Kalman filter used here is based on a TeS fuzzy model. The development of the Kalman filter assumes a stochastic model of the form xðk þ 1Þ ¼ AxðkÞ þ BuðkÞ þ dðkÞ yðkÞ ¼ CxðkÞ þ hðkÞ (16) A, B, and C are constant matrices of appropriate dimensions based on a specific linearized model. d and h are stochastic signals that have zero means. The covariances of d and h are respectively defined as o n E dðkÞdðtÞT ¼ Q dðk tÞ n o E hðkÞhðtÞT ¼ Rdðk tÞA (17) where E is the expectation operator, d(kt) ¼ 1 if k ¼ t and d(kt) ¼ 0 otherwise. The matrices Q and R are design parameters. Typically Q is positive semi-definite and R is positive definite. The objective of a Kalman filter (observer) is to calculate an estimate b x ðkÞ of x(k) such that the covariance of the state estimation error is minimized. The state estimation is calculated using the fuzzy rules in (18) and the membership function shown in Fig. 1. Rule #j: If the wind speed is Vj. Then b x ðk þ 1Þ ¼ Adj b x ðkÞ þ Bdj ucpc ðkÞ þ Kkj yðkÞ Cdj b x ðkÞ j ¼ 1; 2; 3 (18) where j is the rule index and Kkj is the Kalman gain at rule number j. Assuming the pair (Adj,Cdj) is detectable, the gain Kkj (given in Appendix A.3) is calculated as 1 T T R þ Cdj Pj Cdj KKj ¼ Adj Pj Cdj where Pj is the solution of the algebraic Riccati equation 1 T T R þ Cdj Pj Cdj Pj ¼ Adj Pj Pj Cdj Cdj Pj ATdj þ Q (19) Fig. 4. Wind speed profile at the hub level. 4. Control implementation and simulation results In this section, we show the details of implementing the proposed controller and compare its performance to the gain schedule PI controller provided with FAST [4], and the mixed H2/H∞ controller in Ref. [7]. First, the real system is simulated based on a 24-DOF model and a practical wind profile. Second, off-line and online calculations, that are required to calculate the pitch angle control action, are stated. Finally, numerical results that prove the prevalence of the proposed controller are illustrated. 4.1. Real system simulations In order to obtain practical results, two aspects are embedded. First, all of the 24 DOF are enabled. Second, a stochastic wind speed profile is applied to the wind turbine. The wind speed profiles are generated using the TurbSim software package [31]. TurbSim produces a two-dimensional wind speed profile that covers the whole turbine body including its tower. The applied wind speed profile at the hub level used to obtain the simulation results is shown in Fig. 4. 4.2. The control algorithm The proposed CPC is a fuzzy MPC. The control algorithm consists of off-line and on-line calculations as illustrated below. Off-line calculations: Obtain the continuous state space linear models (Ac, Bc,Cc) at different operating points. Obtain the discrete state space models (Adj, Bdj,Cdj) using an appropriate sampling interval (12.5msec is recommended in FAST [4]). Construct the gap-metric table as in Table 2. Then, select the minimum number of models that can represent significantly different operating points. Construct the fuzzy rulebase as in (3) and let the membership functions be as in Fig. 1. Calculate Kalman gains for each selected model in the fuzzy rulebase. On-line calculations at each sampling instant: Based on the wind speed at the hub height, calculate the normalized weight Nj. Hence, obtain the appropriate matrices (Ad, Bd,Cd); see (4) and (6). 304 A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 Fig. 7. The control signal for the mixed H2/H∞ controller and the proposed controller: (a) CPC control signal; (b) total pitch control signal on the first blade. Fig. 5. A comparison between the proposed controller and PI controller: (a) generator speed; (b) generator power; (c) flapwise moments. Use Kalman filter to estimate the design model states. Solve the optimization problem in (14)e(15) to obtain the optimal trajectory of the collective pitch control action. Only the first element of the optimal control sequence, obtained from the above step, is applied to the plant. The total control signal is calculated as in (5). Note: the possibility of online model-predictive-control calculations is demonstrated in Refs. [32,33]. 4.3. The numerical results Fig. 6. A comparison between the proposed controller and mixed H2/H∞ controller: (a) generator speed; (b) generator power; (c) flapwise moments. In this section, a comparison between the proposed fuzzy MPC controller and two different controllers is carried out. The controllers, to be compared with the proposed one, are a gain schedule PI controller and the mixed H2/H∞ controller [7]. The results are shown in Figs. 5e7. The speed regulation, electric power, flap-wise moment, and the collective pitch control signals are compared in Table 3. In Fig. 5, the first 10 s are omitted due to the sluggish response of the PI controller. This is because the turbine abruptly jumps from region 1 to region 3 which imposes a severe nonlinearity to the PI controller. The comparison depends on the average values, the standard deviations, and the maximum absolute values of the errors. It includes the generator power, flapwise moment, generator speed, and CP control signal. The proposed fuzzy MPC improves the standard deviation (reduces the fluctuation) of the generator speed by 659% and 37.4% relative to the PI controller and mixed H2/H∞ controller, respectively. Moreover, it improves the standard deviation of generator power by 307% and 22.7% relative to the PI controller and mixed H2/H∞ controller, respectively. Further, the proposed fuzzy MPC improves the standard deviation of the flapwise moment by 132.5% and 15.8% relative to the PI controller and mixed H2/H∞ controller, respectively. The proposed fuzzy MPC improves the standard deviation of the collective pitch control signal by 550%, and 52.3% relative to the PI controller, and mixed H2/H∞ controller, respectively. A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 305 Table 3 Data analysis of the results in Figs. 5e7. Generator speed (rpm) Electric power (KW) Flapwise moment (KN.m) Collective pitch action (rad/s) Max (abs (error)) Mean Std (error) Max (abs (error)) Mean Std (error) Max Mean Std Max Mean Std The proposed fuzzy MPC improves the maximum absolute value of the error signal of the generator speed by 434% and 34.3% relative to the PI controller and mixed H2/H∞ controller, respectively. Moreover, it improves the maximum absolute error of the generator power relative to the PI controller and mixed H2/H∞ controller by 95.8% and 33.7%, respectively. Further, it improves the maximum absolute error of the flap-wise moment by 26.4% and 6.8% relative to the PI controller and mixed H2/H∞ controller, respectively. Also, it improves the maximum absolute value of the control signal by 543% and 47.6% relative to the PI controller and mixed H2/H∞ controller, respectively. The proposed fuzzy MPC improves the average value of the generator speed by 0.1% relative to the PI controller. It improves the average power by 6.77% relative to the PI controller. The average values of the proposed fuzzy MPC and the mixed H2/H∞ controller are near to each other. Note that, the wind speed variations may contain wind speeds below and above the rated value. This means that, we need a controller in region 2 to maximize the power and in region 3 to maintain the power at the rated value. This problem can be solved using decentralized controllers. However, we discuss here the operation of the wind turbine in region 3. IF the wind speed value goes below the rated value, the pitch controller will be automatically disconnected. As shown in Fig. 4, the stochastic wind speed profile contains wind speeds below the rated value in the interval between 125 s and 140 s the corresponding pitch angle control action is indeed equal to zero as shown in Fig. 7. This means that the pitch controller functions as it should. From the above analysis, it is evident that the proposed fuzzy MPC improves the overall performance of the wind turbine. 5. Conclusions This paper has proposed a new design of a fuzzy predictive algorithm for collective pitch control. A fuzzy model has been used to model a large 5-MW wind turbine. The size of the rulebase of the fuzzy model has been significantly reduced using a gap-metric criterion. Consequently, a model predictive controller has been designed to act as a collective pitch controller. The proposed predictive controller can naturally accommodate hard constraints on the pitch angles and their rates of change. Since the calculations have required the system states, a Kalman observer has been designed to estimate the immeasurable system states. The simulations have been carried out utlizing a FAST model for a 5-MW offshore wind turbine. The simulation results have compared the proposed fuzzy MPC to different control strategies including a gain schedule PI controller and an H2/H∞ mixed controller. The results of the comparison (shown in Table 3) have confirmed significant enhancements in power harvest, mechanical load reduction, and speed regulation. Gain schedule PI Mixed H2/H∞ Proposed controller 85.04 1170.6 28.03 1573.6 4537.5 570.88 7328 3287 1449 0.1878 0.0142 0.0423 21.382 1172.1 5.07 1074.8 4864 172.11 6193 4269 721.65 0.0431 0.0031 0.0099 15.92 1171.8 3.69 803.74 4867.1 140.25 5798 4271 623.08 0.0292 0.0031 0.0065 Appendix A A.1. Parameters of equation (15) 3 uipc ðkÞ u0 ðkÞ þ umax 7 6 6 1 0 … 0 7 7 uipc ðkÞ þ u0 ðkÞ umin 6 6 7 7 T¼6 7; M ¼ 6 6 u ðk 1Þ Du ðkÞ Du ðkÞ þ amax 7 , 4 1 0 … 05 5 4 cpc 0 ipc 1 0 … 0 ucpc ðk 1Þ þ Du ðkÞ þ Du0 ðkÞ amin 2 0 … 0 1 3 2 ipc amax ¼ 0:139*Ts ; amin ¼ 0:139*Ts where Ts is the sampling time. A.2. Hildreth's quadratic programming procedure The cost function (14) can be rewritten in the form of quadratic cost function as following: min: J ¼ up 1 T u Eup þ uTp F 2 p Subject to. Tup M where E ¼ 2*ððwÞT ðwÞ þ Rs Þ; F ¼ 2*ððwÞT FxðkÞÞ The primal problem is equivalent to: max: min: l0 up 1 T u Eup þ uTp F þ lT Tup M 2 p where the vector l contains the Lagrange multipliers. The minimization over up is unconstrained and is attained by: up ¼ E1 F þ T T l Substituting up in the primal problem, the dual problem is written as: max: l0 1 T 1 l Hl lT K F T E1 F 2 2 where H¼ TE1TT, K ¼ MþTE1F Thus, the dual is also a quadratic programming problem with l as the decision variable. The dual problem is equivalent to: min: l0 1 T 1 l Hl þ lT K þ MT E1 M 2 2 306 A. Lasheen, A.L. Elshafei / Renewable Energy 87 (2016) 298e306 Note that the dual problem may be much easier to solve than the primal problem because the constraints are simpler. The main steps in Hildreth's algorithm to solve the dual problem are following: Step 1: The objective function is regarded as a quadratic function in li Step 2: Adjust li to minimize the objective function. If this requires li < 0, set li ¼ 0 Step 3: Move to the next component liþ1 and repeat step 1 and 2. If we consider one complete cycle through the components to be one iteration taking the vector lm to lmþ1 the method can be expressed explicitly as [6] [7] [8] [9] [10] [11] [12] mþ1 ; wmþ1 lmþ1 ¼ max 0; w i i i 2 3 i1 n X X 1 4 5 Ki þ ¼ hij lmþ1 þ hij lm j j hii j¼1 j¼iþ1 where hij is the ijth element in the matrix H¼ TE1TT, and Ki is the ith element in the vector [13] [14] [15] [16] [17] [18] K ¼ M þ TE1 F [19] [20] when the algorithm up ¼ E1(F þ TTl*) converges to l*, the solution is [21] [22] A.3. Parameters of the Kalman's observer Q ¼ 2, R ¼ 0.01. [23] [24] T Kk1 ¼ ½ 0:0001 0:0009 0:0018 ; Kk2 ¼ ½ 0:0002 0:0010 0:0021 T ; Kk3 ¼ ½ 0:0002 0:0010 0:0024 T ; [25] [26] [27] [28] References [1] The World Wind Energy Association, Half-year Report, 2014. http://www. wwindea.org. [2] L.Y. Pao, K.E. Johnson, Control of Wind Turbines, IEEE Control Syst. Mag. 31 (2) (Apr. 2011) 44e62. [3] M. Azzouz, A.L. Elshafei, H. Emara, Evaluation of fuzzy-based maximum power tracking in wind energy conversion systems, IET Renew. Power Gen. 5 (6) (Dec. 2011) 422e430. [4] J.M. Jonkman, S. Butterfield, W. Musial, G. Scott, Definition of a 5-MW Reference Wind Turbine for Offshore System Development, National Renewable Energy Laboratory, Golden, CO, USA, 2007. Tech. Rep.TP-500e38060. [5] H. Jafarnejadsani, J. Pieper, J. Ehlers, Adaptive control of a variable-speed [29] [30] [31] [32] [33] variable-pitch wind turbine using radial-basis function neural network, IEEE Trans. Control Syst. Technol. 21 (6) (Oct. 2013) 2264e2272. € A. Yilmaz, Z. Ozer, Pitch angle control in wind turbines above the rated wind speed by multi-layer perceptron and radial basis function neural networks, Expert Syst. Appl. 36 (Aug. 2009) 9767e9775. H. Hassan, A.L. Elshafei, W. Farag, M. Saad, A robust LMI-based pitch controller for large wind turbines, Renew. Energy 44 (Jan. 2012) 63e71. C.L. Bottasso, A. Croce, C.E.D. Riboldi, Y. Nam, Multi-layer control architecture for the reduction of deterministic and non-deterministic loads on wind turbines, Renew. Energy 51 (Mar. 2013) 159e169. Camblong, Haritza, Comparison of an island wind turbine collective and individual pitch LQG controllers designed to alleviate fatigue loads, IET Renew. Power Gen. 6 (Aug. 2012) 267e275. Y. Zhang, Z. Chen, W. Hu, M. Cheng, Flicker mitigation by individual pitch control of variable speed wind turbines with DFIG, IEEE Trans. Energy Convers. 29 (1) (Mar. 2014) 1e9. H. Namik, K. Stol, Individual blade pitch control of a spar-buoy floating wind turbine, IEEE Trans. Control Syst. Technol. 22 (1) (Jan. 2014) 214e223. Y. Zhang, Z. Chen, M. Cheng, Proportional resonant individual pitch control for mitigation of wind turbines loads, IET Renew. Power Gen. 7 (3) (May 2013). S. Xiao, H. Geng, G. Yang, Non-linear pitch control of wind turbines for tower load reduction, IET Renew. Power Gen. 8 (7) (Sept. 2014) 786e794. A. Kusiak, A. Verma, A data-driven approach for monitoring blade pitch faults in wind turbines, IEEE Trans. Sustain. Energy 2 (1) (Jan. 2011) 87e96. S. Roy, Impact of short duration wind variations on output of a pitch angle controlled turbine, IEEE Trans. Sustain. Energy 3 (3) (July 2012) 566e575. S. Roy, Power output by active pitch-regulated wind turbine in presence of short duration wind variations, IEEE Trans. Energy Convers. 28 (4) (Dec. 2013) 1e8. A.J. Filho, M.E. Filho, E.R. Filho, A predictive power control for wind energy, IEEE Trans. Sustain. Energy 2 (1) (Jan. 2011) 97e105. D.Q. Dang, Y. Wang, W. Cai, Offset-free predictive control for variable speed wind turbines, IEEE Trans. Sustain. Energy 4 (1) (Jan. 2013) 2e10. nchez, V. Batlle, A. Cerrada, Design and comparison of state-feedback and P. Sa predictive-integral current controllers for active and reactive power control in renewable energy systems, Control Eng. Pract. 17 (2) (Feb. 2009) 255e266. M. Soliman, O.P. Malik, D.T. Westwick, Multiple model predictive control for wind turbines with doubly fed induction generators, IEEE Trans. Sustain. Energy 2 (3) (July 2011) 215e225. T. Larsen, A.M. Hansen, How 2 HAWC2: User's Manual, Risø National Laboratory, Roskilde, Denmark, Dec. 2007. R-1597 (ver. 3e1). L. Bottasso, A. Croce, Cp-Lambda User Manual, Dipartimento di IngnegneriaAerospaziale, Politecnico di Milano, Milano, 2009. G.S. Bir, User's Guide to MBC3: Multi-blade Coordinate Transformation Utility for 3-Bladed Wind Turbines, National Renewable Energy Laboratory, Golden, CO, USA, Oct. 2008, pp. 1e17. G. Vinnicombe, Frequency domain uncertainty and the graph topology, IEEE Trans. Autom. Control 38 (9) (Sept. 1993) 1371e1383. W. Tan, H. Marquez, T. Chen, J. Liu, Multimodel analysis and controller design for nonlinear processes, Comput. Chem. Eng. 28 (12) (Dec. 2004) 2667e2675. K. Tanaka, H.O. Wang, Fuzzy Control Systems Design and Analysis: a Linear Matrix Inequality Approach, John Wiley, New York, 2001. L. Wang, Model Predictive Control System Design and Implementation Using MATLAB, Springer, Melbonrne, Australia, 2009. K. Belarbi, F. Megri, A stable model-based fuzzy predictive control based on fuzzy dynamic programming, IEEE Trans. Fuzzy Syst. 15 (4) (Aug. 2007) 746e754. J. Espinosa, J. Vandewalle, V. Wertz, Fuzzy Logic, Identification and Predictive Control, Springer, London, 2005. E. Bossanyi, Individual blade pitch control for load reduction, Wind Energy 6 (Apr. 2003) 119e128. N. Kelley, B. Jonkman, Overview of the TurbSim Stochastic in Flow Turbulence Simulator, Renewable Energy Laboratory, Golden, CO, USA, Apr. 2007. Tech. Rep. NREL/TP-500e41137. Y. Wang, Stephen Boyd, Fast model predictive control using online optimization, Trans. Control Syst. Technol. 18 (2) (Mar. 2010) 267e278. M.N. Zeilinger, D.M. Raimondo, A. Domahidi, M. Morari, C.N. Jones, On realtime robust model predictive control, Automatica 50 (3) (Jan. 2014) 683e694.