MHK Cost Model#
This section documents the cost model for MHK technologies.
MHK Plant Cost Model#
- class hopp.simulation.technologies.financial.mhk_cost_model.MHKCosts(mhk_config, cost_model_inputs)#
Bases:
BaseClassA class for calculating the costs associated with Marine Hydrokinetic (MHK) energy systems.
This class initializes and configures cost calculations for MHK systems based on provided input parameters. It uses the PySAM library for cost modeling which is based on the [Department of Energy Reference Model Project](https://energy.sandia.gov/programs/renewable-energy/water-power/projects/reference-model-project-rmp/).
- Args:
mhk_config: MHK system configuration parameters. cost_model_inputs: Input parameters for cost modeling.
- Raises:
- ValueError: If any of the required keys in mhk_config or
cost_model_inputs are missing.
- Parameters:
mhk_config (MHKWaveConfig)
cost_model_inputs (MHKCostModelInputs)
- mhk_config: MHKWaveConfig#
- cost_model_inputs: MHKCostModelInputs#
- _device_rated_power: float#
- _number_devices: int#
- _water_depth: float#
- _distance_to_shore: float#
- _number_rows: int#
- _ref_model_num: str#
- _device_spacing: float#
- _row_spacing: float#
- _cable_sys_overbuild: float#
- initialize()#
- system_capacity_by_num_devices(wave_size_kw)#
Sets the system capacity by adjusting the number of devices.
- simulate_costs()#
- property device_rated_power#
- property number_devices#
- property system_capacity_kw#
- __init__(mhk_config, cost_model_inputs)#
Method generated by attrs for class MHKCosts.
- Parameters:
mhk_config (MHKWaveConfig)
cost_model_inputs (MHKCostModelInputs)
- Return type:
None
- _get_model_dict()#
Convenience method that wraps the attrs.asdict method. Returns the object’s parameters as a dictionary.
- Returns:
dict – The provided or default, if no input provided, model settings as a dictionary.
- Return type:
dict
- as_dict()#
Creates a JSON and YAML friendly dictionary that can be save for future reloading. This dictionary will contain only Python types that can later be converted to their proper Turbine formats.
- Returns:
dict – All key, vaue pais required for class recreation.
- Return type:
dict
- classmethod from_dict(data)#
Maps a data dictionary to an attr-defined class.
TODO: Add an error to ensure that either none or all the parameters are passed in
- Parameters:
data (dict) – dict The data dictionary to be mapped.
- Returns:
- cls
The attr-defined class.
- classmethod get_model_defaults()#
Produces a dictionary of the keyword arguments and their defaults.
- Returns:
Dict[str, Any] – Dictionary of keyword argument: default.
- Return type:
Dict[str, Any]
- property logger#
- property ref_model_num#
- property library_or_input_wec#
- property cost_outputs: dict#
MHK Plant Cost Model Inputs#
- class hopp.simulation.technologies.financial.mhk_cost_model.MHKCostModelInputs(reference_model_num, water_depth, distance_to_shore, number_rows, device_spacing, row_spacing=None, cable_system_overbuild=10.0)#
Bases:
BaseClassConfiguration class for MHK Cost Model.
- Parameters:
reference_model_num (int) – Reference model number from the Department of Energy Reference Model Project (1, 3, 5, or 6).
water_depth (float) – Water depth in meters
distance_to_shore (float) – Distance to shore in meters
number_rows (int) – Number of rows in the device layout
row_spacing (float | None) – Spacing between rows in meters (default ‘device_spacing’)
cable_system_overbuild (float) – Cable system overbuild percentage (default 10%)
device_spacing (float)
Note
More information about the reference models and their associated costs can be found in the [Reference Model Project](https://energy.sandia.gov/programs/renewable-energy/water-power/projects/reference-model-project-rmp/)
- The supported reference models in this cost model are:
Reference Model 1: Tidal Current Turbine
Reference Model 3: Wave Point Absorber
Reference Model 5: Oscillating Surge Flap
Reference Model 6: Oscillating Water Column
Additional MHK cost model information can be found through the [System Advisor Model](https://sam.nrel.gov/)
- reference_model_num: int#
- water_depth: float#
- distance_to_shore: float#
- number_rows: int#
- device_spacing: float#
- row_spacing: float | None#
- cable_system_overbuild: float#
- __init__(reference_model_num, water_depth, distance_to_shore, number_rows, device_spacing, row_spacing=None, cable_system_overbuild=10.0)#
Method generated by attrs for class MHKCostModelInputs.
- Parameters:
reference_model_num (int)
water_depth (float)
distance_to_shore (float)
number_rows (int)
device_spacing (float)
row_spacing (float | None)
cable_system_overbuild (float)
- Return type:
None
- _get_model_dict()#
Convenience method that wraps the attrs.asdict method. Returns the object’s parameters as a dictionary.
- Returns:
dict – The provided or default, if no input provided, model settings as a dictionary.
- Return type:
dict
- as_dict()#
Creates a JSON and YAML friendly dictionary that can be save for future reloading. This dictionary will contain only Python types that can later be converted to their proper Turbine formats.
- Returns:
dict – All key, vaue pais required for class recreation.
- Return type:
dict
- classmethod from_dict(data)#
Maps a data dictionary to an attr-defined class.
TODO: Add an error to ensure that either none or all the parameters are passed in
- Parameters:
data (dict) – dict The data dictionary to be mapped.
- Returns:
- cls
The attr-defined class.
- classmethod get_model_defaults()#
Produces a dictionary of the keyword arguments and their defaults.
- Returns:
Dict[str, Any] – Dictionary of keyword argument: default.
- Return type:
Dict[str, Any]
- property logger#