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

Простейшие вопросы в области инженерной разработки

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

Postby nerwik on 13 Apr 2017, 19:59

Здравствуйте. Для последующей работы с ним (нахождение фазы, амплитуды и т.д.) нужно отфильтровать сигнал с акселерометра. Его внешний вид с шумом на картинках.
Фактически, как мне сказали, нужно выделить оборотную гармонику (первую) и получить максимально идеальную синусоиду.
Вопрос у меня по поводу какие фильтры применять, может Vi-и конкретные, либо что вообще можно сделать с сигналом, если судить по его внешнему виду - шуму, отношению амплитуды шума к амплитуде основного сигнала и т.д. Я применял полосовой и ФНЧ Баттерворта и Чебышева (Chebyshev Filter.vi и Butterwoth filter.vi). И колебания измеренной фазы и амплитуды отфильтрованной синусоиды достаточно заметны. Может есть какие-то более эффективные способы?
Attachments
1.PNG
3.PNG
4.PNG
nerwik
beginner
beginner
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

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

Postby Borjomy_1 on 13 Apr 2017, 22:48

Вообще, очень странно, что гармоника, которую вы выделяете - 50 Гц. Какова номинальная частота вращения? 3000 об/мин?
Для более точного вычисления необходимо больше периодов, пусть даже с меньшим временным разрешением.
Кроме того, нет никакого смысла производить фильтрацию для вычисления амплитуды и фазы. По сигналу с тахометра вы достаточно точно определяете период. Далее, набираете N-е количество периодов и тахометра и сигнала с акселерометра, после чего берете спектр и того и другого (чтобы все это работало быстро, можно делать детектирование только нужной гармоники). Далее рассматриваете амплитуду и фазу N-ной гармоники, т.е сколько периодов уместилось в массиве. И никакой фильтрации не надо. Взятие спектра само по себе - сильный узкополосный фильтр. Самое важное условие - максимально точно уложить в массив целое число колебаний. фаза сигнала производится вычитанием фазы гармоники тахометра из фазы акселерометра.
Borjomy_1
expert
expert
 
Posts: 1679
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 295
VIP

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

Postby Artem.spb on 14 Apr 2017, 00:52

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

а чего странного в наводке от "розетки"?
Artem.spb
expert
expert
 
Posts: 1069
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 204
CLD hardware I/O VIP freelance

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

Postby Borjomy_1 on 14 Apr 2017, 10:44

а чего странного в наводке от "розетки"?

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

По факту, получить ровный синус практически невозможно, ибо ключевым в этой ситуации является...собственный шум акселерометра, размазанный толстым слоем по всему спектру.
Borjomy_1
expert
expert
 
Posts: 1679
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 295
VIP

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

Postby nerwik on 14 Apr 2017, 11:03

Какова номинальная частота вращения? 3000 об/мин?

Вообще в теории, должен применяться и к двигателям с другой частотой вращения. Но номинальная частота вращения испытательной установки (шлифовальный станок) 2950 об/мин.
nerwik
beginner
beginner
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

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

Postby nerwik on 14 Apr 2017, 16:43

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

Я бы хотел спросить у вас по этому, каким образом это можно реализовать.
Я вообще определял период и фазу с помощью детектора фронтов (на картинке). Он находил номера индексов фронтов, для сигналов тахометра и акселерометра, формировал массив, разница между соседними элементами массива являлась периодом в количестве выборок (samples - всего их количество у меня 2000). Потом вычитались элементы с одинаковыми номерами в массивах с номерами индексов, когда был зафиксирован фронт, обоих каналов. Разница в количестве выборок делилась на период в выборках - это получалась дробная часть периода. Она умножалась на 360 и получался результат в градусах разницы фаз.
То что вы объяснили можно как то с этим связать?
Еще решил попробовать получить амплитудный и фазовый спектры с помощью Amplitude and Phase Spectrum.vi - его можно использовать? Потом просто нужно вычесть значения фаз из ячеек с одинаковыми номерами в массивах с выхода Amp Spectrum Phase (radians) сигналов с тахометра и акселерометра? Я правильно понял по вашему объяснению. Или это не оно?
Attachments
pain.JPG
nerwik
beginner
beginner
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

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

Postby Borjomy_1 on 14 Apr 2017, 21:26

Гораздо (пропорционально) точнее измерять длительность N количества периодов, вырезать из буфера фрагмент сигнала акселерометра между Array out[0] и Array out[max]-1. И смотреть max гармонику. При этом фаза будет автоматически вычисляться от синхроимпульса, ведь мы вырезали массив по началу импульса.
Borjomy_1
expert
expert
 
Posts: 1679
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 295
VIP

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

Postby Юрий on 15 Apr 2017, 01:16

В этих случаях очень эффективна синхронная фильтрация. И вычислений поменьше и главное результат более достоверный. Особенно это касается измерения фазы.
Юрий
adviser
adviser
 
Posts: 233
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2011
Karma: 52

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

Postby nerwik on 16 Apr 2017, 16:59

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

А сколько периодов при синхронной фильтрации должно быть достаточно? Может быть примерно хотя бы
nerwik
beginner
beginner
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

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

Postby Borjomy_1 on 16 Apr 2017, 19:37

А сколько периодов при синхронной фильтрации должно быть достаточно? Может быть примерно хотя бы

Это уже экспериментальным путем определяется. По уровню шума измеренного параметра. Попадает он в допуск или нет. Однако надо учитывать, что скорость вращения может колебаться в некотором диапазоне от номинала. Короче, вам надо делать число периодов в виде контрола. И потом подбирать по-месту
Borjomy_1
expert
expert
 
Posts: 1679
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 295
VIP

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

Postby nerwik on 16 Apr 2017, 19:49

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

Code: Select all
%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
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

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

Postby nerwik on 17 Apr 2017, 16:19

Вот так сделал синхронную фильтрацию. Периодов при моем шуме понадобилось 5000 - 2M samples, загруженность процессора конечно большая, но результат достаточно хороший.
Attachments
Снимок.JPG
Last edited by nerwik on 18 Apr 2017, 09:55, edited 1 time in total.
nerwik
beginner
beginner
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

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

Postby Юрий on 17 Apr 2017, 23:39

Посмотрите. Может, так будет побыстрее.
2017-04-17_233350.png
2017-04-17_233350.png (3.99 KiB) Viewed 298 times

Если периоды сильно неравномерные, то можно привести их одинаковому количеству точек, используя функцию Interpolate 1D.vi из поллитры Математика.
Attachments
СинхроФильтр.vi
(9.75 KiB) Downloaded 8 times
Юрий
adviser
adviser
 
Posts: 233
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2011
Karma: 52

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

Postby Юрий on 18 Apr 2017, 00:54

А, вот, ещё вариант. Сначала подумалось, что он будет побыстрее, но транспонирование матрицы дело портит, надо проверять.
2017-04-18_005232.png
2017-04-18_005232.png (2.83 KiB) Viewed 298 times

К стати. Вместо массива из единиц можно задавать нужную функцию, т. е. окно. Хоть синус, хоть косинус, либо другую.
Attachments
СинхроФильтр+.vi
(10.34 KiB) Downloaded 9 times
Юрий
adviser
adviser
 
Posts: 233
Joined: 28 Feb 2010, 18:04
LabVIEW Version: LV2011
Karma: 52

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

Postby nerwik on 18 Apr 2017, 10:44

12 версия, эти файлы не открываются :)
nerwik
beginner
beginner
 
Posts: 18
Joined: 16 Feb 2017, 10:48
LabVIEW Version: 12
Karma: 0

Next

Return to Для чайников

Who is online

Users browsing this forum: Anton.M, Yahoo and 4 guests

cron