The liquid-phase reaction of triphenyl methyl chloride (trityl) (A) and methanol (B)
(CX6HX5)X3CCl+CHX3OH(CX6HX5)X3COCHX3+HCl
A+BC+D
was carried out in a batch reactor at 25°C in a solution of benzene and pyridine in an excess of methanol CB0=0.5dm3mol. (We need to point out that this batch reactor was purchased at the Sunday market in Rijca, Jofostan.) Pyridine reacts with HCl, which then precipitates as pyridine hydro-chloride thereby making the reaction irreversible. The reaction is first order in methanol. The concentration of triphenyl methyl chloride (A) was measured as a function of time and is shown below (Table 1)
Table 1: Raw data
t (min)
CA(mol/dm3)
0
0.05
50
0.038
100
0.0306
150
0.0256
200
0.0222
250
0.0195
300
0.0174
Determine the reaction order with respect to triphenyl methyl chloride.
In a separate set of experiments, the reaction order wrt methanol was found to be first order. Determine the specific reaction-rate constant.
Solution
Part (1) Find the reaction order with respect to trityl.
Step 1 Postulate a rate law.
−rA=kCAαCBβ(1)
Step 2 Process your data in terms of the measured variable, which in this case is CA.
Step 3 Look for simplifications. Because the concentration of methanol is 10 times the initial concentration of triphenyl methyl chloride, its concentration is essentially constant
Reaction order is = 2, and k is 0.292 (dm3/mol)2/min.
Rate law is −rA= 0.292 CA2CB
Integral analysis
Use the integral method to confirm that the reaction is second order with regard to triphenyl methyl chloride
Solution
import numpy as npfrom scipy.stats import linregressimport matplotlib.pyplot as plt# DataC_B0 =0.5# mol/dm^3t = np.array([0, 50, 100, 150, 200, 250, 300])C_A = np.array([0.05, 0.038, 0.0306, 0.0256, 0.0222, 0.0195, 0.0174])C_A0 = C_A[0]ln_ca0_by_ca = np.log(C_A0/C_A)one_by_ca =1/C_A# Plotting# C_A vs tplt.plot(t, C_A, 'bo-')plt.title('0th order test: Concentration of A vs. Time')plt.xlabel('Time (min)')plt.ylabel('Concentration of A ($mol/dm^3$)')plt.xlim(0,300)plt.show()# ln(C_A0/C_A) vs tplt.plot(t, ln_ca0_by_ca, 'ro-')plt.title('1st order test: $\ln(C_A0/C_A)$ vs. Time')plt.xlabel('Time (min)')plt.ylabel('$\ln(C_A0/C_A)$')plt.xlim(0,300)plt.show()# 1/C_A vs tplt.plot(t, one_by_ca, 'go-')plt.title('2nd order test: $1/C_A$ vs. Time')plt.xlabel('Time (min)')plt.ylabel('$1/C_A (dm^3/mol)$')plt.xlim(0,300)plt.show()
As the plot of 1/CA vs. t is linear, the reaction is second order with respect to A.
Use of Regression to Find the Rate-Law Parameters
Use polynomial regression to estimate rate equation. Assume the reaction order is not 1.
Solution
For constant volume batch reactor,
dtdCA=−k′CAα
and integrating with the initial condition when t=0 and CA=CA0 for α=1.0 gives us:
t=k′1[1−αCA0(1−α)−CA(1−α)]
We want to minimize s2 to give α and k′.
s2=i=1∑N(tim−tic)2
import numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import minimize# DataC_B0 =0.5# mol/dm^3t = np.array([0, 50, 100, 150, 200, 250, 300])C_A = np.array([0.05, 0.038, 0.0306, 0.0256, 0.0222, 0.0195, 0.0174])C_A0 = C_A[0]# Initial guesses of k and n# here k is the clubbed constant k * C_B0k =1n =0# Objective function to minimize: the difference between t (experimental) and t (model)def objective(params): k, n = params# Calculate t model t_model = (1/k) * (C_A0**(1-n) - C_A**(1-n))/ (1-n) ssr = np.sum((t - t_model)**2) # Sum of squared residualsreturn ssr# Minimize the objective functionresult = minimize(objective, [k,n], bounds=[(1e-4, 1e4), (0, 5)])# Extract the resultsk_opt, n_opt = result.xsuccess = result.success# Check if the solution was successfulifnot success:print("Optimization was not successful. Try different initial guesses or methods.")# final evaluationt_model = (1/k_opt) * (C_A0**(1-n_opt) - C_A**(1-n_opt))/ (1-n_opt)# plot the dataplt.plot(t, C_A, 'o', label='Experiment')plt.plot(t_model, C_A, '-', label='model')plt.xlabel('$t (min)$')plt.ylabel('$C_A (mol/dm^3)$')plt.legend()plt.grid(True)plt.xlim(min(t),max(t))plt.show()
Initial guess for Reaction order is = 0.00, and k is 1.000e+00.
Optimized value of Reaction order is = 2.04, and k is 2.934e-01.
Method of initial rates
The dissolution of dolomite using hydrochloric acid:
Concentration of HCl at various times was determined from atomic absorption spectrophotometer measurements of the CaX2+ and MgX2+ ions (Table 2). Determine the rate constant and order of reaction.
Table 2: HCL concentration
CHCl,0 (N)
Initial reaction rate −rHCl,0 (mol/cm2s×107)
1
1.2
4
2.0
2
1.36
0.1
0.36
0.5
0.74
Solution
The mole balance for constant V batch reactor at t = 0:
Using a Differential Reactor to Obtain Catalytic Rate Data
The formation of methane from carbon monoxide and hydrogen using a nickel catalyst was studied by Pursley. The reaction
3HX2+CONiCHX4+HX2O
was carried out at 500 °F in a differential reactor where the effluent concentration of methane was measured. The raw data is shown in Table 3
Table 3: Raw data
Run
PCO (atm)
PH2 (atm)
CCH4(mol/dm3)×104
1
1
1.0
1.73
2
1.8
1.0
4.40
3
4.08
1.0
10.0
4
1.0
0.1
1.65
5
1.0
0.5
2.47
6
1.0
4.0
1.75
The exit volumetric flow rate from a differential packed bed containing 10 g of catalyst was maintained at 300 dm3/min for each run. The partial pressures of HX2 and CO were determined at the entrance to the reactor, and the methane concentration was measured at the reactor exit. Determine the rate law and rate law parameters.
Solution
Reaction temperature: 500°F (isothermal reaction)
Weight of catalyst : ΔW = 10 g
Exit volumetric flow rate v = 300 dm3/min
The reaction-rate law is assumed to be the product of a function of the partial pressure of CO and a function of the partial pressure of HX2,
rCH4′=f(CO)×g(H2)
For the first 3 experiments, PH2 is constant. We use this data to determine the dependence on PCO.
For the experiments 1, 4, 5, 6, PCO is constant. We use this data to determine the dependence on PH2
The rate in a differential reactor is given by
−rA′=ΔWFp
−rCO′=rCH4′=ΔWFCH4
For constant H2 partial pressure,
rCH4′=k′PCOα
Taking log ln(rCH4′)=lnk′+αlnPCO
For constant CO partial pressure,
rCH4′=g(H2)
From the data:
At low H2 partial pressures, where rCH4′ increases as PH2 increases, the rate law may be of the form
rCH4′∝PH2β1(3)
At high H2 partial pressures,where rCH4′ decreases as PH2 increases, the rate law may be of the form
If we assume hydrogen undergoes dissociative adsorption on the catalyst surface, we would expect a dependence on the partial pressure of hydrogen to be to the 1/2 power. Because 0.61 is close to 0.5, we are going to regress the data again, setting β1=1/2 and β2 = 1.0.
# Objective function to minimize: the difference between rate (experimental) and rate (calculated)def objective2(params, *args): a, b = params pco, ph2,rate_obs = args# calculate rate rate_c = (a * pco * ph2**0.5)/ (1+ b * ph2)return rate_obs - rate_c# Initial guessesa =1b =1guess = np.array([a,b])bounds = ( [1e-3, 1e-3], # lower bound [1e3, 1e3] # upper bound)args = (pco, ph2, rate)# Minimize the objective functionresult = least_squares(objective2, guess, args=args, bounds=bounds)# Extract the results# Results from Fogler 5e# a_opt = 0.018# b_opt = 1.49a_opt, b_opt = result.xrate_c = (a_opt * pco * ph2**0.5)/ (1+ b_opt * ph2)lin_e = pco*ph2**0.5/ratelin_c = pco*ph2**0.5/rate_c# plot the dataplt.plot(ph2, lin_e, 'o', label='Experimental rate')plt.plot(ph2, lin_c, '-', label='Fitted rate')plt.annotate(f'a= {a_opt:.4f}\n'\f'b = {b_opt:.4f}', xy=(0.7, 0.5), xycoords='axes fraction', fontsize=12)plt.xlabel('$P_{H_2}$ (atm)')plt.ylabel('$\\frac{P_{CO} P_{H_2}^0.5}{r\'_{CH_4}}$')plt.legend()plt.show()
The final constants are:
a = 0.0180
b = 1.4880
Citation
BibTeX citation:
@online{utikar2024,
author = {Utikar, Ranjeet},
title = {In Class Activity: {Collection} and Analysis of Rate Data},
date = {2024-03-23},
url = {https://cre.smilelab.dev/content/notes/05-collection-and-analysis-of-rate-data/in-class-activities.html},
langid = {en}
}