Представим гипотетическую ситуацию, что пчела шла-шла и набрела на ячейку. И зашла в неё погреться. Согреется пчела или нет? Для ответа на этот вопрос составим систему уравнений теплового баланса, как в заметке Режим печки, но добавим туда воздух в ячейке и восковую стенку:
$$\left\{\begin{aligned}C_{th}\frac{dT_{th}}{dt}&=P_t+p_{rth}-\frac{T_{th}-T_{hd}}{r_{th\_hd}}-\frac{T_{th}-T_{ab}}{r_{th\_ab}}-\frac{T_{th}-T_{ai}}{r_{th\_ai}}\\ C_{hd}\frac{dT_{hd}}{dt}&=p_{rhd}+\frac{T_{th}-T_{hd}}{r_{th\_hd}}-\frac{T_{hd}-T_{ai}}{r_{hd\_ai}}-q_{e\_hd}\\ C_{ab}\frac{dT_{ab}}{dt}&=p_{rab}+\frac{T_{th}-T_{ab}}{r_{th\_ab}}-\frac{T_{ab}-T_{ai}}{r_{ab\_ai}}-\frac{T_{ab}-T_{air}}{r_{ab\_air}}-q_{e\_ab} \\C_{ai}\frac{dT_{ai}}{dt}&=\frac{T_{th}-T_{ai}}{r_{th\_ai}}+\frac{T_{hd}-T_{ai}}{r_{hd\_ai}}+\frac{T_{ab}-T_{ai}}{r_{ab\_ai}}-\frac{T_{ai}-T_{wall}}{r_{ai\_wall}}-\frac{T_{ai}-T_{air}}{r_{ai\_air}}\\C_{wall}\frac{dT_{wall}}{dt}&=p_{r\_wall}+\frac{T_{ai}-T_{wall}}{r_{ai\_wall}}-\frac{T_{wall}-T_{air}}{r_{wall\_air}}\end{aligned}\right.\tag{1},$$
где \(T_{ai}\) - температура воздуха в ячейке; \(C_{ai}\) - его теплоёмкость; соответственно, \(T_{wall}\) и \(C_{wall}\) - температура и теплоёмкость стенки. Первое уравнение - для торакса, второе - для головы, третье - для брюшка, четвертое - для воздуха в ячейке, пятое - для восковой стенки. Поскольку толщина стенки очень мала (~0.1 мм) температура внутренней и наружной поверхности принята одинаковой, и тепловое сопротивление стенки исключено из-за малости (посчитал - меньше 0.5% от \(r_{wall\_air}\)).
Оценим значения температурных сопротивлений.
\(r_{th\_hd} =\frac{l}{s_r\cdot k_{hd}}\) - сопротивление теплопередаче от торакса голове, меняется в зависимости от температуры, т.к. от температуры меняется \(l\) - средний зазор - в диапазоне от 0.1 мм при 40°С до 0.8 мм при 10°С (см. Температура и мощность термогенеза пчелы). Поэтому при \(k_{hd}=0.065~Вт/м°С\) и \(s_r =12.57 мм²\) (площадь сечения цилиндра пчелы), \(r_{th\_hd}\) будет меняться от 162 до 925°С/Вт.
Аналогично для теплового сопротивления между тораксом и брюшком: \(r_{th\_ab}\) при \(k_{ab}=0.042~Вт/м°С\) - будет меняться от 251 до 1431°С/Вт.
Коэффициенты пропорциональности \(k_{hd}\) и \(k_{ab}\) имеют размерность и смысл коэффициентов теплопроводности, а отношение \(\frac{k_{hd}}{l}\) - размерность и смысл коэффициента теплоотдачи \(h\). Коэффициент \(h\) нередко называют также коэффициентом конвекции, хотя он включает в себя общую контактную теплопередачу, т.е. конвекцию и теплопроводность, но вклад конвекции обычно - на открытом воздухе - значительно больше. Другое дело в ячейке - тут конвекция возможна только в плоскости входа, площадь которого (\(s_{inlet}=24.3 мм²\)) на порядок меньше, чем внутренняя площадь ячейки (\(s_{wall}=237 мм²\)) (см. Пчелиная ячейка). Для состояния покоя на открытом воздухе был определен коэффициент \(h \approx 11~Вт/(м²\cdot°C)\), поэтому для теплоотдачи внутри ячейки логично было бы задать \(h_{in}=1.1~Вт/(м²\cdot°C)\). Но сравним это значение с отношением теплопроводности воздуха к толщине слоя, равного диаметру ячейки \(\frac {\lambda}{d}=0.025/(5.3\cdot10^{-3})\) - это будет \(4.7~Вт/(м²\cdot°C)\). Из чего следует, что для пустой ячейки значение \(h\) не может быть меньше \(4.7~Вт/(м²\cdot°C)\). При нахождении в ячейке пчелы воздушный зазор между ней и стенкой ячейки будет всего \(\Delta = (5.3 - 4)/2 = 0.65 мм\), и, значит, \(h_{in}=\lambda/\Delta\) будет равен 38.5 Вт/(м²°C).
Теперь можно посчитать сопротивления между пчелой и воздухом в ячейке \(r_{th\_ai}\) , \(r_{hd\_ai}\) и \(r_{ab\_ai}\).
\(r_{th\_ai}=1/(h_{in}s_{th})\), \(s_{th}=4.5\pi 4\) = 56.55 мм².
\(r_{th\_ai}=1/(38.5\cdot56.55\cdot 10^{-6})=459~ °C/Вт\).
\(r_{hd\_ai}=1/(h_{in}s_{hd})\), \(s_{hd}=1.5\pi 4 + s_r\) = 18.85 + 12.57 = 31.42 мм². \(r_{hd\_ai}=1/(38.5\cdot31.42\cdot 10^{-6})=827~ °C/Вт\).
\(r_{ab\_ai}=1/(h_{in}s_{ab})\), \(s_{ab}=6\pi 4\) = 75.40 мм².
\(r_{hd\_ai}=1/(38.5\cdot75.40\cdot 10^{-6})=344~ °C/Вт\).
Хвостовая часть брюшка "смотрит" из входа в ячейку, поэтому для неё можно применить значение коэффициента \(h=11 Вт/(м²°C)\):
\(r_{ab\_air}=1/(h\cdot s_r)=1/(11\cdot 12.57 \cdot 10^{-6}) = 7232 °C/Вт\).
Тепловое сопротивления между воздухом в ячейке и стенкой:
\(r_{ai\_wall}=1/(h_{in}s_{wall})=1/(38.5\cdot237\cdot 10^{-6})=110°C/Вт\);
между воздухом в ячейке и наружным воздухом:
\(r_{ai\_air}=1/(h(s_{inlet}-s_r))=1/(11(24.3-12.7)\cdot10^{-6}) = 7837°C/Вт\);
между стенкой и наружным воздухом:
\(r_{wall\_air}=1/(h\cdot s_{wall})=1/(11\cdot237\cdot10^{-6})=384°C/Вт\).
Здесь мы взяли значение \(h = 11Вт/(м²°C)\), как для пчелы на открытом воздухе, но у ячейки нет опушения, поэтому реальное значение было бы больше, а тепловой сопротивление меньше. Однако, отдельная ячейка в естественных условиях не встречается - только в составе сот, поэтому если пчела окажется в соте - в ячейке, окруженной другими ячейками (тоже своеобразное "опушение" для удержания неподвижным теплоизолирующего слоя воздуха) - то значение \(h\) здесь, как мы отметили ранее, должно быть не меньше \(4.7 Вт/(м²°C)\), соответственно, сопротивление \(r_{wall\_air}\) будет не более 899°С/Вт. Это значение и примем пока - в качестве начального приближения.
Теплоемкости:
- торакса \(C_{th} = m_{th} c = 32.5 \cdot10^{-6} \times 3500 = 114~мДж/°С\),
- головы \(C_{hd}=m_{hd} c =10.25 \cdot 10^{-6} \times 3500 =36~мДж/°С\),
- брюшка \(C_{ab}=m_{ab} \cdot c=57 \cdot 10^{-6} \times 3500 = 200~мДж/°С\),
- воздуха, не вытесненного пчелой из ячейки \(C_{ai}=\rho_{ai}(v_{cell}-v_{bee})c_{ai} =1.205 (296-176)10^{-9} \times 1005 = 0.145~мДж/°С\),
- стенки ячейки \(C_{wall}=\rho_{wax} s_{wall} a_{wall} c_{wax}=960 \times 237 \cdot10^{-6} \times 0.1 \cdot 10^{-3} \times 2000 =45.5~мДж/°С\).
В расчете мощности излучения учтем, что "обмен" излучением происходит в основном со стенкой, а затем - стенки с окружающими предметами:
$$\left\{\begin{aligned}p_{rth}&= - \sigma\epsilon (T_{th}^4 - T_{wall}^4)\\p_{rhd} &= - \sigma\epsilon (T_{hd}^4 - T_{wall}^4)\\p_{rab}&= - \sigma\epsilon (T_{ab}^4 - T_{wall}^4)\\p_{r\_{wall}}&= - \sigma\epsilon_{wall} (T_{wall}^4 - T_{air}^4) +(-p_{rth} - p_{rhd} - p_{rab} )\end{aligned}\right.\tag{2},$$ где \(\epsilon_{wall} \) - коэффициент поглощения излучения материалом стенки, пока положим равным \(\epsilon\), т.е. 0.22, и назовём это "вариант 1", имея в виду, что такое значение коэффициента поглощения вероятно у светлых сот. Потом рассмотрим вариант темных сот.
При таких исходных данных и температуре воздуха 12°С переходной процесс имеет следующий вид:

Картина весьма неожиданная, если не сказать больше. Температура воздуха в ячейке поднялась, температура торакса и головы снизилась, а брюшка - возросла. Трудно ответить на вопрос согрелась ли здесь пчела. Средневзвешенная температура почти не изменилась, даже чуть уменьшилась, но температура в ячейке поднялась довольно быстро с 12 до 18°С и мощность термогенеза упала с 20 до 16 мВт. Температура торакса медленно (в течение получаса) снизилась с 25.5 до 23.5°С, головы - с 21.8 до 19.8°С, а температура брюшка поднялась 17.3 до 18.4°С. Стенка ячейки нагрелась до 16.6°С. Но раз мощность термогенеза снизилась, видимо, пчеле стало теплее.
Если ячейка окружена другими пустыми ячейками, то мощность уменьшается до 14.6 мВт, при этом температура стенки повышается до 18.5°С, а воздуха в ячейке - до 19.5°С:
В этом случае средняя температура немного, но растет, поэтому точно можно утверждать, что пчела согревается. Однако основной парадокс сохранился - температура воздуха в ячейке поднялась, а температура торакса и головы снизилась. Тогда как на открытом воздухе с ростом температуры воздуха растут и температуры всех частей тела пчелы.
Этот парадокс объясняется тем, что из-за малости воздушного зазора коэффициент теплоотдачи в ячейке оказался больше, чем на открытом воздухе (38.5 против 11), несмотря на практическое отсутствие конвекции. Но мощность термогенеза пчела снизила, исходя из "показаний датчиков температуры воздуха", которые, как известно, у ней расположены в усиках.
Посмотрим, что будет при 36°С:
Как видим, итак небольшая мощность 2.53 мВт снизилась до 2.42 мВт, а температура головы практически сравнялась с температурой стенки. Средняя температура незначительно, но растёт. Вот тут возникает вопрос, а какой должна быть теплоотдача через пустые соседние ячейки, чтобы средняя температура осталась без изменения. Ведь мы задали теплоотдачу 4.7, определяемую теплопроводностью, заметив, что меньше быть не может. Но там же открытый вход и конвекция есть, значит реально - больше. Подбираем \(h=9~Вт/(м²\cdot°C)\) и получаем постоянную среднюю температуру:Если теперь опять задать температуру 12°С, тоувидим, что средняя температура также практически не меняется. Если бы мы не знали, что температуры частей тела существенно различаются, то могли бы сказать: "Температура пчелы не изменяется при входе пчелы в ячейку и выходе из нее". Так как пчела может неоднократно входить в ячейку и выходить из нее, то энергетически (и, видимо, биологически) выгодно постоянство температуры. Это можно трактовать, как эволюционный этап формирования теплокровности - природа подтвердила повышенную жизнеспособность тех, кто избегает лишних колебаний своей температуры.
Вот так, пчела шла-шла и набрела на ячейку, а мы пошли за ней и набрели на ещё один пчелиный секрет. Предполагаю, что их ещё немало разбросано впереди.
Видим, что темный сот оказался несколько "холоднее" светлого: температура воздуха в нем примерно на градус ниже, а расходуемый пчелой термогенез - на пол милливатта больше. Но и в этом случае ячейка - комфортное помещение для пчелы, позволяющее ей согреться.
🐝 Python-скрипт
import numpy as np
import matplotlib.pyplot as plt
import math
from scipy.optimize import fsolve
# Параметры
d_bee = 0.004
s_r = (math.pi * (d_bee / 2) ** 2)
h_head, h_thorax, h_ab = 0.0015, 0.0045, 0.006
A_head = math.pi * d_bee * h_head + s_r
A_thorax = math.pi * d_bee * h_thorax
A_ab = math.pi * d_bee * h_ab + s_r
A_bee = A_thorax + A_head + A_ab
# print(A_thorax, A_head, A_ab, A_bee)
k_hd, k_ab = 0.065, 0.042
# L_gap = 0.00055
ρ_air, k_air, c_air = 1.205, 0.025, 1005
T_air = 12
pitch = 0.0054 # шаг ячейки
variant = 3 # 1 ... 3; вариант 1 соответствует первоначальной гипотезе eps_wall = eps = 0.22
L_w = [0.0001, 0.00014, 0.0002]
L_b = [0.00013, 0.00055, 0.0012]
C_w = [53.324, 103.878, 140.235]
L_wall = L_w[variant-1]
L_bottom = L_b[variant-1]
d_cell = pitch - L_wall
A_wall = math.pi * d_cell * (h_head + h_thorax + h_ab)
ρ_wax, λ_wax, c_wax = 960, 0.25, 2000
V_wall = A_wall * L_wall
C_wall = ρ_wax * V_wall * c_wax # ≈ 0.015 Дж/°C
print(C_wall)
C_wall = C_w[variant-1]*1e-3
print(C_wall)
print('Вариант ', variant, ': толщина стенки ', L_wall, 'толщина дна ', L_bottom)
sigma = 5.67e-8
t0 = -273.1
eps = 0.22
eps_w = [0.22, 0.5, 0.9]
eps_wall = eps_w[variant-1]
# Теплоемкости
m_head, m_thorax, m_ab = 10.25e-6, 32.5e-6, 57e-6
c = 3500
C_head, C_thorax, C_ab = m_head * c, m_thorax * c, m_ab * c
# Внутренние сопротивления тела
l = (1.3493 * np.exp(-0.058 * T_air)) * 1e-3 # средний зазор от торакса до головы и брюшка
ke0 = 3e-5 # Вт/°C коэффициент испарения в покое
R_th_hd = l / (k_hd * s_r)
R_th_ab = l / (k_ab * s_r)
# print(R_th_hd, R_th_ab)
# Параметры для открытого пространства
h_open = 11 # Коэффициент конвекции [Вт/(м²·°C)]
R_head_air_open = 1 / (h_open * A_head)
R_thorax_air_open = 1 / (h_open * A_thorax)
R_ab_air_open = 1 / (h_open * A_ab)
# Параметры в ячейке
h_cell = 12e-3 # высота ячейки
a_cell = d_cell / 2 / np.sin(np.pi / 3) # сторона шестиугольника
s_inlet = d_cell * a_cell * 3 / 2 # площадь входа
dh = 1e-3
s_bottom = 3 * (d_cell * np.hypot(a_cell, dh) / 2) # площадь дна ячейки
s_wall = s_bottom + 6 * a_cell * (h_cell - dh / 2) # площадь боковых граней ячейки
v_cell = s_inlet * h_cell # объем ячейки
v_in = v_cell - s_r * (h_head + h_thorax + h_ab) # объем не вытесненного пчелой воздуха в ячейке
m_ai = v_in * ρ_air # его масса
C_ai = m_ai * c_air # и теплоемкость
C_cell = v_cell * ρ_air * c_air
#print('C_cell = ', C_cell, v_cell, ρ_air, c_air)
#print('C_ai = ', C_ai, '(C_thorax = ', C_thorax, ')')
h_ = k_air / d_cell # коэффициент теплоотдачи через ячейку
h_in = k_air / ((d_cell - d_bee) / 2) # коэффициент теплоотдачи через зазор между пчелой и стенкой
# h_in = 11 * s_inlet / A_bee
R_th_ai = 1 / (h_in * A_thorax)
R_hd_ai = 1 / (h_in * A_head)
R_ab_ai = 1 / (h_in * (A_ab - s_r))
print('R_th_ai, R_hd_ai, R_ab_ai = ', R_th_ai, R_hd_ai, R_ab_ai)
R_ab_ = 1 / (h_open * s_r)
R_ai_wall = 1 / (h_in * s_wall)
print('R_ai_wall=', R_ai_wall)
R_ai_air = 1 / (h_open * (s_inlet - s_r))
h = h_open
h = h_
h = 9
R_wall_air = 1 / (h * s_wall)
print('R_wall_air = ', R_wall_air)
Pmin = 0.2e-3
# Функция термогенеза
def metabolic_power(T_air):
power = (29.133 - 0.739 * T_air) * 1e-3
return max(power, Pmin)
def calculate_initial_temperatures(T_air):
"""Вычисление равновесных температур тела пчелы в открытом улье"""
l = (1.3493 * np.exp(-0.058 * T_air)) * 1e-3 # средний зазор от торакса до головы и брюшка
R_th_hd = l / (k_hd * s_r)
R_th_ab = l / (k_ab * s_r)
def equations(vars):
Thd, Tth, Tab = vars
q_evap_hd = ke0 * Tth
q_evap_ab = ke0 * Tth
P_rest = metabolic_power(T_air) # Стартовое тепловыделение
p_s_th = - eps * sigma * ((Tth - t0) ** 4 - (T_air - t0) ** 4) * A_thorax
p_s_hd = - eps * sigma * ((Thd - t0) ** 4 - (T_air - t0) ** 4) * A_head
p_s_ab = - eps * sigma * ((Tab - t0) ** 4 - (T_air - t0) ** 4) * A_ab
eq1 = p_s_hd + (Tth - Thd) / R_th_hd - (Thd - T_air) / R_head_air_open - q_evap_hd
eq2 = P_rest + p_s_th - (Tth - Thd) / R_th_hd - (Tth - Tab) / R_th_ab - (Tth - T_air) / R_thorax_air_open
eq3 = p_s_ab + (Tth - Tab) / R_th_ab - (Tab - T_air) / R_ab_air_open - q_evap_ab
return [eq1, eq2, eq3]
# Решение системы
sol = fsolve(equations, [T_air, T_air, T_air])
return sol
# Рассчитываем начальные температуры
Thd_init, Tth_init, Tab_init = calculate_initial_temperatures(T_air)
print(f"Начальные температуры при T_air = {T_air}°C:")
print(f"Торакс: {Tth_init:.2f}°C")
print(f"Голова: {Thd_init:.2f}°C")
print(f"Брюшко: {Tab_init:.2f}°C")
p_plus = 45e-3
p_plus = 0.
def model_in_cell():
# Начальные условия из Этапа 1
Thd, Tth, Tab = Thd_init, Tth_init, Tab_init
Twall = Tai = T_air
P_rest = metabolic_power(Tai) * 1e3
# Массивы для результатов
Thd_arr, Tth_arr, Tab_arr, Tai_arr, Twall_arr = [Thd], [Tth], [Tab], [Tai], [Twall]
T_mean = [(m_thorax * Tth + m_head * Thd + m_ab * Tab) / (m_thorax + m_head + m_ab)]
P_rest_arr = [P_rest]
q_hd_arr, q_ab_arr, p_th_arr, p_hd_arr, p_ab_arr, p_wall_arr = [], [], [], [], [], []
for t in range(steps):
def equations(vars):
Thd, Tth, Tab, Tai, Twall = vars
q_evap_hd = ke0 * Tth
q_evap_ab = ke0 * Tth
P_rest_current = metabolic_power(Tai) # Стартовое тепловыделение
p_s_th = - sigma * eps * ((Tth - t0) ** 4 - (Twall - t0) ** 4) * A_thorax
p_s_hd = - sigma * eps * ((Thd - t0) ** 4 - (Twall - t0) ** 4) * A_head
p_s_ab = - sigma * eps * ((Tab - t0) ** 4 - (Twall - t0) ** 4) * (A_ab - s_r)
p_s_wall = (- sigma * eps_wall * ((Twall - t0) ** 4 - (T_air - t0) ** 4) * s_wall
+ eps_wall * (- p_s_th - p_s_hd - p_s_ab))
# Уравнение для торакса:
eq1 = C_thorax * (Tth - Tth_arr[-1]) - dt * (
P_rest_current + p_s_th + p_plus # + 45e-3 при режиме печки
- (Tth - Thd) / R_th_hd
- (Tth - Tab) / R_th_ab
- (Tth - Tai) / R_th_ai
)
# Уравнение для головы:
eq2 = C_head * (Thd - Thd_arr[-1]) - dt * (
p_s_hd
+ (Tth - Thd) / R_th_hd
- (Thd - Tai) / R_hd_ai
- q_evap_hd
)
# Уравнение для брюшка:
eq3 = C_ab * (Tab - Tab_arr[-1]) - dt * (
p_s_ab
+ (Tth - Tab) / R_th_ab
- (Tab - Tai) / R_ab_ai
- (Tab - T_air) / R_ab_
- q_evap_ab
)
# Уравнение для воздуха в ячейке:
eq4 = C_ai * (Tai - Tai_arr[-1]) - dt * (
+ (Tth - Tai) / R_th_ai
+ (Thd - Tai) / R_hd_ai
+ (Tab - Tai) / R_ab_ai
- (Tai - Twall) / R_ai_wall
- (Tai - T_air) / R_ai_air
)
# Уравнение для стенки:
eq5 = C_wall * (Twall - Twall_arr[-1]) - dt * (
p_s_wall
+ (Tai - Twall) / R_ai_wall
- (Twall - T_air) / R_wall_air
)
return [eq1, eq2, eq3, eq4, eq5]
sol = fsolve(equations, [
Thd, Tth, Tab, Tai, Twall
])
T_hd, T_th, T_ab, T_ai, T_wall = sol
if t % 10 == 0:
Thd_arr.append(T_hd)
Tth_arr.append(T_th)
Tab_arr.append(T_ab)
P_rest_arr.append((metabolic_power(T_ai) + p_plus) * 1e3)
Tai_arr.append(T_ai)
Twall_arr.append(T_wall)
T_mean.append((m_thorax * T_th + m_head * T_hd + m_ab * T_ab) / (m_thorax + m_head + m_ab))
q_hd_arr.append(ke0 * T_th)
q_ab_arr.append(ke0 * T_th)
p_th_arr.append(- sigma * eps * ((Tth - t0) ** 4 - (T_wall - t0) ** 4) * A_thorax)
p_hd_arr.append(- sigma * eps * ((Thd - t0) ** 4 - (T_wall - t0) ** 4) * A_head)
p_ab_arr.append(- sigma * eps * ((Tab - t0) ** 4 - (T_wall - t0) ** 4) * (A_ab - s_r))
p_wall_arr.append(- sigma * eps_wall * ((T_wall - t0) ** 4 - (T_air - t0) ** 4) * s_wall
- eps_wall * (p_th_arr[-1] + p_hd_arr[-1] + p_ab_arr[-1]))
return (Thd_arr, Tth_arr, Tab_arr, P_rest_arr, Tai_arr, Twall_arr, T_mean, q_hd_arr, q_ab_arr, p_th_arr, p_hd_arr,
p_ab_arr, p_wall_arr)
# Запуск модели
dt = 1
time_total = 1800 # секунд
steps = int(time_total / dt)
results = model_in_cell()
T_head, T_thorax, T_ab, P_rest, T_ai, T_wall, T_ave, q_hd, q_ab, p_th, p_hd, p_ab, p_wall = results
# print(p_wall)
# Временная шкала
t = np.linspace(0, time_total, len(T_thorax))
# График температур
# plt.figure(figsize=(7, 4))
fig, ax = plt.subplots()
ax1 = ax.twinx()
ax.plot(t, T_thorax, 'r-', label='Торакс')
ax.plot(t, T_head, 'b-', label='Голова')
ax.plot(t, T_ab, 'g-', label='Брюшко')
ax.plot(t, T_ave, 'r:', label='Средняя')
ax.plot(t, T_ai, 'b:', label='Воздух в ячейке')
ax.plot(t, T_wall, label='Стенка')
ax1.plot(t, P_rest, 'k-', label='Мощность')
ax.axhline(T_air, color='b', linestyle='--', label='Воздух')
ax.set_xlabel('Время (с)')
ax.set_ylabel('Температура (°C)')
ax1.set_ylabel('Мощность (мВт)')
plt.title('Переходной процесс при входе пчелы в ячейку \nпри T = ' + str(int(T_air)) + ' (h = ' + str(h)[:3]
+ ', вариант ' + str(variant) + ')')
ax.legend(loc='upper right')
ax1.legend(loc='center right')
plt.grid(True)
ax.grid(which='minor', linestyle=':')
ax.grid(which='both', linestyle='-')
plt.show()
# Стационарные значения
print(f"Температура торакса: {T_thorax[-1]:.2f}°C")
print(f"Тепловыделение: {P_rest[-1]:.2f} мВт")
def draw_p(t, conv, q, p, p_w):
plt.figure(figsize=(8, 4))
plt.plot(t, conv, 'g-', label='конвекция')
plt.plot(t, -q, 'b-', label='испарение')
plt.plot(t, p, 'r-', label='излучение')
plt.plot(t, p_w, 'r:', label='излучение стенки')
plt.xlabel('Время, с')
plt.ylabel('Мощность, мВт')
plt.title('Мощность, отводимая испарением и излучением')
plt.legend()
plt.grid()
plt.minorticks_on(), plt.grid(which='minor', linestyle=':'), plt.tight_layout()
plt.show()
q = (np.array(q_hd) + np.array(q_ab)) * 1000
p = (np.array(p_th) + np.array(p_hd) + np.array(p_ab)) * 1000
p_w = np.array(p_wall) * 1000
conv = - np.array(P_rest[1:]) + q + p
# draw_p(t[1:], conv, q, p, p_w)





Комментарии
Отправить комментарий