OneShot125
Oneshot - функция полётного контроллера, позволяющая быстрее управлять моторами мультикоптера через контроллеры моторов, чем использование традиционного PWM-сигнала. Другими словами, Oneshot - это более быстрый протокол связи между полётным контроллером и регулятором оборотов мотора. Данный протокол позволяет улучшить отзывчивость коптера на управляющие сигналы пилота и при стабилизации полётным контроллером.
Впервые функция OneShot начала поддерживаться в полётных контроллерах CC3D и Naze32. Наряду с Oneshot применяется также функция активного торможения (Active Braking) или Damping light в прошивке BLHeli.
Для возможности использования функции OneShot необходима её поддержка как полётным контроллером, так и контроллерами моторов.
Отличие OneShot от PWM
В любом полётном контроллере всегда выполняется главный рабочий цикл, в котором в зависимости от показаний датчиков по определённому алгоритму вычисляется новая величина ШИМ-сигнала для выдачи на регуляторы. Главный цикл выполняется за разное время, иногда больше, иногда меньше, но выходной ШИМ сигнал для регуляторов, отправляется постоянно, вне зависимости от переменной из главного цикла. Если ещё не поступило очередное новое значение, используется старое. В лучшем случае регулятор получит самое свежее значение, которое только что вычислил полётный контроллер. Но в большинстве случаев регулятор получает устаревшее значение переменной. То есть суть проблемы - невозможность вовремя отправить актуальный ШИМ-сигнал на регулятор, пока не закончится главный рабочий цикл полётного контроллера. Это незначительная проблема, когда речь идёт о спокойных полётах (разница составит 0.001 секунды). Но для гоночных FPV-миникоптеров — это имеет значение.
Решение — синхронизировать главный цикл полётного контролера с выходным сигналом на регуляторы. Oneshot125 устанавливает частоту цикла двигателей 8 МГц (выходной сигнал на регуляторы теперь короче, 125..250 мкс), в отличие от 1 МГц в PWM (выходной сигнал 1..2 мс). Таким образом, теперь отправка занимает меньше времени и регулятор может считывать актуальные данные значительно быстрее.
При этом отправляется только одна порция (one shot) сигнала сразу же, как только полётный контроллер вычислил новое значение для регулятора. То есть ВМГ реагирует на внешние условия сразу же, ещё до того, как полётный контроллер начнёт следующий рабочий цикл. Таким образом получается самый быстрый отклик между полётным контроллером и регулятором.
Пилоты, которые уже опробовали Oneshot, говорят что величину P можно увеличить совсем немного (небольшое улучшение для PID), значительно улучшился отклик на изменение газа, моторы быстрее изменяют свою скорость вращения.
Что поддерживает OneShot
Чтобы использовать Oneshot, этот протокол должен поддерживать регулятор, его прошивка, а также полётный контроллер и его прошивка.
- Регуляторы
- Полётные контроллеры
- Naze32 с прошивкой Cleanflight поддерживает Oneshot без проблем.
- CC3D хорошо работает с PPM-приёмниками, однако PWM-приёмники могут работать неправильно.