Example description fixed

This commit is contained in:
Nicolas Kruse 2025-07-03 15:07:43 +02:00 committed by Nicolas Kruse
parent ac026600c5
commit 73627613ac
2 changed files with 25 additions and 14 deletions

View File

@ -3,8 +3,8 @@
This example shows a 1D isothermal SOEC (Solid oxide electrolyzer cell) model. This example shows a 1D isothermal SOEC (Solid oxide electrolyzer cell) model.
Converting CO2 and H2 into syngas. Converting CO2 and H2 into syngas.
The operating parameters chosen here are not necessary realistic. Under the example The operating parameters chosen here are not necessarily realistic. For example,
condition the formation of solid carbon is very likely. a utilization of 0.95 causes issues with the formation of solid carbon.
```python ```python
import gaspype as gp import gaspype as gp
@ -13,8 +13,8 @@ import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
``` ```
Calculation of the local equilibrium compositions on the fuel and air Calculate equilibrium compositions for fuel and air sides in counter flow
side in counter flow along the fuel flow direction: along the fuel flow direction:
```python ```python
utilization = 0.95 utilization = 0.95
air_dilution = 0.2 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']) 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: Calculation of the local nernst potential between fuel and air side:
```python ```python
z_O2 = 4 z_O2 = 4
@ -94,13 +102,13 @@ physical distance between the nodes (**dz**) must be calculated:
cell_voltage = 1.3 # V cell_voltage = 1.3 # V
ASR = 0.2 # Ohm*cm² 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 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²') print(f'Terminal current: {terminal_current:.2f} A/cm²')
``` ```

View File

@ -2,7 +2,10 @@
This example shows a 1D isothermal SOFC (Solid oxide fuel cell) model. 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 ```python
import gaspype as gp import gaspype as gp
@ -11,8 +14,8 @@ import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
``` ```
Calculation of the local equilibrium compositions on the fuel and air Calculate equilibrium compositions for fuel and air sides
side in counter flow along the fuel flow direction: in counter flow along the fuel flow direction:
```python ```python
fuel_utilization = 0.90 fuel_utilization = 0.90
air_utilization = 0.5 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: Calculation of the local nernst potential between fuel and air side:
```python ```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) 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 cell_voltage = 0.77 # V
ASR = 0.2 # Ohm*cm² 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 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²') print(f'Terminal current: {terminal_current:.2f} A/cm²')
``` ```