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.

tachorpm

Extraer la señal RPM de los pulsos del tacómetro

Descripción

rpm = tachorpm(x,fs) extrae una señal de velocidad de rotación, , de un vector de señal de pulso tacómetro, que se ha muestreado a una velocidad de Hz.rpmxfs

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

[rpm,t,tp] = tachorpm(x,fs) también devuelve el vector de tiempo, , y las ubicaciones de pulso detectadas, .ttp

[___] = tachorpm(x,fs,Name,Value) especifica las opciones mediante pares y cualquiera de las sintaxis anteriores.Name,Value

ejemplo

tachorpm(___) sin argumentos de salida traza la señal RPM generada y la señal del tacómetro con los pulsos detectados.

Ejemplos

contraer todo

Cargue una señal de tacómetro simulada muestreada a 300 Hz.

load tacho 

Calcular y visualizar la señal RPM utilizando con los valores predeterminados.tachorpm

tachorpm(Yn,fs) 

Aumente el número de puntos de ajuste para capturar el pico rpm. Demasiados puntos resultan en sobreajuste. Verifique este resultado haciendo zoom en el área alrededor del pico.

tachorpm(Yn,fs,'FitPoints',600)  axis([0.47 0.65 1320 1570]) 

Elija un número moderado de puntos para obtener un mejor resultado.

tachorpm(Yn,fs,'FitPoints',100) 

Añada ruido gaussiano blanco a la señal del tacómetro. El mecanismo de búsqueda de pulsos predeterminado pierde pulsos y devuelve un perfil de señal irregular. Verifique este resultado acercando un intervalo de tiempo de dos segundos.

rng default wgn = randn(size(Yn))/10; Yn = Yn+wgn;  [rpm,t,tp] = tachorpm(Yn,fs,'FitPoints',100);  figure plot(t,Yn,tp,mean(interp1(t,Yn,tp))*ones(size(tp)),'+') hold on sl = statelevels(Yn); plot(t,sl(1)*ones(size(t)),t,sl(2)*ones(size(t))) hold off xlim([9 10]) 

Ajuste los niveles de estado para mejorar la búsqueda de pulsos.

sl = [0 0.75];  [rpm,t,tp] = tachorpm(Yn,fs,'FitPoints',100,'StateLevels',sl);  plot(t,Yn,tp,mean(interp1(t,Yn,tp))*ones(size(tp)),'+') hold on plot(t,sl(1)*ones(size(t)),t,sl(2)*ones(size(t))) hold off xlim([9 10]) 

Argumentos de entrada

contraer todo

Señal de pulso del tacómetro, especificada como vector de fila o columna.

Ejemplo: se asemeja a una señal de tacómetro, muestreada durante tres segundos a 200 Hz, y obtenida durante una prueba cuadrática de run-up/coast-down.double(chirp((-1.5:1/2e2:1.5),14,1.1,8,'quadratic')>0.98)

Tipos de datos: double | single

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

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: especifica que hay tres pulsos de tacómetro por revolución y que la señal RPM devuelta debe ser muestreada a 1 kHz.'PulsesPerRev',3,'OutputFs',1e3

Número de pulsos de tacómetro por revolución, especificado como el par separado por comas que consta de un escalar real.'PulsesPerRev'

Tipos de datos: double | single

Niveles de estado utilizados para identificar pulsos, especificados como el par separado por comas que consta de un vector real de dos elementos.'StateLevels' El primer elemento del vector corresponde al nivel de estado bajo y el segundo elemento corresponde al nivel de estado alto. Elija los niveles de estado para que todos los bordes del pulso crucen dentro del 10% de ambos. Si no se especifica esta opción, calcula los niveles automáticamente mediante el método histograma, como en la función.tachorpmstatelevels

Tipos de datos: double | single

Frecuencia de muestreo de salida, especificada como el par separado por comas que consta de y un escalar real.'OutputFs'

Tipos de datos: double | single

Método de ajuste, especificado como el par separado por comas que consta de y uno de cualquiera de o .'FitType''smooth''linear'

  • — Ajuste un B-spline de mínimos cuadrados a los valores de RPM de pulso.'smooth'

  • — Interpolar linealmente entre los valores de RPM de pulso.'linear'

Tipos de datos: single | double

Puntos de interrupción B-spline, especificados como el par separado por comas que consta de y un escalar real.'FitPoints' El número de puntos de interrupción es un equilibrio entre la suavidad de la curva y la cercanía a los datos subyacentes. La elección de demasiados puntos de interrupción puede dar lugar a un sobreajuste. Este argumento se omite si se establece en .'FitType''linear'

Tipos de datos: double | single

Argumentos de salida

contraer todo

Velocidades de rotación, devueltas como vector expresados en revoluciones por minuto. tiene la misma longitud que .rpmx

Vector de tiempo, devuelto como vector de valores positivos expresados en segundos.

Ubicaciones de pulsos, devueltas como un vector de valores positivos expresados en segundos.

Algoritmos

La función realiza estos pasos:tachorpm

  1. Se utiliza para determinar los estados bajo y alto de la señal del tacómetro.statelevels

  2. Utiliza y para encontrar las horas en las que cada pulso comienza y termina.risetimefalltime A continuación, promedia estas lecturas para localizar el tiempo de cada pulso.

  3. Utiliza para determinar los intervalos de tiempo entre centros de pulsos y calcula los valores de RPM en los puntos medios de intervalo utilizandoDiff RPM = 60 / Δt.

  4. Si se especifica como , la función realiza el ajuste de mínimos cuadrados mediante splines.'FitType''smooth' Si se especifica como , la función realiza la interpolación lineal utilizando .'FitType''linear'interp1

Referencias

[1] Brandt, Anders. Noise and Vibration Analysis: Signal Analysis and Experimental Procedures. Chichester, UK: John Wiley & Sons, 2011.

[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