23.08.2013 Views

DOWEC Blade pitch control algorithms for blade optimisation ... - ECN

DOWEC Blade pitch control algorithms for blade optimisation ... - ECN

DOWEC Blade pitch control algorithms for blade optimisation ... - ECN

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>DOWEC</strong> <strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong><br />

<strong>for</strong> <strong>blade</strong> <strong>optimisation</strong> purposes<br />

E.L. van der Hooft<br />

28th February 2001


Abstract<br />

As part of the first stage of the <strong>DOWEC</strong> project, a base <strong>control</strong> structure <strong>for</strong> a 3MW<br />

HAWT has been developed to support the evaluation of different rotor designs by means of<br />

load set calculations with PHATAS.<br />

During full load operation the rotorspeed is <strong>control</strong>led by <strong>blade</strong> <strong>pitch</strong> speed adjustments<br />

towards feathering position to limit aerodynamic power. The basic <strong>control</strong>ler consists of a<br />

rotorspeed feedback structure using a scheduled linear PD-compensator with non-linear<br />

extensions. At partial load operation, the <strong>blade</strong> <strong>pitch</strong> angle is simply set to a constant value<br />

at which optimal tip-speed occurs.<br />

The report describes the structure and stability of the basic <strong>control</strong> algorithm, used <strong>for</strong><br />

each rotor concept, and emphasizes the used assumptions and limitations. Rotor specific<br />

tuned parameter sets have been calculated. Time domain simulations driven by rotor<br />

effective windspeed, results in comparable <strong>control</strong> per<strong>for</strong>mance and energy yield of the<br />

FORTRAN algorithm <strong>for</strong> each proposed rotor design.<br />

As soon as a final rotor design has been defined, additional features to the basic <strong>control</strong><br />

structure and detailed analysis are recommended. Energy yield improvements will be<br />

possible by feed<strong>for</strong>ward <strong>control</strong> based on wind speed estimation and more extended<br />

<strong>control</strong>ler scheduling. Active damping of tower and drive train resonances will be<br />

important to reduce fatigue.<br />

Acknowledgement<br />

The reported work is carried out within the scope of the <strong>DOWEC</strong> research and<br />

development project, partly funded by the Dutch EET program. Tim van Engelen<br />

(<strong>ECN</strong>) is acknowledged <strong>for</strong> helpfull development support and his pleasant commitment.<br />

Thanks to Frank Goezinne (NEG-MICON Holland), Rene van den Berg<br />

(LM Glasfiber Holland) Koert Lindenburg (<strong>ECN</strong>) and Edwin Bot (<strong>ECN</strong>) <strong>for</strong> good<br />

cooperation and handing turbine data. Finally, Ben Hendriks is acknowledged <strong>for</strong><br />

project management.<br />

2 <strong>ECN</strong>-CX--00-083


Distribution<br />

NEG-MICON Holland 1-2<br />

LM Glasfiber Holland 3<br />

F.W. Saris 4<br />

W. Schatborn 5<br />

H.J.M. Beurskens 6<br />

L.W.M.M Rademakers 7<br />

H.B. Hendriks 8<br />

T.G. van Engelen 9<br />

J.T.G. Pierik 10<br />

P. Schaak 11<br />

C. Lindenburg 12<br />

E.L. van der Hooft 13-14<br />

M.S.J. Bruin 15<br />

<strong>ECN</strong> Centraal Archief 16<br />

<strong>ECN</strong>-DE Archief 17-21<br />

<strong>ECN</strong>-CX--00-083 3


CONTENTS<br />

1. INTRODUCTION 5<br />

2. POINTS OF DEPARTURE 7<br />

2.1 Control objective and restrictions . . . . . . . . . . . . . . . . 7<br />

2.2 Turbine constants . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.3 Rotor aerodynamic characteristics . . . . . . . . . . . . . . . . 8<br />

2.4 Generator characteristics . . . . . . . . . . . . . . . . . . . . . 9<br />

2.5 Pitch actuation system and <strong>control</strong> equipment . . . . . . . . . . 10<br />

3. CONTROLLER DESIGN 11<br />

3.1 Control structure . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

3.2 Linear PD compensator . . . . . . . . . . . . . . . . . . . . . 12<br />

3.3 Parameters and setpoints . . . . . . . . . . . . . . . . . . . . . 13<br />

3.4 Time domain simulation . . . . . . . . . . . . . . . . . . . . . 15<br />

4. CONCLUSIONS 19<br />

REFERENCES 21<br />

APPENDIX A. CONTROL ALGORITHM (LMH95) 23<br />

A.1 Parameters and setpoints: DATBLOK1.fi . . . . . . . . . . . . 23<br />

A.2 Control code: SBAGPRD1.f . . . . . . . . . . . . . . . . . . . 25<br />

APPENDIX B. CONTROL ALGORITHM (LMH46-5-X00) 37<br />

B.1 Modification with respect to LMH95 . . . . . . . . . . . . . . . 37<br />

B.2 Parameters and setpoints: DATBLOK3.fi . . . . . . . . . . . . 37<br />

APPENDIX C. CONTROL ALGORITHM (LMH46-5-X01) 41<br />

C.1 Modification with respect to LMH46-5-X00 . . . . . . . . . . . 41<br />

C.2 Parameters and setpoints: DATBLOK4.fi . . . . . . . . . . . . 41<br />

APPENDIX D. CONTROL ALGORITHM (LMH46-5-X02) 45<br />

D.1 Modification with respect to LMH46-5-X00 . . . . . . . . . . . 45<br />

D.2 Parameters and setpoints: DATBLOK5.fi . . . . . . . . . . . . 45<br />

APPENDIX E. CONTROL ALGORITHM (LMH46-5-X00-A) 49<br />

E.1 Modification with respect to LMH46-5-X00 . . . . . . . . . . . 49<br />

E.2 Parameters and setpoints: DATBLOK6.fi . . . . . . . . . . . . 50<br />

APPENDIX F. CONTROL ALGORITHM (LMH46-5-X00-B) 53<br />

F.1 Modification with respect to LMH46-5-X00 . . . . . . . . . . . 53<br />

F.2 Parameters and setpoints: DATBLOK7.fi . . . . . . . . . . . . 54<br />

APPENDIX G. CONTROL ALGORITHM (LMH46-5-X01-HI) 57<br />

G.1 Modification with respect to LMH46-5-X00 . . . . . . . . . . . 57<br />

G.2 Parameters and setpoints: DATBLOK8.fi . . . . . . . . . . . . 58<br />

4 <strong>ECN</strong>-CX--00-083


1. INTRODUCTION<br />

In favour of the <strong>DOWEC</strong> project 1 <strong>blade</strong> <strong>pitch</strong> <strong>algorithms</strong> has to be designed.<br />

Stage I of the <strong>DOWEC</strong> project implies development of a 3MW prototype windturbine<br />

(NM3000), initially <strong>for</strong> onshore operation and later (stage II) <strong>for</strong> offshore<br />

operation. The concept of the NM3000 is determined as a 3-<strong>blade</strong>d horizontal axis<br />

wind turbine (HAWT) with a variable speed driven 3MW double fed generator<br />

and an active <strong>pitch</strong> system.<br />

As part of stage I, different <strong>blade</strong> designs have been defined. To evaluate these<br />

designs, load set calculations with PHATAS [14] have to prove both the aerodynamic<br />

and structural properties of each rotor design 2 . To take realistic <strong>blade</strong><br />

<strong>pitch</strong>ing actions into account, <strong>for</strong> each <strong>blade</strong> design a basic <strong>blade</strong> <strong>pitch</strong> algorithm<br />

has to be designed to <strong>control</strong> the rotor speed in full operation by means of <strong>pitch</strong><br />

angle adjustments. As soon as a final rotor design is defined and turbine data<br />

is more valid, additional features (reducing resonance effects, improvements of<br />

energy yield) will be added to the basic <strong>blade</strong> <strong>pitch</strong> algorithm.<br />

This report describes briefly the points of departure (chapter 2), the <strong>control</strong>ler<br />

design (chapter 3) and FORTRAN algorithm (Appendix A) of the basic <strong>blade</strong> <strong>pitch</strong><br />

<strong>control</strong>ler (Appendix A) based on a rotor (95m) having three LMH95-X00 <strong>blade</strong>s.<br />

Afterwards, a so called ‘new baseline’ rotor (96m) has been defined by using<br />

LMH46-5-X00 <strong>blade</strong>s and changing rated speed from 15.1rpm to 14.9rpm. Because<br />

the structure of the <strong>control</strong>ler remains similar, only relevant modifications<br />

and a modified (<strong>control</strong>)parameter set are listed in (Appendix B).<br />

With respect to the ‘baseline’ (LMH46-5-X00) the load consequenses of 10%<br />

slender <strong>blade</strong>s (LMH46-5-X01) and 10% wider <strong>blade</strong>s (LMH46-5-X02) were investigated<br />

by the PHATAS. The adapted (<strong>control</strong>)parameter sets are respectively<br />

listed in Appendix C and Appendix D.<br />

Another change with respect to the ‘baseline’ is based on reducing the rotor speed.<br />

PHATAS calculations have to prove whether the loss of 2% and 4% energy yield<br />

will fulfill the expected reduction of fatique (‘Low Lambda approach’). The<br />

(<strong>control</strong>)parameter sets are respectively listed in Appendix E and Appendix F.<br />

Finally, the rotor speed of the rotor with twist optimised LMH46-5-X01 <strong>blade</strong>s<br />

(LMH46-5-X01-Hi) has been increased to a rated tip-speed of 79m/s (rated rotor<br />

speed 15.9 rpm). The adapted (<strong>control</strong>)parameter set is listed in Appendix G.<br />

1 <strong>DOWEC</strong> means Dutch Offshore Wind Energy Converter and implies development of a 5-6MW<br />

offshore turbine by the <strong>DOWEC</strong> consortium in 2008<br />

2 in [14], the term ‘configuration’ instead of ‘design’ is used<br />

<strong>ECN</strong>-CX--00-083 5


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

6 <strong>ECN</strong>-CX--00-083


2. POINTS OF DEPARTURE<br />

2.1 Control objective and restrictions<br />

The <strong>control</strong> objective is defined as:<br />

‘Rotor speed regulation at rated rotor speed during full load operation (3MW<br />

electric power) by <strong>control</strong>ling the <strong>blade</strong> <strong>pitch</strong> angle in such a manner, that the lift<br />

coefficient lowers by decreasing the angle of attack and oppositely (‘<strong>pitch</strong> angle<br />

<strong>control</strong> to vane’)’. The amount of crossing the rated rotor speed is restricted by<br />

the maximum speed of the generator.<br />

Above cut-in and below rated rotor speed (partial load) the energy yield is maximised<br />

by an optimal tip speed ratio. In this region the <strong>blade</strong> <strong>pitch</strong> angle is <strong>for</strong>ced<br />

to a constant value, (-1 o , see figure 2.1) without further <strong>optimisation</strong> to improve<br />

energy yield or to lower noise.<br />

For convenience start-up has been carried out by <strong>control</strong>ling the <strong>blade</strong> <strong>pitch</strong> angle<br />

from feathering position to working position with (relative slow) constant <strong>blade</strong><br />

angular velocity (0.5 o /s).<br />

In this stage of the <strong>DOWEC</strong> project (with objective ‘<strong>blade</strong> <strong>optimisation</strong>’) the following<br />

additional <strong>control</strong> features and enhancements have NOT been incorporated<br />

3 :<br />

Scheduling of <strong>control</strong>ler gains based on rotor- and windspeed;<br />

Feed <strong>for</strong>ward <strong>control</strong> based on rotor effective wind speed estimation [4];<br />

Active damping of in plane tower resonances [6];<br />

Active damping of <strong>for</strong>e-aft tower resonances [9];<br />

Active damping of drive train resonances [15];<br />

Facility to avoid tower resonances in first bending mode during partial load.<br />

Fractional loss of energy yield or material fatique damage due to these assumptions<br />

are taken <strong>for</strong> granted in the concept stage of the <strong>DOWEC</strong> project. If required,<br />

these features will be added or developed in a next stage.<br />

2.2 Turbine constants<br />

Design of the <strong>blade</strong> <strong>pitch</strong> <strong>control</strong>ler is based on the following turbine data and<br />

constants [7], [2], [4].<br />

Vcutin = 3.5; % Cut-in windvelocity [m/s]<br />

Vcutout = 25.0; % Cut-out windvelocity [m/s]<br />

VwAnnual = 10; % Annual windvelocity [m/s]<br />

RpmDsgn = 13.7; % Synchronous speed of generator [rpm]<br />

RpmMin = 0.7*RpmDsgn; % Lowest partial load rotor speed of generator<br />

RpmMax = 1.3*RpmDsgn; % Highest rotor speed of generator<br />

RpmPartin = 9.6; % Cut-in rotor speed [rpm]<br />

RpmOptout = 14.5; % End of optimal lambda <strong>control</strong> (partial load operation)<br />

RpmRat = 15.1; % Rated rotor speed [rpm]<br />

Pelrat = 3e6; % Rated electric power [W]<br />

LAMBDA1 = 21; % Turbulence scale parameter (because hubheight >30m)<br />

L1 = 8.1*LAMBDA1; % Integral scale parameter in longitudinal direction<br />

3<br />

Research and concepts of these listed items are part of the <strong>ECN</strong>-project 7.4046 [5], funded by<br />

Dutch Ministery of Economic Affairs.<br />

<strong>ECN</strong>-CX--00-083 7


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

aIB = 3; % WTGS class (turbulence)<br />

I15IB = 0.16; % Turbulence intensity by 15m/s windvelocity at hubheight<br />

Etarat = 0.9386; % Gearbox and generator efficiency at rated conditions<br />

Rbs = 47.5; % Rotor radius (to rotorcenter) [m]<br />

Rhub = 1.2; % Hub radius [m]<br />

rho = 1.225; % Air density [kg/m^3]<br />

B = 3; % Number of <strong>blade</strong>s<br />

Jrs = 12619598; % Rotor inertia [kg*m^2]<br />

Jg = 200; % Generator inertia related HSS [kg*m^2]<br />

iTran = 109.5; % Gear box ratio [-]<br />

Zt = 100; % Hub Height [m]<br />

w0t = 2*pi*0.2; % Natural frequency of 1st bending mode of tower [rad/s]<br />

mt = 167670; % Tower top equivalent mass of 1st bending mode [kg]<br />

betat = 0.005; % Damping rate 1st bending mode of tower [-]<br />

alphac = 0; % Cone angle [dg]<br />

alphan = 5; % Tilt angle [dg]<br />

alphashear = 0.2; % Shearcoefficient [-]<br />

dtowtop = 3.5;, % Towertop diameter [m]<br />

dtowbase = 4.2; % Torenbase diameter [m]<br />

dn = 5.6; % Distance between rotor-center and toren-axis [m]<br />

TdelCtrl = 0.1; % Sample time <strong>control</strong> equipment [s]<br />

