Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)