You are on page 1of 13

Wind Turbines

Proposed Exercise
Exercise 1
Using BEMT, divide the blade into 4 elements and calculate:
1) The maximum power coefficient Cpopt(opt, opt) and the corresponding tip speed ratio
and pitch angle values, opt, opt.
To calculate the maximum power coefficient, a short programming code has been
developed in Matlab. The code will be attached with this report. The code works as
follows:
First, the blade is divided in 4 nodes.
Then, the geometric (Area, chord, radius) and physical (density) parameters
are calculated.
After that, the program does two sweeps, one with lambda form 5 to 10 and
the other one with theta from -5 to 5.
During these sweeps the code calculate the Cp and CT for each node. To do
this, is necessary to find a and a (a2 in the code). The program iterates the
following equations until the right values are found.

Then, the program calculates the global CP and CT for each combination of
lambda and theta and they are saved.
When the sweep has finished, the program will search the maximum value of
CP with its respective lambda and theta. These are the optimum values.

The following graphics show how CP oscillate in front of theta and lambda.

Wind Turbines

Results:
opt=8,4 - opt=0,7 - CPopt=0,4390
These values are reasonable and are found with expectations.
2) The maximum tip speed of the blade is limited by noise through a maximum rotation
speed of (24/[(A1/2)+1.5]). Estimate, by using opt the rotor speed law as function of the
wind speed (U, opt, opt).
For each value of opt, there will be a opt. So, with the next equation, and taking into
account the maximum rotation speed, the rotor speed law can be found.

=

= 43,085

So the maximum value of the speed is:

= 10,77

The following picture shows in front of U.

Wind Turbines

If the value of opt=0,7 is modified, the value of opt will change and the line would be
different. So, for each value of opt the will be a different line.
3) In order to limit the power to a value of (2,5*A) KW blades can pitch their complete
span. Below rated power, it is assumed the optimal pitch angle opt. Calculate the pitch
angle, power, thrust laws and their dimensionless coefficients as function of the
wind: , (U), P(U), T(U), Cp(U) and CT(U).
To calculate this values, a similar code to question one will be used. However this
time the power will determined the required values as we have a maximum power
limit.
The following figures have been obtained with the code.
(U):

Wind Turbines

P(U)

T(U):

Wind Turbines

Cp(U)

CT(U):

Wind Turbines
4) Finally calculate the annual energy production (AEP) of the wind turbine for a site
with the following parameters of the Weibull distribution, A=7 m/2 and k=1.9.
To calculate this section, this part of the code has been used:

Each value of the power will be multiplied by the probability of its speed
given by the Weibull distribution.
The AEP will be:
AEP=14,88 MWh

Wind Turbines

Matlab Code:
The Matlab Code is formed by 3 main codes:
o
o
o

The first one apartado1will be used to calculate the values of the question
number 1.
The second oneapartado2 will be used to calculate the values of the question
number 2.
The last oneapartado3y4 will be used to calculate the values of the question
number 3 and 4.

Furthermore, there are 4 functions. These are used to values necessaries to solve the
problem.
o
o
o
o
o

Function tau
Function CL
Function CD
Function CALA
Function CALB

Both, the main codes and the functions will be included in these report.

Wind Turbines
apartado1
clc;
clear all;
A=4;
Nb=2;
Dr=(1.2*((A/2)+1.5));
U=25;
Cb=(0.08*((A/2)+1));
rho=1.225;
Ad=pi*((Dr*0.5)^2);
MRS=(24/((A/2)+1.5));
i=0;
CP=0;
for lambda=5: 0.1: 10,
for teta=-5: 0.1: 5,
CT=0;
i=i+1;
CP=0;
mu=0.4;
while(mu<=1)
a=0;
a2=0;
era=0.03;
era2=0.03;
sigma=((Nb*Cb)/(2*pi*mu*0.5*Dr));
while(era>=10^-6 && era2>=10^-6)
ac=a;
ac2=a2;
phi=atan((1-a)/(lambda*mu*(1+a2)));
alpha=(phi*180/pi)-teta-tau(mu);
C_L=CL(alpha);
C_D=CD(alpha);
A= CALA(C_L,C_D,phi,sigma);
a=A/(1+A);
era=abs((ac-a)/ac);
B=CALB(C_L,C_D,phi,sigma);
a2=B/(1-B);
era2=abs((ac2-a2)/ac2);
end;
CTi=4*a*(1-a);
CPi=4*a*((1-a)^2);
if(mu<0.7)
CP=CP+(CPi*2*mu*0.2);
CT=CT+(CTi*2*mu*0.2);
mu=mu+0.2;
else
CP=CP+(CPi*2*mu*0.1);
CT=CT+(CTi*2*mu*0.1);
mu=mu+0.15;
end

