Professional Documents
Culture Documents
Bladegeometrydesignusingthedevelopedalgorithm PDF
Bladegeometrydesignusingthedevelopedalgorithm PDF
net/publication/303802609
CITATIONS READS
0 216
1 author:
Sudeepto Bose
Dublin Institute of Technology
10 PUBLICATIONS 0 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
LADE GEOMETRY DESIGN AND PERFORMANCE PREDICTION USING BEMT EQUATIONS AND ALGORITHM View project
All content following this page was uploaded by Sudeepto Bose on 04 June 2016.
The fundamental equations of BEMT are relatively reliable for use over a certain low
range of fluid velocities, especially over the streamline flow domain with low Reynolds’
numbers. The guiding fluid (sea water) velocities in our design exercise are the two
unique velocities obtained from the two sites of our choice, namely, Bulls Mouth and
Shannon Estuary, with respective values of 1.01 metres per second and 2.02 metres per
second, obtained through ADCP (Acoustic Doppler Current Profilers) measurements at
these two sites by the SEAI. Certain realistic assumptions and dimensionless quantities
are included, however, to mimic conditions above a streamline flow and into the higher
Reynolds’ number domain. In both the cases, using the BEMT equations alone on their
own is not sufficient to derive an optimum blade geometry for a given flow condition
and or for performance prediction. These equations are rather used in conjunction with
an iterative solution in the algorithm, whereby the iterative loop begins with certain
assumptions for the variables in the loop and continue to run until the program output
values match the starting or initial guesses closely, to within a desired allowance. This
is when convergence is said to have been established. We are going to take a closer
look at this procedure in the sections to come.
Certain columns of data then, from the output, has been imported into
a suitable file format and used in conjunction with the coordinate data of two distinct
airfoil surfaces or blade elements that were pre-selected for designing the blade
geometry. We will now take a look in details at the entire procedure and the
consequent data tables, graphs and the VBA code in the sections to follow.
1
BEMT has a distinct advantage over other methods of turbine or propeller design and
or performance prediction, and that is its relative simplicity. It assumes that the forces
on the blades are solely determined by the Lift and Drag coefficients. An algorithm can
be developed for the purpose with a minimum number of simple equations from the
theory and this holds good over a significant range of fluid velocities, reproducing
acceptably rational data. To begin the algorithm, a single blade spar is considered of a
chosen airfoil section like the National Advisory Committee for Aeronautics or NACA
and the length of the blade or span is divided up into a number of segments or strips of
equal radial width, from the hub to the tip of the blade. A blade element may be
considered as being a small part of a 2-dimensional infinitely long aerofoil [1].
1. Inputs,
2. Solver and
3. Outputs.
Sequentially enlisted and described overleaf, are the specific steps in the
algorithm.
INPUTS
The required power output from the rotor is either initialised with a sensible
guess and the rotor radius calculated from a formula (relating power to blade radius and
the power coefficient) or alternately, the rotor radius is assumed and initialised. In this
case, output power from the rotor was assumed to be 300kW for each rotor. Calculation
of the respective blade radii are shown in the program itself.
2
The fluid (sea water) density (ρ) is specified. In this case, the density is 1025
kg/m3.
The fluid velocities are then specified. In this project, we have two different fluid
velocities to program for. We have considered the power output of the turbines at the
peak spring-tide velocities for both the sites, namely Bulls Mouth and Shannon Estuary.
The peak spring-tide velocities are 1.01m/s and 2.02 m/s respectively at the two sites.
A sensible assumption is made for the starting value of power coefficient (CP).
The range of CP values is between 0.4-0.5. Our chosen value was 0.45.
A value of the tip speed ratio (λ) is then chosen, within a certain standard range.
A good estimate for TSR is between 4 and 10 for a 3-bladed rotor [2]. Our assumption
was 8 (eight). Higher the tip-speed ratio (or TSR), faster the turbine relative to the
velocity of the fluid in which it operates. During later stages of this design, more
significance of this parameter will emerge along with its impact on the value of the
turbine power coefficient CP.
Depending on the tip speed ratio (TSR), the number of blades is chosen. In our
case, the rotor was assumed to be a 3-bladed rotor. Lesser than 3 blades would mean
that the turbine would have to rotate faster in order to successfully extract the desired
energy from the fluid stream to meet its efficiency or power coefficient challenge[3].
The type of airfoil is then selected, depending on the nature of application of the
device. Blade design for an MCT can be reliably done by using airfoil sections for wind
turbines. For the purpose of this project, blade profiles NACA 0012 and NACA 0018 were
chosen. These airfoils are ‘symmetric’, which means they have no ‘camber’ to enhance
lift and that the y coordinates at chosen points on the blade section chord are equally
spaced on the top and bottom of the chord line along the x axis. These were chosen
based on the lift and drag characteristics of these airfoil sections, which offer an
acceptable ‘buy-off’ between reduced complication of section design due to symmetry
in geometry of section while achieving the required lift by incorporating a ‘twist angle’
along the blade span.
SOLVER
This section consists of the computational steps and instructions required to
generate the necessary outputs in the subsequent section.
The axial induction factor (a) and angular induction factor (a’) are initialised with
certain values that can either be derived with formulae or assumed as per standard and
3
current practice mentioned in cited articles and journals on the topic. In this case, the
following values were chosen within the limits of practicality and as per standard
practice.
a = 1/3 = 0.3
a’= 0.003
The value of the relative fluid flow angle (ϕ) is calculated based on the starting
values of a and a’ above or alternately, calculated using formulae as shown overleaf.
This expression can be used for the initial guess at every blade radial segment [4].
2
𝜙 = 90° − tan−1 (1/𝜆𝑟 )
3
Where λr is the local speed ratio and equal to the tip speed ratio at the blade tip.
To account for the blade tip flow losses, we next need to compute the value for
Prandtl’s tip loss correction factor ‘f’. This is specific for each radial segment of the blade
as it dependant on radius ‘r’.
The local solidity ratio is calculated next, denoted by (σ). Every blade section will
have a distinct value for σ.
Once solidity is calculated, the Lift Coefficient (CL) is computed using the relation
between (ϕ), (σ) and (CL).
With the value of the design lift coefficient known, it is easy to look up available
data sheet/curve for CL vs. α to determine the angle of attack corresponding to the design
lift coefficient for the blade section as well as the corresponding value for the Drag
Coefficient CD.
Next, the local thrust and torque force coefficients (CN) and (Ct) are calculated
using their relationship with the lift and drag coefficients and relative flow angle. These
are also, like the dependant variables, specific to each radial blade segment.
The values of the axial and angular induction factors are next updated with the
Prandtl’s tip loss correction factor.
If the two induction factors change by more than a set allowance (~5% in this
analysis), the fluid flow angle is to be recalculated. If within the limit, the loop may be
terminated.
At this stage, the overall thrust (CT) and power coefficient (CP) are calculated. If
these values change by more than a set allowance, algorithm will need to run with
revised estimate of power coefficient. Alternately, if within the set allowance, the
iterative loop may be terminated and results tabulated.
4
OUTPUT
The typical outputs of a blade design algorithm using BEMT are as below.
Depending upon the requirements for the design, outputs can be reduced in number
than the ones stated below or kept the same. The criteria for convergence of our output
data centres around a single major determinant, namely, the overall power coefficient
CP. In our design, we shall allow a maximum of 10% deviation in the calculated output
value of CP relative to our initial guess of 0.45.
5
Fig: Screenshot from MS Visual Studio program for the User Form to generate blade
radius from power output
The ‘toolbox’ tab to the extreme left shown above actually contains the
necessary software tools to design the form and its contents. While much of the code for
the user form graphics is auto created by the program itself, the logical syntax to make
the form work and yield the desired output is entered by the user and contained in the
6
sections marked in blue in the above picture. Each section or ‘Region’ when expanded
using the ‘+’ button to the left, unfolds the code written under them, as shown below in
figure below, using the region ‘Form Events’.
The next region defined is the ‘Button events’ that contains the instructions for
the button click outputs on the user form. Below is a snapshot of the buttons used and
the corresponding code in the program for the region specified, in figure.
7
Fig: Button events code screenshot
Continuing on, the next region in the form design code contains the description
for ‘common functions’. This specifies the nature of data for the different required input
and output parameters like blade radius, solidity and chord length and the other
variables and constants, viz. decimal/integer and the likes and also, assigns the relevant
equations for deriving the values of these variables. A screen shot is presented below
for reference, in figure.
The program code is instructed to generate the output from all calculations and
iterative loops in the last but one region, namely, the ‘form events’, whereby it displays
the desired output to the viewer. Below screenshot in figure from the actual program
showing this.
8
Fig: Screenshot of region Form Event with code to generate data output for variables
At this point, it should be understood that the examples and illustrations cited
so far above summarises the hierarchy followed in the program structure and it suffices
to convey to the reader an appreciable amount of information about a program in VBA,
with specifics of data pertaining to this project.
Fig: Sample output screenshot from Excel file off the VBA program
9
Number of blade sections was calculated by dividing the blade radius by the segment
steps, which was 0.5m in this case. In other words, it was sought to derive the desired
data output for every 0.5m radial blade section from the program. This would ensure a
smooth transition of significant data values from section to section.
Type of aerofoils chosen were the NACA symmetric aerofoils, namely, 0012 and 0018.
The fluid velocities at the two sites of choice were 1.01 m/s and 2.02 m/s as per data
gathered from literature review earlier. Both type of aerofoils were applied to these two
velocities and the data computed through the VBA program.
The power output from each turbine was taken to be 300 kW for a 3-bladed rotor, which
yields 100 kW per blade per turbine.
The algorithm for blade radius calculation was supplied to the program, based on the
expression mentioned below.
𝑃
𝑟=√
0.5( 𝜋)(𝐶𝑝)(𝜌)(𝑈 3 )
10
Set tolerance for the delta between the initial guess of the overall power coefficient CP
and the final calculated value has been set to 20%. This high delta has been assumed to
compensate for the high power output expectation (300kW) from a relatively low source
velocity of fluid (1.01m/s) and the relatively large rotor radius of 11 metres.
8 𝜆 ′ 𝐶
𝐶𝑃 = ∫ 𝐹𝑎 (1 − 𝑎)[1 − ( 𝑑⁄𝐶 ) 𝑐𝑜𝑡𝜃]𝜆3𝑟 𝑑𝜆𝑟
𝜆2 𝜆ℎ 𝑙
8 𝜆 3
𝐶𝑃 = ∫ 𝜆 𝑎′(1 − 𝑎)𝑑𝜆𝑟
𝜆2 0 𝑟
To calculate the area under the curve, the trapezoidal rule is applied, which states,
𝑥𝑛
∫ 𝑓(𝑥)𝑑𝑥 ≈ 𝑥𝑛 − 𝑥0 /2𝑛[(𝑦0 + 𝑦𝑛 ) + 2(𝑦1 + 𝑦2 + ⋯ + 𝑦𝑛−1 )
𝑥0
Considering the data table from the program output below, we shall attempt to calculate
the value of overall CP. We shall calculate the value of CP using the actual trapezoidal rule formula in
equation above, using the data output from the VBA program.
𝑥0 = 7.6 (This is the value of λr at 10.5 metres for the 11 metre long blade)
Similarly, to evaluate at 2m section of the 11m blade (the root), where λr = 1.45, a=0.0456 and
a’=0.0133,
11
We are now in a position to evaluate the rest of the 𝑓(𝑥) terms for every section of the
blade and this yields the following values, as shown in table 1 below, truncated due to space crunch
on page.
r f(x)
11 10.752
10.5 0.852527
10 0.855111
9.5 0.774811
9 0.698693
8.5 0.607147
8 0.590791
7.5 0.509506
7 0.440545
6.5 0.398714
Table 1: Calculated values of 𝑓(𝑥) from data output of VBA program
Once we have all the values of 𝑓(𝑥) at every segment of blade from root to the tip, we are in
position to calculate the overall power coefficient, as shown below.
As a preliminary step to ensure data accuracy, we do the same calculations using Excel and
keeping the number strings after decimal unchanged. Results came to as shown below in figure
below.
Fig: CP output value from VBA program based on TSR initial guess of 8 for the 11m blade
As is evident from above, although we did leave a wide opportunity for the delta in the value of our
power coefficient CP, the final value still is in tune with the Betz limit for an ideal turbine at 0.59
approximately. It is clear that the choice of significant values after decimal can change the outcome
considerably.
The next important factor to be taken into consideration is the initial guess for the TSR. In
our initial guess, we assumed the TSR to be at 8 (eight) for both the airfoil sections, for both the
12
blades. Although cited texts do recommend a value between 4 (four) to 10 (ten) for a 3 bladed rotor,
this assumption in our case is resulting in the CP value exceeding the 10% allowance over the initial
guess, as we have just seen. To mitigate this issue, we now rerun the program with a reduced initial
guess for our TSR, at 6 (six) for the 4 metre long blade. We leave the guess value for the 11 metre
blade at 8 (eight). The output data with the changed guess values are shown below in the
screenshots in figures below, for the NACA 0012 and NACA 0018 airfoils respectively. These are for
the 4 metre blade. Tables for 11 metre blade are not shown here.
Fig: CP value with reduced initial guess for TSR for 4m blade using NACA0012 airfoil
Fig: CP value with reduced initial guess for TSR for 4m blade using NACA0018 airfoil
While it is clear from above that the values don’t change significantly with change in airfoil
type for the same blade radius (or length), it is also very clear that tweaking our initial guess for the
TSR did positively impact our value for the calculated CP and actually brought it to within the set
tolerance of ‘output value = (initial guess±10%)’.
We can happily draw inference that our VBA program output has given us what we wanted!
13
APPENDIXES
APPENDIX I
APPENDIX II
14
APPENDIX I
15
NACA0018 FOR 11 METRE LONG BLADES
16
NACA0012 FOR 4 METRE LONG BLADES
17
NACA0018 FOR 4 METRE LONG BLADES
18
LIFT COEFFICIENT VS ANGLE OF ATTACK - 4 M BLADES
NACA0012
NACA0018
19
LIFT COEFFICIENT VS ANGLE OF ATTACK - 11 M BLADES
NACA0012
NACA0018
20
APPENDIX II
EXCERPTS FROM THE PROGRAM IN VB.NET
Imports System
Imports System.Data
Imports System.IO
Imports System.Configuration
Imports OfficeOpenXml
Imports OfficeOpenXml.Table
21
''Normal Force
Dim CN As Decimal
''Tangetial Force
Dim Ct As Decimal
''Chord Length
Dim c As Decimal
''Power Coefficient
Dim Cp As Decimal = 0.45
22
tipSpeedRatio = 8
End If
Dim rad As Decimal = bladeradius
noAnnularSections = CDec(TxtNoSections.Text)
Dim segment As Decimal = bladeradius / noAnnularSections
Do
lr = 0
CN = 0
Ct = 0
Cp = 0
c = 0
gamma = 0
cosAngle = Math.Cos(fi)
sinAngle = Math.Sin(fi)
F = 1
thrustCoefficient = Math.Round(CalculateThrustCoefficient(sigma, a,
CL, Cd, cosAngle, sinAngle), 4)
drOutput = DTOutput.NewRow()
drOutput("alpha") = alpha
drOutput("r") = rad
23
drOutput("c") = c
drOutput("Gamma") = gamma
drOutput("Cn") = CN
drOutput("Ct") = Ct
drOutput("lr") = lr
drOutput("CT") = thrustCoefficient
drOutput("a") = a
drOutput("aprime") = aprime
drOutput("fi") = fi
DTOutput.Rows.Add(drOutput)
a = 1 + (upper / lower)
a = Math.Round((1 / a), 4)
lower = (4 * lr * cosAngle)
upper = (sigma * CL)
Next
rad = rad - segment
Loop Until rad <= 0
CalculatePowerCoefficient(DTPowerCoefficient)
GenerateExcel(DTOutput, "Output")
End Sub
drPower = DTPowerOutPut.NewRow()
drPower("Radius") = 0.2
drPower("Lambda") = 61.0
drPower("Chord") = 0.7
DTPowerOutPut.Rows.Add(drPower)
drPower = DTPowerOutPut.NewRow()
drPower("Radius") = 1
24
drPower("Lambda") = 74.3
drPower("Chord") = 0.71
DTPowerOutPut.Rows.Add(drPower)
drPower = DTPowerOutPut.NewRow()
drPower("Radius") = 2
drPower("Lambda") = 84.9
drPower("Chord") = 0.44
DTPowerOutPut.Rows.Add(drPower)
drPower = DTPowerOutPut.NewRow()
drPower("Radius") = 3
drPower("Lambda") = 89.1
drPower("Chord") = 0.3
DTPowerOutPut.Rows.Add(drPower)
drPower = DTPowerOutPut.NewRow()
drPower("Radius") = 4
drPower("Lambda") = 91.3
drPower("Chord") = 0.23
DTPowerOutPut.Rows.Add(drPower)
End Sub
25
Dim roundalpha As Decimal = Round(alpha)
If roundalpha = 0 Then
alpha = CDec(Math.Truncate(alpha) + 1)
Else
alpha = CDec(Math.Truncate(alpha) + roundalpha)
End If
Dim Cl As Decimal
Dim dr As DataRow() = DTLiftCoefficient.Select("alpha = '" & Format(alpha,
"0.000") & "'")
If Not dr Is Nothing And dr.Length > 0 Then
Cl = Convert.ToDecimal(dr(0)("CL").ToString())
Cd = Convert.ToDecimal(dr(0)("CD").ToString())
End If
Return Cl
End Function
Public Sub FillTable(ByVal path As String, ByVal airFoil As String, ByVal tbl As
DataTable)
Dim pck = New OfficeOpenXml.ExcelPackage()
pck.Load(New IO.FileInfo(path).OpenRead)
Dim ws = pck.Workbook.Worksheets(airFoil)
Dim hasHeader = True
For Each firstRowCell In ws.Cells(1, 1, 1, ws.Dimension.End.Column)
tbl.Columns.Add(
If(hasHeader,
firstRowCell.Text,
String.Format("Column {0}", firstRowCell.Start.Column)))
Next
Dim startRow = If(hasHeader, 2, 1)
For rowNum = startRow To ws.Dimension.End.Row
Dim wsRow = ws.Cells(rowNum, 1, rowNum, ws.Dimension.End.Column)
Dim row = tbl.NewRow
For Each cell In wsRow
row(cell.Start.Column - 1) = cell.Text
Next
tbl.Rows.Add(row)
Next
End Sub
26
THE USER FORM TO GENERATE THE DATA OUTPUT
This form, when run with the relevant input parameters, gave a decision output as desired,
indicating that the output file has been created successfully.
27
Data output from VBA program (MS Excel format)
******
28
Reference:
[1] Hadi Winarto; Propeller performance prediction algorithm; BEMT Algorithm for the Prediction
of the Performance of Arbitrary Propellers; pp. 27-33, [online resource] available at
http://mirror.unpad.ac.id/orari/library/library-non-ict/aero/docs/CoEAL%20report%20BEMT.pdf
[3] Magdi Ragheb and Adam M. Ragheb; Wind Turbines Theory - The Betz Equation and Optimal
Rotor Tip Speed Ratio; Rotor optimal Tip Speed Ratio, TSR; [online resource], available at
http://cdn.intechopen.com/pdfs-wm/16242.pdf.
[2], [4], [5] Grant Ingram; Blade Design Procedure; Wind Turbine Blade Analysis using the Blade
Element Momentum Method. Version 1.1; [online resource], available at
https://community.dur.ac.uk/g.l.ingram/download/wind_turbine_design.pdf
[6] Seagen S; Technology development; Marine current turbines; [online resource], available at
http://www.marineturbines.com/SeaGen-Products/SeaGen-S.
29