NLR Land-Based 2020 Model#

class csm.models.nlr2020.Land2020NLR(rated_power_kw=None, rotor_diameter=None, efficiency_max=None, num_bearings=None, num_blades=3, blade_mass=None, blade_cost=None, hub_mass=None, hub_cost=None, max_tip_speed=None, rated_rpm=None, rotor_torque=None, pitch_system_mass=None, pitch_system_cost=None, spinner_mass=None, spinner_cost=None, low_speed_shaft_mass=None, low_speed_shaft_cost=None, bearing_mass=None, bearing_cost=None, gearbox_mass=None, gearbox_cost=None, brake_mass=None, brake_cost=None, generator_mass=None, generator_cost=None, bedplate_mass=None, bedplate_cost=None, yaw_system_mass=None, yaw_system_cost=None, hydraulic_cooling_cost=None, nacelle_cover_mass=None, nacelle_cover_cost=None, crane_cost=None, platform_mainframe_mass=None, platform_mainframe_cost=None, transformer_mass=None, transformer_cost=None, controls_mass=None, controls_cost=None, electrical_connection_mass=None, electrical_connection_cost=None, converter_mass=None, converter_cost=None, tower_length=None, tower_mass=None, tower_cost=None, nacelle_mass=None, nacelle_cost=None, hub_system_mass=None, hub_system_cost=None, rotor_mass=None, rotor_cost=None, turbine_mass=None, turbine_cost=None, turbine_cost_kw=None, blade_transport_cost=None, hub_transport_cost=None, power_electronics_transport_cost=None, drivetrain_transport_cost=None, tower_section_mass_max=80000, num_tower_sections=None, tower_transport_cost=None, parts_transport_cost=None, transport_cost=None, turbine_production_cost=1000.0, tower_flange_material_cost=1000.0, tower_flange_production_cost=1000.0, turbine_class=1, blade_mass_coeff=9.2157, blade_mass_exp=1.7679, blade_mass_cost_coeff=15.9432, hub_mass_coeff=3.5793, hub_mass_intercept=-25451.58, hub_mass_cost_coeff=4.2588, pitch_blade_mass_coeff=0.1295, pitch_system_mass_coeff=1.328, pitch_blade_mass_intercept=491.31, mass_sys_offset=555.0, pitch_system_mass_cost_coeff=24.1332, spinner_mass_coeff=2.3255, spinner_mass_intercept=204.65, spinner_mass_cost_coeff=12.1212, lss_mass_coeff1=2.1906, lss_mass_coeff2=-311.15, lss_mass_intercept=13108.0, lss_mass_cost_coeff=12.9948, bearing_mass_coeff=0.0001, bearing_mass_exp=3.5, bearing_mass_cost_coeff=4.914, gearbox_torque_density=156.46, gearbox_torque_exp=0.6566, gearbox_mass_cost_coeff=14.0868, brake_mass_coeff=0.19851, brake_mass_intercept=1.893, brake_mass_cost_coeff=7.4256, generator_mass_coeff=1.754, generator_mass_intercept=3503.6, generator_mass_cost_coeff=13.5408, bedplate_mass_coeff=737.88, bedplate_mass_intercept=-68066, bedplate_mass_cost_coeff=3.1668, yaw_system_non_bearing_mass_coeff=1.6, yaw_system_mass_coeff=0.0007, yaw_system_mass_exp=3.1571, yaw_system_mass_cost_coeff=9.0636, hvac_mass_cost_coeff=135.408, hydraulic_cooling_mass=221, nacelle_cover_mass_coeff=1.2817, nacelle_cover_mass_intercept=428.19, nacelle_cover_mass_cost_coeff=6.2244, has_crane=True, platform_mainframe_mass_coeff=0.005, platform_mainframe_mass_cost_coeff=18.6732, crane_mass_cost_coeff=4.368, crane_mass=None, transformer_mass_coeff=1.915, transformer_mass_intercept=1910.0, transformer_mass_cost_coeff=20.5296, converter_mass_cost_coeff=18.8, controls_cost_coeff=23.0958, electrical_connection_cost_coeff=45.7002, tower_mass_coeff=0.152, tower_mass_intercept=-14281.0, tower_mass_cost_coeff=3.1668, transport_blade_cost_coeff=0.543, transport_blade_cost_coeff2=-7.4093, transport_blade_cost_coeff3=-2847.5, transport_blade_cost_intercept=103627, transport_hub_cost_intercept=5000, transport_power_electronics_cost_coeff=9, transport_drivetrain_cost_coeff=90000, transport_drivetrain_cost_coeff2=45000, transport_tower_cost_coeff=34083, transport_misc_parts_cost_coeff=0.025, blade_has_carbon=False, bearing_housing_fraction=0, pitch_bearing_mass_coeff=0, pitch_bearing_mass_intercept=0, lss_mass_exp=0, lss_mass_coeff=0, gearbox_torque_cost=0, hss_mass_coeff=0, hss_mass_cost_coeff=0, high_speed_shaft_mass=0, high_speed_shaft_cost=0, bedplate_mass_exp=0, hvac_mass_coeff=0, tower_mass_exp=0)#

NLR 2020 empirically-based model based on updated data and feedback since the original and 2015 models.