TdelNrpm = 0.5*TdelCtrl; % Measurementdelay rotor speed samples [s]<br />

TdelPtLoad = 0.1; % Extra delay <strong>pitch</strong>-actuator during speed reversal [s]<br />

TdelPtTrans = 0.0; % Representative delay <strong>pitch</strong> dynamics [s]<br />

TdelPtBase = 0.04; % Delay <strong>pitch</strong> actuator during normal operation [s]<br />

MaxRandNrpm = 0.05; % Amplitude random uni<strong>for</strong>m speed measurement noise<br />

Tgen = 0.3; % Generator time constant [s]<br />

grav = 9.83; % Gravity constant [m/s^2]<br />

2.3 Rotor aerodynamic characteristics<br />

Power coefficient and thrust coefficient characteristics of the turbine rotor with<br />

three LMH95 <strong>blade</strong>s are shown as function of tipspeed ratio <strong>for</strong> different <strong>blade</strong><br />

<strong>pitch</strong> angles in figure 2.1 and 2.2 (dashed lines respresents zero <strong>pitch</strong> angle).<br />

power coefficient [−]<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

power coefficient curves <strong>for</strong> <strong>pitch</strong> angles from −2 o , step 2 o , to 30 o<br />

0<br />

2 4 6 8 10 12 14 16<br />

tip to wind speed ratio [−]<br />

file C:\vdhooft\nm3000ct\DATA\PS\rot1\cpcurves.ps 30−Jun−2000<br />

by C:\vdhooft\nm3000ct\DATA\M\modpar.m<br />

Figure 2.1 Power coefficient curves at different <strong>pitch</strong> angles<br />

Both power- and thrust coefficient data are based on profile calculations obtained<br />

with <strong>Blade</strong> Optimisation Tool (BOT) [1].<br />

8 <strong>ECN</strong>-CX--00-083


thrust coefficient [−]<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

thrust coefficient curves <strong>for</strong> <strong>pitch</strong> angles from −2 o , step 2 o , to 30 o<br />

POINTS OF DEPARTURE<br />

0<br />

2 4 6 8 10 12 14 16<br />

tip to wind speed ratio [−]<br />

file C:\vdhooft\nm3000ct\DATA\PS\rot1\ctcurves.ps 30−Jun−2000<br />

by C:\vdhooft\nm3000ct\DATA\M\modpar.m<br />

Figure 2.2 Thrust coefficient curves at different <strong>pitch</strong> angles<br />

2.4 Generator characteristics<br />

The steady state behaviour of the double fed induction generator is calculated in<br />

accordance with the values of RpmDsgn, RpmMin, RpmMax, RpmPartin, RpmOptout,<br />

RpmRat, Pelrat as given in section 2.2. Five ranges are distinguished and shown in<br />

figure 2.3, viz.<br />

no production below Vcutin;<br />

transition from start-up to optimal tipspeed ratio <strong>control</strong>;<br />

optimal tip-speed ratio <strong>control</strong> during partial load (variable speed <strong>control</strong>);<br />

transition from optimal tipspeed ratio <strong>control</strong> to rated speed;<br />

constant power <strong>control</strong> from rated load up to Vcutout (‘constant speed <strong>control</strong>’).<br />

and shown in figure 2.3.<br />

generator torque (slow shaft equiv) [kNm]<br />

electric power [kW]<br />

2000<br />

1500<br />

1000<br />

500<br />

torque rotorspeed curve<br />

0<br />

8 10 12 14 16 18<br />

power rotorspeed curve<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

0<br />

8 10 12 14 16 18<br />

rotorspeed [rpm]<br />

electric power [kW]<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

rotor speed [rpm]<br />

500<br />

file C:\vdhooft\nm3000ct\DATA\PS\rot1\TPNVCurv.ps 30−Jun−2000<br />

by C:\vdhooft\nm3000ct\DATA\M\modpar.m<br />

power windspeed curve<br />

0<br />

0 5 10 15 20 25<br />

18<br />

16<br />

14<br />

12<br />

10<br />

rotorspeed windspeed curve<br />

8<br />

0 5 10 15 20 25<br />

wind speed [m/s]<br />

Figure 2.3 Steady state figures of generator torque, -power and -speed<br />

<strong>ECN</strong>-CX--00-083 9


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

Generator dynamics have been included with a conservative first order approximation.<br />

To achieve maximum energy yield it seems to be attractive to minimise the<br />

transition range from optimal speed-tip <strong>control</strong> to constant power <strong>control</strong> (steep<br />

slope). However, to ensure sufficient suppression of undesirable 3p wind excitation<br />

noise in the electric power, this is limited. The 3p reduction is determined<br />

by this ‘slope’ (gain), the effective inertia and the generator time constant. In a<br />

later stage of the <strong>DOWEC</strong> project (when more detailed generator data is available)<br />

more analysis will be carried out to specify possible restrictions due to this phenomenon.<br />

In the concept stage the transisition range is defined between 14.5rpm<br />

(1198kNm) and 15.1rpm (1898kNm) or a stiffness of 1170kNm/rpm related to<br />

slow shaft equivalent 4 , and the first order time constant is set to Tgen= 0.3s. In<br />

the region of ‘optimum tipspeed’ (between 9.6 and 14.5 rpm) a tip-speed ratio of<br />

7.0 is calculated.<br />

2.5 Pitch actuation system and <strong>control</strong> equipment<br />

For lack of detailed data of the <strong>pitch</strong> system in this stage of <strong>DOWEC</strong>, it was<br />

supposed to be valid to assume a <strong>pitch</strong>-actuating system with similar per<strong>for</strong>mance<br />

as used in the NW62- [3] and NM2000 turbine, [4]: a double acting hydraulic<br />

actuator with proportional servo.<br />

It seemed realistic to model the <strong>pitch</strong>ing system as a pure delay amounted to 0.04s<br />

<strong>for</strong> speed setpoint changes in the same direction of <strong>pitch</strong>ing. Additionally a delay<br />

of 0.1s has been applied to setpoint changes in reverse <strong>pitch</strong>ing direction.<br />

For the development of the <strong>control</strong>ler, only the expected measurement noise on<br />

the rotor speed was considered to be relevant, because of the differentiating action<br />

(D-action). There<strong>for</strong>e a uni<strong>for</strong>mly distributed random error of ± 0.05 rpm on the<br />

turbine rotor shaft was assumed. Measurement of <strong>blade</strong> angle was not corrupted<br />

with noise.<br />

4 <strong>for</strong> comparison, this corresponds with a virtual ‘slip’ of 11%<br />

10 <strong>ECN</strong>-CX--00-083


3. CONTROLLER DESIGN<br />

3.1 Control structure<br />

The structure of the <strong>blade</strong> <strong>pitch</strong> angle <strong>control</strong>ler is shown in figure 3.1. In full load<br />

nom<br />

Ωr<br />

setpoint<br />

adaptor<br />

Ω ref<br />

r<br />

+<br />

-<br />

PD<br />

linear<br />

PD <strong>control</strong>ler<br />

gain<br />

scheduler<br />

+<br />

+<br />

Rotorspeed<br />

limiter<br />

Θ full<br />

Θ lim( Ω )<br />

r<br />

Figure 3.1 Structure <strong>blade</strong> <strong>pitch</strong> angle <strong>control</strong>ler NM3000<br />

partial load<br />

<strong>pitch</strong> <strong>control</strong><br />

part<br />

Θ part<br />

partial/full load<br />

selector<br />

3pfilt<br />

Ω r<br />

full<br />

LPF<br />

dead zone &<br />

<strong>pitch</strong>ing bounds<br />

