Saltar al contenido

Cómo medir el factor de potencia de CA con Arduino

julio 10, 2021
FYB0GMMJ7GGGSYQ

¡Hola a todos! Este es mi tercer instructivo, espero que lo encuentre informativo 🙂 Este será un instructivo sobre cómo hacer una medición básica del factor de potencia usando un Arduino. Antes de comenzar, hay algunas cosas a tener en cuenta:

  1. Esto SOLO funcionará con cargas LINEALES (por ejemplo, motores inductivos, transformadores, solenoides)
  2. Esto NO funcionará con NO LINEALES (por ejemplo, bombillas CFL, fuentes de alimentación conmutadas, LED)
  3. Soy un ingeniero eléctrico y muy competente cuando trabajo con el potencial de la red (es decir, 230 V)

¡Advertencia! Si no está capacitado o no sabe cómo trabajar correctamente con el voltaje de la red, le sugiero que no continúe con esa parte del instructivo y le mostraré un método seguro para probar que el circuito funciona.

Esta es una solución de hardware al problema de medir PF en cargas lineales. Esto también se puede hacer puramente a través del código, incluida la capacidad de medir cargas no lineales, que intentaré cubrir en otro instructable.

Para el beneficio de cualquier principiante que lea esto, el factor de potencia es la relación entre la potencia real y la potencia aparente y se puede calcular encontrando el coseno del ángulo de fase entre la tensión de alimentación y la corriente (consulte la imagen adjunta de Google). Esto es importante en aplicaciones de CA, ya que la “potencia aparente” (voltios-amperios) se puede calcular fácilmente utilizando el voltaje multiplicado por la corriente. Sin embargo, para obtener la potencia real o “potencia real” (vatios), la potencia aparente debe multiplicarse por el factor de potencia para realizar una medición real de la potencia en vatios. Esto solo se aplica a cargas que tienen un componente inductivo o capacitivo significativo (como un motor). Las cargas puramente resistivas, como los calentadores eléctricos o las bombillas incandescentes, tienen un factor de potencia de 1.0 (unidad) y, por lo tanto, la potencia verdadera y la potencia aparente son iguales.

Paso 1: Diseño de circuito

Diseño de circuitoDiseño de circuitoDiseño de circuitoDiseño de circuito

El factor de potencia se puede calcular usando un osciloscopio, midiendo la diferencia de tiempo entre la señal de voltaje y corriente. Estos se pueden medir en cualquier punto de la ola siempre que se muestreen en el mismo lugar. En este caso era lógico medir entre puntos de cruce por cero (puntos en la onda donde el voltaje cruzó el eje X).

Diseñé el siguiente circuito en Multisim. Suponiendo que la corriente y el voltaje de la carga son formas de onda sinusoidales puras, se puede medir el factor de potencia. Cada forma de onda se alimenta a un detector de cruce por cero (a veces conocido como convertidor de onda sinusoidal a cuadrada) que es simplemente un amplificador operacional 741 en modo comparador donde el voltaje de comparación es 0V. Cuando la onda sinusoidal está en el ciclo negativo, se genera un pulso de CC negativo, y cuando la onda sinusoidal es positiva, se genera un pulso de CC positivo. Luego, las dos ondas cuadradas se comparan utilizando una puerta lógica OR exclusiva (XOR), que generará un pulso de CC alto positivo solo cuando las ondas cuadradas no se superponen, y 0 V cuando se superponen. La salida de la puerta XOR es, por lo tanto, la diferencia de tiempo (delta t) entre las dos ondas desde el punto en que cruzan el punto cero. Luego, un microcontrolador puede cronometrar esta señal de diferencia y convertirla en factor de potencia mediante el siguiente cálculo (asegúrese de que su calculadora científica esté en grados y no en radianes):

cos (phi) = f * dt * 360

Dónde:

cos (phi) – el factor de potencia

f – La frecuencia del suministro medido

dt – delta to diferencia de tiempo entre las ondas

360 – una constante utilizada para dar respuesta en grados

En las imágenes, verá tres trazos de osciloscopio simulados para el circuito. Las dos señales de entrada representan la corriente y el voltaje a la carga. Le he dado a la segunda señal una diferencia de fase de 18 grados, para demostrar la teoría. Esto da un FP de aproximadamente 0,95.

Archivos adjuntos

Paso 2: creación de prototipos y pruebas

Prototipos y pruebasPrototipos y pruebasPrototipos y pruebasPrototipos y pruebasPrototipos y pruebasPrototipos y pruebas

Para la construcción de mi prototipo, puse el diseño del circuito en una placa de pruebas sin soldadura. De la hoja de datos UA741CN y la hoja de datos CD4070CN, ambos circuitos integrados funcionan con una fuente de 12-15 V CC, por lo que utilicé dos baterías para hacer una fuente de alimentación de doble riel + 12V, 0V, -12V Volt.

Simulando una carga

Puede simular una carga utilizando un generador de señales o un generador de funciones de dos canales. Usé esta caja china barata y alegre para producir dos ondas sinusoidales de 50 Hz con una separación de 18 grados, y alimenté las señales en el circuito. Puede ver las formas de onda resultantes en un osciloscopio. En las imágenes de arriba, puede ver las dos ondas cuadradas superpuestas (salida de cada amplificador operacional), y las otras tres imágenes ilustran la salida de la puerta XOR. Observe cómo el ancho del pulso de salida se acorta con la disminución del ángulo de fase. Los ejemplos anteriores muestran 90, 40, 0 grados.

Paso 3: Código Arduino

Como se mencionó anteriormente, la salida del circuito de medición es la diferencia de tiempo entre las dos señales de entrada (es decir, la señal de corriente y de voltaje). El código arduino usa “pulseIn” para medir la longitud del pulso de salida del circuito de medición en nano segundos y lo usa en la fórmula PF mencionada anteriormente.

El código comienza definiendo constantes, principalmente para hacer que el código sea más organizado y legible. Lo más importante es que el código C (código arduino) funciona en radianes, no en grados, por lo que se necesita una conversión de radianes a grados para calcular los ángulos y FP más adelante. Un radianes es aprox. 57,29577951 grados. El número 360 también se almacena y el factor de multiplicación 1×10 ^ -6 para convertir nano Segundos en Segundos simples. La frecuencia también se define al principio, si está utilizando algo que no sea 50Hz, asegúrese de que esté actualizado al principio del código.

Dentro de “void loop ()” le he dicho al Arduino que calcule el ángulo según la fórmula PF mencionada anteriormente. En mi primera iteración de este código, el código devolvería el ángulo y el factor de potencia correctos, sin embargo, entre cada resultado correcto, también se devolvería un valor bajo erróneo en la consola serie. Me di cuenta de que esto era cada dos lecturas o cada cuatro mediciones. Coloqué una declaración “si” dentro de un ciclo “for” para almacenar el valor máximo de cada cuatro lecturas consecutivas. Lo hace comparando el cálculo con “angle_max” que inicialmente es cero, y si es mayor almacena el nuevo valor dentro de “angle_max”. Esto se repite para la medición de FP. Al hacer esto en un bucle “for”, significa que el ángulo correcto y el pf siempre se devuelven, pero si el ángulo medido cambia (más alto o más bajo), cuando “for” finaliza “angle_max” se restablece a cero para la siguiente prueba, cuando ” bucle vacío () “se repite. Hay un muy buen ejemplo de cómo funciona esto en el sitio web de Arduino (https://www.arduino.cc/en/Tutorial/Calibration). La segunda fórmula “si” simplemente evita que se devuelva cualquier valor superior a 360 en caso de que se mida un valor alto erróneo cuando se apaga el dispositivo bajo prueba.

Archivos adjuntos

Paso 4: ¡La prueba de ácido!

¡La prueba del ácido!¡La prueba del ácido!¡La prueba del ácido!¡La prueba del ácido!¡La prueba del ácido!

No intente lo siguiente a menos que sepa cómo trabajar de manera segura con voltaje de red de CA. Si tiene dudas sobre su seguridad, intente simular las señales de entrada con un generador de formas de onda de dos canales.

A petición de un seguidor, hice un diseño de tablero en Fritzing para dar una mejor idea del circuito y del circuito de muestreo / detección (adjunté el archivo .fzz y un diagrama .png). El motor en la parte superior representa el ventilador de escritorio que usé, y la bobina de inducción representa el transformador de corriente que envolví alrededor del conductor vivo. Encendí los circuitos integrados 741 usando dos paquetes de baterías de 12 V dispuestos para dar +12 VCC, 0 VCC (tierra) y -12 VCC. El CD4070 también se puede alimentar directamente desde el riel de alimentación de 5V de Arduino.

Para demostrar que el concepto funciona en realidad, el circuito se construyó en una placa de pruebas sin soldadura. En las imágenes se puede ver la disposición del circuito. He utilizado un ventilador de escritorio como carga inductiva para probar el concepto. Entre el suministro de red de 230 V y la carga está mi equipo de detección. Tengo un transformador reductor que transforma 230 V directamente en 5 V para permitir muestrear la forma de onda de voltaje. Se utilizó un transformador de corriente no invasivo sujeto alrededor del conductor vivo para muestrear la forma de onda de la corriente (a la derecha de la resistencia revestida de aluminio). Tenga en cuenta que no necesariamente necesita conocer la amplitud de la corriente o el voltaje, solo la forma de onda del amplificador operacional para identificar el cruce por cero. Las imágenes de arriba muestran las formas de onda de corriente y voltaje reales del ventilador y la consola en serie arduino, que informa un FP de 0,41 y un ángulo de 65 grados.

Este principio de funcionamiento se puede incorporar a un monitor de energía hecho en casa para realizar verdaderas mediciones de potencia. Si es competente, puede intentar monitorear diferentes cargas inductivas y resistivas y determinar su factor de potencia. ¡Y ahí está! un método muy simple para medir el factor de potencia.

Archivos adjuntos

Sé el primero en compartir

    61 comentarios

    0
    EETEN
    EETEN

    hace 5 meses

    Me gustaría ajustar este circuito para medir el factor de potencia y el cambio de fase de una carga capacitiva usando un simulador en línea. Usé dos diodos antes de conectarlos a cada amplificador operacional, después de los resultados, cuando trato de medir el cambio de fase del capacitor, obtuve resultados como que el cambio de fase es 109.55 y pf = -0.33.
    ¿Me puedes dar algún consejo?

    0
    smooth_jamie
    smooth_jamie

    Responder hace 5 meses

    Retire los diodos y el circuito funcionará. Los diodos evitan que los amplificadores operacionales se activen, ya que están destinados a detectar el cruce por cero en el ciclo negativo de la segunda media onda.

    0
    EETEN
    EETEN

    Responder hace 5 meses

    No puede encontrar si se trata de una pf adelantada o retrasada. ¿derecho? Ya que solo puede medir la diferencia de tiempo entre las formas de onda de corriente y voltaje.

    1
    smooth_jamie
    smooth_jamie

    Responder hace 5 meses

    No es necesario. Si conoce su teoría de circuitos, debería saberlo en cargas inductivas; la corriente se retrasa respecto a la tensión (cambio de fase positivo). En cargas capacitivas; la corriente adelanta al voltaje (cambio de fase negativo).

    0
    EETEN
    EETEN

    Responder hace 4 meses

    Si no tengo el transformador de corriente, ¿cómo puedo obtener la misma medida?

    0
    smooth_jamie
    smooth_jamie

    Responder hace 4 meses

    Busque en Google el término “métodos de medición actuales” e investigue un poco. Hay muchos métodos.

    0
    zd.bzd.88
    zd.bzd.88

    hace 8 meses

    Bnjour, comment je peux réaliser un détecteur de pass de zéro en utilisant le capteur courant ACS 712 – 30 A ?? Merci d’avance

    0
    smooth_jamie
    smooth_jamie

    Responder hace 8 meses

    Por supuesto. Todo lo que necesita está en el instructivo de arriba.

    0
    zd.bzd.88
    zd.bzd.88

    close