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 [1]:
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[1]:
{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 [2]:
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 [3]:
print('Recycle Ratio = ', (soln[n9] + soln[n10])/nfeed)
Recycle Ratio =  9.00650900900901

Single Pass Conversion

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