FCSys.Regions.CaFPs

Cathode flow plates

Information

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

Package Content

NameDescription
FCSys.Regions.CaFPs.CaFP CaFP Cathode flow plate

FCSys.Regions.CaFPs.CaFP FCSys.Regions.CaFPs.CaFP

Cathode flow plate FCSys.Regions.CaFPs.CaFP

Information

This model represents the cathode flow plate of a PEMFC. It is identical to the anode flow plate except for the included species, the default length of the channel, and the fraction of the volume for the fluid (ε). For more information, please see the anFP model.

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

Parameters

TypeNameDefaultDescription
replaceable model SubregionFCSys.Subregions.SubregionNo…Base subregion model
LengthD0.815*U.mmHydraulic diameter of the channel [L]
LengthL_channel106.4*U.cmLength of the channel [L]
Geometry
LengthL_x[:]{10}*U.mmLengths 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.0423Fraction of volume for the fluid [1]
Assumptions
Included transport axes
BooleaninclTransXtrueX
BooleaninclTransYtrueY
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 CaFP "Cathode flow plate"
  import Modelica.Constants.inf;
  // extends FCSys.Icons.Names.Top4;

  extends Region(
    L_x={10}*U.mm,
    L_y={8}*U.cm,
    L_z={6.25}*U.cm,
    final inclTransX=true,
    final inclTransY=true,
    inclTransZ=false,
    redeclare replaceable model Subregion = FCSys.Subregions.SubregionNoIonomer
        (
        common(k_Phi={1e7,inf,1e7},k_Q=1e5),
        gas(
          common(k_Phi={inf,inf,inf}),
          H2O_N2(k_Phi={inf,inf,inf}),
          H2O_O2(k_Phi={inf,inf,inf}),
          N2_O2(k_Phi={inf,inf,inf}),
          k={0.17*epsilon,Lstar/n_y,n_y/Lstar},
          inclH2O=true,
          inclN2=true,
          inclO2=true,
          H2O(
            upstreamX=false,
            Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4},
            final zeta=0,
            T(stateSelect=StateSelect.always)),
          N2(
            upstreamX=false,
            Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4},
            final zeta=0,
            initEnergy=Init.none,
            I(each stateSelect=StateSelect.always, each fixed=true)),
          O2(
            upstreamX=false,
            Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4},
            final zeta=0,
            initEnergy=Init.none)),
        graphite(
          'inclC+'=true,
          'incle-'=true,
          'C+'(theta=U.m*U.K/(95*U.W),epsilon=1 - epsilon),
          'e-'(sigma=U.S/(1.470e-3*U.cm))),
        liquid(
          k={0.17*epsilon,Lstar/n_y,n_y/Lstar},
          inclH2O=true,
          H2O(
            upstreamX=false,
            Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4},
            epsilon_IC=1e-5,
            N0=0.1*U.C))));

  parameter Q.NumberAbsolute epsilon(nominal=1) = 0.0423 
    "Fraction of volume for the fluid";

  parameter Q.Length D=0.815*U.mm "Hydraulic diameter of the channel";

  parameter Q.Length L_channel=106.4*U.cm "Length of the channel";

protected 
  final parameter Q.NumberAbsolute Lstar=L_channel/L[Axis.y] 
    "Ratio of the length of the channel to the length of the layer in the y direction";

  Q.Velocity phi_states_H2O[:, :, :](
    each stateSelect=StateSelect.always,
    each start=0,
    each fixed=true) = subregions[:, 2:n_y, :].gas.H2O.phi[2] if n_y > 1 
    "Forced states for H2O";
  Q.Velocity phi_states_O2[:, :, :](
    each stateSelect=StateSelect.always,
    each start=0,
    each fixed=true) = subregions[:, 2:n_y, :].gas.O2.phi[2] if n_y > 1 
    "Forced states for O2";
  // Note:  These variables avoid dynamic state selection in Dymola 2014.

  outer Conditions.Environment environment "Environmental conditions";

  // See AnFPs.AnFP for data on additional materials.

end CaFP;