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: BaseClass

A 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#
_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:
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: BaseClass

Configuration 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#