Unused parameters from the base model:

  • turbine_class

  • blade_has_carbon

  • bearing_housing_fraction

  • pitch_bearing_mass_coeff

  • pitch_bearing_mass_intercept

  • lss_mass_exp

  • lss_mass_coeff

  • gearbox_torque_cost

  • hss_mass_coeff

  • hss_mass_cost_coeff

  • high_speed_shaft_mass

  • high_speed_shaft_cost

  • bedplate_mass_exp

  • hvac_mass_coeff

  • tower_mass_exp

Not updated from the 2015 model:

  • pitch_system_mass_cost_coeff

Updated scaling relationships:

  • blade_mass

  • pitch_system_mass

  • low_speed_shaft_mass

  • gearbox_mass

  • gearbox_cost

  • bedplate_mass

  • hydraulic_cooling_mass

  • platform_mainframe_mass

  • platform_mainframe_cost

  • crane_mass

  • crane_cost

  • tower_mass

  • transport_cost

  • nacelle_mass

  • nacelle_cost

Parameters:
  • num_blades (int) -- Number of turbine blades

  • num_bearings (int) -- Number of main bearings.

  • rated_power_kw (float) -- Turbine rated power (\(kW\)).

  • rotor_diameter (float) -- Diameter of the swept area of the turbine blades (\(m\)).

  • efficiency_max (float) -- Maximum possible drivetrain efficiency.

  • has_crane (bool) -- In the 2020 model, a crane is assumed to exist. Defaults to True.

  • max_tip_speed (float) -- Maximum allowable blade tip speed (\(m/s\)).

  • tower_length (float) -- For onshore turbines, this is the hub height (total length above ground). For offshore turbines, this is length from transition piece to hub height (\(m\)).

  • blade_mass_coeff (float) -- \(k\) in the blade mass equation from calculate_blade_mass(). Defaults to 9.2157.

  • blade_mass_exp (float) -- \(b\) in the blade mass equation from calculate_blade_mass(). Defaults to 1.7679.

  • blade_mass_cost_coeff (float) -- Defaults to 15.9432.

  • blade_mass (float) -- Single lade mass (\(kg\)). If not provided, calculated in calculate_blade_mass().

  • blade_cost (float) -- Single blade cost (\(USD\)). If not provided, calculated in calculate_blade_cost().

  • hub_mass_coeff (float) -- Defaults to 3.5793.

  • hub_mass_intercept (float) -- Defaults to -25451.58.

  • hub_mass_cost_coeff (float) -- Defaults to 4.2588.

  • hub_mass (float) -- Hub mass (\(kg\)). See calculate_hub_mass() for more details.

  • pitch_system_mass (float) -- Pitch system mass (\(kg\)). See calculate_pitch_system_mass() for more details.

  • pitch_system_cost (float) -- Pitch system cost (\(USD\)). See calculate_pitch_system_cost() for more details.

  • spinner_mass_coeff (float) -- Defaults to 2.3255 \(kg/m\).

  • spinner_mass_intercept (float) -- Defaults to 204.65 \(kg\).

  • spinner_mass_cost_coeff (float) -- Defaults to 12.1212 \(USD/kg\).

  • spinner_mass (float) -- Spinner mass (\(kg\)). See calculate_spinner_mass() for more details.

  • spinner_cost (float) -- Spinner cost (\(USD\)). See calculate_spinner_cost() for more details.

  • lss_mass_coeff1 (float) -- Defaults to 2.1906 \(kg/m^2\).

  • lss_mass_coeff2 (float) -- Defaults to -311.15 \(kg/m\).

  • lss_mass_intercept (float) -- Defaults to 13108.0 \(kg\).

  • lss_mass_cost_coeff (float) -- Defaults to 12.9948 \(USD/kg\).

  • low_speed_shaft_mass (float) -- Low speed shaft mass (\(kg\)). See calculate_low_speed_shaft_mass() for more details.

  • low_speed_shaft_cost (float) -- Low speed shaft cost (\(USD\)). See calculate_low_speed_shaft_cost() for more details.

  • bearing_mass_coeff (float) -- Defaults to 0.0001.

  • bearing_mass_exp (float) -- Defaults to 3.5.

  • bearing_mass_cost_coeff (float) -- Defaults to 4.914 \(USD/kg\).

  • bearing_mass (float) -- Main bearing mass (\(kg\)). See calculate_bearing_mass() for more details.

  • bearing_cost (float) -- Main bearing cost (\(USD\)). See calculate_bearing_cost() for more details.

  • rated_rpm (float) -- Rated RPM of the turbine based on the max_tip_speed and rotor_diameter. See calculate_rotor_torque() for more details.

  • rotor_torque (float) -- Maximum torque produced under normal operations of the turbine (kNm). See calculate_rotor_torque() for more details.

  • gearbox_torque_density (float) -- In 2024, modern 5-7MW gearboxes are able to reach 200 Nm/kg.

  • gearbox_torque_exp (float) -- Defaults to 0.6566.

  • gearbox_torque_cost (float) -- Unused in 2020. Defaults to 0.

  • gearbox_mass_cost_coeff (float) -- Defaults to 14.0868.

  • gearbox_mass (float) -- Gearbox mass (\(kg\)). See calculate_gearbox_mass() for more details.

  • gearbox_cost (float) -- Gearbox cost (\(USD\)). See calculate_gearbox_cost() for more details.

  • brake_mass_cost_coeff (float) -- In 2020, updated to $3.6254 USD/kg. Regression based sizing derived by J.Keller under FOA 1981 support project.

  • brake_mass (float) -- Brake mass (\(kg\)). See calculate_brake_mass() for more details.

  • brake_cost (float) -- Brake cost (\(USD\)). See calculate_brake_cost() for more details.

  • generator_mass_coeff (float) -- Defaults to 1754.

  • generator_mass_intercept (float) -- Defaults to 3503.6.

  • generator_mass_cost_coeff (float) -- Defaults to 13.5408 \(USD/kg\).

  • generator_mass (float) -- Generator mass (\(kg\)). See calculate_generator_mass() for more details.

  • generator_cost (float) -- Generator cost (\(USD\)). See calculate_generator_cost() for more details.

  • bedplate_mass_exp (float) -- Unused in the 2020 model. Defaults to 0.

  • bedplate_mass_coeff (float) -- Defaults to 737.88.

  • bedplate_mass_intercept (float) -- Defaults to -68066.

  • bedplate_mass_cost_coeff (float) -- Defaults to 3.1668 \(USD/kg\).

  • bedplate_mass (float) -- Bedplate mass (\(kg\)). See calculate_bedplate_mass() for more details.

  • bedplate_cost (float) -- Bedplate cost (\(USD\)). See calculate_bedplate_cost() for more details.

  • yaw_system_non_bearing_mass_coeff (float) -- Defaults to 1.6.

  • yaw_system_mass_coeff (float) -- Defaults to 0.0007.

  • yaw_system_mass_exp (float) -- Defaults to 3.1571.

  • yaw_system_mass_cost_coeff (float) -- Defaults to 9.0636 \(USD/kg\).

  • yaw_system_mass (float) -- Yaw system mass (\(kg\)). See calculate_yaw_system_mass() for more details.

  • yaw_system_cost (float) -- Yaw system cost (\(USD\)). See calculate_yaw_system_cost() for more details.

  • hvac_mass_cost_coeff (float) -- Defaults to 135.408 \(USD/kg\).

  • hydraulic_cooling_mass (float) -- Defaults to 221 \(kg\).

  • hydraulic_cooling_cost (float) -- Hydraulic cooling cost (\(USD\)). See calculate_hydraulic_cooling_cost() for more details.

  • nacelle_cover_mass_coeff (float) -- Defaults to 1281.7 \(kg/kW\).

  • nacelle_cover_mass_intercept (float) -- Defaults to 428.19.

  • nacelle_cover_mass_cost_coeff (float) -- Defaults to 6.2244 \(USD/kg\).

  • nacelle_cover_mass (float) -- nacelle_cover mass (\(kg\)). See calculate_nacelle_cover_mass() for more details.

  • nacelle_cover_cost (float) -- nacelle_cover mass (\(USD\)). See calculate_nacelle_cover_cost() for more details.

  • platform_mainframe_mass_coeff (float) -- Defaults to 0.005.

  • platform_mainframe_mass_cost_coeff (float) -- Defaults to 18.6732 \(USD/kg\).

  • platform_mainframe_mass (float) -- Platform mainframe mass (\(kg\)). See calculate_platform_mainframe_mass() for more details.

  • platform_mainframe_cost (float) -- Platform mainframe cost (\(USD\)). See calculate_platform_mainframe_cost() for more details.

  • crane_mass_cost_coeff (float) -- Defaults to 4.368 \(USD/kg\).

  • crane_mass (float) -- If not provided, defaults to platform_mainframe_mass.

  • transformer_mass_coeff (float) -- Defaults to 1915 \(kg/kW\).

  • transformer_mass_intercept (bool) -- Defaults to 1910.

  • transformer_mass_cost_coeff (float) -- Defaults to 20.5296 \(USD/kg\).

  • transformer_mass (float) -- Transformer cover mass (\(kg\)). See calculate_transformer_mass() for more details.

  • transformer_cost (float) -- Transformer cover cost (\(USD\)). See calculate_transformer_cost() for more details.

  • controls_cost_coeff (float) -- 23.0958 \(USD/kW\).

  • controls_mass (float) -- Controls mass (\(kg\)). Defaults to 0 \(kg\).

  • controls_cost (float) -- Controls cost (\(USD\)). See calculate_controls_cost() for more details.

  • electrical_connection_mass (float) -- Electrical connection mass (\(kg\)). See calculate_electrical_connection_mass() for more details.

  • electrical_connection_cost (float) -- Electrical connection cost (\(USD\)). See calculate_electrical_connection_cost() for more details.

  • converter_mass_cost_coeff (float) -- Power converter cost per kilogram (\(USD/kg\)). Defaults to 18.8 \(USD/kg\).

  • converter_mass (float) -- Power converter mass (\(kg\)). See calculate_converter_mass() for more details.

  • converter_cost (float) -- Power converter cost (\(USD\)). See calculate_converter_cost() for more details.

  • electrical_connection_cost_coeff (float) -- Defaults to 45.7002 \(USD/kW\).

  • tower_mass_coeff (float) -- Defaults to 0.152 \(kg/m\).

  • tower_mass_intercept (bool) -- Defaults to -14281.

  • tower_mass_cost_coeff (float) -- Defaults to 3.1668 \(USD/kg\).

  • tower_mass (float) -- Tower mass (\(kg\)). See calculate_tower_mass() for more details.

  • tower_cost (float) -- Tower cost (\(USD\)). See calculate_tower_cost() for more details.

  • tower_cost -- Tower cost (\(USD\)). See calculate_tower_cost() for more details.

  • transport_blade_cost_coeff (float) -- See calculate_blade_transport_cost for more details. Defaults to 0.543.

  • transport_blade_cost_coeff2 (float) -- See calculate_blade_transport_cost for more details. Defaults to -7.4903.

  • transport_blade_cost_coeff3 (float) -- See calculate_blade_transport_cost for more details. Defaults to -2847.5.

  • transport_blade_cost_intercept (float) -- See calculate_blade_transport_cost for more details. Defaults to 103627 \(USD\).

  • blade_transport_cost (float) -- Total blade transportation cost (\(USD\)). See calculate_blade_transport_cost() for more details.

  • transport_hub_cost_intercept (float) -- See calculate_hub_transport_cost for more details. Defaults to 5000.

  • hub_transport_cost (float) -- Total hub transportation cost (\(USD\)). See calculate_hub_transport_cost() for more details.

  • transport_power_electronics_cost_coeff (float) -- See calculate_power_electronics_transport_cost for more details. Defaults to 9 \(USD/kW\).

  • power_electronics_transport_cost (float) -- Total power_electronics transportation cost (\(USD\)). See calculate_power_electronics_transport_cost() for more details.

  • transport_drivetrain_cost_coeff (float) -- See calculate_drivetrain_transport_cost for more details. Defaults to 9000 \(kg\).

  • transport_drivetrain_cost_coeff2 (float) -- See calculate_drivetrain_transport_cost for more details. Defaults to 45000 \(USD\).

  • drivetrain_transport_cost (float) -- Total drivetrain transportation cost (\(USD\)). See calculate_drivetrain_transport_cost() for more details.

  • tower_section_mass_max (float) -- Maximum mass of each tower section. See calculate_num_tower_sections for more details. Defaults to 80000 \(kg\).

  • num_tower_sections (float) -- Total number of tower sections. See calculate_tower_transport_cost for more details if not providing directly.

  • transport_tower_cost_coeff (float) -- Transportation cost for a single tower section. See calculate_tower_transport_cost for more details. Defaults to 34083 \(USD\).

  • tower_transport_cost (float) -- Total tower transportation cost (\(USD\)). See calculate_tower_transport_cost() for more details.

  • transport_misc_parts_cost_coeff (float) -- See calculate__transport_cost for more details. Defaults to 0.025 \(USD/kg\).

  • parts_transport_cost (float) -- Total transportation cost of miscellaneous parts (\(USD\)). See calculate_parts_transport_cost() for more details.

  • transport_cost (float) -- Total transportation cost (\(USD\)). See calculate_transport_cost() for more details.

  • hub_cost (float)

  • crane_cost (float)

  • nacelle_mass (float)

  • nacelle_cost (float)

  • hub_system_mass (float)

  • hub_system_cost (float)

  • rotor_mass (float)

  • rotor_cost (float)

  • turbine_mass (float)

  • turbine_cost (float)

  • turbine_cost_kw (float)

  • turbine_production_cost (float)

  • tower_flange_material_cost (float)

  • tower_flange_production_cost (float)

  • turbine_class (int)

  • pitch_blade_mass_coeff (Any | None)

  • pitch_system_mass_coeff (Any | None)

  • pitch_blade_mass_intercept (Any | None)

  • mass_sys_offset (float)

  • pitch_system_mass_cost_coeff (float)

  • brake_mass_coeff (float)

  • brake_mass_intercept (Any | None)

  • blade_has_carbon (bool)

  • bearing_housing_fraction (float)

  • pitch_bearing_mass_coeff (float)

  • pitch_bearing_mass_intercept (float)

  • lss_mass_exp (float)

  • lss_mass_coeff (float)

  • hss_mass_coeff (float)

  • hss_mass_cost_coeff (float)

  • high_speed_shaft_mass (float)

  • high_speed_shaft_cost (float)

  • hvac_mass_coeff (float)

  • tower_mass_exp (float)

Updated Scaling Relationships#

The following calculations were overridden from the base model (CSMBase) based on available industry and open source data at its time of development.

Land2020NLR.calculate_blade_mass()#

Calculates and sets blade_mass if it was not provided by the user.

\[k * r^b\]

where:

  • \(k =\) blade_mass_coeff

  • \(r =\) rotor_diameter / 2

  • \(b =\) blade_mass_exp

Parameters:
  • blade_mass_coeff (float) -- \(k\) in the mass equation above.

  • rotor_diameter (float) -- Diameter of the swept area of the turbine blades.

  • blade_mass_exp (float) -- \(b\) in the mass equation above.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_pitch_system_mass()#

Calculates and sets pitch_system_mass if it was not provided by the user.

\(mass = k_1*(k_2*m_{blade}*N_{blades} + b_1) + b_2\)

where:

  • \(k_1 =\) pitch_system_mass_coeff

  • \(k_2 =\) pitch_blade_mass_coeff

  • \(N_{blades} =\) num_blades

  • \(m_{blade} =\) blade_mass

  • \(b_1 =\) pitch_blade_mass_intercept

  • \(b_2 =\) mass_sys_offset

Parameters:
  • num_blades (int, optional) -- Number of turbine blades. Defaults to 3.

  • pitch_system_mass_coeff (float) -- \(k_1\) in the pitch system mass equation.

  • pitch_blade_mass_coeff (float) -- \(k_1\) in the pitch system mass equation.

  • blade_mass (float) -- Blade mass (\(kg\)). See calculate_blade_mass() for details.

  • pitch_blade_mass_intercept (float) -- \(b_1\) in the pitch system mass equation.

  • mass_sys_offset (float) -- \(b_2\) in the pitch system mass equation.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_low_speed_shaft_mass()#

