Расчёт температуры точки росы воздуха

Температура точки росы воздуха — значение температуры воздуха, при которой водяной пар, содержащийся в воздухе, становится насыщенным.

Температура точки росы воздуха зависит от температуры воздуха и его относительной влажности.

Относительная влажность воздуха — отношение парциального давления водяного пара в воздухе к давлению насыщения водяного пара при данной температуре воздуха.

Значение равновесного давления насыщенных паров для заданной температры можно найти, используя класс SaturationCurve (см. https://zen.yandex.ru/media/id/5f33dcd5554adc5b33aaee83/temperatura-i-davlenie-nasyscennogo-vodianogo-para-5f366119f72e454a00999e31).

In [1]:
from saturationcurve import SaturationCurve
sc = SaturationCurve()
t = 20 #температура воздуха, С
p_sat = sc.p_t(t) 
p_sat #давление насыщения водяного пара, Па
Out[1]:
2339.214766776897

Если принять значение относительной влажности воздуха 60%, то парциальное давление водяного пара составит:

In [2]:
RH = 0.6 # Относительная влажнось воздуха
p_steam = RH * p_sat
p_steam #парциальное давление пара, Па
Out[2]:
1403.5288600661381

Температура точки росы равна температуре насыщения водяного пара при давлении равном парциальному давлению водяного пара в воздухе. Для воздуха температурой 20 С и относительной влажностью 60% температура точки росы составит:

In [3]:
t_dp = sc.t_p(p_steam) #градусы C, 'dp' - dew point, точка росы
t_dp # градусы С
Out[3]:
12.007634928494781
In [4]:
#Модуль функции вычисления температуры точки росы
from saturationcurve import SaturationCurve
sc = SaturationCurve()
def calc_dew_point(t, RH):
    #t - температура воздуха, С
    #RH - относительная влажность воздуха в диапазоне [0.0; 1.0]
    p_sat = sc.p_t(t)
    p_steam = RH * p_sat
    #Возвращает значение температуры точки росы, С
    return sc.t_p(p_steam)
In [10]:
calc_dew_point(5.,0.8)
Out[10]:
1.8421241056820463

Область допустимых значений входных параметров для функции calc_dew_point

В классе SaturationCurve реализована расчётная методика из http://www.iapws.org/relguide/IF97-Rev.pdf (Раздел "8 Equations for Region 4"). Данные методика накладывает следующие ограничения на входные параметры:

  1. Значение температуры должно находиться в диапазоне [0; 373,946] С;
  2. Значение давления должно находиться в диапазоне [611,213 Па; 22,064 МПа].
In [6]:
#Формируем набор температур от 0 до 100 С с шагом 1 С (101 точка)
ts = list(range(0,101))
#Минимально допустимое значение относительной влажности для каждого значения температуры
RHs_min = []
for t in ts:
    RHs_min.append(611.213 / sc.p_t(t) * 100)
In [7]:
#Построим график
import matplotlib.pyplot as plt
plt.plot(ts, RHs_min)
plt.title('Область допустимых значений входных параметров')
plt.xlabel('$t$, C'); plt.ylabel('$RH$, %')
plt.xlim (0,100); plt.ylim (0,100)
plt.fill_between(ts, [0]*101, RHs_min, color = 'red')
plt.fill_between(ts, [100]*101, RHs_min, color = 'green')
plt.grid()

Инженерные расчёты на Python, С.В. Медведев
https://zen.yandex.ru/id/5f33dcd5554adc5b33aaee83