Вычислите спектр конверта сигнала вибрации

Используйте Signal Analyzer, чтобы вычислить спектр конверта вибрации переноса, сигнализируют и ищут дефекты. Сгенерируйте скрипты MATLAB® и функции, чтобы автоматизировать анализ.

Сгенерируйте данные о вибрации переноса

В терпении размерностей, показанных в фигуре, управляют f0=25 циклы в секунду. Акселерометр выбирает колебания переноса на уровне 10 кГц.

Сгенерируйте сигналы вибрации от двух дефектных подшипников с помощью функции bearingdata в конце примера. В одном из сигналов, xBPFO, перенос имеет дефект во внешней гонке. В другом сигнале, xBPFI, перенос имеет дефект во внутренней гонке. Для получения дополнительной информации при моделировании и диагностировании дефектов в подшипниках, смотрите Анализ Вибрации Вращающегося Машинного оборудования и envspectrum.

[t,xBPFO,xBPFI,bpfi] = bearingdata;

Вычислите спектр конверта Используя Signal Analyzer

Откройте Signal Analyzer и перетащите сигнал BPFO к отображению. Добавьте время информация к сигналу путем выбора его в таблице Signal и нажатия кнопки Time Values на вкладке Analyzer. Выберите опцию Sample Rate and Start Time и введите частоту дискретизации на 10 кГц.

На вкладке Display нажмите Spectrum, чтобы открыть представление спектра. Спектр сигнала вибрации показывает гармоники BPFO, модулируемые частотой влияния на 3 кГц. На нижнем уровне спектра ведущая частота и ее порядки затеняют другие функции.

Выберите сигнал и, на вкладке Analyzer, нажмите Duplicate, чтобы сгенерировать копию его. Дайте новому сигналу имя envspec и перетащите его к отображению. Вычислите спектр конверта сигнала с помощью Гильбертова преобразования:

  1. Удалите значение DC сигнала. На вкладке Analyzer нажмите Preprocessing ▼ и выберите Detrend. На вкладке Detrend, которая появляется, выберите Constant как метод. Нажмите Detrend.

  2. Полосовой фильтр детрендированный сигнал. На вкладке Analyzer нажмите Preprocessing ▼ и выберите Bandpass. На вкладке Bandpass, которая появляется, введите 2 250 Гц и 3 750 Гц как более низкие и верхние частоты полосы пропускания, соответственно. Нажмите Bandpass.

  3. Вычислите конверт отфильтрованного сигнала. На вкладке Analyzer нажмите Preprocessing ▼ и выберите Envelope. На вкладке Envelope, которая появляется, выберите Hilbert как метод. Нажмите Envelope.

  4. Удалите значение DC использования конверта, Детрендируют.

Спектр конверта появляется в представлении спектра отображения. Спектр конверта ясно отображает гармоники BPFO.

Шаги, чтобы создать интегрированный аналитический скрипт

Вычисление спектра конверта может стать утомительным, если это должно быть повторено для многих различных подшипников. Signal Analyzer может сгенерировать скрипты MATLAB® и функции, чтобы помочь вам автоматизировать вычисление.

Как осуществление, повторите предыдущий анализ для сигнала BPFI. Signal Analyzer генерирует два компонента, полезные для автоматизации:

  1. Функция, которая предварительно обрабатывает сигнал путем удаления тренда его, фильтрации его и вычисления его конверта

  2. Скрипт, который вычисляет спектр конверта

Чтобы создать интегрированный аналитический скрипт, поместите функцию предварительной обработки и скрипт графического вывода, вместе неизменный в одном файле. (Также можно сохранить функции в отдельных файлах.)

  • Если вы сохраняете скрипт и функцию в одном скрипте MATLAB®, имеете в виду, что эти функции должны появиться в конце.

  • Необходимо добавить ключевое слово end в конце каждой функции.

1. Создайте функцию предварительной обработки

Первоначально, создайте функцию, которая воспроизводит шаги предварительной обработки. Выберите сигнал envspec. На вкладке Analyzer нажмите Generate Function. Функция, вызванная preprocess по умолчанию, появляется в Редакторе. Сохраните сгенерированную функцию в конце своего интегрированного аналитического скрипта. Функция ожидает второй аргумент, указывающий информацию времени. Предварительно обработайте сигнал BPFI использование функции.

envspec = preprocess(xBPFI,t);

2. Создайте скрипт спектра

