В статье рассмотрим, что такое (двунаправленный) Bidirectional DSHOT и RPM-фильтрация, а также их настройку.
- Что такое RPM-фильтрация?
- Что такое bidirectional (двунаправленный) DSHOT?
- Что нужно, чтобы работала RPM-фильтрация и Bidirectional DSHOT?
- Для RPM-фильтрации
- Bidirectional DSHOT на ESC BLHeli_32
- Bidirectional DSHOT на BLHeli_S
- Как включить Bidirectional DSHOT в Betaflight?
- Как включить RPM-фильтрацию?
- Установка полярности двигателей
- Если остались вопросы
Что такое RPM-фильтрация?
RPM-фильтрация — это набор из 36 режекторых фильтров для гироскопа и опционально для Dterm.
Режекторный фильтр (проф. жаргон — полосно-заграждающий фильтр, фильтр-пробка) — электронный или любой другой фильтр, не пропускающий колебания некоторой определённой полосы частот.
Эта фильтрация использует телеметрию для удаления шумов двигателя с очень большой точностью. По умолчанию использует по 12 режекторных фильтров на тангаж, крен и рыскание и таким образом обрабатывает первые 3 гармоники (3 самые высокие частоты) каждого двигателя.
Простыми словами: RPM-фильтрация — это очень точная фильтрация вибраций двигателей.
Многие пилоты уже согласны с утверждением, что RPM-фильтрация является лучшим фильтром в Betaflight.
Что такое bidirectional (двунаправленный) DSHOT?
Bidirectional DSHOT — это новая функция в Betaflight 4.x, которая позволяет контроллеру полета получать точную телеметрию оборотов вращения двигателя по сигнальному каналу ESC. Но сигнал поступает без использования дополнительных проводов и каналов.
Bidirectional DSHOT будет работать только на регуляторах оборотов (ESC) с поддержкой 32 битных прошивок: BLHeli_32 или BLHeli_S, в которых также есть функция поддержки телеметрии DSHOT.
Регуляторы оборотов на BLHeli_32 уже изначально умеют передавать телеметрию в полетный контроллер (температуру, eRPM, ток) по отдельному сигнальному проводу. Эта стоковая телеметрия передается достаточно медленно и не может использоваться для RPM-фильтрации. Но двунаправленная телеметрия работает на гораздо больших скоростях, чем стандартная и она подходит для RPM-фильтрации.
Что нужно, чтобы работала RPM-фильтрация и Bidirectional DSHOT?
Для RPM-фильтрации
- Betaflight версии 4.1 и новее;
- Регуляторы оборотов BLHeli_32 или BLHeli_S с патчем JazzMaveric BLHeli_S;
- Включенный Bidirectional DSHOT в Betaflight;
- Настроенные параметры RPM-фильтрации в Betaflight.
Bidirectional DSHOT на ESC BLHeli_32
Версия прошивки регуляторов оборотов — BLHeli_32 32.7.0. Где узнать версию? Запустите BLHeliSuite32.
Если прошивка старее этой, то обновите ее.
Bidirectional DSHOT на BLHeli_S
Для этого, у ваших регуляторов оборотов должна быть специальная прошивка отсюда: https://github.com/JazzMaverick/BLHeli/tree/JazzMaverick-patch-1/BLHeli_S%20SiLabs
Она поддерживает Bidirectional DSHOT.
Как включить Bidirectional DSHOT в Betaflight?
Для начала, вам нужно зайти в Betaflight, включить режим Эксперта и перейти в CLI.
Далее, введите эти два параметра (мы их отключаем):
set dshot_burst = OFF
set scheduler_optimize_rate = ON
Затем, перейдите на страницу конфигурации и выберите DSHOT600 или DSHOT300, так как Bidirectional DSHOT работает только с протоколами DSHOT 300 , 600 и 1200. Если выбрали DSHOT600, то частоту обновления выставьте на 4kHz и 4kHz (слева, частота обновления гироскопа и цикла PID):
Теперь можете передвинуть ползунок на Bidirectional DSHOT, чтобы включить его:
Можно включить командой из CLI:
set dshot_bidir = ON
Как включить RPM-фильтрацию?
Нужно правильно настроить Dynamic Notch Filter, поскольку теперь он больше не должен устранять шум двигателя. На вкладке «Настройки фильтра» в Конфигураторе установите для параметра «Dynamic Notch Filter» значение «MEDIUM» (средний), для «Dynamic Notch Width Percent» — 0, а для «Dynamic Notch» — 250:
Далее, настраивается lowpass filter. Изначально используются стандартные настройки версии Betaflight 4.1:
# 4.1 default lowpass filter set set gyro_lowpass_type = PT1 set gyro_lowpass_hz = 200 set dyn_lpf_gyro_min_hz = 200 set dyn_lpf_gyro_max_hz = 500 set gyro_lowpass2_type = PT1 set gyro_lowpass2_hz = 250 set dterm_lowpass_type = PT1 set dterm_lowpass_hz = 100 set dyn_lpf_dterm_min_hz = 70 set dyn_lpf_dterm_max_hz = 170 set dterm_lowpass2_type = PT1 set dterm_lowpass2_hz = 150
Это вводите в командной строке CLI. Делаются несколько тестовых полетов и на их основе для каждого квадрокоптера ИНДИВИДУАЛЬНО корректируются параметры данного фильтра.
Установка полярности двигателей
Теперь нужно настроить полярность двигателей, а точнее, число магнитов в колоколе.
Телеметрия регуляторов оборотов может передавать eRPM — число оборотов двигателя, умноженное на количество полярных пар. Betaflight должен знать, сколько полюсов у ваших двигателей, чтобы рассчитывать правильные обороты. Поэтому, вам нужно посчитать, сколько магнитов размещено в колоколе мотора.
Затем, перейти в CLI и прописать:
motor_poles = 14
Где 14 — число магнитов. Не забудьте ввести save и нажать энтер.
Если у вас двигатели 2205, 2206, 2207 или 2306, то скорее всего там 14 магнитов. Двигатели 080x, 110x, 120x — скорее всего будут с 12 магнитами. Но лучше, чтобы вы лично посчитали магниты.
На заметку: число магнитов всегда будет четным.
Если остались вопросы
Изначально, без включенного Bidirectional DSHOT есть только eRPM. Но после включения Bidirectional DSHOT будет задействована RPM-фильтрация. Отдельно ее включить нельзя, это то, что «вытекает» из Bidirectional DSHOT.
Полетный контроллер использует число полюсов двигателя для преобразования eRPM в RPM.
У вас не получится просто сесть и настроить, требуются тестовые полеты, чтобы ощутить изменения и внести корректировки в настройки фильтра.
Более подробно об этом всем, вы можете прочитать здесь: https://github.com/betaflight/betaflight/wiki/Bidirectional-DSHOT-and-RPM-Filter
можно добавить про фильтры в бетафлайт 4.3? там изменились параметры