rpmtrack

Отслеживайте и извлекайте профиль частоты вращения из сигнала вибрации

Описание

пример

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

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

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

пример

rpm = rpmtrack(xt,order,p) возвращает зависящую от времени оценку скорости вращения из сигнала, сохраненного в MATLAB® timetable 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.

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

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

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.

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

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 см. Блейд испытывает силу сопротивления, пропорциональную скорости, что приводит к следующему выражению для угла фазы:

ϕ=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 затухает экспоненциально. На вкладке Экспорт нажмите Экспорт и выберите 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