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.

orderwaveform

Extraer formas de onda de orden de dominio de tiempo de la señal de vibración

Descripción

ejemplo

xrec = orderwaveform(x,fs,rpm,orderlist) devuelve las formas de onda de dominio de tiempo correspondientes a un conjunto especificado de órdenes presentes en una señal de entrada, . se mide a un conjunto de velocidades de rotación expresadas en revoluciones por minuto. es la frecuencia de muestreo de medición en Hz.xxrpmfs El vector especifica las órdenes deseadas, cuyas formas de onda se devuelven en las columnas correspondientes de .orderlistxrec La función utiliza el filtro Vold-Kalman para el cálculo.

xrec = orderwaveform(x,fs,rpm,orderlist,rpmrefidx) devuelve formas de onda de dominio de tiempo con varias señales RPM de referencia, que se almacenan en las columnas de . es un vector que relaciona cada orden con una señal RPM.rpmrpmrefidxorderlist

ejemplo

xrec = orderwaveform(x,fs,rpm,orderlist,rpmrefidx,Name,Value) especifica otras opciones para el procedimiento Vold-Kalman utilizando pares.Name,Value

Ejemplos

contraer todo

Cree una señal simulada muestreada a 600 Hz durante 5 segundos. El sistema que se está probando aumenta su velocidad de rotación de 10 a 40 revoluciones por segundo (o, equivalentemente, de 600 a 2400 revoluciones por minuto) durante el período de observación.

Genere las lecturas del tacómetro.

fs = 600; t1 = 5; t = 0:1/fs:t1;  f0 = 10; f1 = 40; rpm = 60*linspace(f0,f1,length(t));

La señal consta de cuatro chirridos relacionados armónicamente con las órdenes 1, 1/2, 2 y 2. Las amplitudes de los chirridos son 1, 1/2, 2 y 2, respectivamente. Para generar los chirridos, utilice la regla trapezoidal para expresar la fase como la integral de la velocidad de rotación.

ord = [1 0.5 sqrt(2) 2]; amp = [1 0.5 sqrt(2) 2];  ph = 2*pi*cumtrapz(rpm/60)/fs;  x(1,:) = amp(1)*cos(ord(1)*ph); x(2,:) = amp(2)*cos(ord(2)*ph); x(3,:) = amp(3)*cos(ord(3)*ph); x(4,:) = amp(4)*cos(ord(4)*ph);  xsum = sum(x);

Reconstruya las formas de onda de dominio de tiempo que componen la señal.

xrec = orderwaveform(xsum,fs,rpm,ord);

Visualice los resultados. Acérquese a un intervalo de tiempo que se produce después de que los transitorios se hayan deteriorado.

for kj = 1:4     subplot(2,2,kj)     plot(t,x(kj,:),t,xrec(:,kj))     title(['Order = ' num2str(ord(kj))])     xlim([2 3]) end

Cree una señal de vibración simulada que consista en dos órdenes de cruce correspondientes a dos motores diferentes. La señal se muestrea a 300 Hz durante 3 segundos. El primer motor aumenta su velocidad de rotación de 10 a 100 revoluciones por segundo (o, equivalentemente, de 600 a 6000 rpm) durante la medición. El segundo motor aumenta su velocidad de rotación de 50 a 70 revoluciones por segundo (o 3000 a 4200 rpm) durante el mismo período.

fs = 300; nsamp = 3*fs;  rpm1 = linspace(10,100,nsamp)'*60; rpm2 = linspace(50,70,nsamp)'*60;

La señal medida es de la orden 1.2 y la amplitud 2-2 con respecto al primer motor. Con respecto al segundo motor, la señal es de orden 0.8 y amplitud 4 -2.

x = [2 4]*sqrt(2).*cos(2*pi*cumtrapz([1.2*rpm1 0.8*rpm2]/60)/fs);

Haga que el primer motor excita una resonancia en el centro del rango de frecuencia.

y = [1+1./(1+linspace(-10,10,nsamp).^4)'/2 ones(nsamp,1)].*x;  x = sum(y,2);

Visualice los pedidos utilizando .rpmfreqmap

rpmfreqmap(x,fs,rpm1)

Reconstruya las formas de onda de dominio de tiempo que componen la señal. Utilice el algoritmo Vold-Kalman para desacoplar las órdenes de cruce.

xrec = orderwaveform(x,fs,[rpm1 rpm2],[1.2 0.8],[1 2],'Decouple',true);

Trazar las formas de onda originales y reconstruidas.

for kj = 1:2     figure(kj)     subplot(2,1,1)     plot((0:nsamp-1)/fs,y(:,kj))     legend('Original')     title(['Motor ' int2str(kj)])     subplot(2,1,2)     plot((0:nsamp-1)/fs,xrec(:,kj))     legend('Reconstructed') end

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector de fila o columna.

Ejemplo: especifica un sinusoides incrustado en el ruido gaussiano blanco.cos(pi/4*(0:159))+randn(1,160)

Tipos de datos: double | single

Frecuencia de muestreo, especificada como un escalar positivo expresado en Hz.

Tipos de datos: double | single

Velocidades de rotación, especificadas como un vector de valores positivos expresados en revoluciones por minuto. debe tener la misma longitud que .rpmx

  • Si tiene una señal de pulso de tacómetro, úsela para extraer directamente.tachorpmrpm

  • Si no tiene una señal de pulso de tacómetro, úselo para extraer de una señal de vibración.rpmtrackrpm

Ejemplo: especifica que un sistema gira inicialmente a 100 revoluciones por minuto y ejecuta hasta 3000 revoluciones por minuto en incrementos de 10.100:10:3000

Tipos de datos: double | single

Lista de órdenes, especificadas como vectores. no debe tener valores mayores que /(2 á max( /60)).orderlistfsrpm

Tipos de datos: double | single

Los índices de columna RPM, especificados como vectores del mismo tamaño que .orderlist

Tipos de datos: double | single

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: extrae simultáneamente las formas de onda de orden especificadas y utiliza un filtro Vold-Kalman de segundo orden.'Decouple',true,'FilterOrder',2

Orden de filtro Vold-Kalman, especificado como el par separado por comas que consta de y uno o .'FilterOrder'12

Tipos de datos: double | single

Ancho de banda aproximado de media potencia, especificado como el par separado por comas que consta de un escalar real o un vector real con el mismo número de elementos que .'Bandwidth'orderlist Los valores más pequeños de producir una salida suave y de banda estrecha.'Bandwidth' Sin embargo, esta salida podría no reflejar con precisión los cambios rápidos en la amplitud del orden.

Tipos de datos: double | single

Opción de desacoplamiento de modo, especificada como el par separado por comas que consta de y un valor lógico.'Decouple' Si esta opción se establece en , extrae las formas de onda de pedido simultáneamente, lo que le permite separar las órdenes estrechamente espaciadas o de cruce.trueorderwaveform

Tipos de datos: logical

Longitud de los segmentos superpuestos, especificada como el par separado por comas que consta de y un entero.'SegmentLength' Si especifica una longitud de segmento, divide la señal de entrada en segmentos.orderwaveform A continuación, calcula las formas de onda reconstruidas para cada segmento y combina los resultados para producir la salida. Si los segmentos son demasiado cortos, es posible que la función no capture correctamente eventos localizados, como cruce de órdenes.

Tipos de datos: double | single

Argumentos de salida

contraer todo

Formas de onda de orden de dominio de tiempo reconstruidas, devueltas como una matriz con una forma de onda en cada columna.

Referencias

[1] Feldbauer, Christian, and Robert Höldrich. “Realization of a Vold-Kalman Tracking Filter — A Least Squares Problem.” Proceedings of the COST G-6 Conference on Digital Audio Effects (DAFX-00). Verona, Italy, December 7–9, 2000.

[2] Vold, Håvard, and Jan Leuridan. “High Resolution Order Tracking at Extreme Slew Rates Using Kalman Tracking Filters.” Shock and Vibration. Vol. 2, 1995, pp. 507–515.

Introducido en R2016b