Dear all,

I am trying to use Wisdem to perform a simple optimization task on the tower, following the tower example, modified for a different turbine size (using a simplified preliminary scaling to a 15 MW turbine). The modeling_options and analysis_options files are reported below:

## Generic modeling options file to run standard WISDEM case

General:

verbosity: False # When set to True, the code prints to screen many infos

WISDEM:

n_dlc: 2 # Number of design load cases

RotorSE:

flag: False

DriveSE:

flag: False

TowerSE: # Options of TowerSE module

flag: True

wind: PowerWind # Wind used

gamma_f: 1.35 # Safety factor for fatigue loads

gamma_m: 1.3 # Safety factor for material properties

gamma_n: 1.0 # Safety factor for …

gamma_b: 1.1 # Safety factor for …

gamma_fatigue: 1.755 # Safety factor for fatigue loads

buckling_method: eurocode # Buckling code type [eurocode or dnvgl]

buckling_length: 30 # Buckling parameter

frame3dd:

shear: True

geom: True

tol: 1e-9

FixedBottomSE:

flag: False

BOS:

flag: False`Loading: mass: 969075.438 center_of_mass: [-4.720, 0.0, 4.275] moment_of_inertia: [1.14930678e08, 2.20354030e07, 1.87597425e07, 0.0, 5.03710467e05, 0.0] loads: - force: [4736864, 0.0, -10744406] moment: [28061815, -16106931, -2455091] velocity: 11.4 - force: [3429651, 0.0, -10630040] moment: [-11919778, -17858226, 1042845] velocity: 70.0`

general:

folder_output: outputs_15MW

fname_output: tower_output

design_variables:tower:

outer_diameter:

flag: True

# lower_bound: 3.87

# upper_bound: 9.0

lower_bound: 5.0

upper_bound: 14.0

layer_thickness:

flag: True

lower_bound: 4e-3

# upper_bound: 2e-1

upper_bound: 4e-1merit_figure: tower_cost

constraints:

tower:

height_constraint:

flag: False

lower_bound: 1.e-2

upper_bound: 1.e-2

stress:

flag: True

global_buckling:

flag: True

shell_buckling:

flag: True

d_to_t:

flag: True

lower_bound: 80.0

upper_bound: 500.0

taper:

flag: True

lower_bound: 0.2

slope:

flag: True

# thickness_slope:

# flag: True

frequency_1:

flag: True

lower_bound: 0.13

upper_bound: 0.40driver:

optimization:

flag: True # Flag to enable optimization

tol: 1.e-6 # Optimality tolerance

# max_major_iter: 10 # Maximum number of major design iterations (SNOPT)

# max_minor_iter: 100 # Maximum number of minor design iterations (SNOPT)

max_iter: 30 # Maximum number of iterations (SLSQP)

solver: SLSQP # Optimization solver. Other options are ‘SLSQP’ - ‘CONMIN’

step_size: 1.e-6 # Step size for finite differencing

form: forward # Finite differencing mode, either forward or central

design_of_experiments:

flag: False # Flag to enable design of experiments

run_parallel: False # Flag to run using parallel processing

generator: Uniform # Type of input generator. (Uniform)

num_samples: 15 # number of samples for (Uniform only)

debug_print: True

recorder:

flag: True # Flag to activate OpenMDAO recorder

file_name: log_opt.sql # Name of OpenMDAO recorder

The example assumes a set of assigned external loads on tower top.

I am able to get an optimized thickness and diameter distribution (using SLSQP driver), considering tower cost as merit figure.

The resulting thickness distribution follows a non-monotonic trend as reported below:

The tower is currently divided in only 2 section (for simplicity), I would at least find a montonic decreasing trend for the thickness. Moreover, i would like to constrait a constant thickness for each tower section, with a piecewise constant thickness for each section. Is it possible impose such type of constraint.

Furthermore, I would like to know if there is any way to account also for fatigue effects (a fatigue safety factor is defined in the modeling options, but I did not find any detailed information on the wisdem documentation).

Thanks in advance for your support.

Best regards,