Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fatigue #185

Merged
merged 11 commits into from
Aug 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions WISDEM/examples/02_reference_turbines/IEA-10-198-RWT.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,7 @@ materials:
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7
- name: steel_drive
description: Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand All @@ -701,6 +702,7 @@ materials:
S: 0
Xy: 485.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.9
- name: cast_iron
description: TODO Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/02_reference_turbines/IEA-15-240-RWT.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -796,6 +796,7 @@ materials:
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7
- name: steel_drive
description: Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand All @@ -814,6 +815,7 @@ materials:
S: 0
Xy: 485.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.9
- name: cast_iron
description: Cast iron for hub and nacelle components
Expand Down
1 change: 1 addition & 0 deletions WISDEM/examples/02_reference_turbines/IEA-3p4-130-RWT.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -655,6 +655,7 @@ materials:
Xt: 355.e+006
Xc: 355.e+006
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
control:
supervisory:
Vin: 3.0
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/02_reference_turbines/nrel5mw.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,7 @@ materials:
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7
- name: steel_drive
description: Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand All @@ -528,6 +529,7 @@ materials:
S: 0
Xy: 485.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.9
- name: cast_iron
description: TODO Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand Down
4 changes: 2 additions & 2 deletions WISDEM/examples/03_blade/BAR_USC.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -888,8 +888,8 @@ materials:
roll_mass: 181.4368
- {name: medium_density_foam, description: "Airex C70.130 PVC Foam, source 'https://www.3accorematerials.com/uploads/documents/TDS-AIREX-C70-E_1106.pdf'", orth: 0.0, rho: 130.0, E: 142500000.0, G: 54000000000.0, nu: 0.3194, Xt: 2083000.0, Xc: 1563000.0, S: 1250000.0, GIc: 303.0, GIIc: 3446.0, alp0: 53.0, component_id: 1, waste: 0.2, unit_cost: 13.0}
- {name: resin, description: epoxy, E: 1000000.0, nu: 0.3, G: 312500.0, GIc: 0.0, GIIc: 0.0, alp0: 0.0, Xt: 0.0, Xc: 0.0, S: 0.0, rho: 1150.0, alpha: 0.0, orth: 0.0, unit_cost: 3.63}
- {name: steel, description: Steel of the tower and monopile ASTM A572 Grade 50, source: "'http://www.matweb.com/search/DataSheet.aspx?MatGUID=9ced5dc901c54bd1aef19403d0385d7f'", orth: 0, rho: 7800, alpha: 0.0, E: 200000000000.0, nu: 0.3, G: 79300000000.0, GIc: 0, GIIc: 0, alp0: 0, Xt: 450000000.0, Xc: 450000000.0, S: 0, Xy: 345000000.0, m: 3, unit_cost: 0.7}
- {name: joint_insert, description: Stainless steel 440a tempered @315C, source: (http://www.matweb.com/search/datasheet_print.aspx?matguid=4f9c4c71102d4cd9b4c52622588e99a0), orth: 0.0, rho: 7800.0, alpha: 0.0, E: 210e9, nu: 0.283, G: 83.9e9, GIc: 0.0, GIIc: 0.0, alp0: 0.0, Xt: 1790e6, Xc: 1790e6, S: 0.0, Xy: 1650e6, unit_cost: 2}
- {name: steel, description: Steel of the tower and monopile ASTM A572 Grade 50, source: "'http://www.matweb.com/search/DataSheet.aspx?MatGUID=9ced5dc901c54bd1aef19403d0385d7f'", orth: 0, rho: 7800, alpha: 0.0, E: 200000000000.0, nu: 0.3, G: 79300000000.0, GIc: 0, GIIc: 0, alp0: 0, Xt: 450000000.0, Xc: 450000000.0, S: 0, Xy: 345000000.0, m: 3, A: 3.5534648443719767e10, unit_cost: 0.7}
- {name: joint_insert, description: Stainless steel 440a tempered @315C, orth: 0.0, rho: 7800.0, alpha: 0.0, E: 210e9, nu: 0.283, G: 83.9e9, GIc: 0.0, GIIc: 0.0, alp0: 0.0, Xt: 1790e6, Xc: 1790e6, S: 0.0, Xy: 1650e6, unit_cost: 2}
control:
supervisory: {Vin: 4.0, Vout: 25.0, maxTS: 85.0, rated_power: 5000000.0, minOmega: 0.0, maxOmega: 0.9927432785343746}
pitch: {PC_zeta: 1.1, PC_omega: 0.2, ps_percent: 0.8, max_pitch: 1.57, max_pitch_rate: 0.03488888888888889, min_pitch: 0.0}
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/05_tower_monopile/nrel5mw_monopile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ materials:
Xc: 2.16e+9
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10
unit_cost: 0.7

environment:
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/05_tower_monopile/nrel5mw_tower.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ materials:
Xc: 2.16e+9
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10
unit_cost: 0.7

environment:
Expand Down
13 changes: 13 additions & 0 deletions WISDEM/examples/06_drivetrain/drivetrain_direct.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Import needed libraries
import numpy as np
import openmdao.api as om

from wisdem.commonse.fileIO import save_data
from wisdem.drivetrainse.drivetrain import DrivetrainSE

Expand Down Expand Up @@ -58,6 +59,10 @@
prob.model.add_constraint("constr_bedplate_vonmises", upper=1.0)
prob.model.add_constraint("constr_mb1_defl", upper=1.0)
prob.model.add_constraint("constr_mb2_defl", upper=1.0)
prob.model.add_constraint("constr_shaft_deflection", upper=1.0)
prob.model.add_constraint("constr_shaft_angle", upper=1.0)
prob.model.add_constraint("constr_stator_deflection", upper=1.0)
prob.model.add_constraint("constr_stator_angle", upper=1.0)
prob.model.add_constraint("constr_hub_diameter", lower=0.0)
prob.model.add_constraint("constr_length", lower=0.0)
prob.model.add_constraint("constr_height", lower=0.0)
Expand Down Expand Up @@ -114,6 +119,10 @@
prob["drive_height"] = 5.614
prob["tilt"] = 6.0
prob["access_diameter"] = 2.0
prob["shaft_deflection_allowable"] = 1e-4
prob["shaft_angle_allowable"] = 1e-3
prob["stator_deflection_allowable"] = 1e-4
prob["stator_angle_allowable"] = 1e-3

myones = np.ones(2)
prob["lss_diameter"] = 3.0 * myones
Expand Down Expand Up @@ -175,6 +184,10 @@
print("constr_bedplate_vonmises:", prob["constr_bedplate_vonmises"].flatten())
print("constr_mb1_defl:", prob["constr_mb1_defl"])
print("constr_mb2_defl:", prob["constr_mb2_defl"])
print("constr_shaft_deflection:", prob["constr_shaft_deflection"])
print("constr_shaft_angle:", prob["constr_shaft_angle"])
print("constr_stator_deflection:", prob["constr_stator_deflection"])
print("constr_stator_angle:", prob["constr_stator_angle"])
print("constr_hub_diameter:", prob["constr_hub_diameter"])
print("constr_length:", prob["constr_length"])
print("constr_height:", prob["constr_height"])
Expand Down
19 changes: 16 additions & 3 deletions WISDEM/examples/06_drivetrain/drivetrain_geared.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
# Import needed libraries
import numpy as np
import openmdao.api as om

from wisdem.commonse.fileIO import save_data
from wisdem.drivetrainse.drivetrain import DrivetrainSE

opt_flag = False # True
opt_flag = True
# ---

# Set input options
Expand Down Expand Up @@ -62,6 +63,10 @@
prob.model.add_constraint("constr_bedplate_vonmises", upper=1.0)
prob.model.add_constraint("constr_mb1_defl", upper=1.0)
prob.model.add_constraint("constr_mb2_defl", upper=1.0)
prob.model.add_constraint("constr_shaft_deflection", upper=1.0)
prob.model.add_constraint("constr_shaft_angle", upper=1.0)
prob.model.add_constraint("constr_stator_deflection", upper=1.0)
prob.model.add_constraint("constr_stator_angle", upper=1.0)
prob.model.add_constraint("constr_hub_diameter", lower=0.0)
prob.model.add_constraint("constr_length", lower=0.0)
prob.model.add_constraint("constr_height", lower=0.0)
Expand Down Expand Up @@ -132,6 +137,10 @@
prob["bedplate_flange_width"] = 1.0
prob["bear1.D_shaft"] = 2.2
prob["bear2.D_shaft"] = 2.2
prob["shaft_deflection_allowable"] = 1e-4
prob["shaft_angle_allowable"] = 1e-3
prob["stator_deflection_allowable"] = 1e-4
prob["stator_angle_allowable"] = 1e-3
# ---

# Material properties
Expand Down Expand Up @@ -160,8 +169,8 @@
# ---

# Display all inputs and outputs
prob.model.list_inputs(units=True)
prob.model.list_outputs(units=True)
# prob.model.list_inputs(units=True)
# prob.model.list_outputs(units=True)

# Print out the objective, design variables and constraints
print("nacelle_mass:", prob["nacelle_mass"])
Expand All @@ -188,6 +197,10 @@
print("constr_bedplate_vonmises:", prob["constr_bedplate_vonmises"].flatten())
print("constr_mb1_defl:", prob["constr_mb1_defl"])
print("constr_mb2_defl:", prob["constr_mb2_defl"])
print("constr_shaft_deflection:", prob["constr_shaft_deflection"])
print("constr_shaft_angle:", prob["constr_shaft_angle"])
print("constr_stator_deflection:", prob["constr_stator_deflection"])
print("constr_stator_angle:", prob["constr_stator_angle"])
print("constr_hub_diameter:", prob["constr_hub_diameter"])
print("constr_length:", prob["constr_length"])
print("constr_height:", prob["constr_height"])
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/09_floating/IEA-15-240-RWT_VolturnUS-S.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1049,6 +1049,7 @@ materials:
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7
- name: steel_drive
description: Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand All @@ -1067,6 +1068,7 @@ materials:
S: 0
Xy: 485.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.9
- name: cast_iron
description: Cast iron for hub and nacelle components
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/09_floating/nrel5mw-semi_oc4.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,7 @@ materials:
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7
- name: steel_drive
description: Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand All @@ -875,6 +876,7 @@ materials:
S: 0
Xy: 485.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.9
- name: cast_iron
description: TODO Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/09_floating/nrel5mw-spar_oc3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,7 @@ materials:
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7
- name: steel_drive
description: Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand All @@ -686,6 +687,7 @@ materials:
S: 0
Xy: 485.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.9
- name: cast_iron
description: TODO Steel of the drivetrain ASTM 4140 40Cr1Mo28
Expand Down
2 changes: 2 additions & 0 deletions WISDEM/examples/17_jacket/nrel5mw_jacket.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ materials:
Xc: 2.16e+9
S: 0
Xy: 345.e+6
m: 3
A: 3.5534648443719767e10 #DOI 10.1016/j.proeng.2013.12.061 eqn 5
unit_cost: 0.7

environment:
Expand Down
2 changes: 1 addition & 1 deletion WISDEM/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
# Top-level setup
setup(
name="WISDEM",
version="3.6",
version="3.6.1",
description="Wind-Plant Integrated System Design & Engineering Model",
long_description="""WISDEM is a Python package for conducting multidisciplinary analysis and
optimization of wind turbines and plants. It is built on top of NASA's OpenMDAO library.""",
Expand Down
6 changes: 4 additions & 2 deletions WISDEM/wisdem/commonse/cylinder_member.py
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,7 @@ def setup(self):
self.add_output("outfitting_full", val=np.ones(n_full - 1))
self.add_output("nodes_r", np.zeros(n_full), units="m")
self.add_output("nodes_xyz", np.zeros((n_full, 3)), units="m")
self.add_output("z_global", np.zeros(n_full), units="m")

# self.declare_partials('*', '*', method='fd', form='central', step=1e-6)

Expand Down Expand Up @@ -542,7 +543,8 @@ def compute(self, inputs, outputs):
xyz0 = inputs["joint1"]
xyz1 = inputs["joint2"]
dxyz = xyz1 - xyz0
outputs["nodes_xyz"] = np.outer(s_full, dxyz) + xyz0[np.newaxis, :]
outputs["nodes_xyz"] = xyz = np.outer(s_full, dxyz) + xyz0[np.newaxis, :]
outputs["z_global"] = xyz[:, -1]


class ShellMassCost(om.ExplicitComponent):
Expand Down Expand Up @@ -2373,7 +2375,7 @@ def setup(self):
"rho_air",
"mu_air",
"yaw",
("z", "z_full"),
("z", "z_global"),
("d", "d_full"),
]
if hydro:
Expand Down
Loading