¿Usando ganancia incorporada en ADC frente a diferentes transformadores de corriente?

Estoy buscando construir eventualmente un circuito de monitoreo de energía usando un raspberryPi como controlador y algún tipo de ADC como colector. En general, sigo la arquitectura del emonTx que se usa en openenergymonitor , excepto que en lugar de usar un Arduino, planeo usar algún tipo de ADC discreto y más pequeño, como la placa de conexión Adafruit 1015 , o alguna variante del MPC3208 . Mientras miraba varias opciones de ADC, me he encontrado con algunas preguntas para las que parece que no puedo encontrar respuestas simples...

1) ¿Cómo optimizo el rango de entrada frente a la precisión? El transformador de corriente inicial que planeo usar tiene un rango de +/- 333mv, pero es posible encontrar otros similares que tengan un rango de salida de +/- 1V. ¿Es correcto suponer que el que tiene el rango "más grande" dará más precisión? Si es así, ¿hay alguna manera de saber dónde hay una cantidad significativa de precisión adicional? (Pregunta práctica: ¿tengo que pasar por la molestia/el gasto de encontrar/pedir un CT modelo de 1V? )

2) La placa de conexión 1015 tiene la capacidad incorporada de aumentar la ganancia, pero debo suponer que aumentar la ganancia también aumentará el ruido. ¿Hay alguna forma de saber (explícitamente o simplemente "por experiencia"?) si el ruido o la imprecisión introducidos por la configuración de ganancia serán mejores o peores que el error introducido al construir un circuito más complicado para elevar el voltaje a un rango aceptable para el ADC?

3) Suponiendo que tengo control sobre el voltaje de referencia en el ADC, ¿hay una diferencia significativa entre usar el extremo inferior del rango y el extremo superior del rango? ¿O la conveniencia de poder usar un riel existente (es decir, los 5 V que ya alimentan el raspberryPi) supera esto?

4) ¿Es útil el circuito adicional en la placa de conexiones en este tipo de aplicación? Puedo ver claramente dónde la lógica de ferrita y capacitor ayuda a reducir el ruido, pero no tengo idea de si estamos hablando de cambios significativos para este tipo de circuito. ;-)

Y reconozco plenamente que es posible que la respuesta sea "realmente no importa, porque no importa cuál de estos elija, el circuito tendrá una precisión XXX de todos modos, lo cual es mucho más preciso de lo que necesita para monitorear el uso de energía en el hogar". - si esa es realmente la respuesta, entonces esa información es útil, pero aún me gustaría entender cómo se tomarían en consideración las preguntas anteriores si asumimos que se requiere la máxima precisión (que me doy cuenta de que no lo es...)

Usted puede encontrar esto útil. Es un monitor de energía que construí para el Arduino Yun: instructables.com/id/… Cubre muchas de sus preguntas sobre el transformador, el filtro, etc. En particular, puede encontrar útil el filtro digital para reducir el ruido. También información sobre la precisión medida con el ADC de Arduino.

Respuestas (3)

¿Es correcto suponer que el que tiene el rango "más grande" dará más precisión? Si es así, ¿hay alguna manera de saber dónde hay una cantidad significativa de precisión adicional?

Para calcular cuánta precisión obtiene utilizando diferentes CT y diferentes configuraciones de ADC, necesita saber cuánto varía el voltaje del CT por amperio y qué proporción del rango de entrada de escala completa corresponde a su ADC.

Si utiliza un CT de 50 A, 1,0 V CA, el voltaje máximo será sqrt(2) * 1,0 V CA = +/- 1,41 V CC. Tenga en cuenta que deberá asignar esto al rango 0 .. 2.82Vdc (o similar) ya que el ADS1015 no permite voltajes de entrada negativos (verifique las clasificaciones máximas absolutas en la hoja de datos: no más de -0.3V en cualquier entrada)

Entonces, su CT mapea 0 .. 50 A a 0 .. +/- 1.41Vdc, variando en 28mVdc por amperio

Mirando la hoja de datos del ADS1015, hay una tabla en la página 10 que muestra los rangos de voltaje de escala completa para diferentes configuraciones de ganancia. Una ganancia de 1 con FS de 4,096 V parece más apropiada aquí, ya que necesita un valor de FS mayor que los 2,8 V que desea leer. ¡Tenga en cuenta que no podrá leer voltajes superiores a los 3,3 V proporcionados por su RPi con cualquier configuración de ganancia!

No estoy particularmente familiarizado con el ADS1015, pero entiendo que la razón por la que esos rangos FS se dan como más/menos 4.096 V es que puede usarlo en modo diferencial y si el lado 'negativo' (o inversor) de la entrada es más alto que el lado positivo (no inversor), entonces su lectura se considera negativa. Sin embargo, ambos lados de la entrada aún deben ser positivos; ¡no se olvide de las clasificaciones máximas absolutas de -0.3V a VDD + 0.3V!

De todos modos, si tiene un rango de medición de -4,096 V a +4,096 V y una resolución de 4096 (12 bits), obtendrá una resolución de voltaje de 2 x 4,096 V / 4096 = 2 mV

Entonces, si el voltaje de salida del CT varía en 28 mV CC por amperio, y podemos detectar cambios de 2 mV con nuestro ADC, entonces podemos detectar cambios de 71 mA en el consumo de corriente de su casa (28/2 = 14 pasos por amperio, 1/14 = 0.071 A). Sospecho que es precisión más que suficiente para sus propósitos domésticos.

¿Qué pasa si usas la versión de 50A, 0.330Vac?

  • El voltaje de CC máximo es de +/- 0,467 VCC
  • La configuración de ganancia debe ser 4, dando un valor de FS de +/- 1.024Vdc
  • La resolución del ADC es de 0,5 mV CC
  • CT varía en 9.3mVdc por amperio
  • El cambio de corriente mínimo detectable es de 54 mA.

Por lo tanto, obtendrá una mejor precisión con la versión de 0,330 V CA y una mayor ganancia de ADC; sin embargo, será más susceptible al ruido. ¿Será significativo el ruido? No tengo idea, solo puedes responder eso empíricamente. Sin embargo, puede estar seguro de que la versión de 1,0 V será menos ruidosa, por lo que si una resolución de 0,071 A es lo suficientemente precisa, entonces la opción de 1,0 V puede ser la mejor.

Cualquier amplificador basado en un amplificador operacional barato medio decente no aumentará significativamente la relación señal-ruido, lo que significa que si la señal amplificada es ruidosa, es porque la entrada también es ruidosa. Sin embargo, la amplificación brinda más resolución, por lo que optaría por un amplificador para maximizar su rango. Usar el amplificador ADC interno tampoco debería causar problemas.

En el lado del ruido de las cosas (y suponiendo que esté tratando de calcular la corriente o potencia RMS), dudo que cualquier otra cosa que no sea una señal muy ruidosa vaya a dar problemas. Aparte de eso, existe una buena posibilidad de que el ruido esté fuera de banda (cosas de alta frecuencia) y, por lo tanto, se pueda filtrar. Si se trata de ruido de alta frecuencia, DEBE filtrarlo antes de que ingrese al ADC o obtendrá aliasing y errores en su RMS o cálculo de potencia.

Entonces, en resumen, hasta ahora: -

  • Use un amplificador para maximizar la resolución de su ADC (el interno está bien pero...)
  • Use un filtro para eliminar las frecuencias altas no deseadas para que el ADC evite el aliasing.

Suponiendo que tengo control sobre el voltaje de referencia en el ADC, ¿hay una diferencia significativa entre usar el extremo inferior del rango y el extremo superior del rango?

La mayoría de los ADC pueden tener su voltaje de referencia ajustado un poco y algunos pueden tener su voltaje de referencia tomado tanto negativo como positivo, pero, en este ejemplo, es probable que obtenga un mejor rendimiento marginalmente en un rango de entrada más grande y si se necesita más amplificación, definitivamente debería hacerlo. utilice un amplificador externo y/o el interno del ADS1015.

Otra cosa: deberá centrar la señal entre el voltaje de referencia superior y los voltios de referencia inferiores (generalmente 0V).

Si va a filtrar la salida del CT, aplique el mismo filtro a la entrada de voltaje para que no haya un retraso de fase neto; esto producirá un pequeño error en la potencia medida.

Gracias Andy. Para monitorear la energía de la red doméstica, ¿es seguro asumir que el ruido estará fuera de banda? ¿O debería planear construir un filtro en el circuito de todos modos? ¿Alguna posibilidad de que tenga un puntero (o incluso una sugerencia sobre qué buscar en Google) para la parte de filtrado del circuito? Y para centrar el circuito, supongo que puedo simplemente elevar (¿es "sesgo" el término correcto?) La forma de onda de CA amplificada agregando una señal de CC dividida en voltaje a esa onda, y elegir los valores de resistencia para centrar el pico a -forma de onda pico dentro del rango ADC?
Upkift con sesgo es perfecto e intente buscar el filtro de paso bajo clave Sallen. Hay un sitio de un tipo llamado Okawa que tiene algunos buenos circuitos de filtro en inc. llave Sallen.

¿ Le ha echado un buen vistazo a la línea de circuitos integrados de Microchip ? Hay un puñado de chips que básicamente cubren todos los problemas que enumeras. El MCP3914 es un front-end con ganancia ajustable y adc incorporado. También tiene muestreo controlado/paralelo, algo como el mcp3208 no lo hará. Si no quiere hacer los cálculos o el trabajo, puede usar el mcp3905A o mejor, que solo le da un pulso de salida. La ventaja de usar una de estas opciones es que la mayor parte del trabajo duro se hace por usted en un solo IC.

El MCP3914 no es un paquete apto para aficionados, pero creo que se puede hacer con pasta de soldar y una pistola de aire caliente.