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 .