rpmordermap

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

Описание

пример

map = rpmordermap(x,fs,rpm) возвращает матрицу карты order-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)

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

Вычислите карту order-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')

Figure contains an axes. The axes 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});

Нарисуйте карту order-RPM как график водопада.

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

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

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

Постройте интерактивную карту order-RPM по телефону rpmordermap без выходных аргументов.

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

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

Более подробное описание графика RPM-vs.-time в нижней части рисунка см. в разделе Алгоритмы.

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'peak' - возвращает пиковую амплитуду для каждого предполагаемого порядка.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Карта Order-RPM, возвращенная как матрица.

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

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

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

Разрешение порядка, возвращается как скаляр.

Алгоритмы

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

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

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(RPM)=1516fsmax(RPM).

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

    Noverlap=min(poverlap100×L,L1)

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

    r=kfpL,

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

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

Ссылки

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

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

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

.
Введенный в R2015b