# PEM Electrolyzer

The DISPATCHES PEM Electrolyzer Model represents a simple proton-exchange membrane electrolyzer that operates with a fixed efficiency in converting electricity to hydrogen gas. The outlet state is determined via an H2 property package.

## Degrees of Freedom

The PEM Electrolyzer Model has 0 degrees of freedom.

## Model Structure

The PEM Electrolyzer Model consists of a fixed conversion rate between the inlet electricity and the outlet flow rate of hydrogen gas.

## Variables

The PEM Electrolyzer Model Model uses the following variables:

Variable Name

Symbol

Notes

electricity_to_mol

$$\eta$$

electricity

$$I_{t}$$

outlet_state

$$O_{t, *}$$

state variables such as mol flow, temperature, pressure

## Constraints

Outlet flow of hydrogen gas depends on efficiency:

$O_{t, f} = I_{t} \times \eta$

## PEM Electrolyzer Class

class dispatches.unit_models.pem_electrolyzer.PEM_Electrolyzer(*args, **kwds)

Simple 0D proton-exchange membrane electrolyzer model.

Parameters
• rule (function) – A rule function or None. Default rule calls build().

• concrete (bool) – If True, make this a toplevel model. Default - False.

• ctype (class) –

Pyomo ctype of the block. Default - pyomo.environ.Block

Config args
dynamic

PEM Electrolyzer does not support dynamic models, thus this must be False.

has_holdup

Gibbs reactors do not have defined volume, thus this must be False.

property_package

Property parameter object used to define property calculations, default - useDefault. Valid values: { useDefault - use default package from parent model or flowsheet, PropertyParameterObject - a PropertyParameterBlock object.}

property_package_args

A ConfigBlock with arguments to be passed to a property block(s) and used when constructing these, default - None. Valid values: { see property package for documentation.}

• initialize (dict) – ProcessBlockData config for individual elements. Keys are BlockData indexes and values are dictionaries with config arguments as keys.

• idx_map (function) – Function to take the index of a BlockData element and return the index in the initialize dict from which to read arguments. This can be provided to override the default behavior of matching the BlockData index exactly to the index in initialize.

Returns

(PEM_Electrolyzer) New instance