露点温度是什么可以自行百度下,太专业的说法也难以理解,简单不专业的讲法就是在稳定的气压条件下,湿度越大,测得的温度就越接近露点温度,当相对湿度达到100%Rh时候,此时的温度就是露点温度。很好理解,就是湿度小,温度高,此时的露点温度也相应的不高,温度虽然高,但是人体出汗散热快,人体感官温度就没那么高,不会那么难受;但是湿度大,温度又高,露点温度也就高,虽然人体出汗了,但是不能蒸发散热,人体感官温度就很高,给人的感觉就是又湿又热,很难受。所以露点温度可以直观的表现出来当前环境的人体体感。一般露点温度在15度以下,人体比较舒适,超过15度,人体就会感觉有点不适。以上只是自己的一些理解,有错误还请纠正。
剩下就是怎样获得露点温度,因为露点温度和当前气压、温度、湿度相关。我们一般自己测量室内的露点温度一般都默认气压处于稳定状态,再利用温度和湿度估算出露点温度。
以下是利用温度和湿度计算得到露点温度的代码:
// Calculation of Dew Point tempurature
// from https://en.wikipedia.org/wiki/Dew_point
// Constants: -45degC <= T <= +60degC, +/- 0.35degC)
const float a = 6.112; // millibar
const float b = 17.62;
const float c = 243.12; // deg C
float gammaFunction (float temperature, float relativeHumidity) {
float gamma;
gamma = log(relativeHumidity/100.0) + (b*temperature)/(c+temperature);
return gamma;
}
float dewPointTemperature (float temperature, float relativeHumidity) {
float dewPointTemperature;
float gamma;
gamma = gammaFunction(temperature,relativeHumidity);
dewPointTemperature = (c*gamma)/(b-gamma);
return dewPointTemperature;
}
与软件计算的露点温度差不多,可以使用。
以上代码可能看起来没那么直观,下面是另外一份计算露点温度的函数,这是我自己平时用的,误差不大。代码如下:
double cal_dew_point_temp(float temperature, float humidity){
double a = 17.27, b = 237.7;
double r_value;
r_value = a * temperature / (b + temperature) + log(humidity / 100);
if((b * r_value / (a - r_value)) < 0)
return (0);
return (b * r_value / (a - r_value));
}
其中a和b是国外通过长期统计监测之后,得出计算露点温度的经验值。
代码出处:GitHub - PaulSchulz/dew-point-havester: Controller code for smart Dew Point Harvester