hydesign.nrelcsm.nrel_csm_cost_2015

Copyright (c) NREL. All rights reserved.

Classes

BladeCost2015

Compute blade cost in the form of \(cost = k*mass\).

HubCost2015

Compute hub cost in the form of \(cost = k*mass\).

PitchSystemCost2015

Compute pitch system cost in the form of \(cost = k*mass\).

SpinnerCost2015

Compute spinner cost in the form of \(cost = k*mass\).

HubSystemCostAdder2015

Aggregates the hub, pitch system, and spinner costs into a single component

RotorCostAdder2015

Sum of individual component costs to get overall rotor cost.

LowSpeedShaftCost2015

Compute low speed shaft cost in the form of \(cost = k*mass\).

BearingCost2015

Compute (single) main bearing cost in the form of \(cost = k*mass\).

GearboxCost2015

Compute gearbox cost in the form of \(cost = k*mass\).

BrakeCost2020

Compute brake cost in the form of \(cost = k*mass\).

HighSpeedShaftCost2015

Compute high speed shaft cost in the form of \(cost = k*mass\).

GeneratorCost2015

Compute generator cost in the form of \(cost = k*mass\).

BedplateCost2015

Compute bedplate cost in the form of \(cost = k*mass\).

YawSystemCost2015

Compute yaw system cost in the form of \(cost = k*mass\).

ConverterCost2015

Compute converter cost in the form of \(cost = k*mass\).

HydraulicCoolingCost2015

Compute hydraulic cooling cost in the form of \(cost = k*mass\).

NacelleCoverCost2015

Compute nacelle cover cost in the form of \(cost = k*mass\).

ElecConnecCost2015

Compute electrical connection cost in the form of \(cost = k*mass\).

ControlsCost2015

Compute controls cost in the form of \(cost = k*mass\).

PlatformsMainframeCost2015

Compute platforms cost in the form of \(cost = k*mass\).

TransformerCost2015

Compute transformer cost in the form of \(cost = k*mass\).

NacelleSystemCostAdder2015

Aggregates the nacelle system costs into a single component

TowerCost2015

Compute tower cost in the form of \(cost = k*mass\).

TowerCostAdder2015

The tower is not aggregated with any other component, but for consistency

TurbineCostAdder2015

Aggregates the turbine system costs into a single value with allowances for

Outputs2Screen

Print cost outputs to the terminal

Turbine_CostsSE_2015

Print cost outputs to the terminal

Module Contents

class hydesign.nrelcsm.nrel_csm_cost_2015.BladeCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute blade cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $14.6 USD/kg. Cost includes materials and manufacturing costs. Cost can be overridden with use of blade_cost_external

Parameters:
  • blade_mass (float, [kg]) – component mass

  • blade_mass_cost_coeff (float, [USD/kg]) – blade mass-cost coeff

  • blade_cost_external (float, [USD]) – Blade cost computed by RotorSE

Returns:

blade_cost – Blade cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.HubCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute hub cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $3.9 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • hub_mass (float, [kg]) – component mass

  • hub_mass_cost_coeff (float, [USD/kg]) – hub mass-cost coeff

Returns:

hub_cost – Hub cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.PitchSystemCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute pitch system cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $22.1 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • pitch_system_mass (float, [kg]) – component mass

  • pitch_system_mass_cost_coeff (float, [USD/kg]) – pitch system mass-cost coeff

Returns:

pitch_system_cost – Pitch system cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.SpinnerCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute spinner cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $11.1 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • spinner_mass (float, [kg]) – component mass

  • spinner_mass_cost_coeff (float, [USD/kg]) – spinner/nose cone mass-cost coeff

Returns:

spinner_cost – Spinner cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.HubSystemCostAdder2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Aggregates the hub, pitch system, and spinner costs into a single component that is transported to the project site and could therefore incur additional costs. Cost multipliers are of the form, \(c_{hubsys} = (1+kt_{hubsys}+kp_{hubsys}) (1+ko_{hubsys}+ka_{hubsys}) (c_{hub} + c_{pitch} + c_{spinner})\)

