Вы находитесь на странице: 1из 5

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/285776683

Diseño del código de PWM Sinusoidal de tres fases para un microcontrolador a


partir del generado por Matlab, con variación de frecuencia y valor eficaz.

Conference Paper · November 2015

CITATIONS READS

0 3,521

1 author:

Alfredo De la Barrera Gonzalez


Instituto Politécnico Nacional
11 PUBLICATIONS   6 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Alfredo De la Barrera Gonzalez on 22 December 2015.

The user has requested enhancement of the downloaded file.


IEEE ROC&C’2014-2015
EL-18 / PON-87

Diseño del código de PWM Sinusoidal de tres fases para un microcontrolador a


partir del generado por Matlab, con variación de frecuencia y valor eficaz.

Ing. Alfredo De la Barrera González 1, Alexis A. Arellano Sánchez2, Kevin Bravo Tapia3.
1,2,3
IPN ESIME Culhuacán, Av. Santa Ana 1000, Col San Francisco Culhuacán, México D.F., México
e-mail: adelabarrera@ipn.mx, alexis_ali_99@hotmail.com, elegante_001@hotmail.com

 Resumen –– En la actualidad se han desarrollado dispositivos Keywords –– Sinusoidal PWM, SPWM, RMS, frequency variation.
electrónicos de conmutación de potencia como los MOSFETS o
I. INTRODUCCION
IGBTs, que permiten el manejo de alta corriente y voltaje, con estos
dispositivos y un sistema micro programable se puede reducir el En este trabajo se presenta el código en lenguaje C para la
tamaño de un variador de frecuencia de potencia para el manejo de implementación de un PWM Sinusoidal, que se analizó
motores de tres fases o para convertidores de CD a CA. previamente, detallado en [1], con el que se puede variar la
El presente trabajo está basado en el análisis de PWM sinusoidal
velocidad de motores de tres fases, donde se generaron las
(SPWM) utilizando Matlab para generar el código de conmutación
digital. Donde se propone el código para la generación de las señales variables para las señales de conmutación TAp y TAn, que son
de control senoidales desfasadas 120° entre si y la señal triangular las señales de control para un medio puente de conmutación
contra la que se comparan, dichas comparaciones generan señales de potencia; en este trabajo además se implementa un PWM
TAp y TAn, que son las señales que manejan un medio puente de normal para tener también el control de amplitud de las
conmutación, siguiendo esta filosofía se proponen tres medios señales equivalentes y por lo tanto el control del torque del
puentes y se generan las señales para ser manejadas, exportando los motor. Se implementa el código de SPWM para la generación
valores de estas variables como un segmento del programa para de tres fases, desfasadas 120° entre sí.
microcontrolador, adicionándole a este último una función de PWM Ya que en los resultados de [1], se menciona que los
normal, con la finalidad de tener control del valor eficaz de la salida
valores de las señales de conmutación son independientes de
de los medios puentes, sobre la señal de cada fase de SPWM. El
código de programa aquí presentado se desarrolla con el compilador la frecuencia, entonces el microcontrolador solo tiene que
PIC-C, para un microcontrolador Microchip. sacar estos valores por un puerto a ciertos intervalos de tiempo
para obtener la señal SPWM con una frecuencia deseada. El
Palabras Clave – PWM sinusoidal, PWM, valor eficaz, variación tipo de PWM para el control de torque se trata en [2], es decir
de frecuencia. para el control de amplitud de la señal sinusoidal equivalente
de salida del sistema de conmutación de potencia.
Abstract –– At present we have developed electronic switching
devices power as MOSFETs or IGBTs, which allow handling high
II. DESARROLLO
current and voltage, with these devices and micro programmable La modulación por ancho de pulsos (también conocida
system can reduce the size of a variable frequency power for como PWM, por sus siglas en inglés de Pulse-Width
management of three-phase motors or converters CD CA.
Modulation) de una señal o manejo de fuente de energía, es
This paper is based on analysis of sinusoidal PWM (SPWM) using
Matlab to generate digital switching code. Where the code to
una técnica en la que se modifica el ciclo de trabajo de una
generate sinusoidal signals 120 ° out of phase controlling each other señal periódica (una señal senoidal o cuadrada, por ejemplo),
and the triangular signal are compared against proposed, such ya sea para transmitir información a través de un canal de
comparisons TAp generate signals and such, which are the signals comunicaciones o para controlar la cantidad de energía que se
that drive a half bridge switching following this philosophy proposes envía a una carga eléctrica. El valor promedio del voltaje o la
three half bridges and signals are generated to be handled, exporting corriente, medidos en la carga pueden ser controlados al cerrar
the values of these variables as a segment of the program for y abrir el circuito de fuente de alimentación y la carga, a una
microcontroller adicionándole latter normal PWM function, in order determinada velocidad de conmutación o frecuencia.
to have effective control value output means bridges, on each phase
La ventaja principal de PWM es la baja perdida en los
signal SPWM. The program code presented here is developed with
the PIC-C compiler for Microchip microcontroller.
dispositivos de conmutación de potencia. Cuándo el circuito o
dispositivo electrónico para interrumpir la fuente de voltaje
está apagado, prácticamente no hay circulación de corriente y
cuando esta encendido casi no existe voltaje entre sus
terminales, como se muestra en la figura 1. Siendo que la
potencia es el producto del voltaje por la corriente, en ambos
IEEE ROC&C’2014-2015  EL-18 PONENCIA casos la perdida de potencia por conmutación es casi cero.
RECOMENDADA POR EL COMITE DE ELECTRONICA El termino ciclo de trabajo (duty cycle), describe la
DEL IEEE SECCION MEXICO Y PRESENTADA proporción del tiempo de encendido respecto al periodo de la
EN LA REUNION INTERNACIONAL DE OTOÑO, señal, normalmente expresado en decimales o en porcentaje,
ROC&C’2014-2015, ACAPULCO GRO.,
DEL 8 AL 11 DE NOVIEMBRE DEL 2015.
siendo 100% completamente encendido y 0% completamente
apagado.
Los tres medios puentes se muestran en la figura 2, los
cuales son la salida de potencia del inversor de CD a CA para
el manejo de motores de tres fases, donde VoA, VoB y VoC
son las señales de potencia de salida desfasadas 120° entre sí.

