rpmfreqmap

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

Синтаксис

map = rpmfreqmap(x,fs,rpm)
map = rpmfreqmap(x,fs,rpm,res)
map = rpmfreqmap(___,Name,Value)
[map,freq,rpm,time,res] = rpmfreqmap(___)
rpmfreqmap(___)

Описание

пример

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

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

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

load('helidata.mat')

vib = detrend(vib);

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

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

Вычислите карту об/мин частоты. Задайте пропускную способность разрешения 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)')

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

rpmfreqmap(vib,fs,rpm,1.5);

Сгенерируйте сигнал, который состоит из двух линейных щебетов и квадратичного щебета, все выбранные на уровне 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')

Постройте интерактивную карту об/мин частоты путем вызова 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) задает синусоиду, встроенную в белый Гауссов шум.

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

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

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

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

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

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

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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' задает окно Kaiser. Используйте массив ячеек, чтобы задать параметр формы, β. Параметр формы должен быть положительной скалярной величиной. Если не заданный, это принимает значение по умолчанию к 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

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

свернуть все

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

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

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

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

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

Ссылки

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

Введенный в R2015b

Для просмотра документации необходимо авторизоваться на сайте