Construyendo mi analizador de Armónicos THD para energía eléctrica – fácil – ¿Cómo un equipo mide los armónicos?

Objetivo:

Construir, probar, analizar y evaluar los THD de señales eléctricas de tensiones y corrientes de la red eléctrica, entendiendo el funcionamiento y operaciones que desarrollan los equipos de medición THD.

Resulta que varios grupos de estudiantes, pasantes o ingenieros no están equipados con software y hardware adecuado para calcular los espectros de frecuencia de amplitud de una señal, y sobre todo de una señal real de voltaje (hablamos de 220 VAC). La implementación del programa puede ser de mucha ayuda usando Microsoft Excel. Utilizando el complemento > herramientas para el análisis de Microsoft Excel, un tranformador de voltaje para obtener la señal, y un Arduino.

Si no tienes el complemento de excel descárgalo de aquí: 

http://office.microsoft.com/productupdates/default.aspx

 

ANÁLISIS DE FOURIER

El análisis de Fourier es una construcción matemática para reconstruir una onda en funciones senoidales y cosenoidales, cualquier señal periódica puede ser representada como la suma de ondas sinosoidales elegidas correctamente (Fourier 1807). La DFT (Discrete Fourier Transformer) es un miembro de 4, de una familia de la Transformada de Fourier. La FFT (Fast Fourier Transformer) es un método para calcular los espectros de frecuencia, el cual es mucho más rápido que la DFT, esto se debe  a que opera descomponiendo de un punto N del dominio del tiempo a N señales.  En este blog no explicaré el marco teórico de la DFT, FFT, Dualidad, Correlación, entre otros, para todo ello te recomiendo el libro de Steven W. Smith: “The Scientist and Engineer’s Guide To Digital Signal Processing”.

FFT con Excel

Un FFT con Matlab no es la creación de una obra de arte, ya que si quisieras ver todo lo que pasa en el dominio de la fecuencia, Matlab no es tan explícito, por otra parte Microsoft Excel es una herramienta extraordinaria mediante el comando>Análisis de datos>Análisis de Fourier.

Circuito Eléctrico

Puedes implementar el circuito de adquisición de señal de corriente o voltaje como se mostrará en el siguiente diagrama, así, de esta manera no ponemos en riesgo el microcontrolador ATmega del Arduino, y estaremos trabajando con una señal real a 220 VAC.

De acuerdo a la nota técnica Atmel AVR465 de 8 bits, en la parte del acondicionamiento de la señal, es necesario convertir la salida del transformador de voltaje a una forma de onda que tiene el pico positivo a menos de 5 V para nuestro caso (3.3 V es opcional), y a un pico negativo que debe ser más de 0 V, por lo que se necesita:

1) Reducir la forma de onda que proviene del secundario del transformador de voltaje y

2) Añadir una compensación, porque no hay ningún componente negativo.

La forma de onda se puede reducir mediante el uso de un divisor de tensión a través de los terminales del transformador de voltaje, de esta manera se crea otra fuente de tensión para suministrar al microcontrolador de Arduino por lo que se adicionará por segunda vez un segundo divisor de tensión a través del suministro de Arduino.

Comunicación Excel-Arduino

Descarga PLX-DAQ, para poder iniciar el envío de datos mediante el puerto serial entre Arduino y Excel.

Link de descarga aquí: https://www.parallax.com/downloads/plx-daq

Introducción y Conceptos Básicos

Para procesar el algoritmo, debe ser en cantidades de muestra de 4,8,16,32,64,128,256,512,2048 ó 4096, esto es generalmente por dos razones, primero, que el almacenamiento de datos utiliza abordaje binario, y segundo, el algoritmo más eficiente de la DFT, es la FFT, y esta en Log(2)N.

A continuación se muestra el código para la toma de muestras que se introduce en el sketch de Arduino, se tomará hasta 512 muestras.

RESULTADOS

La transferencia de datos de medición almacenará los datos medidos en la hoja excel a través de PLXDAQ, estos datos lo puedes organizar en una tabla de frecuencias, tal como se miden los armónicos, colocando a la fundamental (60 Hz).

Hice comprobaciones con un analizador de redes de la marca DRANETZ, puedes observar los resultados y ver la aplicación de la DFT en señales discretas en la programación del Arduino midiendo señales reales de tensión y corriente, comprobando la aplicación de la teoría DFT.

Conclusiones:

El estudio de la DFT (Discrete Fourier Transform) ha sido el principal fundamento teórico para poder implementar el programa 2. La DFT es un miembro de 4 de una familia de la transformada de Fourier utilizada para algoritmos informáticos.

La resolución de medición tiene limitantes, esta corresponde a la resolución de 1023 ADCs que brinda el ATmega de Arduino, esto implica pequeños saltos en la medición, y la otra limitante es la velocidad de muestreo que es de aproximadamente 100 μs en su configuración por defecto.

El programa trabaja a una frecuencia de muestreo aproximada de 400Hz a 128000 bps, del cual se capturan 256 muestras para su procesamiento digital, por lo que una placa Arduino con mayor resolución, mayor velocidad y memoria lograría mejorar la precisión y exactitud para la medición de armónicos como las que dan los equipos profesionales.

CÓDIGO DEL PROYECTO

/*
DISCRETE FOURIER TRANSFORMER - FAST FOURIER TRANSFORMER
BY: JEISON OSMAR ALTAMIRANO SORIA
visita la web para saber más de estos temasm, y deja tus
comentarios:
http://jasonhd.wix.com/jason
El siguiente códig envía datos de arduino mediante el puerto Serial
hacia excel a traves de la aplización PLXDAQ de Parallax
instrucciones:
- ubicar el puerto COM de conexión COM4 en mi caso
- identificar la velocidad brp = 128000 en mi caso
 y explora las mediciones.
*/

int i=0 ;
int  row=0; 

void setup()
{
Serial.begin(128000);
Serial.println("CLEARDATA");
Serial.println("LABEL,Time,[i],V[i]");
}
void loop()
{
 
  row++;
  
 int V[]={
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
 // hasta aaquí hay 256 muestras
 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,          
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, 
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,
          analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510, analogRead(0)-510,         
          
        
          };          
                   
          
 for(i=0;i<=511;i++){ 
   
   Serial.print("DATA,TIME,");
   Serial.print(i);Serial.print(",");
   Serial.println(V[i]);
    
    if(row>1){
    row=0;
    Serial.println("ROW,SET,2");
  }
    
 }
 
  
}

/*FIN DEL CÓDIGO ARDUINO*/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Abrir chat