Фильтрация сигнала с датчика вибрации на электродвигателе

Простейшие вопросы в области инженерной разработки
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Фильтрация сигнала с датчика вибрации на электродвигателе

Сообщение nerwik »

Здравствуйте. Для последующей работы с ним (нахождение фазы, амплитуды и т.д.) нужно отфильтровать сигнал с акселерометра. Его внешний вид с шумом на картинках.
Фактически, как мне сказали, нужно выделить оборотную гармонику (первую) и получить максимально идеальную синусоиду.
Вопрос у меня по поводу какие фильтры применять, может Vi-и конкретные, либо что вообще можно сделать с сигналом, если судить по его внешнему виду - шуму, отношению амплитуды шума к амплитуде основного сигнала и т.д. Я применял полосовой и ФНЧ Баттерворта и Чебышева (Chebyshev Filter.vi и Butterwoth filter.vi). И колебания измеренной фазы и амплитуды отфильтрованной синусоиды достаточно заметны. Может есть какие-то более эффективные способы?
Вложения
1.PNG
3.PNG
4.PNG
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Borjomy_1 »

Вообще, очень странно, что гармоника, которую вы выделяете - 50 Гц. Какова номинальная частота вращения? 3000 об/мин?
Для более точного вычисления необходимо больше периодов, пусть даже с меньшим временным разрешением.
Кроме того, нет никакого смысла производить фильтрацию для вычисления амплитуды и фазы. По сигналу с тахометра вы достаточно точно определяете период. Далее, набираете N-е количество периодов и тахометра и сигнала с акселерометра, после чего берете спектр и того и другого (чтобы все это работало быстро, можно делать детектирование только нужной гармоники). Далее рассматриваете амплитуду и фазу N-ной гармоники, т.е сколько периодов уместилось в массиве. И никакой фильтрации не надо. Взятие спектра само по себе - сильный узкополосный фильтр. Самое важное условие - максимально точно уложить в массив целое число колебаний. фаза сигнала производится вычитанием фазы гармоники тахометра из фазы акселерометра.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Artem.spb »

Borjomy_1 писал(а):Вообще, очень странно, что гармоника, которую вы выделяете - 50 Гц..
а чего странного в наводке от "розетки"?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Borjomy_1 »

а чего странного в наводке от "розетки"?
Э.... Двигатель может быть асинхронный, с питанием от сети. Такие двигатели есть, с частотой вращения около 3000 оборотов в минуту, что соответствует 50 оборотам в секунду. Потому и уточняю.

По факту, получить ровный синус практически невозможно, ибо ключевым в этой ситуации является...собственный шум акселерометра, размазанный толстым слоем по всему спектру.
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение nerwik »

Какова номинальная частота вращения? 3000 об/мин?
Вообще в теории, должен применяться и к двигателям с другой частотой вращения. Но номинальная частота вращения испытательной установки (шлифовальный станок) 2950 об/мин.
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение nerwik »

Кроме того, нет никакого смысла производить фильтрацию для вычисления амплитуды и фазы. По сигналу с тахометра вы достаточно точно определяете период. (чтобы все это работало быстро, можно делать детектирование только нужной гармоники). Далее рассматриваете амплитуду и фазу N-ной гармоники, т.е сколько периодов уместилось в массиве. И никакой фильтрации не надо. Взятие спектра само по себе - сильный узкополосный фильтр. Самое важное условие - максимально точно уложить в массив целое число колебаний. фаза сигнала производится вычитанием фазы гармоники тахометра из фазы акселерометра.
Я бы хотел спросить у вас по этому, каким образом это можно реализовать.
Я вообще определял период и фазу с помощью детектора фронтов (на картинке). Он находил номера индексов фронтов, для сигналов тахометра и акселерометра, формировал массив, разница между соседними элементами массива являлась периодом в количестве выборок (samples - всего их количество у меня 2000). Потом вычитались элементы с одинаковыми номерами в массивах с номерами индексов, когда был зафиксирован фронт, обоих каналов. Разница в количестве выборок делилась на период в выборках - это получалась дробная часть периода. Она умножалась на 360 и получался результат в градусах разницы фаз.
То что вы объяснили можно как то с этим связать?
Еще решил попробовать получить амплитудный и фазовый спектры с помощью Amplitude and Phase Spectrum.vi - его можно использовать? Потом просто нужно вычесть значения фаз из ячеек с одинаковыми номерами в массивах с выхода Amp Spectrum Phase (radians) сигналов с тахометра и акселерометра? Я правильно понял по вашему объяснению. Или это не оно?
Вложения
pain.JPG
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Borjomy_1 »

Гораздо (пропорционально) точнее измерять длительность N количества периодов, вырезать из буфера фрагмент сигнала акселерометра между Array out[0] и Array out[max]-1. И смотреть max гармонику. При этом фаза будет автоматически вычисляться от синхроимпульса, ведь мы вырезали массив по началу импульса.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Юрий »

В этих случаях очень эффективна синхронная фильтрация. И вычислений поменьше и главное результат более достоверный. Особенно это касается измерения фазы.
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение nerwik »

Юрий писал(а):В этих случаях очень эффективна синхронная фильтрация. И вычислений поменьше и главное результат более достоверный. Особенно это касается измерения фазы.
А сколько периодов при синхронной фильтрации должно быть достаточно? Может быть примерно хотя бы
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Borjomy_1 »

А сколько периодов при синхронной фильтрации должно быть достаточно? Может быть примерно хотя бы
Это уже экспериментальным путем определяется. По уровню шума измеренного параметра. Попадает он в допуск или нет. Однако надо учитывать, что скорость вращения может колебаться в некотором диапазоне от номинала. Короче, вам надо делать число периодов в виде контрола. И потом подбирать по-месту
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение nerwik »

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

Код: Выделить всё

%f - сигнал с шумом
%y - отфильтрованный сигнал
%Т - количество выборок в одном периоде
%N - количество периодов
y=zeros(1,T)
for s=0:T-1
    for i=0:N-1   
        y(s)=y(s)+1/N*f(s+T*i-1);
    end;
end
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение nerwik »

Вот так сделал синхронную фильтрацию. Периодов при моем шуме понадобилось 5000 - 2M samples, загруженность процессора конечно большая, но результат достаточно хороший.
Вложения
Снимок.JPG
Последний раз редактировалось nerwik 18 апр 2017, 09:55, всего редактировалось 1 раз.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Юрий »

Посмотрите. Может, так будет побыстрее.
2017-04-17_233350.png
2017-04-17_233350.png (3.99 КБ) 7735 просмотров
Если периоды сильно неравномерные, то можно привести их одинаковому количеству точек, используя функцию Interpolate 1D.vi из поллитры Математика.
Вложения
СинхроФильтр.vi
(9.75 КБ) 106 скачиваний
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение Юрий »

А, вот, ещё вариант. Сначала подумалось, что он будет побыстрее, но транспонирование матрицы дело портит, надо проверять.
2017-04-18_005232.png
2017-04-18_005232.png (2.83 КБ) 7735 просмотров
К стати. Вместо массива из единиц можно задавать нужную функцию, т. е. окно. Хоть синус, хоть косинус, либо другую.
Вложения
СинхроФильтр+.vi
(10.34 КБ) 94 скачивания
nerwik
beginner
beginner
Сообщения: 18
Зарегистрирован: 16 фев 2017, 10:48
Версия LabVIEW: 12
Контактная информация:

Re: Фильтрация сигнала с датчика вибрации на электродвигател

Сообщение nerwik »

12 версия, эти файлы не открываются :)
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»