Evaluate Average Power Delivered by Wind Turbine
This example shows how to compute the average power output of a wind turbine using Symbolic Math Toolbox™ and Statistics and Machine Learning Toolbox™. In this example, you define a parametric analytical expression that models the conversion of wind energy to turbine power. Then you evaluate the average power output by assuming that the wind speed follows a Weibull distribution.
Define Model for Wind Turbine
You can estimate the total power delivered to a wind turbine by taking the derivative of the wind kinetic energy.
The parameters of this equation are:
– The swept area of turbine blades, in
– The air density, in
– The wind speed, in
The process of converting wind energy to electrical power results in efficiency losses, as described in this diagram.
This equation describes the electrical power output of a practical wind turbine .
where is the overall efficiency or conversion factor of the wind energy that depends on the wind speed.
The overall efficiency is between 0.3 and 0.5, varying with both wind speed and rotational speed of the turbine. For a fixed rotational speed, the electrical power delivered by the wind turbine reaches its maximum () at a rated wind speed. The overall efficiency at this rated wind speed is expressed as .
Assuming a fixed rotational speed, the electrical power output of the wind turbine depends on the wind speed. This graph estimates the profile of as a function of .
The parameters of the graph are:
– The cut-in speed, or the speed at which the electrical power output rises above zero and power production starts
– The rated wind speed
– The furling wind speed, or the speed at which the turbine shuts down to prevent structural damage
The profile of the power output increases between and . In this region, the power output depends on exponentially, that is, raised to the power of . In the region between and , the power output is at a constant maximum value of . For all other conditions, the power output is zero.
Define Piecewise Function for Power Output
Describe the turbine power output by defining a piecewise function. Assume that wind speed and the parameters , , , , and are positive real numbers. Also assume that the cut-in speed is less than the rated wind speed, which is less than the furling wind speed.
syms C_1 C_2 syms u u_c u_r u_f k P_er positive real assume(0 < u_c < u_r < u_f) Pe(u) = piecewise(u < u_c, 0, ... u_c <= u <= u_r, C_1 + C_2*u^k, ... u_r < u <= u_f, P_er, ... u_f < u, 0)
Pe(u) =
Based on the conditions where and , solve for the coefficients and .
sol = solve([Pe(u_c) == 0; Pe(u_r) == P_er],[C_1 C_2]);
Substitute the solutions for and into the piecewise function.
Pe = subs(Pe,{C_1,C_2},{sol.C_1,sol.C_2})
Pe(u) =
Define Profile of Wind Speed
The rated power output indicates how much power a wind turbine is capable of producing. However, the turbine power output depends on the wind speed. To calculate the average power produced by the turbine, you need to account for external wind conditions. In this example, use the Weibull distribution to model the wind speed. The wind profile follows the Weibull probability density function.
The parameters and represent scale and shape, respectively. In general, a larger value of indicates a higher median wind speed, and a larger value of indicates a reduced variability in the wind speed.
To generate random numbers from the Weibull Distribution (Statistics and Machine Learning Toolbox), you can use the wblrnd
function. For example, choose the parameters and . Generate 1000 random numbers that follow the Weibull distribution. Plot these random numbers as a histogram that is normalized to the probability density function.
a = 12.5;
b = 2.2;
N = 1000;
r = wblrnd(a,b,[1 N]);
histogram(r,15,Normalization="pdf")
To generate the Weibull probability density function (pdf), use wblpdf
. Plot the pdf and compare it with the histogram plot of the sampled random numbers.
hold on x = linspace(0,34,N); y = wblpdf(x,a,b); plot(x,y,LineWidth=2) hold off title("Weibull Distribution of Wind Speeds") xlabel("Wind Speed (m/s)")
Calculate Average Power Output
You can calculate the average power output of a wind turbine by using this integral.
Define the Weibull pdf analytically, and assume the parameters and are positive real numbers.
syms a b positive real f(u) = (b/a)*(u/a)^(b-1)/exp((u/a)^b)
f(u) =
Find the integrand you can use to evaluate the average power output.
Pintegrand(u) = simplify(Pe(u)*f(u))
Pintegrand(u) =
Perform the integration with respect to the wind speed with the bounds from to by using int
. The resulting analytical expression represents the average power output of the wind turbine.
Pav = int(Pintegrand,u,0,Inf)
Pav =
To evaluate the average power output for specific parameter values, you can use the subs
function. For example, find the average power output for these parameters.
params.a = 12.5; params.b = 2.2; params.k = 2; params.uc = 5; params.ur = 15; params.uf = 40; params.Per = 2e5; Pav = subs(Pav,{a b k u_c u_r u_f P_er},{params.a params.b params.k params.uc params.ur params.uf params.Per})
Pav =
The result is an exact symbolic number that involves the exponential function and the gamma function. You can use double
to convert the symbolic number to a double-precision number.
Pav_num = double(Pav)
Pav_num = 9.7744e+04
You can use the parametric expression defined in this example to evaluate various wind turbine configurations and wind farm sites. For more information, see Wind Resource Assessment.
See Also
syms
| assume
| piecewise
| int
| subs
Related Topics
- Perform Symbolic Computations
- Working with Probability Distributions (Statistics and Machine Learning Toolbox)