Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

Help Center Community MathWorks

Answers File Exchange Videos

Online Training Blogs Cody

MATLAB Online MATLAB Drive MATLAB Grader

File Exchange

Co-Blade: Software for Analysis and Design of Composite Blades  4 Ratings

version 1.1.0.0 (16.7 MB) by Danny Sale 8 Downloads 


Analysis and design of composite blades for wind and hydrokinetic turbines Updated 19 Sep 2012
View Version History
View License

Follow Download

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 1/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

Overview Functions

To obtain a comprehensive user’s guide and the most up-to-date information about Co-Blade, please visit: https://code.google.com/p/co-blade/

Overview of Co-Blade:
Co-Blade is an open source software that can be used for the structural analysis and design of composite blades for wind and hydrokinetic turbines. The objective of Co-Blade is to help designers accelerate
the preliminary design phase by providing the capabilities to quickly analyze alternative composite layups and to study their effects on composite blade properties, deformations, and material stresses and
strains.

In summary, the Co-Blade software contains many features:

•Realistic Modeling of Composite Blades


-nearly arbitrary topology & material properties

•Computation of Structural Properties


-offsets: center-of-mass, tension-center, & shear-center
-inertias: mass & mass moments of inertia
-stiffnesses: axial, bending, & torsional stiffness
-principal axes: inertial, centroidal, & elastic principal axes
-modal analysis: coupled mode shapes & frequencies (via integration w/ BModes)

•Structural Analysis
-nearly arbitrary applied aerodynamic forces & moments
-computation of body forces (centrifugal, weight, & buoyancy)
-computation of load induced blade deflections, lamina-level stresses & strains, & panel buckling stresses

•Optimization of Composite Layup


-For a given external blade shape & design load, Co-Blade can determine an optimal composite layup which minimizes blade mass while simultaneously satisfying constraints on maximum stress, buckling,
deflection, & placement of natural frequencies

•Graphical Post-Processing
-A large variety of 2D & 3D visualizations can be created through a graphical user interface to provide instant visual feedback

Collaboration:
If you are interested in becoming a contributor to the Co-Blade project (either through modifying the code, adding new features, validating Co-Blade results, or anything else you are interested in) please feel
free to contact me, I am happy to discuss possible collaborations.

Cite As
Danny Sale (2021). Co-Blade: Software for Analysis and Design of Composite Blades (https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-
blades), MATLAB Central File Exchange. Retrieved January 5, 2021.

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 2/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

Comments and Ratings (11)


Rate this submission 1 2 3 4 5 (Rating not required)

Comment on this submission

Daniel Sale code has moved to GitHub: https://github.com/nnmrec/Co-Blade


25 Oct 2019

Yu Guoqing Some parameter mistakes may appeared,such as the relationship between Elastic Modulus,Shear Modulus and Possion ratio are not met G=E/(2*(1+v)) in isotropic
31 Oct 2017 material.

Yu Guoqing How the force ,such as px,py,qz,can be defined?Where these values come from?
22 Oct 2017

Mehran qv


21 Aug 2017

Vishvas Suryakumar

2 Jun 2017

Yu Guoqing

21 Apr 2017
A great job!Why there is a forum to discuss the problems encounterd during studying

turbulent_dan hi Yu Guoqing, maybe the .exe was not compiled in this version of Co-Blade
3 Nov 2016
You do not need the .exe (in fact it runs slower). An older compiled version is still available here:
https://code.google.com/archive/p/co-blade/downloads

And newer version of Co-Blade have moved to GitHub here:


https://github.com/nnmrec/Co-Blade

but I no longer have access to the compiler toolbox.

However, I no longer have the toolboxes to produce compiled

Yu Guoqing Why there is no CoBlade.exe file in my download?


3 Nov 2016

Danny Hi Adam, thanks for the feedback!


12 Nov 2013

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 3/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central
When developing Co-Blade, I was using BModes v3.00.00 20-Mar-2008 compiled using double precision linked with NWTC Subroutine Library v1.01.08 26-Sep-2007.

I would first recommend trying this version of BModes, obtained from http://wind.nrel.gov/designcodes/