В приложении удалите необработанный сигнал из отображения путем снятия флажка рядом с его именем. На вкладке Display нажмите Generate Script ▼ и выберите Spectrum Script. Скрипт появляется в Редакторе. Включайте сгенерированный код в свой интегрированный аналитический скрипт. Когда вы запускаете аналитический скрипт, сгенерированный скрипт спектра вычисляет спектр конверта предварительно обработанного сигнала BPFI.

% Compute power spectrum

% Generated by MATLAB(R) 9.6 and Signal Processing Toolbox 8.2.
% Generated on: 12-Nov-2018 15:13:34

% Parameters
timeLimits = [0 0.9999]; % seconds
frequencyLimits = [0 5000]; % Hz

%%
% Index into signal time region of interest
envspec_ROI = envspec(:);
sampleRate = 10000; % Hz
startTime = 0; % seconds
minIdx = ceil(max((timeLimits(1)-startTime)*sampleRate,0))+1;
maxIdx = floor(min((timeLimits(2)-startTime)*sampleRate,length(envspec_ROI)-1))+1;
envspec_ROI = envspec_ROI(minIdx:maxIdx);

% Compute spectral estimate
% Run the function call below without output arguments to plot the results
[Penvspec_ROI, Fenvspec_ROI] = pspectrum(envspec_ROI,sampleRate, ...
    'FrequencyLimits',frequencyLimits);

3. Постройте спектр конверта

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

plot(Fenvspec_ROI,(Penvspec_ROI))
hold on
[X,Y] = meshgrid((1:10)*bpfi,ylim);
plot(X,Y,':k')
hold off
xlim([0 10*bpfi])

Функциональный код

Функция предварительной обработки сигнала

Функция предварительной обработки сигнала сгенерирована удалением тренда объединений приложения, полосовой фильтрацией и вычислением конверта.

function y = preprocess(x,tx)
%  Preprocess input x
%    This function expects an input vector x and a vector of time values
%    tx. tx is a numeric vector in units of seconds.

% Generated by MATLAB(R) 9.6 and Signal Processing Toolbox 8.2.
% Generated on: 12-Nov-2018 15:09:44

y = detrend(x,'constant');
Fs = 1/mean(diff(tx)); % Average sample rate
y = bandpass(y,[2250 3750],Fs,'Steepness',0.85,'StopbandAttenuation',60);
[y,~] = envelope(y);
y = detrend(y,'constant');
end

Перенос производящей функции данных

Перенос имеет диаметр подачи p=12 cm и перенос связываются с углом θ=0. Каждый из n=8 прокрутка элементов имеет диаметр d=2 cm. Внешняя гонка остается стационарной, когда во внутренней гонке управляют f0=25 циклы в секунду. Акселерометр выбирает колебания переноса на уровне 10 кГц.

function [t,xBPFO,xBPFI,bpfi] = bearingdata

p = 0.12;
d = 0.02;
n = 8;
th = 0;
f0 = 25;
fs = 10000;

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

t = 0:1/fs:1-1/fs;
z = [1 0.5 0.2 0.1 0.05]*sin(2*pi*f0*[1 2 3 4 5]'.*t);

xHealthy = z + randn(size(z))/10;

Дефект во внешней гонке вызывает ряд 5 влияния миллисекунды, которое в зависимости от времени приводит к износу подшипников. Влияние происходит на частоте передачи шара внешняя гонка (BPFO) переноса,

BPFO=12nf0[1-dpпотому чтоθ].

Смоделируйте влияние, когда периодический train 3 кГц экспоненциально ослабил синусоиды. Добавьте влияние на здоровый сигнал сгенерировать сигнал вибрации BPFO.

bpfo = n*f0/2*(1-d/p*cos(th));

tmp = 0:1/fs:5e-3-1/fs;
xmp = sin(2*pi*3000*tmp).*exp(-1000*tmp);

xBPFO = xHealthy + pulstran(t,0:1/bpfo:1,xmp,fs)/4;

Если дефект находится вместо этого во внутренней гонке, влияние происходит на частоте

BPFI=12nf0[1+dpпотому чтоθ].

Сгенерируйте сигнал вибрации BPFI путем добавления влияния на здоровые сигналы.

bpfi = n*f0/2*(1+d/p*cos(th));

xBPFI = xHealthy + pulstran(t,0:1/bpfi:1,xmp,fs)/4;

end

Смотрите также

Приложения

Функции

Связанные примеры

Больше о