В этой статье мы рассмотрим две достаточно новые функции регуляторов (ESC) — Oneshot125 или просто OneShot и DampingLight (Damped Light, Active Braking).
Что такое Oneshot?
Oneshot125 это более быстрый (чем обычный PWM сигнал) протокол передачи данных от полетного контроллера к регулятору. Он позволяет контроллеру чаще отсылать команды регулятору, что, теоретически, делает управление коптером более точным.
Чтобы использовать Oneshot — нужно включить его как в настройках регуляторов, так и в настройках контроллера.
Вот тут статья про прошивку BLHeli (англ.), там же есть сравнение BlHeli и SimonK.
При включении Oneshot в Cleanflight, значение motor_pwm_rate будет проигнорировано.
Почему Oneshot лучше чем традиционный PWM?
Традиционный PWM
Внутри основного цикла расчетов, полетный контроллер вычисляет новые значения на основе данных с датчиков. Внутри цикла передачи данных — полученное значение отсылается на регуляторы. Но время, которое требуется контроллеру, чтобы завершить вычисления может меняться, иногда требуется больше времени, иногда меньше.
Цикл передачи данных отсылает PWM сигнал постоянно и использует то значение газа, которое ему доступно: новое, если оно уже вычислено, или старое, если расчет еще не завершен. Если нам повезет, то регулятор получит самое новое значение как только оно будет вычислено.
Передача данных занимает примерно 20 мс, т.е. контроллер передает данные максимум 50 раз в секунду. Ширина импульса — 1000-2000мкс, т.е. 1000мкс — минимальный газ, 2000 максимальный газ.
Как промежуточное решение — использовалась повышенная частота передачи сигнала, т.е. сокращалась длительность паузы между сигналами, это позволило поднять частоту команд почти до 500 Герц.
Oneshot125
Решение всех проблем — во-первых, увеличение скорости передачи и во-вторых, синхронизация цикла расчета полетных данных и цикла управления двигателями.
Ширина импульса теперь 125 — 250мкс, что в 8 раз короче чем у классического PWM. Это значит, что можно передавать команды даже чаще 1000 раз в секунду.
Как правило расчет данных идет именно 1000 раз в секунду, т.е. время цикла (это looptime) = 1000 мкс. oneshot позволяет передавать новое значение мощности двигателей после каждого пересчета. Это увеличивает отзывчивость коптера и позволяет ПИД регуляторам работать более точно.
Active Braking, Damped Light, DampingLight
Все это названия одной и той же функции регуляторов — активное торможение.
Эта функция относится только к регуляторам, ее можно включить или выключить. Никакого отношения к настройкам полетных контроллеров она не имеет.
Что это такое? Когда вы уменьшаете газ, регулятор будет активно замедлять двигатель. Если эта функция отключена — двигатель будет вращаться по инерции, и только воздух будет его притормаживать.
Иногда DampedLight путают с тормозом, который используется на самолетах. Отличие в том, что тормоз работает только для того, чтобы полностью остановить мотор (когда газ = 0), и не работает, например, если вы уменьшили газ со 100% до 90%. Damped Light работает во всем диапазоне газа.