Está en la página 1de 6

Generacin de Ondas SPWM con Arduino para la

Excitacin de Inversores Trifsicos


Andriach, Juan Pablo; Diaz, Ariel Ivan; Mariani, Cristian; Silva Bustos, Matias; Iparraguirre, Javier
Universidad Tecnolgica Nacional
Facualtad Regional Baha Blanca
11 de Abril 461, Bahia Blanca, Argentina
{juan.p.andriach, arielivandiaz, mariani.cristian, masilvabustos, javierip}@ieee.org

En la siguiente seccin se hace una introduccin a la


plataforma Arduino y las especificaciones tcnicas del
Resumen - En este artculo se presenta una implementacin hardware utilizado. Luego se describen los fundamentos
simple de un generador de onda senoidal mediante PWM, para tericos del algoritmo y la forma de implementarlo por
ser aplicado en el control de un inversor trifsico. Se utiliz la software. En la siguiente IV se presentan los resultados de las
plataforma Arduino Uno como base del proyecto, la cual utiliza
simulaciones y de los ensayos de laboratorio, se analizan las
como ncleo el microcontrolador AtMega328P. Se realizaron
simulaciones y se evaluaron los resultados experimentales a
formas de onda y las caractersticas espectrales de las seales.
partir de las formas de onda obtenidas. Se analiza adems las Por ltimo se hace un anlisis de la posible implementacin
limitaciones de la implementacin desarrollada. del algoritmo para la excitacin de inversores trifsicos.

Palabras clave - arduino; pwm; inversor; generador onda


senoidal; II. PLATAFORMA ARDUINO

Arduino es una plataforma electrnica abierta que permite


I. INTRODUCCIN utilizar software y hardware libre para el desarrollo de
proyectos. Posee un entorno de desarrollo flexible y fcil de
El presente trabajo es el resultado de la inquietud de lograr usar. La placa utilizada en este trabajo es la Arduino Uno [4],
un controlador digital de velocidad para motores de corriente basada en un microcontrolador Atmega 328. Alguna de sus
alterna basado en hardware y software libre. Como principal caractersticas son las siguientes:
requisito se plante que el control del sistema de potencia
debera ser sencillo y econmico. El primer paso consta en el MicrocontroladorAtmega 328P @ 16MHz.
diseo de un inversor trifsico el cual nos permitiera generar
Voltaje de trabajo 5 V.
las ondas senoidales para alimentar el motor de CA (corriente
Tensin de alimentacin 7 V -12 V.
alterna), a partir del sistema de suministro de energa.
Conexin USB.
Es posible encontrar trabajos similares donde se muestra 32 kB de memoria flash (Programa).
que el control puede ser analgico [1] o digital [2, 3]. Nuestro 2 kB SRAM
aporte se distingue debido a que el control se basa en Arduino. 14 terminales de E/S digital (6 PWM de 8 bits)
Esto permite obtener el mismo resultado con una plataforma 6 (DIP) o 8 (SMD) terminales de entrada analgicos
abierta y de bajo costo. En la implementacin digital
propuesta en este artculo se genera directamente las ondas El lenguaje de programacin y las libreras que incorpora
senoidales utilizando las seales de salida PWM que Arduino permiten el control de sus salidas destinadas para
proporciona la placa Arduino. PWM. Para ello se invoca a la funcin analogWrite(pin,
dutyCycle), donde pin es una de las salidas PWM (pines 3, 5,
En el caso de los inversores utilizados como variadores de 6, 9, 10 y 11) y dutyCycle es un valor entre 0 y 255. Si bien
velocidad para motores de induccin estos deben tener la esta funcin ofrece una implementacin simple para el PWM,
capacidad de ajustar la frecuencia de acuerdo a la velocidad de no permite controlar la frecuencia del mismo.
salida deseada. Adems se debe poder ajustar la tensin de
salida de modo que se mantenga un flujo constante del
entrehierro en la regin del par de torsin constante.
III. IMPLEMENTACIN Serie truncada
Partiendo de la expansin en serie de Taylor-
En la PWM el ancho de cada pulso se modula segn otra
McLaurin de la funcin coseno:
funcin, llamada moduladora. En este caso, la funcin
moduladora es una funcin sinusoidal. El microcontrolador
provee el hardware para la sntesis de PWM, pero es necesario cos 1 +. (2)
configurarlo en tiempo de ejecucin. Para esto se calcula la
seal moduladora y luego se cargan estos valores en los Se puede demostrar que el error cometido al
registros que controlan el PWM. A continuacin se presentan truncar en el trmino n-simo es menor a ese trmino.
dos alternativas para generar la funcin moduladora y luego el Como se trabaja con valores discretos, un error
algoritmo utilizando. menor a 0,5 de la resolucin es ms que suficiente.

