» » » Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

 

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

Автор: admin от 13-08-2019, 18:50, посмотрело: 18

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Фото взято из публикации



Введение



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



Существует множество различных способов удаления высокочастотного шума из сигнала. Например, библиотека Scipy содержит фильтры, основанные на различных методах фильтрации: Калмана; сглаживание сигнала путём его усреднения по оси времени, и другие.



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



Целью настоящей публикации является анализ методов фильтрации сигналов вибродатчиков с применением DWT преобразования сигнала, фильтра Калмана и метода скользящего среднего.



Исходные данные для анализа



В публикации работу фильтров основанных на различных методах фильтрации будем анализировать используя набор данных НАСА. Данные получены на экспериментальной платформе PRONOSTIA:



Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


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



Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


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



Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


Сигналы получены для трёх различных нагрузок:




  • Первые рабочие условия: 1800 об / мин и 4000 Н;

  • Вторые рабочие условия: 1650 об / мин и 4200 Н;

  • Третьи рабочие условия: 1500 об / мин и 5000 Н.



скалограммы мощности спектра для данных из тестового набора — по одному файлу (для одного типа подшипников) из папок: ['Test_set/Bearing1_3/acc_00001.csv','Test_set/Bearing2_3/acc_00001.csv', 'Test_set/Bearing3_3/acc_00001.csv'] (см.табл.1).





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


Из приведенных скалеограмм следует, что моменты увеличения мощности спектра возникают раньше по времени и демонстрируют периодичность для рабочих условий: 1650 об / мин и 4200 Н, что свидетельствует об ускоренной деградации подшипников в этой полосе частот для приведенного усилия. Этот сигнал ('Test_set/Bearing2_3/acc_00001.csv') мы и будем использовать для анализа методов удаления шума.



Деконструкция сигнала с помощью DWT



В публикации мы видели, как на DWT реализован банк фильтров, который может деконструировать сигнал в его частотные поддиапазоны. Коэффициенты аппроксимации (cA)представляют низкочастотную часть сигнала (фильтра усреднения). Коэффициенты детализации (cD) представляют высокочастотную часть сигнала. Далее мы рассмотрим, как можно использовать DWT для деконструкции сигнала в его частотные поддиапазоны и восстановления исходного сигнала.



Решить задачу деконструкции сигнала используя средства PyWavelets можно двумя способами:



Первый способ — применить к сигналу pywt.dwt() для извлечения коэффициентов аппроксимации и детализации (cA1, cD1). Затем для восстановления сигнала будем использовать pywt.idwt():





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


Второй способ применить к сигналу функцию pywt.wavedec(), чтобы восстановить все коэффициенты аппроксимации и детализации до некоторого уровня. Эта функция принимает в качестве входных данных исходный сигнал и уровень и возвращает один набор коэффициентов аппроксимации (n-го уровня) и n наборов коэффициентов детализации (от 1 до n-го уровня). Для деконструкции применим pywt.waverec ():





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



Удаление высокочастотных шумов путём исключения части коэффициентов детализации в процессе деконструкции сигнала



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



В библиотеке PyWavelets это можно сделать при помощи функции пороговой обработки pywt.threshol():



pywt.threshold(data, value, mode= 'soft', substitute=0 )¶

data : array_like

Числовые данные.

value: scalar

Пороговое значение.

mode: {‘soft’, ‘hard’, ‘garrote’, ‘greater’, ‘less’}

Определяет тип порога, который будет применен к входным данным. По умолчанию ‘soft’.

substitute : float, optional

Подставляемое значение (по умолчанию: 0).

output : array

Пороговый массив.



Применение функции пороговой обработки для данного порогового значения лучше всего рассмотреть на следующем примере:



> from scipy import*
 import pywt
 data =linspace(1, 4, 7)
 data
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. ])
 pywt.threshold(data, 2, 'soft')
array([0. , 0. , 0. , 0.5, 1. , 1.5, 2. ])
 pywt.threshold(data, 2, 'hard')
array([0. , 0. , 2. , 2.5, 3. , 3.5, 4. ])
 pywt.threshold(data, 2, 'garrote')
array([0. , 0. , 0., 0.9,1.66666667, 2.35714286, 3.])


График пороговых функций построим с помощью следующего листинга:



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



Влияние пороговой функции на характеристики фильтра



Как следует из приведенного графика, нам подходят только две пороговые функции ‘soft’ и ‘garrote’, для исследования их влияния на характеристики фильтра, запишем листинг:





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


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



Влияние порога детализации на характеристики фильтра



Для рассматриваемого типа фильтров порог смены коэффициентов детализации является важной характеристикой, поэтому исследуем её влияние с помощью следующего листинга:





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


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



Влияние вейвлета на характеристики фильтра



В библиотеке PyWavelets имеется достаточное количество вейвлет для DWT преобразования, которые можно получить так:

 import pywt
 print(pywt.wavelist(kind= 'discrete'))
['bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6', 'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9', 'bior4.4', 'bior5.5', 'bior6.8', 'coif1', 'coif2', 'coif3', 'coif4', 'coif5', 'coif6', 'coif7', 'coif8', 'coif9', 'coif10', 'coif11', 'coif12', 'coif13', 'coif14', 'coif15', 'coif16', 'coif17', 'db1', 'db2', 'db3', 'db4', 'db5', 'db6', 'db7', 'db8', 'db9', 'db10', 'db11', 'db12', 'db13', 'db14', 'db15', 'db16', 'db17', 'db18', 'db19', 'db20', 'db21', 'db22', 'db23', 'db24', 'db25', 'db26', 'db27', 'db28', 'db29', 'db30', 'db31', 'db32', 'db33', 'db34', 'db35', 'db36', 'db37', 'db38', 'dmey', 'haar', 'rbio1.1', 'rbio1.3', 'rbio1.5', 'rbio2.2', 'rbio2.4', 'rbio2.6', 'rbio2.8', 'rbio3.1', 'rbio3.3', 'rbio3.5', 'rbio3.7', 'rbio3.9', 'rbio4.4', 'rbio5.5', 'rbio6.8', 'sym2', 'sym3', 'sym4', 'sym5', 'sym6', 'sym7', 'sym8', 'sym9', 'sym10', 'sym11', 'sym12', 'sym13', 'sym14', 'sym15', 'sym16', 'sym17', 'sym18', 'sym19', 'sym20']


