THIS POST IS LONG. BUT PLEASE, ALL CHEM BUFFS, STICK TO IT.
Four days ago I sat down to figure out the equation that governs all pH-KH-CO2 tables. I feel pretty comfortable with chemistry, so it seemed like a relatively simple task. But thats one nothing started to make sense. Since then, I've been searching, reading, searching...and more reading...and think I have come to a conclusion. Except, my conclusion is so outrageous I believe I must have messed up somewhere! To all other chem buffs, tell me if I'm right or wrong.
First I'm going to leave out all the chemical equations, gas and solubility laws, equilibrium constants/equations...everything that explains why we can find CO2 from KH and pH. If you understand what I'm going to go through then you you know about all that. I'll begin with the current origins of the equation we use to calculate CO2, the Henderson-Hasselbach equation.
pH = pKa + log([A-]/[HA])
Knowing the pKa of a certain weak acid, and the molar concentrations of the weak acid and its conjugate base (a buffer exists), we can find pH. In our case, A- is HCO3 and HA is H2CO3. H2CO3 by convention can be replaced by CO2. the pKa of H2CO3 is 6.37. So equation becomes (first line) and can be rearranged to find [CO2]:
pH = 6.37 + log([HCO3]/[CO2])
pH = 6.37 + log[HCO3] - log[CO2]
log[CO2] = log[HCO3] + 6.37 - pH
[CO2] = [HCO3]*10^(6.37-pH)
The last equation to calculate [CO2] is 100% correct. We could use this for our purposes, but it's impractical for the average aquarist to use foreign molar concentration written in scientific notation. It's better to just plug in our well known unit of dKH and get our answer. Thats what
this link written by George Booth on APD provides for us, and is the current equation that we are using now.
THIS IS WHERE THE ASSUMED ERROR BEGINS
To make the equation aquarist-friendly, we need to first find a conversion factor that interchanges dKH to molarity HCO3. According to the website 1 dKH = 2.92E-4M HCO3*. The author did as so:
dKH*17.8 = 'HCO3'mg/L
'HCO3'mg/L * (mol/61020mg) =
2.92E-4M HCO3
This is NOT correct. The author uses the common 17.8 factor to change dKH into mg/L, but doesn't realize that he has mg/L
CaCO3. He assumes the units are mg/L HCO3 so proceeds in converting the mg into mol, by the molar mass of HCO3. Obviously as you know, using the molar mass of HCO3 is not going to convert mg/L CaCO3 into molarity HCO3. First we need to change mg/L CaCO3 into mg/L HCO3, then proceed into molarity. Before making the correction, I will continue the author's process:
[CO2] = [HCO3]*10^(6.37-pH)
[CO2] = 2.92E-4*dKH*10^(6.37-pH)
Right now the answer is [CO2]. We need mg/L CO2.
[CO2]*44010(**) = 2.92E-4*dKH*10^(6.37-pH)
CO2 mg/L = 12.838*dKH*10^(6.37-pH)
This is the current equation that we use for our CO2 charts. However, there was an error in finding it. So it must be wrong. THIS IS WHERE I NEED SOMEONE TO TELL ME THERE WAS NO ERROR AND I WAS WRONG. . I'll go ahead and show how to find the 'assumed' correct equation.
dKH*17.8 = CaCO3 mg/L
CaCO3 mg/L * (2*61.02/100.09) = HCO3 mg/L
HCO3 mg/L * (mol/61020) =
3.56E-4M HCO3
Therefore the only difference between my equation and the current one: 1dKH = 3.56E-4M HCO3 instead of 1dKH = 2.92E-4M HCO3. Completing the new equation...
[CO2] = [HCO3]*10^(6.37-pH)
[CO2] = 3.56E-4*dKH*10^(6.37-pH)
[CO2]*44010 = 3.56E-4*dKH*10^(6.37-pH)
CO2 mg/L = 15.65*dKH*10^(6.37-pH)
Comparing and testing (KH=5, pH=6.8 ) both equations side-by-side:
Original - CO2 mg/L = 12.838*dKH*10^(6.37-pH)
Correct? - CO2 mg/L = 15.65*dKH*10^(6.37-pH)
Original - CO2 = 23.85 mg/L
Correct? - CO2 = 29.10 mg/L
Just this example shows an 18% error. So now comes the scary part, am I wrong????. I believe I'm going to find out very fast I am because saying the current, long used CO2 charts are completely wrong is outrageous. At the same time, the author of the current equation made a very obvious error, so I do not know which equation to trust!
*Corrected. The author should have used 61020 mg/mol, not 61. This isn't the source of error however.
**Corrected. The author should have used 44010 mg/mol, not 44. This isn't the source of error however.