def configure_blade(): top = Assembly() configure_bladesurface(top, planform_nC=6) # load the planform file top.pf_splines.pfIn = read_blade_planform( os.path.join(PATH, 'data/DTU_10MW_RWT_blade_axis_prebend.dat')) top.blade_length = 86.366 top.span_ni = 5 b = top.blade_surface # distribute 200 points evenly along the airfoil sections b.chord_ni = 40 # load the airfoil shapes defining the blade for f in [ os.path.join(PATH, 'data/ffaw3241.dat'), os.path.join(PATH, 'data/ffaw3301.dat'), os.path.join(PATH, 'data/ffaw3360.dat'), os.path.join(PATH, 'data/ffaw3480.dat'), os.path.join(PATH, 'data/cylinder.dat') ]: b.base_airfoils.append(np.loadtxt(f)) b.blend_var = np.array([0.241, 0.301, 0.36, 0.48, 1.]) return top
def configure_blade(): top = Assembly() configure_bladesurface(top, os.path.join(PATH, 'data/DTU_10MW_RWT_blade_axis_prebend.dat'), planform_nC=6) # load the planform file top.blade_length = 86.366 top.span_ni = 5 b = top.blade_surface # distribute 200 points evenly along the airfoil sections b.chord_ni = 40 # load the airfoil shapes defining the blade for f in [os.path.join(PATH, 'data/ffaw3241.dat'), os.path.join(PATH, 'data/ffaw3301.dat'), os.path.join(PATH, 'data/ffaw3360.dat'), os.path.join(PATH, 'data/ffaw3480.dat') , os.path.join(PATH, 'data/cylinder.dat')]: b.base_airfoils.append(np.loadtxt(f)) b.blend_var = np.array([0.241, 0.301, 0.36, 0.48, 1.]) return top
def lofted_blade_shape_example(): top = Assembly() configure_bladesurface(top, planform_nC=6) # load the planform file top.pf_splines.pfIn = read_blade_planform('data/DTU_10MW_RWT_blade_axis_prebend.dat') top.blade_length = 86.366 top.span_ni = 50 print 'planform variables: ', top.pf_splines.pfOut.list_vars() b = top.blade_surface # distribute 200 points evenly along the airfoil sections b.chord_ni = 200 # load the airfoil shapes defining the blade for f in ['data/ffaw3241.dat', 'data/ffaw3301.dat', 'data/ffaw3360.dat', 'data/ffaw3480.dat' , 'data/tc72.dat' , 'data/cylinder.dat']: b.base_airfoils.append(np.loadtxt(f)) b.blend_var = np.array([0.241, 0.301, 0.36, 0.48, 0.72, 1.]) top.run() pf = top.pf_splines.pfOut plt.figure() plt.title('chord') plt.plot(pf.s, pf.chord) plt.savefig('chord.eps') plt.figure() plt.title('twist') plt.plot(pf.s, pf.rot_z) plt.savefig('twist.eps') plt.figure() plt.title('relative thickness') plt.plot(pf.s, pf.rthick) plt.savefig('rthick.eps') plt.figure() plt.title('pitch axis aft leading edge') plt.plot(pf.s, pf.p_le) plt.savefig('p_le.eps') plt.figure() plt.axis('equal') for i in range(b.span_ni): plt.plot(b.surfout.surface[:, i, 0], b.surfout.surface[:, i, 1]) plt.savefig('lofted_blade.eps') return top
def lofted_blade_shape_example(): top = Assembly() configure_bladesurface(top, 'data/DTU_10MW_RWT_blade_axis_prebend.dat', planform_nC=6) # load the planform file top.blade_length = 86.366 top.span_ni = 50 print 'planform variables: ', top.pf_splines.pfOut.list_vars() b = top.blade_surface # distribute 200 points evenly along the airfoil sections b.chord_ni = 200 # load the airfoil shapes defining the blade for f in ['data/ffaw3241.dat', 'data/ffaw3301.dat', 'data/ffaw3360.dat', 'data/ffaw3480.dat' , 'data/tc72.dat' , 'data/cylinder.dat']: b.base_airfoils.append(np.loadtxt(f)) b.blend_var = np.array([0.241, 0.301, 0.36, 0.48, 0.72, 1.]) top.run() pf = top.pf_splines.pfOut plt.figure() plt.title('chord') plt.plot(pf.s, pf.chord) plt.savefig('chord.eps') plt.figure() plt.title('twist') plt.plot(pf.s, pf.rot_z) plt.savefig('twist.eps') plt.figure() plt.title('relative thickness') plt.plot(pf.s, pf.rthick) plt.savefig('rthick.eps') plt.figure() plt.title('pitch axis aft leading edge') plt.plot(pf.s, pf.p_le) plt.savefig('p_le.eps') plt.figure() plt.axis('equal') for i in range(b.span_ni): plt.plot(b.surfout.surface[:, i, 0], b.surfout.surface[:, i, 1]) plt.savefig('lofted_blade.eps') plt.savefig('lofted_blade.png') return top
import numpy as np from openmdao.lib.datatypes.api import VarTree from openmdao.main.api import Assembly, Component from fusedwind.interface import implement_base from fusedwind.turbine.geometry import read_blade_planform, redistribute_blade_planform from fusedwind.turbine.configurations import configure_bladestructure, configure_bladesurface from fusedwind.turbine.blade_structure import SplinedBladeStructure from fusedwind.turbine.structure_vt import BladeStructureVT3D top = Assembly() configure_bladesurface(top, 'data/DTU_10MW_RWT_blade_axis_prebend.dat', planform_nC=6) configure_bladestructure(top, 'data/DTU10MW', structure_nC=5) top.st_writer.filebase = 'st_test' top.blade_length = 86.366 top.span_ni = 30 top.blade_surface.chord_ni = 300 for f in [ 'data/ffaw3241.dat', 'data/ffaw3301.dat', 'data/ffaw3360.dat', 'data/ffaw3480.dat', 'data/tc72.dat', 'data/cylinder.dat' ]: top.blade_surface.base_airfoils.append(np.loadtxt(f))
# --- 1 ----- import numpy as np from openmdao.lib.datatypes.api import VarTree from openmdao.main.api import Assembly, Component from fusedwind.interface import implement_base from fusedwind.turbine.geometry import read_blade_planform, redistribute_blade_planform from fusedwind.turbine.configurations import configure_bladestructure, configure_bladesurface from fusedwind.turbine.blade_structure import SplinedBladeStructure from fusedwind.turbine.structure_vt import BladeStructureVT3D top = Assembly() configure_bladesurface(top, 'data/DTU_10MW_RWT_blade_axis_prebend.dat', planform_nC=6) configure_bladestructure(top, 'data/DTU10MW', structure_nC=5) top.st_writer.filebase = 'st_test' top.blade_length = 86.366 top.span_ni = 30 top.blade_surface.chord_ni = 300 for f in ['data/ffaw3241.dat', 'data/ffaw3301.dat', 'data/ffaw3360.dat', 'data/ffaw3480.dat', 'data/tc72.dat', 'data/cylinder.dat']: