Моделирование процесса теплообмена в котле-утилизаторе двух давлений¶

В [1] приведён пример использования класса HRSG1p модуля hrsg1p для моделирования котла-утилизатора (далее - КУ) одного давления.

Расчётная схема

Здесь мы рассмотрим пример использования модуля hrsg1p версии 1.1 (скачать) для моделирования КУ двух давлений.

В котле-утилизаторе двух давлений имеются два контура - контур высокого давления (далее - ВД) и контур низкого давления (далее - НД), которые могут быть представлены как два котла-утилизатора одного давления, стоящие друг за другом по ходу выхлопных газов ГТУ.

КУ НД отличается от КУ ВД тем, что через экономайзер КУ НД проходит и нагревается до температуры воды в барабане КУ НД вода обоих контуров. Из барабана КУ НД вода контура НД подаётся в пароперегреватель КУ НД, а вода контура ВД - в экономайзер КУ ВД.

Зададимся необходимыми для расчёта исходными данными. При этом будем считать, что каждый КУ подаёт пар в свою паровую турбину (КУ ВД в ПТ ВД, КУ НД в ПТ НД).

In [1]:
t_уг_гту = 517  # температура уходящих газов ГТУ, C
G_уг = 370.5  # массовый расход ухдящих газов ГТУ, кг/с
# Температурный напор на горячем конце пароперегревателя КУ ВД и КУ НД разность между температурой 
# уходящих газов ГТУ (температура газов на входе в КУ) и температурой пара на выходе КУ), С
dt_уг_вд = dt_уг_нд = 30
# Температурный напор на холодном конце испарителя КУ ВД и КУ НД (разность между температурой 
# газов на выходе (по газу) из испарителя и температурой воды на входе (по воде) в испаритель КУ), С 
dt_и_вд = dt_и_нд = 9
# Внутренний КПД паровых турбин 
КПД_пт_вд = КПД_пт_вд = 0.85
# Давление в конденсаторе паровых турбин, Па
p_к = 4500
# Степень сухости пара на выходе паровых турбин
x_к = 0.87

Первым выполняется расчёт для КУ ВД.

In [2]:
t_0_вд = t_уг_гту - dt_уг_вд
t_0_вд  # температура пара перед ПТ ВД, С
Out[2]:
487

Давление пара на выходе КУ ВД (здесь и далее абсолютное давление) найдём по методике [2] для степени сухости пара в конденсаторе x = x_к.

In [3]:
from st import ST
ПТ_вд = ST(t_0_вд, None, p_к, КПД_пт_нд)  # ПТ ВД
p_0_вд = ПТ_вд.find_p_for_x(x_к)
p_0_вд  # давление пара перед ПТ ВД, Па
Out[3]:
7291681.527111711
In [4]:
from hrsg1p import HRSG1p
КУ_вд = HRSG1p(G_уг, t_уг_гту, p_0_вд, None, dt_уг_вд, dt_и_вд)  # КУ ВД
ПТ_нд = ST(None, None, p_к, КПД_пт_нд)  # ПТ НД

Для выполнения расчёта необходимо задаться температурой воды на входе в экономайзер КУ ВД, которая равна температуре воды в барабане КУ НД. Данную температуру можно найти итерационным расчётом.

  1. Задаёмся температурой пара на выходе из КУ НД, например t_0_нд = 210 С.
  2. По изложенной в [2] методике определяем p_0_нд для t_0_нд и x = x_к.
  3. По p_0_нд (равной давлению в барабане КУ НД) находим температуру кипения воды, которая равна температуре воды на входе в экономайзер КУ ВД t_э_вд.
  4. Производим расчёт КУ для найденной t_э_вд, в результате которого находим температуру уходящих из КУ ВД газов t_уг_ку_вд.
  5. Находим t_0_нд' = t_уг_ку_вд - dt_уг_нд.
  6. Если |t_0_нд' - t_0_нд| больше допустимой погрешности, то t_0_нд = t_0_нд' и переходим к пункту 2.
In [6]:
from scipy.optimize import root_scalar
from wsprops import HSDiag  # см. [3]
hs = HSDiag()
t_0_нд = 210  # Первое приближение
def f(t_0_нд):
    ПТ_нд.t_0 = t_0_нд
    p_0_нд = ПТ_нд.find_p_for_x(x_к)
    t_э_вд = hs.t_p(p_0_нд)
    КУ_вд.t_к = t_э_вд
    КУ_вд.calc()
    return КУ_вд.ts_уг[3] - dt_уг_нд - t_0_нд
