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