Fig. 1. Modulación de ancho de pulso.

El ciclo de trabajo de una señal periódica es el ancho de


pulso relativo de su parte positiva o tiempo alto, en relación
con el período de la señal, expresado matemáticamente:

Fig. 2. Etapa de potencia del SPWM.


---------------- (1)
De donde y en donde: Con las señales generadas con Matlab en [1], para la fase
D es el ciclo de trabajo (Duty cycle) A con ángulos de 0° a 360°, se manejan las señales TAp y
τ es el tiempo en que la función se mantiene en estado alto o TAn; para la B de 120° a 480°, se manejan las señales TBp y
con circuito cerrado (ancho del pulso) TBn; y para la fase C de 240° a 600°, se manejan las señales
T es el período de la función. TCp y TCn. Generando el código para cada una de estas
señales se requieren tres variables, con los valores de los
La modulación de ancho de pulso usa un pulso rectangular intervalos antes indicados ocupando cada una 360 localidades
el cual es modulado, es decir modificado su tiempo de de memoria; con la finalidad de ocupar una variable de menor
encendido a una frecuencia constante, resultando en la longitud de elementos de memoria, se genera una única señal
variación del valor promedio de la forma de onda. Si se senoidal de 0° a 600°, la cual se compara con una señal
considera la forma de onda de la figura 1, f(t) con un valor triangular, en la figura 3 se muestra el resultado de la
bajo o mínimo Ymin, un valor alto o máximo Ymax y un ciclo comparación de la señal senoidal sin desfasamiento con
de trabajo D, el valor promedio de la forma de onda está dado frecuencia de 60Hz, contra la señal triangular de frecuencia
por: de 1050Hz, donde el índice de modulación de frecuencia mf
es de 17.5; y el índice de modulación de amplitud ma es de
0.95.
-------------- (2)

Como f(t) es una onda cuadrada, su valor es Ymax para


