Source code for oemof.eesyplan.components.storages.hydrogen_storage

from oemof.eesyplan.components.storages.storage import EnergyStorage


[docs] class HydrogenStorage(EnergyStorage):
[docs] def __init__( self, name, project_data, installed_capacity, bus_in_hydrogen, bus_out_hydrogen=None, capex_var=0, opex_fix=0, opex_var=0, lifetime=None, age_installed=0, optimize_cap=False, soc_max=1.0, soc_min=1.0, c_rate_charge=1.0, c_rate_discharge=None, efficiency_charge=1.0, efficiency_discharge=1.0, self_discharge=0.0, maximum_capacity_investment=float("+inf"), ): """ Hydrogen Energy Storage System (H2ESS). This class represents a hydrogen energy storage system for storing and dispatching hydrogen gas for various applications. .. important :: This system requires specialized storage technology for hydrogen handling and safety. :Structure: *input* 1. charge : H2 *output* 1. discharge : H2 Parameters ---------- name : string |name| project_data : Project object |project_data| installed_capacity : float |installed_capacity| bus_in_hydrogen : Node object |bus_in_hydrogen| bus_out_hydrogen : Node object, optional (default: None) |bus_out_hydrogen| capex_var : float, optional (default: 0) |capex_var| opex_fix : float, optional (default: 0) |opex_fix| opex_var : float, optional (default: 0) |opex_var| lifetime : int, optional (default: None) |lifetime| age_installed : float or int, optional (default: 0) |age_installed| optimize_cap : bool, optional (default: False) |optimize_cap| soc_max : float, optional (default: 1.0) |soc_max| soc_min : float, optional (default: 1.0) |soc_min| c_rate_charge : float, optional (default: 1.0) |c_rate_charge| c_rate_discharge : float, optional (default: None) |c_rate_discharge| efficiency_charge : float, optional (default: 1.0) |efficiency_charge| efficiency_discharge : float, optional (default: 1.0) |efficiency_discharge| self_discharge : float, optional (default: 0.0) |energy_losses_relative| maximum_capacity_investment : float, optional (default: float("+inf")) |maximum_capacity_investment| Examples -------- >>> from oemof.eesyplan import Project >>> from oemof.eesyplan import CarrierBus >>> my_project = Project( ... name="my_project", ... lifetime=20, ... tax=0, ... discount_factor=0.01 ... ) >>> h2_bus = CarrierBus(name="my_h2_bus") >>> my_storage = HydrogenStorage( ... name="hydrogen_storage_system", ... project_data=my_project, ... bus_in_hydrogen=h2_bus, ... installed_capacity=10, ... c_rate_charge=0.7, ... c_rate_discharge=0.8, ... self_discharge=0.0001, ... ) >>> my_invest_storage = HydrogenStorage( ... name="hydrogen_storage_system_extension", ... bus_in_hydrogen=h2_bus, ... bus_out_hydrogen=h2_bus, ... age_installed=0, ... installed_capacity=0, ... capex_var=3, ... opex_fix=5, ... opex_var=0, ... lifetime=10, ... optimize_cap=True, ... soc_max=1, ... soc_min=0, ... c_rate_charge=0.7, ... c_rate_discharge=0.8, ... efficiency_charge=0.99, ... project_data=my_project, ... self_discharge=0.0001, ... ) """ super().__init__( name, project_data=project_data, installed_capacity=installed_capacity, bus_in=bus_in_hydrogen, bus_out=bus_out_hydrogen, age_installed=age_installed, capex_var=capex_var, opex_fix=opex_fix, opex_var=opex_var, lifetime=lifetime, optimize_cap=optimize_cap, soc_max=soc_max, soc_min=soc_min, energy_losses_relative=self_discharge, efficiency_charge=efficiency_charge, efficiency_discharge=efficiency_discharge, theoretical_time_charge=c_rate_charge, # hours theoretical_time_discharge=c_rate_discharge, # hours maximum_capacity_investment=maximum_capacity_investment, )