Влияние вейвлета на характеристику фильтра зависит от его первообразной функции. Для демонстрации этой зависимости выберем два вейвлета из семейства «Добеши» — db1 и db38, рассмотрим эти семейства:





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


В первом столбце мы видим вейвлеты Добеши первого порядка (db1), во втором столбце тридцать восьмого порядка (db38). Таким образом, db1 имеет один момент исчезновения, а db38 имеет 38 моментов исчезновения. Число моментов исчезновения связано с порядком аппроксимации и гладкостью вейвлета. Если вейвлет имеет P моментов исчезновения, он может аппроксимировать полиномы степени P – 1.



Более гладкие вейвлеты создают более гладкую аппроксимацию сигнала, и наоборот – «короткие» вейвлеты лучше отслеживают пики аппроксимируемой функции. При выборе вейвлета мы также можем указать, каким должен быть уровень декомпозиции. По умолчанию PyWavelets выбирает максимальный уровень декомпозиции, возможный для входного сигнала. Максимальный уровень разложения зависит от длины входного сигнала и вейвлета:





Для вейвлета db1 максимальный уровень декомпозиции: 11

Для вейвлета db38 максимальный уровень декомпозиции: 5



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





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


Из приведенных скалограмм сигналов на выходе фильтра следует, что для вейвлета db38 за пиками мощности спектра следуют локализованные области, для вейвлета db1 эти области исчезают.Можно выбрать вейвлет, первообразная функция которого будет иметь форму, характерную для явлений, которые мы ожидаем увидеть. Необходимо отметить, что, например, вейвлет db38 может аппроксимировать сигнал полиномом 37 степени. Это расширяет возможности классификации сигналов, например, для выявления неисправностей оборудования по сигналам датчиков вибрации.



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



Фильтр Калмана для удаления высокочастотного шума



Фильтр Калмана широко используется для фильтрации шума в различных динамических системах. Рассмотрим динамическую систему с вектором состояния x.



Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников



где F — матрица переходов (transition matrix),

w(Q) — случайный процесс (шум) с нулевым математическим ожиданием и матрицей ковариаций Q.



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



Зададим параметры системы:



Q- матрицей ковариаций шума (process noise covariance ).

H — матрица наблюдения (measurement).

R — ковариация шума наблюдения (measurement noise covariance).

P =Q — начальное значение ковариационной матрицы для вектора состояния.

z(t) — наблюдаемое состояние системы.

x= z(0) — начальное значение оценки состояния системы.



Для каждого наблюдения z будем вычислять отфильтрованное состояние x

и для этого выполняем следующие шаги.



• шаг 1: экстраполяция

1. экстраполяция (предсказание) состояния системы

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

2. вычисляем ковариационную матрицу для экстраполированного вектора состояния

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников



• шаг 2: коррекция

1. вычисляем вектор ошибки, отклонение наблюдения от ожидаемого состояния

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

2. вычисляем ковариационную матрицу для вектора отклонения (вектора ошибки)

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

3. вычисляем коэффициенты усиления Калмана

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

4. коррекция оценки вектора состояния

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников

5. корректируем ковариационную матрицу оценки вектора состояния системы

Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников


Для приведенной динамической модели можно использовать и библиотеку pyKalman:





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



Метод скользящего среднего



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



Простое скользящее среднее сокращённо — SMA (Simple Moving Average). Для вычисления текущего значения фильтра Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников мы просто усредняем предыдущие n элементов последовательности, соответственно фильтр начинает работать с элемента последовательности n.



Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипниковn$" data-tex="inline">





Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Удаление высокочастотных шумов из сигналов вибродатчиков при вибродиагностике подшипников
Метод SMA получил широкое распространение, но как и метод Калмана не позволяет менять форму выходного сигнала.



Выводы:



1. С использованием модуля scaleogram получены CWT вейвлет скалограммы трёх тестовых сигналов вибродатчика для разных условий испытаний подшипников одного типа. По данным скалограмм выбран сигнал с явно выраженными признаками поздней деградации. Этот сигнал использован для демонстрации работы фильтров во всех приведенных примерах.

2. Рассмотрены методы библиотеки PyWavelets для DWT деконструкции и восстановления сигнала вибродатчика с применением модулей pywt.dwt(), pywt.idwt() и модуля pywt.wavedec() для заданого уровня вейвлета.

3. На примерах рассмотрены особенности применения модуля pywt.threshol() фильтрации коэффициентов DWT детализации, отвечающих за высокочастотную часть спектра с помощью пороговых функций при заданной величине порога.

4. Рассмотрены влияния первообразной DWT вейвлета на форму сигнала, очищенного от шумов.

5. Получена модель фильтра Калмана для динамической среды, модель проверена на тестовом сигнале вибродатчика. График удаления шума совпадает с аналогичным графиком, полученным с использованием модуля pyKalman. Характер графика совпадает со скалограммой.

6. Рассмотрен метод удаления шума из сигнала на основе скользящего среднего.

Источник: Хабр / Интересные публикации

Категория: Google

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *