Example description fixed
This commit is contained in:
parent
095806cfe6
commit
1a6fe421bc
|
@ -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²')
|
||||||
```
|
```
|
||||||
|
|
|
@ -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²')
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue