FCSys.Regions.CaCLs

Cathode catalyst layers

Information

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

Package Content

NameDescription
FCSys.Regions.CaCLs.CaCL CaCL Cathode catalyst layer
FCSys.Regions.CaCLs.CaCGDL CaCGDL Integrated cathode catalyst/gas diffusion layer

FCSys.Regions.CaCLs.CaCL FCSys.Regions.CaCLs.CaCL

Cathode catalyst layer FCSys.Regions.CaCLs.CaCL

Information

This model represents the cathode catalyst layer of a PEMFC. It is identical to the anode catalyst layer except for the included species, the exchange current density (Jo), and the activation energy (). For more information, please see the anCL model.

Extends from Region (Base model for a 3D array of subregions).

Parameters

TypeNameDefaultDescription
replaceable model SubregionSubregions.Subregion (common…Base subregion model
CurrentAreicJ00.023*U.mA/U.cm^2Exchange current density @ 300 K [N/(L2.T)]
Geometry
LengthL_x[:]{28.7}*U.umLengths along the x axis [L]
LengthL_y[:]{8}*U.cmLengths along the y axis [L]
LengthL_z[:]{6.25}*U.cmLengths across the z axis [L]
NumberAbsoluteepsilon0.4Porosity [1]
Assumptions
Included transport axes
BooleaninclTransXtrueX
BooleaninclTransYfalseY
BooleaninclTransZfalseZ

Connectors

TypeNameDescription
replaceable model SubregionBase subregion model
BoundaryBusxNegative[n_y, n_z]Negative boundary along the x axis
BoundaryBusxPositive[n_y, n_z]Positive boundary along the x axis
BoundaryBusyNegative[n_x, n_z]Negative boundary along the y axis
BoundaryBusyPositive[n_x, n_z]Positive boundary along the y axis
BoundaryBuszNegative[n_x, n_y]Negative boundary along the z axis
BoundaryBuszPositive[n_x, n_y]Positive boundary along the z axis

Modelica definition

model CaCL "Cathode catalyst layer"
  import Modelica.Constants.inf;
  // extends FCSys.Icons.Names.Top4;

  extends Region(
    L_x={28.7}*U.um,
    L_y={8}*U.cm,
    L_z={6.25}*U.cm,
    final inclTransX=true,
    inclTransY=false,
    inclTransZ=false,
    redeclare replaceable model Subregion = Subregions.Subregion (
        common(k_Q=0),
        gasLiq(k_Q=inf),
        gas(
          common(k_Q=inf),
          k=fill(epsilon^(-0.5), 3),
          inclH2O=true,
          inclN2=true,
          inclO2=true,
          H2O(
            initEnergy=Init.none,
            upstreamX=false,
            phi(each stateSelect=StateSelect.always, each fixed=true),
            final zeta=0),
          N2(
            initEnergy=Init.none,
            upstreamX=false,
            final zeta=0),
          O2(
            initEnergy=Init.none,
            upstreamX=false,
            I(each stateSelect=StateSelect.always, each fixed=true),
            final zeta=0,
            p_stop=12*U.Pa)),
        graphite(
          k=fill((0.5*(1 - epsilon))^(-0.5), 3),
          'inclC+'=true,
          'incle-'=true,
          'incle-Transfer'=true,
          'C+'(theta=U.m*U.K/(1.18*U.W)*(0.5*(1 - epsilon))^1.5, epsilon=0.5*(1 -
                epsilon)),
          'e-'(sigma=40*U.S/(12*U.cm)/(0.5*(1 - epsilon))^1.5),
          'e-Transfer'(E_A=0.75*U.V)),
        ionomer(
          k=fill((0.5*(1 - epsilon))^(-0.5), 3),
          'inclSO3-'=true,
          'inclH+'=true,
          inclH2O=true,
          'SO3-'(epsilon=0.5*(1 - epsilon), T(each fixed=false, each 
                stateSelect=StateSelect.default)),
          'H+'(initEnergy=Init.none, sigma=0.1*U.S/U.cm),
          H2O(initEnergy=Init.none, phi(each stateSelect=StateSelect.always, 
                each fixed=true))),
        liquid(
          k=fill(epsilon^(-0.5), 3),
          inclH2O=true,
          H2O(
            upstreamX=false,
            epsilon_IC=1e-5,
            phi(each stateSelect=StateSelect.always, each fixed=true),
            each initEnergy=Init.none,
            N0=0.1*U.C,
            T(each stateSelect=StateSelect.default))),
        volume(inclCapillary=true,capillary(R=5*U.um))),
    subregions(graphite('e-Transfer'(final I0=J0*subregions.A[Axis.x]))));

  // See the documentation layer of Phases.PartialPhase regarding the
  // settings of k for each phase.

  parameter Q.NumberAbsolute epsilon(nominal=1) = 0.4 "Porosity";

  parameter Q.CurrentAreic J0(min=0) = 0.023*U.mA/U.cm^2 
    "Exchange current density @ 300 K";

protected 
  outer Conditions.Environment environment "Environmental conditions";

initial equation 

end CaCL;

FCSys.Regions.CaCLs.CaCGDL FCSys.Regions.CaCLs.CaCGDL

Integrated cathode catalyst/gas diffusion layer FCSys.Regions.CaCLs.CaCGDL

Information

The default thickness is the total thickness of CaCL and CaGDL.

For more information, please see the CaCL model.

Extends from CaCLs.CaCL (Cathode catalyst layer).

Parameters

TypeNameDefaultDescription
replaceable model SubregionSubregions.Subregion (common…Base subregion model
CurrentAreicJ00.023*U.mA/U.cm^2Exchange current density @ 300 K [N/(L2.T)]
Geometry
LengthL_x[:]{(28.7*U.um + 0.235*U.mm)}Lengths along the x axis [L]
LengthL_y[:]{8}*U.cmLengths along the y axis [L]
LengthL_z[:]{6.25}*U.cmLengths across the z axis [L]
NumberAbsoluteepsilon0.16Porosity [1]
Assumptions
Included transport axes
BooleaninclTransYfalseY
BooleaninclTransZfalseZ

Connectors

TypeNameDescription
BoundaryBusxNegative[n_y, n_z]Negative boundary along the x axis
BoundaryBusxPositive[n_y, n_z]Positive boundary along the x axis
BoundaryBusyNegative[n_x, n_z]Negative boundary along the y axis
BoundaryBusyPositive[n_x, n_z]Positive boundary along the y axis
BoundaryBuszNegative[n_x, n_y]Negative boundary along the z axis
BoundaryBuszPositive[n_x, n_y]Positive boundary along the z axis

Modelica definition

model CaCGDL "Integrated cathode catalyst/gas diffusion layer"
  import Modelica.Constants.inf;

  extends CaCLs.CaCL(
    L_x={(28.7*U.um + 0.235*U.mm)},
    epsilon=0.16,
    subregions(
      gas(
        H2O(each final eta=0),
        N2(each final eta=0),
        O2(each final eta=0)),
      ionomer('H+_H2O'(each k_Phi={1,1,1}),'H+'(each sigma=0.8*U.S/U.cm)),
      liquid(H2O(each final eta=0))));

end CaCGDL;