Калибровка датчика тока

Обновлено: 2026-07-24 inav датчик тока scale offset калибровка мультиметр числовой пример

Калибровка датчика тока iNav

Зачем это нужно

Датчик тока, встроенный в полётный контроллер или регулятор, почти всегда
врёт «из коробки». Заводское значение Scale в iNav — это усреднённая
цифра из даташита конкретного датчика/шунта, а не измерение именно вашей
платы и вашей проводки. На практике показание может отличаться от истины
на 10–30%.

Это не безобидная погрешность: по показанию Battery Current iNav считает,
сколько заряда (мАч) осталось в батарее прямо в полёте. Если датчик
занижает ток, контроллер решит, что заряда осталось больше, чем на самом
деле — и предупреждение о низком заряде придёт позже, чем нужно, вплоть до
отказа мотора в воздухе без предупреждения. Калибровка занимает около
10 минут с мультиметром и превращает «примерно» в «точно».

Инструмент /tools/current-sensor берёт на себя всю математику (line of
best fit по методике INAV/mrd-rc) — от вас нужны только несколько показаний.

Что нужно

⚠️ Пропеллеры СНЯТЫ — прежде всего остального. Калибровка требует
раскручивать мотор на разных уровнях газа под нагрузкой — он будет реально
крутиться, как только вы дадите газ. Снимите пропеллер(ы), надёжно
закрепите аппарат (тиски, стенд, тяжёлый груз) и держите руки, провода и
посторонние предметы подальше от мотора. Проверяйте это перед каждым
прогоном мотора
, а не только один раз в начале — ниже это напоминание
повторяется.

Дальше — что понадобится:

  • Мультиметр или токовые клещи в режиме измерения постоянного тока (DC A)
    — это и есть «истинный» ток, с которым сверяется показание FC. Мультиметр
    без клещей включается в разрыв силового провода, между батареей и
    входом питания ESC/FC (потребуется один раз разрезать провод или сделать
    измерительный переходник); токовые клещи провод разрывать не заставляют.
  • Заряженный аккумулятор (пак). На почти разряженном паке недоступны
    высокие токи на большом газу — точки калибровки лягут слишком близко друг
    к другу, регрессия станет менее надёжной.
  • Компьютер и USB-кабель. Нужны, чтобы обнулить Offset в INAV Configurator
    и прочитать Battery Current (альтернатива для чтения — OSD, если он
    показывает ток в реальном времени). Для автоматического мастера ниже
    USB обязателен: он говорит с полётником прямо из браузера (Web Serial).

Как это работает (методика)

Инструмент /tools/current-sensor рассчитывает поправочные коэффициенты
Current Sensor Scale и Current Sensor Offset для iNav по канону
INAV/mrd-rc: регрессия по парам мгновенного тока — показание внешнего
мультиметра (истина) против показания Battery Current полётного
контроллера, снятые ОДНОВРЕМЕННО на разных уровнях газа.

⚠️ Без внешнего измерительного прибора калибровку не сделать. У
инструмента уже была история ошибочных методик — обе считали не то:

  • Самая первая версия усредняла отношения old_scale × (израсходовано по OSD за полёт ÷ залито зарядным устройством после полёта) по нескольким
    пакам — на неровных бытовых замерах это давало абсурдные значения Scale
    (внутренний баг SFHD-53).
  • Следующая версия заменила усреднение на регрессию (line of best fit), но
    всё ещё сравнивала интегральные величины за разные события:
    расход мАч за полёт против последующего заряда мАч зарядным устройством.
    Это методически неверно — разряд и заряд отличаются по КПД, температуре
    и потерям, это не пара «истина / показание прибора» в одной точке.

Актуальная методика — пары мгновенного тока (не мАч!), снятые
одновременно, на разных уровнях газа, в одной сессии, на одном паке, с
current_meter_offset = 0, выставленным ДО начала замеров (иначе
оставшийся offset исказит каждую пару). Именно так считает
калькулятор-эталон mrd-rc.

Формула сверена с калькулятором-эталоном mrd-rc
(Setting the current sensor in iNav,
математический вывод —
Current Sensor Scale and Offset calculation: how it works):
метод «линия наилучшего приближения» (line of best fit). Каждая пара
(мультиметр, FC) — точка данных; регрессия «что показал FC» ~ «что реально
показал мультиметр» даёт И новый Scale (наклон), И новый Offset (пересечение
с осью, переведённое в милливольты).

Порядок калибровки (ручной ввод показаний)

  1. Обнулите Offset. В iNav Configurator: вкладка BatteryCurrent
    Sensor Offset
    0. Оставшийся ненулевой offset исказит каждую пару
    замеров. Заодно запишите текущий Scale (обычно 400–4000) — начальное
    значение берётся из документации на регулятор/датчик тока.
  2. Включите внешний мультиметр (или токовые клещи) в разрыв силового
    провода
    — между батареей и входом питания ESC/FC, чтобы прибор видел
    реальный мгновенный ток.
  3. ⚠️ Ещё раз убедитесь, что пропеллер снят, а аппарат надёжно закреплён
    — на этом шаге мотор реально раскручивается. На одном паке, в одной
    сессии заармите и прогоните мотор(ы) на нескольких разных уровнях газа
    (рекомендуется 5 и более, например: холостой ход, 25%, 50%, 75%,
    100%). На каждом уровне, когда показания устоятся, запишите ток по
    мультиметру (А)
    и одновременное показание Battery Current по FC
    (Configurator → Battery, либо OSD).
  4. Заполните таблицу замеров на странице инструмента (минимум 2 пары, 5 и
    более — точнее) и нажмите Рассчитать. Запишите Новый Scale и
    Новый Offset обратно в iNav Configurator → Battery → Current Sensor.

Числовой пример (посчитано, подставьте свои замеры)

Ниже — правдоподобный набор замеров для типового мини-квадрика/крыла на 4S
(старый Scale = 400, три уровня газа: холостой ход, крейсер, максимум) и
полный расчёт, каким его делает сервер. Это ИЛЛЮСТРАЦИЯ метода, а не ваши
данные — снимите свои показания мультиметром и введите их в калькулятор
на этой странице.

Газ Ток, мультиметр i_meter (А) Ток, FC i_fc (А)
1 холостой ход 3.2 3.6
2 крейсер (~50%) 11.5 12.9
3 максимум 24.0 26.5

Старый Scale (из iNav) — 400.

Шаг 1 — средние значения:

mean_meter = (3.2 + 11.5 + 24.0) / 3 = 12.900
mean_fc    = (3.6 + 12.9 + 26.5) / 3 = 14.333

Шаг 2 — отклонения от среднего и их произведения/квадраты (нужны для
наклона регрессии; отклонения даны с 3 знаками после запятой, чтобы ручной
пересчёт по калькулятору сходился с итоговой суммой):

i_meter − mean_meter i_fc − mean_fc произведение (i_meter − mean_meter)²
1 −9.700 −10.733 104.11 94.09
2 −1.400 −1.433 2.01 1.96
3 11.100 12.167 135.05 123.21
Σ (сумма) 241.17 219.26

Шаг 3 — наклон (slope) и новый Scale:

slope     = Σ произведение / Σ квадратов = 241.17 / 219.26 ≈ 1.0999
new_scale = old_scale × slope = 400 × 1.0999 ≈ 439.97 → округляем → 440

Шаг 4 — пересечение (intercept) и новый Offset:

intercept = mean_fc − slope × mean_meter
          = 14.333 − 1.0999 × 12.900 ≈ 0.144
offset_mV = intercept × new_scale / 10 = 0.144 × 439.97 / 10 ≈ 6.35 → округляем → 6

Итог для этого примера: новый Scale = 440, новый Offset = 6 мВ.

Хотите проверить расчёт — введите Old Scale 400 и эти три пары в
калькулятор выше на этой же странице: он должен выдать ровно New Scale = 440,
New Offset = 6. FC в этом примере завышал ток примерно на 10% (slope ≈ 1.10)
— после записи новых значений Battery Current на экране станет близок к
показанию мультиметра на всех уровнях газа.

Три пары — математический минимум с запасом для демонстрации; в реальной
калибровке используйте 5 и более уровней газа, как рекомендует
методика (см. таблицу требований ниже) — больше точек усредняют шум
замеров и дают более надёжный результат.

Замеры

Таблица принимает до восьми пар (ток по мультиметру / ток по FC, оба в А):

Пара Обязательна?
1–2 да — без второй пары Offset не считается
3–5 настоятельно рекомендуются — методика требует 5+ уровней газа
6–8 опционально, повышают точность

Инструмент не блокирует расчёт при 2–4 парах, но предупреждает: методика
mrd-rc/INAV рассчитана на 5 и более точек с разным током — меньшее число
даёт менее надёжную регрессию.

Результат

  • Новый Scale — запишите в iNav Configurator → Battery → Current Sensor Scale;
  • Новый Offset — туда же, поле Current Sensor Offset (значение уже в
    милливольтах, как ожидает iNav — конвертировать не нужно).

После записи коэффициентов слетайте и сверьте: Battery Current на экране
FC должен быть близок к показанию независимого мультиметра/ваттметра на
разных уровнях газа.

