# Last edited on 2018-01-15 19:27:06 by jstolfi Analysis and separation of a N-P grass fertilizer Data Solubility of ammonium dihydrogenphosphate in water Source: NIST/IUPAC solubilty tables Raw data: solub_NH4_H2PO4_raw.txt Fitted formula (fairly good from 10 C to 160 C) function theoretical_solub(tc, t0,s0,t1,s1,z,r,mr,e) { # Theoretical solubility (g NH4H2PO4 per per 100 ml H2O). # The data seems to fit quite well an exponential of {tc} # with a slight correction. # The model breaks down at negative {tc} and above 120 C. # (There is an eutectic point at -4.3 C perhaps). # Two reference points on the solubility curve: t0 = 20; s0 = 36.8; t1 = 130; s1 = 311.5; mr = 0.13; # Magnitude of correction term. z = (tc - t0)/(t1 - t0); # Relative temperature in {t0_t1}. r = z*(1-z)*(1-z); # Cubic correction term e = (z + mr*r); # Corrected exponential parameter. s = s0*exp(e*log(s1/s0)); # Theoretical solubility. return s; } Conversion and comparison with model: solub_NH4_H2PO4_convert.gawk \ solub_NH4_H2PO4_raw.txt \ | txtable-reformat \ > solub_NH4_H2PO4_cooked.txt solub_NH4_H2PO4_plot.sh Adopted values (from exponential fit in the above, with hand corrections): g_w["NH4H2PO4", -4.3] = 20.3; # Hand corrected. g_w["NH4H2PO4", 0.0] = 23.8; # Hand corrected. g_w["NH4H2PO4", 5.0] = 26.2; g_w["NH4H2PO4", 10.0] = 29.4; g_w["NH4H2PO4", 15.0] = 32.9; g_w["NH4H2PO4", 20.0] = 36.8; g_w["NH4H2PO4", 25.0] = 41.0; g_w["NH4H2PO4", 30.0] = 45.6; g_w["NH4H2PO4", 35.0] = 50.7; g_w["NH4H2PO4", 40.0] = 56.1; g_w["NH4H2PO4", 45.0] = 62.1; g_w["NH4H2PO4", 50.0] = 68.6; g_w["NH4H2PO4", 55.0] = 75.7; g_w["NH4H2PO4", 60.0] = 83.4; g_w["NH4H2PO4", 65.0] = 91.7; g_w["NH4H2PO4", 70.0] = 100.9; g_w["NH4H2PO4", 75.0] = 110.8; g_w["NH4H2PO4", 80.0] = 121.7; g_w["NH4H2PO4", 85.0] = 133.6; g_w["NH4H2PO4", 90.0] = 146.7; g_w["NH4H2PO4", 95.0] = 160.9; g_w["NH4H2PO4", 100.0] = 176.6; g_w["NH4H2PO4", 105.0] = 193.8; g_w["NH4H2PO4", 110.0] = 212.8; g_w["NH4H2PO4", 120.0] = 257.1; g_w["NH4H2PO4", 130.0] = 311.5; g_w["NH4H2PO4", 140.0] = 379.2; g_w["NH4H2PO4", 150.0] = 464.3; g_w["NH4H2PO4", 160.0] = 572.6;