Cómo medir la distribución de energía

2

Quiero evaluar el flujo de energía en un sistema alimentado por batería. Entonces, cuando el sistema ejecuta una tarea específica, se puede obtener la distribución de energía entre las diferentes cargas (similar a un Diagrama de Sankey ). Para esto, sería suficiente una escala de tiempo en el rango de [100..10] ms en los datos procesados.
La energía eléctrica se puede calcular como \ $ W = \ int_ {t_ {0}} ^ {t_ {1}} u (t) \ cdot i (t) dt \ $. Por lo tanto, medir el voltaje y la corriente a una frecuencia de muestreo dada proporcionará los datos necesarios. Para un procesamiento posterior en un PC, se debe registrar el voltaje y la corriente.

Como se puede ver en la imagen, la fuente de alimentación convierte la entrada de las baterías a un constante de 24V. Los controladores del motor utilizan una modulación de ancho de pulso (PWM) de 40 kHz para controlar los motores de corriente continua sin escobillas (BLDC). En dicho sistema pueden existir hasta 9 combinaciones de motor / conductor. Hay más cargas suministradas por la fuente de alimentación que muestran solo cambios lentos en el "consumo" de energía. La medición será controlada por un Arduino Due (84 MHz). Los ADC probablemente tendrán múltiples canales y se conectarán a través de SPI.

Mi preocupación es medir con buena precisión sin llegar a cuello de botella en el procesamiento:
Velocidad del bus (SPI) a los ADC, procesamiento de datos (ambos limitados por el microcontrolador) y, especialmente, la velocidad de escritura en la tarjeta SD (limitada por la Arduino lib < 700 kB / s?)

El voltaje de las baterías solo cambia lentamente bajo carga y, por lo tanto, la tasa de muestreo puede ser baja. Sin embargo, los motores muestran múltiples armónicos en respuesta al PWM de 40 kHz.
Teniendo en cuenta el criterio de nyquist , la frecuencia de medición tendría que ser más del doble que la señal de interés más rápida (aquí el armónico n-th con una magnitud significativa). Otras señales deben filtrarse en paso bajo para evitar el alias.

Pregunta 1: ¿Qué pasos para la medición y el procesamiento se pueden tomar para mantener la precisión y reducir la demanda de los cuellos de botella?
Mis pensamientos son:

  • Usar promedios aritméticos en un intervalo establecido \ $ \ Delta T \ $ para reducir los datos a registrar: \ $ \ overline {W} = \ overline {u} \ cdot \ overline {i} \ cdot \ Delta T \ $
  • Escribir datos binarios en la tarjeta SD en lugar de texto simple.
  • Midiendo solo una fase por motor, asumiendo que las fases son impulsadas igual mientras se mantiene una velocidad constante a un par constante. Por lo tanto, este enfoque está limitado por las condiciones.

Pregunta 2: ¿Es posible obtener una buena aproximación al medir más lento que la frecuencia PWM?
Recibo que el submuestreo no es aplicable aquí, ya que utiliza el alias de una banda de frecuencia superior en una banda de frecuencia inferior vacía .

    
pregunta Grebu

1 respuesta

1

Para medir el consumo de energía de cada motor, deberías medir el voltaje y la corriente, antes del controlador del motor.

(la alimentación trifásica después del controlador será muy difícil de medir).

Las mediciones de voltaje y corriente deberán filtrarse para eliminar la señal de 40 kHz, que de lo contrario causará todo tipo de problemas, como anticipa correctamente.

Afortunadamente, 40 kHz está muy lejos de su frecuencia de muestreo probable de unos 50 Hz. Un filtro RC de primer orden con su rodilla a 40 Hz atenuará el voltaje de rizado de 50 kHz unas 30 veces, lo que podría ser suficiente. Un inductor y dos condensadores serán mucho mejores.

El voltaje es bastante fácil de medir: como una buena fuente de baja impedancia, puede crear un filtro simple y alimentarlo a su ADC. Solo necesita una medición de voltaje después de la alimentación de 24 V. La ondulación en el voltaje debería ser bastante pequeña de todos modos.

La corriente es un poco más complicada. Podría usar una resistencia de detección en el cable de tierra y un amplificador operacional para amplificar el voltaje pequeño y luego el filtro. En algunos ajustes de par, la corriente puede ser realmente una onda cuadrada a 40 kHz, será difícil de medir y filtrar. Podría ser una idea filtrar la línea de alimentación en sí misma con un LC, solo para eliminar parte de la ondulación y luego filtrar la salida de detección nuevamente antes del ADC.

Una última idea digital sería muestrear más rápido de lo que necesita, quizás a 1 kHz, y promediar estos en el Arduino. El alias aún será un problema, sin embargo, si aleatoriza el tiempo de las muestras, es posible que pueda promediar la señal de 40 kHz, evitando que tenga un alias adecuado en su banda de interés. Algunos experimentos aquí serían valiosos.

    
respondido por el tomnexus

Lea otras preguntas en las etiquetas