Попытка отфильтровать (тонны) шума от акселерометров и гироскопов

Мой проект:

Я разрабатываю игровой автомат с 3-осевым акселерометром и гироскопом, пытаясь оценить положение автомобиля (x, y, z, рыскание, шаг), но у меня есть большая проблема с моим вибрационным шумом (во время движения автомобиля, шестерни вызывают вибрацию, и трек также становится хуже), потому что шум принимает значения между ± 4 [g] (где g = 9,81 [м / с ^ 2]) для акселерометров, например.

Я знаю (потому что я это наблюдаю), шум коррелирует для всех моих датчиков.

В моей первой попытке я попытался решить это с помощью фильтра Калмана, но это не сработало, потому что значения моих векторов состояния имели очень большой шум.

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

Я изучал адаптивные фильтры (LMS и RLS), но понял, что у меня нет шумового сигнала, и если я использую один сигнал акселерометра для фильтрации акселерометра другой оси, я не получаю абсолютных значений, поэтому это не работает. .

РЕДАКТИРОВАТЬ: у меня проблемы с поиском примера кода для адаптивных фильтров. Если кто знает что-то подобное, буду очень благодарен.

Вот мой вопрос:

Кто-нибудь знает о фильтре или знает, как я могу его исправить и правильно отфильтровать свои сигналы?

Огромное спасибо заранее,

XНор

ПД: Прошу прощения за любую ошибку, которую я мог допустить, английский не мой родной язык


person XNor    schedule 02.04.2013    source источник


Ответы (3)


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

С помощью ДПФ вы сможете определить оптимальную частоту среза вашего фильтра нижних частот/полосы пропускания.

Если у вас есть постоянная составляющая по оси Z, есть вероятность, что вы не отфильтровали гравитацию. Обратите внимание, что при значительном тангаже или крене эту константу можно увидеть и на осях X и Y.

Как правило, оценка позы с помощью акселерометра не является хорошей идеей, поскольку вам нужно дважды интегрировать сигналы ускорения, чтобы получить позу. Если сигнал зашумлен, у вас будут проблемы уже через пару секунд, если шум не будет на 100% равномерно распределен между + и -.

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

Я бы определенно использовал второй датчик, например, компас/энкодер в сочетании с вашей математической моделью и объединил бы все данные вашего датчика в фильтре Калмана (объединение датчиков).

Вы также можете получить модель черного ящика вашего шума, предположив, что он коррелирует с оборотами вашего двигателя. (Бокс-Дженкинс/Арма/Арима).

person Sigurd V    schedule 08.04.2013
comment
Здравствуйте, Сигурд, спасибо за ваш ответ. Решил перепланировать оценку позы, т.к. оказалось, что шум не коррелирован (но похоже). У меня есть энкодер, и я думаю, что с фильтром частиц, использующим геометрию трека в качестве описания и считывающим теги для абсолютного положения, можно было бы работать, но я не совсем уверен в этой модели, поэтому я почитаю об этом черном ящике (вставка -jenkins/Arma/Arima) и попробуйте использовать фильтр Калмана для измерения только скорости (линейной и угловой) и используйте их для распространения моего фильтра частиц, а также обновите его ограничениями и тегами отслеживания. - person XNor; 08.04.2013

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

person Botirla Sorin    schedule 05.07.2017
comment
Это не сработало бы в моем проекте, но это очень интересный подход :) - person XNor; 12.07.2017

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

person japreiss    schedule 02.04.2013
comment
Привет japreiss, спасибо за ваш ответ. Да, я попробовал обычный фильтр низких частот, так я понял, что они коррелированы, потому что это высокочастотный шум, но все же применив его, оказалось, что этого недостаточно, потому что он замедляет мою систему и не фильтрует низкие частоты. компоненты шума, поэтому я подумал об адаптивных фильтрах. - person XNor; 02.04.2013