A. Consideraciones del Clculo de la Funcin Coseno Por tabla


En aplicaciones de tiempo real los algoritmos estn En este caso, el clculo se convierte en un
acotados en tiempo o ciclos de trabajo del CPU, y en un acceso a memoria. La resolucin angular est dada
microcontrolador pequeo, en espacio o memoria tambin. Por por 2/N radianes. La resolucin de amplitud es de
ello es necesario analizar el diseo del algoritmo de clculo 2/(2W - 1), para una representacin con una palabra
numrico para una funcin dada. de W bits. La tabla ocupa W N bits.
Tambin hay que tener en consideracin la representacin Se cumple:
numrica de los nmeros fraccionarios, que pueden ser de
coma fija y coma flotante. Para el primer caso, se representa
con un entero, suponiendo que los bits menos significativos (3)
representan valores fraccionarios. Para el segundo, se lo
representa con dos enteros, una mantisa, representado en coma donde es el intervalo de tiempo entre muestras, y
fija, y un exponente entero. Esto multiplica la cantidad de la pulsacin que se desea obtener.
operaciones necesarias.
Ya que los valores de la funcin estn comprendidos entre Con una resolucin fija, para variar la
1 y -1, se prefiere la representacin en coma fija: 7 bits de frecuencia o pulsacin, basta modificar el tiempo de
mantisa + 1 bit de signo. La mantisa se pondera con 2-1 para el espera entre cada ciclo .
MSB, con 2-7 al LSB y en forma correlativa los dems. Otra Sin embargo, para la realizacin de un PWM con
forma de expresar lo anterior es 2-7 V, donde V es el valor frecuencia de portadora fija, ( constante,
representado por el entero. De esta manera se codifican
variable) esta tcnica no es conveniente ya que exige
racionales de -1 a 0,9921875 incluyendo 0. La eleccin de la
una resolucin variable con la frecuencia
resolucin se funda en el ancho de palabra del temporizador, el
cual es igual al del argumento de analogWrite(). La suficiencia moduladora. Una posible solucin es la interpolacin
de sta se verificar experimentalmente. de valores, exigiendo un clculo adicional que tendr
que ser tenido en cuenta.
Como se adoptan valores discretos en el argumento de
coseno hay que establecer la resolucin, o sea el menor valor
representado. El criterio adoptado es que dos valores B. Algoritmo
consecutivos del argumento resulten en valores consecutivos
Por cuestiones de simplicidad y rendimiento se opt por el
del condominio, as se aprovecha eficientemente la
mtodo por tabla y se encar el algoritmo en forma directa,
representacin.
siendo este:
cos cos (1)
loop()
{
donde para /2 que es donde la funcin ++N;
cambia ms rpidamente. analogWrite(cos(N*R));
Para valores pequeos de R resulta . Por tanto, una delayMicroseconds(PERIODO/N);
}
resolucin de 1/128 radianes para el argumento es suficiente.
En general se estudiaron dos formas de Donde N es el nmero de elementos en una tabla de valores, R
representacin: es la resolucin angular, y PERIODO es el periodo de la seal
por serie truncada, con requerimientos en tiempo, y por tabla, moduladora (coseno) en microsegundos
requiriendo espacio. Este algoritmo tiene la ventaja de ser sumamente
simple y como primera aproximacin es ms que suficiente.
Sin embargo adolece de ciertos inconvenientes:
- Impone un retardo en el lazo principal del programa, lo que
hace que el agregado de otros procedimientos de escrutinio y
clculo se haga difcil, sino imposible.
- La salida analgica de analogWrite() no es tal, sino que se
implementa por modulacin PWM.
- No asegura el sincronismo correcto entre el inicio de un
pulso de la salida PWM y la modificacin del ciclo de trabajo,
dando un comportamiento indefinido a la salida desde la
llamada a analogWrite() hasta el inicio del siguiente ciclo
PWM.
- Los niveles de salida de la seal senoidal resultan
escalonados en vez de variar en forma continua, lo que
agrega armnicas.

IV. SIMULACIN Fig.2: Captura del osciloscopio


