FPV Квадрокоптер: Фильтрация в Betaflight / Хабр

FPV Квадрокоптер: Фильтрация в Betaflight / Хабр Конструкторы

D term фильтрация

Как было сказано выше, D способен приумножать шумы от гироскопа, поэтому в Betaflight есть фильтрация D. Ниже на грификах видно уровень шума до фильтрации и после.

В сообществе нет четкого понимания, стоит ли сильно фильтровать D или нет. Но есть правило горячих моторов, чем меньше фильтрация и чем выше D, тем сильней они греются и могут даже сгореть. Но и в обратную сторону мы получаем задержку.

Low pass


Фильтры

Как показывает предыдущий график — сигнал от гироскопа содержит информацию от 0 Гц до 1000 Гц, но нас интересует только диапазон 0-80 Гц, поскольку это фактическое движение квадрокоптера, о котором должен знать PID-контроллер. Таким образом, нам нужно решение для фильтрации, чтобы позволить низким частотам проходить через PID-контроллер, в то же время ослабляя высокие частоты, и для этого мы можем использовать фильтр Low Pass (Низких частот).

Фильтры нижних частот пропускают низкочастотный сигнал и ослабляют высокие частоты, которые в основном являются просто шумом.

Устанавливается частота среза, и контроллер просто уменьшает сигналы выше этой частоты. Кривая затухания позволяет не срезать все под чистую, а чем выше частота шума, тем сильней происходит его затухание, плавно.

Часто пилоты допускают ошибку устанавливая такой фильтр на той же частоте, что и видимый шум. Например на 200Hz. Поскольку фильтр плавно ослабляет шум, установка такого фильтра не даст особого результата. Фильтр стоит устанавливать на более низкие частоты. Возможно, даже на 80Hz.

Смотрите про коптеры:  Популярные FVP-камеры - какую лучше купить

Чем ниже вы устанавливаете такой фильтр, тем больше фильтрации происходит

Устанавливая фильтрацию, следует помнить об одной простой вещи. Чем больше фильтрации тем больше задержка. Понятное дело, что она в миллисекундах и не значительная, но для PID-контроллера это критично. Так как он начнет реагировать на события позже, а это значит, что он будет пытаться выровнять квадракоптер в прошлом 🙂

Mems гироскоп

У каждого квадрокоптера есть FC — Flight Controller, который по сути является мозгами. На этих контроллерах так же присутствует цифровой чип, который часто называют gyro — гироскоп. Это сенсор, который чувствует движение. Он содержит в себе маленькое электро-механическое устройство, которое так и называется — MEMS (Micro Electro Mechanical System).

Внутри этого устройства расположены механически резонирующие «вилки». Эти вилки, расположены по всем трем осям (pitch, roll, yaw) и двигаясь (механическая часть) создают флуктуации вольтажа (электрическая часть).

Флуктуации (колебания) вольтажа, по факту являются аналоговыми волнами, которые преобразуются в цифровую информацию для обработки полетным контроллером. Когда мы говорим 8k gyro, это значит, что 8000 раз в секунду, аналоговый сигнал превращается в цифровой и обрабатывается контроллером, прошивкой, в данном случае Betaflight.

Notch фильтр


Notch переводится как зарубка, собственно это примерно так и выглядит:

Фильтра откидывают часть шума ниже и часть шума выше. Начиная с Betaflight 3.1 эти фильтры являются динамическими, и подстраиваются под различный шум.

Фильтра используются в связке с Low Pass фильтрами, но используются уже для фильтрации шумов от моторов, которые находятся выше.

Pid controller

FPV Квадрокоптер: Фильтрация в Betaflight / Хабр

PID Controller — это такая система которая корректирует позицию квадрокоптера согласно стикам (вашему управлению) или заданного положения (ну, что бы его не колбасило). PID настраивается за счет 3х параметров — P, I и D. К сожалению в этой статье мы не будем детально рассматривать настройку PID. Если вы пилот, то уже знаете, а если новичок, но на эту тему будет отдельная статья.

Эта система хорошо работает, когда количество шумов минимальна, иначе мы можем столкнуться с такими проблемами как осцилляция (вибрации) или перегрев моторов.

D term в PID контроллере имеет особенно отношение к шуму. D сглаживает быстрые движения, но вычисление D в PID контроллере значительно усиливает шум в сигнале. Это означает, что шум от гироскопа существенно усиливается значением D term и поэтому мы фильтруем в двух местах — гироскоп и D.

В качестве примера такого приумножения покажу вам такие вот логи:Первый график — гироскопВторой график — PIDТретий — моторы

FPV Квадрокоптер: Фильтрация в Betaflight / Хабр
(это нормальные пропеллеры, с немного уменьшенной фильтрацией)

FPV Квадрокоптер: Фильтрация в Betaflight / Хабр
(Как видите вибрации от плохих пропеллеров усиливаются на этапе PID контроллера, что ведет к излишнему напрягу моторов, их буквально колбасит)

Скрины из — Blackbox Explorer.

Rpm filter