I will make note to update the documentation concerning the correct BModes version, and feel free to contact again if you have problems, cheers!

Adam Chehouri First of all Great job!


12 Nov 2013
I have however one issue with BModes. I have the BModes.exe and have made a copy and added it to the directory.

During the system execution of BModes, this is what I get

>> system(['BModes ' SIM.case{iSIM} '_BModes.bmi'])

Running BModes (v1.03.01, 25-Sept-2007, compiled using double precision).


Linked with the NWTC Subroutine Library (v1.01.08, 26-Sep-2007).

Invalid numerical input for file "WindTurbineRef_BModes.bmi".

The error occurred while trying to read id_mat.

Aborting BModes.

Any help as to why BModes is incorrectly executing ?

Jonathan Lister

13 Jul 2013
Amazing work! I'd love to see a blade design tool included. It looks like this is analysis only. User has to supply their own blade definitions.

Requires
MATLAB
Global Optimization Toolbox
Optimization Toolbox

At a minimum, Co-Blade does NOT require any additional toolboxes. Some of the features of Co-Blade require the additional toolboxes listed above. See the Co-Blade User's Guide for additional information.

MATLAB Release Compatibility


Created with R2012a
Compatible with any release

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 4/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

Platform Compatibility
 Windows  macOS  Linux

Categories
Science, Engineering and Industry > Industries > Energy Production > Wind Power >

Tags Add Tags


composite blade hydrokinetic turbine optimization structural mechanics wind turbine

Cancel Save

Others Also Downloaded


Horizontal Axis Wind Turbine preliminary blade design with Xfoil
17 Downloads 

Optimization of an airfoil shape using Genetic algorithm(GA)


22 Downloads 

NACA 4 digit Airfoil Generator


49 Downloads 

Acknowledgements
Inspired by: polygeom.m, Consolidator, export_fig, Constrained Particle Swarm Optimization

Community Treasure Hunt


Find the treasures in MATLAB Central and discover how the community can help you!

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 5/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central
 Start Hunting!

Discover Live Editor


Create scripts with code, output, and formatted text in a single executable document.

 Learn About Live Editor

v1.20.00-dcs/
%% clear all variables and close files
CoBlade.m clear all;
close('all');
fclose('all');
v1.20.00-dcs/Source/ format compact;

assignDesignVars(xo, OPT, BLADE, %% set the Co-Blade version


WEB, z_oub, z_CP) SIM.version = '1.20.00-dcs';