pio de la simulacin, usando doble filtro RC y un
solo filtro RC.
Analizando el circuito esquemtico [4] de la placa Arduino
podemos observar que est compuesta bsicamente por dos A partir de la figura se concluye que al pasar la seal por
partes, la etapa de programacin (interfaz USB) y el un segundo filtro RC, se reducen los picos montados sobre la
procesador. La parte de inters es la seccin del procesador, misma, dando lugar a una onda senoidal de mejores
con su respectivo oscilador de frecuencia, la cual se simul con caractersticas. Esta prueba se realiz con el fin poder verificar
Proteus [5]. Este entorno
ntorno de desarrollo posee en sus libreras el el correcto funcionamiento de la funcin que genera la seal
procesador AtMega328P, lo que facilita el trabajo de en Arduino, as como su correcta implementacin.
simulacin considerablemente. Desde el IDE de Arduino, Continuando con la simulacin, se procedi a evaluar el
podemos obtener el archivo hexadecimal de la compilacin, el comportamiento de las tres salidas PWM funcionando
cual se puede cargar directamente al procesador
pro en la simultneamente, dando como resultado la representacin de
simulacin de Proteus. una tensin trifsica en la que cada onda est 120 desfasada
de las dems.

Fig.: 1 Captura del esquemtico en Proteus

En la Figura 1 se observa el esquemtico de la simulacin


de Arduino
rduino con un doble filtro RC sobre el cual se analiz la
seal de salida del PWM por medio del osciloscopio en la
Figura 2. En esta ltima figura se observa la seal filtrada por
el doble filtro RC (amarillo) y la seal correspondiente a la
salida del primer filtro RC (azul).

Fig.3: Captura del osciloscopio de la simulacin de las 3 salidas PWM y en el


canal 4 la seal componente del canal 3.

V. ENSAYOS Y RESULTADOS

A. Formas de Onda

Una vez efectuada la simulacin se procedi a realizar los


primeros ensayos de laboratorio con el algoritmo para generar
las ondas seno. En la Figura 4 se observa la forma de onda de
la seal tomada de una de las salidas PWM de la placa componente de 490Hz es de 1.3 Volts, mientras que el valor
Arduino. En la Figura 5 se puede apreciar la misma seal pero medio de la mayor componente
onente armnica corresponde a 0,70,
luego de ser filtrada por un doble filtro RC. De esta manera se Volts.
pudo comprobar que efectivamente la modulacin del PWM
corresponde con la de una onda senoidal, cuya frecuencia
puede ser variada segn lo mencionado en la seccin anterior.

Fig. 6: Anlisis de espectro


tro de la seal generada a 50 Hz.
Hz

Al disminuir la frecuencia de la seal generada se encontr


que a valores
lores muy bajos de la misma, la componente
fundamental comienza a mezclarse con la componente de
continua que es parte del PWM de Arduino. Se consider
15Hz como un valor mnimo en el cual la componente
fundamental est lo suficientemente separada y bien definida
d
con respecto a la componente de continua. Esto se puede
Fig.4: Captura del osciloscopio de la seal SPWM.
SPWM
observar en la Figura 7.

Fig.7: Lmite inferior


i en 15 Hz.

Mediante una serie de ensayos, se comprob que al


aumentar la frecuencia de la seal, se llega a un valor lmite,
dado que por ms que se disminuya el periodo de la seal
se que
se genera por software, la placa Arduino no responde
incrementando la frecuencia. Se lleg como a lmite a un valor
de 165Hz, en donde la amplitud de la componente
Fig.5: Captura del osciloscopio de la seal SPWM filtrada. fundamental es considerablemente menor que en las l seales
de menor frecuencia anteriormente ensayadas. Adems la
amplitud de los armnicos se ve incrementada a medida que la
B. Analisis de Espectro frecuencia se acerca al valor lmite. Este caso se puede
A continuacin se hicieron ensayos usando un analizador observar con detalle en la Figura 8.
de espectro por medio de una placa adquisidora con interfaz
en LABVIEW [6]. A partir de este anlisis se tomaron tres
capturas, en la cuales se puede apreciar que todas poseen una
componente de frecuencia
ncia en comn ubicada en 490 Hz, la
cual corresponde con la frecuencia de trabajo del PWM de
Arduino.
La Figura 6 muestra el PWM trabajando a 50Hz, que
corresponde a la frecuencia estndar de la mayora de las
conexiones elctricas de baja potencia. Por medio de la
interfaz de LABVIEW se obtuvo que el valor medio de la
Fig.8: Lmite Superior 165 Hz.
componente fundamental es de 2,15 15 Volts, el de la l
En la Figura 9 se representan los valores medidos de interruptores complementarios [7]. La inversin se realiz por
frecuencia ensayada versus los valores de frecuencia tericos hardware, es decir, utilizando tres compuertas AND 7408. La
que se le pidieron a la placa Arduino por software. Figura 11 muestratra la salida de uno de los canales PWM
Descartamos los valores menores a 15Hz por la falta de (amarillo) y su correspondiente complemento (verde).
definicin y para valores mayores a 150Hz, la respuesta deja
de ser lineal, por lo que el Arduino deja de responder de la
forma esperada.