In [7]:
sol = root_scalar(f, bracket = [t_0_нд * 0.8, t_0_нд * 1.2])
t_0_нд = sol.root; p_0_нд = ПТ_нд.p_0
t_0_нд, p_0_нд  # температура (С) и давление (Па) пара перед ПТ НД
Out[7]:
(201.88374458202108, 534049.8143059089)
In [23]:
import matplotlib.pyplot as plt  # библиотека для построения графиков
plt.rcParams['font.size'] = 12.0
fig, ax = plt.subplots(figsize = (10,5))
ax.set_title("Котёл-утилизатор высокого давления")
ax.set_xlabel('$Q$, МВт'); ax.set_ylabel('$t$, C')
ax.plot(КУ_вд.Qs/1e6, КУ_вд.ts_уг, label = "Уходящие газы", color = 'red')
ax.plot(КУ_вд.Qs/1e6, КУ_вд.ts_пв, label = "Пар/вода", color = 'blue')
ax.grid(); ax.set_xlim(0,); ax.set_ylim(0,); ax.legend();
In [24]:
КУ_вд.D_пв * 3.6  # паропроизводительность контура ВД, т/ч
Out[24]:
144.21387237909184
In [26]:
t_уг_ку_вд = КУ_вд.ts_уг[3]
t_уг_ку_вд  # температура уходящих газов из КУ ВД, С
Out[26]:
231.8837445820215
In [28]:
ПТ_нд.t_0, t_уг_ку_вд - dt_уг_нд  # температура пара перед ПТ НД, С
Out[28]:
(201.88374458202216, 201.8837445820215)

Температура воды на входе в экономайзер КУ НД равна температуре конденсации пара в конденсаторе при p = p_к

In [11]:
t_э_нд = hs.t_p(p_к)
t_э_нд  # температура воды на входе в экономайзер КУ НД, C
Out[11]:
31.01316398643587
In [12]:
КУ_нд = HRSG1p(G_уг, КУ_вд.ts_уг[3], p_0_нд, t_э_нд, dt_уг_нд, dt_и_нд, dD_в_эк = КУ_вд.D_пв)  # КУ НД
КУ_нд.calc()
In [13]:
fig, ax = plt.subplots(figsize = (10,5))
ax.set_title("Котёл-утилизатор низкого давления")
ax.set_xlabel('$Q$, МВт'); ax.set_ylabel('$t$, C')
ax.plot(КУ_нд.Qs/1e6, КУ_нд.ts_уг, label = "Уходящие газы", color = 'red')
ax.plot(КУ_нд.Qs/1e6, КУ_нд.ts_пв, label = "Пар/вода", color = 'green')
ax.grid(); ax.set_xlim(0,); ax.set_ylim(0,); ax.legend();
In [14]:
КУ_нд.D_пв * 3.6  # Паропроизводительность контура низкого давления, т/ч
Out[14]:
42.741700573865366
In [29]:
t_уг_ку_нд = КУ_нд.ts_уг[3]
t_уг_ку_нд
Out[29]:
92.62250708890002
In [16]:
fig, ax = plt.subplots(figsize = (10,5))
ax.set_title("Котёл-утилизатор двух давлений")
ax.set_xlabel('$Q$, МВт'); ax.set_ylabel('$t$, C')
ax.plot(КУ_вд.Qs/1e6, КУ_вд.ts_уг, label = "Уходящие газы", color = 'red')
ax.plot(КУ_вд.Qs/1e6, КУ_вд.ts_пв, label = "Пар/вода ВД", color = 'blue')
ax.plot((КУ_нд.Qs+КУ_вд.Qs[3])/1e6, КУ_нд.ts_уг, color = 'red')
ax.plot((КУ_нд.Qs+КУ_вд.Qs[3])/1e6, КУ_нд.ts_пв, label = "Пар/вода НД", color = 'green')
ax.grid(); ax.set_xlim(0,); ax.set_ylim(0,); ax.legend();

Ссылки¶

  1. Моделирование теплообмена в котле-утилизаторе одного давления
  2. Моделирование процесса расширения пара в паровой турбине
  3. Расчёт теплофизических свойств воды и водяного пара

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