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

Используйте 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. preprocess, функция, которая предварительно обрабатывает сигнал путем удаления тренда его, фильтрации его и вычисления его конверта

  2. Compute power spectrum, скрипт, который вычисляет огибающую спектра

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

  • Если вы сохраняете скрипт и функцию в одном скрипте 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-dpcosθ].

Смоделируйте удары, когда периодическое обучается 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+dpcosθ].

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

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

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

end

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

Приложения

Функции

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

Больше о