def example_218WD_3MW(): example = optimizationSpar() tt = time.time() example.spar.number_of_sections = 4 example.spar.outer_diameter = [5., 6., 6., 9.] example.spar.length = [6., 12., 15., 47.] example.spar.end_elevation = [7., -5., -20., -67.] example.spar.start_elevation = [13., 7., -5., -20.] example.spar.bulk_head = ['N', 'T', 'N', 'B'] example.spar.water_depth = 218. example.spar.load_condition = 'N' example.spar.significant_wave_height = 10.820 example.spar.significant_wave_period = 9.800 example.spar.wind_reference_speed = 11. example.spar.wind_reference_height = 75. example.spar.alpha = 0.110 example.spar.RNA_keel_to_CG = 142. example.spar.RNA_mass = 125000. example.spar.tower_mass = 127877. example.spar.tower_center_of_gravity = 23.948 example.spar.tower_wind_force = 19950.529 example.spar.RNA_wind_force = 391966.178 example.spar.RNA_center_of_gravity_x = 4.1 example.spar.mooring_total_cost = 810424.053596 example.spar.mooring_keel_to_CG = 54.000 example.spar.mooring_vertical_load = 1182948.791 example.spar.mooring_horizontal_stiffness = 3145.200 example.spar.mooring_vertical_stiffness =7111.072 example.spar.sum_forces_x = [7886.848,437.844,253.782,174.651,124.198,85.424,50.689,17.999,-13.222,-43.894,-74.245,-105.117,-136.959,-170.729,-207.969,-251.793,-307.638,-386.514,-518.734,-859.583,-11091.252] example.spar.offset_x = [-40.362,-35.033,-29.703,-24.373,-19.044,-13.714,-8.385,-3.055,2.274,7.604,12.933,18.263,23.593,28.922,34.252,39.581,44.911,50.240,55.570,60.900,66.229] example.spar.damaged_mooring = [-40.079,65.824] example.spar.intact_mooring = [-39.782,65.399] example.spar.run() example.run() yna = convert_units(example.spar.neutral_axis ,'m','inch') fullStiffeners = full_stiffeners_table() for i in range (0,len(fullStiffeners)-1): stiffener_bef = fullStiffeners[i] stiffener_aft = fullStiffeners[i+1] if yna > stiffener_bef[6] and yna<stiffener_aft[6]: opt_index = i+1 second_fit = Spar() second_fit.wall_thickness = example.spar.wall_thickness second_fit.number_of_rings = example.spar.number_of_rings second_fit.stiffener_curve_fit = False second_fit.stiffener_index = opt_index second_fit.number_of_sections = example.spar.number_of_sections second_fit.outer_diameter = example.spar.outer_diameter second_fit.length = example.spar.length second_fit.end_elevation = example.spar.end_elevation second_fit.start_elevation = example.spar.start_elevation second_fit.bulk_head = example.spar.bulk_head second_fit.water_depth = example.spar.water_depth second_fit.load_condition = example.spar.load_condition second_fit.significant_wave_height = example.spar.significant_wave_height second_fit.significant_wave_period = example.spar.significant_wave_period second_fit.wind_reference_speed = example.spar.wind_reference_speed second_fit.wind_reference_height = example.spar.wind_reference_height second_fit.alpha = example.spar.alpha second_fit.RNA_keel_to_CG = example.spar.RNA_keel_to_CG second_fit.RNA_mass = example.spar.RNA_mass second_fit.tower_mass = example.spar.tower_mass second_fit.tower_center_of_gravity = example.spar.tower_center_of_gravity second_fit.tower_wind_force = example.spar.tower_wind_force second_fit.RNA_wind_force = example.spar.RNA_wind_force second_fit.RNA_center_of_gravity_x = example.spar.RNA_center_of_gravity_x second_fit.mooring_total_cost = example.spar.mooring_total_cost second_fit.mooring_keel_to_CG = example.spar.mooring_keel_to_CG second_fit.mooring_vertical_load = example.spar.mooring_vertical_load second_fit.mooring_horizontal_stiffness = example.spar.mooring_horizontal_stiffness second_fit.mooring_vertical_stiffness = example.spar.mooring_vertical_stiffness second_fit.sum_forces_x = example.spar.sum_forces_x second_fit.offset_x = example.spar.offset_x second_fit.damaged_mooring = example.spar.damaged_mooring second_fit.intact_mooring = example.spar.intact_mooring second_fit.run() cost = second_fit.total_cost index = opt_index best_index = opt_index unity = max(second_fit.web_compactness,second_fit.flange_compactness,max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) for i in range(opt_index,326): index += 1 second_fit.stiffener_index = index second_fit.run() unity = max(second_fit.web_compactness,second_fit.flange_compactness,max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) if unity < 1.0: if second_fit.total_cost < cost : cost=second_fit.total_cost best_index = i second_fit.stiffener_index = best_index second_fit.run() print '--------------example_218WD_3MW------------------' print "Elapsed time: ", time.time()-tt, " seconds" sys_print(second_fit)
def example_218WD_3MW(): example = optimizationSpar() tt = time.time() example.spar.number_of_sections = 4 example.spar.outer_diameter = [5., 6., 6., 9.] example.spar.length = [6., 12., 15., 47.] example.spar.end_elevation = [7., -5., -20., -67.] example.spar.start_elevation = [13., 7., -5., -20.] example.spar.bulk_head = ['N', 'T', 'N', 'B'] example.spar.water_depth = 218. example.spar.load_condition = 'N' example.spar.significant_wave_height = 10.820 example.spar.significant_wave_period = 9.800 example.spar.wind_reference_speed = 11. example.spar.wind_reference_height = 75. example.spar.alpha = 0.110 example.spar.RNA_keel_to_CG = 142. example.spar.RNA_mass = 125000. example.spar.tower_mass = 127877. example.spar.tower_center_of_gravity = 23.948 example.spar.tower_wind_force = 19950.529 example.spar.RNA_wind_force = 391966.178 example.spar.RNA_center_of_gravity_x = 4.1 example.spar.mooring_total_cost = 810424.053596 example.spar.mooring_keel_to_CG = 54.000 example.spar.mooring_vertical_load = 1182948.791 example.spar.mooring_horizontal_stiffness = 3145.200 example.spar.mooring_vertical_stiffness = 7111.072 example.spar.sum_forces_x = [ 7886.848, 437.844, 253.782, 174.651, 124.198, 85.424, 50.689, 17.999, -13.222, -43.894, -74.245, -105.117, -136.959, -170.729, -207.969, -251.793, -307.638, -386.514, -518.734, -859.583, -11091.252 ] example.spar.offset_x = [ -40.362, -35.033, -29.703, -24.373, -19.044, -13.714, -8.385, -3.055, 2.274, 7.604, 12.933, 18.263, 23.593, 28.922, 34.252, 39.581, 44.911, 50.240, 55.570, 60.900, 66.229 ] example.spar.damaged_mooring = [-40.079, 65.824] example.spar.intact_mooring = [-39.782, 65.399] example.spar.run() example.run() yna = convert_units(example.spar.neutral_axis, 'm', 'inch') fullStiffeners = full_stiffeners_table() for i in range(0, len(fullStiffeners) - 1): stiffener_bef = fullStiffeners[i] stiffener_aft = fullStiffeners[i + 1] if yna > stiffener_bef[6] and yna < stiffener_aft[6]: opt_index = i + 1 second_fit = Spar() second_fit.wall_thickness = example.spar.wall_thickness second_fit.number_of_rings = example.spar.number_of_rings second_fit.stiffener_curve_fit = False second_fit.stiffener_index = opt_index second_fit.number_of_sections = example.spar.number_of_sections second_fit.outer_diameter = example.spar.outer_diameter second_fit.length = example.spar.length second_fit.end_elevation = example.spar.end_elevation second_fit.start_elevation = example.spar.start_elevation second_fit.bulk_head = example.spar.bulk_head second_fit.water_depth = example.spar.water_depth second_fit.load_condition = example.spar.load_condition second_fit.significant_wave_height = example.spar.significant_wave_height second_fit.significant_wave_period = example.spar.significant_wave_period second_fit.wind_reference_speed = example.spar.wind_reference_speed second_fit.wind_reference_height = example.spar.wind_reference_height second_fit.alpha = example.spar.alpha second_fit.RNA_keel_to_CG = example.spar.RNA_keel_to_CG second_fit.RNA_mass = example.spar.RNA_mass second_fit.tower_mass = example.spar.tower_mass second_fit.tower_center_of_gravity = example.spar.tower_center_of_gravity second_fit.tower_wind_force = example.spar.tower_wind_force second_fit.RNA_wind_force = example.spar.RNA_wind_force second_fit.RNA_center_of_gravity_x = example.spar.RNA_center_of_gravity_x second_fit.mooring_total_cost = example.spar.mooring_total_cost second_fit.mooring_keel_to_CG = example.spar.mooring_keel_to_CG second_fit.mooring_vertical_load = example.spar.mooring_vertical_load second_fit.mooring_horizontal_stiffness = example.spar.mooring_horizontal_stiffness second_fit.mooring_vertical_stiffness = example.spar.mooring_vertical_stiffness second_fit.sum_forces_x = example.spar.sum_forces_x second_fit.offset_x = example.spar.offset_x second_fit.damaged_mooring = example.spar.damaged_mooring second_fit.intact_mooring = example.spar.intact_mooring second_fit.run() cost = second_fit.total_cost index = opt_index best_index = opt_index unity = max(second_fit.web_compactness, second_fit.flange_compactness, max(second_fit.VAL), max(second_fit.VAG), max(second_fit.VEL), max(second_fit.VEG)) for i in range(opt_index, 326): index += 1 second_fit.stiffener_index = index second_fit.run() unity = max(second_fit.web_compactness, second_fit.flange_compactness, max(second_fit.VAL), max(second_fit.VAG), max(second_fit.VEL), max(second_fit.VEG)) if unity < 1.0: if second_fit.total_cost < cost: cost = second_fit.total_cost best_index = i second_fit.stiffener_index = best_index second_fit.run() print '--------------example_218WD_3MW------------------' print "Elapsed time: ", time.time() - tt, " seconds" sys_print(second_fit)
def example_218WD_6MW(): example = optimizationSpar() tt = time.time() example.water_depth = 218. example.load_condition = 'N' example.significant_wave_height = 10.820 example.significant_wave_period = 9.800 example.keel_cg_mooring = 37.177 example.keel_cg_operating_system = 24.059 example.reference_wind_speed = 11. example.reference_height = 97. example.alpha = 0.110 example.material_density = 7850. example.E = 200.e9 example.nu = 0.3 example.yield_stress = 345000000. example.rotor_mass = 365500.000 example.tower_mass = 366952.000 example.free_board = 13. example.draft = 72. example.fixed_ballast_mass = 3659547.034 example.hull_mass = 1593822.041 example.permanent_ballast_mass = 1761475.914 example.variable_ballast_mass = 820790.246 example.number_of_sections = 4 example.outer_diameter = [7., 8., 8., 13.] example.length = [6., 12., 15., 52.] example.end_elevation = [7., -5., -20., -72.] example.start_elevation = [13., 7., -5., -20.] example.bulk_head = ['N', 'T', 'N', 'B'] #example.system_acceleration = 1.12124749328663 example.gust_factor = 1.0 example.tower_base_OD = 6.0 example.tower_top_OD = 3.51 example.tower_length = 80.5 example.cut_out_speed = 25. example.turbine_size = '6MW' example.rotor_diameter = 154.0 example.run() yna = convert_units(example.spar.neutral_axis ,'m','inch') filteredStiffeners = filtered_stiffeners_table() for i in range (0,len(filteredStiffeners)-1): stiffener_bef = filteredStiffeners[i] stiffener_aft = filteredStiffeners[i+1] if yna > stiffener_bef[6] and yna<stiffener_aft[6]: opt_index = i+1 second_fit = Spar() second_fit.wall_thickness = example.spar.wall_thickness second_fit.number_of_rings = example.spar.number_of_rings second_fit.stiffener_index = opt_index second_fit.initial_pass = False second_fit.water_depth = example.water_depth second_fit.load_condition = example.load_condition second_fit.significant_wave_height = example.significant_wave_height second_fit.significant_wave_period = example.significant_wave_period second_fit.keel_cg_mooring = example.keel_cg_mooring second_fit.keel_cg_operating_system = example.keel_cg_operating_system second_fit.reference_wind_speed = example.reference_wind_speed second_fit.reference_height = example.reference_height second_fit.alpha = example.alpha second_fit.material_density = example.material_density second_fit.E = example.E second_fit.nu =example.nu second_fit.yield_stress = example.yield_stress second_fit.rotor_mass = example.rotor_mass second_fit.tower_mass = example.tower_mass second_fit.free_board = example.free_board second_fit.draft = example.draft second_fit.fixed_ballast_mass = example.fixed_ballast_mass second_fit.hull_mass = example.hull_mass second_fit.permanent_ballast_mass = example.permanent_ballast_mass second_fit.variable_ballast_mass = example.variable_ballast_mass second_fit.number_of_sections = example.number_of_sections second_fit.outer_diameter = example.outer_diameter second_fit.length = example.length second_fit.end_elevation = example.end_elevation second_fit.start_elevation = example.start_elevation second_fit.bulk_head = example.bulk_head second_fit.gust_factor = example.gust_factor second_fit.tower_base_OD = example.tower_base_OD second_fit.tower_top_OD = example.tower_top_OD second_fit.tower_length = example.tower_length second_fit.cut_out_speed = example.cut_out_speed second_fit.turbine_size = example.turbine_size second_fit.rotor_diameter = example.rotor_diameter #second_fit.system_acceleration=example.system_acceleration second_fit.run() index = opt_index unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) while ((unity-1.0) > 1e-7): if index <124: index += 1 second_fit.stiffener_index = index second_fit.run() unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) else: second_fit.stiffener_index = opt_index for i in range(0,second_fit.number_of_sections): if second_fit.VAL[i] >1. or second_fit.VAG[i]>1. or second_fit.VEL[i]>1. or second_fit.VEG[i]>1.: second_fit.number_of_rings[i] += 1 second_fit.run() unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) print '--------------example_218WD_6MW------------------' print "Elapsed time: ", time.time()-tt, " seconds" sys_print(second_fit)
def example_218WD_10MW(): example = optimizationSpar() tt = time.time() example.water_depth = 218. example.load_condition = 'N' example.significant_wave_height = 10.820 example.significant_wave_period = 9.800 example.keel_cg_mooring = 45. example.keel_cg_operating_system = 30.730 example.reference_wind_speed = 11. example.reference_height = 119. example.alpha = 0.110 example.material_density = 7850. example.E = 200.e9 example.nu = 0.3 example.yield_stress = 345000000. example.rotor_mass = 677000.000 example.tower_mass = 698235.000 example.free_board = 13. example.draft = 92. example.fixed_ballast_mass = 6276669.794 example.hull_mass = 2816863.293 example.permanent_ballast_mass = 3133090.391 example.variable_ballast_mass = 1420179.260 example.number_of_sections = 4 example.outer_diameter = [8.,9.,9.,15.] example.length = [6., 12., 15., 72.] example.end_elevation = [7., -5., -20., -92.] example.start_elevation = [13., 7., -5., -20.] example.bulk_head = ['N', 'T', 'N', 'B'] #example.system_acceleration = 0.856545480516845 example.gust_factor = 1.0 example.tower_base_OD = 7.720 example.tower_top_OD = 4.050 example.tower_length = 102.63 example.cut_out_speed = 25. example.turbine_size = '10MW' example.rotor_diameter = 194.0 example.run() yna = convert_units(example.spar.neutral_axis ,'m','inch') filteredStiffeners = filtered_stiffeners_table() for i in range (0,len(filteredStiffeners)-1): stiffener_bef = filteredStiffeners[i] stiffener_aft = filteredStiffeners[i+1] if yna > stiffener_bef[6] and yna<stiffener_aft[6]: opt_index = i+1 second_fit = Spar() second_fit.wall_thickness = example.spar.wall_thickness second_fit.number_of_rings = example.spar.number_of_rings second_fit.stiffener_index = opt_index second_fit.initial_pass = False second_fit.water_depth = example.water_depth second_fit.load_condition = example.load_condition second_fit.significant_wave_height = example.significant_wave_height second_fit.significant_wave_period = example.significant_wave_period second_fit.keel_cg_mooring = example.keel_cg_mooring second_fit.keel_cg_operating_system = example.keel_cg_operating_system second_fit.reference_wind_speed = example.reference_wind_speed second_fit.reference_height = example.reference_height second_fit.alpha = example.alpha second_fit.material_density = example.material_density second_fit.E = example.E second_fit.nu =example.nu second_fit.yield_stress = example.yield_stress second_fit.rotor_mass = example.rotor_mass second_fit.tower_mass = example.tower_mass second_fit.free_board = example.free_board second_fit.draft = example.draft second_fit.fixed_ballast_mass = example.fixed_ballast_mass second_fit.hull_mass = example.hull_mass second_fit.permanent_ballast_mass = example.permanent_ballast_mass second_fit.variable_ballast_mass = example.variable_ballast_mass second_fit.number_of_sections = example.number_of_sections second_fit.outer_diameter = example.outer_diameter second_fit.length = example.length second_fit.end_elevation = example.end_elevation second_fit.start_elevation = example.start_elevation second_fit.bulk_head = example.bulk_head #second_fit.system_acceleration=example.system_acceleration second_fit.gust_factor = example.gust_factor second_fit.tower_base_OD = example.tower_base_OD second_fit.tower_top_OD = example.tower_top_OD second_fit.tower_length = example.tower_length second_fit.cut_out_speed = example.cut_out_speed second_fit.turbine_size = example.turbine_size second_fit.rotor_diameter = example.rotor_diameter second_fit.run() index = opt_index unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) while ((unity-1.0) > 1e-7): if index <124: index += 1 second_fit.stiffener_index = index second_fit.run() unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) #print unity-1.0 else: second_fit.stiffener_index = opt_index for i in range(0,second_fit.number_of_sections): if second_fit.VAL[i] >1. or second_fit.VAG[i]>1. or second_fit.VEL[i]>1. or second_fit.VEG[i]>1.: second_fit.number_of_rings[i] += 1 second_fit.run() unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) #print second_fit.number_of_rings print '--------------example_218WD_10MW------------------' print "Elapsed time: ", time.time()-tt, " seconds" sys_print(second_fit)
def example_130WD_3MW(): example = optimizationSpar() example.water_depth = 130. example.load_condition = 'N' example.significant_wave_height = 10.660 example.significant_wave_period = 13.210 example.keel_cg_mooring = 51. example.keel_cg_operating_system = 20.312 example.reference_wind_speed = 11. example.reference_height = 75. example.alpha = 0.110 example.material_density = 7850. example.E = 200.e9 example.nu = 0.3 example.yield_stress = 345000000. example.rotor_mass = 125000. example.tower_mass = 83705. example.free_board = 13. example.draft = 64. example.fixed_ballast_mass = 1244227.77 example.hull_mass = 890985.086 example.permanent_ballast_mass = 838450.256 example.variable_ballast_mass = 418535.462 example.number_of_sections = 4 example.outer_diameter = [5., 6., 6., 9.] example.length = [6., 12., 15., 44.] example.end_elevation = [7., -5., -20., -64.] example.start_elevation = [13., 7., -5., -20.] example.bulk_head = ['N', 'T', 'N', 'B'] #example.system_acceleration=1.2931 example.run() yna = convert_units(example.spar.neutral_axis ,'m','inch') filteredStiffeners = filtered_stiffeners_table() for i in range (0,len(filteredStiffeners)-1): stiffener_bef = filteredStiffeners[i] stiffener_aft = filteredStiffeners[i+1] if yna > stiffener_bef[6] and yna<stiffener_aft[6]: opt_index = i+1 second_fit = Spar() second_fit.wall_thickness = example.spar.wall_thickness second_fit.number_of_rings = example.spar.number_of_rings second_fit.stiffener_index = opt_index second_fit.initial_pass = False second_fit.water_depth = example.water_depth second_fit.load_condition = example.load_condition second_fit.significant_wave_height = example.significant_wave_height second_fit.significant_wave_period = example.significant_wave_period second_fit.keel_cg_mooring = example.keel_cg_mooring second_fit.keel_cg_operating_system = example.keel_cg_operating_system second_fit.reference_wind_speed = example.reference_wind_speed second_fit.reference_height = example.reference_height second_fit.alpha = example.alpha second_fit.material_density = example.material_density second_fit.E = example.E second_fit.nu =example.nu second_fit.yield_stress = example.yield_stress second_fit.rotor_mass = example.rotor_mass second_fit.tower_mass = example.tower_mass second_fit.free_board = example.free_board second_fit.draft = example.draft second_fit.fixed_ballast_mass = example.fixed_ballast_mass second_fit.hull_mass = example.hull_mass second_fit.permanent_ballast_mass = example.permanent_ballast_mass second_fit.variable_ballast_mass = example.variable_ballast_mass second_fit.number_of_sections = example.number_of_sections second_fit.outer_diameter = example.outer_diameter second_fit.length = example.length second_fit.end_elevation = example.end_elevation second_fit.start_elevation = example.start_elevation second_fit.bulk_head = example.bulk_head second_fit.system_acceleration=example.system_acceleration second_fit.run() index = opt_index unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) while ((unity-1.0) > 1e-7): if index <124: index += 1 second_fit.stiffener_index = index second_fit.run() unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) else: second_fit.stiffener_index = opt_index for i in range(0,second_fit.number_of_sections): if second_fit.VAL[i] >1. or second_fit.VAG[i]>1. or second_fit.VEL[i]>1. or second_fit.VEG[i]>1.: second_fit.number_of_rings[i] += 1 second_fit.run() unity = max(max(second_fit.VAL),max(second_fit.VAG),max(second_fit.VEL),max(second_fit.VEG)) print '--------------example_130WD_3MW------------------' print "Elapsed time: ", time.time()-tt, " seconds" sys_print(second_fit)