You are on page 1of 5

DISEÑO E IMPLEMENTACION DE UN MEDIDOR DE VOLTAJE TRUE

RMS USANDO UNA FPGA

Juan J. Rondón, Liliana M. Peinado


Estudiantes Ingeniería Electrónica

Departamento de Ingeniería Eléctrica y Electrónica


Universidad Nacional de Colombia, Bogotá

jjrondonr@unal.edu.co, lmpeinadoc@unal.edu.co

RESUMEN simulaciones realizadas de los bloques funcionales y del


sistema en general. Y en la última sección se concluye por
Este artículo describe el diseño y la implementación de un los resultados obtenidos, lo observado durante el
medidor de voltaje True RMS utilizando una FPGA por procedimiento y seguimiento del diseño y la
las ventajas que ofrece en el procesamiento simultáneo de implementación.
datos, economía y fácil manejo, permitiendo su utilización
con fines académicos. 2. MEDIDOR DE VOLTAJE TRUE RMS

1. INTRODUCCION El valor RMS de una señal hace referencia a la eficiencia


en la entrega de potencia de una fuente ante una carga
Los equipos existentes medidores de voltaje True RMS resistiva y se calcula mediante la raíz cuadrática media
son de escasa utilización en el ámbito académico por los [1], la cual se expresa en la siguiente ecuación:
estudiantes debido a sus elevados costos. Por ello, se debe
buscar otras alternativas que minimicen costos, utilicen 1 T
v(t ) dt (1)
T ∫0
2
tecnologías accesibles, fácilmente manipulables por los VRMS =
estudiantes y que brinden resultados óptimos. La
implementación de un medidor True RMS en una FPGA Donde, T es el período de la señal, v(t) es la señal de
brinda una alternativa que responde favorablemente a voltaje de entrada, y VRMS es el voltaje RMS.
dichas necesidades. Los medidores True-Rms se distinguen de los demás
El diseño de este medidor de voltaje es una aplicación debido a que entregan una respuesta acorde a la ecuación
del campo de Instrumentación que tiene como (1) y no a un voltaje promedio, que es lo que la mayoría
especificación de funcionamiento manipular una señal de medidores de voltaje AC entregan. Uno de los
eléctrica alterna simétrica sin componente DC con un medidores de voltaje True RMS convencionales produce
rango de 0 a 5 voltios pico y que su frecuencia se una indicación de medición detectando la potencia
encuentre entre 50 Hz y 20 KHz. calorífica de la onda, la cual es proporcional al cuadrado
El sistema True RMS se implementa en una FPGA, del valor RMS del voltaje. Para medir esta potencia
tecnología al alcance de los estudiantes por economía, calorífica se usa termopares. El único inconveniente es el
fácil manejo, realización de tareas simultáneas, velocidad comportamiento no lineal que frecuentemente adoptan los
y sencillez en la programación. La aplicación se realiza en termopares, lo cual es superado usando dos termopares
conjunto con un microcontrolador encargado de la bajo el mismo ambiente térmico tal y como se muestra en
visualización, permitiendo una comparación entre la figura 1 [2].
dispositivos.
El artículo se divide en cuatro secciones. La primera
explica brevemente el concepto y utilidad de un medidor
de voltaje True RMS. La segunda parte muestra la
descripción del diseño explicando el sistema en general y
las subdivisiones en bloques funcionales para solucionar
óptimamente el problema. La tercera sección presenta las
2

Figura 1. Medidor True RMS usando termopares


Figura 4. Diagrama de tiempo del ADC0820 en el modo RD
Actualmente se cuenta con multímetros digitales que
muestran en forma precisa dentro de las especificaciones 3.2. True RMS
de ancho de banda del instrumento. Sin embargo, no son Este bloque implementado en FPGA contenida en una
muy favorables desde el punto de vista de costos. tarjeta de desarrollo [4] que se muestra en la figura 5, es el
encargado de procesar y calcular en forma digital el
3. DESCRIPCIÓN DEL DISEÑO voltaje True RMS de la señal a medir tomando como base
la ecuación (1).
Debido a que la señal a medir es de naturaleza análoga y
que el procesamiento se hace de forma digital es preciso
primero realizar un acondicionamiento adaptando la señal
de entrada a datos binarios para calcular el voltaje True
RMS y luego se visualiza en un LCD alfanumérico. El
diagrama de bloques del sistema general teniendo en
cuenta las anteriores consideraciones se muestra a
continuación:

int_adc
Señal AC volt true_rms data_LCD
Acondicionamien
True RMS Visualización
to de Señal rd_adc

Figura 2. Diagrama de bloques del sistema general.

3.1. Acondicionamiento de señal


