reV.bespoke.place_turbines.PlaceTurbines
- class PlaceTurbines(wind_plant, objective_function, capital_cost_function, fixed_operating_cost_function, variable_operating_cost_function, balance_of_system_cost_function, include_mask, pixel_side_length, min_spacing, wake_loss_multiplier=1)[source]
Bases:
object
Framework for optimizing turbine locations for site specific exclusions, wind resources, and objective
- Parameters:
wind_plant (WindPowerPD) – wind plant object to analyze wind plant performance. This object should have everything in the plant defined, such that only the turbine coordinates and plant capacity need to be defined during the optimization.
objective_function (str) – The objective function of the optimization as a string, should return the objective to be minimized during layout optimization. Variables available are:
n_turbines
: the number of turbinessystem_capacity
: wind plant capacityaep
: annual energy productionavg_sl_dist_to_center_m
: Average straight-line distance to the supply curve point center from all turbine locations (in m). Useful for computing plant BOS costs.avg_sl_dist_to_medoid_m
: Average straight-line distance to the medoid of all turbine locations (in m). Useful for computing plant BOS costs.nn_conn_dist_m
: Total BOS connection distance using nearest-neighbor connections. This variable is only available for thebalance_of_system_cost_function
equation.fixed_charge_rate
: user input fixed_charge_rate if included as part of the sam system config.capital_cost
: plant capital cost as evaluated by capital_cost_functionfixed_operating_cost
: plant fixed annual operating cost as evaluated by fixed_operating_cost_functionvariable_operating_cost
: plant variable annual operating cost as evaluated by variable_operating_cost_functionbalance_of_system_cost
: plant balance of system cost as evaluated by balance_of_system_cost_functionself.wind_plant
: the SAM wind plant object, through which all SAM variables can be accessed
capital_cost_function (str) – The plant capital cost function as a string, must return the total capital cost in $. Has access to the same variables as the objective_function.
fixed_operating_cost_function (str) – The plant annual fixed operating cost function as a string, must return the fixed operating cost in $/year. Has access to the same variables as the objective_function.
variable_operating_cost_function (str) – The plant annual variable operating cost function as a string, must return the variable operating cost in $/kWh. Has access to the same variables as the objective_function. You can set this to “0” to effectively ignore variable operating costs.
balance_of_system_cost_function (str) – The plant balance-of-system cost function as a string, must return the variable operating cost in $. Has access to the same variables as the objective_function. You can set this to “0” to effectively ignore balance-of-system costs.
include_mask (np.ndarray) – Supply curve point 2D inclusion mask where included pixels are set to 1 and excluded pixels are set to 0.
pixel_side_length (int) – Side length (m) of a single pixel of the include_mask.
min_spacing (float) – The minimum spacing between turbines (in meters).
wake_loss_multiplier (float, optional) – A multiplier used to scale the annual energy lost due to wake losses. IMPORTANT: This multiplier will ONLY be applied during the optimization process and will NOT be come through in output values such as aep, any of the cost functions, or even the output objective.
Methods
capital_cost_per_kw
(capacity_mw)Capital cost function ($ per kW) evaluated for a given capacity.
From the exclusions data, create a shapely MultiPolygon as self.safe_polygons that defines where turbines can be placed.
Run the turbine packing algorithm (maximizing plant capacity) to define potential turbine locations that will be used as design variables in the gentic algorithm.
The optimization objective used in the bespoke optimization
optimize
(**kwargs)Optimize wind farm layout.
place_turbines
(**kwargs)Define bespoke wind plant turbine layouts.
Attributes
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Fixed charge rate if input to the SAM WindPowerPD object, None if not found in inputs.
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
Wrapper to return None if PlaceTurbines is not optimized
- define_exclusions()[source]
From the exclusions data, create a shapely MultiPolygon as self.safe_polygons that defines where turbines can be placed.
- initialize_packing()[source]
Run the turbine packing algorithm (maximizing plant capacity) to define potential turbine locations that will be used as design variables in the gentic algorithm.
- optimize(**kwargs)[source]
Optimize wind farm layout.
Use a genetic algorithm to optimize wind plant layout for the user-defined objective function.
- Parameters:
**kwargs – Keyword arguments to pass to GA initialization.
See also
GeneticAlgorithm
GA Algorithm.
- place_turbines(**kwargs)[source]
Define bespoke wind plant turbine layouts.
Run all functions to define bespoke wind plant turbine layouts.
- Parameters:
**kwargs – Keyword arguments to pass to GA initialization.
See also
GeneticAlgorithm
GA Algorithm.
- capital_cost_per_kw(capacity_mw)[source]
Capital cost function ($ per kW) evaluated for a given capacity.
The capacity will be adjusted to be an exact multiple of the turbine rating in order to yield an integer number of turbines.
- Parameters:
capacity_mw (float) – The desired capacity (MW) to sample the cost curve at. Note as mentioned above, the capacity will be adjusted to be an exact multiple of the turbine rating in order to yield an integer number of turbines. For best results, set this value to be an integer multiple of the turbine rating.
- Returns:
capital_cost (float) – Capital cost ($ per kW) for the (adjusted) plant capacity.
- property fixed_charge_rate
Fixed charge rate if input to the SAM WindPowerPD object, None if not found in inputs.
- property turbine_x
Wrapper to return None if PlaceTurbines is not optimized
- property turbine_y
Wrapper to return None if PlaceTurbines is not optimized
- property avg_sl_dist_to_center_m
Wrapper to return None if PlaceTurbines is not optimized
- property avg_sl_dist_to_medoid_m
Wrapper to return None if PlaceTurbines is not optimized
- property nn_conn_dist_m
Wrapper to return None if PlaceTurbines is not optimized
- property nturbs
Wrapper to return None if PlaceTurbines is not optimized
- property capacity
Wrapper to return None if PlaceTurbines is not optimized
- property convex_hull
Wrapper to return None if PlaceTurbines is not optimized
- property area
Wrapper to return None if PlaceTurbines is not optimized
- property convex_hull_area
Wrapper to return None if PlaceTurbines is not optimized
- property full_cell_area
Wrapper to return None if PlaceTurbines is not optimized
- property capacity_density
Wrapper to return None if PlaceTurbines is not optimized
- property convex_hull_capacity_density
Wrapper to return None if PlaceTurbines is not optimized
- property full_cell_capacity_density
Wrapper to return None if PlaceTurbines is not optimized
- property aep
Wrapper to return None if PlaceTurbines is not optimized
- property capital_cost
Wrapper to return None if PlaceTurbines is not optimized
- property fixed_operating_cost
Wrapper to return None if PlaceTurbines is not optimized
- property variable_operating_cost
Wrapper to return None if PlaceTurbines is not optimized
- property balance_of_system_cost
Wrapper to return None if PlaceTurbines is not optimized
- property objective
Wrapper to return None if PlaceTurbines is not optimized