Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Calcular espectro envolvente de señal de vibración

Se utiliza para calcular el espectro envolvente de una señal de vibración de rodamiento y buscar defectos.Analizador de señal Genere scripts y funciones de MATLAB® para automatizar el análisis.

Generar datos de vibración de rodamiento

Un rodamiento con las dimensiones mostradas en la figura se impulsa en

<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>=</mo>
<mn>25</mn>
</mrow>
</math>
ciclos por segundo. Un acelerómetro muestrea las vibraciones del rodamiento a 10 kHz.

Genere señales de vibración a partir de dos rodamientos defectuosos utilizando la función al final del ejemplo.bearingdata En una de las señales, el rodamiento tiene un defecto en la carrera exterior.xBPFO En la otra señal, el rodamiento tiene un defecto en la carrera interior.xBPFI Para obtener más detalles sobre el modelado y el diagnóstico de defectos en rodamientos, vea y.Análisis de vibraciones de maquinaria giratoriaenvspectrum

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

Calcule el espectro envolvente utilizando el analizador de señal

Abra y arrastre la señal BPFO a una pantalla.Analizador de señal Agregue información de tiempo a la señal seleccionándola en la tabla Signal y haciendo clic en el botón de la pestaña.Time ValuesAnalyzer Seleccione la opción e introduzca la frecuencia de muestreo de 10 kHz.Sample Rate and Start Time

En la pestaña, haga clic para abrir una vista de espectro.DisplaySpectrum El espectro de la señal de vibración muestra armónicos BPFO modulados por la frecuencia de impacto de 3 kHz. En el extremo más bajo del espectro, la frecuencia de conducción y sus órdenes oscurecen otras características.

Seleccione la señal y, en la pestaña, haga clic para generar una copia de la misma.AnalyzerDuplicate Asigne el nombre a la nueva señal y arrástrelo a la pantalla.envspec Calcule el espectro de envolvente de la señal utilizando la transformada de Hilbert:

  1. Quite el valor de CC de la señal. En la ficha, haga clic en ▼ y seleccione.AnalyzerPreprocessing Detrend En la pestaña que aparece, seleccione como método.DetrendConstant Haga clic.Detrend

  2. Paso de banda-filtre la señal de detrended. En la ficha, haga clic en ▼ y seleccione.AnalyzerPreprocessing Bandpass En la pestaña que aparece, introduzca 2250 Hz y 3750 Hz como las frecuencias de banda de paso inferior y superior, respectivamente.Bandpass Haga clic.Bandpass

  3. Calcule el sobre de la señal filtrada. En la ficha, haga clic en ▼ y seleccione.AnalyzerPreprocessing Envelope En la pestaña que aparece, seleccione como método.EnvelopeHilbert Haga clic.Envelope

  4. Quite el valor de CC del sobre utilizando.Detrend

El espectro de envolvente aparece en la vista de espectro de la pantalla. El espectro de envolvente muestra claramente los armónicos BPFO.

Pasos para crear un script de análisis integrado

El cómputo del espectro envolvente puede resultar tedioso si tiene que repetirse para muchos rodamientos diferentes. puede generar scripts y funciones de MATLAB® para ayudarle a automatizar el cómputo.Analizador de señal

Como ejercicio, repita el análisis anterior para la señal BPFI. genera dos componentes útiles para la automatización:Analizador de señal

  1. Una función que preprocesa la señal al restarlo, filtrarla y computar su sobre

  2. Un script que calcula el espectro envolvente

Para crear el script de análisis integrado, coloque la función de preprocesamiento y el script de trazado juntos sin cambios en un solo archivo. (Alternativamente, puede guardar funciones en archivos separados.)

  • Si guarda el script y la función en un único script de MATLAB®, tenga en cuenta que las funciones deben aparecer al final.

  • Debe agregar la palabra clave al final de cada función.end

1. Create Preprocessing Function

Inicialmente, cree la función que reproduce los pasos de preprocesamiento. Seleccione la señal.envspec En la pestaña, haga clic en.AnalyzerGenerate Function La función, llamada de forma predeterminada, aparece en el editor.preprocess Guarde la función generada al final de su script de análisis integrado. La función espera un segundo argumento especificando la información de tiempo. Preprocese la señal BPFI utilizando la función.

envspec = preprocess(xBPFI,t);

2. Create Spectrum Script

En la aplicación, quite la señal sin procesar de la pantalla desactivando la casilla de verificación junto a su nombre. En la ficha, haga clic en ▼ y seleccione.DisplayGenerate Script Spectrum Script El script aparece en el editor. Incluya el código generado en el script de análisis integrado. Al ejecutar el script de análisis, el script de espectro generado computa el espectro envolvente de la señal BPFI preprocesada.

% 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. Plot Envelope Spectrum

Trace el espectro de sobres. Compare las ubicaciones máximas con las frecuencias de los diez primeros armónicos BPFI. También puede trazar el espectro de envolvente mediante el comando sin argumentos de salida.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])

Código de función

Signal Preprocessing Function

La función de preprocesamiento de señal generada por la aplicación combina la detrterminación, el filtrado de paso de banda y el cálculo de envolvente.

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

Bearing Data Generating Function

El rodamiento tiene un diámetro de paso

<math display="inline">
<mrow>
<mi mathvariant="italic">p</mi>
<mo>=</mo>
<mn>12</mn>
</mrow>
</math>
cm y un ángulo de contacto del rodamiento
<math display="inline">
<mrow>
<mi>θ</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
</math>
. Cada uno de los
<math display="inline">
<mrow>
<mi mathvariant="italic">n</mi>
<mo>=</mo>
<mn>8</mn>
</mrow>
</math>
elementos rodantes tiene un diámetro
<math display="inline">
<mrow>
<mi mathvariant="italic">d</mi>
<mo>=</mo>
<mn>2</mn>
</mrow>
</math>
Cm. La raza exterior permanece estacionaria ya que la carrera interior es conducida en
<math display="inline">
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">f</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>=</mo>
<mn>25</mn>
</mrow>
</math>
ciclos por segundo. Un acelerómetro muestrea las vibraciones del rodamiento a 10 kHz.

function [t,xBPFO,xBPFI,bpfi] = bearingdata  p = 0.12; d = 0.02; n = 8; th = 0; f0 = 25; fs = 10000;

Para un rodamiento saludable, la señal de vibración es una superposición de varias órdenes de la frecuencia de conducción, incrustada en el ruido Gaussiano blanco.

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;

Un defecto en la raza externa causa una serie de 5 milisegundos impactos que con el tiempo resultan en desgaste del rodamiento. Los impactos ocurren en la carrera exterior de frecuencia de paso de bola (BPFO) del rodamiento,

<math display="inline">
<mrow>
<mi mathvariant="normal">BPFO</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mn>1</mn>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</mfrac>
<msub>
<mrow>
<mi mathvariant="italic">nf</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mrow>
<mo>[</mo>
<mrow>
<mn>1</mn>
<mo>-</mo>
<mfrac>
<mrow>
<mi mathvariant="italic">d</mi>
</mrow>
<mrow>
<mi mathvariant="italic">p</mi>
</mrow>
</mfrac>
<mi mathvariant="normal">cos</mi>
<mtext></mtext>
<mi>θ</mi>
</mrow>
<mo>]</mo>
</mrow>
</mrow>
</math>
.

Modele los impactos como un tren periódico de 3 kHz de sinusoides con amortiguación exponencial. Añada los impactos a la señal sana para generar la señal de vibración 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;

Si el defecto es en cambio en la carrera interna, los impactos ocurren en una frecuencia

<math display="inline">
<mrow>
<mi mathvariant="normal">BPFI</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mn>1</mn>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</mfrac>
<msub>
<mrow>
<mi mathvariant="italic">nf</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mrow>
<mo>[</mo>
<mrow>
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mrow>
<mi mathvariant="italic">d</mi>
</mrow>
<mrow>
<mi mathvariant="italic">p</mi>
</mrow>
</mfrac>
<mi mathvariant="normal">cos</mi>
<mtext></mtext>
<mi>θ</mi>
</mrow>
<mo>]</mo>
</mrow>
</mrow>
</math>
.

Genere la señal de vibración BPFI añadiendo los impactos a las señales sanas.

bpfi = n*f0/2*(1+d/p*cos(th));  xBPFI = xHealthy + pulstran(t,0:1/bpfi:1,xmp,fs)/4;  end

Consulte también

Aplicaciones

Funciones

Ejemplos relacionados

Más acerca de