This notebook contains course material from CBE20255 by Jeffrey Kantor (jeff at nd.edu); the content is available on Github. The text is released under the CC-BY-NC-ND-4.0 license, and code is released under the MIT license.

# Dehydrogenation of Propane¶

(Example 4.7-2 from Felder, et al.)

Propane can be dehydrogenated to form propylene in a catalytic reactor:

$$C_3H_8 \longrightarrow C_3H_6 + H_2$$

A process is to be designed for a 95% overall conversion of propane. The reaction products are separated into two streams: the first, which contains H2, C3H6, and 0.555% of the propane that leaves the reactor, is taken off as product; the second stream, which contains the balance of the unreacted propane and propylene in an amount equal to 5% of that in the first stream, is recycled to the reactor. Calculate the composition of the product, the ratio (moles recycled)/(mole fresh feed), and the single-pass conversion.

## Process Model¶

In :
from sympy import *

# define constants

nfeed = 100.0

# define variables

var('X')
var('n1:11')

# define constants

# unit balances

mixer = [
Eq(nfeed + n9, n1),     # C3H8
Eq(n10, n2)             # C3H6
]

reactor = [
Eq(n3, n1 - X),         # C3H8
Eq(n4, n2 + X),         # C3H6
Eq(n5, X)               # H2
]

separator = [
Eq(n3, n6 + n9),        # C3H8
Eq(n4, n7 + n10),       # C3H6
Eq(n5, n8)              # H2
]

# process specifications

specs = [
Eq(n6, (1-0.95)*nfeed), # 95% process conversion
Eq(n6, 0.00555*n3),     # 0.555% of propane recovered in propylene product
Eq(n10, 0.05*n7)        # propylene recycle is 5% of outlet flow
]

soln = solve(mixer + reactor + separator + specs)
soln

Out:
{X: 95.0000000000000,
n1: 995.900900900901,
n10: 4.75000000000000,
n2: 4.75000000000000,
n3: 900.900900900901,
n4: 99.7500000000000,
n5: 95.0000000000000,
n6: 5.00000000000000,
n7: 95.0000000000000,
n8: 95.0000000000000,
n9: 895.900900900901}

### Product Composition¶

In :
nTotal = soln[n6] + soln[n7] + soln[n8]
print('C3H8 Product = ', round(100*soln[n6]/nTotal,2), '%')
print('C3H6 Product = ', round(100*soln[n7]/nTotal,2), '%')
print('  H2 Product = ', round(100*soln[n8]/nTotal,2), '%')

C3H8 Product =  2.56 %
C3H6 Product =  48.72 %
H2 Product =  48.72 %


### Recycle Ratio¶

In :
print('Recycle Ratio = ', (soln[n9] + soln[n10])/nfeed)

Recycle Ratio =  9.00650900900901


### Single Pass Conversion¶

In :
print('Single Pass Conversion', (soln[n1] - soln[n3])/soln[n1])

Single Pass Conversion 0.0953910172328011

In [ ]: