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_classblade_has_carbonbearing_housing_fractionpitch_bearing_mass_coeffpitch_bearing_mass_interceptlss_mass_explss_mass_coeffgearbox_torque_costhss_mass_coeffhss_mass_cost_coeffhigh_speed_shaft_masshigh_speed_shaft_costbedplate_mass_exphvac_mass_coefftower_mass_exp
Not updated from the 2015 model:
pitch_system_mass_cost_coeff
Updated scaling relationships:
blade_masspitch_system_masslow_speed_shaft_massgearbox_massgearbox_costbedplate_masshydraulic_cooling_massplatform_mainframe_massplatform_mainframe_costcrane_masscrane_costtower_masstransport_costnacelle_massnacelle_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_speedandrotor_diameter. Seecalculate_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_costfor more details. Defaults to 0.543.transport_blade_cost_coeff2 (float) -- See
calculate_blade_transport_costfor more details. Defaults to -7.4903.transport_blade_cost_coeff3 (float) -- See
calculate_blade_transport_costfor more details. Defaults to -2847.5.transport_blade_cost_intercept (float) -- See
calculate_blade_transport_costfor 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_costfor 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_costfor 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_costfor more details. Defaults to 9000 \(kg\).transport_drivetrain_cost_coeff2 (float) -- See
calculate_drivetrain_transport_costfor 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_sectionsfor more details. Defaults to 80000 \(kg\).num_tower_sections (float) -- Total number of tower sections. See
calculate_tower_transport_costfor more details if not providing directly.transport_tower_cost_coeff (float) -- Transportation cost for a single tower section. See
calculate_tower_transport_costfor 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_costfor 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_massif 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_massif 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_massif 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_massfor 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_costif 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_massif 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_massas 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_massif 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_costif 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_massif 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_masstoplatform_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_costif 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_costtocrane_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_massif 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_massbearing_mass*num_bearingsgearbox_massbrake_massgenerator_massbedplate_massyaw_system_masshydraulic_cooling_massnacelle_cover_massplatform_mainframe_masstransformer_masscontrols_massconverter_masselectrical_connection_masscrane_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_costbearing_cost*num_bearingsgearbox_costbrake_costgenerator_costbedplate_costyaw_system_costhydraulic_cooling_costnacelle_cover_costplatform_mainframe_costtransformer_costcontrols_costconverter_costelectrical_connection_costcrane_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_costfor 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_costif 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_costif 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_costif 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_sectionsandtower_transport_costif 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_costif 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_costif it was not provided by the user.Sum of transportation costs,:
blade_transport_costhub_transport_costpower_electronics_transport_costdrivetrain_transport_costtower_transport_costparts_transport_cost
- Parameters:
blade_transport_cost (float) -- Total blade transportation cost. See
calculate_blade_transport_cost()for more details.hub_transport_cost (float) -- Hub transportation cost. See
calculate_hub_transport_cost()for more details.power_electronics_transport_cost (float) -- Power electronics transportation cost. See
calculate_power_electronics_transport_cost()for more details.drivetrain_transport_cost (float) -- Drivetrain transportation cost. See
calculate_drivetrain_transport_cost()for more details.tower_transport_cost (float) -- Total tower transportation cost. See
calculate_tower_transport_cost()for more details.parts_transport_cost (float) -- Miscellaneous parts transportation cost. See
calculate_parts_transport_cost()for more details.
- 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 |
|---|---|
|
Create a complete or incomplete model from a configuration data dictionary. |
|
Calculate individual or a series of outputs. |
|
Calculate all outputs. |
|
Parameter sweep. |
|
Parameter sweep with only partial calculation of results for incomplete model definitions. |
|
Retrieve a dictionary of calculated attributes. |
Retrieve a dictionary of all calculated attributes. |
|
Retrieve a dictionary of calculated mass attributes. |
|
Retrieve a dictionary of calculated cost attributes. |
|
Retrieve a dictionary of calculated transport cost attributes. |
|
Create a component-indexed data frame of mass and cost values. |
|
|
Calculate the base cost breakdown of the US IRS manufactured product component tables. |
|
Calculates the total, valid domestic content production percentage |
|
Update model values based on a data dictionary and reset any calculated values dependent on the attributes. |
|
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 |
|---|---|
Turbine nameplate capacity, in :math: |
|
Half of the rotor diameter. |
|
Rotor swept area. |
|
The names of all attributes available as outputs. |
|
|
Names of all attributes dependent on |
Names of all attributes |
|
|
Mapping of all the inputs and outputs of the model. |
Tuple of |
|
Dictionary of |
|
|
Checks for the existence of a non-None value. |
|
Validates the required attributes for a component's calculation and runs any uncalculated dependent calculations. |
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 mass of a single blade. |
|
Rotor |
Calculate cost of a single blade. |
|
Hub System |
Calculate mass of the hub. |
|
Hub System |
Calculate cost of the hub. |
|
Hub System |
Calculate mass of the pitch system. |
|
Hub System |
Calculate cost of the pitch system. |
|
Hub System |
Calculate mass of the spinner (nose cone). |
|
Hub System |
Calculate cost of the spinner (nose cone). |
|
Nacelle |
Calculate mass of the low speed shaft. |
|
Nacelle |
Calculate cost of the low speed shaft. |
|
Nacelle |
Calculate mass of a single main bearing. |
|
Nacelle |
Calculate cost of a single main bearing. |
|
Nacelle |
Calculate the rotor_torque (:math: |
|
Nacelle |
Calculate mass of the gearbox. |
|
Nacelle |
Calculate cost of the gearbox. |
|
Nacelle |
Calculate mass of the brakes. |
|
Nacelle |
Calculate cost of the brakes. |
|
Nacelle |
Unused in the 2020 model. |
|
Nacelle |
Unused in the 2020 model. |
|
Nacelle |
Calculate mass of the generator. |
|
Nacelle |
Calculate cost of the generator. |
|
Nacelle |
Calculate mass of the bedplate. |
|
Nacelle |
Calculate cost of the bedplate. |
|
Nacelle |
Calculate mass of the yaw system. |
|
Nacelle |
Calculate cost of the yaw system. |
|
Nacelle |
Calculate mass of the HVAC system. |
|
Nacelle |
Calculate cost of the HVAC system. |
|
Nacelle |
Calculate mass of the nacelle cover. |
|
Nacelle |
Calculate cost of the nacelle cover. |
|
Nacelle |
Calculate mass of the platform railing. |
|
Nacelle |
Calculate cost of the platform railing. |
|
Nacelle |
Calculate mass of the transformer. |
|
Nacelle |
Calculate cost of the transformer. |
|
Nacelle |
Calculate mass of the controls system. |
|
Nacelle |
Calculate cost of the controls system. |
|
Nacelle |
Calculate mass of the electrical connections. |
|
Nacelle |
Calculate cost of the electrical connections. |
|
Nacelle |
Calculate mass of the power converter system. |
|
Nacelle |
Calculate cost of the power converter system. |
|
Tower |
Calculate mass of the tower. |
|
Tower |
Calculate cost of the tower. |
|
Transport |
Calculate the total blade transport cost. |
|
Transport |
Calculate the hub transport cost. |
|
Transport |
Calculate the power electronics transport cost. |
|
Transport |
Calculate the drivetrain transport cost. |
|
Transport |
Calculate the tower transport cost. |
|
Transport |
Calculate the total transport cost. |
Subsystem Aggregations (Systems)#
Method |
Description |
|---|---|
Calculate mass of all subsystems listed above. |
|
Calculate cost of all subsystems |
|
listed above. |
|
Calculate mass of the nacelle. |
|
Calculate cost of the nacelle. |
|
Calculate mass of hub system. |
|
Calculate cost of hub system. |
|
Calculate mass of the rotor. |
|
Calculate cost of the rotor. |
|
Calculate mass of the turbine. |
|
Calculate cost of the turbine. |