Modelica fuel cell library


FCSys is a free, open-source library of equation-based, object-oriented (EOO) models of proton exchange membrane fuel cells (PEMFCs) in the Modelica language. The models are:

  • Dynamic
  • Multi-domain: Chemical, electrical, fluid, and thermal phenomena are included.
  • Multi-phase: Water is included and transported independently as vapor, liquid, and absorbed in the ionomer. Phase change is represented as a dynamic process.
  • Multi-dimensional
  • Highly reconfigurable: There are options to adjust the assumptions, dimensionality (1D, 2D, or 3D), and spatial discretization (i.e., resolution). Species may be independently enabled at instantiation, unlike the Modelica media library. The framework is generic and can be extended to other fluidic or electrochemical devices like batteries.
  • Highly modular: Each layer of the cell is a separate model which is hierarchically constructed from graphical models of subregions, phases, and species. At each level, EOO (i.e., effort/flow) connectors are used to combine the various components.
  • Fully declarative: There are no causal connectors besides those used to apply boundary conditions. Functions are only used to simplify subexpressions of equations.
  • Physics-based: The equations are based on first principles, with explicit conservation of material, momentum, and energy in every control volume and across every interface. A unique and physically appropriate method of upstream discretization is used to describe coupled advective and diffusive transfer. All physical quantities are mapped to universal physical constants using a novel, flexible implementation of natural units.
  • Computationally efficient: There are minimal switching events and no nonlinear systems of equations after appropriate translation. A typical polarization curve can be simulated in less than two seconds.

Figure 1 shows the seven primary layers of a typical PEMFC, which are also the components of the fuel cell model shown in Figure 2. Fluid enters and exits the cell through channels in the flow plates (FPs). It spreads through the gas diffusion diffusion layers (GDLs) and reacts in the catalyst layers (CLs) according to the following electrochemical equations:

2(H2 2e- + 2H+) (anode)
4e- + 4H+ + O2 2H2O (cathode)

2H2 + O2 2H2O (net)

The proton exchange membrane (PEM) prevents electronic transport; therefore, electrons must pass through an external load to sustain the net reaction.

Figure 1: Layers and primary flows of a PEMFC.

Figure 2: Diagram of the PEMFC model.

The fuel cell model can be exercised using the test stand shown in Figure 3 or connected to the Modelica fluid library using available adapters. Please see the sample cell results for examples and the getting started page for information about using the library.

Figure 3: Diagram of the test stand model.

Licensed by the Hawaii Natural Energy Institute under the Modelica License 2
Copyright © 2007–2014, Hawaii Natural Energy Institute and Georgia Tech Research Corporation.

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2. For license conditions (including the disclaimer of warranty) see FCSys.UsersGuide.License or visit http://www.modelica.org/licenses/ModelicaLicense2.

Extends from Modelica.Icons.Package (Icon for standard packages).

Package Content

FCSys.UsersGuide UsersGuide User's Guide
FCSys.Blocks Blocks Imperative models (inputs and outputs only)
FCSys.Conditions Conditions Models to specify and measure operating conditions
FCSys.Assemblies Assemblies Combinations of regions (e.g., cells)
FCSys.Regions Regions 3D arrays of discrete, interconnected subregions
FCSys.Subregions Subregions Control volumes with multi-species transfer and storage
FCSys.Phases Phases Mixtures of species
FCSys.Species Species Dynamic models of chemical species
FCSys.Chemistry Chemistry Chemical reactions and related models
FCSys.Characteristics Characteristics Data and functions to correlate physical properties
FCSys.Connectors Connectors Declarative and imperative interfaces
FCSys.Units Units Constants and units of physical measure
FCSys.Quantities Quantities Types to represent physical values
FCSys.Utilities Utilities General supporting functions
FCSys.Icons Icons Icons to annotate and represent classes