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

Используйте 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. Снимите значение постоянного тока сигнала. На вкладке Analyzer нажмите Preprocessing ▼ и выберите Detrend. На появившейся вкладке Detrend выберите Constant как метод. Щелкните Детренд (Detrend).

  2. Полосу пропускания - фильтрация детрендированного сигнала. На вкладке Analyzer нажмите Preprocessing ▼ и выберите Bandpass. На появившейся вкладке Bandpass введите 2250 Гц и 3750 Гц в качестве нижней и верхней частот полосы пропускания соответственно. Щелкните Полосу пропускания.

  3. Вычислите огибающую фильтрованного сигнала. На вкладке Analyzer нажмите Preprocessing ▼ и выберите Envelope. На появившейся вкладке Envelope выберите Hilbert как метод. Щелкните Огибающая (Envelope).

  4. Удалите значение постоянного тока огибающей с помощью команды Detrend.

Это огибающая спектра появляется в спектральном представлении отображения. В огибающую спектра четко отображаются гармоники 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])

Figure contains an axes. The axes contains 11 objects of type line.

Код функции

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

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

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 см и угол контакта подшипника θ=0. Каждый из n=8 элементы качения имеют диаметр d=2 см. Внешнее кольцо остается стационарным, внутренне кольцо вращается 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θ].

Моделируйте влияния как периодический 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+dpcosθ].

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

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

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

end

См. также

Приложения

Функции

Похожие примеры

Подробнее о