0<t<τ y Ymin para τ<t<T. Entonces la expresión queda
como:

Fig. 3. Señal senoidal de control y triangular de comparación.


------ (3)
Al comparar estas dos señales se obtiene la señal de
Con (3) se obtiene el valor promedio de la señal de la
SPWM, como la mostrada en la figura 4, generando también
figura 1. En muchos casos, esta puede ser simplificada ya que
las señales de manejo del medio puente TAp y TAn, las cuales
generalmente Ymin=0, por lo que queda:
se generan con la ayuda de Matlab; sus valores binarios
obtenidos son almacenados en archivos de variables que
. ----------- (4) fácilmente son incluidos en un programa en lenguaje C, para
microcontrolador.
De (4) se ve que el valor promedio de la señal es Se ha utilizado un microcontrolador Microchip
directamente proporcional al ciclo de trabajo D de la señal PIC18F4550 [3], por sus características de 16kW de memoria
resultante del PWM. de programa, así como porque se puede manejar una

2
frecuencia de ejecución de instrucciones de 12MIPS, con lo variable completa contiene 360 elementos que corresponden
que se obtiene un ciclo de máquina de 83ns, que al programar cada uno a 1° de incremento de la señal senoidal de control.
el RTCC, se puede obtener una interrupción a intervalos de
1µs. #include <18F4550.h>
#device adc=10
#fuses PROTECT, NOLVP, PUT, NoMCLR,
HSPLL, PLL5, NOWDT,
#use delay(oscillator=20Mhz, clock=48Mhz)
#define use_portd_lcd TRUE
#include <lcd.c>

int16 i,cont;
int16 ADCR,contador;
int1 const TAp[]={1,1,1,1,1,1,1,1,1,1,
1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,…};
Fig. 4. Señal senoidal de control y la resultante SPWM.
#int_rtcc
void desborde()
{setup_counters(rtcc_internal,
Se ha programado el microcontrolador en lenguaje C, con
rtcc_div_2);
el compilador PIC-C [4] y [5], por la facilidad y rapidez para
set_rtcc(ADCR);
obtener un programa ejecutable.
output_bit(PIN_B0, TAp[i]);
delay_cycles(3);
output_bit(PIN_B1, ~TAp[i]);
output_bit(PIN_B2, TAp[i+120]);
delay_cycles(3);
output_bit(PIN_B3, ~TAp[i+120]);
output_bit(PIN_B4, TAp[i+240]);
delay_cycles(3);
output_bit(PIN_B5, ~ TAp[i+240]);
if(i>360)
{i=0;}
i++;}

void main()
{setup_counters(rtcc_internal,rtcc_div_2);
set_rtcc(120);
enable_interrupts(int_rtcc);
enable_interrupts(global);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
contador = 50;
lcd_init();
lcd_putc("\f \t SPWM ");
lcd_putc("\n Inicializando ");
Fig. 5. Diagrama electrónico del microcontrolador, y los pines de salida delay_ms(500);
de las señales de conmutación. do
{set_adc_channel(0);
El diagrama electrónico del microcontrolador que se ha ADCR=(read_adc()/10)-2;
utilizado es el que se muestra en la figura 5, donde el botón if(ADCR<1)
K1, incrementa y el botón K2 decrementa el valor de la {ADCR=0;}
amplitud equivalente al ejecutar una función de PWM normal
dentro del microcontrolador, al aumentar o disminuir el if(input(PIN_B6)==0)
tiempo de estado alto de cada uno de los estados altos de la {delay_ms(10);
variable TAp y de sus cinco variantes de forma independiente. contador = contador + 10;
El programa para microcontrolador Microchip if(contador>240)
PIC18F4550, es el mostrado en el listado 1, donde la variable {contador = 60;}
TAp, es la que se generó con ayuda de Matlab y que contiene }
el SPWM, de la cual solo se muestra una porción, ya que la if(input(PIN_B7)==0)
{delay_ms(10);

3
contador = contador - 10 ; III. CONCLUSIONES
if(contador <= 60) Con el análisis del SPWM hecho previamente con Matlab,
{contador = 240;} se pudo implementar el programa para microcontrolador de
}
manera fácil y rápida, concluyendo que una vez obtenido el
SPWM este es prácticamente el mismo para cualquier
printf(lcd_putc,"\fFrec= %LdHz ", ADCR);
frecuencia de señal, con la única diferencia que cada uno de
printf(lcd_putc,"\n Amp= %Ld %%",
los valores de la variable TAp y las demás de conmutación, se
contador);
deben mantener por intervalos de tiempo diferentes y
delay_ms(100);
proporcionales al periodo de la frecuencia de la señal deseada.
}
while(true);
} IV. AGRADECIMIENTOS

