Estoy tomando lecturas de par de torsión de galgas extensométricas en un actuador y tratando de filtrar la señal para que parezca utilizable. Ya he colocado un filtro de mediana que reduce los picos esporádicos.
Cuando tengo el actuador bloqueado, puedo ajustar su potencia (a través del ciclo de trabajo PWM) a diferentes valores y ver las lecturas de par en consecuencia. En tal situación, tengo 0,1Nm de ruido. Esto es aceptable.
Sin embargo, cuando dejo el motor sin restricciones, y lo configuro para que gire a diferentes velocidades (de nuevo, lo configuro a diferentes potencias a través del ciclo de trabajo PWM), obtengo un alto ruido en las lecturas del sensor de par 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 evidentes:
(Obviamente, dado que el motor funciona libremente, las lecturas de par son (deberían ser) un 0 constante).
Mi pregunta es, ¿cómo puedo filtrar estos datos durante el funcionamiento del motor? El procesamiento offline está descartado, y me imagino que la ventana de filtrado no puede ser muy grande (ya que produce una gran latencia en la lectura del valor del par actual), pero quizás sea inevitable.
He pensado en un filtro de paso bajo, naturalmente, que funcionaría muy bien para las altas velocidades del motor, donde la frecuencia del ruido es bastante alta, pero a medida que el motor se ralentiza, tendría que buscar esencialmente 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.