Calculates and sets low_speed_shaft_mass if it was not provided by the user.

\(m_{lss} = k_1*rd^2 + k_2*rd + b\).

where:

  • \(k_1 =\) lss_mass_coeff1

  • \(rd =\) rotor_diameter

  • \(k_2 =\) lss_mass_coeff2

  • \(b =\) lss_mass_intercept

Parameters:
  • rotor_diameter (int, optional) -- Turbine rotor diameter, (\(m\)).

  • lss_mass_coeff1 (float) -- \(k_1\) in the polynomial low speed shaft mass equation.

  • lss_mass_coeff2 (float) -- \(k_2\) in the polynomial low speed shaft mass equation.

  • lss_mass_intercept (float) -- \(b\) in the low speed shaft mass equation.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_gearbox_mass()#

Calculates and sets gearbox_mass for the gearbox if it was not provided by the user.

\[k * \tau ^ b\]

where:

  • \(k =\) gearbox_torque_density

  • \(\tau =\) rotor_torque

  • \(b =\) gearbox_torque_exp

Parameters:
  • rotor_torque (float) -- Turbine rotor torque at rated power (\(kNm\)).

  • gearbox_torque_density (float) -- \(k\) in the mass equation above (\(N*m/kg\)).

  • gearbox_torque_exp (float) -- \(k\) in the mass equation above.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_gearbox_cost()#

