Executing FloatingSE by hand is sufficient to explore some simple one-off or comparison analyses between a few runs. OpenMDAO provides extensive optimization capability, which can give yield richer and more insightful analyses.
In WISDEM, via OpenMDAO, any input parameter can be designated a design variable. The design variables used in this study focused on the geometric specification of the floating substructure and mooring subsystem. Slightly different design variables and bounds were used for spar, semisubmersible, and TLP optimizations. The complete listing of the design variables for each optimization configuration is shown in tbl_designvar
. Note that the integer design variables were only used in the global optimization with the genetic algorithm, not the local search with the simplex algorithm.
Variable Name Units Type Bounds Main col section height main_section_height
Float array (ns) 0.1–50 Main col outer diameter main_outer_diameter
Float array (ns + 1) 2.1–40 Main col wall thickness main_wall_thickness
Float array (ns + 1) 0.001–0.5 Main col freeboard main_freeboard
Float scalar 0–50 Main col stiffener web height main_stiffener_web_height
Float array (ns) 0.01–1 Main col stiffener web thickness main_stiffener_web_thickness
Float array (ns) 0.001–0.5 Main col stiffener flange width main_stiffener_flange_width
Float array (ns) 0.01–5 Main col stiffener flange thickness main_stiffener_flange_thickness
Float array (ns) 0.001–0.5 Main col stiffener spacing main_stiffener_spacing
Float array (ns) 0.1–100 Main col permanent ballast height main_permanent_ballast_height
Float scalar 0.1–50 Main col buoyancy tank diameter main_buoyancy_tank_diameter
Float scalar 0–50 Main col buoyancy tank height main_buoyancy_tank_height
Float scalar 0–20 Main col buoyancy tank location (fraction) main_buoyancy_tank_location
Float scalar 0–1 Number of offset cols number_of_offset_columns
Integer scalar 3-5 Offset col section height offset_section_height
Float array (ns) 0.1–50 Offset col outer diameter offset_outer_diameter
Float array (ns + 1) 1.1–40 Offset col wall thickness offset_wall_thickness
Float array (ns + 1) 0.001–0.5 Offset col freeboard offset_freeboard
Float scalar 2–15 Offset col stiffener web height offset_stiffener_web_height
Float array (ns) 0.01–1 Offset col stiffener web thickness offset_stiffener_web_thickness
Float array (ns) 0.001–0.5 Offset col stiffener flange width offset_stiffener_flange_width
Float array (ns) 0.01–5 Offset col stiffener flange thickness offset_stiffener_flange_thickness
Float array (ns) 0.001–0.5 Offset col stiffener spacing offset_stiffener_spacing
Float array (ns) 0.01–100 Offset col permanent ballast height offset_permanent_ballast_height
Float scalar 0.1–50 Offset col buoyancy tank diameter offset_buoyancy_tank_diameter
Float scalar 0–50 Offset col buoyancy tank height offset_buoyancy_tank_height
Float scalar 0–20 Offset col buoyancy tank location (fraction) main_buoyancy_tank_location
Float scalar 0–1 Radius to offset col radius_to_offset_column
Float scalar 5–100 Pontoon outer diameter pontoon_outer_diameter
Float scalar 0.1–10 Pontoon wall thickness pontoon_wall_thickness
Float scalar 0.01–1 Lower main-offset pontoons lower_attachment_pontoons_int
Integer scalar 0–1 Upper main-offset pontoons upper_attachment_pontoons_int
Integer scalar 0–1 Cross main-offset pontoons cross_attachment_pontoons_int
Integer scalar 0–1 Lower offset ring pontoons lower_ring_pontoons_int
Integer scalar 0–1 Upper offset ring pontoons upper_ring_pontoons_int
Integer scalar 0–1 Outer V-pontoons outer_cross_pontoons_int
Integer scalar 0–1 Main col pontoon attach lower (fraction) main_pontoon_attach_lower
Float scalar 0–0.5 Main col pontoon attach upper (fraction) main_pontoon_attach_upper
Float scalar 0.5–1 Fairlead (fraction) fairlead_location
Float scalar 0–1 Fairlead offset from col fairlead_offset_from_shell
Float scalar 5–30 Fairlead pontoon diameter fairlead_support_outer_diameter
Float scalar 0.1–10 Fairlead pontoon wall thickness fairlead_support_outer_thickness
Float scalar 0.001–1 Number of mooring connections number_of_mooring_connections
Integer scalar 3–5 Mooring lines per connection mooring_lines_per_connection
Integer scalar 1–3 Mooring diameter mooring_diameter
Float scalar 0.05–2 Mooring line length mooring_line_length
Float scalar 0–3000 Anchor distance anchor_radius
Float scalar 0–5000
Due to the many design variables, permutations of settings, and applied physics, there are many constraints that must be applied for an optimization to close. The constraints capture both physical limitations, such as column buckling, but also inject industry standards, guidelines, and lessons learned from engineering experience into the optimization. As described in the Introduction, this is a critically important element in building a MDAO framework for conceptual design that yields feasible results worth interrogating further with higher-fidelity tools. The constraints used in the substructure design optimization and sensitivity studies are listed in tbl_constraints
. Where appropriate, some of the constraint values differ from one type of substructure to another. Some additional explanation is provided for a handful of constraints in the subsections below.
Lower Variable Upper Comments Tower / Main / Offset Columns Eurocode global buckling 1.0 Eurocode shell buckling 1.0 Eurocode stress limit 1.0 Manufacturability 0.5 Taper ratio limit 120.0 Weld-ability Diameter:thickness ratio limit Main / Offset Columns Draft ratio 1.0 Ratio of draft to max value API 2U general buckling- axial loads 1.0 API 2U local buckling- axial loads 1.0 API 2U general buckling- external loads 1.0 API 2U local buckling- external loads 1.0 Wave height:freeboard ratio 1.0 Maximum wave height relative to freeboard 1.0 Stiffener flange compactness 1.0 Stiffener web compactness Stiffener flange spacing ratio 1.0 Stiffener spacing relative to flange width Stiffener radius ratio 0.50 Stiffener height relative to diameter Offset Columns Semi only 0.0 Heel freeboard margin Height required to stay above waterline at max heel 0.0 Heel draft margin Draft required to stay submerged at max heel Pontoons Semi only Eurocode stress limit 1.0 Tower -0.01 Hub height error 0.01 Mooring 0.0 Axial stress limit 1.0 Line length limit 1.0 Loss of tension or catenary hang Heel moment ratio 1.0 Ratio of overturning moment to restoring moment Surge force ratio 1.0 Ratio of surge force to restoring force Geometry 1.0 Main-offset spacing Minimum spacing between main and offset columns 0.0 Nacelle transition buffer Tower diameter limit at nacelle junction -1.0 Tower transition buffer 1.0 Diameter consistency at freeboard point Stability 0.10 Metacentric height Not applied to TLPs 1.0 Wave-Eigenmode boundary (upper) Natural frequencies below wave frequency range Wave-Eigenmode boundary (lower) 1.0 Natural frequencies above wave frequency range 0.0 Water ballast height limit 1.0 0.0 Water ballast mass Neutral buoyancy
Words tbl_geomconvar
Variable Type Description max_draft
Float scalar Maximum allowable draft for the substructure
Manufacturing steel frustum shells requires rolling steel plates into shape and welding along a seam to close the section. To accommodate traditional rolling and welding practices, both the diameter taper over the course of a section and the wall thickness ratio relative to the diameter are capped. Similarly, to facilitate welding the semisubmersible pontoons to the columns, constraints regarding the radio of diameters between the two are enforced. These limits are determined by user parameters in tbl_manconvar
and constraints,
Variable Type Description min_taper_ratio
Float scalar For manufacturability of rolling steel min_diameter_thickness_ratio
Float scalar For weld-ability connection_ratio_max
Float scalar For welding pontoons to columns
The stress and buckling code compliance constraints are formulated as utilization ratios (ratio of actual to maximum values), with a safety factor, which must be less than one. The safety factor parameters are listed in tbl_safetyvar
.
Variable Type Description gamma_f
Float scalar Safety factor on gamma_b
Float scalar Safety factor on buckling gamma_m
Float scalar Safety factor on materials gamma_n
Float scalar Safety factor on consequence of failure gamma_fatigue
Float scalar Not currently used
As described above, surge and pitch stability are enforced through similar approaches. The total force and moment acting on the turbine are compared to the restoring forces and moments applied by the mooring system, buoyancy, or other sources at the maximum allowable point of displacement. These constraints are formulated as ratios with the user specifying the maximum allowable limits via the variables in tbl_moorcon
.
Variable Type Units Description max_offset
Float scalar m Max surge/sway offset operational_heel
Float scalar deg Max heel (pitching) angle in operating conditions max_survival_heel
Float scalar deg Max heel (pitching) angle in parked conditions
Different anaylses will emphasize different metrics, requiring different objective functions. Under the default assumption that the user wishes to minimize cost and adhere to stability constraints, the objective function would be total substructure cost (variable name, total_cost
) or mass (variable name, total_mass
).
Example of optimized spar.
Example of optimized semi.
Example of optimized TLP.