pub struct FuelCellStack {
pub e_rev: f64,
pub i0: f64,
pub tafel_slope: f64,
pub r_ohmic: f64,
pub i_lim: f64,
pub m_conc: f64,
pub n_conc: f64,
}Expand description
Hydrogen PEM fuel cell polarisation curve model.
Total overpotential = activation loss + ohmic loss + concentration loss.
Fields§
§e_rev: f64Reversible (Nernst) cell voltage [V]
i0: f64Exchange current density i₀ [A/m²]
tafel_slope: f64Tafel slope for activation loss [V/decade] (positive value)
r_ohmic: f64Ohmic area-specific resistance [Ω·m²]
i_lim: f64Limiting current density i_L [A/m²]
m_conc: f64Concentration loss empirical coefficient m [V]
n_conc: f64Concentration loss empirical coefficient n [m²/A]
Implementations§
Source§impl FuelCellStack
impl FuelCellStack
Sourcepub fn new(
e_rev: f64,
i0: f64,
tafel_slope: f64,
r_ohmic: f64,
i_lim: f64,
m_conc: f64,
n_conc: f64,
) -> Self
pub fn new( e_rev: f64, i0: f64, tafel_slope: f64, r_ohmic: f64, i_lim: f64, m_conc: f64, n_conc: f64, ) -> Self
Create a new fuel cell stack model.
Sourcepub fn activation_loss(&self, j: f64) -> f64
pub fn activation_loss(&self, j: f64) -> f64
Activation overpotential [V] at current density j [A/m²].
η_act = tafel_slope · log10(j / i0)
Sourcepub fn ohmic_loss(&self, j: f64) -> f64
pub fn ohmic_loss(&self, j: f64) -> f64
Ohmic overpotential [V] at current density j [A/m²].
η_ohm = R_ohmic · j
Sourcepub fn concentration_loss(&self, j: f64) -> f64
pub fn concentration_loss(&self, j: f64) -> f64
Concentration overpotential [V] at current density j [A/m²].
η_conc = m · exp(n · j)
Sourcepub fn cell_voltage(&self, j: f64) -> f64
pub fn cell_voltage(&self, j: f64) -> f64
Cell terminal voltage [V] at current density j [A/m²].
V = E_rev − η_act − η_ohm − η_conc
Returns 0.0 if j ≥ i_lim (cell has stalled).
Sourcepub fn power_density(&self, j: f64) -> f64
pub fn power_density(&self, j: f64) -> f64
Power density [W/m²] at current density j [A/m²].
Sourcepub fn efficiency(&self, j: f64) -> f64
pub fn efficiency(&self, j: f64) -> f64
Efficiency relative to reversible voltage.
η = V_cell / E_rev
Trait Implementations§
Source§impl Clone for FuelCellStack
impl Clone for FuelCellStack
Source§fn clone(&self) -> FuelCellStack
fn clone(&self) -> FuelCellStack
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more