Энергобюджет маршрута: собираем всё вместе

Соединим геометрию маршрута и энергетику батареи в один расчёт миссии — пройдёт ли аппарат задание.

Энергобюджет — сравнение энергии, нужной на миссию (с запасом), с доступной энергией батареи; миссия допустима, только если есть резерв.

Шаги расчёта

Соберём цепочку: длина маршрута → время с поправкой → потребная энергия → сравнение с доступной за вычетом резерва. Возьмём маршрут из урока про waypoints, добавим обратный путь к старту и резерв 20%.

import math
waypoints = [(0, 0), (100, 0), (100, 80), (0, 80), (0, 0)]
cruise = 12.0
fudge = 1.25            # поправка на повороты/ветер
P_flight = 210.0        # мощность в полёте, Вт
# энергия батареи
C_mAh = 5200; U = 14.8; usable = 0.8
E_batt = C_mAh / 1000 * U * usable
# длина и время
dist = sum(math.hypot(waypoints[i+1][0]-waypoints[i][0],
                      waypoints[i+1][1]-waypoints[i][1])
           for i in range(len(waypoints)-1))
t_s = dist / cruise * fudge
E_need = P_flight * t_s / 3600    # Вт*ч
reserve = 0.2
E_avail = E_batt * (1 - reserve)
print("Длина маршрута:", round(dist, 1), "м")
print("Время с поправкой:", round(t_s, 1), "с")
print("Нужно энергии:", round(E_need, 2), "Вт*ч")
print("Доступно (с резервом 20%):", round(E_avail, 2), "Вт*ч")
print("Миссия выполнима:", E_need <= E_avail)

Вывод:

Длина маршрута: 360.0 м
Время с поправкой: 37.5 с
Нужно энергии: 2.19 Вт*ч
Доступно (с резервом 20%): 49.25 Вт*ч
Миссия выполнима: True

Короткий облёт прямоугольника требует всего около 2 Вт·ч — капля против запаса батареи. Значит, на одном заряде можно повторить такой облёт много раз или взять маршрут гораздо длиннее.

Когда миссия НЕ проходит

Если бы маршрут был в десятки километров (картографирование поля), $E_{\text{need}}$ легко перевалил бы за доступную энергию, и проверка вернула бы False. Тогда инженер либо дробит миссию на несколько вылетов, либо ставит батарею больше, либо снижает скорость к экономичной (помним: есть скорость наилучшего качества крыла).

Как работает под капотом

Наземная станция (QGroundControl, Mission Planner) делает похожий расчёт автоматически при построении маршрута, показывая ожидаемое время и предупреждая, если задание не вписывается в батарею. Под капотом — ровно та арифметика, что мы написали: геометрия плюс энергетика.

Частые ошибки

  • Забыть включить обратный путь к точке посадки в длину маршрута.
  • Не заложить резерв — тогда «впритык» на бумаге означает аварию в реальности.
  • Брать мощность висения для скоростного облёта (она занижена).

Итог

  • Энергобюджет: длина → время с поправкой → энергия → сравнение с доступной минус резерв.
  • Включай обратный путь и резерв (15–20%).
  • Если миссия не вписывается — дроби её, увеличивай батарею или снижай скорость к экономичной.
Проверьте себя
1. Что обязательно нужно включить в длину маршрута при энергобюджете?
AТолько путь до самой дальней точки
BОбратный путь к точке посадки
CВысоту взлёта
DСкорость ветра
2. Что делает инженер, если расчёт показал, что миссия не вписывается в батарею?
AИгнорирует расчёт
BДробит миссию на вылеты, ставит батарею больше или снижает скорость к экономичной
CПовышает крейсерскую скорость
DУбирает резерв