Fig. 9: Grfico de frecuencia ensayada versus terica segn las pruebas


realizadas.
Fig. 11: Seales
eales SPWM complementarias.

VI. APLICACIONES Y TRABAJOS FUTUROS Analizando las seales en superposicin,


superposicin se aprecia que el
tiempo muerto en cada conmutacin es prcticamente nulo.
Considerando que los resultados obtenidos en los ensayos Esto es gracias a que el tiempo de propagacin de la compuerta
son ms que aceptables, se puede pensar en que la es de unos pocos nanosegundos.
implementacin desarrollada es totalmente apta para ser
aplicada en la excitacin de inversores trifsicos y en el
control de velocidad de motores de CA. Es por ello que se
VII. CONCLUSIONES
procedi a ensayar el algoritmo, pero esta vez aplicado a tres
canales PWM del Arduino
rduino para generar una tensin de salida
trifsica. La implementacin desarrollada en este trabajo permite la
La Figura 10 tomada del osciloscopio muestra la forma de generacin de ondas senoidales para la excitacin de
onda SPWM de las tres fases. La frecuencia
frecuenci de cada una de inversores trifsicos de una manera sencilla y utilizando una
estas es controlada y variada de forma simultneamente por plataforma electrnica abierta, de hardware y software libre, a
software. Se puede observar que cada una de las tres seales un bajo costo. Los ensayos de laboratorio arrojaron muy
se encuentra desfasada 120 de las dems. buenos resultados, trabajando dentro de los lmites de
frecuencia establecidos en las secciones anteriores. De estas
condiciones es posible definir un intervalo de trabajo para la
generacin de una onda senoidal lo suficientemente limpia,
variando la frecuencia de la componente fundamental entre
15Hz y 150Hz.

Si bien el algoritmo fue pensado para el control de un


variador de velocidad de motores de AC, tiene mltiples
aplicaciones en el manejo de accionamientos de potencia.
Recurriendo a esta implementacin como base, es posible
aumentar la complejidad del algoritmo para poder controlar de
manera efectiva la amplitud de la tensin de salida, y de esta
manera lograr que la relacin v/f se mantenga constante,
condicin necesaria para el manejo de motores de induccin.

Fig.10: Seales
eales SPWM desfasadas 120 tomadas del Arduino.
Arduino

Para la implementacin del inversor trifsico, cada una de


las fases debe ser invertida para poder excitar cada par de
REFERENCIAS

[1] Ian F. Crowley, Ho Fong Leung, PWM Techniques: A Pure Sine Wave
Inverter, Worcester Polytechnic Institute Major Qualifying Project,
2011.
[2] Aganza T. Alejandro, Prez R. Javier y Beristain J. Jos Antoni,
Inversor trifsico SPWM para el control de velocidad de un motor de
induccin implementado en el microcontrolador PIC18F2431,
RIEE&C, Revista de Ingeniera Elctrica, Electrnica Y Computacin,
VOL. 2 NO. 1, 2006.
[3] Gamboa Bentez Silvana del Pilar, Quelal Analuisa Paulo Alexis, Rivera
Argoti Pablo, Diseo y Construccin de un Variador de Velocidad con
el Microcontrolador 80C196MC, Escuela Politcnica Nacional, JIEE,
Vol. 19, 2005.
[4] Arduino Uno Rev3 Schematic [acceso 16 de Junio de 2013]
<http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-
schematic.pdf>
[5] Proteus Desing Suite Version 8 [acceso 16 de Junio de
2013]<http://www.labcenter.com/index.cfm>
[6] Software de Desarrollo de Sistemas NI LabVIEW [acceso 19 de Junio
de 2013] <http://www.ni.com/labview/esa/>
[7] Ned Mohan, Tore M. Undeland, William P. Robbins, Electrnica de
Potencia, Convertidores, aplicaciones y diseo, Tercera Edicin.
[8] Gregorio Moctezuma Jimnez, Gabriel G. Luna Meja y Daniel U.
Campos-Delgado, Diseo e Implementacin de un Variador de
Velocidad para Motor CA.
[9] Thida Win, Hnin Nandar Maung, Analysis of Variable Frecuency
Three Phase Induction Motor Drive, World Academy of Science,
Engineering and Technology 18, 2008.
[10] A. Maamoun, M. Ahmed, Microprocessor Control System for PWM
IGBT Inverter Feeding Three-Phase Induction Motor

También podría gustarte