Calculates and sets gearbox_cost if it was not provided by the user.

\[k * m_{gearbox}\]

where:

  • \(k =\) gearbox_mass_cost_coeff (\(USD/kg\))

  • \(m =\) gearbox_mass (\(kg\)).

Parameters:
  • gearbox_mass_cost_coeff (float) -- \(k\) in the mass equation above.

  • gearbox_mass (float) -- Main bearing mass (\(kg\)). See calculate_gearbox_mass() for more details.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_bedplate_mass()#

Calculates and sets bedplate_mass if it was not provided by the user.

\[k * rd + b\]

where:

  • \(b =\) bedplate_mass_coeff

  • \(rd =\) rotor_diameter

  • \(b =\) bedplate_mass_intercept

Parameters:
  • rotor_diameter (float) -- Turbine rotor diameter (\(m\)).

  • bedplate_mass_coeff (bool) -- \(b\) in the mass equation above.

  • bedplate_mass_intercept (bool) -- \(k\) in the mass equation above.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_hydraulic_cooling_mass()#

Sets hydraulic_cooling_mass as provided by the user.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_platform_mainframe_mass()#

Calculates and sets platform_mainframe_mass if it was not provided by the user.

\[k * m_{bedplate}\]

where:

  • \(k =\) platform_mainframe_mass_coeff

  • \(m_{bedplate} =\) bedplate_mass

Parameters:
  • platform_mainframe_mass_coeff (float) -- \(k\) in the mass equation above.

  • bedplate_mass (float) -- Bedplate mass (\(kg\)). See calculate_bedplate_mass() for details.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_platform_mainframe_cost()#

Calculates and sets platform_mainframe_cost if it was not provided by the user.

\[k * m_{platform\_mainframe}\]

where:

  • \(k =\) platform_mainframe_mass_cost_coeff (\(USD/kg\))

  • \(m =\) platform_mainframe_mass (\(kg\)).

Parameters:
  • platform_mainframe_mass_cost_coeff (float) -- Platform mainframe cost per kilogram (\(USD/kg\)).

  • platform_mainframe_mass (float) -- Platform mainframe mass (\(kg\)). See calculate_platform_mainframe_mass() for more details.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_crane_mass()#

Calculates and sets crane_mass if it was not provided by the user.

\[m_{platform\_mainframe} * has\_crane\]

where:

  • \(m_{platform\_mainframe} =\) platform_mainframe_mass

  • \(has\_crane =\) has_crane

Parameters:
  • has_crane (bool) -- If True, set crane_mass to platform_mainframe_mass, otherwise 0.

  • platform_mainframe_mass (float) -- Platform mainframe mass (\(kg\)). See calculate_platform_mainframe_mass() for details.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_crane_cost()#

Calculates and sets crane_cost if it was not provided by the user.

\[k * m_{crane} * has\_crane\]

where:

  • \(k =\) crane_mass_cost_coeff (\(USD/kg\))

  • \(m_{crane} =\) crane_mass (\(kg\)).

  • \(has\_crane =\) has_crane

Parameters:
  • has_crane (bool) -- If True, set crane_cost to crane_mass_cost_coeff * crane_mass, otherwise 0.

  • crane_mass_cost_coeff (float) -- Crane cost per kilogram (\(USD/kg\)).

  • crane_mass (float) -- Crane mass (\(kg\)). See calculate_platform_mainframe_mass() for more details.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_tower_mass()#

Calculates and sets tower_mass if it was not provided by the user.

\[k * H_{hub} * A + b\]

