The purpose of this experiment is to identify an unknown acid through the use of an Auto Potentiometric titration (auto titration). We will collect points through the auto titrator and based on those points we will identify the acid using the molar mass, Ka constant, as well as the equivalence points. An Auto Potentiometric titration is an advanced method of potentiometric titration as the Auto Potentiometric detects multiples things that one would have to calculate by themselves if they were to use potentiometric. For example, the auto titrator is able to detect the endpoint and adds the titrant by itself. Scientists are more likely to use an auto titrator as it has the capabilities of producing more accurate results with minimal errors.
The following figures are the data values collected during the titration during the addition of the base, NaOH. Furthermore, a graph is provided displaying the pH values corresponding to the Volume values in mL.
# Imported data from Autotitration
library(readr)
t2data <- read.csv ("autotitration.csv")
# Volume Extraction
Volvect <- t2data$Volume..mL.
Volvect
## [1] 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00
## [13] 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 21.05 22.00
## [25] 23.00 24.00 25.00 26.00 27.00 28.00
length(Volvect)
## [1] 30
# pH Extraction
pHvect <- t2data$pH
pHvect
## [1] 2.869 2.871 3.017 3.049 3.061 3.106 3.152 3.239 3.346 3.481
## [11] 3.759 3.909 4.530 4.206 4.356 4.475 4.678 4.886 5.636 6.596
## [21] 7.680 8.305 9.826 10.899 10.985 11.049 11.199 11.382 11.480 11.537
length(pHvect)
## [1] 30
# Plotting
plot(Volvect,pHvect,xlab = 'Volume (ml)',ylab = 'pH',main = 'Diprotic Titration Curve')
Converting the titration curve into a binding curve would be much more helpful for us as it display information that was not previously shown before. For example, a binding curve will display the fraction values as the volume increases. This can be done through the use of a fraction bind formula. In this experiment, we used the following formula specifically. F <- (2-((VolvectCB)+ (Hc)(VI+Volvect))/(VE*CB)) Where Volvect equals the amount of Volume. CB equals the amount of base concentration, NaOH, is added. VI is equal to the initial volume. VE is equal to the first endpoint value. Hc is equal to the amount of deprotonated H+ ions are in the solution. The completion of the formula is shown below.
# H+
Hc <- 10^-(pHvect)
Hc
## [1] 1.352073e-03 1.345860e-03 9.616123e-04 8.933055e-04 8.689604e-04
## [6] 7.834296e-04 7.046931e-04 5.767665e-04 4.508167e-04 3.303695e-04
## [11] 1.741807e-04 1.233105e-04 2.951209e-05 6.223003e-05 4.405549e-05
## [16] 3.349654e-05 2.098940e-05 1.300170e-05 2.312065e-06 2.535129e-07
## [21] 2.089296e-08 4.954502e-09 1.492794e-10 1.261828e-11 1.035142e-11
## [26] 8.933055e-12 6.324119e-12 4.149540e-12 3.311311e-12 2.904023e-12
# Volume added at the 1st endpoint
VE <- 6.729
# Initial Volume
VI <- 25.0
## The concentration of the base NaOH
CB <- 0.10000
# Fraction Bound
F <- (2-((Volvect*CB)+ (Hc)*(VI+Volvect))/(VE*CB))
F
## [1] 1.94976696 1.79938718 1.66419448 1.51699725 1.36810841 1.22201978
## [7] 1.07587237 0.93229822 0.78900735 0.64581280 0.50483530 0.35868751
## [13] 0.21505135 0.06454935 -0.08310026 -0.23114855 -0.37904676 -0.52718988
## [19] -0.67513660 -0.82361592 -0.97221124 -1.12082067 -1.12825086 -1.26943082
## [25] -1.41804131 -1.56665181 -1.71526230 -1.86387279 -2.01248328 -2.16109377
# Plot
plot(pHvect,F, xlab = 'pH',ylab = 'Fraction Bound',
main = "Fraction Bound vs pH")
The curve is now known as a fraction bound curve instead of a titratin curve.
To furthermore receieve more abstract results, the non-linear least squares regression, also known as nls in R script, is the perfect tool to use. The package “nls2” must be downloaded in order for this to go through. After using the nls2 command to receive better results, a curve fit line command was perfomed to get the best line of fit for the fraction bound curve. This was done through the “predict(_)” command.
# Plot
plot(pHvect,F, xlab = 'pH',ylab = 'Fraction Bound',
main = "Fraction Bound vs pH")
library (nls2)
## Loading required package: proto
fline <- nls(F ~ (Hc/KD1+2*Hc^2/(KD1*KD2))/(1+Hc/KD1+Hc^2/(KD1*KD2)),
start = c(KD1 = 0.0001,KD2=0.01))
summary (fline)
##
## Formula: F ~ (Hc/KD1 + 2 * Hc^2/(KD1 * KD2))/(1 + Hc/KD1 + Hc^2/(KD1 *
## KD2))
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## KD1 3.627e-03 4.214e-02 0.086 0.932
## KD2 7.729e-05 8.739e-04 0.088 0.930
##
## Residual standard error: 0.9762 on 28 degrees of freedom
##
## Number of iterations to convergence: 14
## Achieved convergence tolerance: 6.712e-06
lines (pHvect,predict (fline), col="green" )
The formula used to produce the new graph and best line of fit consisted of two new variables. KD1 and KD2 are stated to be the acid dissassociation constants for protons.
With the use of the non-linear least square regression tool and the fraction bound formula, we were able to provide a much more concise graph and results as compared to graph produced in excel. The nls tool helped provide a better look at the proportions. The \(Ka_1\) value produced in the lab report was 6.91x10^{-6} and \(Ka_2\) was 2x10^{-2}. The \(Ka_1\) composed in R script was 6.818x10^{-5} and the amount composed for \(Ka_2\) was 2.335x10^{-2}. When comparing these values, they seem to be quite similar, the major contrast being that R script seemed to provide much more accurate results. In conclusions, both methods, R script and Lab Report, are both correct with their own errors being taken in account for.