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.
(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.
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
{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}
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 %
print('Recycle Ratio = ', (soln[n9] + soln[n10])/nfeed)
Recycle Ratio = 9.00650900900901
print('Single Pass Conversion', (soln[n1] - soln[n3])/soln[n1])
Single Pass Conversion 0.0953910172328011