¿Cómo medir el factor de potencia cos phi con un Arduino?

según ¿Cómo se mide el factor de potencia? Puedo medir el factor de potencia (cos phi) comparando el cruce del punto cero de voltaje y corriente. Esto es claro.

El problema que tengo es ¿qué pasa si no puedo decir exactamente cuándo es el cruce por cero? Mi idea es medir el cos phi con un arduino usando un circuito muy simple.

Básicamente, quiero usar resistencias para reducir el voltaje a +- 5, luego usar un diodo para tener solo las ondas positivas. Con esto, puedo muestrear el voltaje usando la entrada analógica del Arduino, digamos al menos 2 más rápido que 50 Hz. El arduino nano, por ejemplo, tiene una velocidad de reloj de 16 MHz :-) (Nyqvist).

Ahora, con el actual planeo hacer lo mismo. Tome un transformador de corriente lineal barato y conviértalo a voltaje usando una resistencia, por lo que solo obtendré + 5V máx.

Calcularé las resistencias y los transformadores para que, para el V máximo y la IA, obtengan el rango que necesito, y también puedo asegurar mi Arduino con seguridad contra sobrevoltaje.

No necesito medir U y A exactamente. No necesito estos valores con precisión, por eso el uso de elementos baratos y un enfoque simple podría ser suficiente.

Lo que necesito es calcular la fase. Por favor, eche un vistazo a la imagen:corriente y voltaje

Supongamos 1. Puedo medir la corriente y el voltaje como solo ondas positivas de 0 a 5 V máx. 2. Muestreo lo suficientemente rápido 3. Puedo detectar el punto donde van de cero a algún valor (también cometeré un error aquí. ..) 4. Hay algún error en la medida (magnitud) 5. Puedo calcular dt entre V y A. Con eso, puedo calcular cos phi

Mi pregunta es: ¿es esto posible/factible? ¿Es el error que cometo en 3 lo suficientemente grande como para que esta medida de cos phi no sea práctica? ¿Cómo puedo calcular este error?

Muchas gracias

Deberá muestrear mucho, mucho, mucho más rápido que 50 Hz para medir la diferencia de ángulo de fase de una línea de alimentación de 50 Hz.
En lugar de enviar la señal al ADC, puede ejecutar ambas señales en detectores de cruce por cero y luego usar un temporizador de hardware para medir con mucha precisión la diferencia entre ellos.
@brhans: ¿Es una velocidad de reloj de 16 MHz mucho más rápida que 50 Hz? Por supuesto, la frecuencia de muestreo no será de 16 MHz, pero si el algoritmo es lo suficientemente bueno, puede estar cerca de 1 MHz.
@ uint128_t ¿es esto de lo que estás hablando? patio de recreo.arduino.cc/Main/ACFaseControl
bastante Solo necesita la parte de cruce por cero, no necesita la parte del triac. Y luego necesitará un segundo circuito de cruce por cero para su corriente.
Medir el factor de potencia es problemático de esta manera. Vea mi respuesta aquí: electronics.stackexchange.com/questions/202667/… . Consulte también estas dos respuestas: electronics.stackexchange.com/questions/82188/… y también esta: electronics.stackexchange.com/questions/76213/…

Respuestas (1)

Vea los comentarios debajo de la publicación después de leer esto. Mi solución aquí solo sería precisa para circuitos RLC y no si hubiera corrientes pulsadas debido a rectificadores, etc.

No te preocupes por Nyquist. En cambio:

  • Detectar el cruce por cero de la señal de tensión. Tenga en cuenta si es positivo o negativo.
  • Inicie dos temporizadores: uno para medir el tiempo hasta el siguiente cruce por cero de voltaje (Vzc) y el siguiente para detectar el tiempo de medición hasta el cruce por cero actual (Izc).
  • Cuando ocurra Izc, detenga el temporizador de Izc.
  • Averigua si es positivo o negativo.
  • En el próximo Vzc, detenga el temporizador Vzc. (Esto le da el tiempo de medio ciclo).

A partir de toda la información anterior, puede calcular el ángulo entre los cruces por cero y si el ángulo de fase está adelantado o retrasado.

Su principal problema será la precisión de las mediciones de ZC, particularmente en la forma de onda actual (que puede ser cero, no lo olvide). Sugeriría que esto podría hacerse mejor mediante un circuito discreto externo que activa las entradas digitales. El detector de cruce por cero de banda ancha de Dave Johnson puede ser de ayuda.

Me preocuparía mucho por nyquist si va a intentar estimar el factor de potencia con precisión. El cruce por cero para calcular FP no comprende qué es FP y cómo se aplica a corrientes altamente no sinusoidales, como en los puentes rectificadores. Una onda sinusoidal teórica con carga de resistencia, inductor o condensador está bien, pero para el resto del mundo real olvídalo.
Eso es interesante, Andy. Ocasionalmente trabajo con corrección del factor de potencia y soy consciente de las corrientes y armónicos no sinusoidales generados por VSD trifásicos, etc., y el doble pulso generado en cada medio ciclo de fase. También tengo mucha submedición con PF y análisis de armónicos, pero nunca consideré ese aspecto. ¿Cómo se resuelve entonces? ¿Sobre el fundamental de los armónicos?
Solo conozco una forma sensata y es calcular la potencia real y Vrms x Arms y encontrar PF a partir de eso: consulte los enlaces debajo de la pregunta que incluí como comentario. Básicamente, PF se puede considerar como un valor sin sentido cuando los armónicos actuales son grandes.
Es un problema desafortunado donde PowerFactor y DisplacementPowerFactor se usan indistintamente. DisplacementPowerFactor es PURAMENTE la diferencia de fase entre el voltaje fundamental y la corriente fundamental. PowerFactor tiene en cuenta los armónicos y se resuelve perfectamente en RealPower y VA. Para cargas pasivas DPF == PF ... pero no siempre es así.
@Andyaka, sí ... la única forma realmente confiable es la V & A instantánea.
Entonces, me parece que el camino a seguir para obtener un valor real de la medición es usar el PowerFactor (incluidos los armónicos). Trabajaré un poco con los arduinos y algunos sensores e informaré aquí lo que encontré, pero puede llevar algo de tiempo.
@otmezger Información muy tardía ... Consulte esto para "otra metodología", no se necesita un detector cruzado. electronics.stackexchange.com/questions/574979/…