diff --git a/examples/soec_syngas.md b/examples/soec_syngas.md index a1f834e..b939294 100644 --- a/examples/soec_syngas.md +++ b/examples/soec_syngas.md @@ -3,8 +3,8 @@ This example shows a 1D isothermal SOEC (Solid oxide electrolyzer cell) model. Converting CO2 and H2 into syngas. -The operating parameters chosen here are not necessary realistic. Under the example -condition the formation of solid carbon is very likely. +The operating parameters chosen here are not necessarily realistic. For example, +a utilization of 0.95 causes issues with the formation of solid carbon. ```python import gaspype as gp @@ -13,8 +13,8 @@ import numpy as np import matplotlib.pyplot as plt ``` -Calculation of the local equilibrium compositions on the fuel and air -side in counter flow along the fuel flow direction: +Calculate equilibrium compositions for fuel and air sides in counter flow +along the fuel flow direction: ```python utilization = 0.95 air_dilution = 0.2 @@ -66,6 +66,14 @@ ax.plot(conversion, np.stack([o2_fuel_side, o2_air_side], axis=1), '-') ax.legend(['o2_fuel_side', 'o2_air_side']) ``` + +The high oxygen partial pressure at the inlet is in reality lower. +The assumption that gas inter-diffusion in the flow direction is slower +than the gas velocity does not hold this very high gradient. However +often the oxygen partial pressure is still to high to prevent oxidation of the +cell/electrode. This can be effectively prevented by recycling small amounts of +the output gas. + Calculation of the local nernst potential between fuel and air side: ```python z_O2 = 4 @@ -94,13 +102,13 @@ physical distance between the nodes (**dz**) must be calculated: cell_voltage = 1.3 # V ASR = 0.2 # Ohm*cm² -node_current = (nernst_voltage - cell_voltage) / ASR # mA/cm² (Current density at each node) +node_current = (nernst_voltage - cell_voltage) / ASR # A/cm² (Current density at each node) -current = (node_current[1:] + node_current[:-1]) / 2 # mA/cm² (Average current density between the nodes) +current = (node_current[1:] + node_current[:-1]) / 2 # A/cm² (Average current density between the nodes) dz = 1/current / np.sum(1/current) # Relative distance between each node -terminal_current = np.sum(current * dz) # mA/cm² (Total cell current per cell area) +terminal_current = np.sum(current * dz) # A/cm² (Total cell current per cell area) print(f'Terminal current: {terminal_current:.2f} A/cm²') ``` diff --git a/examples/sofc_methane.md b/examples/sofc_methane.md index 0f643ce..e0e3896 100644 --- a/examples/sofc_methane.md +++ b/examples/sofc_methane.md @@ -2,7 +2,10 @@ This example shows a 1D isothermal SOFC (Solid oxide fuel cell) model. -The operating parameters chosen here are not necessary realistic. +The operating parameters chosen here are not necessarily realistic due to +constraints not included in this model. Under the example condition the +formation of solid carbon is for example very likely. A pre-reforming step +is typically applied when operating on methane. ```python import gaspype as gp @@ -11,8 +14,8 @@ import numpy as np import matplotlib.pyplot as plt ``` -Calculation of the local equilibrium compositions on the fuel and air -side in counter flow along the fuel flow direction: +Calculate equilibrium compositions for fuel and air sides +in counter flow along the fuel flow direction: ```python fuel_utilization = 0.90 air_utilization = 0.5 @@ -66,7 +69,7 @@ ax.legend(['o2_fuel_side', 'o2_air_side']) Calculation of the local nernst potential between fuel and air side: ```python -z_O2 = 4 +z_O2 = 4 # Number of electrons transferred per O2 molecule nernst_voltage = R*t / (z_O2*F) * np.log(o2_air_side/o2_fuel_side) ``` @@ -92,13 +95,13 @@ physical distance between the nodes (**dz**) must be calculated: cell_voltage = 0.77 # V ASR = 0.2 # Ohm*cm² -node_current = (nernst_voltage - cell_voltage) / ASR # mA/cm² (Current density at each node) +node_current = (nernst_voltage - cell_voltage) / ASR # A/cm² (Current density at each node) -current = (node_current[1:] + node_current[:-1]) / 2 # mA/cm² (Average current density between the nodes) +current = (node_current[1:] + node_current[:-1]) / 2 # A/cm² (Average current density between the nodes) dz = 1/current / np.sum(1/current) # Relative distance between each node -terminal_current = np.sum(current * dz) # mA/cm² (Total cell current per cell area) +terminal_current = np.sum(current * dz) # A/cm² (Total cell current per cell area) print(f'Terminal current: {terminal_current:.2f} A/cm²') ```