Cómo filtrar el ruido de diferente frecuencia en función de la potencia del motor

1

Estoy tomando lecturas de torque de medidores de tensión en un actuador y tratando de filtrar la señal para que parezca utilizable. Ya he colocado un filtro mediano que reduce los picos esporádicos.

Cuando tengo el actuador bloqueado, puedo configurar su potencia (a través del ciclo de trabajo PWM) a diferentes valores y ver las lecturas de torque correspondientes. En tal situación, tengo 0.1Nm de ruido. Esto es aceptable.

Sin embargo, cuando dejo el motor sin restricciones y lo puse a girar a diferentes velocidades (nuevamente, configúrelo a diferentes potencias a través del ciclo de trabajo PWM), obtengo un ruido alto en las lecturas del sensor de torque que parece tener una relación directa Con la velocidad del motor.

En esta imagen, puedes ver las lecturas mientras el motor pasa de rápido a lento en 4 pasos bastante obvios:

(Obviamente, dado que el motor funciona libremente, las lecturas de torque son (deberían ser) una constante de 0.)

Mi pregunta es, ¿cómo puedo filtrar estos datos durante el funcionamiento del motor? El procesamiento fuera de línea está fuera de discusión, y me imagino que la ventana del filtro no puede ser demasiado grande (ya que produce una gran latencia en la lectura del valor de torque actual), pero tal vez sea inevitable.

Pensé en un filtro de paso bajo, naturalmente, que funcionaría muy bien para altas velocidades del motor, donde la frecuencia de ruido es bastante alta, pero a medida que el motor disminuye, esencialmente tendría que mirar segundos de la historia para poder filtrar ese ruido de baja frecuencia, que es demasiado alto para ser útil para el control de retroalimentación.

    
pregunta Shahbaz

1 respuesta

1

El "ruido" que está midiendo parece estar relacionado con la velocidad del rotor, ya que indica que se midió mientras desaceleraba & Igualmente se puede ver que hay una disminución en la frecuencia.

Lo que se desconoce es si esa frecuencia se ajusta a la velocidad del rotor o un armónico superior. Conocer la correlación de frecuencia entre el rotor y el "ruido" facilitaría la reducción de la fuente.

Si hay un deseo de filtrar este componente no deseado, la única complicación es el deseo de filtrar desde 0Hz hasta n frecuencia del rotor. Esto descarta un filtro de paso bajo.

Dos opciones

Rechazo de CA

A continuación hay una ecuación para eliminar el componente de CA. Determina el componente de CA y luego lo resta de la señal original.

\ $ reject = x - [x - \ frac {1} {N} \ sum_ {n = 0} ^ {\ infty} x] \ $

La ecuación de diferencia equivalente para el filtro de rechazo de CC es:

\ $ y_n = 0.999 * ((x_n - x_ {n-1}) + y_ {n-1}) \ $

Como con la mayoría de los filtros, es una compensación entre el tiempo de liquidación y la capacidad de rechazo. El factor 0.999 es la clave aquí. Esto cambia el tiempo de liquidación del rechazo.

  1. Adquiera sus datos. x
  2. Pasar a través del filtro. \ $ y_n = 0.999 * ((x_n - x_ {n-1}) + y_ {n-1}) \ $
  3. genere la versión rechazada de AC \ $ reject = x_n - y_n \ $

Tomando una rampa de datos & superponiendo encima de ella un componente de frecuencia de CA de amplitud significativa + algo de ruido aleatorio. La compensación se puede ver a continuación.

NOTA si se requiere un rechazo completo pero el tiempo de establecimiento no es deseado ... hay trucos digitales adicionales para ayudar a tratar el filtro con grandes delta

NOTA2: la efectividad del factor 0.9 ... depende de la frecuencia de muestreo con respecto a la señal de interés & Componentes no deseados. Lo siguiente se hizo con un Ts de 100us, bastante lento

Filtro de paro de seguimiento de seguimiento

Si se conoce la velocidad actual & el número armónico del componente es igualmente conocido, se puede realizar un filtro de paro de banda adaptativo.

Esperaré esta sugerencia ya que es un poco más complicado y requiere información adicional

    
respondido por el JonRB

Lea otras preguntas en las etiquetas