FPV Квадрокоптер: Фильтрация в Betaflight / Хабр

Так вот, собственно, что новое я стал использовать, так это RPM фильтрацию. Она работает за счет двухстороннего протокола DSHOT который позволяет полетному контроллеру узнать точное количество оборотов конкретного мотора. И уже на основании этих данных применяется фильтрация.

FPV Квадрокоптер: Фильтрация в Betaflight / Хабр
(Ваш ESC должен поддерживать двухсторонний DHSOT)

Прошивка на ESC, от 3.7

Если моторы греются, то это проблема. Горячие моторы могут быть признаком того, что на моторы попадает много шума и они пытаются реагировать на вибрации так часто, что начинает выделяться тепло.

Греться моторы могут по ряду причин, старая рама, погнутые колокола у моторов, нарушенная балансировка, лишние прибомбасы на вашем коптере.

Конечно лучше иметь, как говорят clean build, и что бы все было новое, но можно сперва попробовать настроить фильтрацию.

Для начала можно начать с увеличения фильтрации D, делать шаги в 20 Hz. Проверяйте температуру после каждого такого шага и найдите свой оптимальный диапазон.

А искать его следует между температурой моторов и вибрациями. Как было сказано выше, хоть и фильтрация призвана уменьшить количество шума, она может накладывать некоторые задержки и PID контроллер может не успевать. И как бы это смешно не было, вызывать вибрации. Но эти вибрации не относятся к пропвош. Это уже просто неэффективная работа PID.

В последних версиях Betaflight есть ползунки, пробуйте не менять значения самих фильтров, а попробуйте использовать эти «мастер» ползунки.

На текущий момент у меня такие настройки с включенным RPM фильтром, возможно я попытаюсь уменьшить фильтрацию еще больше:

Вкладка configuration

  1. Раздел ESC/Motor Features

Протокол регуляторов скорости (регуляторов оборотов) — посмотрите на характеристики вашего оборудования, какие протоколы оно поддерживает. Рекомендуется использовать DShot. Обычно регуляторы с прошивкой BLHeli_S поддерживают DShot300 или DShot600, а с прошивкой BLHeli_32 — даже DShot1200.

Дополнительная информация: протоколы и прошивки для регуляторов скорости.

Рекомендую отключить параметр «MOTOR_STOP«, иначе вы не сможете определить армлен коптер или нет.

Остальные параметры можно не трогать и оставить значения по умолчанию.

2. Раздел System Configuration

Looptime — время цикла, с этой частотой полетный контроллер рассчитывает полетные параметры, значение зависит от возможностей процессора, на шумных коптерах я предпочитаю использовать довольно низкую частоту 2 кГц, а на качественных коптерах — частоту повыше — 8 кГц. В любом случае, для начала подойдет и 2 кГц.

Gyro Sampling Rate — частота опроса гироскопов, обычно совпадает с looptime, хотя некоторые предпочитают поставить удвоенную частоту looptime. Можете поставить 4 кГц и looptime 2 кГц.

Потом поэкспериментируете и выберете наиболее подходящие значения, жестких правил по их выбору нет.

При смене значений этих параметров обратите внимание на CPU load (загрузка процессора) внизу экрана, старайтесь держать это значение меньше 30%. Если значение будет выше, то полетный контроллер может работать нестабильно.

Accelerometer — можно отключить, это высвободит немного процессорных ресурсов, но тогда вы не сможете использовать режимы Angle и Horizon, а 3Д модель на вкладке Setup перестанет двигаться. Еще одна причина по которой отключают эту функцию — чтобы избежать проблем при арминге коптера, если он сильно наклонен.

Отключите Barometer и Magnetometer, они нам не нужны, т.к. мы летаем на миникоптере.

3. Раздел Personalization

Craft name — название коптера, это значение будет отображаться на экране при помощи Betaflight OSD.

4. Раздел Receiver

Если у вас приемник SBUS, IBUS или Spektrum Satellite, тогда выбирайте «Serial-based receiver» в выпадающем списке «Receiver Mode». В параметре Serial Receiver Provider нужно выбрать SBUS, т.к. у нас приемник FrSky.

Если приемник использует PPM, тогда выберите PPM RX Input в списке Receiver Mode.

5. Раздел Other Features

Обычно я включаю нижеуказанные функции Betaflight. Если вы не уверены в том, нужны ли они, просто оставьте значения по умолчанию, они не помешают первому полету.

  • Anti-Gravity
  • Dynamic Filter
  • Telemetry (чтобы работала SmartPort телеметрия)
  • OSD (если ваш ПК поддерживает Betaflight OSD)

Нажмите Save & Reboot.

Вкладка modes

Тут мы настраиваем полетные режимы и их активацию при помощи дополнительных (AUX) каналов управления (тумблеры на аппаратуре управления):

  • Arming (арминг, включение коптера/моторов)
  • Airmode (управляемость коптера при 0 значении газа)
  • Angle mode (режим полета без автовыравнивания)
  • Beeper (пищалка)