low-pass ` 3p' filter<br />

operation, a linear PD <strong>control</strong>ler (Kprop,Kdiff) 5 sets the <strong>pitch</strong> speed dependent<br />

on the error between rotor speed setpoint and the actual rotor speed. Due to<br />

the heavily non linear character of the windturbine dynamics, some non linear<br />

extensions were necessary to meet satisfied per<strong>for</strong>mance:<br />

Linear <strong>control</strong>ler gains have been scheduled (pInvSchFac) dependent on the<br />

actual <strong>blade</strong> angle; with gain scheduling the linear <strong>control</strong>ler is adapted to the<br />

operation envelope of the windturbine.<br />

A dead zone to avoid undesired <strong>pitch</strong> angle adjustments due to small <strong>control</strong>ler<br />

corrections caused by noise, tower pass influences etc. The dead zone (dThdtsetInacBase)<br />

has also been scheduled by the actual <strong>pitch</strong> angle to achieve a<br />

relative equal <strong>pitch</strong> speed inactivation zone over the whole operation range.<br />

Additional magnification of linear <strong>control</strong>ler gains below rated rotor speed<br />

(MuKsubNom) because of the stabilizing generator properties in this range.<br />

rotor speed setpoint adaptation proportionally with <strong>pitch</strong> angle (NrpmRatOff-<br />

Max, WeightNrpmRefOld, ThLLAdapNref, ThULAdapNref), which supports the<br />

linear <strong>control</strong>ler to avoid energy yield loss in case of falling wind gusts (storing<br />

kinetic energy in rotor).<br />

rotor speed limitation which <strong>for</strong>ces the <strong>pitch</strong> angle with maximum <strong>pitch</strong> speed<br />

in feathering direction as soon as the actual rotor speed exceeds a certain<br />

5<br />

Terms between brackets refer to names of variables as used in the algorithm code Appendix A<br />

through Appendix D<br />

<strong>ECN</strong>-CX--00-083 11<br />

Θ meas<br />

Θ set<br />

Ω meas<br />

r


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

safety level and is still accellerating (NrpmLimFuz, NrpmDdtLimFuz, DeltaThFuz,<br />

dThdtFuzTarg).<br />

A low pass filter to reduce measurement noise and 3p components (tower<br />

shadow, rotational sampling) of the measured rotor speed. To achieve sufficient<br />

suppression at least phase shift (delay), a fourth order invers Chebychev filter<br />

was used (aLo3p, bLo3p, cLo3p, dLo3p, gLo3p).<br />

Pitching bounds were incorporated to limit the calculated <strong>pitch</strong> speed values at<br />

the minimum and maximum <strong>pitch</strong> speed boundaries of the actuator and <strong>pitch</strong><br />

mechanism (Thmax, Thmin, dThdtmax, dThdtmin).<br />

Dependent on the rotor speed value,a selector switches between full load operation<br />

or partial load operation. A transition from full load to partial load is based on first<br />

order filtered rotor speed and a transition from partial to full load (NrpmToFull)<br />

is based on the actual rotor speed value. A switching hysteresis (NrpmToPartial,<br />

NrpmToFull) is incorporated to avoid repeatable transitions between full- and<br />

partial load. Partial load <strong>pitch</strong> <strong>control</strong> is simply implemented by setting the<br />

<strong>pitch</strong> angle to a constant value (ThetaPartConstant) with a certain <strong>pitch</strong> speed<br />

(dThdtsetPart) and an allowable error (ThSetPartDev).<br />

3.2 Linear PD compensator<br />

As mentioned be<strong>for</strong>e in full load operation, a linear proportional/differential feedback<br />

structure (PD) sets the <strong>pitch</strong> speed dependent on the error between rotor<br />

speed setpoint and the actual filtered rotor speed. The linear PD compensator is<br />

dimensioned by phase- and amplitude margin criteria of Bode to ensure sufficient<br />

stability and robustness [5]. The linear design has been based on the following<br />

assumptions and restrictions:<br />

Operation envelope defined as:<br />

– aerodynamic torque between 90% and 140% with respect to rated torque<br />

– rotor speed range between 14.1rpm and 17.1rpm<br />

– windspeed range between 10.3m/s and 26m/s<br />

Phase margin of 45 o and amplitude margin of 0.5<br />

Proces transfer function (<strong>pitch</strong> speed vs rotor speed) has been simplified to<br />

– maximum value of aerodynamic torque to <strong>pitch</strong> angle sensitivity 6<br />

– overall delay which represents worst case <strong>pitch</strong> dynamics, computer calculation<br />

and measurement delays and rotor speed filter delay (phase shift)<br />

– integrator incorporating the effective rotor inertia<br />

Stability analysis of the designed PD compensator and accompanying schedulefactor<br />

incorporates the following additional turbine modelling aspects (which were<br />

not taken into account during linear <strong>control</strong>ler design):<br />

rotor speed influences caused by indirect <strong>for</strong>e-aft tower de<strong>for</strong>mation including<br />

aerodynamic rotor damping 7<br />

Pitch angle influences caused by indirect <strong>for</strong>e-aft tower de<strong>for</strong>mation including<br />

aerodynamic rotor damping 7<br />

Natural rotor speed feedback (aerodynamic torque to rotor speed sensitivity)<br />

Electric torque influence by generator through speed curve<br />

rotor speed low pass filter dynamics (3p filtering).<br />

6<br />

the schedulefactor is a non linear extension which achieve a suitable magnification of the PD<br />

gains over the whole operation envelope<br />

7<br />

aerodynamic damping is here defined as thrust<strong>for</strong>ce to windspeed sensitivity<br />

12 <strong>ECN</strong>-CX--00-083


CONTROLLER DESIGN<br />

For clarity, in plane tower movement influences to electric torque were NOT taken<br />

into account.<br />

In figure 3.2, the Nyquist stability diagrams are shown <strong>for</strong> four classified <strong>blade</strong><br />

angles areas centered around 5 o ,10 o ,15 o and 20 o .<br />

Im(Hrond)<br />

Im(Hrond)<br />

2<br />

1<br />

0<br />

−1<br />

100.0m toren; Th = 5.00dg<br />

−2<br />

−2 −1 0<br />

Re(Hrond)<br />

1 2<br />

2<br />

1<br />

0<br />

−1<br />

100.0m toren; Th = 15.00dg<br />

−2<br />

−2 −1 0 1 2<br />

re(Hrond)<br />

Im(Hrond)<br />

Im(Hrond)<br />

2<br />

1<br />

0<br />

−1<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\DFNyqB1a.ps 23−Jun−2000<br />

100.0m toren; Th = 10.00dg<br />

−2<br />

−2 −1 0<br />

Re(Hrond)<br />

1 2<br />

2<br />

1<br />

0<br />

−1<br />

100.0m toren; Th = 20.00dg<br />

−2<br />

−2 −1 0<br />

Re(Hrond)<br />

1 2<br />

Figure 3.2 Nyquist diagrams <strong>for</strong> the windturbine with scheduled PD-feedback and lowpass<br />

3p filter; aerodynamic torquelevels between 90% and 140% of the rated<br />

value; wind speed range [10.3m/s - 26m/s]; rotor speed range [14.1rpm -<br />

17.1 rpm]<br />

According to figure 3.2 there’s no danger of closed loop instability (no curve is<br />

passing the instability point (-1,0) from the wrong side and sufficient margins<br />

are guaranteed). The encirceling of the (0,0) point visualises the indirect torque<br />

influences by <strong>pitch</strong>ing in and around the tower eigenfrequency.<br />

3.3 Parameters and setpoints<br />

The <strong>control</strong> structure as described in section 3.1 has tuned to match with typical<br />

turbine characterstics. The parameters as given in table 3.1 corresponds with the<br />

parameters and setpoints as used in the <strong>control</strong> algorithm (Appendix A) 8 .<br />

Tuning of the non-linear parameters and setpoints was done by running time<br />

domain simulations at different windspeeds (see section 3.4). The rotor speed<br />

limitation has been set to the maximum allowable generatorspeed (17.8rpm). A<br />

hysteresis of 0.75 rpm between full load and partial load operations has been used<br />

to avoid too many transitions.<br />

8 Note that both the proportional and differential gain of the PD <strong>control</strong>ler have been designed in<br />

dimensions [( o /s)/(rad/s)], [( o /s)/(rad/s 2 )] respectively. In the <strong>control</strong> algorithm the dimensions<br />

[( o /s)/(rpm/s)][( o /s)/(rpm/s 2 )] are used!<br />

<strong>ECN</strong>-CX--00-083 13


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

Table 3.1 Parameters and setpoints in <strong>control</strong> algorithm<br />

item symbol meaning value-specification<br />

Low-pass 3p filter<br />

aLo3p(4,4) A State transition matrix +5.579203e−1 −2.477898e−1 +0.000000e+0 +0.000000e+0<br />

+2.477898e−1 +9.605886e−1 +0.000000e+0 +0.000000e+0<br />

−2.521691e−1 +1.061609e+0 +8.810910e−1 −2.067648e−1<br />

−2.771780e−2 +1.166894e−1 +2.067648e−1 +9.772729e−1<br />

bLo3p(4,1) B Input-columnvector +2.817506e−1 +4.481290e−2 2.945912e−1 3.238074e−002<br />

cLo3p(1,4) C Output-rowvector −1.015047e−1 +4.273256e−1 −3.272979e−2 +5.445901e−2<br />

dLo3p D Throughput-scalar +1.185808e−1<br />

gLo3p(1,4) (I − A) −1 · B Initialisation vector +0.000000e+0 +1.137055e+0 +0.000000e+0 +7.262833e+0<br />

PD-compensator<br />

Kprop K dsgn<br />

p Design value proportional gain -0.8439 ( o Kdiff K<br />

/s)/(rad/s)<br />

dsgn<br />

d Design value differential gain -11.2195 ( o /s)/(rad/s 2 pInvSchFac(2) µPD Coefficients schedule factor<br />

)<br />

(4.424134e-2/ o ), 1.629493e-1<br />

rotor speed setpoint adaptation<br />

RpmRat Ωnom Rated rotor speed 15.1 rpm<br />

RpmRatOffMax Ω r offmax Maximum offset on Ωnom 2 rpm<br />

WeightNrpmRefOld wΩ r old Weightfactor of 1 st order LPF 0.9901<br />

ThLLAdapNref θ min<br />

Ω r<br />

off<br />

ThULAdapNref θ max<br />

Ωr off<br />

Min. <strong>pitch</strong>angle <strong>for</strong> adap.Ω r<br />

Max. <strong>pitch</strong>angle <strong>for</strong> adap.Ω r<br />

PD magnification factor below rated operation<br />

MuKsubnom µk Gain factor <strong>for</strong> Ω


3.4 Time domain simulation<br />

CONTROLLER DESIGN<br />

Rotor effective windspeed<br />

To verify the per<strong>for</strong>mance of the <strong>control</strong> algorithm as depicted in figure 3.1 with<br />

parameters and setpoints as defined in table 3.1, simulations in time domain are<br />

necessary. The simulations were driven by so called ‘rotor effective windspeed’.<br />

Rotoreffective windspeed is described as: ‘a single point windsignal which causes<br />

wind torque variations through power- and thrustcoefficient, that are stochasticly<br />

equivalent to those calculated through <strong>blade</strong> element theory in a turbulent windfield’<br />

[5]. The stochastic signal is constructed from the autopower spectrum of<br />

the (longitudinal) windspeed variations and the lateral coherence, according to<br />

IEC-class IB and turbulence intensity 16% [2]. The rotor effective windspeed<br />

signal has been normalised by the meanvalue of windspeed and consists of:<br />

0p mode of the turbulent windfield<br />

3p- and 6p effects of the rotationally sampled windfield<br />

tower shadow influences<br />

wind shear variations<br />

Figure 3.3 shows these components in detail.<br />

tower+shear infl. [m/s]<br />

turb.mode 3 6 [m/s]<br />

turb.mode 0 [m/s]<br />

0.5<br />

0<br />

−0.5<br />

wind speed variations at 1.76 r/s (16.8rpm) rotor speed and 11.3 m/s mean wind<br />

−1<br />

0 2 4 6 8 10 12 14 16 18 20<br />

2<br />

1<br />

0<br />

−1<br />

−2<br />

0 2 4 6 8 10 12 14 16 18 20<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0 2 4 6 8 10 12 14 16 18 20<br />

time [s]<br />

file C:\vdhooft\nm3000ct\SCOPE\PS\vwexcitm.ps 09−May−2000<br />

by C:\vdhooft\nm3000ct\SCOPE\M\scsmlvwe.m<br />

Figure 3.3 Details of contributions to rotor effective windspeed; tower and shear, rotational<br />

sampling, 0p mode<br />

Turbine model<br />

The turbine model [5] [3] used <strong>for</strong> time domain simulations is based on the<br />

following assumptions and restrictions:<br />

quasi stationary aerodynamic conversion (without dynamic stall)<br />

rigid rotor <strong>blade</strong>s (no flapwise, no lead-lag movements)<br />

stiff drive train (no torsion)<br />

first order generator dynamics and quasi stationary torque speed curve<br />

<strong>for</strong>e-aft tower de<strong>for</strong>mation in only the first bending mode<br />

neglection of influences on electric power due to lateral tower de<strong>for</strong>mation<br />

constant torque losses<br />

simplified <strong>pitch</strong> system approached (§2.5)<br />

<strong>ECN</strong>-CX--00-083 15


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

The turbine model has been dimensioned using turbine constants as defined in<br />

§2.2, generator characteristics in §2.4 and aerodynamic characteristics in §2.3.<br />

Simulation results<br />

Several time simulations at different mean windspeed values, were calculated with<br />

the proposed <strong>control</strong> structure (§3.1) using parameters and setpoints as defined in<br />

table 3.1 and the rotor effective windspeed and turbine model as described be<strong>for</strong>e<br />

in this section.<br />

In figure 3.4 the overall results (400s) of a time simulations at mean windspeed<br />

of 12.3 m/s are shown. The simulation shows both partial load operation (<strong>for</strong><br />

example between 120s and 160s, the <strong>pitch</strong> angle is set to -1 o ) and full load<br />

operation. The overall per<strong>for</strong>mance of the <strong>control</strong>ler and the energy yield is quite<br />

satisfying. There are no undesired <strong>pitch</strong> speed <strong>control</strong> actions because rotor speed<br />

filtering and dead zone are working properly.<br />

However the rotor speed setpoint is raised by the setpoint adaptation mechanism<br />

of the <strong>control</strong>ler, some energy yield is lost in case of falling windgusts at 75s,<br />

100s and 350s. In [4] is proved that an additional feed<strong>for</strong>ward <strong>control</strong> based on<br />

windspeed estimation will improve this per<strong>for</strong>mance.<br />

In figure 3.5 a detail (50s) at mean windspeed of 13.3 m/s is shown. This detail<br />

shows both rotor speed setpoint adaptation and rotor speed limitation. The rotor<br />

speed setpoint is being increased to 17.1 rpm (15.2 + 2 rpm) as soon as the<br />

<strong>pitch</strong> angle crosses 12 o . At 334s the rotor speed exceeds, due to an increasing<br />

windgust, the safetylevel of 17.8rpm. Additional kinetic energy has stored in the<br />

turbine rotor. The rotor speed limitation <strong>for</strong>ces with maximum <strong>pitch</strong> speed (5<br />

o /s) the <strong>blade</strong> angle in feathering direction, until the rotor accelleration has been<br />

decreased to zero value. Despite of the fact that aerodynamic power is strongly<br />

reduced by this <strong>for</strong>ced action, no loss of electric power is caused because the stored<br />

kinetic rotor energy is adopted to prevent this. After the rotor speed limitation the<br />

transition to the ‘linear’ <strong>control</strong>ler is smoothly.<br />

Remark that the dead zone prevents small undesired <strong>pitch</strong> speed changes in the<br />

first part of the detail.<br />

The FORTRAN code of the <strong>blade</strong> <strong>pitch</strong> <strong>control</strong> algorithm is added in Appendix<br />

A. For convenience, parameters and setpoints were separated in an<br />

includable file: ../datblok1.fi. The <strong>control</strong> code is called: ../sbagprd1.f. Index<br />

‘1’ refers to the LMH95 <strong>blade</strong>s and turbine constants as defined in [7] (dated<br />

03/05/2000). Both FORTRAN-files are stored on PC-plat<strong>for</strong>m P2352 in directory<br />

c:/vdhooft/nm3000ct/algo/src. All development data (including source codes) and<br />

results are also stored on CD-ROM.<br />

16 <strong>ECN</strong>-CX--00-083


P (el; −−ae) [kW]<br />

dΩ r /dt (lo3p) [rpm/s]<br />

Vw effectief [m/s]<br />

16<br />

14<br />

12<br />

10<br />

5000<br />

4500<br />

4000<br />

3500<br />

3000<br />

2500<br />

2000<br />

NM3000 bij V w =12.3m/s; η regeling 99.1% (src: dssimp12.mat)<br />

CONTROLLER DESIGN<br />

8<br />

0 50 100 150 200 250 300 350 400 450<br />

1500<br />

0 50 100 150 200 250 300 350 400 450<br />

Ω r (:smp; lo3p; −−ref) [rpm]<br />

Θ [ o ]<br />

dΘ/dt [ o /s]<br />

18<br />

17<br />

16<br />

15<br />

14<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\dssp12a0.ps 06−Jun−2000<br />

by C:\vdhooft\nm3000ct\DESIGN\M\dssimprd.m<br />

13<br />

0 50 100 150 200 250 300 350 400 450<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

−0.2<br />

−0.4<br />

−0.6<br />

−0.8<br />

0 50 100 150 200 250 300 350 400 450<br />

12<br />

10<br />

8<br />

6<br />

4<br />

2<br />

0<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\dssp12b0.ps 06−Jun−2000<br />

by C:\vdhooft\nm3000ct\DESIGN\M\dssimprd.m<br />

−2<br />

0 50 100 150 200 250 300 350 400 450<br />

4<br />

2<br />

0<br />

−2<br />

−4<br />

−6<br />

0 50 100 150 200 250 300 350 400 450<br />

tijd [s]<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\dssp12c0.ps 06−Jun−2000<br />

by C:\vdhooft\nm3000ct\DESIGN\M\dssimprd.m<br />

Figure 3.4 Turbine-per<strong>for</strong>mance at mean windspeed of 12.4 m/s; overall figure<br />

<strong>ECN</strong>-CX--00-083 17


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

P (el; −−ae) [kW]<br />

Ω r (:smp; lo3p; −−ref) [rpm]<br />

dΩ r /dt (lo3p) [rpm/s]<br />

Θ [ o ]<br />

dΘ/dt [ o /s]<br />

Vw effectief [m/s]<br />

20<br />

18<br />

16<br />

14<br />

12<br />

NM3000 bij V w =14.3m/s; η regeling 98.8% (src: dssimp13.mat)<br />

10<br />

300 305 310 315 320 325 330 335 340 345 350<br />

5000<br />

4000<br />

3000<br />

2000<br />

1000<br />

17.5<br />

16.5<br />

15.5<br />

0<br />

300 305 310 315 320 325 330 335 340 345 350<br />

18<br />

17<br />

16<br />

15<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\dssp13a2.ps 06−Jun−2000<br />

by C:\vdhooft\nm3000ct\DESIGN\M\dssimprd.m<br />

14.5<br />

300 305 310 315 320 325 330 335 340 345 350<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

−0.2<br />

−0.4<br />

−0.6<br />

−0.8<br />

300 305 310 315 320 325 330 335 340 345 350<br />

18<br />

16<br />

14<br />

12<br />

10<br />

8<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\dssp13b2.ps 06−Jun−2000<br />

by C:\vdhooft\nm3000ct\DESIGN\M\dssimprd.m<br />

6<br />

300 305 310 315 320 325 330 335 340 345 350<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

−1<br />

−2<br />

300 305 310 315 320 325 330 335 340 345 350<br />

tijd [s]<br />

file C:\vdhooft\nm3000ct\DESIGN\PS\rot1\dssp13c2.ps 06−Jun−2000<br />

by C:\vdhooft\nm3000ct\DESIGN\M\dssimprd.m<br />

Figure 3.5 Turbine-per<strong>for</strong>mance at mean windspeed of 13.4 m/s; detail figure<br />

18 <strong>ECN</strong>-CX--00-083


4. CONCLUSIONS<br />

A basic <strong>blade</strong> <strong>pitch</strong> <strong>control</strong> algorithm <strong>for</strong> full load operation of the <strong>DOWEC</strong> 3MW<br />

turbine, has been designed <strong>for</strong> making aerodynamic and structural comparisons<br />

[14] between different rotor designs (LMH95, LMH46-5-X00/X01/X02, 2-4%<br />

speed reduction,LMH46-5-X01-Hi). The <strong>control</strong> structure <strong>for</strong> all rotor designs<br />

are similar, however <strong>for</strong> each rotor design a specific parameterset is determined<br />

(Appendix A through Appendix G).<br />

The basic <strong>blade</strong> <strong>pitch</strong> <strong>control</strong> algorithm consists of a rotor speed feedback structure<br />

with a linear PD-compensator which sets the <strong>pitch</strong> speed dependent on the<br />

error between rotor speed setpoint and the actual rotor speed. Stability and robustness<br />

is guaranteed by Bode’s amplitude- and phasemargins and proved by<br />

Nyquist diagrams and time domain simulations with representative rotor effective<br />

windspeed. Non linear extensions have been added to meet better energy yield<br />

and to improve <strong>control</strong> per<strong>for</strong>mance.<br />

For each rotor, specific tuned parametersets have been calculated. Time domain<br />

simulations driven by rotor effective windspeed, result in comparable <strong>control</strong><br />

per<strong>for</strong>mance and energy yield of the FORTRAN algorithm <strong>for</strong> each rotor design.<br />

The basic <strong>blade</strong> <strong>pitch</strong> <strong>control</strong> algorithm doesn’t provide:<br />

a feed <strong>for</strong>ward <strong>control</strong> based on windspeed estimation to achieve improved<br />

energy yield in case of falling windgusts<br />

a more dimensional, and there<strong>for</strong>e more effective scheduling of <strong>control</strong>ler gains<br />

active damping facilities to reduce in-plane and <strong>for</strong>e-aft tower resonances or to<br />

reduce drive train dynamics<br />

More detailed analysis and research is recommended to implement these features<br />

in the final <strong>control</strong> structure. Some feasibility studies on these subjects have<br />

already be done [5], [6], [9], [15].<br />

During partial load operation the <strong>blade</strong> <strong>pitch</strong> angle is simply set to a constant value<br />

(maximum power coefficient) and start-up is integrated by increasing the <strong>pitch</strong><br />

angle from feathering position to working position by a constant speed (0.5 o /s).<br />

In a more definite stage, it’s also recommended to look at a facility which avoid<br />

tower resonances in first bending mode during partial load operation and/or a more<br />

advanced start-up algorithm to ensure a smooth rotor accelleration [5].<br />

When more detailed generator data is available, it will be needed to consider the<br />

influence of a ‘stiff’ transition from optimal speed-tip <strong>control</strong> to constant power<br />

<strong>control</strong> and generator dynamics with respect to energy yield and 3p wind excitation<br />

reduction in the electric power.<br />

Stability analysis of the <strong>control</strong> algorithm dimensioned <strong>for</strong> use at reduced rotor<br />

speed (‘Low Lambda approach’, see Appendix E and Appendix F), shows worrying<br />

operating points at small <strong>pitch</strong> angles due to destabilising effects of both<br />

natural and electric rotor speed feedback. If the ‘Low Lambda approach’ fulfills<br />

fatigue reduction (PHATAS calculations [14] ) this phenomenon needs more<br />

attention <strong>for</strong> <strong>control</strong>ler design.<br />

<strong>ECN</strong>-CX--00-083 19


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

20 <strong>ECN</strong>-CX--00-083


REFERENCES<br />

[1] E.T.G. Bot. Cp en Ct data ‘LMH95 <strong>blade</strong>n’. <strong>ECN</strong> Wind Energy Petten<br />

The Netherlands. Email aan Eric van der Hooft (<strong>ECN</strong>) 02 mei 2000 ref:<br />

c:/vdhooft/nm3000ct/admin/CPCT3MWOOC6.xls.<br />

[2] Int. Electrotechnical Commission. Wind turbine generator systems - part 1:<br />

Safety requirements. Technical Report IEC 61400-1, IEC, February 1999.<br />

[3] T.G. van Engelen. Control algorithm <strong>for</strong> power regulation and transient<br />

speed <strong>control</strong> of NW62 vol.II and III. Technical Report <strong>ECN</strong>-CX-98-144,<br />

<strong>ECN</strong> Petten, 29th June 1999.<br />

[4] T.G. van Engelen. <strong>Blade</strong> <strong>pitch</strong> adjustment algorithm <strong>for</strong> full load <strong>control</strong> of<br />

NM2000 HAWT (draft). Technical Report <strong>ECN</strong>-CX-00-xxx, <strong>ECN</strong> Petten,<br />

6th April 2000.<br />

[5] T.G. van Engelen, E.L. van der Hooft, and J.T.G. Pierik. Ontwerpgereedschappen<br />

voor de regeling van windturbines. Technical Report<br />

<strong>ECN</strong>-I–00-xxx, <strong>ECN</strong> Petten, In preparation.<br />

[6] T.G. van Engelen and J.T.G. Pierik. Active<br />

damping of in-plane tower resonance. Technical Report <strong>ECN</strong>-I–00-xxx,<br />

<strong>ECN</strong> Wind Energy Petten the Netherlands, In preparation 1999.<br />

[7] F. Goezinne. 3MW turbine data <strong>for</strong> <strong>blade</strong> <strong>optimisation</strong>. Technical Report<br />

001-FG-R0067, NEG Micon, 03 May 2000.<br />

[8] H.B. Hendriks. Sub optimaal toerental’. <strong>ECN</strong> Wind Energy Petten the<br />

Netherlands. Email aan Eric van der Hooft (<strong>ECN</strong>) 17 juli 2000, ref:<br />

c:/vdhooft/nm3000ct/admin/emBH170700EH.txt.<br />

[9] E.L. van der Hooft and T.G. van Engelen. Actieve demping via bladhoek<br />

van voor- en achterwaartse torentrillingen. Technical Report <strong>ECN</strong>-I–00-xxx,<br />

<strong>ECN</strong> Wind Energy Petten the Netherlands, In preparation 2000.<br />

[10] C. Lindenburg. Cp en Ct data ‘LMH46-5-X00 <strong>blade</strong>n’. <strong>ECN</strong> Wind<br />

Energy Petten The Netherlands. Email aan Eric van der Hooft (<strong>ECN</strong>)<br />

20 juni 2000, ref: c:/vdhooft/nm3000ct/admin/CpLMH46-5-X00.txt ref:<br />

c:/vdhooft/nm3000ct/admin/CtLMH46-5-X00.txt.<br />

[11] C. Lindenburg. Cp en Ct data ‘LMH46-5-X01 <strong>blade</strong>n’. <strong>ECN</strong><br />

Wind Energy Petten The Netherlands. email aan Eric van der Hooft<br />

(<strong>ECN</strong>) 10 juli 2000, ref: c:/vdhooft/nm3000ct/admin/X01Char.Cp ref:<br />

c:/vdhooft/nm3000ct/admin/X01Char.Ct.<br />

[12] C. Lindenburg. Cp en Ct data ‘LMH46-5-X01-Hi <strong>blade</strong>n’. <strong>ECN</strong><br />

Wind Energy Petten the Netherlands. Email aan Eric van der Hooft<br />

(<strong>ECN</strong>) 11 juli 2000, ref: c:/vdhooft/nm3000ct/admin/cpdataX01hi.txt ref:<br />

c:/vdhooft/nm3000ct/admin/ctdataX01hi.txt.<br />

[13] C. Lindenburg. Cp en Ct data ‘LMH46-5-X02 <strong>blade</strong>n’. <strong>ECN</strong><br />

Wind Energy Petten the Netherlands. Email aan Eric van der Hooft<br />

(<strong>ECN</strong>) 11 juli 2000, ref: c:/vdhooft/nm3000ct/admin/X02Char.Cp ref:<br />

c:/vdhooft/nm3000ct/admin/X02Char.Ct.<br />

[14] C. Lindenburg. Nm3000 - lmh46-5 <strong>blade</strong> design - aerodynamic parameter<br />

sensitivity study (draft). Technical Report <strong>ECN</strong>-CX–00-77, <strong>ECN</strong> Petten,<br />

December 2000.<br />

[15] J.T.G. Pierik, P.M.M. Bongers, T.G. van Engelen, and G.E. van Baars.<br />

Damping of mechanical resonance and protection against grid failure <strong>for</strong><br />

variable speed wind turbines (IRFLET). Technical Report <strong>ECN</strong>-C–93-004,<br />

<strong>ECN</strong> Wind Energy Petten the Netherlands, January 1993.<br />

<strong>ECN</strong>-CX--00-083 21


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

22 <strong>ECN</strong>-CX--00-083


APPENDIX A. CONTROL ALGORITHM<br />

(LMH95)<br />

A.1 Parameters and setpoints: DATBLOK1.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-Standaard <strong>blade</strong>n<br />

c Datum: 24-May-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 5.579203e-001, -2.477898e-001, 0.000000e+000, 0.000000e+000,<br />

& 2.477898e-001, 9.605886e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.521691e-001, 1.061609e+000, 8.810910e-001, -2.067648e-001,<br />

& -2.771780e-002, 1.166894e-001, 2.067648e-001, 9.772729e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 2.817506e-001, 4.481290e-002, 2.945912e-001, 3.238074e-002/<br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -1.015047e-001, 4.273256e-001, -3.272979e-002, 5.445901e-002/<br />

DATA PD04dlo3p/<br />

& 1.185808e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& -4.410867e-017, 1.137055e+000, -1.481174e-015, 7.262833e+000/<br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 4.134071e-002, 1.670273e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9900e-001/<br />

DATA PD09KpropRpm/ -0.08828/<br />

DATA PD10KdiffRpm/ -1.17369/<br />

DATA PD11MuKsubnom/ 1.75/<br />

DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9900e-001/<br />

<strong>ECN</strong>-CX--00-083 23


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -30.20, 9.60, 10.39, 11.17, 11.96,<br />

& 12.74, 13.53, 14.31, 15.10, 30.20/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ -1.00, -1.00, -1.00, -1.00, -1.00,<br />

& -1.00, -1.00, -1.00, -1.00, -1.00/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.12/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ -1.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/15.1/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

DATA SD03NrpmLimFuz/17.8/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/14.6/<br />

DATA SD07NrpmToFull/15.4/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 5.3589e+005, 4.6856e+002, -2.4817e+002/<br />

DATA sPD5Tgen/ 0.1/<br />

DATA sPD6PwattNom/ 3e+006/<br />

24 <strong>ECN</strong>-CX--00-083


A.2 Control code: SBAGPRD1.f<br />

CONTROL ALGORITHM (LMH95)<br />

c File sbagprd1.f : subroutine sbagprd1() met vollast en deellastregeling<br />

c voor NM3000 standaard rotor,<br />

c De naam sbagprd1 staat voor SuBroutine met regelAlGorithme voor PRoDuctiec<br />

klasse bedrijf voor rotor 1<br />

c<br />

c logstaat:<br />

c ------c<br />

c 000523: regelparameters en setpoints worden nu<br />

c ge-included vanuit datblok#.f (met #=iRot)<br />

c 000519: NM3000 eerste versie gebaseerd op (7.4302)<br />

subroutine sbagprd1<br />

& (sIV1t, sOI1t_pre, IV04NrpmSmp, sOV1dThdt, sIV2H,<br />

& sIV3domeg, IV05InitCall, IV01Theta1, OV01dThdtset1<br />

& , sIV4OmegaR, sOV2Te<br />

& , TV07NrpmRef, TV03NrpmDdtLo3p, TV04NrpmLo3p, TV13ThetaSet<br />

& )<br />

c Regeling NM3000 standaard rotor Fortran versie tbv FLEXLAST,<br />

c Geschreven door Tim van Engelen <strong>ECN</strong> oct 99<br />

c Bewerkt door Eric van der Hooft, <strong>ECN</strong> mei 2000<br />

c Bronnen: Matlab file ‘dsalgprd.m’, Tim van Engelen, Eric van der Hooft, <strong>ECN</strong>,<br />

c sept. 99; Fortran versie ‘tve<strong>control</strong>()’, Ilya Kraan SPE, juli 99<br />

c<br />

c Variabelen in aanroep van routine sbagprd1()<br />

c ------------------------------------------c<br />

R*4 sIV1t [I] actuele simulatie tijdstip<br />

c R*4 sOI1t_pre [O/I] eerder simulatie-tijdstip; ter bepaling verstrijken regelcyc.tijd.<br />

c R*4 IV04NrpmSmp [I] toerentalmeting (halve regelcyclustijd delayed)<br />

c R*4 sOV1dThdt [O] bladverstelsnelheid [dg/s] NA overall delay regeling+servo<br />

c => dekt volledige <strong>pitch</strong>-servo dynamica af!<br />

c R*4 sIV2H [I] simulatie-rekenstap<br />

c R*4 sIV4OmegaR [I] rotortoerental [rad/s]<br />

c R*4 sIV3domeg [I] rotoracceleratie [rad/s^2] (niet gebruikt)<br />

c I*4 IV05InitCall [I] initialisatie vlag (1: eerste aanroep; 0: volgende)<br />

c R*4 IV01Theta1 [I] bladhoekwaarde van blad 1 (’referentie-blad’)<br />

c R*4 OV01dThdtset1 [O] gewenste verstelsnelh. blad 1 (’referentie-blad’)<br />

c R*4 sOV2Te [O] elektro-mechanisch koppel [Nm]<br />

c<br />

c De laatste variabele OV01dThdtset1 wordt WEL gebruikt in MATLAB-simulaties,<br />

c alwaar de <strong>pitch</strong>-servo dynamica bij de turbine simulatie is ondergebracht,<br />

c maar wordt NIET gebruikt in FLEXLAST-simulaties, alwaar de <strong>pitch</strong>-servo<br />

c dynamica via een overall delay in de regelroutine is ondergebracht.<br />

c<br />

c Bijzonderheid<br />

c -----------c<br />

Regel (label) 100 geeft in woorden aan dat hier het juiste moment<br />

c uitgekozen moet worden voor de regelaarstap, dit afh. van simulatie<br />

c omgeving)<br />

c Uitgangspunten programmeringswijze<br />

c --------------------------------c<br />

Ter voorbereiding op de PLC-implementatie door PROLION wordt slechts<br />

c gebruik gemaakt van program-<strong>control</strong> via<br />

c - if then else ;<br />

<strong>ECN</strong>-CX--00-083 25


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c - goto .<br />

c Verder worden alleen 1-d arrays gebruikt.<br />

c<br />

c Door markering van code-fragmenten wordt binnen sbagprd1() onderscheid<br />

c gemaakt naar<br />

c * ingangs- en uitgangsvariabelen (I/O) die specifiek zijn voor simulatie<br />

c en die zich zowel in simulatie als ook in de PLC-implementatie doen gelden<br />

c * programma-variabelen voor onveranderlijke data en tijdelijke variabelen<br />

c mbt het eigenlijke regelalgorithme en <strong>pitch</strong>-servo simulatie<br />

c * programma-directieven mbt het eigenlijke regelalgorithme en simulatie van<br />

c de overall delay in het bladverstelsysteem.<br />

c<br />

c Als gevolg van ‘de beperking tot 6 karakters voor wat betreft eenduidige<br />

c aanduiding van programma-variabelen in ANSI-Fortran 77’ beginnen alle<br />

c (interne) variabelen in deze regelroutine met twee letters en twee cijfers,<br />

c gevolgd door een alfa-numerieke code van ten hoogste 18 karakters waarmee een<br />

c betekenis-omschrijving beoogd wordt. De volgende combinaties van kenletters<br />

c worden gebruikt voor datatypering:<br />

c<br />

c CD : ‘constant data’; onveranderlijk gegeven binnen regeling<br />

c (cyclustijd, conversiegegevens)<br />

c PD : ‘parameter data’; parametriserende gegevens (regel- en<br />

c filterparameters, constraints; bepaald tijdens regec<br />

laarontwerp; in beperkte mate voor fine-tuning)<br />

c SD : ‘setpoint data’; doelniveau gegevens (nominaal toerental,<br />

c drempeltoerentallen vollast en deellast; gereserveerd<br />

c voor fine-tuning)<br />

c IV : ‘input variable’; meetsignalen (toerental, 3 bladhoeken, init-vlag)<br />

c TV : ‘temporary variable’; hulp variabele in regeling zonder<br />

c geheugen functie<br />

c MV : ‘memory variable’; hulp variabele in regeling met<br />

c geheugen functie<br />

c OV : ‘output variabele’; regelsignalen (3 gewenste bladhoekc<br />

verstelsnelheden).<br />

c<br />

c De twee cijfers bepalen een uniek variabele-nummer (01 t/m 99)<br />

c<br />

c Programma-variabelen specifiek voor simulatie beginnen met 3 kenletters,<br />

c gevolgd door 1 cijfer; betekenis kenletters<br />

c sCD : ’cosntant data’ (rekentijdstap)<br />

c sPD : ’parmater data’<br />

c sIV : ’input variable’ (tijd, versnelling)<br />

c sMV : ’memory variable’<br />

c sTV : ’temporary variable’<br />

c sOV : ’output variable’ (delayed verstelsnelheid <strong>pitch</strong>-systeem)<br />

c sOI : ’output/input variable’ (simulatie hulp tijdvariabele)<br />

c DECLARATIE PROGRAMMA-VARIABELEN EIGENLIJKE REGELING<br />

c =====================================================<br />

c Input & Outputs<br />

c -------------real<br />

IV01Theta1 ! bladhoekwaarde van blad 1 (’referentie-blad’)<br />

real IV04NrpmSmp ! toerentalmeting (halve regelcyclustijd delayed)<br />

integer IV05InitCall ! initialisatie vlag (1: eerste aanroep; 0: volgende)<br />

real IV02Theta2 ! hoekwaarde blad 2 (niet gebruik in simulatie)<br />

real IV03Theta3 ! hoekkwaarde blad 3 (niet gebruik in simulatie)<br />

26 <strong>ECN</strong>-CX--00-083


CONTROL ALGORITHM (LMH95)<br />

real OV01dThdtset1 ! gewenste verstelsnelh. blad 1 (’referentie-blad’)<br />

real OV02dThdtset2 ! gewenste verstelsnelh. blad 2 (niet in simulatie’)<br />

real OV03dThdtset3 ! gewenste verstelsnelh. blad 3 (’niet in simulatie’)<br />

c Constanten<br />

c ----------c<br />

cyclus tijd van de regeling [s]<br />

real CD01TdelCtrl<br />

c Parameters<br />

c --------c<br />

parametrisering 4e orde filter voor dN/dt; (toestandmatrix ’kolomsgewijs’)<br />

real PD01alo3p(16), PD02blo3p(4), PD03clo3p(4), PD04dlo3p,<br />

& PD04bglo3p(4)<br />

c 1e orde fit voor reciproke schedule factor tbv P- en D-actie en dode zone<br />

real PD05pInvSchFac(2)<br />

c boven- en ondergrens voor bladhoek waarbinnen toerensetpoint-aanpassing<br />

c plaatsvindt [dg]; onthoudfactor voor setpoint-aanpassing.<br />

real PD06ThULAdapNref, PD07ThLLAdapNref, PD08WeightNrefOld<br />

c basis-waarden P- en D-regelaarversterking [(dg/s)/rpm, ./(rpm/s)], subnominaalc<br />

multiplier en bladverstelsnelheid [dg/s] bij harde ingreep op hoogtoerental<br />

real PD09KpropRpm, PD10KdiffRpm, PD11MuKsubnom,<br />

& PD12dThdtFuzTarg<br />

c onthoudfactor voor toerentalgemiddelde voor omschakelen vollast->deellast<br />

real PD13WeightNswitchOld<br />

c toerentallen [rpm] en bijbehorende bladhoeken [dg] voor bladsturing in deellast<br />

c 220200: lengte wordt 10, dit was 19<br />

real PD14NrpmList(10), PD15ThdgList(10)<br />

c P-terugkopfactor van bladhoekfout naar bladverstelsnelheid [(dg/s) / dg]<br />

real PD16KsynDgr<br />

c Basis-waarde inactivity zone bladverstelsnelheid [dg/s]<br />

real PD17dThdtZoneInacBase<br />

c maximum en minimum waarde bladverstelsnelheid [dg/s]<br />

real PD18dThdtmax, PD19dThdtmin<br />

c maximum en minimum waarde bladhoek [dg/s]<br />

real PD20Thmax, PD21Thmin<br />

c Setpoints<br />

c -------c<br />

nominale toerental en maximale offset (naar boven) van het nominale toerental<br />

c bij stijgende glijdend gemiddelde bladhoek<br />

real SD01NrpmNom, SD02NrpmRatOffMax;<br />

c toerentalgrens waarboven harde ingreep plaatsvindt, rotorracceleratie<br />

c waarbeneden ingreep voortijdig stopt en maximale bladhoekvergroting daarvan<br />

real SD03NrpmLimFuz, SD04NrpmDdtLimFuz, SD05DeltaThFuz<br />

c toerentalgrenzen waarboven omgeschakeld wordt van deellast naar vollast<br />

c en waarbeneden omgeschakeld wordt van vollast naar deellast<br />

real SD06NrpmToPartial, SD07NrpmToFull<br />

c Hulpvariabelen met geheugenfunctie<br />

<strong>ECN</strong>-CX--00-083 27


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c ---------------------------------------real<br />

MV01NrpmSmpOld, MV02XrpmDdtLo3pOld(4),<br />

& MV02bXrpmLo3pOld(4), MV03NrpmRefOld,<br />

& MV05ThstartFuz, MV06NrpmSwitchOld, MV09ThOld<br />

integer MV04BusyFuzCtrl, MV07SpUpIndex, MV08ProductionState,<br />

& MV10dThdtsetState<br />

c Hulpvariabelen zonder geheugenfunctie<br />

c =====================================<br />

real TV01NrpmSmpDdt, TV02XrpmDdtLo3p(4),<br />

& TV02bXrpmLo3p(4), TV03NrpmDdtLo3p,<br />

& TV04NrpmLo3p, TV05SchFac, TV06NrpmRatOff,<br />

& TV07NrpmRef, TV08dThdtsetP, TV09dThdtsetD,<br />

& TV10dThdtsetFuz, TV11NrpmSwitch, TV13ThetaSet,<br />

& TV14dThdtsetTmp, TV15dThdtZoneInac, TV18r<br />

integer TV12SpLoIndex, TV16i, TV17j<br />

c DECLARATIE PROGRAMMA-VARIABELEN SPECIFIEK VOOR SIMULATIE<br />

c ========================================================<br />

c Inputs & Outputs<br />

c --------------real<br />

sIV1t ! simulatie-tijdstip [s]<br />

real sIV2H ! rekentijdstap simulatie in regeling-inbeddend programma [s]<br />

real sOV1dThdt ! bladverstelsnelheid [dg/s] NA overall delay regeling+servo<br />

real sOI1t_pre ! eerder simulatie-tijdstip; ter bepalig verstrijken regelcyclustijd.<br />

real sIV4OmegaR ! rotortoerental [rad/s]<br />

real sOV2Te ! elektromechanisch koppel [Nm]<br />

real sIV3domeg ! rotoracceleratie [rad/s^2] (niet gebruikt)<br />

c Parameters<br />

c --------c<br />

vervangende delay voor transiente dynamica in <strong>pitch</strong>-servo, voor echter<br />

c loop delay daarin en voor extra delay in geval van bewegingsommekeer<br />

real sPD1TdelPtTrans, sPD2TdelPtLoop, sPD3TdelPtLoad<br />

c polynoomcoefficienten voor koppelsetpoint; tijdconstante "orde 1 dynamica"<br />

real sPD4pTe(4), sPD5Tgen, sPD6PwattNom<br />

c Hulpvariabelen met geheugenfunctie<br />

c ==================================<br />

integer sMV1basicdelayratio, sMV2loaddelayratio<br />

real sMV3dThdtsetHist(50), sMV4dThdtsetOld<br />

real sMV5TeOld, sMV6WeightTeOld, sMV7NrpsNom<br />

c Modif 991111 begin; toegevoegd<br />

c Input vanuit regelgedeelte (ook hulpvariabelen met geheugenfunctie)<br />

real sMV8dThdtset1<br />

c Modif 991111 einde<br />

c Hulpvariabelen zonder geheugenfunctie<br />

c =====================================<br />

integer sTV1PitchsignReverse<br />

real sTV2dThdtInter<br />

real sTV3Teset<br />

c SAVE-DIRECTIEVEN VOOR INTERNE VARIABELEN MET GEHEUGEN FUNCTIE<br />

c =============================================================<br />

28 <strong>ECN</strong>-CX--00-083


c Regeling<br />

c ------save<br />

MV01NrpmSmpOld, MV02XrpmDdtLo3pOld, MV03NrpmRefOld,<br />

& MV05ThstartFuz, MV06NrpmSwitchOld, MV09ThOld<br />

c toegevoegd 4 mei 2000<br />

save MV02bXrpmLo3pOld<br />

c end<br />

save MV04BusyFuzCtrl, MV07SpUpIndex, MV08ProductionState,<br />

& MV10dThdtsetState<br />

c Simulatie<br />

c -------save<br />

sMV1basicdelayratio, sMV2loaddelayratio<br />

save sMV3dThdtsetHist, sMV4dThdtsetOld, sMV7NrpsNom<br />

c Modif 991111 begin; toegevoegd<br />

save sMV8dThdtset1<br />

c Modif 991111 einde<br />

CONTROL ALGORITHM (LMH95)<br />

c DATA-DIRECTIEVEN VOOR CONSTANTEN, PARAMETERS EN SETPOINTS REGELING<br />

c ==================================================================<br />

c datblok1.f wordt aangemaakt door MATLAB programma agsimprd.m<br />

c het index refereert aan de rotorkeuze iRot<br />

include ’datblok1’<br />

c Doe de volgende initialisaties achter elke start-up procedure<br />

c -----------------------------------------------------------if<br />

(IV05InitCall .EQ. 1)then<br />

c initialisaties tbv regeling<br />

MV01NrpmSmpOld = IV04NrpmSmp<br />

TV16i = 0<br />

8999 TV16i = TV16i + 1<br />

MV02XrpmDdtLo3pOld(TV16i) = 0.0<br />

MV02bXrpmLo3pOld(TV16i) = PD04bglo3p(TV16i)*IV04NrpmSmp<br />

if(TV16i .LT. 4)goto 8999<br />

MV03NrpmRefOld = SD01NrpmNom<br />

MV06NrpmSwitchOld = IV04NrpmSmp<br />

MV04BusyFuzCtrl = 0<br />

MV07SpUpIndex = 2<br />

MV07SpUpIndex = 0<br />

7999 MV07SpUpIndex = MV07SpUpIndex + 1<br />

if( PD14NrpmList(MV07SpUpIndex) < MV01NrpmSmpOld )goto 7999<br />

if(IV04NrpmSmp .LT. SD01NrpmNom)then<br />

MV08ProductionState = 0 ! deellastregeling actief<br />

else<br />

MV08ProductionState = 1 ! vollastregeling actief<br />

endif<br />

MV09ThOld = IV01Theta1<br />

MV10dThdtsetState = 0 ! <strong>pitch</strong> speed setting in dode zone<br />

c Modif 991111 begin ; toegevoegd<br />

OV01dThdtset1 = 0.0<br />

OV02dThdtset2 = 0.0<br />

OV03dThdtset3 = 0.0<br />

c Modif 991111 eind<br />

<strong>ECN</strong>-CX--00-083 29


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c initialisaties tbv <strong>pitch</strong>-servo simulatie<br />

sOI1t_pre = sIV1t<br />

TV18r = (sPD1TdelPtTrans+sPD2TdelPtLoop+CD01TdelCtrl)/sIV2H<br />

c TV18r = TV18r+(0.5+sign(0.5,TV18r))*0.9999<br />

sMV1basicdelayratio = int(TV18r+0.5)<br />

sMV2loaddelayratio = 0 ! initialisatie extra <strong>pitch</strong>-delay [samples]<br />

9999<br />

sMV4dThdtsetOld = 0.0<br />

TV16i = 0<br />

TV16i = TV16i+1<br />

sMV3dThdtsetHist(TV16i) = sMV4dThdtsetOld<br />

if(TV16i .LT. sMV1basicdelayratio)goto 9999<br />

TV18r = sIV4OmegaR*sIV4OmegaR<br />

c Modif 991111 begin ; naar boven geplaatst: VOOR de volgende if(..)<br />

sMV7NrpsNom = SD01NrpmNom * 1.047197551196598e-001<br />

c Modif 991111 eind<br />

if(sIV4OmegaR .LT. sMV7NrpsNom)then<br />

sMV5TeOld = sPD4pTe(1)*sIV4OmegaR*TV18r+ sPD4pTe(2)*TV18r+<br />

& sPD4pTe(3)*sIV4OmegaR + sPD4pTe(4)<br />

if(sMV5TeOld .LT. 0.0)then<br />

sMV5TeOld= 0.0<br />

endif<br />

else<br />

sMV5TeOld<br />

endif<br />

= sPD6PwattNom / sIV4OmegaR<br />

sMV6WeightTeOld = 1.0 / (1.0 + sIV2H / sPD5Tgen)<br />

c Modif 991111 begin ; toegevoegd<br />

sMV8dThdtset1 = OV01dThdtset1<br />

c Modif 991111 einde<br />

endif<br />

c eind initialisatie<br />

c REGELALGORITHME SIMULATIE: ALGORITHME MET CYCLUS TIJD TdelCtrl sec<br />

c SPE OUD: 100 if((regelloop) .and. (t-t_pre is een veelvoud van tDelCtrl)<br />

c SPE OUD: & .and. goede moment in integratie routine)then<br />

if(sOI1t_pre .LT. sIV1t + sIV2H/2.0)then ! timing regelcyclus-uitvoering<br />

sOI1t_pre = sOI1t_pre + CD01TdelCtrl<br />

c bepaal momentane rotorversnelling<br />

TV01NrpmSmpDdt = (IV04NrpmSmp-MV01NrpmSmpOld)/CD01TdelCtrl<br />

c update de toestandsvectoren van 4e orde low pass filter filters<br />

TV16i = 0<br />

8998 TV16i = TV16i+1<br />

TV02XrpmDdtLo3p(TV16i) =<br />

& PD01alo3p( (TV16i-1)*4 + 1)*MV02XrpmDdtLo3pOld(1)<br />

& + PD02blo3p(TV16i)*TV01NrpmSmpDdt<br />

TV02bXrpmLo3p(TV16i) =<br />

& PD01alo3p( (TV16i-1)*4 + 1)*MV02bXrpmLo3pOld(1)<br />

& + PD02blo3p(TV16i)*IV04NrpmSmp<br />

TV17j = 1<br />

8997 TV17j = TV17j+1<br />

TV02XrpmDdtLo3p(TV16i) = TV02XrpmDdtLo3p(TV16i) +<br />

& PD01alo3p( (TV16i-1)*4+TV17j)* MV02XrpmDdtLo3pOld(TV17j)<br />

TV02bXrpmLo3p(TV16i) = TV02bXrpmLo3p(TV16i) +<br />

30 <strong>ECN</strong>-CX--00-083


CONTROL ALGORITHM (LMH95)<br />

& PD01alo3p( (TV16i-1)*4+TV17j)* MV02bXrpmLo3pOld(TV17j)<br />

if(TV17j .LT. 4)goto 8997<br />

if(TV16i .LT. 4)goto 8998<br />

c bepaal de uitgangswaarde van de filters (snelheid in TV04NrpmLo3p, versnelling in TV03NrpmDdtLo3p)<br />

TV03NrpmDdtLo3p = PD03clo3p(1) * MV02XrpmDdtLo3pOld(1) +<br />

& PD04dlo3p*TV01NrpmSmpDdt<br />

TV04NrpmLo3p = PD03clo3p(1) * MV02bXrpmLo3pOld(1) +<br />

& PD04dlo3p*IV04NrpmSmp<br />

TV17j = 1<br />

8996 TV17j = TV17j+1<br />

TV03NrpmDdtLo3p = TV03NrpmDdtLo3p +<br />

& PD03clo3p(TV17j)* MV02XrpmDdtLo3pOld(TV17j)<br />

TV04NrpmLo3p = TV04NrpmLo3p +<br />

& PD03clo3p(TV17j)* MV02bXrpmLo3pOld(TV17j)<br />

if(TV17j .LT. 4)goto 8996<br />

c maak shift voor oude toestandsvector<br />

TV16i = 0<br />

8995 TV16i = TV16i+1<br />

MV02XrpmDdtLo3pOld(TV16i) = TV02XrpmDdtLo3p(TV16i)<br />

MV02bXrpmLo3pOld(TV16i) = TV02bXrpmLo3p(TV16i)<br />

if(TV16i .LT. 4)goto 8995<br />

c bepaal laagdoorlaat toerental waarde voor overgang vollast => deellast<br />

TV11NrpmSwitch = PD13WeightNswitchOld*MV06NrpmSwitchOld +<br />

& (1-PD13WeightNswitchOld)* IV04NrpmSmp<br />

c bepaal actuele bedrijfstoestand: vollast of deellast<br />

if(MV08ProductionState .EQ. 1)then ! vollastbedrijf<br />

if (TV11NrpmSwitch .LT. SD06NrpmToPartial)then<br />

MV08ProductionState = 0 ! ga naar deellast<br />

endif<br />

else ! deellastbedrijf<br />

if (IV04NrpmSmp .GT. SD07NrpmToFull)then<br />

MV08ProductionState = 1 ! ga naar vollast<br />

TV11NrpmSwitch = IV04NrpmSmp ! her-intialiseer LF-toerental<br />

endif<br />

endif<br />

MV06NrpmSwitchOld = TV11NrpmSwitch<br />

c bepaal eventuele opwaartse toerensetpoint verschuiving<br />

TV06NrpmRatOff = SD02NrpmRatOffMax *<br />

& (min(PD06ThULAdapNref,max(IV01Theta1, PD07ThLLAdapNref))-<br />

& PD07ThLLAdapNref) /<br />

& (PD06ThULAdapNref-PD07ThLLAdapNref)<br />

TV07NrpmRef = PD08WeightNrefOld*MV03NrpmRefOld +<br />

& (1-PD08WeightNrefOld)* (SD01NrpmNom + TV06NrpmRatOff)<br />

MV03NrpmRefOld = TV07NrpmRef<br />

c bepaal actuele schedule factor<br />

TV05SchFac = 1 / (min(1.0, PD05pInvSchFac(1)* IV01Theta1 +<br />

& PD05pInvSchFac(2)))<br />

c bepaal PD-terugkoppeling op bladverstelsnelheid<br />

TV08dThdtsetP = TV05SchFac*PD09KpropRpm*<br />

& (TV07NrpmRef-IV04NrpmSmp) !P-actie<br />

<strong>ECN</strong>-CX--00-083 31


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

TV09dThdtsetD = TV05SchFac*PD10KdiffRpm*(-TV03NrpmDdtLo3p) !D-actie<br />

if(IV04NrpmSmp .LT. SD01NrpmNom)then !regelaarversterking +30% "ondernom."<br />

C vanwege tegenkoppeling generator beneden nom. toeren<br />

TV08dThdtsetP = PD11MuKsubnom * TV08dThdtsetP<br />

TV09dThdtsetD = PD11MuKsubnom * TV09dThdtsetD<br />

endif<br />

c bepaal gedwongen bladhoeksturing in geval overschrijding limietwaarde<br />

if(MV04BusyFuzCtrl .EQ. 0 .AND. IV04NrpmSmp .GT. SD03NrpmLimFuz<br />

& .AND. TV03NrpmDdtLo3p .GT. SD04NrpmDdtLimFuz)then<br />

MV04BusyFuzCtrl = 1 ! start gedwongen bladhoeksturing<br />

&<br />

MV05ThstartFuz = IV01Theta1<br />

endif<br />

if(MV04BusyFuzCtrl .EQ. 1)then ! gedwongen bladhoeksturing actief<br />

TV10dThdtsetFuz = PD12dThdtFuzTarg -<br />

(TV08dThdtsetP+TV09dThdtsetD)<br />

if (IV01Theta1 .GT. MV05ThstartFuz+SD05DeltaThFuz .OR.<br />

& TV03NrpmDdtLo3p .LT. SD04NrpmDdtLimFuz)then<br />

MV04BusyFuzCtrl = 0 ! stop gedwong bladhoeksturing<br />

endif<br />

else<br />

TV10dThdtsetFuz = 0.0<br />

endif<br />

c bepaal deellast bladhoeksetting<br />

if( TV04NrpmLo3p .GT. PD14NrpmList(MV07SpUpIndex) )then<br />

MV07SpUpIndex = MV07SpUpIndex + 1<br />

else<br />

if( TV04NrpmLo3p .LT. PD14NrpmList(MV07SpUpIndex-1))then<br />

MV07SpUpIndex = MV07SpUpIndex - 1<br />

endif<br />

endif<br />

TV12SpLoIndex = MV07SpUpIndex - 1<br />

TV13ThetaSet = PD15ThdgList(TV12SpLoIndex) +<br />

& (PD15ThdgList(MV07SpUpIndex) - PD15ThdgList(TV12SpLoIndex))*<br />

& ( TV04NrpmLo3p - PD14NrpmList(TV12SpLoIndex)) /<br />

& (PD14NrpmList(MV07SpUpIndex) - PD14NrpmList(TV12SpLoIndex))<br />

if(MV08ProductionState .EQ. 0)then ! deellastbedrijf<br />

c DEELLAST<br />

c bepaal actuele bladhoeksturing in deellast<br />

if(TV13ThetaSet .GT. IV01Theta1 + 0.20)then<br />

TV14dThdtsetTmp = 1.0<br />

else<br />

if(TV13ThetaSet .LT. IV01Theta1 - 0.20)then<br />

if(TV13ThetaSet .LT. IV01Theta1 - 5.0)then<br />

TV14dThdtsetTmp = -0.5<br />

else<br />

TV14dThdtsetTmp = -1.0<br />

endif<br />

else<br />

TV14dThdtsetTmp = 0.0<br />

endif<br />

endif<br />

c<br />

else ! vollastbedrijf<br />

c VOLLAST<br />

c pas verlopende regelaarversterking en dynamische dode zone toe in vollast<br />

32 <strong>ECN</strong>-CX--00-083


CONTROL ALGORITHM (LMH95)<br />

TV14dThdtsetTmp =TV08dThdtsetP+TV09dThdtsetD+TV10dThdtsetFuz<br />

c pas 1.01 keer de regelaarversterking tot aan de grens van de inactivity zone;<br />

c laat daarbuiten de regelaarversterking lineair terug lopen tot de ‘nominale<br />

c waarde’ (bladhoekafhankelijk) bij tweemaal de grens van de inactivity zone;<br />

TV15dThdtZoneInac = TV05SchFac * PD17dThdtZoneInacBase<br />

if (TV14dThdtsetTmp .gt. 0.)then<br />

TV14dThdtsetTmp =<br />

& max(TV14dThdtsetTmp,min(1.01*TV14dThdtsetTmp,<br />

& 1.01*TV15dThdtZoneInac))<br />

else<br />

TV14dThdtsetTmp =<br />

& min(TV14dThdtsetTmp,max(1.01*TV14dThdtsetTmp,<br />

& -1.01*TV15dThdtZoneInac))<br />

endif<br />

c pas de dode zone toe met hysteresis<br />

if(MV10dThdtsetState .EQ. 0)then ! bladverstelsysteem in rust<br />

if(TV14dThdtsetTmp .LT. 1.5*TV15dThdtZoneInac .AND.<br />

& TV14dThdtsetTmp .GT. -1.5*TV15dThdtZoneInac)then<br />

TV14dThdtsetTmp = 0.0; !blijf binnen inactivity zone ’+ delta’<br />

else<br />

MV10dThdtsetState = 1; !komt buiten inactiv.zone + delta => uit rust<br />

endif<br />

else ! bladverstelsysteem actief<br />

if (TV14dThdtsetTmp .LT. 0.5*TV15dThdtZoneInac .AND.<br />

& TV14dThdtsetTmp .GT. -0.5*TV15dThdtZoneInac)then<br />

MV10dThdtsetState = 0; !komt binnen activity zone ’-delta’=>in rust<br />

TV14dThdtsetTmp = 0.0;<br />

endif<br />

endif ! einde if on dode zone hysteresis<br />

endif !einde if on ProductionState !<br />

c laat geen bladverstelling toe als buiten de extremen getreden zou gaan worden<br />

if (((TV14dThdtsetTmp .gt. 0.) .and.<br />

& (MV09ThOld .lt. PD20Thmax)) .or.<br />

& ((TV14dThdtsetTmp .lt. 0.) .and.<br />

& (MV09ThOld .gt. PD21Thmin))) then<br />

OV01dThdtset1 = TV14dThdtsetTmp<br />

else<br />

OV01dThdtset1 = 0.0<br />

endif<br />

c begrens de verstelsnelheid op extremen<br />

OV01dThdtset1 =<br />

& max(PD19dThdtmin, min(OV01dThdtset1, PD18dThdtmax))<br />

MV09ThOld = IV01Theta1<br />

MV01NrpmSmpOld = IV04NrpmSmp<br />

c Modif 991111 begin ; toegevoegd<br />

sMV8dThdtset1 = OV01dThdtset1<br />

c Modif 991111 einde<br />

c Modif 991111 begin ; toegevoegd<br />

else<br />

OV01dThdtset1 = sMV8dThdtset1<br />

OV02dThdtset2 = sMV8dThdtset1<br />

OV03dThdtset3 = sMV8dThdtset1<br />

c Modif 991111 einde<br />

<strong>ECN</strong>-CX--00-083 33


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

endif ! eind regeling<br />

c PITCH-SERVO DYNAMICS SIMULATIE VIA DELAY: ALGORITHME MET CYCLUS TIJD H sec<br />

c simul. de basis-delay in algor en actuator (TdelPtTrans+TdelPtLoop+TdelCtrl)<br />

sTV2dThdtInter = sMV3dThdtsetHist(sMV1basicdelayratio)<br />

TV16i = sMV1basicdelayratio+1<br />

9998 TV16i = TV16i-1<br />

sMV3dThdtsetHist(TV16i) = sMV3dThdtsetHist(TV16i-1)<br />

if(TV16i .GT. 2)goto 9998<br />

c Modif 991111 begin ; sMV8dThdtset1 ipv OV01dThdtset1<br />

sMV3dThdtsetHist(1) = sMV8dThdtset1<br />

c Modif 991111 einde<br />

c simuleer extra delay in actuator bij 0-doorgang voor dThdt ter grootte 0.08s<br />

c Modif 991111 begin; sMV8dThdtset1 ipv OV01dThdtset1<br />

if ((sMV8dThdtset1.gt.0.) .and. (sMV4dThdtsetOld .le. 0.))then<br />

sTV1PitchsignReverse=1 ! from in to out<br />

else<br />

if ((sMV8dThdtset1 .lt. 0.) .and. (sMV4dThdtsetOld.ge.0.))then<br />

sTV1PitchsignReverse=-1 ! from out to in<br />

else<br />

sTV1PitchsignReverse = 0<br />

endif<br />

endif<br />

c Modif 991111 einde<br />

if ((sTV1PitchsignReverse .ne. 0) .and.<br />

& (sMV2loaddelayratio .eq. 0))then<br />

TV18r= sPD3TdelPtLoad / sIV2H<br />

sMV2loaddelayratio=int(TV18r+0.50) +<br />

& sMV1basicdelayratio<br />

endif<br />

if (sMV2loaddelayratio .gt. 0)then<br />

sOV1dThdt=0<br />

sMV2loaddelayratio = sMV2loaddelayratio-1<br />

else<br />

sOV1dThdt = sTV2dThdtInter<br />

endif<br />

c simuleer electro-mechanische conversie via 1e orde dynamica<br />

TV18r = sIV4OmegaR*sIV4OmegaR<br />

if(sIV4OmegaR .LT. sMV7NrpsNom)then<br />

sTV3Teset = sPD4pTe(1)*sIV4OmegaR*TV18r+ sPD4pTe(2)*TV18r+<br />

& sPD4pTe(3)*sIV4OmegaR + sPD4pTe(4)<br />

if(sTV3Teset .LT. 0.0)then<br />

sTV3Teset = 0.0<br />

endif<br />

else<br />

sTV3Teset = sPD6PwattNom / sIV4OmegaR<br />

endif<br />

sOV2Te = sMV6WeightTeOld * sMV5TeOld +<br />

& (1.0-sMV6WeightTeOld) * sTV3Teset<br />

sMV5TeOld = sOV2Te<br />

c Modif 991111 begin; sMV8dThdtset1 ipv OV01dThdtset1<br />

sMV4dThdtsetOld = sMV8dThdtset1<br />

34 <strong>ECN</strong>-CX--00-083


c Modif 991111 einde<br />

return<br />

end<br />

CONTROL ALGORITHM (LMH95)<br />

<strong>ECN</strong>-CX--00-083 35


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

36 <strong>ECN</strong>-CX--00-083


APPENDIX B. CONTROL ALGORITHM<br />

(LMH46-5-X00)<br />

B.1 Modification with respect to LMH95<br />

The structure of the <strong>control</strong> algorithm remains similar with respect to the algorithm<br />

as used <strong>for</strong> LMH95 rotor (chapter 3), there<strong>for</strong>e only the modifications and/or<br />

changes of turbine- and <strong>control</strong>parameters are listed below<br />

1. Rotoraerodynamic characteristics (Cp-Ct curves as function of λ <strong>for</strong> different<br />

<strong>pitch</strong> angles) as given by [10]<br />

2. RpmPartin = 9.5 (Cut-in rotor speed [rpm])<br />

3. RpmOptout = 13.9 (End of optimal lambda <strong>control</strong>, partial load operation [rpm])<br />

4. RpmRat = 14.9 (Rated rotor speed [rpm])<br />

5. Rbs = 48.0 (Rotor radius (to rotor center) [m])<br />

6. Jrs = 13450000 (Rotor inertia [kg · m 2 ])<br />

7. iTran = 110.3 (Gear box ratio [-])<br />

There<strong>for</strong>e, the optimum tip-speed ratio becomes 7.5 and the ‘stiffness’ of the<br />

transition from optimum tip-speed to rated speed about 810 kNm/rpm.<br />

Because of change of rated rotor speed RpmRat from 15.1rpm to 14.9 rpm, not only<br />

the parameters of the linear PD compensator and gain scheduling has been changed<br />

(due to Cp-curves), but the parameters of the rotor speed lowpass filter (aLo3p,<br />

bLo3p, cLo3p, dLo3p), rotor speed limitation (NrpmLimFuz) and the parameters of<br />

partial- to full load transition (NrpmToPartial, NrpmToFull) as well.<br />

During partial load operation, the <strong>pitch</strong> angle was set to a constant value (Theta-<br />

PartConstant) of 0.6 o .<br />

The results of stability analysis and time domain simulations with parameters as<br />

given in section B.2 were comparable to the results in chapter 3.<br />

B.2 Parameters and setpoints: DATBLOK3.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-LMH46-5-X00 <strong>blade</strong>n<br />

c Datum: 26-Jun-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 5.673184e-001, -2.430629e-001, 0.000000e+000, 0.000000e+000,<br />

& 2.430629e-001, 9.623053e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.508988e-001, 1.036672e+000, 8.844083e-001, -2.019599e-001,<br />

& -2.688986e-002, 1.111045e-001, 2.019599e-001, 9.783551e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 2.763758e-001, 4.286091e-002, 2.880477e-001, 3.087127e-002/<br />

<strong>ECN</strong>-CX--00-083 37


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -1.034826e-001, 4.275728e-001, -3.291897e-002, 5.438949e-002/<br />

DATA PD04dlo3p/<br />

& 1.188045e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& -2.657900e-016, 1.137055e+000, 3.083043e-015, 7.262833e+000/<br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 4.124546e-002, 1.525675e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9010e-001/<br />

DATA PD09KpropRpm/ -0.10906/<br />

DATA PD10KdiffRpm/ -1.47836/<br />

DATA PD11MuKsubnom/ 1.75/<br />

DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9010e-001/<br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -29.80, 9.50, 10.27, 11.04, 11.81,<br />

& 12.59, 13.36, 14.13, 14.90, 29.80/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ 0.60, 0.60, 0.60, 0.60, 0.60,<br />

& 0.60, 0.60, 0.60, 0.60, 0.60/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.20/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ -1.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/14.9/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

38 <strong>ECN</strong>-CX--00-083


DATA SD03NrpmLimFuz/17.6/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/14.4/<br />

DATA SD07NrpmToFull/15.2/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 5.3389e+005, 3.1188e+002, -1.5207e+002/<br />

DATA sPD5Tgen/ 0.3/<br />

DATA sPD6PwattNom/ 3e+006/<br />

CONTROL ALGORITHM (LMH46-5-X00)<br />

<strong>ECN</strong>-CX--00-083 39


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

40 <strong>ECN</strong>-CX--00-083


APPENDIX C. CONTROL ALGORITHM<br />

(LMH46-5-X01)<br />

C.1 Modification with respect to LMH46-5-X00<br />

The structure of the <strong>control</strong> algorithm remains similar with respect to the algorithm<br />

as used <strong>for</strong> LMH95 rotor (chapter 3), only the aerodynamic characteristics has<br />

been changed (10% slender <strong>blade</strong>s) [11].<br />

The optimum tip-speed ratio becomes 8 and the ‘stiffness’ of the transition from<br />

optimum tip-speed to rated speed about 1001 kNm/rpm. The consequences of<br />

different aerodynamic rotor properties (Cp- and Ct-curves), without any other<br />

adaption (like rated rotor speed or rotor inertia), are restricted to different values of<br />

proportional- and differential gain of the compensator (Kprop, Kdiff) and different<br />

polynomial coefficients of the gain scheduling (pInvSchFac).<br />

During partial load operation, the <strong>pitch</strong> angle was again set to a constant value<br />

(ThetaPartConstant) of 0.6 o .<br />

The results of stability analysis and time domain simulations with parameters as<br />

given in section C.2 were comparable to <strong>for</strong>mer results.<br />

C.2 Parameters and setpoints: DATBLOK4.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-LMH46-5-X01 <strong>blade</strong>n<br />

c Datum: 12-Jul-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 5.673184e-001, -2.430629e-001, 0.000000e+000, 0.000000e+000,<br />

& 2.430629e-001, 9.623053e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.508988e-001, 1.036672e+000, 8.844083e-001, -2.019599e-001,<br />

& -2.688986e-002, 1.111045e-001, 2.019599e-001, 9.783551e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 2.763758e-001, 4.286091e-002, 2.880477e-001, 3.087127e-002/<br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -1.034826e-001, 4.275728e-001, -3.291897e-002, 5.438949e-002/<br />

DATA PD04dlo3p/<br />

& 1.188045e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& -2.657900e-016, 1.137055e+000, 3.083043e-015, 7.262833e+000/<br />

<strong>ECN</strong>-CX--00-083 41


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 4.217839e-002, 1.556636e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9010e-001/<br />

DATA PD09KpropRpm/ -0.11559/<br />

DATA PD10KdiffRpm/ -1.56688/<br />

DATA PD11MuKsubnom/ 1.75/<br />

DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9010e-001/<br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -29.80, 9.50, 10.27, 11.04, 11.81,<br />

& 12.59, 13.36, 14.13, 14.90, 29.80/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ 0.60, 0.60, 0.60, 0.60, 0.60,<br />

& 0.60, 0.60, 0.60, 0.60, 0.60/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.20/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ 0.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/14.9/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

DATA SD03NrpmLimFuz/17.6/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/14.4/<br />

DATA SD07NrpmToFull/15.2/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

42 <strong>ECN</strong>-CX--00-083


c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 4.4117e+005, 4.8306e+002, -2.6992e+002/<br />

DATA sPD5Tgen/ 0.3/<br />

DATA sPD6PwattNom/ 3e+006/<br />

CONTROL ALGORITHM (LMH46-5-X01)<br />

<strong>ECN</strong>-CX--00-083 43


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

44 <strong>ECN</strong>-CX--00-083


APPENDIX D. CONTROL ALGORITHM<br />

(LMH46-5-X02)<br />

D.1 Modification with respect to LMH46-5-X00<br />

The structure of the <strong>control</strong> algorithm remains similar with respect to the algorithm<br />

as used <strong>for</strong> LMH95 rotor (chapter 3), only the aerodynamic characteristics has<br />

been changed (10% wider <strong>blade</strong>s) [13].<br />

The optimum tip-speed ratio becomes 7 and the ‘stiffness’ of the transition from<br />

optimum tip-speed to rated speed about 545 kNm/rpm. The consequences of<br />

different aerodynamic rotor properties (Cp- and Ct-curves), without any other<br />

adaption (like rated rotor speed or rotorinertia), are restricted to different values of<br />

proportional- and differential gain of the compensator (Kprop, Kdiff) and different<br />

polynomial coefficients of the gain scheduling (pInvSchFac).<br />

During partial load operation, the <strong>pitch</strong> angle was again set to a constant value<br />

(ThetaPartConstant) of 0.6 o .<br />

The results of stability analysis and time domain simulations with parameters as<br />

given in section D.2 were comparable to <strong>for</strong>mer results.<br />

D.2 Parameters and setpoints: DATBLOK5.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-LMH46-5-X02 <strong>blade</strong>n<br />

c Datum: 13-Jul-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 5.673184e-001, -2.430629e-001, 0.000000e+000, 0.000000e+000,<br />

& 2.430629e-001, 9.623053e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.508988e-001, 1.036672e+000, 8.844083e-001, -2.019599e-001,<br />

& -2.688986e-002, 1.111045e-001, 2.019599e-001, 9.783551e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 2.763758e-001, 4.286091e-002, 2.880477e-001, 3.087127e-002/<br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -1.034826e-001, 4.275728e-001, -3.291897e-002, 5.438949e-002/<br />

DATA PD04dlo3p/<br />

& 1.188045e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& -2.657900e-016, 1.137055e+000, 3.083043e-015, 7.262833e+000/<br />

<strong>ECN</strong>-CX--00-083 45


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 4.418588e-002, 1.252048e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9010e-001/<br />

DATA PD09KpropRpm/ -0.09646/<br />

DATA PD10KdiffRpm/ -1.30757/<br />

DATA PD11MuKsubnom/ 1.75/<br />

DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9010e-001/<br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -29.80, 9.50, 10.27, 11.04, 11.81,<br />

& 12.59, 13.36, 14.13, 14.90, 29.80/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ 0.60, 0.60, 0.60, 0.60, 0.60,<br />

& 0.60, 0.60, 0.60, 0.60, 0.60/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.20/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ 0.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/14.9/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

DATA SD03NrpmLimFuz/17.6/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/14.4/<br />

DATA SD07NrpmToFull/15.2/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

46 <strong>ECN</strong>-CX--00-083


c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 6.5995e+005, 7.2261e+002, -4.0378e+002/<br />

DATA sPD5Tgen/ 0.3/<br />

DATA sPD6PwattNom/ 3e+006/<br />

CONTROL ALGORITHM (LMH46-5-X02)<br />

<strong>ECN</strong>-CX--00-083 47


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

48 <strong>ECN</strong>-CX--00-083


APPENDIX E. CONTROL ALGORITHM<br />

(LMH46-5-X00-A)<br />

E.1 Modification with respect to LMH46-5-X00<br />

The structure of the <strong>control</strong> algorithm remains similar with respect to the algorithm<br />

as used <strong>for</strong> LMH46-5-X00 rotor (Appendix B), the following modifications<br />

and/or changes are listed below<br />

1. RpmPartin = 8.6 (Cut-in rotor speed [rpm])<br />

2. RpmDsgn = 12.3 (Synchronous rotor speed)<br />

3. RpmOptout = 12.4 (End of optimal lambda <strong>control</strong>, partial load operation [rpm])<br />

4. RpmRat = 13.5 (Rated rotor speed [rpm])<br />

These modifications result in new generatorcurves with reduced rotor speed<br />

(90.3%, [8]). For clarity in figure E.1 the ‘baseline’ generatorcurves (dashed<br />

lines) and the ‘reduced’ generatorcurves are given. The optimum tip-speed ratio<br />

becomes 6.8 and the ‘stiffness’ of the transition from optimum tip-speed to rated<br />

speed about 978 kNm/rpm. A loss of 2% annual energy yield has been determined<br />

by <strong>Blade</strong> Optimisation Tool (BOT).<br />

generator torque (slow shaft equiv) [kNm]<br />

electric power [kW]<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

torque rotorspeed curve<br />

0<br />

8 10 12 14 16 18<br />

500<br />

power rotorspeed curve<br />

0<br />

8 10 12 14 16 18<br />

rotorspeed [rpm]<br />

electric power [kW]<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

rotor speed [rpm]<br />

500<br />

file C:\vdhooft\nm3000ct\data\ps\genkar36.ps 20−Jul−2000<br />

by C:\vdhooft\nm3000ct\DATA\M\cpgenkar.m<br />

power windspeed curve<br />

0<br />

0 5 10 15 20 25<br />

18<br />

16<br />

14<br />

12<br />

10<br />

rotorspeed windspeed curve<br />

8<br />

0 5 10 15 20 25<br />

wind speed [m/s]<br />

Figure E.1 Generatorcurve comparison between ‘baseline’ (dashed lines) and the ‘10%<br />

reduced’<br />

Because of change of rated rotor speed RpmRat from 14.9rpm to 13.5 rpm, not<br />

only the parameters of the linear PD compensator and gain scheduling has been<br />

changed (due to Cp-curves), but the parameters of the rotor speed lowpass filter<br />

(aLo3p, bLo3p, cLo3p, dLo3p), rotor speed limitation (NrpmLimFuz) and the<br />

parameters of partial- to full load transition (NrpmToPartial, NrpmToFull) as well.<br />

During partial load operation, the <strong>pitch</strong> angle was set to a constant value (Theta-<br />

PartConstant)of1 o . In case of small <strong>pitch</strong> angles (


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

ponential instability. This is due to the destabilising effect of the ‘natural speed<br />

feedback’ (aerodynamic torque to rotor speed sensitivity) and generatorcharacteristic<br />

(electric torque to rotor speed) in this range. In most cases these effects will<br />

be sufficiently compensated by the linear PD-<strong>control</strong>ler, except at some operating<br />

points with <strong>pitch</strong> angles below 5 o During time domain simulations, driven by<br />

stochastic wind, no negative effects of importance have been noticed. Parameters<br />

are listed in section E.2.<br />

E.2 Parameters and setpoints: DATBLOK6.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-LMH46-5-X00 <strong>blade</strong>n sub-opt<br />

c Datum: 19-Jul-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 6.372817e-001, -2.070875e-001, 0.000000e+000, 0.000000e+000,<br />

& 2.070875e-001, 9.738071e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.357119e-001, 8.536955e-001, 9.078485e-001, -1.667643e-001,<br />

& -2.060348e-002, 7.462117e-002, 1.667643e-001, 9.854232e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 2.354698e-001, 2.978281e-002, 2.404825e-001, 2.102048e-002/<br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -1.184874e-001, 4.291346e-001, -3.428739e-002, 5.385848e-002/<br />

DATA PD04dlo3p/<br />

& 1.208855e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& 2.903769e-016, 1.137055e+000, -1.749839e-015, 7.262833e+000/<br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 3.934832e-002, 1.202982e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9010e-001/<br />

DATA PD09KpropRpm/ -0.08535/<br />

DATA PD10KdiffRpm/ -1.35646/<br />

50 <strong>ECN</strong>-CX--00-083


DATA PD11MuKsubnom/ 1.75/<br />

DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9010e-001/<br />

CONTROL ALGORITHM (LMH46-5-X00-a)<br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -26.91, 8.58, 9.28, 9.97, 10.67,<br />

& 11.36, 12.06, 12.76, 13.45, 26.91/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ 1.00, 1.00, 1.00, 1.00, 1.00,<br />

& 1.00, 1.00, 1.00, 1.00, 1.00/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.20/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ 0.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/13.5/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

DATA SD03NrpmLimFuz/15.9/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/13.0/<br />

DATA SD07NrpmToFull/13.7/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 6.9764e+005, 6.1452e+002, -2.8695e+002/<br />

DATA sPD5Tgen/ 0.3/<br />

DATA sPD6PwattNom/ 3e+006/<br />

<strong>ECN</strong>-CX--00-083 51


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

52 <strong>ECN</strong>-CX--00-083


APPENDIX F. CONTROL ALGORITHM<br />

(LMH46-5-X00-B)<br />

F.1 Modification with respect to LMH46-5-X00<br />

The structure of the <strong>control</strong> algorithm remains similar with respect to the algorithm<br />

as used <strong>for</strong> LMH46-5-X00 rotor (Appendix B), the following modifications<br />

and/or changes are listed below<br />

1. RpmPartin = 8.2 (Cut-in rotor speed [rpm])<br />

2. RpmDsgn = 11.8 (Synchronous rotor speed)<br />

3. RpmOptout = 11.9 (End of optimal lambda <strong>control</strong>, partial load operation [rpm])<br />

4. RpmRat = 12.9 (Rated rotor speed [rpm])<br />

These modifications result in new generatorcurves with reduced rotor speed<br />

(86.6%, [8]). For clarity in figure E.1 the ‘baseline’ generatorcurves (dashed<br />

lines) and the ‘reduced’ generatorcurves are given.<br />

The optimum tip-speed ratio becomes 6.5 and the ‘stiffness’ of the transition from<br />

optimum tip-speed to rated speed about 1047.63 kNm/rpm. A loss of 4% energy<br />

yield has been determined by <strong>Blade</strong> Optimisation Tool (BOT).<br />

generator torque (slow shaft equiv) [kNm]<br />

electric power [kW]<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

torque rotorspeed curve<br />

0<br />

8 10 12 14 16 18<br />

500<br />

power rotorspeed curve<br />

0<br />

8 10 12 14 16 18<br />

rotorspeed [rpm]<br />

electric power [kW]<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

rotor speed [rpm]<br />

500<br />

file C:\vdhooft\nm3000ct\data\ps\genkar37.ps 20−Jul−2000<br />

by C:\vdhooft\nm3000ct\DATA\M\cpgenkar.m<br />

power windspeed curve<br />

0<br />

0 5 10 15 20 25<br />

18<br />

16<br />

14<br />

12<br />

10<br />

rotorspeed windspeed curve<br />

8<br />

0 5 10 15 20 25<br />

wind speed [m/s]<br />

Figure F.1 Generatorcurve comparison between ‘baseline’ (dashed lines) and the ‘13%<br />

reduced’<br />

Because of change of rated rotor speed RpmRat from 14.9rpm to 12.9 rpm, not only<br />

the parameters of the linear PD compensator and gain scheduling has been changed<br />

(due to Cp-curves), but the parameters of the rotor speed lowpass filter (aLo3p,<br />

bLo3p, cLo3p, dLo3p), rotor speed limitation (NrpmLimFuz) and the parameters of<br />

partial- to full load transition (NrpmToPartial, NrpmToFull) as well.<br />

During partial load operation, the <strong>pitch</strong> angle was set to a constant value (Theta-<br />

PartConstant)of1 o .<br />

<strong>ECN</strong>-CX--00-083 53


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

As described in Appendix E, stability analysis show risk to exponential instability<br />

due to destabilising effects of the ‘natural speed feedback and generatorcurve.<br />

In Nyquist diagrams this effect has been observed increasingly with respect to<br />

Appendix E. However during time domain simulations, driven by stochastic<br />

wind, no negative effects of importance have been noticed. Parameters are listed<br />

in section F.2.<br />

F.2 Parameters and setpoints: DATBLOK7.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-LMH46-5-X00 <strong>blade</strong>n sub-opt b<br />

c Datum: 21-Jul-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 6.649516e-001, -1.924847e-001, 0.000000e+000, 0.000000e+000,<br />

& 1.924847e-001, 9.777469e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.269356e-001, 7.827247e-001, 9.165370e-001, -1.531230e-001,<br />

& -1.813117e-002, 6.253631e-002, 1.531230e-001, 9.877661e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 2.188656e-001, 2.530300e-002, 2.221059e-001, 1.774530e-002/<br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -1.245583e-001, 4.296148e-001, -3.480976e-002, 5.364258e-002/<br />

DATA PD04dlo3p/<br />

& 1.219075e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& 3.469447e-016, 1.137055e+000, 3.084063e-015, 7.262833e+000/<br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 3.705102e-002, 1.340215e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9010e-001/<br />

DATA PD09KpropRpm/ -0.07862/<br />

DATA PD10KdiffRpm/ -1.34198/<br />

DATA PD11MuKsubnom/ 1.75/<br />

54 <strong>ECN</strong>-CX--00-083


DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9010e-001/<br />

CONTROL ALGORITHM (LMH46-5-X00-b)<br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -25.81, 8.23, 8.90, 9.56, 10.23,<br />

& 10.90, 11.57, 12.24, 12.90, 25.81/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ 1.00, 1.00, 1.00, 1.00, 1.00,<br />

& 1.00, 1.00, 1.00, 1.00, 1.00/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.20/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ 0.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/12.9/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

DATA SD03NrpmLimFuz/15.3/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/12.4/<br />

DATA SD07NrpmToFull/13.2/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 7.8215e+005, 8.7812e+002, -4.0445e+002/<br />

DATA sPD5Tgen/ 0.3/<br />

DATA sPD6PwattNom/ 3e+006/<br />

<strong>ECN</strong>-CX--00-083 55


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

56 <strong>ECN</strong>-CX--00-083


APPENDIX G. CONTROL ALGORITHM<br />

(LMH46-5-X01-HI)<br />

G.1 Modification with respect to LMH46-5-X00<br />

The structure of the <strong>control</strong> algorithm remains similar with respect to the algorithm<br />

as used <strong>for</strong> LMH46-5-X01 rotor (Appendix C), but the aerodynamic characteristics<br />

(optimised twist) and generator curves has been changed [12]. The consequences<br />

of both different aerodynamic rotor properties (Cp- and Ct-curves) and rated rotor<br />

speed results in different <strong>control</strong> parameters and setpoints.<br />

The following modifications and/or changes are listed below<br />

1. RpmPartin = 8.75 (Cut-in rotor speed [rpm])<br />

2. RpmDsgn = 14.51 (Synchronous rotor speed)<br />

3. RpmOptout = 14.83 (End of optimal lambda <strong>control</strong>, partial load operation<br />

[rpm])<br />

4. RpmRat = 15.92 (Rated rotor speed [rpm])<br />

These modifications result in new generatorcurves with increased rotor speed<br />

(106.7%). For clarity in figure G.1 the ‘baseline’ generatorcurves (dashed lines)<br />

and the ‘reduced’ generatorcurves are given.<br />

The optimum tip-speed ratio becomes 8 and the ‘stiffness’ of the transition from<br />

optimum tip-speed to rated speed about 804.53 kNm/rpm.<br />

generator torque (slow shaft equiv) [kNm]<br />

electric power [kW]<br />

2000<br />

1500<br />

1000<br />

500<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

torque rotorspeed curve<br />

0<br />

5 10 15 20<br />

500<br />

power rotorspeed curve<br />

0<br />

5 10 15 20<br />

rotorspeed [rpm]<br />

electric power [kW]<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

rotor speed [rpm]<br />

500<br />

file C:\vdhooft\nm3000ct\data\ps\genkar38.ps 22−Sep−2000<br />

by C:\vdhooft\mfiles\addfiles.m<br />

power windspeed curve<br />

0<br />

0 5 10 15 20 25<br />

20<br />

18<br />

16<br />

14<br />

12<br />

10<br />

rotorspeed windspeed curve<br />

8<br />

0 5 10 15 20 25<br />

wind speed [m/s]<br />

Figure G.1 Generatorcurve comparison between ‘baseline’ (dashed lines) and the ‘6.7%<br />

increased’<br />

Because of change of rated rotor speed RpmRat from 14.9rpm to 15.9 rpm, not only<br />

the parameters of the linear PD compensator and gain scheduling has been changed<br />

(due to Cp-curves), but the parameters of the rotor speed lowpass filter (aLo3p,<br />

bLo3p, cLo3p, dLo3p), rotor speed limitation (NrpmLimFuz) and the parameters of<br />

<strong>ECN</strong>-CX--00-083 57


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

partial- to full load transition (NrpmToPartial, NrpmToFull) as well.<br />

During partial load operation, the <strong>pitch</strong> angle was set to a constant value (Theta-<br />

PartConstant)of1 o .<br />

The results of stability analysis and time domain simulations with parameters as<br />

given in section G.2 were satisfying. Parameters are listed in section F.2.<br />

G.2 Parameters and setpoints: DATBLOK8.fi<br />

c Regelparameters en setpoints t.b.v. NM3000-LMH46-5-X00 hi <strong>blade</strong>n<br />

c Datum: 22-Sep-2000<br />

c Constanten<br />

c ==========<br />

DATA CD01TdelCtrl /0.1/<br />

c Parameters<br />

c ==========<br />

c Let op dimensie in declaratie van PD01alo3p!<br />

DATA PD01alo3p/<br />

& 5.210661e-001, -2.660790e-001, 0.000000e+000, 0.000000e+000,<br />

& 2.660790e-001, 9.534550e-001, 0.000000e+000, 0.000000e+000,<br />

& -2.553807e-001, 1.160135e+000, 8.676759e-001, -2.257837e-001,<br />

& -3.087303e-002, 1.402490e-001, 2.257837e-001, 9.727050e-001/<br />

c Let op dimensie in declaratie van PD02blo3p!<br />

DATA PD02blo3p/<br />

& 3.025463e-001, 5.292420e-002, 3.206922e-001, 3.876854e-002/<br />

c Let op dimensie in declaratie van PD03clo3p!<br />

DATA PD03clo3p/<br />

& -9.383533e-002, 4.262721e-001, -3.197521e-002, 5.472692e-002/<br />

DATA PD04dlo3p/<br />

& 1.178329e-001/<br />

c Let op dimensie in declaratie van PD04glo3p!<br />

DATA PD04bglo3p/<br />

& 2.498002e-016, 1.137055e+000, -6.886100e-016, 7.262833e+000/<br />

c Let op dimensie in declaratie van PD05pInvSchFac!<br />

DATA PD05pInvSchFac/<br />

& 4.549378e-002, 1.438044e-001/<br />

DATA PD06ThULAdapNref/12.0/<br />

DATA PD07ThLLAdapNref/ 5.0/<br />

DATA PD08WeightNrefOld/ 9.9010e-001/<br />

DATA PD09KpropRpm/ -0.12995/<br />

DATA PD10KdiffRpm/ -1.61874/<br />

DATA PD11MuKsubnom/ 1.75/<br />

58 <strong>ECN</strong>-CX--00-083


DATA PD12dThdtFuzTarg/ 5.0/<br />

DATA PD13WeightNswitchOld/ 9.9010e-001/<br />

CONTROL ALGORITHM (LMH46-5-X01-Hi)<br />

c Let op dimensie in declaratie van PD14NrpmList en PD15ThdgList!<br />

DATA PD14NrpmList/ -31.80, 8.75, 9.77, 10.79, 11.81,<br />

& 12.83, 13.86, 14.88, 15.90, 31.80/<br />

c Deellastbladhoeken zijn NIET geoptimaliseerd<br />

DATA PD15ThdgList/ 1.00, 1.00, 1.00, 1.00, 1.00,<br />

& 1.00, 1.00, 1.00, 1.00, 1.00/<br />

c Deze parameter is niet automatisch gegenereerd<br />

DATA PD16KsynDgr/1.52/<br />

DATA PD17dThdtZoneInacBase/0.20/<br />

DATA PD18dThdtmax/ 5.0/<br />

DATA PD19dThdtmin/-5.0/<br />

DATA PD20Thmax/ 90.0/<br />

DATA PD21Thmin/ 0.0/<br />

c Setpoints<br />

c ----------<br />

DATA SD01NrpmNom/15.9/<br />

DATA SD02NrpmRatOffMax/ 2.0/<br />

DATA SD03NrpmLimFuz/18.4/<br />

DATA SD04NrpmDdtLimFuz/ 0.0/<br />

DATA SD05DeltaThFuz/ 3.0/<br />

DATA SD06NrpmToPartial/15.4/<br />

DATA SD07NrpmToFull/16.1/<br />

c Data directieven voor parameters specifiek voor simulatie<br />

c ----------<br />

DATA sPD1TdelPtTrans/0.000/<br />

DATA sPD2TdelPtLoop/0.039/<br />

DATA sPD3TdelPtLoad/0.100/<br />

c Let op gedeclareerde lengte van dit polynoom!<br />

DATA sPD4pTe/<br />

& 0.0000e+000, 4.3214e+005, 2.6750e+002, -1.3707e+002/<br />

DATA sPD5Tgen/ 0.3/<br />

DATA sPD6PwattNom/ 3e+006/<br />

<strong>ECN</strong>-CX--00-083 59


<strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong> <strong>DOWEC</strong><br />

60 <strong>ECN</strong>-CX--00-083


Date: 28th February 2001 Number of report: <strong>ECN</strong>-CX--00-083<br />

Title <strong>DOWEC</strong> <strong>Blade</strong> <strong>pitch</strong> <strong>control</strong> <strong>algorithms</strong><br />

<strong>for</strong> <strong>blade</strong> <strong>optimisation</strong> purposes<br />

Author E.L. van der Hooft<br />

Principal(s) Partly funded by EET<br />

<strong>ECN</strong> project number 7.4218<br />

Principal’s order number EETK98031/398410-0810<br />

Programmes <strong>ECN</strong> Wind Energy<br />

Abstract<br />

As part of the first stage of the <strong>DOWEC</strong> project, a base <strong>control</strong> structure <strong>for</strong> a 3MW<br />

HAWT has been developed to support the evaluation of different rotor designs by means of<br />

load set calculations with PHATAS.<br />

During full load operation the rotorspeed is <strong>control</strong>led by <strong>blade</strong> <strong>pitch</strong> speed adjustments<br />

towards feathering position to limit aerodynamic power. The basic <strong>control</strong>ler consists of a<br />

rotorspeed feedback structure using a scheduled linear PD-compensator with non-linear<br />

extensions. At partial load operation, the <strong>blade</strong> <strong>pitch</strong> angle is simply set to a constant value<br />

at which optimal tip-speed occurs.<br />

The report describes the structure and stability of the basic <strong>control</strong> algorithm, used <strong>for</strong><br />

each rotor concept, and emphasizes the used assumptions and limitations. Rotor specific<br />

tuned parameter sets have been calculated. Time domain simulations driven by rotor<br />

effective windspeed, results in comparable <strong>control</strong> per<strong>for</strong>mance and energy yield of the<br />

FORTRAN algorithm <strong>for</strong> each proposed rotor design.<br />

As soon as a final rotor design has been defined, additional features to the basic <strong>control</strong><br />

structure and detailed analysis are recommended. Energy yield improvements will be<br />

possible by feed<strong>for</strong>ward <strong>control</strong> based on wind speed estimation and more extended<br />

<strong>control</strong>ler scheduling. Active damping of tower and drive train resonances will be<br />

important to reduce fatigue.<br />

Keywords<br />

<strong>DOWEC</strong>, Wind turbine <strong>control</strong>, Pitch <strong>control</strong>, Power <strong>control</strong>, Variable speed <strong>control</strong><br />

Authorization Name Signature Date<br />

Checked<br />

Approved<br />

Authorised

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!