Engineering With Python Rotating Header Image

Solution of Equilibrium Equations – Problem Description


This is from E.M. Rosen and R. N. Adams, “A Review of Spreadsheet Usage in Chemical Engineering Calculations”, Computers and Chemical Engineering, Vol. 11, No. 6, pp. 723-736, but they took it from Henley and Rosen, “Materal and Energy Balance Computations”, Wiley, NY 1969 pg. 376.  I will also be using information from C. G. Hill, “An Introduction to Chemical Engineering Kinetics and Reactor Design”, John Wiley and Sons, NY 1977, Chapter 2

Problem Description:

Rosen and Adams were using the spreadsheet to solve for the ‘roots’ of a series of equilibrium material balances.  Typically, you have equilibrium coefficients (Kp) that you use to set up the equations for solution.  If you are lucky, you also know how the K-values change with temperature and pressure.   They didn’t really describe much beyond what components were involved and that they were going to use a damped Newton-Raphson method.  They used the spreadsheet to set up the data, take the first derivative and then iterate to solve for the roots.

Essentially, you’ll be solving for the roots of the equilibrium material balance equations:

CH4 + H2O = CO + 3H2 (Reaction 1)

CO + H2O = CO2 + H2 (Reaction 2)

Here, we are writing the equilibrium mole number in terms of an “equilibrium degree of reaction advancement_i)”.  Essentially, it is based on the stoichiometry and is defined as (Hill, Chapter 2):

ni = ni0 + [νi*xi]rxn1 + [νi*xi]rxn2 + …..

ni = equilibrium number of moles component i

ni0 = initial number of moles component i

νi = stoichiometric coefficients of component i in rxn 1

xi = reaction ‘advancement’ coefficient of rxn 1

and the others defined accordingly.

Equilibrium Number of Moles:

n_CH4 = n_CH4_int – x_1
n_H2O = n_H2O_int – x_1 – x_2
n_CO = n_CO_int + x_1 – x_2
n_H2 = n_H2_int +3*x_1 + x_2
n_CO2 = n_CO2_int + x_2

Total Number of Moles (add up all of the components):

n_tot = (n_CH4_int + n_H2O_int + n_CO_int + n_H2_int + n_CO2_int) + 2*x_1

Remember Partial Pressures (Use CH4 as an example):

yCH2 = (n_CH4/n_tot)*P

P = pressure, atm

other components defined the same way

Equilibrium Reactions Written to Solve for Roots:

f1 = (y_CO*P)*(y_H2*P)**3 – k_1*(y_CH4*P)*(y_H2O*P)
f2 = (y_CO2*P)*(y_H2*P) – k_2*(y_CO*P)*(y_H2O*P)

Problem Data:

Kp1 = 0.54 atm

Kp2 = 2.49 atm

P = 1.0 atm

Initial Number of Moles:

n_CH4_int = 6.0 moles

n_H2O_int = 5.0 moles

n_CO_int = 0.0 moles

n_CO2_int = 0.0 moles

n_H2_int = 0.0 moles

Okay, whew… I think that is all we need to start setting up to solve the problem.  See you at the next post.

Leave a Reply