where:

  • \(k =\) tower_mass_coeff

  • \(H_{hub} =\) tower_length

  • \(A = \pi * r^2\), or swept area where \(r\) = rotor_diameter / 2

  • \(b =\) tower_mass_intercept

Parameters:
  • tower_mass_coeff (float) -- \(k\) in the mass equation above (\(kg/m\)).

  • tower_length (float) -- For onshore turbines, this is the hub height (total length above ground). For offshore turbines, this is length from transition piece to hub height (\(m\)).

  • tower_mass_intercept (bool) -- \(b\) in the mass equation above (\(kg\)).

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_nacelle_mass()#

Calculates and sets nacelle_mass (\(kg\)) if it was not provided by the user.

Sum of all above-tower components, excluding the blades (calculate_rotor_mass()) and hub (calculate_hub_system_mass()):

  • low_speed_shaft_mass

  • bearing_mass * num_bearings

  • gearbox_mass

  • brake_mass

  • generator_mass

  • bedplate_mass

  • yaw_system_mass

  • hydraulic_cooling_mass

  • nacelle_cover_mass

  • platform_mainframe_mass

  • transformer_mass

  • controls_mass

  • converter_mass

  • electrical_connection_mass

  • crane_mass

Parameters:
  • low_speed_shaft_mass (float) -- See calculate_low_speed_shaft_mass() for more details.

  • num_bearings (float) -- Number of main bearings (num_bearings).

  • bearing_mass (float) -- See calculate_bearing_mass() for more details.

  • gearbox_mass (float) -- See calculate_gearbox_mass() for more details.

  • brake_mass (float) -- See calculate_brake_mass() for more details.

  • high_speed_shaft_mass (float) -- See calculate_high_speed_shaft_mass() for more details.

  • generator_mass (float) -- See calculate_generator_mass() for more details.

  • bedplate_mass (float) -- See calculate_bedplate_mass() for more details.

  • yaw_system_mass (float) -- See calculate_yaw_system_mass() for more details.

  • hydraulic_cooling_mass (float) -- See calculate_hydraulic_cooling_mass() for more details.

  • nacelle_cover_mass (float) -- See calculate_nacelle_cover_mass() for more details.

  • platform_mainframe_mass (float) -- See calculate_platform_mainframe_mass() for more details.

  • transformer_mass (float) -- See calculate_transformer_mass() for more details.

  • controls_mass (float) -- See calculate_controls_mass() for more details.

  • converter_mass (float) -- See calculate_converter_mass() for more details.

  • electrical_connection_mass (float) -- See calculate_electrical_connection_mass() for more details.

  • crane_mass (float) -- See calculate_crane_mass() for more details.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_nacelle_cost()#

Calculates and sets nacelle_cost (\(USD\)) if it was not provided by the user.

Sum of all above-tower components, excluding the blades (calculate_rotor_cost()) and hub (calculate_hub_system_cost()):

  • low_speed_shaft_cost

  • bearing_cost * num_bearings

  • gearbox_cost

  • brake_cost

  • generator_cost

  • bedplate_cost

  • yaw_system_cost

  • hydraulic_cooling_cost

  • nacelle_cover_cost

  • platform_mainframe_cost

  • transformer_cost

  • controls_cost

  • converter_cost

  • electrical_connection_cost

  • crane_cost

Parameters:
  • low_speed_shaft_cost (float) -- See calculate_low_speed_shaft_cost() for more details.

  • num_bearings (int) -- Number of main bearings (num_bearings).

  • bearing_cost (float) -- See calculate_bearing_cost() for more details.

  • gearbox_cost (float) -- See calculate_gearbox_cost() for more details.

  • brake_cost (float) -- See calculate_brake_cost() for more details.

  • generator_cost (float) -- See calculate_generator_cost() for more details.

  • bedplate_cost (float) -- See calculate_bedplate_cost() for more details.

  • yaw_system_cost (float) -- See calculate_yaw_system_cost() for more details.

  • hydraulic_cooling_cost (float) -- See calculate_hydraulic_cooling_cost() for more details.

  • nacelle_cover_cost (float) -- See calculate_nacelle_cover_cost() for more details.

  • platform_mainframe_cost (float) -- See calculate_platform_mainframe_cost() for more details.

  • transformer_cost (float) -- See calculate_transformer_cost() for more details.

  • controls_cost (float) -- See calculate_controls_cost() for more details.

  • converter_cost (float) -- See calculate_converter_cost() for more details.

  • electrical_connection_cost (float) -- See calculate_electrical_connection_cost() for more details.

  • crane_cost (float) -- See calculate_crane_cost() for more details.

Raises:

ValueError -- Raised if the required parameters have not been provided or calculated.

Land2020NLR.calculate_blade_transport_cost()#

Calculates and sets the blade_transport_cost for the total cost of transporting all turbine blades if it was not provided by the user.

\[N_{blades} * (k_1 * r^3 + k_2 * r^2 + k_3 * r + b)\]

where:

  • \(N_{blades} =\) num_blades

  • \(r =\) rotor_diameter / 2

  • \(k_1 =\) transport_blade_cost_coeff

  • \(k_2 =\) transport_blade_cost_coeff2

  • \(k_3 =\) transport_blade_cost_coeff3

  • \(b =\) transport_blade_cost_intercept

Parameters:
  • num_blades (float) -- Number of turbine blades on the rotor.

  • rotor_diameter (float) -- Used to calculate rotor_radius.

  • transport_blade_cost_coeff (float) -- \(k_1\) in the cost equation.

  • transport_blade_cost_coeff2 (float) -- \(k_2\) in the cost equation.

  • transport_blade_cost_coeff3 (float) -- \(k_3\) in the cost equation.

  • transport_blade_cost_intercept (float) -- \(b\) in the cost equation.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_hub_transport_cost()#

Calculates and sets the hub_transport_cost if it was not provided by the user.

\[m_{hub} + b\]

where:

  • \(m_{hub} =\) hub_mass

  • \(b =\) transport_hub_cost_intercept

Parameters:
  • hub_mass (float) -- Mass of the rotor hub (\(kg\)). See calculate_hub_mass().

  • transport_hub_cost_intercept (float) -- \(b\) in the cost equation.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_power_electronics_transport_cost()#

Calculates and sets the power_electronics_transport_cost if it was not provided by the user.

\[max[power - 3, 0] * k\]

where:

  • \(power =\) rated_power_kw

  • \(k =\) transport_power_electronics_cost_coeff

Parameters:
  • rated_power_kw (float) -- Turbine nameplate capacity (rated power) (\(kW\)).

  • transport_power_electronics_cost_coeff (float) -- \(k\) in the cost equation.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_drivetrain_transport_cost()#

Calculates and sets the drivetrain_transport_cost if it was not provided by the user.

\[\lceil m_{nacelle} / k_1 \rceil * k_2\]

where:

  • \(m_{nacelle} =\) nacelle_mass

  • \(k_1 =\) transport_drivetrain_cost_coeff

  • \(k_2 =\) transport_drivetrain_cost_coeff2

Parameters:
  • nacelle_mass (float) -- Mass of the nacelle (\(kg\)). See calculate_nacelle_mass().

  • transport_drivetrain_cost_coeff (float) -- \(k_1\) in the cost equation.

  • transport_drivetrain_cost_coeff2 (float) -- \(k_2\) in the cost equation.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_tower_transport_cost()#

Calculates and sets the num_tower_sections and tower_transport_cost if they were not provided by the user.

\[cost = N_{sections} * k\]

where:

  • \(N_{sections} =\) num_tower_sections

  • \(m_{tower} =\) tower_mass

  • \(k =\) transport_tower_cost_coeff

Parameters:
  • num_tower_sections (int) -- Number of tower sections. See calculate_num_tower_sections().

  • tower_mass (float) -- Mass of the tower (\(kg\)). See calculate_tower_mass().

  • transport_tower_cost_coeff (float) -- Transportation cost of a single tower section, \(k\) in the cost equation.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_parts_transport_cost()#

Calculates and sets the parts_transport_cost if it was not provided by the user.

\[m_{turbine} * k\]

where:

  • \(m_{turbine} =\) turbine_mass

  • \(k =\) transport_misc_parts_cost_coeff

Parameters:
  • turbine_mass (float) -- Mass of the turbine (\(kg\)). See calculate_turbine_mass().

  • transport_misc_parts_cost_coeff (float) -- Cost ratio of miscellaneous parts to total the turbine mass (\(USD/kg\)), \(k\) in the cost equation.

Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Land2020NLR.calculate_transport_cost()#

Calculates and sets transport_cost if it was not provided by the user.

Sum of transportation costs,:

  • blade_transport_cost

  • hub_transport_cost

  • power_electronics_transport_cost

  • drivetrain_transport_cost

  • tower_transport_cost

  • parts_transport_cost

Parameters:
Raises:

ValueError -- Raised if any of the required parameters have not been provided.

Primary API#

Main interface of the model for end users creating and running a model, and getting results.

Method

Description

from_dict(data, partial)

Create a complete or incomplete model from a configuration data dictionary.

calculate(args)

Calculate individual or a series of outputs.

run()

Calculate all outputs.

parameterize(base_kwargs, parameterized_kwargs, results)

Parameter sweep.

parameterize_subset(base_kwargs, parameterized_kwargs, results)

Parameter sweep with only partial calculation of results for incomplete model definitions.

get_results(args)

Retrieve a dictionary of calculated attributes.

get_all_results()

Retrieve a dictionary of all calculated attributes.

get_mass_results()

Retrieve a dictionary of calculated mass attributes.

get_cost_results()

Retrieve a dictionary of calculated cost attributes.

get_transport_results()

Retrieve a dictionary of calculated transport cost attributes.

get_component_breakdown()

Create a component-indexed data frame of mass and cost values.

irs_mpc_breakdown(turbine_production_cost, tower_flange_material_cost, tower_flange_production_cost)

Calculate the base cost breakdown of the US IRS manufactured product component tables.

total_domestic_content(turbine_production_cost, tower_flange_material_cost, tower_flange_production_cost, domestic)

Calculates the total, valid domestic content production percentage

update(data)

Update model values based on a data dictionary and reset any calculated values dependent on the attributes.

reset_values(args)

Reset attribute(s) back to their model default.

Model Helpers#

The following properties and methods are made available for either convenience or performing underlying checks on the data.

Attributes/Methods

Description

rated_power_mw

Turbine nameplate capacity, in :math:MW.

rotor_radius

Half of the rotor diameter.

swept_area

Rotor swept area.

output_names

The names of all attributes available as outputs.

get_dependent_attributes(name)

