Professional Documents
Culture Documents
Defining these parameters and running the script a filename.mat file will
be saved containing the information about the blade geometry definition.
b. Profiles
Definition:
Aero
/
Hydrodynamic
data
(template
naca638xxre300k.m)
In order to perform BEM computations, it is necessary to define the lift
and drag coefficients for the profiles used in the blade geometry.
This version only supports two kinds of profile definition in blade
geometry:
a. NACA profiles of the same series varying only thickness:
Ex: naca638xxre300k.m
b. Only one profile of any designation (Ex: NACA, Selig, Eppler e.t.c).
Ex: naca4412re300k.m
In general, the functions must load cl and cd data
Ex: x63812300kpol.mat)1 and it is necessary that lift and drag data cover
a wide range of angles of attack (minimum -90 to 90deg). Also, the data
must be in increasing order for aoa, for example:
aoa
-90
-85
-70
Cl
0
0.01
0.005
The mat file containing information of cl and cd, must have the following variable
names: For lift coefficient: clinfo. For drag coefficient: cdinfo. Both with
dim(numangles,2) where numangles are the number of data, the column 1 is the angle of
attack and column 2 is the coefficient.
by
different
naca
Line 3: Tip Speed Ration regime. Write the range of TSR and the increment
to be simulated [TSRmin:Increment:TSRmax];
Line5: settippitch. Write the pitch angle rotation of the blade. It is
possible to simulate the turbine for different pitch rotations. Ex:
settippitch = [ang1 ang2 ang3 angn].
The following lines are the solver parameters
bemmain1.m where turbine properties are defined.
1:
2:
3:
4:
5:
6:
7:
and
conditions
of
8: % number of elements
9: numele = 30;
10: % Termination criteria
11: tole = 1e-3;
12: % solucion weighting factor successive substitutions)
13: relaxfactor = 0.2;
Line3: Write 1 if Hub losses will be computed or 0 if not (Default 1).
Line5: Write 1 if Tip losses will be computed or 0 if not (Default 1).
Line7: Write the maximum number of iterations (Default 200).
Line9: Write the number of blade elements in which the blade will be
divided. (Default 30).
Line11: Write the convergence tolerance. (Default 1e-3 min 1e-5).
Line13: Write the weighting factor for successive substitutions. (1
implies that computed solution is the new solution. [0<relaxfactor<1]
implies a weighted solution between the computed and the actual solution.
(Default 0.05).
Note: If during a simulation a warning message like 'Maximum number of
iterations reached. No converged solution found' is displayed, try to
reduce the relaxfactor and increase the maximum number of iterations.
NOTE: IN ORDER TO SOLVE, RUN THE SCRIPT bemmain1.m USING THE KEY f5.
During the simulation, a progress record will be displayed in the command
window. After that, a message Results file saved as FILENAME.MAT WILL
BE displayed indicating that simulation has finished.
d. Postprocesing (Scripts postprocoeff.m and postprocoeffblade.m)
Once a simulation has finished and the results file written, go to
scripts postprocoeff.m and postprocoeffblade.m in order to extract and
display the results.
1:
2:
3:
4:
5:
6:
7:
In order to run the script, press the key f5. The postprocessing presents
MATLAB graphs which can be manipulated in standard way (save as *.fig,
save as image, e.t.c).
The following image is and example of postprocesing of a Bahajs Marine
Current Turbine.
the
Inputs:
- mct: structure of turbine parameters
mct.rpos: dimensionless radial positions along the blade. It
must be strictly hubroot < rpos < 1. Where root is the
dimensionless hub radius. dim(1,numele) where numele are the
number of elements per blade to be computed.
mct.cr: dimensionless chord c/R. where c is the real chord
lenght and R is the turbine radius.
mct.tc:
thickness/chord
ratio
(For
NACA
airfoils
only)
dim(1,numele)
mct.pitch: array of blade element angles. dim(1,n)
mct.lsigma: local solidity mct.cr.*nblades./(2.*pi.*mct.rpos)
dim(1,numele)
- parms: structure of solution parameters
parms.tol: termination criteria
parms.maxit: maximum number of iterations
parms.hubloss: 0. do not compute hub loss factor
1. compute hub loss factor
parms.tiploss: 0. do not compute tip loss factor
1. compute tip loss factor
parms.relaxfactor: relaxation factor solution update
0 < parms.relaxfactor <= 1. In order to avoid instability use
parms.relaxfactor <= 0.5 (recommended)
- ext: structure of operation conditions:
ext.settippitch: pitch angle offset from the original blade
geometry. (scalar).
ext.TSR:
array
of
increasing
Tip
Speed
Ratio
Regimes
dim(1,numTSR).
Where m is the number of TSR's to be computed.
Outputs:
- results: structure containing:
results.phi:
Local
Velocity
Rotor
Plane
Angle
dim(numele,numTSR)
results.aoa: local operation angle of attack dim(numele,numTSR)
results.cl: local operation lift coefficient dim(numele,numTSR)
results.cd: local operation drag coefficient dim(numele,numTSR)
results.ctan:
local
operation
tangential
coefficient
dim(numele,numTSR)
results.cnorm:
local
operation
normal
coefficient
dim(numele,numTSR)
results.afactor:
local
operation
axial
induction
factor
dim(numele,numTSR)
of
turbine
blade
using
cubic
Inputs:
- parmsori: structure. parmsori defines the blade parameters in
dimensionless form.
parmsori.cR: dimensionless chord along the blade c/R where c is
the local chord length and R is the blade Radius
parmsori.rR: dimensionless position along the blade r/R.
parmsori.pitch: local blade pitch angle.
- rpos: dimensionless positions along the blade where blade
data are required for BEM computations.
Outputs:
- cRI: dimensionless chord along the blade for local
dimensionless positions rpos.
- pitchI: blade pitch angle along the blade for local
dimensionless positions rpos.
Outputs:
- cRI: c/R relation for each blade element station dim(1,numele)
where numele is the number of blade elements.
- pitchI: pitch distribution for each blade element station
dim(1,numele) where numele is the number of blade elements.
Function spaceresults.m
Inputs:
phi: angle between the incident velocity and rotor plane at each
blade element dim(1,numele).
rpos: dimensionless position of each blade element dim(1,numele)
where numele is the number of blade elements.
numblades: number of turbine blades.
Outputs:
ftip: tip loss factor dim(1,numele) where numele is the number of
blade elements.
Function writeresults.m
Save variables in results structure (See function spaceresults.m)