Name | Description |
---|---|
![]() | Cathode flow plate |
This model represents the cathode flow plate of a PEMFC.
The x axis extends from the anode to the cathode.
Fluid is considered to travel
in the y direction, with the associated length factor (ky) greater than one (by default)
to represent a serpentine channel.
The model is
bidirectional, meaning that either yNegative
or yPositive
can be
used as the inlet. By default, the cross-sectional area in the yz plane is 50 cm2.
The solid and the fluid phases are assumed to exist in the same subregions, even though a typical flow plate is impermeable to the fluid (except for the channel). In theory, it is possible to discretize the flow plate into smaller subregions for the bulk solid, lands, and valleys. However, this would significantly increase the mathematical size of the model. Currently, that level of detail is best left to computational fluid dynamics.
The x axis-component of the transport factor (kx) for the gas and the liquid should generally be less than one because the transport distance into/out of the GDL is less that half the thickness of the flow plate. It is equal to the product of two ratios:
See Species.'C+'.Graphite.Fixed
regarding the default specific heat capacity. The default thermal resistivity
of the carbon (θ = U.m*U.K/(95*U.W)
) and the
electrical conductivity (σ = U.S/(1.470e-3*U.cm)
)
are that of Entegris/Poco Graphite AXF-5Q
[Entegris2012].
There is additional data in the
text layer of the AnFP model.
For more information, please see the Region model.
Extends from Region (Base model for a 3D array of subregions).
Type | Name | Default | Description |
---|---|---|---|
replaceable model Subregion | FCSys.Subregions.SubregionNo… | Base subregion model | |
Length | D | 1.5*U.mm | Hydraulic diameter of the channel [L] |
Geometry | |||
Length | L_x[:] | {8}*U.mm | Lengths along the x axis [L] |
Length | L_y[:] | {8}*U.cm | Lengths along the y axis [L] |
Length | L_z[:] | {6.25}*U.cm | Lengths across the z axis [L] |
NumberAbsolute | epsilon | 0.0625 | Fraction of volume for the fluid [1] |
Assumptions | |||
Included transport axes | |||
Boolean | inclTransX | true | X |
Boolean | inclTransY | true | Y |
Boolean | inclTransZ | false | Z |
Type | Name | Description |
---|---|---|
replaceable model Subregion | Base subregion model | |
BoundaryBus | xNegative[n_y, n_z] | Negative boundary along the x axis |
BoundaryBus | xPositive[n_y, n_z] | Positive boundary along the x axis |
BoundaryBus | yNegative[n_x, n_z] | Negative boundary along the y axis |
BoundaryBus | yPositive[n_x, n_z] | Positive boundary along the y axis |
BoundaryBus | zNegative[n_x, n_y] | Negative boundary along the z axis |
BoundaryBus | zPositive[n_x, n_y] | Positive boundary along the z axis |
model CaFP "Cathode flow plate" import Modelica.Constants.inf; // extends FCSys.Icons.Names.Top4; extends Region( L_x={8}*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), gasLiq(k_Phi={inf,1e6,inf},k_Q=inf), gas( common(k_Phi={inf,inf,inf}), k={epsilon/2,11,1/11}, inclH2O=true, inclN2=true, inclO2=true, H2O( upstreamX=false, Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4}, zeta=100*Characteristics.H2O.Gas.zeta(), T(stateSelect=StateSelect.always)), N2( upstreamX=false, Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4}, zeta=100*Characteristics.N2.Gas.zeta(), 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}, zeta=100*Characteristics.O2.Gas.zeta(), 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={epsilon/2,11,1/11}, inclH2O=true, H2O( upstreamX=false, Nu_Phi={4,16*A[Axis.z]*epsilon/D^2,4}, epsilon_IC=1e-5)), volume(inclCapillary=false))); parameter Q.NumberAbsolute epsilon(nominal=1) = 0.0625 "Fraction of volume for the fluid"; parameter Q.Length D=1.5*U.mm "Hydraulic diameter of the channel"; protected 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;