Skip to content
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
458 changes: 458 additions & 0 deletions wisdem/drivetrainse/converter.py

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion wisdem/drivetrainse/drivetrain.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from wisdem.drivetrainse.hub import Hub_System
from wisdem.drivetrainse.gearbox import Gearbox
from wisdem.drivetrainse.generator import Generator

from wisdem.drivetrainse.converter import Converter

class DriveMaterials(om.ExplicitComponent):
"""
Expand Down Expand Up @@ -238,6 +238,9 @@ def setup(self):
# Dynamics
self.add_subsystem("dyn", dc.DriveDynamics(), promotes=["*"])

# Converter costs and efficiency
self.add_subsystem("converter", Converter(), promotes=["machine_rating"])

# Output-to-input connections
self.connect("bedplate_rho", ["pitch_system.rho", "spinner.metal_rho"])
self.connect("bedplate_Xy", ["pitch_system.Xy", "spinner.Xy"])
Expand Down
1 change: 1 addition & 0 deletions wisdem/glue_code/glue_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -832,6 +832,7 @@ def setup(self):
self.connect("drivese.total_bedplate_mass", "tcc.bedplate_mass")
self.connect("drivese.yaw_mass", "tcc.yaw_mass")
self.connect("drivese.converter_mass", "tcc.converter_mass")
self.connect("drivese.converter.Cost_B2B", "tcc.converter_cost_external")
self.connect("drivese.transformer_mass", "tcc.transformer_mass")
self.connect("drivese.hvac_mass", "tcc.hvac_mass")
self.connect("drivese.cover_mass", "tcc.cover_mass")
Expand Down
7 changes: 6 additions & 1 deletion wisdem/nrelcsm/nrel_csm_cost_2015.py
Original file line number Diff line number Diff line change
Expand Up @@ -596,14 +596,19 @@ class ConverterCost2015(om.ExplicitComponent):
def setup(self):
self.add_input("converter_mass", 0.0, units="kg")
self.add_input("converter_mass_cost_coeff", 18.8, units="USD/kg")
self.add_input("converter_cost_external", 0.0, units="USD")

self.add_output("converter_cost", 0.0, units="USD")

def compute(self, inputs, outputs):
converter_mass = inputs["converter_mass"]
converter_mass_cost_coeff = inputs["converter_mass_cost_coeff"]
converter_cost_external = inputs["converter_cost_external"]

outputs["converter_cost"] = converter_mass_cost_coeff * converter_mass
if converter_cost_external == 0.0:
outputs["converter_cost"] = converter_mass_cost_coeff * converter_mass
else:
outputs["converter_cost"] = converter_cost_external


# ---------------------------------------------------------------------------------
Expand Down
Loading
Loading