exponenta event banner

rpmtrack

Отслеживать и извлекать профиль оборотов из вибросигнала

Описание

пример

rpm = rpmtrack(x,fs,order,p) возвращает зависящую от времени оценку скорости вращения, rpm, от сигнала вибрации x дискретизировано со скоростью fs.

Матрица из двух столбцов p содержит набор точек, которые лежат на частотно-временном гребне, соответствующем заданному order. Каждая строка p задает одну пару координат. При звонке rpmtrack без указания обоих order и p, функция открывает интерактивный график, который отображает временную и частотную карту и позволяет выбрать точки.

При наличии импульсного сигнала тахометра используйте tachorpm извлечь rpm непосредственно.

пример

rpm = rpmtrack(xt,order,p) возвращает зависящую от времени оценку скорости вращения из сигнала, сохраненного в расписании MATLAB ®xt.

rpm = rpmtrack(___,Name,Value) задает дополнительные параметры для любого из предыдущих синтаксисов с использованием аргументов пары имя-значение. Опции включают метод, используемый для оценки частотно-временной карты и начального времени для профиля RPM.

пример

[rpm,tout] = rpmtrack(___) также возвращает вектор времени, при котором вычисляется профиль RPM.

пример

rpmtrack(___) без выходных аргументов строит график временной частоты мощности и расчетный профиль RPM на интерактивном рисунке.

Примеры

свернуть все

Генерация сигнала вибрации с тремя гармоническими составляющими. Сигнал дискретизируется при частоте 1 кГц в течение 16 секунд. Мгновенная частота сигнала напоминает пробег и выбег двигателя. Вычислите мгновенную фазу, интегрировав частоту с помощью трапециевидного правила.

fs = 1000;
t = 0:1/fs:16;

ifq = 20 + t.^6.*exp(-t);
phi = 2*pi*cumtrapz(t,ifq);

Гармонические составляющие сигнала соответствуют порядкам 1, 2 и 3. Синусоида порядка 2 имеет вдвое большую амплитуду, чем остальные.

ol = [1 2 3];
amp = [5 10 5];

vib = amp*cos(ol'.*phi);

Извлеките и визуализируйте профиль оборотов сигнала с помощью точки на гребне порядка 2.

time = 3;
order = 2;
p = [time order*ifq(t==time)];

rpmtrack(vib,fs,order,p)

Генерировать сигнал, который напоминает вибрации, вызванные вращением двигателя автомобиля. Сигнал дискретизируется на частоте 1 кГц в течение 30 секунд и содержит три гармонические составляющие порядков 1, 2,4 и 3 с амплитудами 5, 4 и 0,5 соответственно. Встроите сигнал в белый гауссов шум единичной дисперсии и сохраните его в расписании MATLAB ®. Умножьте мгновенную частоту на 60, чтобы получить профиль RPM. Постройте график профиля RPM.

fs = 1000;
t = (0:1/fs:30)';

fit = @(a,x) (t-x).^6.*exp(-(t-x)).*((t-x)>=0)*a';

fis = fit([0.4 1 0.6 1],[0 6 13 17]);
phi = 2*pi*cumtrapz(t,fis);

ol = [1 2.4 3];
amp = [5 4 0.5]';
vib = cos(phi.*ol)*amp + randn(size(t));

xt = timetable(seconds(t),vib);

plot(t,fis*60)

Figure contains an axes. The axes contains an object of type line.

Используйте rpmtrack функция для получения профиля частоты вращения из сигнала вибрации. Используйте четыре точки с интервалом 5 секунд, чтобы указать гребень, соответствующий порядку 2.4. Отображение сводки графика вывода.

ndx = (5:5:20)*fs;
order = ol(2);

p = [t(ndx) order*fis(ndx)];

rpmest = rpmtrack(xt,order,p);

summary(rpmest)
RowTimes:

    tout: 30001x1 duration
        Values:
            Min           0 sec     
            Median        15 sec    
            Max           30 sec    
            TimeStep      0.001 sec 

Variables:

    rpm: 30001x1 double

        Values:

            Min       2.2204e-16
            Median        4327.2
            Max           8879.8

Постройте график восстановленного профиля RPM и точек, используемых при реконструкции.

hold on
plot(seconds(rpmest.tout),rpmest.rpm,'.-')
plot(t(ndx),fis(ndx)*60,'ok')
hold off
legend('Original','Reconstructed','Ridge points','Location','northwest')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Original, Reconstructed, Ridge points.

Используйте извлеченный профиль RPM для формирования карты order-RPM сигнала.

rpmordermap(vib,fs,rpmest.rpm)

Figure Order Map contains objects of type uimenu, uitoolbar, uiflowcontainer.

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

xrc = orderwaveform(vib,fs,rpmest.rpm,ol);

figure
plot(t,xrc)
legend([repmat('Order = ',[3 1]) num2str(ol')])
xlim([5 20])

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Order = 1, Order = 2.4, Order = 3.

Оцените профиль частоты вращения лопатки вентилятора по мере ее замедления после переключения.

Промышленный вентилятор на крыше вращается со скоростью 20 000 об/мин. Сопротивление воздуха (при незначительном влиянии трения подшипника) приводит к остановке ротора вентилятора приблизительно через 6 секунд. Высокоскоростная камера измеряет координату x одной из лопастей вентилятора со скоростью 1 кГц.

fs = 1000;
t = 0:1/fs:6-1/fs;

rpm0 = 20000;

Идеализируйте лопасть вентилятора как точечную массу, окружающую центр ротора на радиусе 50 см. Лопасть испытывает силу сопротивления, пропорциональную скорости, что приводит к следующему выражению для фазового угла:

start= 2πf0T (1-e-t/T),

где f0 - начальная частота, а T = 0,75 секунды - время затухания.

a = 0.5;
f0 = rpm0/60;
T = 0.75;

phi = 2*pi*f0*T*(1-exp(-t/T));

Вычислите и постройте график координат x и y лезвия. Добавьте белый гауссов шум дисперсии 0.12.

x = a*cos(phi) + randn(size(phi))/10;
y = a*sin(phi) + randn(size(phi))/10;

plot(t,x,t,y)

Figure contains an axes. The axes contains 2 objects of type line.

Используйте rpmtrack для определения профиля RPM. Напечатать

rpmtrack(x,fs)

в командной строке для открытия интерактивной фигуры.

Используйте ползунок для настройки частотного разрешения временной карты на 11 Гц. Предположим, что составляющая сигнала соответствует порядку 1, и установите время окончания извлечения гребня 3,0 секунды. Используйте курсор перекрестия на карте временных частот и кнопку «Добавить», чтобы добавить три точки, лежащие на гребне. (Либо дважды щелкните курсор, чтобы добавить точки в выбранных местах.) Щелкните Оценить (Estimate), чтобы отследить и извлечь профиль RPM.

Убедитесь в экспоненциальном затухании профиля RPM. На вкладке Экспорт (Export) щелкните Экспорт (Export) и выберите Generate MATLAB Script. Сценарий появится в редакторе.

% MATLAB Code from rpmtrack GUI

% Generated by MATLAB 9.4 and Signal Processing Toolbox 8.0

% Generated on 18-Dec-2017 19:00:35

% Set sample rate
fs = 1000.0000;
% Set order of ridge of interest
order = 1.0000;
% Set ridge points on ridge of interest
ridgePoints = [...
    0.4501 179.8246;...
    0.9944 88.5965;...
    2.4161 11.4035];
% Estimate RPM
[rpmOut,tOut] = rpmtrack(x,fs,order,ridgePoints,...
    'Method','stft',...
    'FrequencyResolution',11.1612,...
    'PowerPenalty',Inf,...
    'FrequencyPenalty',0.0000,...
    'StartTime',0.0000,...
    'EndTime',3.0000);

Запустите сценарий. Отображение профиля RPM на полулогарифмическом графике.

semilogy(tOut,rpmOut)
ylim([500 20000])

Figure contains an axes. The axes contains an object of type line.

Входные аргументы

свернуть все

Входной сигнал, заданный как вектор.

Пример: cos(pi/4*(0:159))+randn(1,160) задает шумную синусоиду, дискретизированную при 2δ Гц.

Типы данных: single | double

Частота выборки, заданная как положительный действительный скаляр.

Типы данных: single | double

Порядок хребта, заданный как положительный действительный скаляр.

Типы данных: single | double

Точки гребня, определяемые как матрица из двух столбцов, содержащая одну частотно-временную координату на каждой строке. Координаты описывают точки на временной-частотной карте, принадлежащие интересующему гребню порядка.

Типы данных: single | double

Расписание ввода. xt должно содержать увеличивающееся, конечное и равномерно разнесенное время строки типа duration. Расписание должно содержать только один числовой вектор данных со значениями сигнала.

Если расписание имеет отсутствующие или повторяющиеся моменты времени, его можно исправить с помощью подсказок в «Чистом расписании» с «Отсутствующим», «Повторяющимся» или «Неуниформным временем».

Пример: timetable(seconds(0:4)',randn(5,1)) задает случайную величину, дискретизированную с частотой 1 Гц в течение 4 секунд.

Типы данных: single | double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Method','fsst','PowerPenalty',10 указывает, что временная частотная карта оценивается с использованием синхронизированного преобразования Фурье, позволяя до 10 децибел разности мощности между соседними точками на гребне.

Тип временной-частотной карты, используемой в процессе оценки, определяемый как разделенная запятыми пара, состоящая из 'Method' и либо 'stft' или 'fsst'.

  • 'stft' - Используйте кратковременное преобразование Фурье для вычисления временной и частотной карты спектрограммы мощности. Посмотрите pspectrum для получения более подробной информации о кратковременном преобразовании Фурье.

  • 'fsst' - Используйте синхронизированное преобразование Фурье для вычисления временной и частотной карты. Посмотрите fsst для получения более подробной информации о синхронизированном преобразовании Фурье.

Полоса пропускания частотного разрешения, используемая для вычисления временной карты частот, определяемой как пара, разделенная запятыми, состоящая из 'FrequencyResolution' и числовой скаляр, выраженный в Гц.

Типы данных: single | double

Максимальная разность мощности между соседними точками гребня, определяемая как разделенная запятыми пара, состоящая из 'PowerPenalty' и числовой скаляр, выраженный в дБ.

Используйте этот параметр, чтобы убедиться, что алгоритм извлечения гребня rpmtrack находит правильный гребень для соответствующего порядка. 'PowerPenalty' полезен, когда интересующий гребень порядка пересекает другие гребни или очень близок по частоте к другим гребням, но имеет другой уровень мощности.

Типы данных: single | double

Штраф при извлечении крупного хребта, указанный как пара, разделенная запятыми, состоящая из 'FrequencyPenalty' и неотрицательный скаляр.

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

Типы данных: single | double

Время начала оценки профиля RPM, указанное как пара, разделенная запятыми, состоящая из 'StartTime' и числовой или duration скаляр.

Типы данных: single | double | duration

Время окончания оценки профиля RPM, указанное как пара, разделенная запятыми, состоящая из 'EndTime' и числовой или duration скаляр.

Типы данных: single | double | duration

Выходные аргументы

свернуть все

Оценка скорости вращения, возвращаемая как вектор, выраженный в оборотах в минуту.

Если вход в rpmtrack является расписанием, то rpm является также расписанием с одной переменной, помеченной rpm. Время строки расписания помечено tout и являются типовыми duration.

Значения времени, при которых оценивается профиль RPM, возвращаемые в виде вектора.

Алгоритмы

rpmtrack использует двухэтапный (грубо-тонкий) метод оценки:

  1. Вычисление временной и частотной карты x и извлекают частотно-временной гребень на основе заданного набора точек на гребне, p, order соответствующие этому гребню и необязательные штрафные параметры 'PowerPenalty' и 'FrequencyPenalty'. Извлеченный выступ обеспечивает грубую оценку профиля RPM.

  2. Вычисляют форму сигнала порядка, соответствующую выделенному гребню, с использованием фильтра Вольда-Калмана и вычисляют новую частотно-временную карту из этой формы сигнала. Изолированный гребень порядка из новой карты временных частот обеспечивает точную оценку профиля RPM.

Ссылки

[1] Урбанек, Яцек, Томаш Баршч и Жером Антони. «Двухэтапная процедура оценки мгновенной скорости вращения с большими колебаниями». Механические системы и обработка сигналов. Том 38, 2013, стр. 96-102.

См. также

Функции

Представлен в R2018a