rpmfreqmap

Карта частота-об/мин для анализа порядка

Описание

пример

map = rpmfreqmap(x,fs,rpm) возвращает матрицу карты частота-об/мин, map, это следует из выполнения анализа частоты входного вектора, xX измеряется в наборе rpm из скоростей вращения, описанных в оборотах в минуту. fs частота дискретизации в Гц. Каждый столбец map содержит среднеквадратичные (RMS) амплитудные оценки спектрального подарка содержимого в каждом значении 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);

Постройте нелинейный профиль об/мин. Запуски ротора вплоть до него достигают максимальной скорости вращения приблизительно 27 600 оборотов в минуту и затем двигаются вперед без усилий.

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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object contains an object of type patch.

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

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

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

Переместите курсоры перекрестия в фигуру, чтобы определить об/мин и амплитуду RMS на частоте 25 Гц после 5 секунд.

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

Нажмите кнопку Waterfall Plot на панели инструментов, чтобы отобразить карту частота-об/мин как график водопада. Для улучшенной видимости вращайте график по часовой стрелке с помощью кнопки Rotate Left три раза. Переместите регулятор панорамы в интервал между 4 и 6 секундами.

Входные параметры

свернуть все

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

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

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

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

  • Если у вас есть сигнал импульса тахометра, использовать tachorpm извлекать rpm непосредственно.

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

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

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

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

Аргументы name-value

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

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

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

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

  • 'peak' — Возвращает пиковую амплитуду для каждой предполагаемой частоты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Карта частота-об/мин, возвращенная как матрица.

Частоты, возвращенные как вектор.

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

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

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

Ссылки

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2015b