-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTsaturation.py
62 lines (52 loc) · 2.53 KB
/
Tsaturation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#! python
# -*- coding: utf-8 -*-
# Скрипт содержит функции определения температур насыщения и уставку защиты
def Tsaturation(Ps=1):
''' Функция определения температуры насыщения по известному давлению, МПа
выполнена на основании документа IF97-Rev (IAPWS R7-97(2012))
проверка условия допустимости применения функции: 611,213 Па <= p <= 22,064 МПа '''
if Ps <= 0.000611213:
return 0
elif Ps >= 22.064:
return 310.999488 # в градусах Цельсия
else:
# коэф-ты ряда
n = [0.11670521452767 * (10 ** 4), -0.72421316703206 * (10 ** 6),
-0.17073846940092 * (10 ** 2), 0.12020824702470 * (10 ** 5),
-0.32325550322333 * (10 ** 7), 0.14915108613530 * (10 ** 2),
-0.48232657361591 * (10 ** 4), 0.40511340542057 * (10 ** 6),
-0.23855557567849, 0.65017534844798 * (10 ** 3)]
# условия приведения
T_mark = 1 # T = 1 K
P_mark = 1 # P = 1 МПа
# определение беты и беты в квадрате (для удобства)
BETA = (Ps / P_mark) ** 0.25
BBETA = BETA ** 2
# расчёт коэф-тов для основной формулы
E = BBETA + n[2] * BETA + n[5]
F = n[0] * BBETA + n[3] * BETA + n[6]
G = n[1] * BBETA + n[4] * BETA + n[7]
D = (2 * G) / (-1 * F - (F ** 2 - 4 * E * G) ** 0.5)
# расчёт значения темпр.насыщения
Ts = n[9] + D - ((n[9] + D) ** 2 - 4 * (n[8] + n[9] * D)) ** 0.5
Ts = Ts / 2.0
# приведение температуры
Ts = round(Ts * T_mark, 6)
# Перевод в градусы Цельсия
Ts = Ts - 273.15
return Ts
def Tprotection(P):
''' Функция возвращает уставку защиты по острому пару
параметр P ожидается в МПа '''
Tz_aux = 270.0 # Мин.значение температуры
Tz = max(Tz_aux, 14 * P + 254)
return Tz
""" Блок тестирования
# для верификации расчёта по IF97-Rev
print(Tsaturation(0.1))
print(Tsaturation())
print(Tsaturation(10))
# для проверки исключения
print(Tsaturation(611 * 0.000001))
print(Tsaturation(22.065))
"""