Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Фильтрация сигналов с датчиков
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
lire
Добрый день, имеется 4 одинаковых датчика, которые меряют одну и ту же величину в разных точках системы. Они работают не очень стабильно, часто на одном из них встречаются выбросы, в то время как основная задача их работы - определение отклонения системы от стабильного состояния. Гарантируется, что при отклонении сигналы со всех 4 датчиков должны изменяться.

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

Пример данных с датчиков приведен на вложенном рисунке, на нем хорошо видны как интервалы, где есть значимый сигнал (небольшие скореллированные отклонения), так и многочисленные высокоамплитудные выбросы.
KalashKS
Как вариант: оценить корреляцию сигналов с датчиков, задаться некоторой моделью их изменения во времени и сделать фильтр Калмана.
amaora
Цитата(KalashKS @ Oct 10 2012, 19:41) *
Как вариант: оценить корреляцию сигналов с датчиков, задаться некоторой моделью их изменения во времени и сделать фильтр Калмана.

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

Можно взвешивать данные с датчиков с переменныим весами, зависящими от разности выхода фильтра и значения с датчика, большое отклонение будет срезаться если оно зафиксировано на небольшом количестве датчиков. Но это безосновательная интуитивная идея. Да и важное условие, сумма весов равна единице. Так, что если все датчики дают отклонение, все веса уменьшаются, но далее нормируются и далеко не расходятся.

Модель есть? во время выбросов остается только заменить показания датчика на априорную информацию скорректированную по оставшимся датчикам. Или такая динамика не требуется?
KalashKS
Цитата(amaora @ Oct 10 2012, 23:39) *
Возникают вопросы как быть с моделью шума, на графиках явно не белый нормально распределенный шум. Где-то будет нелинейность, имхо.

Согласен.
В целом еще стоит понять, так ли нужны сами значения сигналов с датчиков. Возможно следует определить, сколько там независимых сигналов и оценивать их по незабракованным данным.
lire
Спасибо за ответы!

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

Интересует в основном возможность фильтрации небольших локальных отклонений, их можно увидеть на картинке, но они не так бросаются в глаза sm.gif Значения с датчиков имеют ценность, по 4м значениям рассчитывается состояние системы, поэтому небольшое, но правдоподобное отклонение одного датчика даст погрешность в его текущей оценке.
По-видимому, нужно что-то похожее на предложение amaora, но не с переменными весами (на выходе фильтра не один сигнал, а все 4), а с какой-то дифференциальной поправкой к частоте среза. Если все сигналы меняются, то и этому нужно разрешить изменяться, а иначе нужно резать частоту глубже, чтобы держал предыдущий тренд до окончания выброса.
TSerg
Напрашивается мажоритарная логика.
dac
медианный фильтр - прямо предназначен для фильтрации выбросов
TSerg
Цитата(dac @ Oct 15 2012, 11:56) *
медианный фильтр - прямо предназначен для фильтрации выбросов


С выбросами он разобрался уже sm.gif
amaora
Посмотрел на гарфики ещё раз. Может ошибаюсь, ТС должен знать лучше что там происходит, возможно достаточно будет посчитать матрицу ковариации, взять за состояние вектор из четырех показаний датчиков и сделать уже упомянутый ФК. Детерминированная часть системы в самом простом случае описывается единичной матрицей. Если шум низкочастотный, можно добавить ещё четыре элемента в вектор состония для его оценки. Фильтр будет линейный, и если бы не единичные выбросы наверно можно было бы даже расчитать K заранее. А так имеем переменное количество выходов, то есть разную C на каждом такте. Хотя наверно можно считать ошибку по дребезжащему выходу нулевой, будет ли тот же эффект, что и с переменной C? я не проверял.

Другими словами, предполагаю, что все сводится к взвешиванию со статическими весами в рекурсивном фильтре. В самом простом случае, не считая отбрасывания дребезжащих показаний.
TSerg
Предлагаю ТС разместить для скачивания длинный ( >10к )тренд исходных сигналов с пояснениями.
Желающие поразмышлять найдутся.
Очень желателен предполагаемый спектр сигнала и отличие в точках размещения датчиков.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.