Skip to content

SOEC Electrolyzer (SOECElectrolyzer)

Class: SOECElectrolyzer | Module: energysim.models.hydrogen | Validation benchmarks | Units

Overview

Solid Oxide Electrolyzer Cell (SOEC) for high-temperature steam electrolysis.

Simple specific-consumption model: H2 = P / spec_elec_kwh_kg limited by the available steam (spec_steam_kg_per_kg_h2 kg steam per kg H2, stoichiometric minimum 8.94). There is no stack voltage / thermoneutral-heat model: the electricity figure assumes the heat for steam generation is supplied externally. That heat is reported as Q_steam_MW_th = m_steam * steam_enthalpy_kj_kg, the thermal demand to turn feed water into steam at stack conditions (default 3900 kJ/kg: liquid water at ~25 degC to ~750 degC steam at ~1 bar; adjust to your steam source).

operating_temp_c is only a validity guard (600-900 degC, ValueError otherwise); it does not enter the calculation. Stateless: dt has no effect.

Parameters

Parameter Type Default Unit Description
name str 'SOEC_Electrolyzer' - Unique component name identifier
p_nominal_mw float 2.0 MW Nominal electrical stack power rating
operating_temp_c float 750.0 degC -
spec_elec_kwh_kg float 38.0 kWh/kg -
spec_steam_kg_per_kg_h2 float 9.0 kg/kg H2 -
steam_enthalpy_kj_kg float 3900.0 kJ/kg -
step_size float 1.0 s -

Inputs

Variable Unit Description
P_cmd MW Active power setpoint
steam_available_kg_hr kg/h -

Outputs

Variable Unit Description
P_actual MW Actual electrical power consumed
m_dot_H2_kg_hr kg/h Hydrogen production rate
steam_consumed_kg_hr kg/h -
Q_steam_MW_th MW -

Validity and notes

Validity: operating_temp_c between 600 and 900 degC (enforced at construction); steady state, constant specific electricity consumption independent of load and temperature; the heat for steam generation is supplied externally.

Usage example

from energysim import world
from energysim.models import SOECElectrolyzer

sim = world(start_time=0, stop_time=3600, t_macro=900)
sim.add_model('soecelectrolyzer', model=SOECElectrolyzer(), outputs=['P_actual', 'm_dot_H2_kg_hr', 'steam_consumed_kg_hr'], step_size=60)
res = sim.simulate()
print(res['soecelectrolyzer'].tail(2))