Я предпочитаю активировать Airmode тем же тумблером что и арминг коптера, а не отдельным, но это дело вкуса.

Вкладка motors

Проверим порядок моторов:

  • мотор 1 — сзади справа
  • мотор 2 — спереди справа
  • мотор 3 — сзади слева
  • мотор 4 — спереди слева

Если у вас другой порядок моторов, тогда его нужно поменять при помощи переназначения ресурсов (Resource Remapping).

Подробная инструкция по переназначению ресурсов

Теперь проверьте направление вращения моторов, его можно поменять в BLHeliSuite.

Инструкция: подключаем BLHeliSuite (конфигуратор для регуляторов скорости) через полетный контроллер

Вкладка osd

Вот подробная инструкция по настройке Betaflight OSD

Вкладка pid tuning

Для первого полета здесь ничего менять не нужно. Но настройка ПИД коэффициентов и рейтов может помочь летать лучше.

ПИД — это по сути 3 коэффициента для каждой оси: крен (roll), тангаж (pitch) и рысканье (yaw). Настройка этих коэффициентов подразумевает, что вы понимаете, как они влияют на летные характеристики.

Вот моё руководство по настройке ПИД (англ).

Rate, Super Rate и Expo — определяют то, как резко коптер будет реагировать на движение стиков.

Руководство по настройке Rate, Super Rate и Expo

Вкладка ports

  1. Если у вас приемник SBUS или IBUS, тогда включите «Serial RX» на том порту, к которому приемник подключен.
  2. Если вы используете SmartPort телеметрию, тогда в столбце Telemetry Output выберите «SmartPort«; если не используете, тогда ничего не меняйте.

Вкладка receiver

Тут мы проверяем, что приемник работает правильно.

Включаем аппаратуру управления и приемник, двигаем стики по одному и наблюдаем как меняются значения в соответствующих каналах. Если меняются не те каналы, тогда нужно поменять их порядок в параметре «Channel Map«.

Если ни один из каналов не работает, тогда начинаем искать проблему:

  • приемник привязан к передатчику (забинден)? На приемнике должен гореть зеленый светодиод
  • приемник правильно подключен/припаян к полетному контроллеру?
  • уверены, что Serial RX включили на нужном порту?
  • уверены, что правильно выбрали протокол?

После того как убедитесь, что все каналы работают правильно, проверьте значения в средних и крайних точках в первых четырех каналах (Pitch, Roll, Yaw, Throttle, т.е. тангаж, крен, рысканье и газ). В центральном положении эти каналы должны иметь значение 1500, а крайние значения 1000 и 2000.

Если у вас другие значения, тогда читайте вот это руководство по настройке центральных и конечных точек.

Вкладка setup

Вы должны увидеть вкладку Setup сразу, как только подключитесь к полетному контроллеру.

  1. Прежде чем менять настройки, сделайте резервную копию.
  2. Поставьте коптер на ровную горизонтальную поверхность, и откалибруйте акселерометры (см. картинку).
  3. Покрутите коптер в руках, 3Д модель должна вращаться так же, как и коптер

Если 3Д модель не двигается или двигается не так как коптер, тогда скорее всего полетный контроллер установлен не той стороной (обычно на плате есть стрелка, которая должна указывать вперед). В этом случае можно повернуть плату на коптере или задать YAW offset на вкладке Configuration (обычно это углы 90, 180 или 270 градусов).

Настройка betaflight для первого полета

Тут мы пройдемся по основным параметрам Betaflight, необходимым для первого полета.

Важно! Снимите все пропы с коптера прежде чем начинать настройку!

Подключаем micro usb кабель

Подключенный MicroUSB кабель питает полетный контроллер.

В конфигураторе должен появиться новый COM порт, выберите его и нажмите «Connect«. В моем примере порт COM11, у вас скорее всего будет другой номер. При подключении разных ПК, номер порта тоже будет разным.

Прежде чем начать

Чтобы сделать это руководство наиболее простым, я подразумеваю, что у вас есть вот это железо:

Фильтрация

Процесс фильтрации заключается в удалении лишнего шума из сигнала от гироскопа. Но какую часть сигнала от гироскопа мы хотим оставить, а какую отфильтровать?

Честно не могу вам в красках рассказать, но так сложилось, что в бетафлайт, шум, а точней вибрации измеряются в Hz. 1Hz — одна ротация в секунду. Делается это как для простоты визуализации и работы с этими переменными. А еще, турбулентность технически называется «rate of change of rotation» — частота изменения ротации.

Скорость движения квадрокоптера лежит в районе 0-30 Hz. Выше 30Hz до 80Hz у нас находится пропвош (propwash), когда квадрокоптер трясет от турбулентности в собственных потоках. Информация в пределах 0 — 80Hz важна для PID контроллера, поэтому ее мы трогать не будем.

С помощью PIDtoolbox можно рисовать вот такие карты:

Заключение

Это все базовые настройки Betaflight. Приятных полетов.

Оцените статью
Радиокоптер.ру
Добавить комментарий