[Статьи]

Тепловой расчёт испарителя мгновенного вскипания (ИМВ)¶

Ниже приведена расчётная часть статьи Тепловой расчёт испарителя мгновенного вскипания (ИМВ).

Рассмотрим схему ИМВ с N ступенями. Каждая ступень имеет в своём составе испаритель и конденсатор.

Испаритель мгновенного вскипания

Пар – первичный (греющий) пар, Конденсат – конденсат первичного пара, пар – вторичный пар, ГВ – горячая вода (нагретая первичным паром), ХВ – холодная вода (вх, вых – на входе и выходе ИМВ). ПВ - подогреватель воды, И – испаритель, К – конденсатор, Д – дистиллят, СР – солевой раствор. СР после охлаждения может быть направлен в линию ХВ.

В испарителе мгновенного вскипания горячая вода (ГВ) подаётся в испаритель, внутри которого поддерживается давление ниже давления кипения при текущей температуре воды. Вода за счёт уменьшения собственной внутренней энергии испаряется, образуя вторичный пар, температура воды уменьшается до температуры насыщения, соответствующей давлению в испарителе. Пониженное давление в испарителе поддерживается за счёт конденсации вторичного пара в конденсаторе при которой происходит передача скрытой теплоты парообразования вторичного пара холодной воде (ХВ). Величина давления в конденсаторе определяется температурой холодной воды на выходе из конденсатора – чем ниже эта температура тем меньше давление. Неконденсируемые газы (воздух, который попадает в испаритель и конденсатор ввиду негерметичности системы) отводятся с помощью эжекторов (на схеме не показаны).

Сконденсировавшийся вторичный пар (дистиллят) отводится из конденсатора. Неиспарившаяся и уже менее горячая вода поступает в следующую ступень.

Для начала оценим какая доля подаваемой в ИМВ воды может быть преобразована в пар.

In [1]:
import numpy as np
from wsprops import HSDiag  # описание пакета см. в [1]
from scipy.optimize import root_scalar
hs = HSDiag()
In [2]:
t_х_вх = 20  # температура воды на входе в ИМВ
# Первичный пар, подаваемый на нагрев холодной воды (для получения горячей воды)
p_пар = 0.12e6; t_пар = 150
h_пар = hs.props_tp(t_пар, p_пар)['h']
h_пар.item()  # удельная энтальпия пара, Дж/кг
Out[2]:
2775121.9164403765
In [3]:
# Теплота, выделяемая при конденсации 1 кг греющего пара
w, _ = hs.props_p(p_пар)
dh_нагр = h_пар - w['h']
dh_нагр.item()  # Дж/кг
Out[3]:
2335822.552759812
In [4]:
# Температура горячей воды на выходе из теплообменника
t_г_вх = hs.t_p(p_пар) - 5  # 5 C - температурный напор в теплообменнике
t_г_вх.item()  # градусы С
Out[4]:
99.78378433819114
In [5]:
p_х = p_г_вх = 0.13e6  # абсолютное давление в контуре воды
In [6]:
# Удельная энтальпия воды перед ИМВ
h_г_вх = hs.props_tp(t_г_вх, p_г_вх)['h']
h_г_вх.item()  # Дж/кг
Out[6]:
418208.96051349153
In [7]:
p_к_мин = 3000  # давление в конденсаторе последней ступени ИМВ, Па 
t_к_мин = hs.t_p(p_к_мин)  # температура насыщения/кипения до которой охладится горячая вода
t_к_мин.item()  # градусы С
Out[7]:
24.079941253834022
In [8]:
# Удельная энтальпия горячей воды на выходе из ИМВ
w, _ = hs.props_p(p_к_мин)
h_г_вых = w['h']
h_г_вых.item()  # Дж/кг
Out[8]:
100990.17193814949
In [9]:
# изменение удельной энтальпии (внутренней энергии) воды 
# (для простоты предполагается, что количество воды от ступени к ступени не уменьшается)
dh_г = h_г_вх - h_г_вых
dh_г.item()  # Дж/кг
Out[9]:
317218.78857534204
In [10]:
# Удельная скрытая теплота парообразования при нормальном атмосферном давлении
dh_исп = hs.dh_p(101325)
dh_исп.item()  # Дж/кг
Out[10]:
2256540.7482377575
In [11]:
# Максимально возможная доля воды, преобразованной в пар
x = dh_г / dh_исп
x.item()
Out[11]:
0.1405774696615045

Таким образом, при температуре горячей воды на входе 99,8 С, а на выходе 24,1 С, в пар преобразуется менее 15% поступающей в ИМВ горячей воды.Т.к. количество горячей воды от ступени к ступени уменьшается, а скрытая теплота парообразования увеличивается, то в реальности доля пара будет ещё меньше.

Выполним вариативный тепловой расчёт испарителя мгновенного вскипания с различным количеством ступеней – от 1 до 16.

In [12]:
# Тепловой расчёт ИМВ
def fИМВ(N):
    t_г = np.zeros(N+1)
    t_х = np.zeros(N+1)
    p_г = np.zeros(N+1)
    g = np.zeros(N+1)
    t_г[0] = t_г_вх  # проектный параметр
    g[0] = 1.
    p_г[0] = p_г_вх  # давление воды на входе в ИМВ
    # Расчёт ступеней ИМВ
    def f(t_х_вых):
        t_х[0] = t_х_вых
        for i in range(N):
            t_г[i+1] = t_х[i] + 5  # температура горячей воды на выходе i-ой ступени
            p_г[i+1] = hs.p_t(t_г[i+1])  # давление конденсации и давление горячей воды на выходе из i-ой ступени
            w, s = hs.props_p(p_г[i+1])  # параметры кипящей воды и влажного пара
            h_г = hs.region1.props_tp(t_г[i], p_г[i])['h']  # энтальпия горячей воды на входе
            x = (h_г - w['h']) / (s['h'] - w['h'])  # доля пара
            g[i+1] = g[i] * (1 - x)  # неиспарившаяся вода
            # Нагрев холодной воды
            dt_х = (s['h'] - w['h']) * (g[i] -  g[i+1]) / hs.region1.props_tp(t_х[i], p_х)['cp']
            # Температура холодной воды на выходе из ступени i+1
            t_х[i+1] = t_х[i] - dt_х
            if t_х[i+1] < 1: return t_х[i+1] - t_х_вх  # чтобы избежать генерацию исключения
        return t_х[N] - t_х_вх
    result = root_scalar(f, bracket=[t_г_вх, t_г_вх * 0.5])
    #x_solution = result.root  # равен  t_х[0]
    return g, p_г, t_г, t_х
In [13]:
# Расчёт ИМВ с разным количеством ступеней
N_max = 16
# Контейнеры данных для графиков
d = {'g': [], 'p_г': [], 't_г': [], 't_х': [], 'x': []}
y = []; y_x = [];
for i in range(N_max):
    data = list(fИМВ(i+1))
    for j in range(len(data)):
        data[j] = np.pad(data[j], (0, N_max + 1 - len(data[j])), mode='constant', constant_values=np.nan)
    d['g'].append(data[0])  # доля солевого расствора (горячей воды)
    d['x'].append(1 - d['g'][-1]) # доля пара
    d['p_г'].append(data[1])  # давление в испарителе
    d['t_г'].append(data[2])  # температура горячей воды в испарителе
    d['t_х'].append(data[3])  # температура холодной воды в конденсаторе
    # энтальпия холодной воды на выходе ИМВ
    h_х_вых = hs.props_tp(d['t_х'][-1][0], p_х)['h']
    # количество греющего пара (относительно количества воды на входе в ИМВ)
    y.append((h_г_вх - h_х_вых) / dh_нагр)  
    # количество греющего пара (относительно количества выработанного в ИМВ вторичного пара)
    y_x.append(y[-1]/d['x'][-1][i+1])
In [14]:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1, figsize=(10, 5))
ax.plot(range(N_max+1), np.transpose(np.array(d['x'])*100));
ax.set_xlim(0, N_max); ax.set_ylim(0,14); ax.grid();
ax.legend(range(1, N_max+1), title = 'Количество ступеней', loc='lower right', ncol=4);
ax.set_title("Паропроизводительность")
ax.set_xlabel('Номер ступени'); ax.set_ylabel("Паропроизводительность, %");
No description has been provided for this image
In [15]:
fig, ax = plt.subplots(1, 1, figsize=(10, 5))
ax.plot(range(N_max+1), np.transpose(np.array(d['t_х'])));
ax.set_xlim(0, N_max); ax.set_ylim(20,90); ax.grid();
ax.legend(range(1, N_max+1), title = 'Количество ступеней', loc='upper right', ncol=4);
ax.set_title("Температура холодной воды")
ax.set_xlabel('Номер ступени'); ax.set_ylabel("Температура, C");
No description has been provided for this image
In [16]:
fig, ax = plt.subplots(1, 1, figsize=(10, 5))
ax.plot(range(N_max+1), np.transpose(np.array(d['t_г'])));
ax.set_xlim(0, N_max); ax.set_ylim(20,100); ax.grid();
ax.legend(range(1, N_max+1), title = 'Количество ступеней', loc='upper right', ncol=4);
ax.set_title("Температура горячей воды")
ax.set_xlabel('Номер ступени'); ax.set_ylabel("Температура, C");
No description has been provided for this image
In [17]:
fig, ax = plt.subplots(1, 1, figsize=(10, 5))
ax.plot(range(N_max+1), np.transpose(np.array(d['p_г'])/1000));
ax.set_xlim(0, N_max); ax.set_ylim(0,80); ax.grid();
ax.legend(range(1, N_max+1), title = 'Количество ступеней', loc='upper right', ncol=4);
ax.set_title("Давление в ступенях")
ax.set_xlabel('Номер ступени'); ax.set_ylabel("Давление, кПа");
No description has been provided for this image
In [18]:
fig, ax = plt.subplots(1, 1, figsize=(10, 5))
ax.bar(range(1, N_max+1), np.array(y_x)*100);
ax.set_xlim(0, 16.5); ax.set_ylim(0,120); ax.grid();
ax.set_title("Потребность в первичном паре")
ax.set_xlabel('Количество ступеней'); ax.set_ylabel("Первичный пар / Вторичный пар, %");
No description has been provided for this image

В рассматриваемом ИМВ (при количестве ступеней более 8) выход дистиллята составляет около 12% от количества подаваемой на вход установки воды. Т.е. если необходимо производить 12 т/ч дистиллята, то в ИМВ следует подавать не менее 100 т/ч исходной воды.

Высокая эффективность ИМВ связана с тем, что тепловая энергия воды, затраченная в испарителе на образование пара возвращается этой же воде, проходящей через конденсатор, при конденсации пара (образовании дистиллята).

Ссылки¶

  1. Расчёт теплофизических свойств воды и водяного пара

Инженерные расчёты на Python, С.В. Медведев, 2020-2025
Использование Python и Jupyter Notebook для инженерных расчётов, С.В. Медведев, 2020-2025