Names of all attributes dependent on name.

get_descendant_attributes(name)

Names of all attributes name depends on.

_get_attr_map(both_as_separate, include_units)

Mapping of all the inputs and outputs of the model.

fields

Tuple of attrs.Attributes.

fields_dict

Dictionary of attrs.Attributes.

_has_values(args)

Checks for the existence of a non-None value.

_validate_inputs(parameters)

Validates the required attributes for a component's calculation and runs any uncalculated dependent calculations.

_prepare_calculation

Verifies the attribute isn't already calculated and validates its dependencies.

Subsystem Calculations#

The following is a breakdown of all the individual subsystem calculations available. All subsystem values use:math:kg for mass and :math:USD for cost. Any other values will have units listed.

System

Method

Description

Rotor

calculate_blade_mass()

Calculate mass of a single blade.

Rotor

calculate_blade_cost()

Calculate cost of a single blade.

Hub System

calculate_hub_mass()

Calculate mass of the hub.

Hub System

calculate_hub_cost()

Calculate cost of the hub.

Hub System

calculate_pitch_system_mass()

Calculate mass of the pitch system.

Hub System

calculate_pitch_system_cost()

Calculate cost of the pitch system.

Hub System

calculate_spinner_mass()

Calculate mass of the spinner (nose cone).

Hub System

calculate_spinner_cost()

Calculate cost of the spinner (nose cone).

Nacelle

calculate_low_speed_shaft_mass()

Calculate mass of the low speed shaft.

Nacelle

calculate_low_speed_shaft_cost()

Calculate cost of the low speed shaft.

Nacelle

calculate_bearing_mass()

Calculate mass of a single main bearing.

Nacelle

calculate_bearing_cost()

Calculate cost of a single main bearing.

Nacelle

calculate_rotor_torque()

Calculate the rotor_torque (:math:Nm).

Nacelle

calculate_gearbox_mass()

Calculate mass of the gearbox.

Nacelle

calculate_gearbox_cost()

Calculate cost of the gearbox.

Nacelle

calculate_brake_mass()

Calculate mass of the brakes.

Nacelle

calculate_brake_cost()

Calculate cost of the brakes.

Nacelle

calculate_high_speed_shaft_mass()

Unused in the 2020 model.

Nacelle

calculate_high_speed_shaft_cost()

Unused in the 2020 model.

Nacelle

calculate_generator_mass()

Calculate mass of the generator.

Nacelle

calculate_generator_cost()

Calculate cost of the generator.

Nacelle

calculate_bedplate_mass()

Calculate mass of the bedplate.

Nacelle

calculate_bedplate_cost()

Calculate cost of the bedplate.

Nacelle

calculate_yaw_system_mass()

Calculate mass of the yaw system.

Nacelle

calculate_yaw_system_cost()

Calculate cost of the yaw system.

Nacelle

calculate_hydraulic_cooling_mass()

Calculate mass of the HVAC system.

Nacelle

calculate_hydraulic_cooling_cost()

Calculate cost of the HVAC system.

Nacelle

calculate_nacelle_cover_mass()

Calculate mass of the nacelle cover.

Nacelle

calculate_nacelle_cover_cost()

Calculate cost of the nacelle cover.

Nacelle

calculate_platform_mainframe_mass()

Calculate mass of the platform railing.

Nacelle

calculate_platform_mainframe_cost()

Calculate cost of the platform railing.

Nacelle

calculate_transformer_mass()

Calculate mass of the transformer.

Nacelle

calculate_transformer_cost()

Calculate cost of the transformer.

Nacelle

calculate_controls_mass()

Calculate mass of the controls system.

Nacelle

calculate_controls_cost()

Calculate cost of the controls system.

Nacelle

calculate_electrical_connection_mass()

Calculate mass of the electrical connections.

Nacelle

calculate_electrical_connection_cost()

Calculate cost of the electrical connections.

Nacelle

calculate_converter_mass()

Calculate mass of the power converter system.

Nacelle

calculate_converter_cost()

Calculate cost of the power converter system.

Tower

calculate_tower_mass()

Calculate mass of the tower.

Tower

calculate_tower_cost()

Calculate cost of the tower.

Transport

calculate_blade_transport_cost()

Calculate the total blade transport cost.

Transport

calculate_hub_transport_cost()

Calculate the hub transport cost.

Transport

calculate_power_electronics_transport_cost()

Calculate the power electronics transport cost.

Transport

calculate_drivetrain_transport_cost()

Calculate the drivetrain transport cost.

Transport

calculate_tower_transport_cost()

Calculate the tower transport cost.

Transport

calculate_transport_cost()

Calculate the total transport cost.

Subsystem Aggregations (Systems)#

Method

Description

calculate_subsystem_mass()

Calculate mass of all subsystems listed above.

calculate_subsystem_cost()

Calculate cost of all subsystems

listed above.

calculate_nacelle_mass()

Calculate mass of the nacelle.

calculate_nacelle_cost()

Calculate cost of the nacelle.

calculate_hub_system_mass()

Calculate mass of hub system.

calculate_hub_system_cost()

Calculate cost of hub system.

calculate_rotor_mass()

Calculate mass of the rotor.

calculate_rotor_cost()

Calculate cost of the rotor.

calculate_turbine_mass()

Calculate mass of the turbine.

calculate_turbine_cost()

Calculate cost of the turbine.