Алгоритм AHRS при непрерывных линейных ускорениях


9

Я попробовал несколько алгоритмов, чтобы получить тангаж, крен и рыскание при непрерывных линейных ускорениях и вибрациях (меньше 0,4 г, частота ниже 10 Гц). Ни один из них не дает хороших результатов, потому что показания либо дрейфуют, либо слишком сильно зависят от линейных ускорений. Чего я хочу добиться - это когда внешнее ускорение меньше + -0,4 г, ошибка на шаг и крен должна быть меньше + -1 град.

Я попробовал эти алгоритмы:

  1. Алгоритм Мэджвика . Когда усиление бета установлено очень высоко, сходимость быстрая, но углы более восприимчивы к линейным ускорениям. Я уменьшил его и уменьшил погрешность при линейных ускорениях до + -0,5 градуса. Однако, если вибрация постоянная, показания будут дрейфовать, и для того, чтобы приблизиться к истинным значениям, потребуется вечность. Это имеет смысл, потому что при линейных ускорениях гироскопу доверяют больше, и рассчитанные углы смещаются по мере дрейфа интеграции гироскопа.

  2. Алгоритм Махони . В отличие от Madgwick, он вообще не дрейфует независимо от того, какие значения я использую для Ki и Kp. Однако на него всегда влияют линейные ускорения. (Ошибки больше + -6 градусов)

  3. Традиционный фильтр Калмана . Много времени было потрачено на настройку этих огромных векторов R и Q. Пока у него такая же производительность, как у Махони.

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

Есть еще несколько вариантов, таких как UKF, но это сложно понять или реализовать.

Любое предложение приветствуется.


Как ты интегрируешься в Kalman?
С. Таун Спрингер,

Использование интеграции Эйлера, но вращения строго одной оси, чтобы избежать DCM. @ C.TowneSpringer
Timtianyang

Это должно работать хорошо? В прошлый раз, когда я сделал это (ALCM), Эйлер был неподходящим. Эйлер - это метод первого порядка с локальной ошибкой, пропорциональной квадрату размера шага, и грубой ошибкой, пропорциональной размеру шага. Мы использовали Runge-Kutta 4-го порядка с фильтром Калмана. Я думаю, Ньютон-Фейнман или Эйлер, чтобы получить первоначальное предположение, чтобы начать Рунге-Кутта. У вас есть обработка, чтобы справиться с этим с хорошей скоростью обновления?
С. Таун Спрингер,

Спасибо за предложение. Локальная ошибка метода интегрирования Эйлера была пропущена. Мы планируем выполнять фильтрацию по почте, поэтому у нас нет серьезных ограничений на сложность вычислений. @ C.TowneSpringer
Тимтианянг

Ответы:


3

Во-первых, убедитесь, что вы понимаете два ключевых момента:

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

  2. Точность ограничена смещением измерений встроенного гироскопа . С идеальными гироскопическими данными и интеграцией данные акселерометра не понадобятся вообще. Чем ближе вы можете достичь совершенства, тем больше вы можете игнорировать ускорения.

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

Итак, вы можете сделать две вещи.

  1. Повысьте точность вашей гироскопической интеграции.
  2. Смоделируйте природу линейных ускорений.

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

Однако есть несколько способов улучшить интеграцию гироскопа:

  1. Получите наилучшую оценку гироскопического смещения . Непосредственно перед использованием снимайте показания статического гироскопа в течение нескольких секунд и усредняйте их, чтобы получить значения смещения. Не полагайтесь на одноразовую калибровку.
  2. Постарайтесь свести к минимуму дрейф из-за температуры. Дайте ИДУ нагреться до установившейся рабочей температуры перед калибровкой / использованием. Старайтесь поддерживать его при постоянной температуре во время работы.
  3. Улучшите свою модель калибровки. Подумайте о включении эффектов перекрестной оси и нелинейности, а также только о масштабе и смещении.
  4. Используйте лучший метод интеграции. В комментариях к вашему вопросу уже есть некоторые идеи.
  5. Посмотрим, сможете ли вы отследить дрейф гироскопа. Если алгоритм ориентации должен последовательно корректировать дрейф в определенном направлении, это можно обнаружить и использовать для плавной настройки значений смещения.

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


Любые рекомендованные потребительские датчики?
Timtianyang
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.