ЛБ1
.docx
Инженерная школа природных ресурсов
Направление подготовки Химическая технология
Отделение химической инженерии
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА PYTHON
Отчет по лабораторной работе № 1
Введение в язык Python
Выполнил студент гр. ХИМ54 А.В. Чижова
(Подпись)
13.10.2025 г.
Отчет принят:
Преподаватель
доцент ОХИ ИШПР, к.т.н. В.А. Чузлов
(Подпись)
_____ _____________ 2025 г.
Томск 2025 г.
Задание 1
Средняя относительная плотность смеси жидких компонентов определяется по правилу аддитивности:
|
(1) |
|
(2) |
Где
,
,
…,
– относительные плотности компонентов
смеси;
,
,…,
– объемы компонентов,
;
,
,…,
– объемные доли компонентов;
,
,…,
– массы компонентов, кг;
,
,…,
– массовые доли компонентов.
Определить
относительную плотность смеси, состоящей
из 120 кг бензина плотностью
;
120 кг керосина плотностью
и 100 кг атмосферного газойля плотностью
.
Программная реализация:
import math
m1, d1 = 120, 0.7249
m2, d2 = 120, 0.804
m3, d3 = 100, 0.8418
m = m1 + m2 + m3
d_cm = m / (m1/d1 + m2/d2 + m3/d3)
print("Относительная плотность смеси равна", d_cm)
Ответ:
Относительная плотность смеси равна 0.7841565896961592
Задание 2
Теплота испарения – теплота, поглощаемая жидкостью в процессе её превращения в насыщенный пар при постоянных давлении и температуре; представляет собой разность энтальпий насыщенного пара и насыщенной жидкости при одной и той же температуре.
Для неполярных соединений при атмосферном давлении для расчета мольной теплоты испарения (кДж/кмоль) используется уравнение Кистяковского:
|
(3) |
Где
– средняя молярная температура кипения,
К.
Для расчета теплот испарения нефтепродуктов (кДж/кг) предложена формула Уэйра и Итона:
|
(4) |
Где – средняя молярная температура кипения, К.
Относительную
плотность
можно
рассчитать по уравнению:
|
(5) |
Узкая
нефтяная фракция имеет
и относительную плотность
.
Определить теплоту её испарения,
используя формулы (3), (4).
Программная реализация:
import math
t_C = 140
d_0 = 0.7890
t = t_C + 273.15
d = d_0 + 0.0035 / d_0
r1 = 8.914 * t * math.log(82.06 * t)
r2 = 993.5 - 661.5 * d - t * (1.733 - 1.813 * d) - t ** 2 * (0.00059 * d - 0.00015)
print("Мольная температура испарения по уравнению Кистяковского:", r1, "кДж/кмоль")
print("Теплота испарения по формуле Уэйра-Итона:", r2, "кДж/кг")
Ответ:
Мольная температура испарения по уравнению Кистяковского: 38416.44875843472 кДж/кмоль
Теплота испарения по формуле Уэйра-Итона: 292.66712294849833 кДж/кг
Задание 3
Давление насыщенных паров (Па) н-алканов и узких нефтяных фракций определяется по уравнению Ашворта:
|
(6) |
в которой
|
(7) |
|
(8) |
Где
– температура кипения при давлении Р,
К;
– нормальная
температура кипения, К.
Определить давление насыщенных паров при 105°С узкой фракции, имеющей tср = 100°С.
Программная реализация:
import math
t, t0 = 105, 100
ft = 1250 / (math.sqrt((t + 273.15) ** 2 + 108000) - 307.6) - 1
ft0 = 1250 / (math.sqrt((t0 + 273.15) ** 2 + 108000) - 307.6) - 1
r = 7.6715 - 2.68 * ft / ft0
p = 10 ** r + 3158
print("Давление насыщенных паров равно", p, "Па")
Ответ:
Давление насыщенных паров равно 116130.89032683981 Па
Задание 4
При атмосферном давлении нефтяная фракция имеет среднюю температуру кипения 110°С. При помощи уравнения Ашворта, определите среднюю температуру кипения данной фракции при давлении 0.35 МПа. Используйте оператор цикла for или while .
Кипение жидкости наступает в тот момент, когда давление ее насыщенных паров становится равным внешнему давлению. Таким образом, задача сводится к подбору температуры T в уравнении (7). Шаг изменения температуры можно принять равным 0.2 K. Решение будет считаться найденным, если абсолютная разность между заданным значением давления и давлением, рассчитанным по уравнению Ашворта, не будет превышать 2 кПа. Максимальное допустимое число итераций примите равным 10000.
Программная реализация:
import math
t0_C = 110
t0 = t0_C + 273.15
p = 0.35e6
max_i = 10000
ft0 = 1250 / (math.sqrt(t0**2 + 108000) - 307.6) - 1
t = t0
step = 0.2
i = 0
found = False
while i < max_i:
ft = 1250 / (math.sqrt(t**2 + 108000) - 307.6) - 1
r = 7.6715 - 2.68 * ft / ft0
P = 10**r + 3158
error = abs(P - p)
if error <= 2e3:
found = True
break
if P < p:
t += step
else:
t -= step
i += 1
if found:
print(f"Найдено решение за {i} итераций:")
print(f"Температура кипения: {t - 273.15} °C")
print(f"Температура кипения: {t} K")
print(f"Расчетное давление: {P} Па")
print(f"Целевое давление: {p} Па")
print(f"Погрешность: {error} Па")
else:
print(f"Решение не найдено за {max_i} итераций")
print(f"Лучшее приближение: t = {t - 273.15} °C, P = {P} Па")
Ответ:
Найдено решение за 263 итераций:
Температура кипения: 162.599999999997 °C
Температура кипения: 435.749999999997 K
Расчетное давление: 349290.6810237278 Па
Целевое давление: 350000.0 Па
Погрешность: 709.3189762721886 Па
