Фильтрация сигнала с датчика вибрации на электродвигателе
-
- beginner
- Сообщения: 18
- Зарегистрирован: 16 фев 2017, 10:48
- Версия LabVIEW: 12
- Контактная информация:
Фильтрация сигнала с датчика вибрации на электродвигателе
Здравствуйте. Для последующей работы с ним (нахождение фазы, амплитуды и т.д.) нужно отфильтровать сигнал с акселерометра. Его внешний вид с шумом на картинках.
Фактически, как мне сказали, нужно выделить оборотную гармонику (первую) и получить максимально идеальную синусоиду.
Вопрос у меня по поводу какие фильтры применять, может Vi-и конкретные, либо что вообще можно сделать с сигналом, если судить по его внешнему виду - шуму, отношению амплитуды шума к амплитуде основного сигнала и т.д. Я применял полосовой и ФНЧ Баттерворта и Чебышева (Chebyshev Filter.vi и Butterwoth filter.vi). И колебания измеренной фазы и амплитуды отфильтрованной синусоиды достаточно заметны. Может есть какие-то более эффективные способы?
Фактически, как мне сказали, нужно выделить оборотную гармонику (первую) и получить максимально идеальную синусоиду.
Вопрос у меня по поводу какие фильтры применять, может Vi-и конкретные, либо что вообще можно сделать с сигналом, если судить по его внешнему виду - шуму, отношению амплитуды шума к амплитуде основного сигнала и т.д. Я применял полосовой и ФНЧ Баттерворта и Чебышева (Chebyshev Filter.vi и Butterwoth filter.vi). И колебания измеренной фазы и амплитуды отфильтрованной синусоиды достаточно заметны. Может есть какие-то более эффективные способы?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Вообще, очень странно, что гармоника, которую вы выделяете - 50 Гц. Какова номинальная частота вращения? 3000 об/мин?
Для более точного вычисления необходимо больше периодов, пусть даже с меньшим временным разрешением.
Кроме того, нет никакого смысла производить фильтрацию для вычисления амплитуды и фазы. По сигналу с тахометра вы достаточно точно определяете период. Далее, набираете N-е количество периодов и тахометра и сигнала с акселерометра, после чего берете спектр и того и другого (чтобы все это работало быстро, можно делать детектирование только нужной гармоники). Далее рассматриваете амплитуду и фазу N-ной гармоники, т.е сколько периодов уместилось в массиве. И никакой фильтрации не надо. Взятие спектра само по себе - сильный узкополосный фильтр. Самое важное условие - максимально точно уложить в массив целое число колебаний. фаза сигнала производится вычитанием фазы гармоники тахометра из фазы акселерометра.
Для более точного вычисления необходимо больше периодов, пусть даже с меньшим временным разрешением.
Кроме того, нет никакого смысла производить фильтрацию для вычисления амплитуды и фазы. По сигналу с тахометра вы достаточно точно определяете период. Далее, набираете N-е количество периодов и тахометра и сигнала с акселерометра, после чего берете спектр и того и другого (чтобы все это работало быстро, можно делать детектирование только нужной гармоники). Далее рассматриваете амплитуду и фазу N-ной гармоники, т.е сколько периодов уместилось в массиве. И никакой фильтрации не надо. Взятие спектра само по себе - сильный узкополосный фильтр. Самое важное условие - максимально точно уложить в массив целое число колебаний. фаза сигнала производится вычитанием фазы гармоники тахометра из фазы акселерометра.
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
а чего странного в наводке от "розетки"?Borjomy_1 писал(а):Вообще, очень странно, что гармоника, которую вы выделяете - 50 Гц..
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Э.... Двигатель может быть асинхронный, с питанием от сети. Такие двигатели есть, с частотой вращения около 3000 оборотов в минуту, что соответствует 50 оборотам в секунду. Потому и уточняю.а чего странного в наводке от "розетки"?
По факту, получить ровный синус практически невозможно, ибо ключевым в этой ситуации является...собственный шум акселерометра, размазанный толстым слоем по всему спектру.
-
- beginner
- Сообщения: 18
- Зарегистрирован: 16 фев 2017, 10:48
- Версия LabVIEW: 12
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Вообще в теории, должен применяться и к двигателям с другой частотой вращения. Но номинальная частота вращения испытательной установки (шлифовальный станок) 2950 об/мин.Какова номинальная частота вращения? 3000 об/мин?
-
- beginner
- Сообщения: 18
- Зарегистрирован: 16 фев 2017, 10:48
- Версия LabVIEW: 12
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Я бы хотел спросить у вас по этому, каким образом это можно реализовать.Кроме того, нет никакого смысла производить фильтрацию для вычисления амплитуды и фазы. По сигналу с тахометра вы достаточно точно определяете период. (чтобы все это работало быстро, можно делать детектирование только нужной гармоники). Далее рассматриваете амплитуду и фазу N-ной гармоники, т.е сколько периодов уместилось в массиве. И никакой фильтрации не надо. Взятие спектра само по себе - сильный узкополосный фильтр. Самое важное условие - максимально точно уложить в массив целое число колебаний. фаза сигнала производится вычитанием фазы гармоники тахометра из фазы акселерометра.
Я вообще определял период и фазу с помощью детектора фронтов (на картинке). Он находил номера индексов фронтов, для сигналов тахометра и акселерометра, формировал массив, разница между соседними элементами массива являлась периодом в количестве выборок (samples - всего их количество у меня 2000). Потом вычитались элементы с одинаковыми номерами в массивах с номерами индексов, когда был зафиксирован фронт, обоих каналов. Разница в количестве выборок делилась на период в выборках - это получалась дробная часть периода. Она умножалась на 360 и получался результат в градусах разницы фаз.
То что вы объяснили можно как то с этим связать?
Еще решил попробовать получить амплитудный и фазовый спектры с помощью Amplitude and Phase Spectrum.vi - его можно использовать? Потом просто нужно вычесть значения фаз из ячеек с одинаковыми номерами в массивах с выхода Amp Spectrum Phase (radians) сигналов с тахометра и акселерометра? Я правильно понял по вашему объяснению. Или это не оно?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Гораздо (пропорционально) точнее измерять длительность N количества периодов, вырезать из буфера фрагмент сигнала акселерометра между Array out[0] и Array out[max]-1. И смотреть max гармонику. При этом фаза будет автоматически вычисляться от синхроимпульса, ведь мы вырезали массив по началу импульса.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
В этих случаях очень эффективна синхронная фильтрация. И вычислений поменьше и главное результат более достоверный. Особенно это касается измерения фазы.
-
- beginner
- Сообщения: 18
- Зарегистрирован: 16 фев 2017, 10:48
- Версия LabVIEW: 12
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
А сколько периодов при синхронной фильтрации должно быть достаточно? Может быть примерно хотя быЮрий писал(а):В этих случаях очень эффективна синхронная фильтрация. И вычислений поменьше и главное результат более достоверный. Особенно это касается измерения фазы.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Это уже экспериментальным путем определяется. По уровню шума измеренного параметра. Попадает он в допуск или нет. Однако надо учитывать, что скорость вращения может колебаться в некотором диапазоне от номинала. Короче, вам надо делать число периодов в виде контрола. И потом подбирать по-местуА сколько периодов при синхронной фильтрации должно быть достаточно? Может быть примерно хотя бы
-
- beginner
- Сообщения: 18
- Зарегистрирован: 16 фев 2017, 10:48
- Версия LabVIEW: 12
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Вы не могли бы помочь с алгоритмом синхронной фильтрации, точнее как сделать это в 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
-
- beginner
- Сообщения: 18
- Зарегистрирован: 16 фев 2017, 10:48
- Версия LabVIEW: 12
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Вот так сделал синхронную фильтрацию. Периодов при моем шуме понадобилось 5000 - 2M samples, загруженность процессора конечно большая, но результат достаточно хороший.
Последний раз редактировалось nerwik 18 апр 2017, 09:55, всего редактировалось 1 раз.
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
Посмотрите. Может, так будет побыстрее.
Если периоды сильно неравномерные, то можно привести их одинаковому количеству точек, используя функцию Interpolate 1D.vi из поллитры Математика.- Вложения
-
- СинхроФильтр.vi
- (9.75 КБ) 107 скачиваний
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Фильтрация сигнала с датчика вибрации на электродвигател
А, вот, ещё вариант. Сначала подумалось, что он будет побыстрее, но транспонирование матрицы дело портит, надо проверять.
К стати. Вместо массива из единиц можно задавать нужную функцию, т. е. окно. Хоть синус, хоть косинус, либо другую.- Вложения
-
- СинхроФильтр+.vi
- (10.34 КБ) 96 скачиваний
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение