exponenta event banner

rpmfreqmap

Карта частоты вращения для анализа заказа

Описание

пример

map = rpmfreqmap(x,fs,rpm) возвращает матрицу отображения частота-частота вращения, map, что является результатом выполнения частотного анализа входного вектора, x. x измеряется в наборе rpm скоростей вращения, выраженных в оборотах в минуту. fs - частота дискретизации в Гц. Каждый столбец map содержит среднеквадратичные (среднеквадратичные) оценки амплитуды спектрального содержания, присутствующего при каждом значении rpm. rpmfreqmap использует кратковременное преобразование Фурье для анализа спектрального содержания x.

пример

map = rpmfreqmap(x,fs,rpm,res) определяет разрешающую пропускную способность карты в Гц.

пример

map = rpmfreqmap(___,Name,Value) задает параметры с помощью Name,Value в дополнение к входным аргументам в предыдущих синтаксисах.

[map,freq,rpm,time,res] = rpmfreqmap(___) возвращает векторы с частотами, скоростями вращения и моментами времени, в которые вычисляется частотная карта. Он также возвращает используемую пропускную способность разрешения.

пример

rpmfreqmap(___) без выходных аргументов строит график частоты как функцию скорости вращения и времени на интерактивном рисунке. Сюжет также известен как диаграмма Кэмпбелла.

Примеры

свернуть все

Создайте моделируемый сигнал с частотой 600 Гц в течение 5 секунд. Испытываемая система увеличивает скорость вращения с 10 до 40 оборотов в секунду в течение периода наблюдения.

Создайте показания тахометра.

fs = 600;
t1 = 5;
t = 0:1/fs:t1;

f0 = 10;
f1 = 40;
rpm = 60*linspace(f0,f1,length(t));

Сигнал состоит из четырех гармонически связанных чирп с порядками 1, 0,5, 4 и 6. Чирп порядка 4 имеет вдвое большую амплитуду, чем остальные. Чтобы создать чирпы, используйте трапециевидное правило для выражения фазы как интеграла скорости вращения.

o1 = 1;
o2 = 0.5;
o3 = 4;
o4 = 6;

ph = 2*pi*cumtrapz(rpm/60)/fs;

x = [1 1 2 1]*cos([o1 o2 o3 o4]'*ph);

Визуализируйте карту частота-частота вращения сигнала.

rpmfreqmap(x,fs,rpm)

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

Проанализируйте смоделированные данные с акселерометра, размещенного в кабине вертолета.

Загрузите данные вертолета. Вибрационные измерения, vib, отбирают пробы со скоростью 500 Гц в течение 10 секунд. Проверка данных показывает, что она имеет линейный тренд. Устраните тенденцию, чтобы предотвратить ухудшение качества оценки частоты.

load('helidata.mat')

vib = detrend(vib);

Постройте график нелинейного профиля RPM. Ротор поднимается вверх до тех пор, пока не достигнет максимальной скорости вращения около 27600 оборотов в минуту, а затем опускается вниз.

plot(t,rpm)
xlabel('Time (s)')
ylabel('RPM')

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

Вычислите карту частота-частота вращения. Укажите разрешающую способность 2,5 Гц.

[map,freq,rpmOut,time] = rpmfreqmap(vib,fs,rpm,2.5);

Визуализируйте карту.

imagesc(time,freq,map)
ax = gca;
ax.YDir = 'normal';
xlabel('Time (s)')
ylabel('Frequency (Hz)')

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

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

rpmfreqmap(vib,fs,rpm,1.5);

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

Создайте сигнал, который состоит из двух линейных чирп и квадратичной чирп, все дискретизированные при 600 Гц в течение 15 секунд. Система, которая выдает сигнал, увеличивает скорость его вращения с 10 до 40 оборотов в секунду в течение периода испытаний.

Создайте показания тахометра.

fs = 600;
t1 = 15;
t = 0:1/fs:t1;

f0 = 10;
f1 = 40;
rpm = 60*linspace(f0,f1,length(t));

Линейные чирки имеют порядки 1 и 2,5. Компонент порядка 1 имеет половину амплитуды другого. Квадратичная чирп начинается с порядка 6 и возвращается к этому порядку в конце измерения. Его амплитуда составляет 0,8. Создайте сигнал, используя эту информацию.

o1 = 1;
o2 = 2.5;
o6 = 6;

x = 0.5*chirp(t,o1*f0,t1,o1*f1)+chirp(t,o2*f0,t1,o2*f1) + ...
    0.8*chirp(t,o6*f0,t1,o6*f1,'quadratic');

Вычислите карту частота-частота вращения сигнала. Используйте амплитуду пика в каждой измерительной ячейке. Задайте разрешение 6 Гц. Окно данных с плоским верхним окном.

[map,fr,rp] = rpmfreqmap(x,fs,rpm,6, ...
    'Amplitude','peak','Window','flattopwin');

Нарисуйте карту частоты вращения в виде графика водопада.

[FR,RP] = meshgrid(fr,rp);
waterfall(FR,RP,map')

view(-6,60)
xlabel('Frequency (Hz)')
ylabel('RPM')
zlabel('Amplitude')

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

Постройте интерактивную карту частоты вращения с помощью вызова rpmfreqmap без выходных аргументов.

Загрузить файл, содержащий смоделированные вибрационные данные с акселерометра, размещенного в кабине вертолета. Данные отбирают со скоростью 500 Гц в течение 10 секунд. Удалите линейный тренд в данных. Звонить rpmfreqmap для формирования интерактивного графика частотно-RPM-карты. Задайте разрешение по частоте 2 Гц.

load helidata.mat
rpmfreqmap(detrend(vib),fs,rpm,2)

Переместите перекрестные курсоры на рисунке для определения частоты вращения и среднеквадратичной амплитуды на частоте 25 Гц через 5 секунд.

Нажмите кнопку Zoom X на панели инструментов, чтобы увеличить область времени от 2 до 4 секунд. На нижнем графике появится панорамное изображение.

Нажмите кнопку «График водопада» на панели инструментов, чтобы отобразить карту частоты вращения в виде графика водопада. Для улучшения видимости поверните график по часовой стрелке с помощью кнопки «Повернуть влево» три раза. Переместите панорамирование в интервал от 4 до 6 секунд.

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

свернуть все

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

Пример: cos(pi/4*(0:159))+randn(1,160) определяет синусоиду, встроенную в белый гауссов шум.

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

Скорости вращения, определенные как вектор положительных значений, выраженных в оборотах в минуту. rpm должна иметь ту же длину, что и x.

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

  • Если у вас нет импульсного сигнала тахометра, используйте rpmtrack извлечь rpm от сигнала вибрации.

Пример: 100:10:3000 указывает, что система первоначально вращается со скоростью 100 оборотов в минуту и работает со скоростью до 3000 оборотов в минуту с шагом 10.

Полоса пропускания разрешения карты частоты-RPM, заданная как положительный скаляр. Если res не указан, то rpmfreqmap задает частоту дискретизации, деленную на 128. Если сигнал недостаточно длинный, то функция использует всю длину сигнала для вычисления одной оценки частоты.

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

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

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

Пример: 'Scale','dB','Window','hann' указывает, что оценки карты частот должны масштабироваться в децибелах и определяться с помощью окна Ганна.

Амплитуды карты частоты-частоты вращения, определяемые как разделенная запятыми пара, состоящая из 'Amplitude' и один из 'rms', 'peak', или 'power'.

  • 'rms' - возвращает среднеквадратическую амплитуду для каждой оцененной частоты.

  • 'peak' - возвращает амплитуду пика для каждой оцененной частоты.

  • 'power' - Возвращает уровень мощности для каждой расчетной частоты.

Процент перекрытия между соседними сегментами, определяемый как пара, разделенная запятыми, состоящая из 'OverlapPercent' и скаляр от 0 до 100. Значение 0 означает, что соседние сегменты не перекрываются. Значение 100 означает, что соседние сегменты сдвинуты на один образец. Больший процент перекрытия создает более гладкую карту, но увеличивает время вычислений. Посмотрите rpmordermap для получения дополнительной информации.

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

Масштабирование карты частоты-RPM, указанное как пара, разделенная запятыми, состоящая из 'Scale' и либо 'linear' или 'dB'.

  • 'linear' - возвращает линейно масштабированную карту.

  • 'dB' - возвращает логарифмическую карту со значениями, выраженными в децибелах.

Окно анализа, указанное как разделенная запятыми пара, состоящая из 'Window' и одно из этих значений:

  • 'hann' задает окно Ханна. Посмотрите hann для получения дополнительной информации.

  • 'chebwin' задает окно Чебышева. Используйте массив ячеек для задания затухания боковых зон в децибелах. Затухание боковых ребер должно быть больше 45 дБ. Если не указано, по умолчанию используется значение 100 дБ. Посмотрите chebwin для получения дополнительной информации.

  • 'flattopwin' задает плоское верхнее окно. Посмотрите flattopwin для получения дополнительной информации.

  • 'hamming' задает окно Хэмминга. Посмотрите hamming для получения дополнительной информации.

  • 'kaiser' задает окно Kaiser. Используйте массив ячеек для указания параметра формы β. Параметр shape должен быть положительным скаляром. Если не указано, значение по умолчанию равно 0,5. Посмотрите kaiser для получения дополнительной информации.

  • 'rectwin' задает прямоугольное окно. Посмотрите rectwin для получения дополнительной информации.

Пример: 'Window','chebwin' определяет окно Чебышева с затуханием боковой части 100 дБ.

Пример: 'Window',{'chebwin',60} определяет окно Чебышева с затуханием боковой части 60 дБ.

Пример: 'Window','kaiser' задает окно Kaiser с параметром формы 0,5.

Пример: 'Window',{'kaiser',1} задает окно Kaiser с параметром формы 1.

Типы данных: char | string | cell

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

свернуть все

Частотно-RPM-карта, возвращаемая в виде матрицы.

Частоты, возвращаемые в виде вектора.

Скорости вращения, возвращаемые в виде вектора.

Моменты времени, возвращенные как вектор.

Пропускная способность разрешения, возвращаемая как скаляр.

Ссылки

[1] Брандт, Андерс. Анализ шума и вибрации: анализ сигналов и экспериментальные процедуры. Чичестер, Великобритания: John Wiley & Sons, 2011.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2015b