В статье приведён пример использования написанного на Python класса SaturationCurve (скачать), позволяющего определять давление насыщения водяного пара по заданной температуре и температуру насыщения по заданному давлению. При реализации класса была использована методика из [1].
import numpy as np
import matplotlib.pyplot as plt
#Импортируем класс SaturationCurve
from saturationcurve import SaturationCurve
#Создаём объект класса SaturationCurve
sc = SaturationCurve()
#Допустимый диапазон давлений [611,213 Па; 22.064 МПа]
p_left = sc.p_min; p_right = sc.p_max
#Допустимый диапазон температур [273,15 K; 647,096 K]
t_left = sc.T_min - 273.15; t_right = sc.T_max - 273.15
p0 = np.linspace(p_left, p_right, 501)
t = np.zeros(p0.shape[0], dtype=float)
for i in range(p0.shape[0]):
t[i] = sc.t_p(p0[i])
#plt.rcParams['figure.figsize'] = [10, 7]
#plt.rcParams.update({'font.size': 16})
plt.plot(p0 / 1e6, t)
plt.title('Температура насыщения при различных значениях давления')
plt.xlabel('$p, МПа$'); plt.ylabel('$t, C$')
plt.xlim (0, p_right/1e6); plt.ylim (t_left, t_right)
plt.grid()
t0 = np.linspace(t_left, t_right, 201)
p = np.zeros(t0.shape[0], dtype=float)
for i in range(t0.shape[0]):
p[i] = sc.p_t(t0[i])
plt.plot(t0, p / 1e6)
plt.title('Давление насыщения при различных значениях температуры')
plt.xlabel('$t, C$'); plt.ylabel('$p, МПа$')
plt.xlim (0, t_right); plt.ylim (0, p_right/1e6);
plt.grid()
Ts = [300, 500, 600]; ps =[]
for T in Ts:
ps.append(sc.p_T(T) / 1e6)
ps
[0.0035365894130130106, 2.638897756273222, 12.344314578376594]
ps = [0.1e6, 1e6, 10e6]; Ts =[]
for p in ps:
Ts.append(sc.T_p(p))
Ts
[372.7559186113376, 453.0356323914666, 584.1494879985282]
import pandas as pd
ts = np.linspace(0, 100, 101) # рассматриваемый диапазон температур [0; 100] С
ps = []
for t in ts:
ps.append(round(sc.p_t(t),1))
#Сохранение результатов расчёта в файл html (см [2])
#table = pd.DataFrame({'p, Па': ps}, index = ts)
#table.to_html('table.html')
Инженерные расчёты на Python, С.В. Медведев, 2020-2021
Использование Python и Jupyter Notebook для инженерных расчётов, С.В. Медведев, 2020-2021