rpmordermap

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

Описание

пример

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

Figure Order 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.

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

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

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

rpmordermap(vib,fs,rpm,0.005)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Алгоритмы

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

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

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

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

    ϕ(t)=0tRPM(τ)60dτ.

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

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

    Omax=fs/2max(RPM60).

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

    fp=4×2Omax=4×2fs/2max(RPM60).

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

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

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

    Noverlap=min(poverlap100×L,L1)

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

    r=kfpL,

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

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

Ссылки

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

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

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

Введенный в R2015b