El acondicionamiento de señal consiste principalmente en
convertir la señal análoga de la entrada en una señal Figura 5. Tarjeta de desarrollo con FPGA
digital, para lo cual se decide rectificar la señal de entrada
debido a que el conversor usado (ADC0820) únicamente Como se puede apreciar es muy difícil abarcar el
convierte niveles de tensión positivos. El siguiente es el problema en forma inmediata, en lugar de esto se ha
diagrama de bloques del acondicionamiento de señal: decidido subdividirlo en problemas más pequeños y más
fáciles de manejar esto se muestra en el siguiente
int_adc diagrama de bloques:
Señal AC Rectificador de Señal Rect. volt
presición de Conversor ADC
rd_adc
media onda int_adc dato_int dato_div
volt rst_div true_rms
Figura 3. Diagrama de bloques del acondicionamiento de señal rd_adc
Integral Divisor_32 done_div Root_complete
periodo

La rectificación de media onda se hace teniendo en


cuenta que la señal de entrada debe ser simétrica y sin Figura 6. Diagrama de bloques del True RMS
componente DC. Por lo tanto el hecho de suprimir la parte
3.2.1. Integral
negativa de la onda no interfiere en el cálculo del voltaje
True RMS. Es la parte encargada de hacer la interfaz con el ADC0820
El ADC0820 es un conversor análogo-digital de ocho generando la secuencia mostrada en la figura 4, recibe una
bits de alta velocidad con un tiempo máximo de trama de ocho bits que corresponden a la señal de entrada,
conversión de 2.5 microsegundos. Se usa en el modo RD la eleva al cuadrado y la suma durante el transcurso de
medio periodo (debido a que la rectificación es de media
donde hay que proporcionarle la siguiente secuencia [3]:
onda); además también tiene un contador encargado de
3

calcular el semiperiodo de la señal de entrada. Cabe DIVISOR_n

aclarar en este caso que la integral se convierte en una Inicio


sumatoria y el dt corresponde al tiempo de conversión del
ADC, debido a que los datos se están procesando en forma done_div <= '0'
discreta. El siguiente diagrama de flujo muestra el diseño aux <= 0
div <= dividendo
del bloque que realiza la integral: count <= n-1

INTEGRAL
aux <= aux * 2
aux(0) <= div(n-1)
div <= div*2
Inicio
count--
No Si
aux<divisor
aux <= 0
rst_div <= '1'
rd_adc <= '0'
div(0) <= '1' div(0) <= '0'
aux_p <= 0 aux <= aux - divisor

No Si
rd_adc <= '0' volt=0 rd_adc <= '0' No
count=0

Si
No No
int_adc='0' int_adc='0' data_div <= div
done <= '1'
Si Si
Figura 8. Diagrama de flujo del divisor
aux <= aux + volt^2 rd_adc <= '1'
auxp <= auxp + 1
rd_adc <= '1'

No
int_adc='1' 3.2.3. Root_complete
No
int_adc='1' Si Finalmente falta calcular la raíz cuadrada, para lo cual se
Si decide implementar un algoritmo de métodos numéricos
Inicio
No
que se basa en la siguiente fórmula:
volt=0

Si aprox
+ aprox
dato_int <= aux dato = aprox ' (2)
periodo <= auxp 2
rst_div <= '0'

Se comienza con una aproximación inicial de la cuarta


Inicio
parte del dato y se logra demostrar mediante varias
Figura 7. Diagrama de flujo del bloque integral pruebas que ocho iteraciones son suficientes para llegar al
resultado requerido; para implementar este algoritmo es
3.2.2. Divisor_32 necesario usar un divisor de 16 bits, igual al expuesto
Este bloque es el encargado de dividir el resultado de la anteriormente, que realice la división de la aproximación
integral entre el periodo; las señales integral y período entre el dato. Por último, el diagrama de bloques
tienen un tamaño de 32 bits para evitar overflow y poder implementado para ‘Root_complete’ es el siguiente:
medir señales lentas. Se diseña de forma secuencial
debido a que la capacidad de compuertas y de memoria de
la FPGA no son suficientes para implementarlo en forma
combinacional. El funcionamiento de este bloque se puede dato_div aprox
dato_div_16
observar en la figura 8. done_div
Root_square
done_div_16
Divisor_16

true_rms

Figura 9. Diagrama de bloques de Root_complete

A continuación se muestra el diseño en diagrama de flujo:


4

ROOT_COMPLETE

4. SIMULACIONES
Inicio

Después de implementar los diagramas de flujo del bloque


count <= 7
aprox <= data_div/4 True RMS en VHDL mediante el programa Project
Navigator de Xilinx [5] se procede a realizar la simulación
aprox <= de los mismos usando Modelsim y se obtuvo el resultado
count-- ((aprox/dato)+aprox)/2
de la figura 12.
En la señal volt se ingresaron los datos de una señal
No
count=0 sinusoidal con una amplitud de 255, se conoce que para
Si una señal sinusoidal el voltaje True RMS es el valor pico
true_rms <= aprox
dividido entre raíz de dos. Esta operación realizada con
calculadora da como resultado 180.31, como se puede
Figura 10. Diagrama de flujo de Root_complete
apreciar en la figura 12 el resultado que ofrece el sistema
es 179; luego se le ingresa al sistema los valores de una
3.3. Visualización
señal triangular con un semiperiodo de 36 y con un valor
El bloque de visualización se encarga de tomar los ocho
pico de 252, si se realiza el cálculo de la ecuación 1 para
bits del bloque True RMS y realizar las operaciones
esta señal se obtiene que el valor de tensión True RMS es
pertinentes para convertirlo en un número de 0 a 5 con dos
de 145.49 y el sistema nos da una respuesta de 145. Para
cifras decimales, y generar la secuencia pertinente para
poder explicar el origen del error es preciso ver las
inicializar y escribir el resultado de la medición realizada
simulaciones de los bloques internos de True_RMS.
en el LCD alfanumérico de referencia DMC-5092
fabricado por OPTREX. Para implementar este bloque se
4.1. Integral
decide usar un microcontrolador at8052 de Atmel; el
La integral de la señal sinusoidal, para este caso, es de
diseño se muestra en el diagrama de flujo de la figura 9.
1 165 365 y el periodo es de 36, como se puede observar
La implementación del bloque True RMS en FPGA
en la primera parte de la figura 13. Para el caso de la señal
XC2s30 utiliza en forma completa su capacidad, razón por
triangular la integral da como resultado 763 028.
la cual se decide usar un microcontrolador para la
Obsérvese como cambian las señales de aux y auxp a
implementación de la visualización, además, ofrece la
medida que se presentan flancos de bajada de la señal
ventaja de generar fácilmente las secuencias necesarias
int_adc y como la señal rst_div se pone en bajo para
para controlar el LCD.
indicarle al divisor que posee datos disponibles.
VISUALIZACION
4.2. Divisor_32
Inicio Este bloque toma los datos a dividir cuando se presenta la
señal de rst_div en bajo. Luego comienza a realizar la
Inicializar LCD división y cuando termina coloca la señal de done_div en
alto para indicarle al siguiente bloque que la división ha
concluido, tal como se muestra en la figura 14.
volt=true_rms*0.02
Para el caso de la señal sinusoidal el resultado de la
división entre la integral y el periodo es de 32 371; si se
a=floor(volt)
b=floor(10*(volt-a))
realiza el cálculo se obtiene un resultado de 32 371.25.
c=100*volt-100*a-10*b
Para la señal triangular se obtiene un resultado de 21 195
siendo en realidad 21 195.22; el error en este caso se debe
escribir "Voltaje True RMS "
a que este divisor únicamente esta capacitado para dar la
parte entera de la división.
escribir a

4.3. Root_complete
escribir ","
En el instante en el cual la señal de done_div se pone en
alto comienza a trabajar el bloque Root_complete
escribir b
ofreciendo como resultado 179 para el caso de la señal
sinusoidal; si se realiza la raíz cuadrada de 32 731
escribir c
obtenemos un resultado de 179.91; y de 145 para la señal
triangular en vez de 145.58 que es el resultado correcto.
cursor en Home
La explicación del pequeño error presentado en los dos
Figura 11. Diagrama de flujo de la visualización. casos se debe también a que este bloque únicamente puede
dar resultados enteros.
5

Figura 12. Simulación de todo el sistema.

Figura 11. Simulación del bloque integral.

Figura 14. Simulación del divisor.

Figura 15. Simulación del bloque Root_complete

5. CONCLUSIONES Para la optimización del diseño se recomienda


implementar un algoritmo que brinde un resultado más
La utilización de FPGA permite obtener respuesta eficaz y veloz en la raíz cuadrada y con la utilización de
simultánea de procesos, velocidad y economía en la variables de punto flotante en el lenguaje de
implementación de sistemas. La FPGA se puede programación.
programar en VHDL, el cual es un lenguaje fácil y Se logra dar una alternativa en el ámbito académico
cómodo para desarrollar un diseño, por medio de Project por la minimización de costos al implementar un True
Navigator programa de Xilins se puede sintetizar sin RMS en una FPGA, demostrando que por medio del
mayores inconvenientes los dispositivos. diseño en el campo de Instrumentación se pueden llegar a
Las simulaciones realizadas en Modelsim permiten cubrir necesidades académicas.
observar y verificar los resultados de la implementación
del diseño, para así corroborar la eficiencia del sistema. Al 6. REFERENCIAS
comparar los datos esperados con los datos que arrojaban
las simulaciones logramos comprobar la eficacia en la [1] http://www.fernandezfica.cl/info_armonico.asp
medición de voltaje True RMS. [2] Cooper, William D.; Helfrick, Albert D.: “Instrumentación
Una de las dificultades que se presentan en la Electrónica Moderna y Técnicas de Medición” Prentice Hall,
implementación es la alimentación del sistema, puesto pp. 139-140.
[3] http://www.national.com/pf/AD/ADC0820.html
que, debe ser permanente durante el desarrollo de la [4] Diseño del Ingeniero Carlos Ivan Camargo. Docente
medición, y la otra es la capacidad de la FPGA utilizada Facultad de Ingeniería Electrónica, Universidad Nacional de
de 30000 compuertas. Colombia.
[5] http://www.xilinx.com

You might also like