bladeDisplacement(zSec, zFrac, %% add paths to the source code


NUM_SEC, ResLoads, flapI_mc,
SIM.rootDir = pwd;
SIM.sourceDir = [SIM.rootDir filesep
checkInpErrors(ANLS,OPT,ENV,BLADE,WEB)
SIM.airfoilDir = [SIM.rootDir filesep
SIM.materialDir = [SIM.rootDir filesep
cltAnalysis(lamNum,nPlies,tPly,fibAng,E11,E22,G12,nu12,density)
SIM.laminateDir = [SIM.rootDir filesep
SIM.optimDir = [SIM.rootDir filesep
CoBlade_init(iSIM, SIM)
% NOTE: comment out the addpath comman
cosspace(x1, x2, N, flag)
addpath( SIM.sourceDir )
addpath([SIM.sourceDir filesep 'consol
cumtrapzf(x,y) addpath([SIM.sourceDir filesep 'dispCo
addpath([SIM.sourceDir filesep 'export
addpath([SIM sourceDir filesep 'polyge
https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 6/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central
addpath([SIM.sourceDir filesep polyge
defineCoordSystems(BLADE) addpath([SIM.sourceDir filesep 'psopt'

defineLaminateData(xo, iSIM, SIM, %% set debugging breakpoints


OPT, BLADE, WEB, MATS, z_oub, % dbstop in structOptimize.m at 453
z_CP, nSegsTopBot)
% dbstop in structAnalysis.m at 332

definePanel(flag, x_nodes, y_nodes,


i_sNodes, i_wNodes, zSec, LamData)
%% Read the list of active input files
fid = fopen([SIM.rootDir filesep 'Acti
definePitchAxis(BLADE, OPT) if fid == -1
error(['ERROR: Could not locate an
defineWebNodes(BLADE, WEB) end
inpList = textscan(fid,'%s');
findClosest(x, val) fclose(fid);

finiteDiff(x) SIM.inpFile = inpList{:};


nInpFiles = numel(SIM.inpFile);
fitnessFunction(iSIM, SIM, ANLS, OPT, SIM.case = cell(nInpFiles, 1);
BLADE, WEB, StrProps, LaminaSS, for iSIM = 1:nInpFiles
Buckle, Disp, Modes) [pathstr SIM.case{iSIM} ext] = fil
end
gradientSearchOutput(x, optimValues,
state, iSIM, SI
%% main loop that sequentially execute
for iSIM = 1:nInpFiles
interpAirfoilCoords(OrigNormAFcoords,
BLADE) fprintf(1, 'Executing case %s with

loadsApplied(zSec, NUM_SEC, clear ANLS OPT ENV BLADE WEB OUT M


HUB_RAD, PRE_CONE, ROT_SPD, [ANLS OPT ENV BLADE WEB OUT M

loadsResultant(zSec, NUM_SEC, %% Define the laminate data, eithe


AppLoads, x_cm, y_cm, if OPT.OPTIMIZE

particleSwarmOutput(options, state, WEB.inbStn = OPT.INB_STN .* on


flag, iSIM, SIM,
WEB.oubStn = OPT.OUB_STN .* on

patternSearchOutput(optimvalues,
% Determine the laminate data
options, flag,
[WEB SECNODES LamData] = struc
planformLine(zSec, chord, pitAxis,
inbChLoc, oubChLoc, INB_STN, else
OUB_STN) % Read the pre-defined laminat
[SECNODES L D t ] dL i
https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 7/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central
[SECNODES LamData] = readLamin
plotBestPoint(fig, x_current, OPT, end
BLADE, WEB, AF, z_oub, z_CP)

%% execute the structural analysis


plotBladeBuckleCrit(iSIM, SIM, BLADE, [Panel StrProps AppLoads ResLoads
WEB, OUT, Panel, Buckle)
= structAnalysis(iSIM, SIM, ANLS,

plotBladeGModulus(iSIM, SIM, BLADE,


WEB, OUT, Panel)
%% write output files
if OPT.OPTIMIZE || OPT.OPT_PITAXIS
plotBladeNormStress(iSIM, SIM, % create a copy of the main in
BLADE, WEB, OUT, Panel, NormS) if OPT.OPTIMIZE
BLADE.strFile = cell(BLADE
plotBladeShearStress(iSIM, SIM, for n = 1:BLADE.NUM_SEC
BLADE, WEB, OUT, Panel, ShearS) BLADE.strFile{n} = [SI
end
plotBladeYModulus(iSIM, SIM, BLADE, end
WEB, OUT, Panel)
writeInpFileNewMain(iSIM, SIM,
end
plotDeflect(iSIM, SIM, BLADE, Disp,
OUT)
if OUT.PROPS_FILE
writeOupFileProps(iSIM, SIM, B
plotLaminaStrain(iSIM, SIM, BLADE,
WEB, MATS, Panel, LaminaSS, OUT) end

plotLaminaStress(iSIM, SIM, BLADE, if OUT.LOAD_DSP_FILE


WEB, MATS, Panel, LaminaSS, OUT) writeOupFileLoads(iSIM, SIM, B
end
plotLaminaStressFC(iSIM, SIM,
BLADE, WEB, MATS, Panel, if OUT.PANEL_FILE
LaminaSS, OUT)
writeOupFilePanel(iSIM, SIM, B
end
plotLoads(iSIM, SIM, BLADE,
AppLoads, ResLoads, OUT)
if OUT.LAMINA_FILE
plotLoadsDisp(iSIM, SIM, BLADE, AF,
writeOupFileLamina(iSIM, SIM,
Coord, AppLoads, Disp, StrProps, end
OUT)
%% create output plots
plotModes(iSIM, SIM, ANLS, Modes, if OUT.DATA_GUI
OUT) startDataGUI(iSIM, SIM, OPT, B
end

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 8/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

if OUT.PLOT_F_BLD || OUT.PLOT_DISP
plotStructProps(iSIM, SIM, BLADE,
StrProps, OUT)
plotLoadsDisp(iSIM, SIM, BLADE
end
plotSurfaceData(OPT, BLADE, WEB,
AF, stn1, stn2, Panel, PlotSurf, if OUT.PLOT_YMOD
LaminaSS) plotBladeYModulus(iSIM, SIM, B
end
preProcessShearFlowData(NUM_SEC,
x_tc, y_tc, Panel, xw_top, yw_top, if OUT.PLOT_GMOD
xw_bot, yw_bot, nCells)
plotBladeGModulus(iSIM, SIM, B
end
principalValues(Ix, Iy, Ixy)

if OUT.PLOT_MASS_DEN || OUT.PLOT_P
radiusCurvature(x, y)
OUT.PLOT_BSTFF || OUT.PLOT_I
plotStructProps(iSIM, SIM, BLA
readAirfoilCoordFiles(SIM, BLADE)
end
readCellArray(fid, aryFormat, aryRows)
if OUT.PLOT_NORMS
readLaminateData(SIM, BLADE, WEB, plotBladeNormStress(iSIM, SIM,
MATS) end

readLogical(fid) if OUT.PLOT_SHEARS
plotBladeShearStress(iSIM, SIM
readMaterialsFile(SIM, BLADE, OPT) end

readOutFileBModes(iSIM, SIM, ANLS) if OUT.PLOT_BCRIT


plotBladeBuckleCrit(iSIM, SIM,
readScalar(fid) end

readString(fid) if OUT.PLOT_E11 || OUT.PLOT_E22 ||


plotLaminaStrain(iSIM, SIM, BL
readVector(fid,N) end

savePlots(fig, figTitle, SAVE_FIG_FMT) if OUT.PLOT_S11 || OUT.PLOT_S22 ||


plotLaminaStress(iSIM, SIM, BL
scaleAirfoilCoords(x, y, pitAxis, chord,
end
aeroTwst)

if OUT.PLOT_S11_FC || OUT.PLOT_S22
shearCenter(Panel, Top, Bot, Web,
Cell, plotLaminaStressFC(iSIM, SIM,
end
https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 9/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

startDataGUI(iSIM, SIM, OPT, BLADE,


WEB, AF, Panel, LaminaSS) if ( OUT.PLOT_MODE_S || OUT.PLOT_M
plotModes(iSIM, SIM, ANLS, Mod
strainPlate(Panel, NormS, ShearS) end

strainStressPly(Panel, MidPlane, if OUT.PLOT_APPLOADS || OUT.PLOT_R


MATS) plotLoads(iSIM, SIM, BLADE, Ap
end
stressBuckle(Panel, NormS, ShearS,
flag)
if OUT.PLOT_DEFLECT
plotDeflect(iSIM, SIM, BLADE,
stressNormal(Panel, x_tc, y_tc,
end
axial_stff, EIx, EIy,

stressShear(Top, Bot, Web, Cell, nPa


fprintf(1, 'Co-Blade v%s terminate

structAnalysis(iSIM, SIM, ANLS, ENV, end % for iSIM = 1:nInpFiles


BLADE, WEB, MATS, LamData, AF,
SECNODES, Coord)

structFitness(xo, iSIM, SIM, ANLS,


OPT, ENV, BLADE, WEB, AF, MATS,
Coord, z_oub, z_CP, nSegsTopBot)

structOptimize(iSIM, SIM, ANLS, OPT,


ENV, BLADE, WEB, AF, MATS, Coord,
OUT)

trapzf(x,y)

unscaleAirfoilCoords(x, y, pitAxis,
chord, aeroTwst)

webCoords(Panel, xw_top, yw_top,


xw_bot, yw_bot, nWebs,
WEB_NODES)

writeInpFileBModes(iSIM, SIM, ANLS,


BLADE, elas_tw, iner_tw,

writeInpFileLaminate(iSIM, SIM,
BLADE, WEB, SECNODES, LamData)

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 10/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

writeInpFileNewMain(iSIM, SIM, OPT,


BLADE, WEB)

writeOupFileLamina(iSIM, SIM, BLADE,


WEB, SECNODES, Panel, Buckle,
LaminaSS, OUT)

writeOupFileLoads(iSIM, SIM, BLADE,


AppLoads, ResLoads, Disp, OUT)

writeOupFilePanel(iSIM, SIM, BLADE,


WEB, SECNODES, Panel, NormS,
ShearS, Buckle, OUT)

writeOupFileProps(iSIM, SIM, BLADE,


StrProps, OUT)

v1.20.00-
dcs/Source/consolidator/

consolidator(x,y,aggregation_mode,tol)

v1.20.00-
dcs/Source/dispCorrectionFactor/

dispCorrectionFactor(zFrac,
NUM_SEC, I1, I2)

v1.20.00-
dcs/Source/export_fig/

eps2pdf(source, dest, crop, append,


gray, quality)

export_fig(varargin)

fix_lines(fname, fname2)

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 11/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

ghostscript(cmd)

isolate_axes(ah, vis)

pdf2eps(source, dest)

pdftops(cmd)

print2array(fig, res, renderer)

print2eps(name, fig, varargin)

user_string(string_name, string)

v1.20.00-
dcs/Source/polygeom/

polygeom2(x, y)

v1.20.00-
dcs/Source/psopt/

binarytestfcn(x)

evolutioncomplete(options,state,flag)

pso(fitnessfcn,nvars,Aineq,bineq,Aeq,beq,LB,UB,nonlcon,options)

psobinary(fitnessfcn,nvars,options)

psoboundsabsorb(state,Aineq,bineq,Aeq,beq,LB,UB,
nonlcon,options)

psoboundspenalize(state,Aineq,bineq,Aeq,beq,LB,UB,nonlcon,options)

psoboundsreflect(state,Aineq,bineq,Aeq,beq,LB,UB,nonlcon,options)

psoboundssoft(state,Aineq,bineq,Aeq,beq,LB,UB,nonlcon,options)

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 12/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

psodemo(DemoMode)

psoiterate(options,state,flag)

psooptimset(varargin)

psoplotbestf(options,state,flag)

psoplotscores(options,state,flag)

psoplotswarm(options,state,flag,ijk)

psoplotswarmsurf(options,state,flag)

v1.20.00-
dcs/Source/psopt/private/

heart(x)

initstate(nvars,options,n,itr)

overlaycontour(fitnessfcn,xmin,ymin,xBound,yBound)

overlaysurface(fitnessfcn,options)

psocheckbounds(state,Aineq,bineq,Aeq,beq,LB,UB,nonlcon,options)

psocheckinitialpopulation(state,Aineq,bineq,Aeq,beq,LB,UB,nonlcon,
options)

psocheckpopulationinitrange(initrange,LB,UB)

psocreationbinary(options,nvars)

psocreationuniform(options,nvars)

psogenerateoutputmessage(options,output,exitflag)

psogetinitialpopulation(options,n,nvars)

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 13/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

psorunhybridfcn(fitnessfcn,xOpt,
Aineq,bineq,Aeq,beq,LB,UB,nonlcon,options)

quadrifolium(x)

unitcircle(x)

unitdisk(x)

void(varargin)

v1.20.00-
dcs/Source/psopt/testfcns/

ackleysfcn(x)

dejongsfcn(x)

dropwavefcn(x)

griewangksfcn(x)

langermannsfcn(x)

nonlinearconstrdemo(x)

rastriginsfcn(x)

rosenbrocksfcn(x)

schwefelsfcn(x)

templatefcn(x)

testfcn1(x)

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 14/15
1/5/2021 Co-Blade: Software for Analysis and Design of Composite Blades - File Exchange - MATLAB Central

mathworks.com
© 1994-2020 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered
trademarks of their respective holders.

https://www.mathworks.com/matlabcentral/fileexchange/38224-co-blade-software-for-analysis-and-design-of-composite-blades 15/15

You might also like