The aim of this study was to determine the dissociation constants (\(K_{a1}\) and \(K_{a2}\)) of an unknown diprotic acid, later identified as oxalic acid, using both experimental and analytical methods. Autotitration of the acid with sodium hydroxide was performed, generating titration and binding curves. The experimental Henderson-Hasselbalch method calculated \(K_{a1}\) and \(K_{a2}\) as 8.13E-3 and 7.24E-5, respectively, while the analytical binding model predicted values of 1.087E-4 and 3.191E-2. Comparison with oxalic acid’s known dissociation constants (5.1E-2 and 5.2E-5) revealed that the experimental approach yielded lower percent errors for both constants. Despite its theoretical appeal, the analytical method demonstrated higher deviations, likely due to sensitivity to data inaccuracy and model fitting. These findings emphasize the relative accuracy of experimental methods in determining dissociation constants, while highlighting the potential for improved computational models in future analyses.
Titrations are common laboratory techniques where the concentration of an acidic solution is determined through systematic reaction with a base of known concentration and analysis through stoichiometric ratios. A titration involves adding a small amount of the titrant base to the acidic solution incrementally until the reaction reaches its equivalence point, where the acid and base have reacted in exact stoichiometric proportions. The equivalence point is often detected using a pH indicator, which changes color at a specific pH range, or through a pH meter for more precise measurements. By measuring the volume of the base added to reach this point and knowing its concentration, the concentration of the acidic solution can be calculated using stoichiometric relationships derived from the balanced chemical equation of the reaction. The general form of a titration’s chemical equation is shown below:
\[ \textit{Equation 1: General Titration Equation} \] \[ HA + BOH \rightarrow AB + H_2O \]
There are several ways to perform a titration: manual, potentiometric, and auto titration. Previously, manual and potentiometric titration were performed in the laboratory to determine the unknown concentration of an acidic solution. Manual titration involved manually opening and closing a burette filled with titrant base to let small increments of base mix with the solution until the endpoint was reached. This process was performed for a monoprotic acid to determine the original concentration of the acidic solution. Potentiometric titration involved using a pH meter to precisely measure the pH of the solution as the titrant base was added incrementally. This method provided a more accurate determination of the equivalence point by enabling the generation of a titration curve, which shows the pH change as a function of the titrant volume added. The equivalence point was identified as the point of the steepest pH change on the curve, allowing for precise calculation of the acid concentration, pKa, and Ka using the Henderson-Hasselbalch equation according to the chemical equation and Ka expression shown below:
\[ \textit{Equations 2 & 3: Monoprotic Acid Dissociation Equation & Ka Expression} \] \[ HA \rightarrow H^+ + A^- \] \[ K_a = \frac{[H^+][A^-]}{[HA]} \]
While these methods have been reliable and common titration techniques, autotitration serves as a more automated and precise approach to titration. Unlike manual titration, where the base is added manually, autotitration uses an automated system to continuously add the titrant base, while simultaneously measuring the pH of the solution. This enables the generation of a titration curve in real-time, which helps to visualize the pH changes as the titrant is added and makes the process faster and more efficient. Autotitration systems also offer higher precision and reproducibility, as the automated process reduces human error and provides continuous data on the pH throughout the titration.
This is especially advantageous for more complex reactions, such as those involving diprotic acids. For a diprotic acid, two separate dissociation steps occur, each with its own equilibrium constant. The first dissociation involves the removal of the first proton from the diprotic acid, forming the conjugate base. The second dissociation step occurs when the conjugate base \(HA^-\) loses a second proton to form the \(A^{2-}\) ion. These first and second dissociations as well as their related Ka1 and Ka2 expressions are shown below:
\[ \textit{Equations 4 & 5: Diprotic Acid 1st Dissociation Equation and Ka1 Expression} \]
\[ H_2A \rightarrow H^+ + HA^- \] \[ K_{a1} = \frac{[H^+][HA^-]}{[H_2A]} \]
\[ \textit{Equations 6 & 7: Diprotic Acid 2nd Dissociation Equation and Ka2 Expression} \] \[ HA^- \rightarrow H^+ + A^{2-} \] \[ K_{a2} = \frac{[H^+][A^{2-}]}{[HA^-]} \]
An autotitration of 25 mL of a diprotic acid of unknown identity and concentration with 0.1 M sodium hydroxide (NaOH) was performed. Data was exported from the auto titrator for titrant volume added (mL) and pH levels throughout the autotitration for further analysis. \(K_{a1}\) and \(K_{a2}\) determination for diprotic acids involves analyzing the pH curve to identify the equivalence points for each dissociation step. These equivalence points correspond to the points at which the first and second protons are neutralized by the added base, and they can be used to calculate the acid dissociation constants \(K_{a1}\) and \(K_{a2}\).
In autotitration, the generated titration curve provides a continuous data set that allows for the precise identification of the pH at different points during the titration, including the inflection points that indicate the completion of each dissociation step. The first inflection point marks the completion of the first dissociation, while the second inflection point marks the completion of the second dissociation. By using these inflection points, the concentrations of the species involved can be determined, and the dissociation constants can be calculated.
Additionally, binding analysis can be a useful tool in determining the exact nature of the dissociation of diprotic acids. Binding analysis involves fitting the data from the titration curve to models that describe the binding of protons to the acid molecule. By analyzing the relationship between pH and the amount of titrant added, we can determine the values of \(K_{a1}\) and \(K_{a2}\) more accurately. The aim of this study was to accurately determine the dissociation constants (\(K_{a1}\) and \(K_{a2}\)) of an unknown diprotic acid by utilizing binding analysis alongside traditional experimental methods.
First, the titration curve for a diprotic acid auto titrated with 0.1 M sodium hydroxide (NaOH) was generated. The collected data, which includes the volume of NaOH added and the corresponding pH values, are used to generate the titration curve. This curve provides insight into the acid’s dissociation behavior, and identification of the key inflection points corresponding to each dissociation step. The following code imports the autotitration data and visualizes the titration curve for further analysis.
# Importing autotitration trial 2 csv data
my_data <- read.csv("DiproticTitrationData.csv")
# Extracting volume added data as vector
volume_added <- my_data$Volume
# Printing volume added vector
volume_added
## [1] 0.000 0.005 0.010 0.023 0.054 0.132 0.328 0.528 0.728 0.928
## [11] 1.128 1.328 1.528 1.728 1.928 2.128 2.328 2.528 2.728 2.928
## [21] 3.129 3.329 3.529 3.729 3.929 4.129 4.329 4.529 4.729 4.929
## [31] 5.129 5.329 5.529 5.729 5.929 6.129 6.329 6.529 6.729 6.929
## [41] 7.129 7.329 7.529 7.729 7.929 8.129 8.329 8.529 8.729 8.929
## [51] 9.129 9.329 9.529 9.730 9.930 10.130 10.330 10.530 10.730 10.930
## [61] 11.130 11.330 11.530 11.730 11.930 12.130 12.330 12.530
# Extracting pH data as vector
pH <- my_data$pH
# Printing pH vector
pH
## [1] 1.81 1.81 1.81 1.81 1.81 1.81 1.82 1.84 1.86 1.87 1.88 1.90 1.91 1.94 1.95
## [16] 1.98 1.99 2.02 2.04 2.07 2.09 2.13 2.15 2.18 2.22 2.24 2.29 2.33 2.38 2.42
## [31] 2.48 2.53 2.59 2.67 2.74 2.81 2.92 2.99 3.07 3.16 3.25 3.32 3.39 3.46 3.52
## [46] 3.58 3.64 3.70 3.77 3.82 3.87 3.93 3.98 4.03 4.10 4.14 4.22 4.29 4.35 4.43
## [61] 4.50 4.58 4.67 4.77 4.89 5.04 5.20 5.40
# Plotting titration curve
plot(volume_added, pH, main="Diprotic Acid Titration Curve", xlab="Volume NaOH Added (mL)", ylab="pH")
To perform the binding analysis and analytically determine the \(K_{a1}\) and \(K_{a2}\) values, a binding curve must be generated. To generate a binding curve, the titration data must be transformed into fraction binding data as a function of pH throughout the titration. The fraction binding equation represents the fraction of the diprotic acid that has undergone proton dissociation during the titration. The fraction bound transformation equation is shown below:
\[ \textit{Equation 8: Fraction Bound Transformation Equation} \] \[f_{bound} = 2 - \frac{([base] \times V_{added}) + ([H^+] \times (V_{initial} + V_{added})}{[base] \times V_{endpoint}}\]
To implement this in R, the equation above is used to calculate \(f_{bound}\) for each titration data point (volume of base added, pH). From preliminary analysis using traditional computational methods, it was determined that the volume of NaOH added at the first endpoint was 6.350 mL. This value as well as other determined values (titrant base concentration, initial acid volume, etc.) were inputted into the equation. The following code calculates \(f_{bound}\) using all of this data:
# Defining initial volume variable
volume_initial <- 25
# Defining first endpoint volume variable
volume_endpoint <- 6.350
# Defining base (NaOH) concentration variable
base_concentration <- 0.1
# Calculating [H+] as vector
h_concentration <- 10^-pH
# Printing h_concentration vector
h_concentration
## [1] 1.548817e-02 1.548817e-02 1.548817e-02 1.548817e-02 1.548817e-02
## [6] 1.548817e-02 1.513561e-02 1.445440e-02 1.380384e-02 1.348963e-02
## [11] 1.318257e-02 1.258925e-02 1.230269e-02 1.148154e-02 1.122018e-02
## [16] 1.047129e-02 1.023293e-02 9.549926e-03 9.120108e-03 8.511380e-03
## [21] 8.128305e-03 7.413102e-03 7.079458e-03 6.606934e-03 6.025596e-03
## [26] 5.754399e-03 5.128614e-03 4.677351e-03 4.168694e-03 3.801894e-03
## [31] 3.311311e-03 2.951209e-03 2.570396e-03 2.137962e-03 1.819701e-03
## [36] 1.548817e-03 1.202264e-03 1.023293e-03 8.511380e-04 6.918310e-04
## [41] 5.623413e-04 4.786301e-04 4.073803e-04 3.467369e-04 3.019952e-04
## [46] 2.630268e-04 2.290868e-04 1.995262e-04 1.698244e-04 1.513561e-04
## [51] 1.348963e-04 1.174898e-04 1.047129e-04 9.332543e-05 7.943282e-05
## [56] 7.244360e-05 6.025596e-05 5.128614e-05 4.466836e-05 3.715352e-05
## [61] 3.162278e-05 2.630268e-05 2.137962e-05 1.698244e-05 1.288250e-05
## [66] 9.120108e-06 6.309573e-06 3.981072e-06
# Calculating fraction bound as vector
fraction_bound <- 2-((base_concentration*volume_added/1000+h_concentration*(volume_initial/1000+volume_added/1000))/(base_concentration*volume_endpoint/1000))
# Printing fraction_bound vector
fraction_bound
## [1] 1.39022968 1.38932032 1.38841097 1.38604664 1.38040864 1.36622269
## [7] 1.34463812 1.33576084 1.32607045 1.30305654 1.27994627 1.26889782
## [13] 1.24540835 1.24460079 1.22057145 1.21753538 1.19299920 1.18788920
## [19] 1.17215376 1.16455775 1.14717938 1.14503027 1.12618921 1.11384154
## [25] 1.10674888 1.08579543 1.08139037 1.06926376 1.06010851 1.04458758
## [31] 1.03517087 1.01983114 1.00571400 0.99433474 0.97766689 0.95887699
## [37] 0.94399096 0.92100251 0.89778621 0.87403233 0.84887013 0.82145885
## [43] 0.79346193 0.76496323 0.73567811 0.70611998 0.67632247 0.64631509
## [49] 0.61633385 0.58577108 0.55511201 0.52451448 0.49367617 0.46261230
## [55] 0.43185104 0.40071662 0.36987584 0.33886268 0.30772283 0.27663791
## [61] 0.24544483 0.21424319 0.18302205 0.15177360 0.12051063 0.08923050
## [67] 0.05789679 0.02653636
Now that the fraction bound values throughout the titration have been calculated, a binding curve can be generated of fraction bound as a function of pH. By plotting the binding curve, we can observe the pH changes that correspond to the two dissociation steps of the diprotic acid. These steps are marked by sharp changes in the curve, which correspond to the equivalence points of the two protons being neutralized by the base. From these points, we can calculate the \(K_{a1}\) and \(K_{a2}\) values, which indicate the strength of the acid’s dissociation at each step. This curve is a key tool in understanding and quantifying the acid’s behavior during titration.
# Plotting binding curve
plot(pH, fraction_bound, main="Diprotic Acid Titration Binding Curve", xlab="pH", ylab="Fraction Bound")
After the binding curve was successfully generated, a line of best fit was calculated and plotted to model the binding trend observed. A theoretical binding model including \(K_{a1}\) and \(K_{a2}\) was needed to best fit the data to the model and produce the best fit values for \(K_{a1}\) and \(K_{a2}\). This model incorporates the concentration of hydrogen ions at various pH levels and the two dissociation constants to accurately describe the relationship between the fraction bound and pH. Using non-linear least squares fitting, the model was applied to the experimental data, and the optimal values for \(K_{a1}\) and \(K_{a2}\) were determined. These values provide insights into the dissociation behavior of the diprotic acid, reflecting the acid’s strength and its ability to donate protons in two distinct steps. The fitted curve was then compared to the experimental binding data, demonstrating how well the theoretical model matched the observed titration behavior. The theoretical fraction bound equation is shown below:
\[ \textit{Equations 9: Fraction Bound Theoretical Model with Ka1 and Ka2} \] \[f_{bound} = \frac{ \frac{[H^+]}{K_{a1}} + \frac{2[H^+]^2}{K_{a1} \times K_{a2}} }{1 + \frac{[H^+]}{K_{a1}} + \frac{[H^+]^2}{K_{a1} \times K_{a2}} } \]
To implement this in R, the equation for the fraction bound, including the constants \(K_{a1}\) and \(K_{a2}\), is used to fit the binding model to the titration data. Using the nls2 function, the code performs non-linear least squares analysis to estimate the best-fit values for \(K_{a1}\) and \(K_{a2}\) based on the titration data. The resulting model is then used to generate a binding curve and overlay a best-fit line on the previously generated binding curve. The following code generates the binding curve with a line of best fit as well as the non-linear least squares analysis regression data including the predicted \(K_{a1}\) and \(K_{a2}\) values.
# Fitting parameters of binding model with nls2 analysis
library(nls2)
## Loading required package: proto
binding_model <- nls2(fraction_bound~(h_concentration/Ka1+2*h_concentration^2/(Ka1*Ka2))/(1+h_concentration/Ka1+h_concentration^2/(Ka1*Ka2)), start=c(Ka1=0.0001, Ka2=0.02))
# Printing binding_model summary data
summary(binding_model)
##
## Formula: fraction_bound ~ (h_concentration/Ka1 + 2 * h_concentration^2/(Ka1 *
## Ka2))/(1 + h_concentration/Ka1 + h_concentration^2/(Ka1 *
## Ka2))
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## Ka1 1.087e-04 3.041e-06 35.73 <2e-16 ***
## Ka2 3.191e-02 9.214e-04 34.63 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02934 on 66 degrees of freedom
##
## Number of iterations to convergence: 5
## Achieved convergence tolerance: 4.133e-07
# Plotting binding curve
plot(pH, fraction_bound, main="Diprotic Acid Titration Binding Curve", xlab="pH", ylab="Fraction Bound")
# Generating best fit line with fitted binding model
lines(pH, predict(binding_model), col="blue")
The non-linear least squares analysis predicted a \(K_{a1}\) of 1.087E-4 and a \(K_{a2}\) of 3.191E-2. The preliminary analysis using basic computational methods (Henderson-Hasselbach) produced a \(K_{a1}\) of 8.13E-3 and a \(K_{a2}\) of 7.24E-5. The unknown diprotic acid was correctly identified during the experimental analysis as oxalic acid, which has a \(K_{a1}\) of 5.1E-2 and a \(K_{a2}\) of 5.2E-5 (Martell & Smith, 2001).
Error analysis is necessary to determine which method (analytical or experimental) was better for calculating \(K_{a1}\) values. The percent error calculations for \(K_{a1}\) and \(K_{a2}\) show that the experimental method (Henderson-Hasselbalch) produced lower errors compared to the analytical method (binding curve). For \(K_{a1}\), the experimental method yielded a percent error of 84.1%, while the analytical method had a much higher error of 99.79%. Similarly, for \(K_{a2}\), the experimental method had a percent error of 39.23%, compared to 99.94% for the analytical method. These results suggest that the experimental method provides a more accurate determination of the dissociation constants for oxalic acid. Therefore, despite the theoretical appeal of the binding curve model, the Henderson-Hasselbalch method proves to be the more reliable method for determining \(K_{a}\)values in this case.
The discrepancies between the \(K_{a1}\) and \(K_{a2}\) values derived from the experimental and analytical methods highlight the strengths and limitations of each approach. The analytical method, which fits the entire data set to a non-linear model, benefits from refined computational analysis and produces more precise values by minimizing errors across the entire curve. In contrast, the experimental method relies on graphical interpretations, such as identifying inflection points and steep slopes in the titration curves, which are inherently prone to human error and less precise due to sensitivity to small pH or volume changes. To improve the experimental approach, automated endpoint detection or computationally assisted graphing tools could improve accuracy.
This study aimed to analyze the dissociation constants (\(K_{a1}\) and \(K_{a2}\)) of an unknown diprotic acid, ultimately identified as oxalic acid, using both experimental and analytical methods. The non-linear least squares method (analytical) predicted \(K_{a1}\) and \(K_{a2}\) as 1.087E-4 and 3.191E-2, respectively, while the experimental Henderson-Hasselbalch approach determined \(K_{a1}\) as 8.13E-3 and \(K_{a2}\) as 7.24E-5. Comparing these values to the actual \(K_{a1}\) and \(K_{a2}\) of oxalic acid (5.1E-2 and 5.2E-5, respectively) revealed that the experimental method resulted in lower percent errors (84.1% for \(K_{a1}\) and 39.23% for \(K_{a2}\)) compared to the analytical method (99.79% and 99.94%, respectively).
While the binding analysis method offers theoretical advantages, its reliance upon a provided model and precise data points may explain the higher discrepancies. Future experiments could explore more refined computational algorithms or models and more robust and refined data collection methods to mitigate human error and improve overall accuracy across both methods.
[1] Martell, A. E., Smith, R. M. (2001). Critical Stability Constants: Volume 4 (pp. 185–188). Springer.