end;
CT_i(i)=CT;
CP_i(i)=CP;
lambda_i(i)=lambda;
teta_i(i)=teta;
end;
end;
[maxVal maxInd] = max(CP_i);
CP_optimo=maxVal
maxInd
lambda_optima=lambda_i(maxInd)
teta_optima=teta_i(maxInd)
CT_optimo=CT_i(maxInd)

Wind Turbines
apartado2
clc;
clear all;
A = input('ltimo nmero del DNI:');
lambda_optima = input('Inserta el valor de lambda optima:');
Dr=(1.2*((A/2)+1.5));
R=Dr/2;
i=0;
FRS=(24/((A/2)+1.5));
MRW=2*pi*FRS;
for U=1: 0.1: 10.7712,
i=i+1;
W=lambda_optima*U/R;
W_i(i)=W;
U_i(i)=U;
end
U=MRW*R/lambda_optima

apartado3y4
clc;
clear all;
A=4;
Nb=2;
Dr=(1.2*((A/2)+1.5));
Cb=(0.08*((A/2)+1));
rho=1.225;
Ad=pi*((Dr*0.5)^2);
Umax=25;
U=13.8; %U cuando cp deja de ser optimo
lambda=8.4; %calculado en el apartado 1
teta=0.7; %calculado en el apartado 1
Cp=0.4390; %calculado en el apartado1
Ct=0.6535;
maxF=(24/((A/2)+1.5));
Wmax=2*pi*maxF;
Pmax=2.5*A*1000;
P=Cp*0.5*rho*(U^3)*Ad;
T=Ct*0.5*rho*(U^2)*Ad;
j=0;
for U=0: 0.1: Umax;
j=j+1;
P=Cp*0.5*rho*(U^3)*Ad;
if(P>Pmax)
while(P>Pmax)
teta=teta+0.01;
i=0;
for lambda=5: 0.1: 10,
i=i+1;
CP=0;
mu=0.4;
CT=0;
while(mu<=1)
a=0;
a2=0;
era=0.03;
era2=0.03;
sigma=((Nb*Cb)/(2*pi*mu*0.5*Dr));
while(era>=10^-6 && era2>=10^-6)
ac=a;
ac2=a2;
phi=atan((1-a)/(lambda*mu*(1+a2)));
alpha=(phi*180/pi)-teta-tau(mu);
C_L=CL(alpha);
C_D=CD(alpha);
A= CALA(C_L,C_D,phi,sigma);
a=A/(1+A);
era=abs((ac-a)/ac);
B=CALB(C_L,C_D,phi,sigma);
a2=B/(1-B);

Wind Turbines
era2=abs((ac2-a2)/ac2);
end;
CTi=4*a*(1-a);
CPi=4*a*((1-a)^2);
if (0.7<mu)
CP=CP+(CPi*2*mu*0.1);
CT=CT+(CTi*2*mu*0.2);
mu=mu+0.15;
end;
if(mu<0.7)
CP=CP+(CPi*2*mu*0.2);
CT=CT+(CTi*2*mu*0.1);
mu=mu+0.2;
end;
end;
CP_i(i)=CP;
CT_i(i)=CT;
lambda_i(i)=lambda;
end;
[maxVal maxInd] = max(CP_i);
Ct=CT_i(maxInd);
Cp=maxVal;
lambda_optima=lambda_i(maxInd);
P=Cp*0.5*rho*(U^3)*Ad;
T=Ct*0.5*rho*(U^2)*Ad;
end;
Ct_i(j)=Ct;
teta_i(j)=teta;
U_i(j)=U;
P_i(j)=P;
Cp_i(j)=Cp;
T_i(j)=T;
else
P=Cp*0.5*rho*(U^3)*Ad;
T=Ct*0.5*rho*(U^2)*Ad;
teta_i(j)=teta;
U_i(j)=U;
P_i(j)=P;
Ct_i(j)=Ct;
Cp_i(j)=Cp;
T_i(j)=T;
end;
end;
h=1;
l=0;
p_anual=0;
for x=0:0.1:25
h=h+1;
l=l+1;
F(h)=1-(exp(1)^(-((x/7)^1.9)));
p_anual=p_anual+(F(h)-F(h-1))*P_i(l);
end
p_consumida=p_anual*365*24*1e-6 %MWh

Wind Turbines
tau
function t=tau(mu)
if(mu<=0.9)
t=6-6.67*mu;
end;
if(mu>0.9)
t=2;
end;
end

CL
function cl=CL(alpha)
%if(alpha<0)
%error('Valor fuera de rango')
%end;
if(0<=alpha && alpha<=2)
cl=0.155*(alpha-0)+0;
end;
if(2<alpha && alpha<=4)
cl=0.089*(alpha-2)+0.31;
end;
if(4<alpha && alpha<=6)
cl=0.0745*(alpha-4)+0.488;
end;
if(6<alpha && alpha<=8)
cl=0.064*(alpha-6)+0.637;
end;
if(8<alpha && alpha<=10)
cl=0.0525*(alpha-8)+0.765;
end;
if(10<alpha && alpha<=11)
cl=0.05*(alpha-10)+0.87;
end;
if(11<alpha && alpha<=12)
cl=-0.2*(alpha-11)+0.92;
end;
if(12<alpha && alpha<=14)
cl=-0.035*(alpha-12)+0.72;
end;
if(14<alpha && alpha<=16)
cl=-0.015*(alpha-14)+0.65;
end;
if(16<alpha && alpha<=18)
cl=-0.01*(alpha-16)+0.62;
end;
if(18<alpha && alpha<=20)
cl=0.01*(alpha-18)+0.60;
end;
if(20<alpha && alpha<=22)
cl=0.015*(alpha-20)+0.62;
end;
if(22<alpha && alpha<=24)
cl=0.035*(alpha-22)+0.65;
end;
%if(24<alpha)
%error('Valor fuera de rango')
%end;
if(alpha<0)
cl = 0;
end;
if(alpha>24)
cl=0;
end;
end

Wind Turbines
CD
function cd=CD(alpha)
%if(alpha<0)
%error('Valor fuera de rango')
%end;
if(0<=alpha && alpha<=2)
cd=-0.001*(alpha-0)+0.013;
end;
if(2<alpha && alpha<=4)
cd=0.0005*(alpha-2)+0.011;
end;
if(4<alpha && alpha<=6)
cd=0.0015*(alpha-4)+0.012;
end;
if(6<alpha && alpha<=8)
cd=0.003*(alpha-6)+0.015;
end;
if(8<alpha && alpha<=10)
cd=0.00625*(alpha-8)+0.021;
end;
if(10<alpha && alpha<=11)
cd=0.0155*(alpha-10)+0.0335;
end;
if(11<alpha && alpha<=12)
cd=0.041*(alpha-11)+0.049;
end;
if(12<alpha && alpha<=14)
cd=0.04*(alpha-12)+0.09;
end;
if(14<alpha && alpha<=16)
cd=0.02*(alpha-14)+0.17;
end;
if(16<alpha && alpha<=18)
cd=0.025*(alpha-16)+0.21;
end;
if(18<alpha && alpha<=20)
cd=0.02*(alpha-18)+0.26;
end;
if(20<alpha && alpha<=22)
cd=0.0225*(alpha-20)+0.30;
end;
if(22<alpha && alpha<=24)
cd=0.0275*(alpha-22)+0.345;
end;
%if(24<alpha)
%error('Valor fuera de rango')
%end;
if(alpha<0)
cd = -0.26 + 0.0275*alpha;
end;
if(alpha>24)
cd = -0.26 + 0.0275*alpha;
end;
end

Wind Turbines
CALB
function sol=CALB(C_L,C_D,phi,sigma)
sol=sigma*(C_L*sin(phi)-C_D*cos(phi))/(4*sin(phi)*cos(phi));
end

CALA
function sol=CAL(C_L,C_D,phi,sigma)
sol=sigma*(C_L*cos(phi)+C_D*sin(phi))/(4*(sin(phi))^2);
end

You might also like