Пчеле для полёта необходима температура торакса не ниже 27°C. Однако, если мы посмотрим на график температуры пчелы в покое в заметке Температура и мощность термогенеза пчелы, то увидим, что это условие обеспечивается в пасмурную погоду только при температуре воздуха выше 17°C, а на солнце - выше 10°С. Но первые очистительные облёты пчёлы делают и в пасмурную погоду уже при температуре 10-12°C. Для того, чтобы взлететь пчела разогревает торакс до рабочей температуры путем изометрического сокращения летательных мышц. При этом махания крыльями не происходит. Такой режим можно назвать режимом печки. Работа этих мышц осуществляется с КПД 4.4%, остальное идёт на нагрев, т.е. КПД такой печки составляет 95.6%! В заметке про термогенез была сделана попытка оценить какая дополнительная мощность нужна пчеле, чтобы поднимать свою температуру со скоростью 2°C в минуту, получилось - нужно 6.3 мВт. Сделано это было ещё до создания модели (по крайней мере без её применения). Но теперь-то модель разработана и пришло время проверить полученную оценку на модели.
Модель была разработана для стационарного (установившегося) режима, а при разогреве температура изменяется во времени, поэтому уравнения теплового баланса будут выглядеть следующим образом:
$$\left\{\array {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_{air}}{r_{th\_air}}\cr C_{hd}\frac{dT_{hd}}{dt}=p_{rhd}+\frac{T_{th}-T_{hd}}{r_{th\_hd}}-q_{e\_hd}-\frac{T_{hd}-T_{air}}{r_{hd\_air}}\cr C_{ab}\frac{dT_{ab}}{dt}=p_{rab}+\frac{T_{th}-T_{ab}}{r_{th\_ab}}-q_{e\_ab}-\frac{T_{ab}-T_{air}}{r_{ab\_air}}}\right.,$$
где С_ - теплоёмкость, а остальные обозначения те же, что и формуле (5) заметки про термогенез, т.е. исходной модели, только для обозначения температуры взята большая Т, чтобы не путать со временем. По ней же и вычисляются начальные условия - исходные температуры торакса, головы и брюшка при заданной температуре воздуха.
и он действительно поднимает температуру торакса почти на 2°C, но не за минуту, а за пять. А что если пчела будет работать, как при горизонтальном полёте - тратить дополнительно не 6.5, а 23 мВт?
![]() |
Вот теперь - другое дело! За две минуты температура торакса поднялась от 26 до 30°С, т.е. как раз на 2°С в минуту.
Таким образом, мы исправили первоначальную ошибку (в 7 раз!): в режиме печки пчела включает дополнительную мощность близкую к максимальной - около 45 мВт.
Этот же режим печки пчела включает, например, для обогрева расплода, или во время зимовки, когда надо поддержать температуру - мы к нему ещё вернёмся.
P.S. В своей первой заметке блога я посетовал, что мало хороших глубоких книг по пчеловодству. Вот обнаружил очень богато иллюстрированное интересное издание, в котором режим печки описан очень подробно: Юрген Тауц "Феномен медоносной пчелы. Биология суперорганизма."[20]. Автор подтверждает, что в режиме обогревателя пчела включает максимальную мощность.
🐝 Python-скрипт
import numpy as np
import matplotlib.pyplot as plt
import math
from scipy.optimize import fsolve
# Параметры (как ранее)
d_bee = 0.004
a = 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 + a
A_thorax = math.pi * d_bee * h_thorax
A_ab = math.pi * d_bee * h_ab + a
k_hd, k_ab = 0.065, 0.042
L_wall = 0.0001
d_cell = 0.0052
A_wall = math.pi * d_cell * (h_head + h_thorax + h_ab)
sigma = 5.67e-8
t0 = -273.1
eps = 0.22
# Теплоемкости
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
ρ_wax, c_wax = 960, 2000
V_wall = A_wall * L_wall * 0.3 # Активный слой
C_wall = ρ_wax * V_wall * c_wax # ≈ 0.015 Дж/°C
# Внутренние сопротивления тела
T_air = 12.
l = (1.3493 * np.exp(-0.058 * T_air)) * 1e-3 # средний зазор от торакса до головы и брюшка
ke0 = 3e-5 # Вт/°C коэффициент испарения в покое
R_th_hd = l / (k_hd * a)
R_th_ab = l / (k_ab * a)
# Параметры для открытого пространства
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)
# Функция термогенеза
def metabolic_power(T_air):
power = (29.133 - 0.739 * T_air) * 1e-3
return max(power, 0)
def calculate_initial_temperatures(T_air):
""" Вычисление равновесных температур тела пчелы на открытом воздухе """
l = (1.3493 * np.exp(-0.058 * T_air)) * 1e-3 # средний зазор от торакса до головы и брюшка
R_th_hd = l / (k_hd * a)
R_th_ab = l / (k_ab * a)
# print(R_th_hd, R_th_ab)
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
# Рассчитываем начальные температуры
T_head_init, T_thorax_init, T_ab_init = calculate_initial_temperatures(T_air)
print(f"Начальные температуры при T_air = {T_air}°C:")
print(f"Торакс: {T_thorax_init:.2f}°C")
print(f"Голова: {T_head_init:.2f}°C")
print(f"Брюшко: {T_ab_init:.2f}°C")
p_plus = 45e-3 # мощность печки
def model_plus_6_5(time_total):
dt = 1
steps = int(time_total / dt)
# Начальные условия из Этапа 1
T_head, T_thorax, T_ab = T_head_init, T_thorax_init, T_ab_init
# Массивы для результатов
T_head_arr, T_thorax_arr, T_ab_arr = [T_head], [T_thorax], [T_ab]
P_rest_arr = [metabolic_power(T_air)]
for t in range(steps):
def equations(vars):
Thd, Tth, Tab = vars
q_evap_hd = ke0 * Tth
q_evap_ab = ke0 * Tth
P_rest_current = 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 = C_head * (Thd - T_head_arr[-1]) - dt * (
p_s_hd
+ (Tth - Thd) / R_th_hd
- (Thd - T_air) / R_head_air_open
- q_evap_hd
)
# Уравнение для торакса:
eq2 = C_thorax * (Tth - T_thorax_arr[-1]) - dt * (
P_rest_current + p_s_th + p_plus # + 44e-3
- (Tth - Thd) / R_th_hd
- (Tth - Tab) / R_th_ab
- (Tth - T_air) / R_thorax_air_open
)
# Уравнение для брюшка:
eq3 = C_ab * (Tab - T_ab_arr[-1]) - dt * (
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_head, T_thorax, T_ab,
])
T_head, T_thorax, T_ab = sol
if t % 10 == 0:
T_head_arr.append(T_head)
T_thorax_arr.append(T_thorax)
T_ab_arr.append(T_ab)
P_rest_arr.append(metabolic_power(T_air))
return T_head_arr, T_thorax_arr, T_ab_arr, P_rest_arr
# Запуск модели
time_total = 300 # секунд
results = model_plus_6_5(time_total)
T_head, T_thorax, T_ab, P_rest = results
# Временная шкала
t = np.linspace(0, time_total, len(T_thorax))
# График температур
plt.figure(figsize=(7, 4))
plt.plot(t, T_thorax, 'r-', label='Торакс')
plt.plot(t, T_head, 'b-', label='Голова')
plt.plot(t, T_ab, 'g-', label='Брюшко')
plt.axhline(T_air, color='k', linestyle='--', label='Температура воздуха')
plt.xlabel('Время (с)')
plt.ylabel('Температура (°C)')
plt.title('Переходной процесс при включении режима "печки" '
'\nс дополнительной мощностью ' + str(p_plus*1e3) + ' мВт')
plt.legend(loc='upper right')
plt.grid(True)
plt.show()
# Стационарные значения
print(f"Температура торакса: {T_thorax[-1]:.2f}°C")
print(f"Тепловыделение: {P_rest[-1] * 1000:.2f} мВт")




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