Name | Description |
---|---|
Examples | Examples |
Electrochemistry | Models associated with electrochemical reactions |
HOR | Hydrogen oxidation reaction |
ORR | Oxygen reduction reaction |
Capillary | Young-Laplace model for capillary pressure |
CapillaryVolume | Volume with capillary pressure applied to the liquid |
H2 ⇌ 2e- + 2H+ |
Type | Name | Default | Description |
---|---|---|---|
Integer | n_trans | Number of components of translational momentum |
Type | Name | Description |
---|---|---|
Chemical | 'cheme-' | Connector for e- |
Chemical | 'chemH+' | Connector for H+ |
Chemical | chemH2 | Connector for H2 |
model HOR "Hydrogen oxidation reaction" extends FCSys.Icons.Names.Top2; constant Integer n_trans(min=0, max=3) "Number of components of translational momentum"; // Note: This must be a constant rather than a parameter due to errors in // Dymola 2014. Conditions.Adapters.ChemicalReaction 'e-'( final n_trans=n_trans, m=Characteristics.'e-'.Gas.m, n=-2); Conditions.Adapters.ChemicalReaction 'H+'( final n_trans=n_trans, m=Characteristics.'H+'.Gas.m, n=-2); Conditions.Adapters.ChemicalReaction H2( final n_trans=n_trans, m=Characteristics.H2.Gas.m, n=1); Connectors.Chemical 'cheme-'(redeclare final constant Integer n_trans=n_trans) "Connector for e-"; Connectors.Chemical 'chemH+'(redeclare final constant Integer n_trans=n_trans) "Connector for H+"; Connectors.Chemical chemH2(redeclare final constant Integer n_trans=n_trans) "Connector for H2"; // Note: These redeclarations are necessary due to errors in Dymola 2014. equation connect(chemH2, H2.chemical); connect('e-'.chemical, 'cheme-'); connect('H+'.chemical, 'chemH+'); connect(H2.reaction, 'e-'.reaction); connect('H+'.reaction, H2.reaction); end HOR;
4e- + 4H+ + O2 ⇌ 2H2O |
Type | Name | Default | Description |
---|---|---|---|
Integer | n_trans | Number of components of translational momentum |
Type | Name | Description |
---|---|---|
Chemical | 'cheme-' | Connector for e- |
Chemical | 'chemH+' | Connector for H+ |
Chemical | chemO2 | Connector for O2 |
Chemical | chemH2O | Connector for H2O |
model ORR "Oxygen reduction reaction" extends FCSys.Icons.Names.Top2; constant Integer n_trans(min=0, max=3) "Number of components of translational momentum"; // Note: This must be a constant rather than a parameter due to errors in // Dymola 2014. Conditions.Adapters.ChemicalReaction 'e-'( final n_trans=n_trans, m=Characteristics.'e-'.Gas.m, reaction(Ndot(stateSelect=StateSelect.prefer)), n=4); Conditions.Adapters.ChemicalReaction 'H+'( final n_trans=n_trans, m=Characteristics.'H+'.Gas.m, n=4); Conditions.Adapters.ChemicalReaction O2( final n_trans=n_trans, m=Characteristics.O2.Gas.m, n=1); Conditions.Adapters.ChemicalReaction H2O( final n_trans=n_trans, m=Characteristics.H2O.Gas.m, n=-2); Connectors.Chemical 'cheme-'(redeclare final constant Integer n_trans=n_trans) "Connector for e-"; Connectors.Chemical 'chemH+'(redeclare final constant Integer n_trans=n_trans) "Connector for H+"; Connectors.Chemical chemO2(redeclare final constant Integer n_trans=n_trans) "Connector for O2"; Connectors.Chemical chemH2O(redeclare final constant Integer n_trans=n_trans) "Connector for H2O"; // Note: These redeclarations are necessary due to errors in Dymola 2014. equation connect('H+'.chemical, 'chemH+'); connect('e-'.chemical, 'cheme-'); connect(O2.chemical, chemO2); connect(H2O.chemical, chemH2O); connect('e-'.reaction, H2O.reaction); connect('H+'.reaction, H2O.reaction); connect(O2.reaction, H2O.reaction); end ORR;
The characteristic radius (R) is the harmonic mean of the (2) principle radii of the liquid volume.
The default surface tension (γ = 0.0663 N/m) is for saturated water at 60 °C, interpolated from [Incropera2002, pp. 924]. Note that the surface tension in [Wang2001] is incorrect (likely unit conversion error).
Extends from FCSys.Icons.Names.Top2.
Type | Name | Default | Description |
---|---|---|---|
Geometry | |||
Length | R | U.um | Effective radius [L] |
Material properties | |||
SurfaceTension | gamma | 0.0663*U.N/U.m | Surface tension [M/T2] |
Angle | theta | 140*U.degree | Contact angle [A] |
Type | Name | Description |
---|---|---|
Amagat | wetting | Interface to the wetting phase |
Amagat | nonwetting | Interface to the nonwetting phase |
model Capillary "Young-Laplace model for capillary pressure" extends FCSys.Icons.Names.Top2; // Geometry parameter Q.Length R=U.um "Effective radius"; // Material properties parameter Q.SurfaceTension gamma=0.0663*U.N/U.m "Surface tension"; parameter Q.Angle theta=140*U.degree "Contact angle"; // Auxiliary variables (for analysis only) Q.Pressure Deltap=wetting.p - nonwetting.p if environment.analysis "Pressure difference due to surface tension"; Connectors.Amagat wetting "Interface to the wetting phase"; Connectors.Amagat nonwetting "Interface to the nonwetting phase"; protected outer Conditions.Environment environment "Environmental conditions"; equation // Pressure relation nonwetting.p = wetting.p + 2*gamma*cos(theta)/R "Young-Laplace equation"; // Conservation (without storage) 0 = wetting.V + nonwetting.V "Volume"; end Capillary;
The default surface tension (γ = 0.0663 N/m) is for saturated water at 60 °C, interpolated from [Incropera2002, pp. 924]. Note that the surface tension in [Wang2001] is incorrect (likely unit conversion error).
The default permeability (κ = 6.46×10-5 mm2) is based on the air permeability of SGL Carbon Group Sigracet® 10 BA [SGL2007]. Wang et al. use κ = 10-5 mm2 [Wang2001].
The default contact angle (θ = 140°) is typical of the GDL measurements listed at http://www.chem.mtu.edu/cnlm/research/Movement_of_Water-in_Fuel_Cell_Electrodes.htm (accessed Nov. 22, 2103).
Extends from FCSys.Icons.Names.Top3.
Type | Name | Default | Description |
---|---|---|---|
Capillary | capillary | Capillary model | |
Geometry | |||
Volume | V | Volume [L3] | |
Included phases | |||
Boolean | inclGas | true | Gas |
Boolean | inclLiquid | true | Liquid |
Boolean | inclSolid | true | Solid |
Capillary pressure | |||
Boolean | inclCapillary | false | Include capillary pressure |
Type | Name | Description |
---|---|---|
Dalton | gas | Interface to the gas phase |
Amagat | liquid | Interface to the liquid phase |
Amagat | solid | Interface to the solid phase |
model CapillaryVolume "Volume with capillary pressure applied to the liquid" extends FCSys.Icons.Names.Top3; // Material properties parameter Q.Volume V "Volume"; // Material properties parameter Boolean inclGas=true "Gas"; parameter Boolean inclLiquid=true "Liquid"; parameter Boolean inclSolid=true "Solid"; // Capillary pressure parameter Boolean inclCapillary=false "Include capillary pressure"; Capillary capillary if inclLiquid and inclCapillary "Capillary model"; // Alias variables (for common terms) Q.Volume V_pore "Pore volume"; // Auxiliary variables (for analysis) output Q.NumberAbsolute x(final stateSelect=StateSelect.never) = liquid.V/( gas.V + liquid.V) if inclLiquid and inclGas and environment.analysis "Liquid saturation"; Connectors.Dalton gas if inclGas "Interface to the gas phase"; Connectors.Amagat liquid if inclLiquid "Interface to the liquid phase"; Connectors.Amagat solid "Interface to the solid phase"; Conditions.ByConnector.Amagat.VolumeFixed volume(final V=V) if inclGas or inclLiquid "Fixed volume"; protected Conditions.Adapters.AmagatDalton amagatDalton if inclGas or (inclSolid and not inclLiquid) "Adapter between additivity of volume and additivity of gas pressure"; outer Conditions.Environment environment "Environmental conditions"; equation // Aliases V = V_pore + solid.V; if not inclCapillary then connect(liquid, volume.amagat) "Directly connect liquid to the volume (not shown in diagram)"; end if; connect(capillary.wetting, liquid); connect(solid, amagatDalton.amagat); connect(volume.amagat, amagatDalton.amagat); connect(gas, amagatDalton.dalton); connect(capillary.nonwetting, volume.amagat); end CapillaryVolume;