orderspectrum

Средний спектр по сравнению с порядком для сигнала вибрации

Описание

пример

spec = orderspectrum(x,fs,rpm) вычисляет средний вектор спектра амплитуды порядка, spec, для входного сигнала, x, произведенный на уровне fs Гц. Вычислить спектр, orderspectrum окна постоянная фаза, передискретизируемая версия x с окном с плоской вершиной.

[spec,order] = orderspectrum(x,fs,rpm) также возвращает вектор из порядков, соответствующих каждому среднему значению спектра.

пример

[spec,order] = orderspectrum(map,order) вычисляет средний вектор спектра амплитуды порядка, начинающий с карты об/мин порядка и вектора из порядков. Использование rpmordermap вычислить map и order. map должен линейно масштабироваться. Возвращенные амплитуды эквивалентны в map. Возвращенный спектр масштабируется линейно.

[spec,order] = orderspectrum(map,order,'Amplitude',amp) задает тип амплитуды, чтобы рассмотреть при вычислении среднего спектра амплитуды порядка, начинающего с карты об/мин порядка.

orderspectrum(___) без выходных аргументов строит амплитуду RMS спектра порядка, масштабируемого линейно, на текущей фигуре.

Примеры

свернуть все

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

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

orderspectrum(x,fs,rpm)

Figure contains an axes. The axes with title Average Order Spectrum contains an object of type line.

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

Загрузите вертолетные данные. Вибрационные измерения, 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.

Вычислите средний спектр порядка сигнала. Используйте разрешение порядка по умолчанию.

orderspectrum(vib,fs,rpm)

Figure contains an axes. The axes with title Average Order Spectrum contains an object of type line.

Используйте rpmordermap повторить расчет с более прекрасным разрешением порядка. Низшие порядки разрешены более ясно.

[map,order] = rpmordermap(vib,fs,rpm,0.005);

orderspectrum(map,order)

Figure contains an axes. The axes with title Average Order Spectrum contains an object of type line.

Вычислите уровень мощности для каждого предполагаемого порядка. Отобразите результат в децибелах.

[map,order] = rpmordermap(vib,fs,rpm,0.005,'Amplitude','power');

spec = orderspectrum(map,order);

plot(order,pow2db(spec))
xlabel('Order Number')
ylabel('Order Power Amplitude (dB)')
grid on

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

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

свернуть все

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

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

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

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

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

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

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

Карта об/мин порядка в виде матрицы. Использование rpmordermap вычислить карты об/мин порядка.

Порядки в об/мин порядка сопоставляют синтаксис в виде вектора. Длина order должен равняться количеству строк в map.

Амплитуды карты об/мин порядка в виде одного из 'rms', 'peak', или 'power'.

  • 'rms' — Принимает, что карта об/мин порядка использует среднеквадратичную амплитуду для каждого предполагаемого порядка.

  • 'peak' — Принимает, что карта об/мин порядка использует пиковую амплитуду для каждого предполагаемого порядка.

  • 'power' — Принимает, что карта об/мин порядка использует уровень мощности для каждого предполагаемого порядка.

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

свернуть все

Средний спектр амплитуды порядка, возвращенный как вектор из среднеквадратичных (RMS) амплитуд в линейной шкале. Если вы используете map и order как входные параметры и набор 'Amplitude' к 'power' при использовании rpmordermap вычислить mapто orderspectrum возвращает spec в блоках питания.

Выведите порядки, возвращенные как вектор действительных чисел.

Ссылки

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

[2] Vold, Ховард и Ян Леуридэн. “Отслеживание заказов Высокого разрешения на Экстремальных Скоростях нарастания Используя Кальмана Трэкинга Филтерса”. Шок и Вибрация. Издание 2, 1995, стр 507–515.

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

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

Введенный в R2017b