rpmordermap

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

Синтаксис

map = rpmordermap(x,fs,rpm)
map = rpmordermap(x,fs,rpm,res)
map = rpmordermap(___,Name,Value)
[map,order,rpm,time,res] = rpmordermap(___)
rpmordermap(___)

Описание

пример

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

пример

map = rpmordermap(x,fs,rpm,res) задает разрешение порядка карты в модулях порядков.

пример

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

[map,order,rpm,time,res] = rpmordermap(___) возвращает векторы с порядками, скоростями вращения, и моменты времени, в которые вычисляется карта порядка. Это также возвращает используемое разрешение порядка.

пример

rpmordermap(___) без выходных аргументов строит карту порядка как функцию скорости вращения и время на интерактивной фигуре.

Примеры

свернуть все

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

Визуализируйте карту об/мин порядка сигнала.

rpmordermap(x,fs,rpm)

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

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

load('helidata.mat')

vib = detrend(vib);

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

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

Вычислите карту об/мин порядка. Задайте разрешение порядка 0,015.

[map,order,rpmOut,time] = rpmordermap(vib,fs,rpm,0.015);

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

imagesc(time,order,map)
ax = gca;
ax.YDir = 'normal';
xlabel('Time (s)')
ylabel('Order')

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

rpmordermap(vib,fs,rpm,0.005)

Сгенерируйте сигнал, который состоит из двух линейных щебетов и квадратичного щебета, все выбранные на уровне 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 и 2.5. Компонент с порядком 1 имеет дважды амплитуду другого. Квадратичный щебет запускается в порядке 6 и возвращается к этому порядку в конце измерения. Его амплитуда 0.8. Создайте сигнал с помощью этой информации.

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

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

Вычислите карту об/мин порядка сигнала. Используйте пиковую амплитуду в каждой ячейке измерения. Задайте разрешение 0,25 порядков. Окно данные с Окном Чебышева, затухание бокового лепестка которого составляет 80 дБ.

[map,or,rp] = rpmordermap(x,fs,rpm,0.25, ...
    'Amplitude','peak','Window',{'chebwin',80});

Чертите карту об/мин порядка как график водопада.

[OR,RP] = meshgrid(or,rp);
waterfall(OR,RP,map')

view(-15,45)
xlabel('Order')
ylabel('RPM')
zlabel('Amplitude')

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

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

load helidata.mat
rpmordermap(detrend(vib),fs,rpm,0.005)

См. Алгоритмы для более подробного описания графика об/мин-по-сравнению-с-разовым в нижней части фигуры.

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

Нажмите кнопку Zoom X на панели инструментов, чтобы масштабировать в область времени между 2 и 4 секундами. Серый прямоугольник в графике об/мин-по-сравнению-с-разовым показывает видимую область. Можно двигать эту область к панорамированию в течение времени.

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

  • 'hamming' задает Окно Хэмминга. Дополнительную информацию см. в hamming.

  • 'hann' задает окно Hann. Дополнительную информацию см. в hann.

  • '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

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

свернуть все

Карта об/мин порядка, возвращенная как матрица.

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

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

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

Закажите разрешение, возвращенное как скаляр.

Алгоритмы

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

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

Функция rpmordermap выполняет эти шаги:

  1. Использование cumtrapz, чтобы оценить угол фазы как интеграл времени скорости вращения:

    ϕ(t)=0tОб/мин(τ)60dτ.

  2. Использование resample, чтобы сверхдискретизировать и lowpass-отфильтровать сигнал. Этот шаг позволяет функции интерполировать сигнал в невыбранных моментах времени, не искажая высокочастотных компонентов. rpmordermap сверхдискретизировал сигнал фактором 15.

  3. Использование interp1, чтобы интерполировать сверхдискретизированный сигнал линейно на регулярную координатную сетку в области фазы. Самый высокий доступный порядок в измерении фиксируется частотой дискретизации и самой высокой скоростью вращения, достигнутой системой:

    Omax =fs/2max (Об/мин60).

    Чтобы получить этот самый высокий порядок точно, необходимо выбрать сигнал в дважды O макс., по крайней мере. Для лучших результатов rpmordermap сверхдискретизировал дополнительным фактором 4. Получившаяся доменная фазой частота дискретизации, fp,

    fp=4×2Omax =4×2fs/2max (Об/мин60).

    Разрешение порядка по умолчанию, r,

    r=fp256=4×602562×fs/2max (Об/мин)=1516fsmax (Об/мин).

  4. Использование spectrogram, чтобы вычислить кратковременное преобразование Фурье (STFT) интерполированного сигнала. По умолчанию функция делит сигнал на L - демонстрационные сегменты и окна каждый из них с окном с плоской вершиной. Существуют

    Nперекрытие=min(pперекрытие100×L,L1)

    выборки перекрытия между смежными сегментами, где перекрытие p задано с помощью пары "имя-значение" 'OverlapPercent' и значений по умолчанию к 50%. Длина ДПФ установлена в L. Разрешение связано с частотой дискретизации и длиной сегмента через

    r=kfpL,

    где k является эквивалентной шумовой пропускной способностью окна, как реализовано в enbw. Настройте разрешение, чтобы дифференцировать близко расположенные порядки. Меньшие значения r требуют больших длин сегмента. Если необходимо достигнуть данного разрешения, убедитесь, что сигнал имеет достаточно выборок.

Красные точки в графике об/мин-по-сравнению-с-разовым в нижней части интерактивного окна rpmordermap соответствуют правому краю каждого оконного сегмента. Синяя строка в графике является сигналом об/мин, чертившим как функция времени:

Ссылки

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

Введенный в R2015b

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