Eliminar picos de las lecturas de la celda de carga

He desarrollado un indicador de carga interconectado con una celda de carga para mostrar el valor de la carga. El dispositivo se utilizará en el pesaje en línea de una bolsa que se mueve sobre el transportador. Debido a los movimientos mecánicos, hay un pico en la lectura de carga y, para eliminar esos picos, necesito implementar un filtro basado en software para estabilizar las lecturas.

¿Alguien puede indicarme la dirección correcta, por dónde empezar? Estoy usando un microcontrolador 8051 y ADC ADS1231 para convertir los niveles de voltaje analógico en valor de carga.

Respuestas (4)

Estas cosas suceden en las controladoras de peso todo el tiempo y la forma común de solucionar esto es que el software simplemente ignore la falla, es decir, deseche las lecturas que parezcan sospechosas.

Muchas controladoras de peso también usan un dispositivo óptico para sincronizar el software con la posición de la "cosa" que se va a pesar, por lo que el software sabe cuándo debe usar las lecturas para calcular el peso.

Este problema generalmente se debe a la resonancia en voladizo cuando la "cosa" se desliza inicialmente sobre el borde de la parte de pesaje del transportador.

Creo que debería mostrar una imagen de los resultados del peso en comparación con la posición de la "cosa" a medida que pasa sobre la sección de pesaje. Esto permitirá un mayor análisis por mí y por otros. Le recomiendo que tenga una tasa de ADC que tome varias decenas de lecturas (si no cientos) a medida que pasa por la sección de pesaje.

Andy, tienes razón. Pero no sé cómo OEM usará mi dispositivo. Teniendo en cuenta que oem no quiere usar un sensor óptico, necesito implementar algún filtro de software. Si ha encontrado algún ejemplo, por favor hágamelo saber.
Debe desarrollar un algoritmo que se adapte a todos los tamaños y formas diferentes: es demasiado profundo para ser simplemente unas pocas líneas de código o un diagrama de bloques simple.

No necesita 'quitar los picos' tanto como 'dar la lectura correcta'.

Hay al menos dos buenas posibilidades para lo que está sucediendo y requieren diferentes filtros de software. Entonces hay malas posibilidades, que pueden requerir un replanteamiento de la disposición mecánica.

La diferencia entre los dos que se pueden manejar en el software depende de la frecuencia de muestreo y el ancho de banda del sensor. Si está muestreando por encima de la tasa de Nyquist para un sensor de banda limitada de paso bajo y su sensor es lineal, entonces el filtro correcto es la media. Los picos son parte de la lectura correcta y son necesarios para equilibrar las lecturas bajas que obtiene a ambos lados de los picos.

Si está muestreando muy por debajo de Nyquist en un sensor de banda ancha, y la lectura correcta es "la mayoría de las lecturas", entonces sí necesita rechazar los picos. Siempre que el número de picos esté muy por debajo del 50 % de las lecturas, el filtro más sencillo de usar es la mediana, ese valor para el que el 50 % de las lecturas están por encima y por debajo. Esto estará ligeramente sesgado, pero no tanto como un filtro medio.

Si puede identificar los picos y eliminarlos de su conjunto de datos antes de filtrar, entonces la mediana estará mucho menos sesgada y aún será menos sensible a cualquier error en el proceso de clasificación de picos que la media.

Si se encuentra en una situación que no es ninguno de estos extremos, será muy difícil recuperar las fuerzas reales mediante un filtrado de software sencillo, ya que ha contaminado la medición en el sensor.

Un filtro FIR o un filtro de promedio móvil, cuando su bolsa golpea una fotocélula, tiene un promedio de mediciones. El tiempo promedio es el tiempo que la bolsa viaja en la plataforma de pesaje antes de golpear la fotocélula.
Otra posibilidad es tener un filtro de paso bajo FIR y un filtro de promediación secuencial. Muestrea a alta frecuencia, usa FIR para eliminar el ruido HF, luego usa esta señal filtrada para pasarla al filtro de promedio. Quizás deberías ver el foro DSP.

Hola Marko, también estaba pensando en los filtros de paso bajo FIR. He pasado por el filtro mediano que no es un filtro de paso bajo FIR, pero tiende a ser un poco útil. En realidad, la velocidad de muestreo de datos de mi ADC es de 10 Hz. Tengo picos, amigo, por las vibraciones mecánicas que deben suprimirse con un filtro de software. Sé que no puedo suprimir el 100%, pero quiero hacer mi mejor esfuerzo.
Debe filtrar las frecuencias que están por encima de la frecuencia de Nyquist (5 Hz para 10 muestras/s) antes de realizar el ADC. De lo contrario, el ruido de alta frecuencia se suavizará en el rango de 0 a 5 Hz y, después de eso, no podrá distinguir el ruido de la señal. Aumente la frecuencia de muestreo para evitar el anti-aliasing seguido de un filtro digital, o use un filtro de paso bajo analógico antes del ADC (incluso un filtro pasivo RC simple es mejor que nada), o ambos. Mire la señal analógica con un alcance para ver qué hay realmente antes de diseñar cualquier cosa.

Los problemas de filtrado se manejan mejor capturando primero los datos que ingresan en su ADC y luego analizando la naturaleza de su señal. Un gráfico de sus datos en una hoja de cálculo es invaluable para el análisis porque puede aplicar los filtros propuestos en la hoja de cálculo y ver cuál será el resultado y si es lo que desea, lo que le permite ahorrar una tonelada de código y abandono.

Una vez que determine qué aspectos del flujo de datos se desean y cuáles no, debe seleccionar y ajustar su filtro (o algoritmo de validación de datos) para esa aplicación.

Este es un enfoque de ingeniería estándar para un problema: encontrar, analizar, simular, implementar, repetir hasta terminar. Encuentro que los ingenieros integrados generalmente son ligeros en "analizar" y se olvidan de "simular" por completo, formando así una rotación de encontrar-implementar-repetir.

En los sistemas integrados, el primer problema suele ser sacar los datos para su análisis. Aprendí a deslizar un puerto de datos de alta velocidad con el propósito de telemetría en diseños de prototipos para ayudar con estos problemas, y FTDI es generalmente a lo que recurrí, solo necesito un UART de repuesto en el micro y un poco de espacio en la placa para el chip FTDI y un conector micro-B. Puede despoblar el puerto para la producción, y si conecta la alimentación USB, ha hecho que su kit de depuración de escritorio sea un poco más fácil de encender.

Muchas de sus opciones de filtro y ajuste dependerán de la relación entre su frecuencia de muestreo y la duración de la forma de onda de falla. Tienes que determinar cuándo una falla ya no es una falla sino un fenómeno real al que deseas responder.

Creo que si puede ver su flujo de datos en una hoja de cálculo, la solución se presentará rápidamente.