orderspectrum

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

Синтаксис

spec = orderspectrum(x,fs,rpm)
[spec,order] = orderspectrum(x,fs,rpm)
[spec,order] = orderspectrum(map,order)
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. Возвращенный спектр масштабируется линейно.

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)

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

orderspectrum(x,fs,rpm)

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

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

load('helidata.mat')

vib = detrend(vib);

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

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

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

orderspectrum(vib,fs,rpm)

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

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

orderspectrum(map,order)

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

[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

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

свернуть все

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

Пример: 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

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

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

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

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

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

свернуть все

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

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

Ссылки

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

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

Введенный в R2017b