Pyrolysis number

Functions are available to calculate the Biot and pyrolysis numbers PyI and PyII as shown below.

h = 500         # convective heat transfer coefficient in W/(m²⋅K)
d = 0.00001     # biomass particle diameter in meters
k = 0.12        # biomass thermal conductivity in W/(m⋅K)

kr = 1.4        # reaction rate constant in 1/s
rho = 540       # biomass density in kg/m³
cp = 3092.8     # biomass heat capacity in J/(kg⋅K)

r = d / 2
biot = cm.biot(h, r, k)
pyI = cm.pyrolysis_one(k, kr, rho, cp, r)
pyII = cm.pyrolysis_two(h, kr, rho, cp, r)

print(f'Biot number is {biot:.4f}')
print(f'PyI number is {pyI:.2f}')
print(f'PyII number is {pyII:.2f}')
Biot number is 0.0208
PyI number is 2052.90
PyII number is 42.77

The Biot and pyrolysis numbers can be used to create a regime map for a biomass particle as shown here.

h = 500         # convective heat transfer coefficient in W/(m²⋅K)
d = 0.00001     # biomass particle diameter in meters
k = 0.12        # biomass thermal conductivity in W/(m⋅K)

kr = 1.4        # reaction rate constant in 1/s
rho = 540       # biomass density in kg/m³
cp = 3092.8     # biomass heat capacity in J/(kg⋅K)

r = d / 2
biot = cm.biot(h, r, k)
pyI = cm.pyrolysis_one(k, kr, rho, cp, r)
pyII = cm.pyrolysis_two(h, kr, rho, cp, r)

if biot < 1.0:
    py = pyII
else:
    py = pyI

fig, ax = plt.subplots(tight_layout=True)
ax.plot(biot, py, 'r^')
ax.set_xlabel('Biot Number, Bi [-]')
ax.set_ylabel('Pyrolysis Number, Py [-]')

ax.text(0.2, 0.91, 'kinetics limited\nisothermal', ha='center', transform=ax.transAxes)
ax.text(0.8, 0.91, 'kinetics limited\nnon-isothermal', ha='center', transform=ax.transAxes)
ax.text(0.2, 0.03, 'convection limited', ha='center', transform=ax.transAxes)
ax.text(0.8, 0.03, 'conduction limited', ha='center', transform=ax.transAxes)

ax.axvline(1, c='k', ls='-.')
ax.axvspan(10**-1, 10**1, color='0.9')
ax.axhline(1, c='k', ls='-.')
ax.axhspan(10**-1, 10**1, color='0.9')
ax.grid(color='0.9')
ax.set_frame_on(False)
ax.set_xlim(10**-4, 10**4)
ax.set_ylim(10**-4, 10**4)
ax.set_xscale('log')
ax.set_yscale('log')
ax.tick_params(color='0.9')
plt.minorticks_off()

plt.show()
../_images/pyrolysis_number-1.pdf