hydesign.costs.costs
Classes
Wind power plant cost model is used to assess the overall wind plant cost. It is based on the The NREL Cost and Scaling model [1]. |
|
PV plant cost model is used to calculate the overall PV plant cost. The cost model estimates the total solar capital expenditure costs |
|
Battery cost model calculates the storage unit costs. It uses technology costs extracted from the danish energy agency data catalogue. |
|
Electrical infrastructure and land rent cost model |
|
Power to H2 plant cost model is used to calculate the overall H2 plant cost. The cost model includes cost of electrolyzer |
Module Contents
- class hydesign.costs.costs.wpp_cost(wind_turbine_cost, wind_civil_works_cost, wind_fixed_onm_cost, wind_variable_onm_cost, d_ref, hh_ref, p_rated_ref, N_time, intervals_per_hour=1)[source]
Bases:
openmdao.api.ExplicitComponent
Wind power plant cost model is used to assess the overall wind plant cost. It is based on the The NREL Cost and Scaling model [1]. It estimates the total capital expenditure costs and operational and maintenance costs, as a function of the installed capacity, the cost of the turbine, intallation costs and O&M costs. [1] Dykes, K., et al. 2014. Sensitivity analysis of wind plant performance to key turbine design parameters: a systems engineering approach. Tech. rep. National Renewable Energy Laboratory
- setup_partials()[source]
Declare partials.
This is meant to be overridden by component classes. All partials should be declared here since this is called after all size/shape information is known for all variables.
- compute_partials(inputs, partials)[source]
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- compute(inputs, outputs)[source]
Computing the CAPEX and OPEX of the wind power plant.
- Parameters:
Nwt (Number of wind turbines)
Awpp (Land use area of WPP [km**2])
hh (Turbine's hub height [m])
d (Turbine's diameter [m])
p_rated (Turbine's rated power [MW])
wind_t (WPP power time series [MW])
- Returns:
CAPEX_w (CAPEX of the wind power plant [Eur])
OPEX_w (OPEX of the wind power plant [Eur/year])
- class hydesign.costs.costs.pvp_cost(solar_PV_cost, solar_hardware_installation_cost, solar_inverter_cost, solar_fixed_onm_cost)[source]
Bases:
openmdao.api.ExplicitComponent
PV plant cost model is used to calculate the overall PV plant cost. The cost model estimates the total solar capital expenditure costs and operational and maintenance costs as a function of the installed solar capacity and the PV cost per MW installation costs (extracted from the danish energy agency data catalogue).
- setup_partials()[source]
Declare partials.
This is meant to be overridden by component classes. All partials should be declared here since this is called after all size/shape information is known for all variables.
- compute(inputs, outputs)[source]
Computing the CAPEX and OPEX of the solar power plant.
- Parameters:
solar_MW (AC nominal capacity of the PV plant [MW])
DC_AC_ratio (Ratio of DC power rating with respect AC rating of the PV plant)
- Returns:
CAPEX_s (CAPEX of the PV power plant [Eur])
OPEX_s (OPEX of the PV power plant [Eur/year])
- compute_partials(inputs, partials)[source]
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- class hydesign.costs.costs.battery_cost(battery_energy_cost, battery_power_cost, battery_BOP_installation_commissioning_cost, battery_control_system_cost, battery_energy_onm_cost, life_y=25, intervals_per_hour=1, battery_price_reduction_per_year=0.1)[source]
Bases:
openmdao.api.ExplicitComponent
Battery cost model calculates the storage unit costs. It uses technology costs extracted from the danish energy agency data catalogue.
- setup_partials()[source]
Declare partials.
This is meant to be overridden by component classes. All partials should be declared here since this is called after all size/shape information is known for all variables.
- compute_partials(inputs, partials)[source]
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- compute(inputs, outputs)[source]
Computing the CAPEX and OPEX of battery.
- Parameters:
b_P (Battery power capacity [MW])
b_E (Battery energy storage capacity [MWh])
ii_time (Indices on the lifetime time series (Hydesign operates in each range at constant battery health))
SoH (Battery state of health at discretization levels)
- Returns:
CAPEX_b (CAPEX of the storage unit [Eur])
OPEX_b (OPEX of the storage unit [Eur/year])
Bases:
openmdao.api.ExplicitComponent
Electrical infrastructure and land rent cost model
Declare inputs and outputs.
- Available attributes:
name pathname comm options
Declare partials.
This is meant to be overridden by component classes. All partials should be declared here since this is called after all size/shape information is known for all variables.
Computing the CAPEX and OPEX of the shared land and infrastructure.
- Parameters:
G_MW (Grid capacity [MW])
Awpp (Land use area of the wind power plant [km**2])
Apvp (Land use area of the solar power plant [km**2])
- Returns:
CAPEX_sh (CAPEX electrical infrastructure/ land rent [Eur])
OPEX_sh (OPEX electrical infrastructure/ land rent [Eur/year])
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- class hydesign.costs.costs.ptg_cost(electrolyzer_capex_cost, electrolyzer_opex_cost, electrolyzer_power_electronics_cost, water_cost, water_treatment_cost, water_consumption, storage_capex_cost, storage_opex_cost, transportation_cost, transportation_distance, N_time, life_y=25, intervals_per_hour=1)[source]
Bases:
openmdao.api.ExplicitComponent
Power to H2 plant cost model is used to calculate the overall H2 plant cost. The cost model includes cost of electrolyzer and compressor for storing Hydrogen (data extracted from the danish energy agency data catalogue and IRENA reports).
- compute(inputs, outputs)[source]
Compute outputs given inputs. The model is assumed to be in an unscaled state.
An inherited component may choose to either override this function or to define a compute_primal function.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].
discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.
discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.