METHOD FOR CONTROLLING A WIND TURBINE

20220213870 · 2022-07-07

    Inventors

    Cpc classification

    International classification

    Abstract

    A method for controlling a wind turbine using an estimated wind speed is provided. The wind turbine has a rotor rotatable with a variable rotor speed and having rotor blades with adjustable pitch angles and a generator adapted to control a generator torque or a generator output power. The method comprises measuring the rotor speed, determining a common pitch angle representative of at least one or all pitch angles of the rotor blades, determining the generator torque or an output power of the generator and estimating the wind speed by means of an observer. The observer uses a model of the wind turbine as an observer model, uses as input variables, the measured rotor speed, the determined common pitch angle and the determined generator torque or the determined output power, and incorporates expected variations of the wind as at least one stochastic variable.

    Claims

    1. A method for controlling a wind turbine using an estimated wind speed, wherein the wind turbine includes: a rotor operable to rotate with a variable rotor speed and having a plurality of rotor blades with a plurality of adjustable pitch angles, respectively; and a generator configured to control a generator torque or an output power of the generator, the method comprising: measuring the rotor speed; determining a common pitch angle representative of at least one or the plurality of pitch angles of the plurality of rotor blades; determining the generator torque or the output power of the generator; and estimating the wind speed using an observer wherein the observer is configured to: use a model of the wind turbine as an observer model; use the measured rotor speed, the determined common pitch angle and at least one of the determined generator torque or the determined output power as input variable; and incorporate expected variations of wind as at least one stochastic variable.

    2. The method according to claim 1, wherein: the observer is a Kalman filter, and/or the observer model provides an estimated rotor speed, an estimated common pitch angle and at least one of an estimated generator torque or an estimated output power as output variables.

    3. The method according to claim 1, wherein: the wind turbine is controlled depending on the estimated wind speed, the plurality of pitch angles are adjusted depending on the estimated wind speed, the generator torque or the output power is adjusted depending on the estimated wind speed, and/or the wind turbine is controlled depending on the estimated wind speed as the only input variable.

    4. The method according to claim 1, wherein the observer model includes one or more sub-models each representing a dynamic characteristic of at least one of: an aerodynamic wake, at least one of the plurality of rotor blades, a drive train, the generator, at least one actuator for adjustment of at least one of the plurality of pitch angles, a tower, at least one structural imbalance, and a rotor wind distribution of a rotor field covered by the rotor when rotating.

    5. The method according to claim 1, wherein the observer uses considers at least one nonlinear characteristic of the wind turbine such that a linear observer model is used and the at least one nonlinear characteristic of the wind turbine is considered by at least one time variant parameter.

    6. The method according to claim 1, wherein: the observer model includes a blade model of at least one rotor blade of the plurality of rotor blades, and the blade model includes: a plurality of blade sections of the at least one rotor blade for evaluating dynamic characteristics of the plurality of blade sections, and/or a sub model for modelling a torsional characteristics of the at least one rotor blade and/or the plurality of blade sections.

    7. The method according to claim 1, wherein: the observer model has a plurality of model parameters, and at least one of: the observer model is determined using system identification or the plurality of model parameters or a subset of the plurality of model parameters are determined using parameter identification, and the observer model, the plurality of model parameters, the subset of the plurality of model parameters and/or control of the wind turbine is adjusted based on the estimated wind speed.

    8. The method according to claim 1, comprising: estimating, by the observer and/or the observer model, a wind speed and/or a wind field upstream of the rotor.

    9. The method according to claim 1, comprising: wherein measuring the wind speed; and determining a wind speed value depending on the estimated wind speed and the measured wind speed.

    10. The method according to claim 1, wherein a movement value representing a movement of an element of the wind turbine carrying a sensor is input to the observer as a disturbance value.

    11. The method according to claim 1, wherein the observer model is configure such that an upstream wind speed that is upstream of the rotor is used as an augmented state variable of the observer model.

    12. A wind turbine operative to be controlled using an estimated wind speed, the wind turbine comprising: a rotor operative to rotate with a variable rotor speed and having a plurality of rotor blades with a plurality of adjustable pitch angles, respectively; a generator configured to control a generator torque; a sensor configured measure the rotor speed; a pitch actuator configured to determine a common pitch angle representative of at least one or the plurality of pitch angles of the plurality rotor blades; an active rectifier configured to determine a generator torque or an output power of the generator; and a wind turbine controller configured to: control the wind turbine; and use an observer for estimating the wind speed, wherein the observer is configured to: use a model of the wind turbine as an observer model; use the measured rotor speed, the determined common pitch angle and at least one of the determined generator torque or the determined output power as input variables to the observer; and incorporate expected variations of wind as at least one stochastic variable.

    13. The wind turbine according to claim 12, wherein: the observer is a Kalman filter, and/or the observer model provides an estimated rotor speed, an estimated common pitch angle and one of an estimated generator torque or an estimated output power as output variables for comparison with the measured rotor speed, the determined common pitch angle and the at least one of the determined generator torque or the determined output power, respectively.

    14. (canceled)

    15. The method according to claim 2, comprising: comparing the estimated rotor speed, the estimated common pitch angle and the at least one of the estimated generator torque or the estimated output power with the measured rotor speed, the determined common pitch angle and the at least one of the determined generator torque or the determined output power; and/or refraining from using the wind speed as an input variable to the observer model.

    16. The method according to claim 7, wherein the observer model, the plurality of model parameters, the subset of the plurality of model parameters and/or the control of the wind turbine is adjusted based on a measured wind speed.

    17. The method according to claim 9, wherein: the wind speed is measured using a light detection and ranging (LIDAR) device, and the method comprises: combining the estimated wind speed and the measured wind speed using a weighting function.

    18. The method according to claim 17, wherein the weighting function depends on an accuracy of the observer and/or on an accuracy of wind speed measurement.

    19. The method according to claim 10, wherein a movement of a stator of the generator carrying a speed sensor for measuring the rotor speed is input to the observer as the disturbance value.

    20. The method according to claim 1, wherein the expected variations of the wind are determined based on a weather forecast or variations of the measured rotor speed.

    Description

    BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

    [0104] The invention is now described by means of example based on at least one embodiment and using the accompanying Figures.

    [0105] FIG. 1 shows a wind turbine in a perspective view.

    [0106] FIG. 2 illustrates the suggested control concept using an observer.

    [0107] FIG. 3 shows part of a wind turbine including a generator, an observer and a control unit in a schematic view.

    DETAILED DESCRIPTION

    [0108] FIG. 1 shows a wind power installation 100 comprising a tower 102 and a nacelle 104. A rotor 106 having three rotor blades 108 and a spinner 110 is arranged on the nacelle 104. The rotor 106 is set in rotation motion by the wind during operation and drives a generator in the nacelle 104 as a result.

    [0109] FIG. 2 shows the same wind turbine 100 as in FIG. 1. However, for illustrative reasons the reference numerals of FIG. 1 are not shown but would be the same. In addition, aspects of the control concept are illustrated.

    [0110] The wind 200 is illustrated as a big arrow and it has the wind speed V.sub.W. This is coming from the front of the wind turbine 100 and acting on the rotor blades 108 and thus the rotor 106 depicted in FIG. 1. That leads to a rotation with the rotor speed n. The wind turbine also comprises a generator 202 indicated by two-dotted lines inside nacelle. The rotor blades may be adjusted with respect to their pitch angle and that is indicated in FIG. 2 by a small arrow for each rotor blade and depicted by the corresponding pitch angle θ.sub.1, θ.sub.2 or θ.sub.3 respectively. The rotor speed n thus depends on the wind 200 and thus the wind speed V.sub.W and on the actual pitch angles θ.sub.1, θ.sub.2 and θ.sub.3 and it also depends on a generator torque of the generator 202.

    [0111] The pitch angles θ.sub.1, θ.sub.2 and θ.sub.3 may be adjusted individually. However, for a general operation of the wind turbine 100, in particular in a stationary operation point and a quite steady wind speed these three pitch angles θ.sub.1, θ.sub.2 and θ.sub.3 should be similar, probably identical. However, even in less ideal situations when these three pitch angles θ.sub.1, θ.sub.2 and θ.sub.3 are not identical or similar, they are at least only differing little from each other. In any case it is assumed that there is a common pitch angle θ and the pitch angles θ.sub.1, θ.sub.2 and θ.sub.3 only vary by small angles around such common pitch angle θ. Such common pitch angle θ could just be the arithmetic mean value of the three pitch angles θ.sub.1, θ.sub.2 and θ.sub.3. However, another possibility is that the common pitch angle θ is set by a controller and this set value is used as the common pitch angle θ.

    [0112] As explained the common pitch angle θ could be the result of a measurement of the three pitch angles θ.sub.1, θ.sub.2 and θ.sub.3. It could also just be an information which is readily available by a controller controlling the wind turbine. However, for illustrative reasons there is a blade angle calculation circuitry (e.g., controller) 206 shown in FIG. 2 which may calculate the common pitch angle θ from the three pitch angles θ.sub.1, θ.sub.2 and θ.sub.3.

    [0113] In order to estimate the wind speed V.sub.W there is suggested to use an observer (e.g., controller) 204. The observer 204 receives as input values the rotor speed n, the common pitch angle θ and the generator torque m. Instead of the generator torque m there could also be used the generator power or the power fed into an electrical supply grid by the wind turbine.

    [0114] The rotor speed n may also be measured by using an incremental encoder or other sensor for measuring the rotor speed. Such incremental encoder could be inside the nacelle 104 close to the generator 202. As such incremental encoder is well-known, it is not shown in FIG. 2.

    [0115] The generator torque m may be taken from a controller controlling such generator torque m. It may also be calculated based on the rotor speed n and a generator power of the generator 202. It is noted that instead of using the generator torque m as an input variable for the observer 204 the generator power may be used as well but the observer will of course be adapted accordingly.

    [0116] The observer 204 comprises an observer model 208. This observer model 208 is illustrated inside of the observer 204 and it also illustrates that it basically comprises a model of the wind turbine. In addition, the observer 204, in particular the observer model 208 may incorporate particular dynamics or at least one dynamic behavior, which is not necessarily a technical part of the wind turbine. Such dynamic behavior may be the dynamic behavior of the wind 200 approaching the rotor 106 of the wind turbine 100 from an upwind position 210. Such upwind position 210 may be just in front of the rotor of the wind turbine and it may be in a distance of 5-100 m or 10-20 m.

    [0117] Such behavior may also be incorporated in the observer 204, in particular in the observer model 208. This is illustrated by an augmented wind turbine model 212. This is just for illustrative reasons and it shall in particular illustrate that the wind speed, or other state variables which are not technically part of the wind turbine, may be considered as an augmented state variable. That shall be illustrated by the augmented wind turbine model 212.

    [0118] The purpose for this observer 204 is thus to estimate the wind speed V.sub.W and accordingly the output of the observer 204 is the estimated wind speed {circumflex over (V)}.sub.W.

    [0119] This estimated wind speed {circumflex over (V)}.sub.w is used for controlling the wind turbine and is thus inputted into the controller 214. The controller 214 may thus control the wind turbine or it may be part of a general wind turbine controller. However, for the controller 214 two functions are illustrated, i.e., to determine a generator torque m based on the estimated wind speed and to determine a common pitch angle θ based on the estimated wind speed. This is indicated in the controller 214 as two simple formulas. However, one possibility to put that into practice is to use a corresponding operational curve. In particular, two such operational curves may be used and one may be a wind speed-torque curve and the other a wind speed-pitch angle curve. Thus, the wind speed-torque curve shows a relationship between said two values. The same applies to the wind speed-pitch angle curve.

    [0120] Accordingly, the controller 214 determines a set value for the generator torque ms and also a set value for the common pitch angle θ.sub.s. These values are then used to control the wind turbine. The set value for the common pitch angle may be sent to pitch angle adjustment units (e.g., pitch drives) which may be located one for each rotor blade. The set value for the generator torque ms may be used to control a stator current of the generator, if the generator is a synchronous generator. If the synchronous generator is having an adjustable excitation, adjusting such excitation may also or only be used to put the set value for the generator torque into practice.

    [0121] Accordingly, by using the estimated wind speed {circumflex over (V)}.sub.W the operation of the wind turbine can be adapted to the actual wind speed. However, the quality of such operational concept depends on the quality of the estimated wind speed {circumflex over (V)}.sub.W. It was realized that the variation of the wind speed by time or by location, cannot be predicted or measured in detail, but expected variations of the wind speed may statistically be considered. This way the observer and thus the estimated wind speed {circumflex over (V)}.sub.W can be improved.

    [0122] Accordingly, it is suggested to incorporate expected variations of the wind as at least one stochastic variable and this stochastic variable is depicted in FIG. 2 as V.sub.arV.sub.w. This is inputted into the observer and thereby considered by the observer. One possibility to put this into practice is to use a Kalman filter as the observer. Such Kalman filter is, as known by the skilled person, particularly designed to consider noise of measurements. However, it was found that it can also be used to consider the variations of the wind, in particular variations of the wind speed as such uncertainties and thus to incorporate such expected variations of the wind as at least one stochastic variable.

    [0123] FIG. 3 shows a generator 130 in a side view in a schematic way. The generator comprises a stator 132 and an aerodynamic rotor 134 which is attached to the stator in a rotatable manner. The rotor 134 and the stator 132 are attached to a machine carrier by means of an axial journal 136. The stator 132 comprises a stator carrier 140 and a laminated core 142 forming stator poles of the generator 130 and which are attached to the stator ring 144 to the stator carrier. The electrodynamic rotor 134 comprises rotor shoes 146 forming the rotor poles and which are by means of a rotor carrier 148 and a bearing 150 supported rotatable around a rotational axis 152 supported on the axial journal 136. The stator laminated core 142 and rotor pole shoes 146 are only separated by a small air gap 154. In operation the electrodynamic rotor 134 of the generator 130 rotates with the rotor hub 156 of the aerodynamic rotor.

    [0124] The aerodynamic rotor may be one as shown in FIG. 1 and FIG. 2 and only part of one rotor blade 158 is shown. In addition, a pitch actuator 304 for rotating said rotor blade 158 is also shown. This pitch actuator 304 may also comprise a sensor (e.g., accelerometer, gyroscope or inclinometer) for identifying the pitch angle of said rotor blade 158. The generator 130 as well as the machine carrier 138 may be inside a nacelle such as the nacelle 104 of FIG. 1. The machine carrier 138 may this way be located on top of a tower such as the tower 102 of FIG. 1.

    [0125] In this respect FIG. 3 may thus show part of a wind turbine 100 according to FIG. 1 or FIG. 2. This wind turbine explained with respect to FIG. 3 is adapted for using an estimated wind speed for controlling the wind turbine. Such wind turbine comprises an aerodynamic rotor and this aerodynamic rotor is just as a simplification named rotor in this application, i.e., only the explicitly mentioning of an electrodynamic rotor according to FIG. 3 is directed to such electrodynamic rotor, i.e., to a runner of the generator. Any other mentioning of a rotor is directed to an aerodynamic rotor such as the aerodynamic rotor 106 of FIG. 1.

    [0126] The aerodynamic rotor comprises three rotor blades 158 and each rotor blade 158 can be pivoted with respect to its pitch angle by means of a pitch actuator 304 which also comprises a pitch determination unit. This pitch actuator and thus pitch determination unit 304 may also output a common pitch angle θ. This common pitch angle θ may be inserted into the estimation unit (e.g., controller) 310 which comprises an observer (e.g., controller), such as the observer 204 of FIG. 3. The estimation unit 310 may even be identical with the observer. However, the estimation unit may in addition comprise electrical terminals or data terminals for connecting corresponding data buses, whereas the observer focusses on the functionality of estimating the wind speed.

    [0127] The rotor hub 156 and thus the aerodynamic rotor rotates around the rotational axis 152. Therefore, it is supported in a rotatable manner by means of the bearing 150 to the axial journal 136. Accordingly, the axial journal 136 is fixed and the rotor hub 156 rotates relatively to the axial journal 136. Accordingly, a speed sensor (e.g., incremental encoder) 302 is fixed to the axial journal but is directed to one part of the rotor hub 156 in order to measure the rotor speed of this rotor hub 156 and thus of the aerodynamic rotor. However, the sensor may be attached at different locations, i.e., at the stator carrier 140 in order to sense the movement of the rotor carrier 148.

    [0128] However, the speed sensor 302 outputs a speed signal n and that is inputted into the estimation unit 310.

    [0129] In addition, the generator 130 and in particular the stator 132 have a stator output 312 for outputting a stator current. Such stator current may be a three-phase current or in other embodiments that may be a six-phase current, e.g., two three-phase currents. This can be inputted into a generator power unit 308, which is preferably an active rectifier as also shown in FIG. 3. It is proposed to use an active rectifier for any embodiments.

    [0130] Such active rectifier, i.e., the generator power unit 308 can control the stator current and thus the output power of the generator. Accordingly, the output power is also known by this generator power unit 308 and this output power P is outputted in order to use it for the estimation unit 310.

    [0131] FIG. 3 shows as a main suggestion to divide this output power P by the rotor speed n and that is illustrated by the dividing circuitry (e.g., controller) 314. The result is a generator torque m and this generator torque m may be inputted into the estimation unit 310.

    [0132] However, as an alternative approach the output power P may directly be inputted into the estimation unit 310. That is indicated by the dotted line bypassing the dividing circuitry 314.

    [0133] Thus, based on the pitch angle θ, the rotor speed n and the generator torque m the estimation unit estimates the estimated wind speed {circumflex over (V)}.sub.W. In order to do that it also incorporates expected variations of the wind as at least one stochastic variable V.sub.arV.sub.w.

    [0134] The result is the estimated wind speed {circumflex over (V)}.sub.W and that is inputted into the controller sub circuitry (e.g., controller) 316. The controller sub circuitry 316 may work just as the controller 214 of FIG. 2.

    [0135] The resulting set values for the generator torque ms and the set value for the common pitch angle θ.sub.s is submitted to the turbine controller 306. The turbine controller 306 uses these variables, as well as other variables to control the wind turbine accordingly.

    [0136] In particular, the turbine controller 306 may calculate a pitch angle speed dθ/dt in order to submit this pitch angle speed to the pitch actuator and thus pitch determination unit 304. Accordingly, the pitch actuator sets a pitch angle speed according to such set value and rotates the corresponding rotor blade accordingly. However, such calculation may also take place at a controller located at the pitch actuator.

    [0137] The turbine controller 306 may also calculate a set value for the stator current in order to adjust the generator torque this way. Such set value for the stator current Is may be submitted to the generator power unit 308, i.e., to the active rectifier 308. The output current outputted by the generator 130 at the stator output 312 is controlled accordingly. However, that is just one possibility. It might also be possible that a controller which is part of the active rectifier and thus part of the generator power unit 308 may directly receive a set value for the generator torque ms and control the generator torque accordingly. In this case the generator power unit 308 may also receive a rotational speed, or it may determine such rotational speed according to the frequency of the stator current.

    [0138] It may also be possible that instead of controlling the stator current or in addition of controlling the stator current, an excitation of the generator is controlled, if the generator is designed as such generator having an adjustable excitation.

    [0139] The power generated by the generator is thus rectified by the active rectifier, i.e., the generator power unit 308 and this rectified current and voltage may be submitted to an inverter 318. This inverter 318 generates a three-phase current in order to feed this into the electrical supply grid 320 via the transformer 322.

    [0140] In particular elements such as the dividing unit 314, the estimation unit 310, the controller sub circuitry 316 and the turbine controller 306 may be put into practice as part of a microcontroller and/or as a software block.

    [0141] A generalized plant model is suggested and also described in C. Scherer, Theory of Robust Control, Systems & Control group TU Delft, 2007., Theorem 8, p. 26. That document is also depicted as 1 or Lit1 and herewith incorporated by reference. The generalized plant model represents a wind turbine with the following dynamics, which are just briefly listed here and which are described in more detail above and further below by way of example and using formulas: [0142] Rotor wake (dynamic inflow) [0143] Drive train [0144] Generator [0145] Pitch [0146] Tower

    [0147] The tower dynamics are identified using the subspace identification method Past-Input Multivariable Output-Error State sPace (PI-MOESP) method, described in V. Verdult M. Verhaegen, Filtering and System Identification: A Least Square Approach, Cambridge University Press, 2007, p. 320. That document is also depicted as 2 or Lit2 and herewith incorporated by reference. The identified model reproduces the following motions: [0148] tower top sideways acceleration in m/s.sup.2 [0149] nacelle roll acceleration in rad/s.sup.2 [0150] tower top fore after acceleration in m/s.sup.2 [0151] nacelle tilt acceleration in rad/s.sup.2

    [0152] In addition, for rotor speed measurement correction a nacelle roll velocity in rad/s is reproduced and for wind speed correction a tower top fore after velocity in m/s.

    [0153] Such generalized plant model or a part thereof may be used as the observer model or the observer model may be based on this generalized plant model or on part of the generalized plant model.

    [0154] The following mathematical description maybe used.

    [0155] A state space realization of the generalized plant yields:


    x(k+1)=A.Math.x(k)+B.sub.ctrl.Math.u.sub.ctrl(k)+B.sub.exog.Math.u.sub.exog(k)  (1)


    y(k)=C.sup.y.Math.x(k)+d.sub.ctrl.sup.y.Math.u.sub.ctrl(k)+D.sub.exog.sup.y.Math.u.sub.exog(k)  (2)


    z(k)=C.sup.z.Math.x(k)+D.sub.ctrl.sup.z.Math.u.sub.ctrl(k)+D.sub.exog.sup.z.Math.u.sub.exog(k)  (3)

    for the system matrices and N the number of states:

    TABLE-US-00001 A ϵ custom-character .sup.N×N State matrix B.sub.ctrl ϵ custom-character .sup.N×4 Coatrol-input matrix C.sup.y ϵ custom-character .sup.10×N Measurement -output matrix D.sub.ctrl.sup.y ϵ custom-character .sup.10×4 Measurement-control feed through matrix D.sub.exog.sup.y ϵ custom-character .sup.10×3 Measurement-exogenous feed through matrix B.sub.exog ϵ custom-character .sup.N×3 Exogenous-input matrix C.sup.z ϵ custom-character .sup.2×N Exogenous-out put matrix D.sub.ctrl.sup.z ϵ custom-character .sup.2×4 Exogenous-control feed through matrix D.sub.exog.sup.z ϵ custom-character .sup.2×3 Exogenous-exogenous feed through matrix

    [0156] Let:

    TABLE-US-00002 State vector x ϵ custom-character .sup.N: x.sub.1.sup.α(k) − x.sub.1.sup.α(k − 1) [m/s] x.sub.1.sup.t(k) − x.sub.1.sup.t(k − 1) [m/s] Axial and tangential induction x.sub.aero.sup.wake . [m/s] velocity change for . . x.sub.n.sup.α(k) − x.sub.n.sup.α(k − 1) [m/s] n annular sections x.sub.ntext missing or illegible when filed (k) − x.sub.n.sup.t(k − 1) [m/s] x.sub.generator [Nm] Generator torque x.sub.tower [—] Identified tower states x.sub.drive train x.sub.ϕ.sub.r [rad] Rotor azimuth x.sub.Ω.sub.r [rad/s] Rotor speed x.sub.pitch x.sub.θ.sub.1 [deg] Pitch angle blade 1 x.sub.θ.sub.2 [deg] Pitch angle blade 2 x.sub.θ.sub.3 [deg] Pitch angle blade 3 custom-character [deg] Delayed pitch rate setpoint blade 1 custom-character [deg] Delayed pitch rate setpoint blade 2 custom-character [deg] Delayed pitch rate setpoint blade 3 x.sub.k.sub.U [m/s] Delayed free upstream wind speed custom-character [m/s] Delayed rotor speed x.sub.k.sub.θ [deg] Delayed average pitch angle Exogenous-input vector u.sub.exog ϵ custom-character .sup.3: u.sub.exog,U U [m/s] Free upstream wind speed u.sub.exog,F F.sub.axial.sup.qs [N] Rotor thrust quasi-static u.sub.exog,T T.sub.rotor.sup.qs [N] Rotor torque quasi-static Measurement-ouput vector y ϵ custom-character .sup.10: y.sub.generator T.sub.gen [Nm] Generator torque y.sub.tower α.sub.sw.sup.tow [m/s.sup.2] Tower top side ways acceleration α.sub.roll.sup.nac [rad/s.sup.2] Nacelle roil acceleration α.sub.fa.sup.tow [m/s.sup.2] Tower top fore after acceleration α.sub.tilt.sup.nac [rad/s.sup.2] Nacelle tilt acceleration y.sub.drive train ϕ.sub.r [rad] Rotor azimuth Ω.sub.r [rad/s.sup.2] Rotor speed y.sub.pitch θ.sub.1 [deg] Pitch angle blade 1 θ.sub.2 [deg] Pitch angle blade 2 θ.sub.3 [deg] Pitch angle blade 3 Exogenous-output vector z ϵ custom-character .sup.2: z.sub.F F.sub.axial [N] Rotor thrust quasi-static + wake z.sub.P P.sub.rotor [W] Rotor power quasi-static + wake Control-input vector u.sub.ctrl ϵ custom-character .sup.4: u.sub.generator T.sub.gen.sup.sp [Nm] Generator torque setpoint u.sub.pitch {dot over (θ)}.sub.1.sup.sp [deg/s] Pitch rate setpoint blade 1 {dot over (θ)}.sub.2.sup.sp [deg/s] Pitch rate setpoint blade 2 {dot over (θ)}.sub.3.sup.sp [deg/s] Pitch rate setpoint blade 3 text missing or illegible when filed indicates data missing or illegible when filed

    [0157] Let the structure of the state space system of Eq. 1, 2 and 3 satisfy:

    [00001] ( x aero wake ( k + 1 ) x generator ( k + 1 ) x tower ( k + 1 ) x drive train ( k + 1 ) x pitch ( k + 1 ) x k U ( k + 1 ) x k Ω r ( k + 1 ) x k θ ( k + 1 ) ) x ( k + 1 ) = ( A aero wake 0 0 B aero , Ω r wake .Math. D k Ω r .Math. C Ω r B aero , θ wake .Math. D k θ .Math. C θ B aero , U wake .Math. C k U B aero , Ω r wake .Math. C Ω r B aero , θ wake .Math. C k θ 0 A generator 0 0 0 0 0 0 B tower F .Math. C aero , F wake B tower T g .Math. C generator A tower 0 0 0 0 0 B drive train T r .Math. C aero , T r wake B drive train T g .Math. C generator 0 A drive train 0 0 0 0 0 0 0 0 A pitch 0 0 0 0 0 0 0 0 A k U 0 0 0 0 0 B k Ω r .Math. C Ω r 0 0 A k Ω r 0 0 0 0 0 B k θ .Math. C θ 0 0 A k θ ) A .Math. ( x aero wake ( k ) x generator ( k ) x tower ( k ) x drive train ( k ) x pitch ( k ) x k U ( k ) x k Ω r ( k ) x k θ ( k ) ) x ( k ) + ( 0 0 B generator 0 0 0 0 0 0 B pitch 0 0 0 0 0 0 ) B ctrl .Math. ( u generator ( k ) u pitch ( k ) ) u control ( k ) + ( U ( k ) y aero , F qs ( k ) y aero , T r qs ( k ) ) u exog ( k ) ( y aero ( k ) y generator ( k ) y tower ( k ) y drive train ( k ) y pitch ( k ) ) y ( k ) z ( k ) = ( C aero wake 0 0 0 0 0 0 0 0 C generator 0 0 0 0 0 0 D tower F .Math. C aero , F wake D tower T g .Math. C generator C tower 0 0 0 0 0 0 0 0 C drive train 0 0 0 0 0 0 0 0 C pitch 0 0 0 ) C y C z .Math. ( x aero wake ( k ) x generator ( k ) x tower ( k ) x drive train ( k ) x pitch ( k ) x k U ( k ) x k Ω r ( k ) x k θ ( k ) ) x ( k ) + ( 0 0 0 0 0 0 0 0 0 0 0 0 ) D ctrl y D ctrl z .Math. ( u generator ( k ) u pitch ( k ) ) u control ( k ) + ( 0 1 0 0 0 Ω r ( k ) 0 0 0 0 D tower F 0 0 0 0 0 0 0 ) D exog y D exop z .Math. ( U ( k ) y aero , F qs ( k ) y aero , T r qs ( k ) ) u exog ( k )

    [0158] In particular, the following two Kalman filter types maybe used: [0159] dual square{root covariance Kalman filter (DSRCKF) [0160] augmented{state extended square{root covariance Kalman filter (AESRCKF)

    [0161] With respect to the DSRCKF the below mentioned processes are discussed: [0162] Generalized plant [0163] Velocity supplement for rotor speed measurement and wind speed correction [0164] Random walk modelled rotor (aerodynamic) torque for wind speed reconstruction

    [0165] Process (Generalized Plant):


    x(k+1)=A.Math.x(k)+B.sub.ctrl.Math.u.sub.ctrl(k)+B.sub.exog.Math.u.sub.exog(k)+w.sub.x(k)


    y(k)=C.sup.y.Math.x(k)+D.sub.ctrl.sup.y.Math.u.sub.ctrl(k)+D.sub.exog.sup.y.Math.u.sub.exog(k)+v.sub.y(k)

    for the random Gaussian variables:


    w.sub.x(k)=w.sub.x(k)+Q.sup.x(k).Math.w.sup.x(k), w.sup.xcustom-character(0,I)


    w.sub.y(k)=w.sub.y(k)+R.sup.y(k).Math.v.sup.y(k), v.sup.ycustom-character(0,I)

    [0166] For a minimum-variance unbiased state estimate to become feasible assume:


    custom-character{w.sub.x(k)w.sub.x.sup.T(l)}=[Q.sup.x(k)].sup.2.Math.δ(k−l)≥0, w.sub.x=w.sub.y=0


    custom-character{v.sub.y(k)v.sub.y.sup.T(l)}=[R.sup.y(k)].sup.2.Math.δ(k−l)>0,

    Model & Filter:

    [0167] Measurement Update


    {right arrow over (y)}(k)=C.sup.y.Math.{circumflex over (x)}(k|k−1)+D.sub.ctrl.sup.y.Math.u.sub.ctrl(k)  (4)

    for a output estimate ŷ(k) and state estimate {circumflex over (x)}(k|k−1) at time k given by the information at time k−1.

    [0168] Time Update


    {circumflex over (x)}(k+1|k)=A.Math.{circumflex over (x)}(k|k−1)+B.sub.ctrl.Math.u.sub.ctrl(k)+K.sup.x.Math.(y(k)−ŷ(k))  (5)

    for a one-step-ahead predicted state estimate {circumflex over (x)}(k+1|k) and a Kalman gain K.sup.x.

    [0169] Process (Velocity Supplement):


    x.sub.v(k+1)=x.sub.v(k)+T.sub.s.Math.u.sub.v(k)+w.sub.v(k), u.sub.v=[a.sub.roll.sup.naca.sub.fa.sup.tow].sup.T


    y.sub.v(k)=x.sub.v(k)+v.sub.v(k), x.sub.v=[ω.sub.roll.sup.nacv.sub.fa.sup.tow].sup.T

    for the random Gaussian variables:


    w.sub.v(k)=w.sub.v(k)+Q.sup.v(k).Math.w.sup.v(k), w.sup.vcustom-character(0,I)


    v.sub.v(k)=v.sub.v(k)+R.sup.v(k).Math.v.sup.v(k), v.sup.vcustom-character(0,I)

    [0170] For a minimum-variance unbiased state estimate to become feasible assume:


    custom-character{w.sub.v(k)w.sub.v.sup.T(l)}=[Q.sup.v(k)].sup.2.Math.δ(k−l)≥0, w.sub.v=v.sub.v=0


    custom-character{v.sub.v(k)v.sub.v.sup.T(l)}=[R.sup.v(k)].sup.2.Math.δ(k−l)>0,

    Model & Filter:

    [0171] Measurement Update


    ŷ.sub.v(k)={circumflex over (x)}.sub.v(k|k−1)  (6)

    for a output estimate ŷ.sub.v (k) and state estimate {circumflex over (x)}.sub.v (k|k−1) at time k given by the information at time k−1.

    [0172] Time Update


    {circumflex over (x)}.sub.v(k+1|k)={circumflex over (x)}.sub.v(k|k−1)+T.sub.s.Math.û.sub.v(k)+K.sup.v.Math.(y.sub.v(k)−ŷ.sub.v(k))  (7)

    [0173] for a one-step-ahead predicted state estimate {circumflex over (x)}.sub.v(k+1|k) and a Kalman gain K.sup.v.

    [0174] Rotor Speed Measurement Correction

    [0175] The output estimated rotor speed {circumflex over (Ω)}.sub.r from the generalized plant Kalman filter Eq. 4-5 is corrected with:


    {circumflex over (Ω)}.sub.r(k)={circumflex over (x)}.sub.Ω.sub.r(k|k−1)−{circumflex over (ω)}.sub.roll.sup.nac(k|k−1)  (8)

    for the estimated nacelle roll velocity ω.sub.roll.sup.nac.

    [0176] Process (random walk modelled rotor torque):


    u.sub.exog,T(k+.sup.1)=u.sub.exog,T(k)+w.sub.exog,T(k), u.sub.exog,T(k)=T.sub.rotor.sup.qs(k)


    y.sub.exog,T(k)=u.sub.exog,T(k)+v.sub.exog,T(k), y.sub.exog,T(k)=B.sub.exog,T.sup.−1.Math.K.sup.x.Math.(y(k)−y(k))

    for the random Gaussian variables:


    w.sub.exog,T(k)=Q.sub.exog,T(k).Math.w.sup.exog,T(k), w.sup.exog,Tcustom-character(0,I)


    v.sub.exog,T(k)=R.sub.exog,T(k).Math.v.sup.exog,T(k), v.sup.exog,Tcustom-character(0,I)

    [0177] For a minimum-variance unbiased state estimate to become feasible assume:


    custom-character{w.sub.exog,T(k)w.sub.exog,T.sup.T(l)}=[Q.sub.exog,T(k)].sup.2.Math.δ(k−l)≥0,


    custom-character{v.sub.exog,T(k)v.sub.exog,T.sup.T(l)}=[R.sub.exog,T(k)].sup.2.Math.δ(k−l)>0,

    Model & Filter:

    [0178] Measurement Update


    ŷ.sub.exog,T(k)=û.sub.exog,T(k|k−1)  (9)


    û.sub.exog,T(k|k)=û.sub.exog,T(k|k−1)+K.sup.exog,T.Math.(y.sub.exog,T(k)−ŷ.sub.exog,T(k))  (10)

    for a filtered state estimate û.sub.exog,T (k|k) and a Kalman gain K.sup.exog,T.

    [0179] Time Update


    û.sub.exog,T(k+1|k)=û.sub.exog,T(k|k)

    [0180] for a one-step-ahead predicted state estimate û.sub.exog,T(k+1|k).

    [0181] Wind Speed Reconstruction & Correction

    [0182] A rotor effective wind speed .Math..sub.rotor is acquired from:


    .Math..sub.rotor(k)=ƒ({circumflex over (x)}.sub.Ω.sub.r(k|k−1),ŷ.sub.θ(k),û.sub.exog,T(k|k))  (12)

    where ƒ is the function as a result of the optimization problem subjected to: [0183] {circumflex over (x)}.sub.Ω.sub.r(k|k−1) state estimated rotor speed [0184] ŷ.sub.θ(k) output estimated pitch angle (average from 3 blades) [0185] û.sub.exog,T filtered rotor torque estimate
    and a set of polynomial functions for the aero efficiency.

    [0186] Next, a free upstream wind speed U can be obtained from:


    .Math.(k)=.Math..sub.rotor(k)+{circumflex over (v)}.sub.fa.sup.tow(k|k−1)  (13)

    for the estimated tower top fore after velocity {circumflex over (v)}.sub.fa.sup.tow.

    [0187] With respect to the AESRCKF the below mentioned processes are discussed: [0188] Generalized plant [0189] Velocity supplement for rotor speed measurement and wind speed correction [0190] Random walk modelled free upstream wind speed for wind speed estimation Process (Generalized plant):


    x(k+1)=A.Math.x(k)+B.sub.ctrl.Math.u.sub.ctrl(k)+B.sub.exog.Math.u.sub.exog(k)+w.sub.x(k)


    y(k)=C.sup.y.Math.x(k)+D.sub.ctrl.sup.y.Math.u.sub.ctrl(k)+D.sub.exog.sup.y.Math.u.sub.exog(k)+v.sub.y(k)

    for the random Gaussian variables:


    w.sub.x(k)=w.sub.x(k)+Q.sup.x(k).Math.w.sup.x(k), w.sup.xcustom-character(0,I)


    v.sub.y(k)=v.sub.y(k)+R.sup.y(k).Math.v.sup.y(k), v.sup.ycustom-character(0,I)

    [0191] For a minimum-variance unbiased state estimate to become feasible assume:


    custom-character{w.sub.x(k)w.sub.x.sup.T(l)}=[Q.sup.x(k)].sup.2.Math.δ(k−l)≥0, w.sub.x=w.sub.y=0


    custom-character{v.sub.y(k)v.sub.y.sup.T(l)}=[R.sup.y(k)].sup.2.Math.δ(k−l)>0,

    [0192] Process (Velocity Supplement):


    x.sub.v(k+1)=x.sub.v(k)+T.sub.s.Math.u.sub.v(k)+w.sub.v(k), u.sub.v=[α.sub.roll.sup.naca.sub.fa.sup.tow].sup.T


    y.sub.v(k)=x.sub.v(k)+v.sub.v(k), x.sub.v=[ω.sub.roll.sup.nacv.sub.fa.sup.tow].sup.T

    for the random Gaussian variables:


    w.sub.v(k)=w.sub.v(k)+Q.sup.v(k).Math.w.sup.v(k), w.sup.vcustom-character(0,I)


    v.sub.v(k)=v.sub.v(k)+R.sup.v(k).Math.v.sup.v(k), v.sup.vcustom-character(0,I)

    [0193] For a minimum-variance unbiased state estimate to become feasible assume:


    custom-character{w.sub.v(k)w.sub.v.sup.T(l)}=[Q.sup.v(k)].sup.2.Math.δ(k−l)≥0, w.sub.v=v.sub.v=0


    custom-character{v.sub.v(k)v.sub.v.sup.T(l)}=[R.sup.v(k)].sup.2.Math.δ(k−l)>0,

    [0194] Process (random walk modelled free upstream wind speed):


    x.sub.u(k+1)=x.sub.u(k)+w.sub.u(k)

    for the random Gaussian variable:


    w.sub.u(k)=Q.sup.u(k).Math.w.sup.u(k), w.sup.ucustom-character(0,I)

    [0195] For a minimum-variance unbiased state estimate to become feasible assume:


    custom-character{w.sub.u(k)w.sub.u.sup.T(l)}=[Q.sub.u(k)].sup.2.Math.δ(k−l)≥0

    Model & Filter (Generalized Plant+Velocity Supplement+Wind Speed):

    [0196] Measurement Update

    [0197] Measurement-Output Estimate:


    ŷ(k)=C.sup.y.Math.{circumflex over (x)}(k|k−1)+D.sub.ctrl.sup.y.Math.u.sub.ctrl(k)+D.sub.exog.sup.y.Math.û.sub.exog(k|k−1)  (14)


    ŷ.sub.v(k)={circumflex over (x)}.sub.v(k|k−1)  (15)

    [0198] Exogenous-Output Estimate:


    {circumflex over (z)}(k)=C.sup.z.Math.{circumflex over (x)}(k|k−1)+D.sub.ctrl.sup.z.Math.u.sub.ctrl(k)+D.sub.exog.sup.z.Math.û.sub.exog(k|k−1)  (16)

    for a state estimate x(k|k−1), velocity-state estimate x.sub.v(k|k−1) and exogenous-input estimate û.sub.exog (k|k−1) at time k given by the information at time k−1.

    [0199] The measurement-output estimated rotor speed {circumflex over (Ω)}.sub.r from Eq. 14 is corrected with:


    {circumflex over (Ω)}.sub.r={circumflex over (x)}.sub.Ω.sub.r(k|k−1)−ω.sub.roll.sup.nac(k|k−1)  (17)

    for the state estimated nacelle roll velocity {circumflex over (ω)}.sub.roll.sup.nac.

    [0200] Filtered State Estimate:


    {circumflex over (x)}(k|k)={circumflex over (x)}(k|k−1)+K.sup.x[{circumflex over (x)}(k|k−1),{circumflex over (x)}.sub.u(k|k−1)].Math.(y(k)−ŷ(k))  (18)


    {circumflex over (x)}.sub.u(k|k)={circumflex over (x)}.sub.u(k|k−1)+K.sup.u[{circumflex over (x)}(k|k−1),{circumflex over (x)}.sub.u(k|k−1)].Math.(y(k)−ŷ(k))  (19)

    for a generalized plant Kalman gain K.sup.x and free upstream wind speed Kalman gain K.sup.u.

    [0201] Filtered Exogenous-Input Estimate:

    [00002] u ^ exog ( k .Math. k ) = ( x ^ u ( k .Math. k ) F ^ axial qs [ x ^ ( k .Math. k ) , x ^ u ( k .Math. k ) - v ^ fa tow ( k .Math. k - 1 ) ] T ^ rotor qs [ x ^ ( k .Math. k ) , x ^ u ( k .Math. k ) - v ^ fa tow ( k .Math. k - 1 ) ] ) ( 20 )

    for the state estimated tower top fore after velocity {circumflex over (v)}.sub.fa.sup.tow.

    [0202] Time Update

    [0203] One-Step-Ahead Predicted State Estimate:


    {circumflex over (x)}(k+1|k)=A.Math.{circumflex over (x)}(k|k)+B.sub.ctrl.Math.u.sub.ctrl(k)+B.sub.exog.Math.û.sub.exog(k|k)  (21)


    {circumflex over (x)}.sub.v(k+1|k)={circumflex over (x)}.sub.v(k|k−1)+T.sub.s.Math.û.sub.v(k)+K.sup.v.Math.(y.sub.v(k)−ŷ.sub.v(k))  (22)


    {circumflex over (x)}.sub.u(k+1|k)={circumflex over (x)}.sub.u(k|k)  (23)

    for a filtered state estimate {circumflex over (x)}(k|k), filtered free upstream wind speed estimate {circumflex over (x)}.sub.u(k|k), filtered exogenous-input estimate û.sub.exog(k|k) and velocity supplement Kalman gain K.sup.v.

    [0204] One-Step-Ahead Predicted Exogenous-Input Estimate:

    [00003] u ^ exog ( k + 1 .Math. k ) = ( x ^ u ( k + 1 .Math. k ) F ^ axial qs [ x ^ ( k + 1 .Math. k ) , x ^ u ( k + 1 .Math. k ) - v ^ fa tow ( k + 1 .Math. k ) ] T ^ rotor qs [ x ^ ( k + 1 .Math. k ) , x ^ u ( k + 1 .Math. k ) - v ^ fa tow ( k + 1 .Math. k ) ] ) ( 24 )

    for the one-step-ahead predicted state estimated tower top fore after velocity {circumflex over (v)}.sub.fa.sup.tow.