Найти тему
ZDG

Регулировка стабилизации полёта квадрокоптера

Оглавление

Подборку публикаций про квадрокоптеры я уже завершил:

Всё о квадрокоптерах и FPV | ZDG | Дзен

Но сейчас появилась одна проблема, решение которой я заодно задокументирую.

Если ваш коптер после сборки совсем не летает, считайте это удачей, потому что такие неисправности имеют вполне объяснимые причины, которые легко найти. Например, как тут:

Гораздо хуже, когда коптер летает, но не совсем хорошо. Вот эта проблема: в режиме стабилизации ANGLE коптер упорно тянет в какую-либо сторону, например вперёд или вправо. Чтобы это компенсировать, приходится управляющий стик на аппаратуре держать всё время наклонённым в обратную сторону. Что, конечно, неприемлемо.

Особая пакость заключается в том, что эта проблема очень неясной природы, и нет явной неисправности, на которую можно указать пальцем. Поэтому нужно последовательно исключать все возможные причины.

Калибровка аппаратуры

Может оказаться так, что какой-либо стик на аппаратуре не откалиброван и, визуально находясь по центру, тем не менее даёт импульс в какую-либо сторону. Считаем, что с аппаратурой всё в порядке, а причина находится именно в дроне.

Калибровка ESC

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

Использование режима ACRO

Если вы летаете на FPV-дроне в режиме ACRO, там задействуется только гироскоп, и если проблема проявляется в ANGLE, она вам никак не помешает летать в ACRO, так что можете смело на неё забить.

Отсюда же находится главный кандидат на источник проблемы:

Акселерометр

Именно он, вместе с гироскопом, используется в режимах со стабилизацией.

Соответственно, если коптер тянет в какую-то сторону, значит акселерометр даёт неверные показания. В этом суть проблемы. Какие могут быть причины?

Калибровка акселерометра

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

Обратите внимание, чтобы полётный контроллер внутри коптера стоял тоже горизонтально, так как акселерометр расположен на нём и по факту калибруется положение не коптера, а полётного контроллера.

Это наиболее простой способ решить проблему, но если он не помогает, то надо искать дальше.

Чёрный ящик

Если полётный контроллер снабжён чёрным ящиком для записи логов, это вам очень сильно пригодится.

Запишите несколько секунд полёта и затем проанализируйте логи. Вы наверняка увидите что-то странное. К примеру, один из моторов всё время совершает синусоидальные осцилляции. Также обратите внимание на показания акселерометра, где по одной из осей будут происходить такие же осцилляции.

Либо же линии графиков моторов и акселерометра могут быть очень зашумлены. В норме они должны быть более-менее гладкими линиями.

Если у вас нет чёрного ящика, просто исходите из того предположения, что акселерометр или гироскоп подвержены воздействию шума.

Регулировка параметров PID

Шум и вибрации возможны из-за неправильно заданных значений PID, которые вызывают очень частое изменение скорости моторов и соответственно вибрацию. Во-первых, пощупайте моторы после непродолжительного висения в воздухе. Они не должны быть горячими. Также для проверки снизьте параметры PID до минимума в примерно такой пропорции: P = 20, I = 5, D = 10.

Зашумление датчиков

Акселерометр или гироскоп могут страдать из-за электрического шума в системе, вызванного работой различных потребителей энергии. Для сглаживания импульсов тока к батарейным контактам следует припаять конденсатор Low ESR ёмкостью от 400 микрофарад. Одно это может решить проблему.

Вибрации

Второй источник шума это вибрации.

Для начала проверьте полуоткрученные или отсутствующие винты в раме, незакреплённые детали и т.д.

Если всё в порядке, то остаются моторы и пропеллеры.

Пропеллерам, побывавшим в авариях – сразу отказать. Поставьте новые, хорошие, сбалансированные пропеллеры и сравните результат.

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

Виброизоляция

В комплекте с полётным контроллером часто идут резиновые втулки или кольца для установки. Они позволяют сгладить вибрации, поэтому используйте их в случае проблем. Если таких втулок в комплекте нет, их можно купить на Али.

Фильтры

Если виброизоляция не помогла, остаётся настройка фильтров гироскопа/акселерометра в конфигураторе. Фильтр сглаживает шум, приводя показания к норме. В то же время, чем сильнее сглаживание, тем медленнее будут реакции коптера. Но это "медленнее" не значит, что вы почувствуете какую-то значимую задержку. Разве что вы чемпион по FPV-гонкам.

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

Изменение наклона акселерометра

Если ничего не помогает, вы можете пойти на хитрость и подделать горизонтальное положение акселерометра. Откалибруйте коптер, на пару миллиметров приподняв ту его сторону, в которую его тянет. Это даст нужную компенсацию.

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

Либо можно, ничего не трогая, задать угол наклона полётного контроллера в настройках. Скажем, если коптер тянет вперёд, то задайте наклон по тангажу (pitch) на 0.5 градуса вперёд и посмотрите на результат.

В INAV это делается через CLI (командную строку), где надо ввести команду:

set align_board_pitch=5

Наклон задаётся в десятых долях градуса, поэтому значение 5 это 0.5 градуса.

Если этого будет недостаточно, увеличьте значение. После этого вы можете заметить, что коптер начало тянуть уже в другую сторону, например вправо. Аналогичным образом измените наклон по оси крена (roll):

set align_board_roll=5

Не забудьте после ввода команд в CLI ввести команду save, иначе изменения не сохранятся.

Тримминг акселерометра

Это ручная подстройка акселерометра так, чтобы компенсировать избыточные значения. Сделать тримминг можно прямо на включённом коптере. Моторы должны быть выключены. Поднимите стик тяги (левый) полностью вверх, а правым стиком нажмите до упора в направлении, противоположном сносу, и удерживайте его.

Делайте это только по одной оси одновременно. Например, если сносит вперёд и вправо, то сначала нажмите ровно назад. При наличии на коптере пищалки вы будете слышать подтверждающий писк, также на полётном контроллере должен моргать светодиод.

-2

После нескольких писков взлетайте и проверяйте поведение коптера. Когда снос вперёд будет устранён и будет сносить только вправо, переходите к триммингу строго влево.

Получив нужное поведение коптера, запишите конфигурацию, раздвинув стики в левый нижний и правый нижний угол.

После тримминга данные калибровки акселерометра изменяются, и если вы проведёте повторную калибровку, тримминг надо будет повторить.

Заключение

Методы решения проблемы и их приоритет:

  • Откалиброванная аппаратура без скрытых доп. настроек
  • Откалиброванные регуляторы
  • Правильно откалиброванный акселерометр и ровно стоящий полётный контроллер
  • Правильные параметры PID
  • Новые, сбалансированные пропеллеры и моторы
  • Виброразвязка полётного контроллера
  • Конденсатор в системе питания
  • Фильтры

И если это не поможет, тогда уже компенсационные поправки. Хотя, если вам лень разбираться, можете применить их сразу (не все вместе, так как они взаимозаменяемы):

  • Калибровка акселерометра в наклонённом положении
  • Наклон полётного контроллера физический или в настройках
  • Тримминг акселерометра

Выполнив какие-либо из этих пунктов, вы сможете остановить коптер на месте (не считая конечно естественного уплывания в любую случайную сторону).

Но если вообще ничего не помогло, разбирайте коптер и собирайте заново, заменив какие-то компоненты. Проблема может быть или в бракованном полётном контроллере, или в раме, или в плохих моторах / пропеллерах.

Всё о квадрокоптерах и FPV | ZDG | Дзен