Энергобюджет маршрута: собираем всё вместе
Соединим геометрию маршрута и энергетику батареи в один расчёт миссии — пройдёт ли аппарат задание.
Энергобюджет — сравнение энергии, нужной на миссию (с запасом), с доступной энергией батареи; миссия допустима, только если есть резерв.
Шаги расчёта
Соберём цепочку: длина маршрута → время с поправкой → потребная энергия → сравнение с доступной за вычетом резерва. Возьмём маршрут из урока про 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%).
- Если миссия не вписывается — дроби её, увеличивай батарею или снижай скорость к экономичной.