Автоматический мастер (бегунок мотора + MSP)

На той же странице, теперь ПЕРВОЙ карточкой (AD-1058, выше ручной таблицы
из раздела выше), — карточка «Automatic calibration». Кнопка
«Calibrate current sensor (wizard)» открывает
мастер, который собирает пары автоматически, вместо ручного набора текста в
восемь полей. Мастер подключается к полётнику НАПРЯМУЮ из браузера (Web
Serial — только настольный Chrome/Edge по HTTPS, тот же транспорт, что
/tools/inav-connect), у него своё соединение — /tools/inav-connect
трогать/держать открытым параллельно не нужно.

⚠️ Крутится реальный мотор. Обязательно снимите пропеллер до того, как
разблокируете бегунок газа — мастер явно предупреждает об этом модалкой
с чекбоксом-подтверждением перед стартом.

Шаги (соответствуют реальному UI, версия для ролика-инструкции — AD-889):

  1. Нажмите «Calibrate current sensor (wizard)» — появляется секция
    мастера с бегунком газа.
  2. «Connect the flight controller» — выберите COM-порт полётника в
    диалоге браузера. Мастер сам читает текущий Scale и Offset; если Offset
    не 0, разблокировать бегунок нельзя, пока не нажмёте «Zero the offset
    on the flight controller»
    (методика AD-887 требует Offset=0 до замеров).
  3. «Unlock throttle test» — модалка «Remove the propeller»: подтвердите
    чекбоксом, что пропеллер снят и аппарат закреплён. Кнопка окрашена в
    красный и разблокируется ТОЛЬКО чекбоксом.
  4. Плавно двигайте бегунок «Throttle» — мотор раскручивается (в пределах
    лимита газа-предохранителя выше, по умолчанию 20%, можно поднять). Как
    только отпустили бегунок (мышь/тач/клавиатура) — газ автоматически
    возвращается на 0, а показание тока с полётника появляется первой
    строкой таблицы.
  5. Впишите показание СВОЕГО мультиметра/токовых клещей в соседнее поле той
    же строки — точка готова.
  6. Двигайте бегунок ещё раз, на другой уровень газа, отпустите — появляется
    НОВАЯ строка (пока мультиметр предыдущей точки не введён, повторное
    отпускание просто обновляет ток в текущей строке — не создаёт лишних
    точек). Повторите для 2–5 и более уровней газа (idle/25/50/75/100%).
  7. Кнопка «Calculate» становится активной после 2 готовых точек (минимум
    для регрессии); подсказка под таблицей рекомендует 5 и более.
  8. Нажмите её — сервер считает Scale/Offset (calc_scale_and_offset, та же
    формула AD-887) и показывает результат (New Scale / New Offset).
    Сам по себе расчёт НИЧЕГО не пишет на полётник.
  9. Появляется кнопка «Write to flight controller + reboot» — активна,
    только пока есть посчитанные значения И есть подключение. По нажатию
    мастер по имени записывает current_meter_scale/current_meter_offset на
    борт (MSP2_COMMON_SET_SETTING), сохраняет их в EEPROM (иначе значения
    потерялись бы при следующем отключении питания) и предлагает перезагрузить
    полётник, чтобы калибровка точно применилась — подтвердите в диалоге
    браузера («плата отключится и переподключится»); можно отказаться —
    значения уже сохранены в EEPROM независимо от перезагрузки. Рядом с
    кнопкой всегда видно состояние: «не записано» / «записано ✓
    (scale=…, offset=…)»
    / текст ошибки, плюс тост об успехе или отказе.
    Повторное нажатие безопасно перезаписывает те же значения ещё раз.

Аварийная остановка: пока есть связь с полётником, доступна большая
красная кнопка «■ EMERGENCY STOP» — немедленно останавливает мотор и
снимает разблокировку бегунка, независимо от текущего состояния. Кнопка
«Disarm» делает то же самое в спокойном режиме (конец сессии). Если
бегунок не трогали 15 секунд — мастер сам останавливает мотор и снимает
разблокировку (защита от «забыл»).

Если браузер не поддерживает Web Serial (Firefox, Safari, мобильные) —
мастер честно сообщает об этом; ручная таблица ниже по-прежнему работает
везде.

Видеоинструкция

Те же шаги в виде короткого ролика (съёмка мультиметра и мотора + запись
экрана мастера, сценарий подготовлен — тикет AD-889) — удобно, если проще
посмотреть один раз, чем читать инструкцию по пунктам. Порядок действий тот
же: пропеллер снят → мультиметр в разрыв провода → подключение по USB →
снятие защиты → газ на разных уровнях → «Рассчитать».

Связанные разделы