hydesign.nrelcsm.nrel_csm_mass_2015

Copyright (c) NREL. All rights reserved.

Classes

BladeMass

Compute blade mass of the form \(mass = k*diameter^b\).

HubMass

Compute hub mass in the form of \(mass = k*m_{blade} + b\).

PitchSystemMass

Compute pitch bearing mass in the form of \(m_{bearing} = k*m_{blade}*nblade + b1\).

SpinnerMass

Compute spinner (nose cone) mass in the form of \(mass = k*diameter + b\).

LowSpeedShaftMass

Compute low speed shaft mass in the form of \(mass = k*(m_{blade}*power)^b1 + b2\).

BearingMass

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

RotorTorque

Computed rated rpm and rotor torque from rated power, rotor diameter, max tip speed, and drivetrain efficiency.

GearboxMass

Compute gearbox mass in the form of \(mass = k*torque^b\).

BrakeMass

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

HighSpeedShaftMass

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

GeneratorMass

Compute generator mass in the form of \(mass = k*power + b\).

BedplateMass

Compute bedplate mass in the form of \(mass = diameter^b\).

YawSystemMass

Compute yaw system mass in the form of \(mass = k*diameter^b\).

HydraulicCoolingMass

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

NacelleCoverMass

Compute nacelle cover mass in the form of \(mass = k*power + b\).

PlatformsMainframeMass

Compute platforms mass in the form of \(mass = k*m_{bedplate}\) and

TransformerMass

Compute transformer mass in the form of \(mass = k*power + b\).

TowerMass

Compute tower mass in the form of \(mass = k*H_{hub}^b\).

TurbineMassAdder

Aggregates all components masses into category labels of hub system, rotor, nacelle, and tower.

nrel_csm_mass_2015

Class used to group systems together; instantiate or inherit.

nrel_csm_2015

Class used to group systems together; instantiate or inherit.

Module Contents

class hydesign.nrelcsm.nrel_csm_mass_2015.BladeMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute blade mass of the form \(mass = k*diameter^b\). Value of \(k\) was updated in 2015 to be 0.5. Value of \(b\) was updated to be 2.47/2.54 for turbine class I blades with/without carbon or 2.44/2.5 for other turbine classes with/without carbon. Values of k and b can be overridden by the user with use of blade_mass_coeff (k) and/or blade_user_exp (b). To use blade_user_exp, the value of turbine_class must be less than 1.

Parameters:
  • rotor_diameter (float, [m]) – rotor diameter of the machine

  • turbine_class (float) – turbine class. Set to 1 for Class I, 2 for Class II+, or 0 for user overrides of blade_user_exp

  • blade_has_carbon (boolean) – does the blade have carbon?

  • blade_mass_coeff (float) – k in the blade mass equation: k*(rotor_diameter/2)^b

  • blade_user_exp (float) – optional user-entered exp for the blade mass equation

Returns:

blade_mass – component mass

Return type:

float, [kg]

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_mass_2015.HubMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute hub mass in the form of \(mass = k*m_{blade} + b\). Value of \(k\) was updated in 2015 to be 2.3. Value of \(b\) was updated in 2015 to be 1320.

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

  • hub_mass_coeff (float) – k inthe hub mass equation: k*blade_mass + b

  • hub_mass_intercept (float) – b in the hub mass equation: k*blade_mass + b

Returns:

hub_mass – component mass

Return type:

float, [kg]

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_mass_2015.PitchSystemMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute pitch bearing mass in the form of \(m_{bearing} = k*m_{blade}*nblade + b1\). Then compute pitch system mass, with bearing housing in the form of \(mass = (1+h)*m_{bearing} + b2\). The values of the constants were NOT updated in 2015 and are the same as the original CSM. Value of \(k\) is 0.1295. Value of \(h\) is 0.328. Value of \(b1\) is 491.31. Value of \(b2\) is 555.0.

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

  • blade_number (float) – number of rotor blades

  • pitch_bearing_mass_coeff (float) – k in the pitch bearing mass equation: k*blade_mass*blade_number + b

  • pitch_bearing_mass_intercept (float) – b in the pitch bearing mass equation: k*blade_mass*blade_number + b

  • bearing_housing_fraction (float) – bearing housing fraction

  • mass_sys_offset (float) – mass system offset

Returns:

pitch_system_mass – component mass

Return type:

float, [kg]

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_mass_2015.SpinnerMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute spinner (nose cone) mass in the form of \(mass = k*diameter + b\). Value of \(k\) was updated in 2015 to be 15.5. Value of \(b\) was updated in 2015 to be -980.

Parameters:
  • rotor_diameter (float, [m]) – rotor diameter of the machine

  • spinner_mass_coeff (float) – k inthe spinner mass equation: k*rotor_diameter + b

  • spinner_mass_intercept (float) – b in the spinner mass equation: k*rotor_diameter + b

Returns:

spinner_mass – component mass

Return type:

float, [kg]

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_mass_2015.LowSpeedShaftMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute low speed shaft mass in the form of \(mass = k*(m_{blade}*power)^b1 + b2\). Value of \(k\) was updated in 2015 to be 13. Value of \(b1\) was updated in 2015 to be 0.65. Value of \(b2\) was updated in 2015 to be 775.

Parameters:
  • blade_mass (float, [kg]) – mass for a single wind turbine blade

  • machine_rating (float, [kW]) – machine rating

  • lss_mass_coeff (float) – k inthe lss mass equation: k*(blade_mass*rated_power)^b1 + b2

  • lss_mass_exp (float) – b1 in the lss mass equation: k*(blade_mass*rated_power)^b1 + b2

  • lss_mass_intercept (float) – b2 in the lss mass equation: k*(blade_mass*rated_power)^b1 + b2

Returns:

lss_mass – component mass

Return type:

float, [kg]

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_mass_2015.BearingMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute main bearing mass (single bearing) in the form of \(mass = k*diameter^b\). Value of \(k\) was updated in 2015 to be 1e-4. Value of \(b\) was updated in 2015 to be 3.5.

Parameters:
  • rotor_diameter (float, [m]) – rotor diameter of the machine

  • bearing_mass_coeff (float) – k inthe bearing mass equation: k*rotor_diameter^b

  • bearing_mass_exp (float) – exp in the bearing mass equation: k*rotor_diameter^b

Returns:

main_bearing_mass – component mass

Return type:

float, [kg]

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_mass_2015.RotorTorque(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Computed rated rpm and rotor torque from rated power, rotor diameter, max tip speed, and drivetrain efficiency. Rotor torque will be used to size other drivetrain components, such as the generator.

Parameters:
  • rotor_diameter (float, [m]) – rotor diameter of the machine

  • machine_rating (float, [kW]) – machine rating

  • max_tip_speed (float, [m/s]) – Maximum allowable blade tip speed

  • max_efficiency (float) – Maximum possible drivetrain efficiency

Returns:

  • rated_rpm (float, [rpm]) – rpm of rotor at rated power

  • rotor_torque (float, [N*m]) – torque from rotor at rated power

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_mass_2015.GearboxMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute gearbox mass in the form of \(mass = k*torque^b\). Value of \(k\) was updated in 2015 to be 113. Value of \(b\) was updated in 2015 to be 0.71.

Parameters:
  • rotor_torque (float, [N*m]) – torque from rotor at rated power

  • gearbox_mass_coeff (float) – k inthe gearbox mass equation: k*rotor_torque^b

  • gearbox_mass_exp (float) – exp in the gearbox mass equation: k*rotor_torque^b

Returns:

gearbox_mass – component mass

Return type:

float, [kg]

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_mass_2015.BrakeMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute brake mass in the form of \(mass = k*torque\). Value of \(k\) was updated in 2020 to be 0.00122.

Parameters:
  • rotor_torque (float, [N*m]) – rotor torque at rated power

  • brake_mass_coeff (float) – Mass scaling coefficient

Returns:

brake_mass – overall component mass

Return type:

float, [kg]

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_mass_2015.HighSpeedShaftMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute high speed shaft mass in the form of \(mass = k*power\). Value of \(k\) was updated in 2015 to be 0.19894.

Parameters:
  • machine_rating (float, [kW]) – machine rating

  • hss_mass_coeff (float) – NREL CSM hss equation; removing intercept since it is negligible

Returns:

hss_mass – component mass

Return type:

float, [kg]

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_mass_2015.GeneratorMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute generator mass in the form of \(mass = k*power + b\). Value of \(k\) was updated in 2015 to be 2300. Value of \(b\) was updated in 2015 to be 3400.

Parameters:
  • machine_rating (float, [kW]) – machine rating

  • generator_mass_coeff (float) – k inthe generator mass equation: k*rated_power + b

  • generator_mass_intercept (float) – b in the generator mass equation: k*rated_power + b

Returns:

generator_mass – component mass

Return type:

float, [kg]

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_mass_2015.BedplateMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute bedplate mass in the form of \(mass = diameter^b\). Value of \(b\) was updated in 2015 to be 2.2.

Parameters:
  • rotor_diameter (float, [m]) – rotor diameter of the machine

  • bedplate_mass_exp (float) – exp in the bedplate mass equation: rotor_diameter^b

Returns:

bedplate_mass – component mass

Return type:

float, [kg]

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_mass_2015.YawSystemMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute yaw system mass in the form of \(mass = k*diameter^b\). The values of the constants were NOT updated in 2015 and are the same as the original CSM. Value of \(k\) is 9e-4. Value of \(b\) is 3.314.

Parameters:
  • rotor_diameter (float, [m]) – rotor diameter of the machine

  • yaw_mass_coeff (float) – k inthe yaw mass equation: k*rotor_diameter^b

  • yaw_mass_exp (float) – exp in the yaw mass equation: k*rotor_diameter^b

Returns:

yaw_mass – component mass

Return type:

float, [kg]

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_mass_2015.HydraulicCoolingMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute hydraulic cooling mass in the form of \(mass = k*power\). The values of the constants were NOT updated in 2015 and are the same as the original CSM. Value of \(k\) is 0.08.

Parameters:
  • machine_rating (float, [kW]) – machine rating

  • hvac_mass_coeff (float) – hvac linear coeff

Returns:

hvac_mass – component mass

Return type:

float, [kg]

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_mass_2015.NacelleCoverMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute nacelle cover mass in the form of \(mass = k*power + b\). The values of the constants were NOT updated in 2015 and are the same as the original CSM. Value of \(k\) is 1.2817. Value of \(b\) is 428.19.

Parameters:
  • machine_rating (float, [kW]) – machine rating

  • cover_mass_coeff (float) – k inthe spinner mass equation: k*rotor_diameter + b

  • cover_mass_intercept (float) – b in the spinner mass equation: k*rotor_diameter + b

Returns:

cover_mass – component mass

Return type:

float, [kg]

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_mass_2015.PlatformsMainframeMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute platforms mass in the form of \(mass = k*m_{bedplate}\) and crane mass as 3000kg, if flagged by the user. The values of the constants were NOT updated in 2015 and are the same as the original CSM. Value of \(k\) is 0.125.

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

  • platforms_mass_coeff (float) – nacelle platforms mass coeff as a function of bedplate mass [kg/kg]

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

  • crane_weight (float, [kg]) – weight of onboard crane

Returns:

platforms_mass – component mass

Return type:

float, [kg]

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_mass_2015.TransformerMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute transformer mass in the form of \(mass = k*power + b\). Value of \(k\) was updated in 2015 to be 1915. Value of \(b\) was updated in 2015 to be 1910.

Parameters:
  • machine_rating (float, [kW]) – machine rating

  • transformer_mass_coeff (float) – k inthe transformer mass equation: k*rated_power + b

  • transformer_mass_intercept (float) – b in the transformer mass equation: k*rated_power + b

Returns:

transformer_mass – component mass

Return type:

float, [kg]

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_mass_2015.TowerMass(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Compute tower mass in the form of \(mass = k*H_{hub}^b\). Value of \(k\) was updated in 2015 to be 19.828. Value of \(b\) was updated in 2015 to be 2.0282.

Parameters:
  • hub_height (float, [m]) – hub height of wind turbine above ground / sea level

  • tower_mass_coeff (float) – k inthe tower mass equation: k*hub_height^b

  • tower_mass_exp (float) – b in the tower mass equation: k*hub_height^b

Returns:

tower_mass – component mass

Return type:

float, [kg]

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_mass_2015.TurbineMassAdder(**kwargs)[source]

Bases: openmdao.api.ExplicitComponent

Aggregates all components masses into category labels of hub system, rotor, nacelle, and tower.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • blade_number (float) – number of rotor blades

  • main_bearing_number (float) – number of main bearings

Returns:

  • hub_system_mass (float, [kg]) – hub system mass

  • rotor_mass (float, [kg]) – hub system mass

  • nacelle_mass (float, [kg]) – nacelle mass

  • turbine_mass (float, [kg]) – turbine mass

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_mass_2015.nrel_csm_mass_2015(**kwargs)[source]

Bases: openmdao.api.Group

Class used to group systems together; instantiate or inherit.

Parameters:

**kwargs (dict) – Dict of arguments available here and in all descendants of this Group.

_mpi_proc_allocator[source]

Object used to allocate MPI processes to subsystems.

Type:

ProcAllocator

_proc_info[source]

Information used to determine MPI process allocation to subsystems.

Type:

dict of subsys_name: (min_procs, max_procs, weight, proc_group)

_subgroups_myproc[source]

List of local subgroups, (sorted by name if Problem option allow_post_setup_reorder is True).

Type:

list

_manual_connections[source]

Dictionary of input_name: (output_name, src_indices) connections.

Type:

dict

_group_inputs[source]

Mapping of promoted names to certain metadata (src_indices, units).

Type:

dict

_static_group_inputs[source]

Group inputs added outside of setup/configure.

Type:

dict

_pre_config_group_inputs[source]

Group inputs added inside of setup but before configure.

Type:

dict

_static_manual_connections[source]

Dictionary that stores all explicit connections added outside of setup.

Type:

dict

_conn_abs_in2out[source]

Dictionary containing all explicit & implicit continuous var connections owned by this system only. The data is the same across all processors.

Type:

{‘abs_in’: ‘abs_out’}

_conn_discrete_in2out[source]

Dictionary containing all explicit & implicit discrete var connections owned by this system only. The data is the same across all processors.

Type:

{‘abs_in’: ‘abs_out’}

_transfers[source]

First key is mode, second is subname where mode is ‘fwd’ or ‘rev’ and subname is the subsystem name or subname can be None for the full, simultaneous transfer.

Type:

dict of dict of Transfers

_discrete_transfers[source]

Key is system pathname or None for the full, simultaneous transfer.

Type:

dict of discrete transfer metadata

_setup_procs_finished[source]

Flag to check if setup_procs is complete

Type:

bool

_contains_parallel_group[source]

If True, this Group contains a ParallelGroup. Only used to determine if a parallel group or distributed component is below a DirectSolver so that we can raise an exception.

Type:

bool

_order_set[source]

Flag to check if set_order has been called.

Type:

bool

_auto_ivc_warnings

List of Auto IVC warnings to be raised later.

Type:

list

_shapes_graph[source]

Dynamic shape dependency graph, or None.

Type:

nx.Graph

_pre_components[source]

Set of pathnames of components that are executed prior to the optimization loop. Empty unless the ‘group_by_pre_opt_post’ option is True in the Problem.

Type:

set of str or None

_post_components[source]

Set of pathnames of components that are executed after the optimization loop. Empty unless the ‘group_by_pre_opt_post’ option is True in the Problem.

Type:

set of str or None

_iterated_components[source]

Set of pathnames of components that are executed in the optimization loop if ‘group_by_pre_opt_post’ is True in the Problem.

Type:

set of str or ContainsAll

_fd_rev_xfer_correction_dist[source]

If this group is using finite difference to compute derivatives, this is the set of inputs that are upstream of a distributed response within this group, keyed by active response. These determine if contributions from all ranks will be added together to get the correct input values when derivatives in the larger model are being solved using reverse mode.

Type:

dict

_auto_ivc_recorders[source]

List of recorders that were added to _auto_ivc before it existed so they can be added after _auto_ivc is created.

Type:

list

_is_explicit[source]

True if neither this Group nor any of its descendants contains implicit systems or cycles.

Type:

bool or None

_ivcs[source]

Dict containing metadata for each independent variable.

Type:

dict

_bad_conn_vars[source]

Set of variables involved in invalid connections.

Type:

set

_sys_graph_cache[source]

Cache for the system graph.

Type:

dict

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

class hydesign.nrelcsm.nrel_csm_mass_2015.nrel_csm_2015(**kwargs)[source]

Bases: openmdao.api.Group

Class used to group systems together; instantiate or inherit.

Parameters:

**kwargs (dict) – Dict of arguments available here and in all descendants of this Group.

_mpi_proc_allocator[source]

Object used to allocate MPI processes to subsystems.

Type:

ProcAllocator

_proc_info[source]

Information used to determine MPI process allocation to subsystems.

Type:

dict of subsys_name: (min_procs, max_procs, weight, proc_group)

_subgroups_myproc[source]

List of local subgroups, (sorted by name if Problem option allow_post_setup_reorder is True).

Type:

list

_manual_connections[source]

Dictionary of input_name: (output_name, src_indices) connections.

Type:

dict

_group_inputs[source]

Mapping of promoted names to certain metadata (src_indices, units).

Type:

dict

_static_group_inputs[source]

Group inputs added outside of setup/configure.

Type:

dict

_pre_config_group_inputs[source]

Group inputs added inside of setup but before configure.

Type:

dict

_static_manual_connections[source]

Dictionary that stores all explicit connections added outside of setup.

Type:

dict

_conn_abs_in2out[source]

Dictionary containing all explicit & implicit continuous var connections owned by this system only. The data is the same across all processors.

Type:

{‘abs_in’: ‘abs_out’}

_conn_discrete_in2out[source]

Dictionary containing all explicit & implicit discrete var connections owned by this system only. The data is the same across all processors.

Type:

{‘abs_in’: ‘abs_out’}

_transfers[source]

First key is mode, second is subname where mode is ‘fwd’ or ‘rev’ and subname is the subsystem name or subname can be None for the full, simultaneous transfer.

Type:

dict of dict of Transfers

_discrete_transfers[source]

Key is system pathname or None for the full, simultaneous transfer.

Type:

dict of discrete transfer metadata

_setup_procs_finished[source]

Flag to check if setup_procs is complete

Type:

bool

_contains_parallel_group[source]

If True, this Group contains a ParallelGroup. Only used to determine if a parallel group or distributed component is below a DirectSolver so that we can raise an exception.

Type:

bool

_order_set[source]

Flag to check if set_order has been called.

Type:

bool

_auto_ivc_warnings

List of Auto IVC warnings to be raised later.

Type:

list

_shapes_graph[source]

Dynamic shape dependency graph, or None.

Type:

nx.Graph

_pre_components[source]

Set of pathnames of components that are executed prior to the optimization loop. Empty unless the ‘group_by_pre_opt_post’ option is True in the Problem.

Type:

set of str or None

_post_components[source]

Set of pathnames of components that are executed after the optimization loop. Empty unless the ‘group_by_pre_opt_post’ option is True in the Problem.

Type:

set of str or None

_iterated_components[source]

Set of pathnames of components that are executed in the optimization loop if ‘group_by_pre_opt_post’ is True in the Problem.

Type:

set of str or ContainsAll

_fd_rev_xfer_correction_dist[source]

If this group is using finite difference to compute derivatives, this is the set of inputs that are upstream of a distributed response within this group, keyed by active response. These determine if contributions from all ranks will be added together to get the correct input values when derivatives in the larger model are being solved using reverse mode.

Type:

dict

_auto_ivc_recorders[source]

List of recorders that were added to _auto_ivc before it existed so they can be added after _auto_ivc is created.

Type:

list

_is_explicit[source]

True if neither this Group nor any of its descendants contains implicit systems or cycles.

Type:

bool or None

_ivcs[source]

Dict containing metadata for each independent variable.

Type:

dict

_bad_conn_vars[source]

Set of variables involved in invalid connections.

Type:

set

_sys_graph_cache[source]

Cache for the system graph.

Type:

dict

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