Listado 1. Código de programa para microcontrolador Se agradece y reconoce al Instituto Politécnico Nacional, al
Tecnológico de Estudios Superiores de Ixtapaluca y al
La rutina de interrupción permite que cada 23µs se saque COMECYT, por las facilidades y apoyos recibidos.
un dato por el puerto B, es decir por los pines TXp y TXn,
que, al sacar los 360 elementos se obtiene una frecuencia de V. REFERENCIAS
120Hz de la señal equivalente a la senoidal de control; con el
potenciómetro RV1, se puede variar el tiempo de espera entre [1] A. De la Barrera González, A. A. Arellano Sánchez, I. Reséndiz
cada salida de datos hasta 92µs, por lo que al sacar los 360 Maldonado, M. A. Javier Sánchez. Análisis de PWM sinusoidal
(SPWM) utilizando Matlab para generar el código de
valores se genera una señal con frecuencia de 30Hz conmutación digital. IEEE ROC&C 2015, Acapulco México 08
equivalente a la senoidal de control. al 11 de noviembre.
A partir de la señal TAp, se obtienen cada una de las
señales de control de los tres medios puentes, TAn es el valor [2] De la Barrera González A., del Muro Cuellar B., Duchen
complementado de TAp, como TBp y TBn están defasados Sánchez G. I., Guevara López P. Generador de ozono por efecto
120° con respecto de TAn, es por esto que al índice i se corona para fines germicidas basado en un micro controlador con
incrementa en 120, de forma similar para TCp y TCn, el índice PWM. IEEE ROC&C 2012, Acapulco México 11 al 15 de
i se incrementa en 240, que equivale al desfasamiento de noviembre.
240°. El retardo de 3 ciclos de maquina equivale a 250ns, [3] Microcontrolador PIC18F4550, hoja de datos.
tiempo suficiente para que se apague Q1 y pasado este tiempo http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf.
se pueda encender Q2, con la finalidad de que no se puedan Consultado en julio del 2015
poner en estado alto simultáneamente, lo que pudiera
ocasionar un corto circuito y daño permanente entre estos [4] Custom Computer Services Inc. Manual de usuario del
dispositivos de conmutación de potencia. compilador PIC-C PCH. http://www.ccsinfo.com/

[5] Eduardo García Breijo. Compilador C CCS y simulador


PROTEUS para microcontroladores PIC. Ed. Alfaomega México
2008.

VI. BIOGRAFIAS
Alfredo De la Barrera González. Ingeniero en Comunicaciones y
Electrónica egresado del IPN, Docente e Investigador en la ESIME
del IPN y del Tecnológico de Estudios Superiores de Ixtapaluca.
Áreas de interés en sistemas de control analógico, digital e
instrumentación, utilizando micro controladores; energías alternativas
y tecnologías sustentables.
Alexis Ali Arellano Sánchez. Estudiante de ingeniería en
Comunicaciones y Electrónica. Becario IPN BEIFI.

Kevin Bravo Tapia. Estudiante de ingeniería en Comunicaciones y


Electrónica. Tesista del IPN.
Fig. 6. Oscilograma de las señales TAp y TBp

La figura 6 muestra un oscilograma de las señales TAp y


TBp, que están desfasadas 120°, que se obtienen de las
respectivas salidas del microcontrolador, el oscilograma tiene
1ms/div y 1V/div, por lo que la frecuencia de las señales es de
85Hz y 5 volts de amplitud.

View publication stats

Вам также может понравиться