Where conceptually, \(kt\) is a transportation multiplier, \(kp\) is a profit multiplier, \(ko\) is an overhead cost multiplier, and \(ka\) is an assembly cost multiplier

By default, \(kt=kp=ko=ka=0\).

Parameters:
  • hub_cost (float, [USD]) – Hub component cost

  • hub_mass (float, [kg]) – Hub component mass

  • pitch_system_cost (float, [USD]) – Pitch system cost

  • pitch_system_mass (float, [kg]) – Pitch system mass

  • spinner_cost (float, [USD]) – Spinner component cost

  • spinner_mass (float, [kg]) – Spinner component mass

  • hub_assemblyCostMultiplier (float) – Rotor assembly cost multiplier

  • hub_overheadCostMultiplier (float) – Rotor overhead cost multiplier

  • hub_profitMultiplier (float) – Rotor profit multiplier

  • hub_transportMultiplier (float) – Rotor transport multiplier

Returns:

  • hub_system_mass_tcc (float, [kg]) – Mass of the hub system, including hub, spinner, and pitch system for the blades

  • hub_system_cost (float, [USD]) – Overall wind sub-assembly capial costs including transportation costs

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.RotorCostAdder2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Sum of individual component costs to get overall rotor cost. No additional transport and assembly multipliers are included because it is assumed that each component is transported separately.

Parameters:
  • blade_cost (float, [USD]) – Individual blade cost

  • blade_mass (float, [kg]) – Individual blade mass

  • hub_system_cost (float, [USD]) – Cost for hub system

  • hub_system_mass_tcc (float, [kg]) – Mass for hub system

  • blade_number (int) – Number of rotor blades

Returns:

  • rotor_cost (float, [USD]) – Rotor cost

  • rotor_mass_tcc (float, [kg]) – Rotor mass, including blades, pitch system, hub, and spinner

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs, discrete_inputs, discrete_outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.LowSpeedShaftCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute low speed shaft cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $11.9 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • lss_mass (float, [kg]) – component mass

  • lss_mass_cost_coeff (float, [USD/kg]) – low speed shaft mass-cost coeff

Returns:

lss_cost – Low speed shaft cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.BearingCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute (single) main bearing cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $4.5 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • main_bearing_mass (float, [kg]) – component mass

  • bearing_mass_cost_coeff (float, [USD/kg]) – main bearing mass-cost coeff

Returns:

main_bearing_cost – Main bearing cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.GearboxCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute gearbox cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $12.9 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • gearbox_mass (float, [kg]) – component mass

  • gearbox_mass_cost_coeff (float, [USD/kg]) – gearbox mass-cost coeff

Returns:

gearbox_cost – Gearbox cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.BrakeCost2020(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute brake cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2020 to be $3.6254 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • brake_mass (float, [kg]) – component mass

  • brake_mass_cost_coeff (float, [USD/kg]) – brake mass-cost coeff

Returns:

brake_cost – Brake cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.HighSpeedShaftCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute high speed shaft cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $6.8 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • hss_mass (float, [kg]) – component mass

  • hss_mass_cost_coeff (float, [USD/kg]) – high speed shaft mass-cost coeff

Returns:

hss_cost – High speed shaft cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.GeneratorCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute generator cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $12.4 USD/kg. Cost includes materials and manufacturing costs. Cost can be overridden with use of generator_cost_external

Parameters:
  • generator_mass (float, [kg]) – component mass

  • generator_mass_cost_coeff (float, [USD/kg]) – generator mass cost coeff

  • generator_cost_external (float, [USD]) – Generator cost computed by GeneratorSE

Returns:

generator_cost – Generator cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.BedplateCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute bedplate cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $2.9 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • bedplate_mass (float, [kg]) – component mass

  • bedplate_mass_cost_coeff (float, [USD/kg]) – bedplate mass-cost coeff

Returns:

bedplate_cost – Bedplate cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.YawSystemCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute yaw system cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $8.3 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • yaw_mass (float, [kg]) – component mass

  • yaw_mass_cost_coeff (float, [USD/kg]) – yaw system mass cost coeff

Returns:

yaw_system_cost – Yaw system cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.ConverterCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute converter cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $18.8 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • converter_mass (float, [kg]) – component mass

  • converter_mass_cost_coeff (float, [USD/kg]) – variable speed electronics mass cost coeff

Returns:

converter_cost – Converter cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.HydraulicCoolingCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute hydraulic cooling cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $124.0 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • hvac_mass (float, [kg]) – component mass

  • hvac_mass_cost_coeff (float, [USD/kg]) – hydraulic and cooling system mass cost coeff

Returns:

hvac_cost – HVAC cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.NacelleCoverCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute nacelle cover cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $5.7 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • cover_mass (float, [kg]) – component mass

  • cover_mass_cost_coeff (float, [USD/kg]) – nacelle cover mass cost coeff

Returns:

cover_cost – Cover cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.ElecConnecCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute electrical connection cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $41.85 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • machine_rating (float) – machine rating

  • elec_connec_machine_rating_cost_coeff (float, [USD/kg]) – electrical connections cost coefficient per kW

Returns:

elec_cost – Electrical connection costs

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.ControlsCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute controls cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $21.15 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • machine_rating (float) – machine rating

  • controls_machine_rating_cost_coeff (float, [USD/kg]) – controls cost coefficient per kW

Returns:

controls_cost – Controls cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.PlatformsMainframeCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute platforms cost in the form of \(cost = k*mass\). Value of \(k\) was NOT updated in 2015 and remains the same as original CSM, $17.1 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • platforms_mass (float, [kg]) – component mass

  • platforms_mass_cost_coeff (float, [USD/kg]) – nacelle platforms mass cost coeff

  • crane (boolean) – flag for presence of onboard crane

  • crane_cost (float, [USD]) – crane cost if present

Returns:

platforms_cost – Platforms cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs, discrete_inputs, discrete_outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.TransformerCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute transformer cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $18.8 USD/kg. Cost includes materials and manufacturing costs.

Parameters:
  • transformer_mass (float, [kg]) – component mass

  • transformer_mass_cost_coeff (float, [USD/kg]) – transformer mass cost coeff

Returns:

transformer_cost – Transformer cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.NacelleSystemCostAdder2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Aggregates the nacelle system costs into a single component that is transported to the project site and could therefore incur additional costs. Cost multipliers are of the form, \(c_{nacellesys} = (1+kt_{nacelle}+kp_{nacelle}) (1+ko_{nacelle}+ka_{nacelle}) c_{nacelle}\)

Where conceptually, \(kt\) is a transportation multiplier, \(kp\) is a profit multiplier, \(ko\) is an overhead cost multiplier, and \(ka\) is an assembly cost multiplier

By default, \(kt=kp=ko=ka=0\).

Parameters:
  • lss_cost (float, [USD]) – Component cost

  • lss_mass (float, [kg]) – Component mass

  • main_bearing_cost (float, [USD]) – Component cost

  • main_bearing_mass (float, [kg]) – Component mass

  • gearbox_cost (float, [USD]) – Component cost

  • gearbox_mass (float, [kg]) – Component mass

  • brake_cost (float, [USD]) – Component cost

  • brake_mass (float, [kg]) – Component mass

  • hss_cost (float, [USD]) – Component cost

  • hss_mass (float, [kg]) – Component mass

  • generator_cost (float, [USD]) – Component cost

  • generator_mass (float, [kg]) – Component mass

  • bedplate_cost (float, [USD]) – Component cost

  • bedplate_mass (float, [kg]) – Component mass

  • yaw_system_cost (float, [USD]) – Component cost

  • yaw_mass (float, [kg]) – Component mass

  • converter_cost (float, [USD]) – Component cost

  • converter_mass (float, [kg]) – Component mass

  • hvac_cost (float, [USD]) – Component cost

  • hvac_mass (float, [kg]) – Component mass

  • cover_cost (float, [USD]) – Component cost

  • cover_mass (float, [kg]) – Component mass

  • elec_cost (float, [USD]) – Component cost

  • controls_cost (float, [USD]) – Component cost

  • platforms_mass (float, [kg]) – Component cost

  • platforms_cost (float, [USD]) – Component cost

  • transformer_cost (float, [USD]) – Component cost

  • transformer_mass (float, [kg]) – Component mass

  • main_bearing_number (int) – number of bearings

  • nacelle_assemblyCostMultiplier (float) – nacelle assembly cost multiplier

  • nacelle_overheadCostMultiplier (float) – nacelle overhead cost multiplier

  • nacelle_profitMultiplier (float) – nacelle profit multiplier

  • nacelle_transportMultiplier (float) – nacelle transport multiplier

Returns:

  • nacelle_cost (float, [USD]) – component cost

  • nacelle_mass_tcc (float) – Nacelle mass, with all nacelle components, without the rotor

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs, discrete_inputs, discrete_outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.TowerCost2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute tower cost in the form of \(cost = k*mass\). Value of \(k\) was updated in 2015 to be $2.9 USD/kg. Cost includes materials and manufacturing costs. Cost can be overridden with use of tower_cost_external

Parameters:
  • tower_mass (float, [kg]) – tower mass

  • tower_mass_cost_coeff (float, [USD/kg]) – tower mass-cost coeff

  • tower_cost_external (float) – Tower cost computed by TowerSE

Returns:

tower_parts_cost – Tower parts cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.TowerCostAdder2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

The tower is not aggregated with any other component, but for consistency there are allowances for additional costs incurred from transportation and assembly complexity, \(c_{towersys} = (1+kt_{tower}+kp_{tower}) (1+ko_{tower}+ka_{tower}) c_{tower}\)

Where conceptually, \(kt\) is a transportation multiplier, \(kp\) is a profit multiplier, \(ko\) is an overhead cost multiplier, and \(ka\) is an assembly cost multiplier

By default, \(kt=kp=ko=ka=0\).

Parameters:
  • tower_parts_cost (float, [USD]) – component cost

  • tower_assemblyCostMultiplier (float) – tower assembly cost multiplier

  • tower_overheadCostMultiplier (float) – tower overhead cost multiplier

  • tower_profitMultiplier (float) – tower profit cost multiplier

  • tower_transportMultiplier (float) – tower transport cost multiplier

Returns:

tower_cost – tower cost

Return type:

float, [USD]

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.TurbineCostAdder2015(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Aggregates the turbine system costs into a single value with allowances for additional costs incurred from transportation and assembly complexity. Costs are reported per kW. Cost multipliers are of the form, \(c_{turbine} = (1+kt_{turbine}+kp_{turbine}) (1+ko_{turbine}+ka_{turbine}) (c_{rotor} + c_{nacelle} + c_{tower})\)

Where conceptually, \(kt\) is a transportation multiplier, \(kp\) is a profit multiplier, \(ko\) is an overhead cost multiplier, and \(ka\) is an assembly cost multiplier

By default, \(kt=kp=ko=ka=0\).

Parameters:
  • rotor_cost (float, [USD]) – Rotor cost

  • rotor_mass_tcc (float) – Rotor mass

  • nacelle_cost (float, [USD]) – Nacelle cost

  • nacelle_mass_tcc (float) – Nacelle mass

  • tower_cost (float, [USD]) – Tower cost

  • tower_mass (float, [kg]) – Tower mass

  • machine_rating (float) – Machine rating

  • turbine_assemblyCostMultiplier (float) – Turbine multiplier for assembly cost in manufacturing

  • turbine_overheadCostMultiplier (float) – Turbine multiplier for overhead

  • turbine_profitMultiplier (float) – Turbine multiplier for profit markup

  • turbine_transportMultiplier (float) – Turbine multiplier for transport costs

Returns:

  • turbine_mass_tcc (float) – Turbine total mass, without foundation

  • turbine_cost (float, [USD]) – Overall wind turbine capital costs including transportation costs

  • turbine_cost_kW (float) – Overall wind turbine capial costs including transportation costs

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.Outputs2Screen(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Print cost outputs to the terminal

Parameters:
  • blade_cost (float, [USD]) – blade cost

  • blade_mass (float, [kg]) – Blade mass

  • hub_cost (float, [USD]) – hub cost

  • hub_mass (float, [kg]) – Hub mass

  • pitch_system_cost (float, [USD]) – pitch_system cost

  • pitch_system_mass (float, [kg]) – Pitch system mass

  • spinner_cost (float, [USD]) – spinner cost

  • spinner_mass (float, [kg]) – Spinner mass

  • lss_cost (float, [USD]) – lss cost

  • lss_mass (float, [kg]) – LSS mass

  • main_bearing_cost (float, [USD]) – main_bearing cost

  • main_bearing_mass (float, [kg]) – Main bearing mass

  • gearbox_cost (float, [USD]) – gearbox cost

  • gearbox_mass (float, [kg]) – LSS mass

  • hss_cost (float, [USD]) – hss cost

  • hss_mass (float, [kg]) – HSS mass

  • brake_cost (float, [USD]) – brake cost

  • brake_mass (float, [kg]) – brake mass

  • generator_cost (float, [USD]) – generator cost

  • generator_mass (float, [kg]) – Generator mass

  • bedplate_cost (float, [USD]) – bedplate cost

  • bedplate_mass (float, [kg]) – Bedplate mass

  • yaw_system_cost (float, [USD]) – yaw_system cost

  • yaw_mass (float, [kg]) – Yaw system mass

  • hvac_cost (float, [USD]) – hvac cost

  • hvac_mass (float, [kg]) – HVAC mass

  • cover_cost (float, [USD]) – cover cost

  • cover_mass (float, [kg]) – Cover mass

  • elec_cost (float, [USD]) – elec cost

  • controls_cost (float, [USD]) – controls cost

  • platforms_cost (float, [USD]) – platforms cost

  • transformer_cost (float, [USD]) – transformer cost

  • transformer_mass (float, [kg]) – Transformer mass

  • converter_cost (float, [USD]) – converter cost

  • converter_mass (float, [kg]) – Converter mass

  • rotor_cost (float, [USD]) – rotor cost

  • rotor_mass_tcc (float) – Rotor mass

  • nacelle_cost (float, [USD]) – nacelle cost

  • nacelle_mass_tcc (float) – Nacelle mass

  • tower_cost (float, [USD]) – tower cost

  • tower_mass (float, [kg]) – Tower mass

  • turbine_cost (float, [USD]) – Overall turbine costs

  • turbine_cost_kW (float) – Overall wind turbine capital costs including transportation costs per kW

  • turbine_mass_tcc (float) – Turbine mass

initialize()[source]

Perform any one-time initialization run at instantiation.

setup()[source]

Declare inputs and outputs.

Available attributes:

name pathname comm options

compute(inputs, outputs)[source]

Compute outputs given inputs. The model is assumed to be in an unscaled state.

An inherited component may choose to either override this function or to define a compute_primal function.

Parameters:
  • inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].

  • outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].

  • discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.

  • discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.

class hydesign.nrelcsm.nrel_csm_cost_2015.Turbine_CostsSE_2015(**kwargs)[source]

Bases: openmdao.api.Group

Print cost outputs to the terminal

initialize()[source]

Perform any one-time initialization run at instantiation.

setup()[source]

Build this group.

This method should be overidden by your Group’s method. The reason for using this method to add subsystem is to save memory and setup time when using your Group while running under MPI. This avoids the creation of systems that will not be used in the current process.

You may call ‘add_subsystem’ to add systems to this group. You may also issue connections, and set the linear and nonlinear solvers for this group level. You cannot safely change anything on children systems; use the ‘configure’ method instead.

Available attributes:

name pathname comm options