from region2 import Region2
#Создаём объект Область 2
r2 = Region2()
T = 800; p = 10e6
#Рассчитываем теплофизические свойства пара по T и p
props_Tp = r2.props_Tp(T, p)
props_Tp #результат расчёта
#Рассчитываем теплофизические свойства пара по p и h
props_ph = r2.props_ph(p, props_Tp['h'])
props_ph #результат расчёта
#Рассчитываем теплофизические свойства пара по p и s
props_ps = r2.props_ps(p, props_Tp['s'])
props_ps #результат расчёта
#Определение температуры по p и h
r2.T_ph(p, props_Tp['h']) #результат расчёта - температура, К
#Определение температуры по p и s
r2.T_ps(p, props_Tp['s']) #результат расчёта - температура, К
см. в [1] табл. 15 на стр. 17
#Тестовые исходные данные
inputs = [{'T': 300, 'p': 0.0035e6},
{'T': 700, 'p': 0.0035e6},
{'T': 700, 'p': 30e6}]
#Точные значения результата расчёта
true_answers = [{'v': 0.394913866e2, 'h': 0.254991145e7, 'u': 0.241169160e7, 's': 0.852238967e4,
'cp': 0.191300162e4, 'w': 0.427920172e3},
{'v': 0.923015898e2, 'h': 0.333568375e7, 'u': 0.301262819e7, 's': 0.101749996e5,
'cp': 0.208141274e4, 'w': 0.644289068e3},
{'v': 0.542946619e-2, 'h': 0.263149474e7, 'u': 0.246861076e7, 's': 0.517540298e4,
'cp': 0.103505092e5, 'w': 0.480386523e3}]
errs = []
for i in range(len(true_answers)):
props = r2.props_Tp(inputs[i]['T'], inputs[i]['p'])
errs.append({})
for key in true_answers[i].keys():
#относительное отклонение результата расчёта от точного значения, %
errs[i][key] = (props[key] / true_answers[i][key] - 1) * 100
import pandas as pd
table = pd.DataFrame(errs)
#относительные отклонения результата расчёта от точных значений, %
table
см. в [1] табл. 24 на стр. 25
#Тестовые исходные данные
inputs_ph = [{'p': 0.001e6, 'h': 3000e3},{'p': 3e6, 'h': 3000e3},{'p': 3e6, 'h': 4000e3},
{'p': 5e6, 'h': 3500e3},{'p': 5e6, 'h': 4000e3},{'p': 25e6, 'h': 3500e3},
{'p': 40e6, 'h': 2700e3},{'p': 60e6, 'h': 2700e3},{'p': 60e6, 'h': 3200e3}]
#Точные значения результата расчёта
true_answers_ph = [0.534433241e3, 0.575373370e3, 0.101077577e4,
0.801299102e3, 0.101531583e4, 0.875279054e3,
0.743056411e3, 0.791137067e3, 0.882756860e3]
errs_ph = []
for i in range(len(true_answers_ph)):
T = r2.T_ph(inputs_ph[i]['p'], inputs_ph[i]['h'])
errs_ph.append((T / true_answers_ph[i] - 1) * 100)
#Относительные отклонения результата расчёта от точных значений, %
errs_ph
см. в [1] табл. 29 на стр. 29
#Тестовые исходные данные
inputs_ps = [{'p': 0.1e6, 's': 7.5e3},{'p': 0.1e6, 's': 8e3},{'p': 2.5e6, 's': 8e3},
{'p': 8e6, 's': 6e3},{'p': 8e6, 's': 7.5e3},{'p': 90e6, 's': 6e3},
{'p': 20e6, 's': 5.75e3},{'p': 80e6, 's': 5.25e3},{'p': 80e6, 's': 5.75e3}]
#Точные значения результата расчёта
true_answers_ps = [0.399517097e3, 0.514127081e3, 0.103984917e4,
0.600484040e3, 0.106495556e4, 0.103801126e4,
0.697992849e3, 0.854011484e3, 0.949017998e3]
errs_ps = []
for i in range(len(true_answers_ps)):
T = r2.T_ps(inputs_ps[i]['p'], inputs_ps[i]['s'])
errs_ps.append((T / true_answers_ps[i] - 1) * 100)
#Относительные отклонения результата расчёта от точных значений, %
errs_ps
#Проверка Tp_in
#Точки на границе области (с левого нижнего угла по часовой стрелке)
Tp_edge = [{'T': 273.15, 'p': r2.sc.p_T(273.15)},
{'T': 623.15, 'p': r2.sc.p_T(623.15)},
{'T': r2.bound23.T_p(100e6), 'p': 100e6},
{'T': 1073.15, 'p': 100e6},
{'T': 1073.15, 'p': r2.sc.p_T(273.15)}]
Tp_in_edge = []
for point in Tp_edge:
Tp_in_edge.append(r2.Tp_in(point['T'], point['p']))
Tp_in_edge
#Проверка для границы областей 2-3
#Внути области
r2.Tp_in(r2.bound23.T_p(50e6)+1e-5, 50e6)
#Вне области
r2.Tp_in(r2.bound23.T_p(50e6)-1e-5, 50e6)
#Значения T и p вне области
Tp_edge_out = [{'T': 273.15 - 1, 'p': r2.sc.p_T(273.15)+1},
{'T': 623.15 - 1, 'p': r2.sc.p_T(623.15) + 1},
{'T': r2.bound23.T_p(100e6) - 1, 'p': 100e6 + 1},
{'T': 1073.15 + 1, 'p': 100e6 + 1},
{'T': 1073.15 + 1, 'p': r2.sc.p_T(273.15) - 1}]
Tp_in_edge_out = []
for point in Tp_edge_out:
Tp_in_edge_out.append(r2.Tp_in(point['T'], point['p']))
Tp_in_edge_out
#Значения T и p внутри области
Tp_edge_in = [{'T': 273.15 + 1, 'p': r2.sc.p_T(273.15)},
{'T': 623.15 + 1, 'p': r2.sc.p_T(623.15) - 1},
{'T': r2.bound23.T_p(100e6) + 1, 'p': 100e6 - 1},
{'T': 1073.15 - 1, 'p': 100e6 - 1},
{'T': 1073.15 - 1, 'p': r2.sc.p_T(273.15) + 1}]
Tp_in_edge_in = []
for point in Tp_edge_in:
Tp_in_edge_in.append(r2.Tp_in(point['T'], point['p']))
Tp_in_edge_in
#Проверка ph_in
ph_edge = []
for point in Tp_edge:
ph_edge.append({'p': point['p'], 'h': r2.props_Tp(point['T'], point['p'])['h']})
ph_in_edge = []
for point in ph_edge:
ph_in_edge.append(r2.ph_in(point['p'], point['h']))
ph_in_edge
#Левая верхняя точка границы: p и h внутри области
r2.ph_in(ph_edge[1]['p'] - 1, ph_edge[1]['h'] + 1)
#Правая верхняя точка границы: p внутри области, h вне области
r2.ph_in(ph_edge[3]['p'] - 1, ph_edge[3]['h'] + 1)
#Проверка ps_in
#Точки на границе области
ps_edge = []
for point in Tp_edge:
ps_edge.append({'p': point['p'], 's': r2.props_Tp(point['T'], point['p'])['s']})
ps_in_edge = []
for point in ps_edge:
ps_in_edge.append(r2.ps_in(point['p'], point['s']))
ps_in_edge
#Правая верхняя точка границы: p и s внутри области
r2.ps_in(ps_edge[3]['p'] - 1, ps_edge[3]['s'] - 1)
#Правая нижняя точка границы: p внутри области, s вне области
r2.ps_in(ps_edge[4]['p'] + 1, ps_edge[4]['s'] + 1)
Инженерные расчёты на Python, С.В. Медведев, 2020
Использование Python и Jupyter Notebook для инженерных расчётов, С.В. Медведев, 2020