24 const double A = 1.1278;
25 const double B = 0.001895;
26 const double C = 88.93;
28 double delta = 25.0 - temperature_celsius;
29 double log_ratio = (A * delta - B * delta * delta) / (temperature_celsius + C);
31 return std::pow(10.0, log_ratio);
60 double tuned_b(
double measured_conductivity,
double temperature_celsius)
64 double ec = measured_conductivity / 100000.0;
66 double t = temperature_celsius / 50.0;
71 double b = 0.67132 + 2.93970 * ec - 0.90973 * t - 11.85994 * ec * ec + 13.66141 * ec * t -
72 2.06555 * t * t + 12.93730 * ec * ec * ec - 26.03585 * ec * ec * t +
73 14.13775 * ec * t * t - 1.48252 * t * t * t;
75 return std::fmax(0.68, std::fmin(b, 0.88));
94 const double temperature_celsius)
96 if (measured_conductivity < 8000.0)
99 return measured_conductivity / (1.0 + 0.0191 * (temperature_celsius - 25.0));
103 double b =
tuned_b(measured_conductivity, temperature_celsius);
105 return measured_conductivity * std::pow(mu_ratio, b);
double tuned_b(double measured_conductivity, double temperature_celsius)
This function returns the tuning factor 'b' used in conductivity temperature compensation....
double viscosity_ratio(double temperature_celsius)
Calculates the viscosity ratio µ_t / µ_25 using the empirical formula, which models how water's visco...
double calculate_specific_conductivity(const double measured_conductivity, const double temperature_celsius)
Computes specific conductivity at 25 °C using temperature compensation.