TORRES INGENIERIA DE OBRA Y SERVICIOS ESPECIALES ARTICULO PRACTICO DE DISEÑO DE INVERSORES Y VFD MICROCONTROLADOS 1era Edición Título original: Introducción al diseño de INVERSORES de corriente y VARIADORES de FRECUENCIA con PICBASIC PRO DERECHOS RESERVADOS © ETI – Educación Técnica Informal / TORRES IO&Se e-mail: [email protected] Web: https://sites.google.com/a/educ.ar/eti/ Comodoro Rivadavia – Provincia del Chubut – Patagonia Argentina DERECHOS DE COPIA Esta documentación tiene derechos del autor y copia. Al adquirir este libro en formato digital o impreso, usted acepta los derechos de copia y se compromete a usar este material solamente con fines educativos y no comerciales… Cualquier otro uso no es permitido y representa una violación de los derechos de copia y propiedad intelectual. Prohibida la reproducción parcial o total de este libro por cualquier medio sea electrónico, mecánico, fotocopiado o cualquier otro método, ni con fines comerciales, salvo con autorización previa y por escrita del autor. – Denuncie a las personas que le venden este ejemplar y recupere su inversión. Recuerde que su contribución nos permite seguir impartiendo en forma gratuita, artículos y tutoriales en nuestra web. Todas las marcas que aparecen o se mencionan en este libro son registradas y pertenecen a sus propietarios. “Copyright ©2019-2020. “Alejandro Martin Torres - TORRES IO&Se”: El autor delega a la Organización ETI (Educación Técnica Informal – ex Escuela Virtual Técnica) la licencia para reproducir y comercializar este documento para los fines de promoción e incentivo de voluntades a la formación técnica autodidacta. Prohibida su venta y o reproducción con fines comerciales sin previa autorización del Autor. SOBRE LA PRECISIÓN DE ESTE TEXTO Se realizó un gran esfuerzo para asegurar la precisión de este texto y los experimentos, pero puede haber errores de tipografía. Si usted encuentra errores o algún tema que requiera información adicional, por favor infórmelo a [email protected], así podemos continuar mejorando la calidad de nuestra documentación. Diseño del control de FASE y POTENCIA para un VFD INVERTER El control de velocidad de motores, desde hace tiempo dejo de ser exclusivo de motores de corriente directa y como ya sabemos, hoy en día ya contamos con técnicas de control y equipos electrónicos que nos permiten aplicar un control de la velocidad en motores de corriente alterna. La aparición de rectificadores controlados, muestra que es mucho más eficiente que el empleo de reductores u otras técnicas de control de velocidad en máquinas electromecánicas, y ha hecho que adquiera una mayor importancia en motores de corriente alterna. En el presente artículo, veremos una breve introducción al diseño de un inversor de corriente, para luego adentrarnos al mundo de los variadores de frecuencia. ¿Cuál es la ventaja que del uso de un variador de frecuencia en lugar de un reductor? Un reductor industrial bajará la velocidad de giro del motor y así acondicionar su salida, pero también aumentará el par hasta el nivel necesario para que la máquina funcione correctamente. Es decir, las revoluciones por minuto del motor son menores al usar el reductor, pero el par aumenta en la misma proporción que se redujeron las revoluciones por minuto. Ésta es la misma conducta que presenta un transformador. Éste reduce la tensión y aumenta la corriente, así como el reductor de velocidad reduce las revoluciones por minuto y aumenta el par. Lo que es posible por medio de un variador de frecuencia, es que las revoluciones por minuto del motor se reducen, sin afectar el par, lo que no se puede lograr utilizando un reductor. En otras palabras, un variador de velocidad o drive regula y modifica la velocidad de los motores industriales para que sólo empleen la energía que demanda el proceso. Es muy probable que en este momento estés buscando información sobre cómo controlar los motores de tu proyecto y estén funcionando a velocidades variables. Una manera de resolver nuestra necesidad, es controlando de forma precisa la velocidad de los motores sin que esto genere un impacto en el rendimiento, pero ¿cómo? El método más eficiente para regular la velocidad de un motor eléctrico es por medio de un controlador especial que recibe el nombre variador de frecuencia (VFD, por sus siglas en inglés: Variable Frecuency Drive). El variador de frecuencia, igualmente conocido como convertidor de velocidad variable o variador de velocidad electrónico, es un dispositivo que controla la velocidad rotacional de un motor de corriente alterna regulando la frecuencia del voltaje aplicado al motor. A su vez modifica el voltaje aplicado al motor para evitar la saturación del flujo magnético con una elevación de la corriente que dañaría el motor. De tal manera que varía la velocidad y la acopla de los motores asíncronos, convirtiendo las magnitudes fijas de frecuencia y tensión de red en magnitudes variables. Originalmente los Drives, fueron desarrollados para mejorar los procesos industriales. Sin embargo, con el paso del tiempo han destacado por otras capacidades como proporcionar par y la velocidad; operar sin golpes mecánicos; realizar movimientos complejos y ajustar la tasa de producción. Actualmente su ventaja principal es la disminución del consumo de energía en la operación. El uso de un variador de frecuencia tiene la finalidad de controlar la velocidad de motores eléctricos. Estos dispositivos modifican la tensión alterna, lo que hace que frecuencia y amplitud cambien y, así, los procesos se optimicen y las cargas mecánicas de las máquinas se reduzcan. Las aplicaciones industriales de un variador de frecuencia son múltiples. Algunas de ellas pueden ser: bombas, compresores, ventiladores, cintas transportadoras y, por supuesto, el uso cada vez más frecuente en el proceso de climatización. Como ya mencioné al inicio del presente artículo practico, pretendo bridarles un breve pantallazo de que es y cómo funcionan los variadores de frecuencia con tecnología inverter, y en paralelo, mostrarle un diseño del control de FASE y DISPARO de un equipo microcontrolado, específico para empleo en procesos de climatización. Un variador de frecuencia está compuesto por los siguientes elementos: Circuito rectificador Recibe la tensión alterna y la convierte en continua por medio de un puente rectificador de diodos de potencia. Circuito filtro Consiste en un circuito LC que suaviza el rizado de la tensión rectificada y reduce la emisión de armónicos hacia la red. Inversor Convierte el voltaje continuo del circuito intermedio en uno de tensión y frecuencia variable mediante la generación de pulsos. Se emplea el sistema IGBT (Isolated Gate Bipolar Transistor) para generar los pulsos de voltaje de manera controlada. Circuito de control El circuito de control enciende y apaga los IGBT para generar los pulsos de tensión y frecuencia variables. Además, realiza las funciones de supervisión de funcionamiento monitoreando la corriente, voltaje, temperatura, etc. con interfaces amigables de fácil empleo. El controlador de dispositivo de variación de frecuencia está formado por dispositivos de conversión electrónicos de estado sólido. El diseño habitual primero convierte la energía de entrada CA en CC usando un puente rectificador. La energía intermedia CC es convertida en una señal cuasi-senoidal de CA usando un circuito inversor conmutado. El rectificador es usualmente un puente trifásico de diodos, pero también se usan rectificadores controlados. Debido a que la energía es convertida en continua, muchas unidades aceptan entradas tanto monofásicas como trifásicas (actuando como un convertidor de fase, un variador de velocidad). Tan pronto como aparecieron los interruptores semiconductores, fueron introducidos en los Variadores de Frecuencia, siendo aplicados en inversores de todas las tensiones disponibles. Actualmente, los transistores bipolares de puerta aislada (IGBTs)son usados en la mayoría de circuitos inversores. Las características del motor CA requieren una variación proporcional del voltaje cada vez que la frecuencia es variada. Por ejemplo, si un motor está diseñado para trabajar a 460 voltios a 60 Hz, el voltaje aplicado debe reducirse a 230 volts cuando la frecuencia es reducida a 30 Hz. Así la relación voltios/hertzios deben ser regulados en un valor constante (460/60 = 7.67 V/Hz en este caso). Para un funcionamiento óptimo, otros ajustes de voltaje son necesarios, pero nominalmente la constante es V/Hz es la regla general. El método más novedoso y extendido en nuevas aplicaciones es el control de voltaje por Modulación de la Anchura de Pulso (PWM). Como dato curioso, algunos fabricantes también llaman a los variadores de frecuencia como Inversores (Inverters) debido a que, como explica el diagrama anterior, éste es el componente principal del dispositivo. Ahora bien, hablemos un poco de aquellos motores eléctricos que se diferencian según su velocidad de giro... Nos encontramos con dos grandes grupos: Por un lado, los motores asíncronos y los motores síncronos. Los motores asíncronos son motores eléctricos donde el denominado rotor nunca llega a girar en la misma frecuencia con la que lo hace el mismo campo magnético del estator. O lo que es lo mismo, la corriente eléctrica del rotor necesaria para producir torsión es creada por inducción electromagnética del campo magnético de la bobina del estator y por tanto, desfasado cierto ángulo respecto la onda senoidal de la corriente alterna que alimenta el motor. En este sentido, destaca el motor asíncrono trifásico, formado por un rotor y un estator donde se encuentran las bobinas inductoras. Por otro lado, los motores síncronos son motores eléctricos, que igual que los asíncronos, convierten la potencia eléctrica en potencia mecánica de rotación. Una de sus principales cualidades es que trabajan a velocidad constante dependiendo de este modo de la frecuencia de la red y de otros aspectos propios de la máquina. A diferencia de los otros motores asincrónicos, su funcionamiento hace precisa drives de alimentación especiales. Dentro de la familia de los motores síncronos se distinguen a su vez otros como los motores asíncronos sincronizados y los motores de imán permanente. Y reciben ese nombre de motores síncronos porque la propia velocidad del rotor y la velocidad del campo magnético del estator son idénticas. Éstos se usan en máquinas grandes con carga variable y velocidad constante. Los dispositivos variadores de frecuencia operan bajo el principio de que la velocidad síncrona de un motor de corriente alterna está determinada por la frecuencia de AC suministrada y el número de polos en el estator, de acuerdo con la relación: RPM= (120.f) / p Donde: RPM = Revoluciones por minuto f = frecuencia de suministro AC (Hercio) p = Número de polos Las cantidades de polos más frecuentemente utilizadas en motores síncronos o en Motor asíncrono son 2, 4, 6 y 8 polos que, siguiendo la ecuación citada, resultarían en 3600RPM, 1800RPM, 1200RPM y 900RPM respectivamente para motores sincrónicos únicamente y a la frecuencia de 60Hz, y 3000RPM, 1500RPM 1000RPM y 750RPM para 50Hz. Dependiendo de la ubicación geográfica funciona en 50Hz o 60Hz. En los motores asíncronos las revoluciones por minuto son ligeramente menores por el propio asincronismo que indica su nombre. En estos se produce un desfase mínimo entre la velocidad de rotación (RPM) del rotor (velocidad "real" o "de salida") comparativamente con la cantidad de RPM del campo magnético (las cuales si deberían cumplir la ecuación arriba mencionada tanto en Motores síncronos como en motores asíncronos) debido a que sólo es atraído por el campo magnético exterior que lo aventaja siempre en velocidad (de lo contrario el motor dejaría de tener par en los momentos en los que alcanzase al campo magnético). Esa variación en el ciclo de trabajo hace subir o bajar el valor medio de la señal. La forma de variar la frecuencia básicamente consta de cambiar el ciclo de trabajo (tiempo ON y tiempo OFF en un período) de una onda cuadrada periódica, de tal forma que el valor medio de la tensión (el promedio) a lo largo del tiempo varíe entre V máximo y V mínimo. La velocidad con que variamos el ciclo de trabajo, o sea su valor medio, será la frecuencia de variación del valor medio. Esto físicamente se logra a través de "llaves electrónicas" de conmutación que son MOSFET o en algunos otros diseños, IGBT. Ambos dispositivos semiconductores cumplen la función de actuar como interruptores que al cerrarse y abrirse por medio de un software específico que veremos a continuación, conforman la onda cuadrada, que permite obtener la señal sinusoidal. Como primer ejemplo práctico para comprender como funciona el software (programa) del VFD, veremos un simple y practico diseño de un variador de frecuencia monofásico, con un microcontrolador 16F876A de microchip. A la hora de diseñar el hardware, pensamos el alcance que queríamos a futuro, y por ende, si bien se puede implementar 12F675 ya que este tiene ADC, entendí que este no era el adecuado ya que preferí sumarle un display LCD para tener más funcionalidades a futuro. Para el lenguaje de programación, se implementó PICBASIC Pro (PBP) y ASM, dado que algunas funcionalidades y control total del dispositivo a nivel hardware, el mejor lenguaje a implementar es el lenguaje de maquina (ASM). La señal de salida PWM del microcontrolador, es controlada en frecuencia (30-120Hz) y duty (0100%), y esta señal la tenemos en el pin 0 del puerto C. En esta salida le sumamos un filtro para obtener una señal con forma senoidal y es introducida en el amplificador operacional, configurado como inversor. Esta configuración nos dará como resultado una señal invertida en polaridad con respecto a la señal de entrada (puntos A y B), aunque puede ser mayor, igual o menor, dependiendo esto de la ganancia que le demos al amplificador en lazo cerrado. El filtro y los dos inversores, se implementan para tener el control de fase y disparo del driver (IR21XX); Hay que tener en cuenta que, si no tenemos un tiempo muerto dado entre disparo y disparo de ambos MOSFET, corremos el riesgo de poner en corto nuestra salida de potencia, si los disparos en un momento dado, ponen en conducción a los dos MOSFET en el mismo tiempo. Hasta este punto, podríamos decir que tenemos básicamente un simple inversor monofásico si apostamos a un simple programa donde la frecuencia del PWM de salida del microcontrolador sean 50Hz fijos; Pero realmente este no es nuestro propósito principal. Partiendo de la base de que la generación de un PWM de 50Hz no podemos realizarlo con los comandos que nos brinda el compilador del lenguaje e intérprete de programación, podríamos llegar a decir que se podría hacer por programación, más comúnmente llamado PWM por software, pero el problema está en que nuestro microcontrolador trabajara atendiendo cada línea de instrucción y no nos permitirá atender otras funcionalidades (leer el puerto analógico, imprimir en el display LCD, atender las ordenes de nuestro pulsadores del menú, etc), ya que estas ralentizan nuestro proceso y resultado final. Para sacarlos de toda duda, observemos el siguiente ejemplo práctico de cómo podríamos hacer nuestro oscilador de 50Hz por software: '**************************************************************** '* Proyecto: INVERSOR DC/AC. '* Autor: TORRES IO&Se '* Noticia: Copyright ©2020 ETI - [email protected] '* ® All Rights Reserved ETI (Educación Tecnica Informal) '* Fecha: 10/01/2020 '* Version: 1.0 '* Notas: Inversor 12Vcc-220Vac 600w – 50/60Hz '**************************************************************** define OSC 4 Defino el oscilador en 4Mhz TRISA = %11111111 ; config todo el portA como entrada TRISB = %00011111 ; config portB0 hasta portB5 como entrada, portB6y7 como salida TRISC = %00000000 ; config todo el portC como salidas DEFINE ADC_BITS 8 DEFINE ADC_CLOCK 3 DEFINE ADC_SAMPLEUS 50 DEFINE LCD_DREG PORTC DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTC DEFINE LCD_RSBIT 2 DEFINE LCD_EREG PORTC DEFINE LCD_EBIT 3 DEFINE LCD_BITS 4 DEFINE LCD_LINES 4 REF VAR byte bat var byte JV var word cen var word DUTY VAR WORD p var byte ev var byte LampFAULT var portB.5 G1 VAR PORTB.6 G2 VAR PORTB.7 LampON var portC.0 LampOFF var portC.1 swON var PORTB.0 swOFF var portb.1 p=0 ; Fija número de bits del resultado (5,8,10) ; Fije EL CLOCK (rc = 3) ; Se fija el número de microsegundos que el programa ; espera entre fijar el canal y comenzar la conversión análoga/digital. ; Defino que el bus del display LCD es por portB y arranca ; en portC.4 (portC.4-D4/portC.5-D5/portC.6-D6/portC.7-D7) ; Defino la salida del bit de control RS del LCD ; es en portC.2 ; Defino la salida del bit de control E del LCD ; es en portC.3 ; Defino que el bus de control es en 4 bit ; Defino que el display 16x2 es de 2 líneas ; variable A/D medir voltaje de salida ; variable A/D medir batería ; variable carga tiempo de low del ciclo ; variable carga tiempo de alto del ciclo ; Puerto salida para lámpara indicadora de FALLA ; Puerto salida para disparar GATE del MOSFET1 ; Puerto salida para disparar GATE del MOSFET2 ; Puerto de salida para lámpara indicadora ENCENDIDO ; Puerto de salida para lámpara indicadora APAGADO ; Puerto de entrada para pulsador ENCENDIDO ; Puerto de entrada para pulsador APAGADO ev=0 '****************************************************** INICIO: LCDOUT $fe,1 LCDOUT $fe,$80,"--TORRES IO&Se--" LCDOUT $FE,$C0,"INVERTER V.5" ;LCDOUT $fe,$90,"" ;LCDOUT $fe,$D0,"" pause 1000 LCDOUT $fe,1 STB: adcin 0,bat if bat>100 then p=0 Low LampFAULT endif if bat<100 then LCDOUT $fe,1 LCDOUT $fe,$80," ESTADO CRITICO " LCDOUT $FE,$C0," BATERIA BAJA!! " high LampFAULT pause 1000 LCDOUT $fe,1 goto STB endif LCDOUT $fe,$80,"Inverter en Modo" LCDOUT $FE,$C0,"STB" high lampOFF : low lampon cen=4200 DUTY=830 if swON=0 and p=0 then LCDOUT $fe,1 LCDOUT $fe,$80,"Inverter en Modo" LCDOUT $FE,$C0,"On" high lampon : low lampoff goto inversor endif ev=0 pause 200 goto stb INVERSOR: P=0 pauseus cen adcin 1,REF jv=bat*ref if jv<2500 or jv>2600 then gosub REGULAR HIGH G1 . pauseus 200 adcin 0,bat pauseus duty low G1 pauseus cen if swoff=0 then LCDOUT $fe,1 ****************************************************** ; En modo STAND BY, chequea el valor de la batería y si esta baja ; imprime mensaje. Si esta en tensión optima, prosigue… ; rutina de espera. ; valor de inicio 50/60hz ; valor de inicio 50/60hz ; apaga o enciende el inversor ; SUB RUTINA ESTADO COMO INVERSOR. ; mide muestra tensión de salida. ; parámetros de tensión ; activa gate1 . ; fija tiempo del ciclo alto. ; tiempo de ciclo bajo LCDOUT $fe,$80,"Inverter en Modo" LCDOUT $FE,$C0,"Off" pause 1500 goto stb endif if ref>200 and duty>3000 then gosub evento if bat<100 then p=1 if p=1 then LCDOUT $fe,1 LCDOUT $fe,$80,"Inverter en Modo" LCDOUT $FE,$C0,"Off(Proteccion)" low lampon high lampoff high lampfault pause 1500 goto stb endif if p=2 then ev=0 p=0 endif PAUSEUS cen adcin 1,REF jv=bat*ref if jv<2500 or jv>2600 then gosub regular HIGH G2 pauseus 200 adcin 0,bat PAUSEUS duty low G2 pauseus cen pauseus 100 GOTO INVERSOR REGULAR: if jv<2500 and DUTY<5030 then DUTY=DUTY+30 cen=cen-15 endif if jv>2600 and DUTY>30 then DUTY=DUTY-30 cen=cen+15 endif return EVENTO: p=2 ev=ev+1 if ev>4 then p=1 return end ; si sw=0 regresa a stb así apaga el osc ; para controlar sobrecargas y falta de ref.=1 ; resetea p y ev si se normaliza las codiciones de sobre excitación. ; centraliza el pulso en ; mide muestra tensión de salida. ; parámetros de tensión ; activa gate 2 ; fija tiempo del ciclo alto. ; regular valor de tensión de salida. ; disminuye el ciclo de trabajo ; centraliza el pulso ; aumenta el ciclo de trabajo EVENTO: ; cuenta ciclos de sobrecarga. ; si dura mucho la sobrecarga se protege. ; FIN DEL PROGRAMA A continuación, tenemos el correspondiente diagrama de circuito del INVERSOR para confeccionar y probar nuestro programa del microcontrolador… Prueben el programa, así como esta, y luego, para no dañar componentes de su hardware, dibujen esquema en ISIS Proteus e intenten sumar más funciones, para corroborar lo dicho anteriormente… Como podrán observar en el ejemplo anterior del inversor, el empleo del display es mínimo y no ralentiza el proceso, pero si queremos modificar el programa para poder tener una visualización real de la tensión de nuestra batería, más el control en tiempo real de algunas variables del proceso, notaremos que nuestra ondulación, nuestra señal de salida se deformara y nos acarrea un sinfín de problemas. Anteriormente, en el artículo que compartí en mi página escuela (ETI – Educación Técnica Informal) sobre PWM, les comenté que podíamos generar un PWM en segundo plano sin afectar el resto del programa del microcontrolador. Esto se logra configurando algunos TIMER e INTERRUPCIONES del microcontrolador, que vienen asociados al puerto CCP (Comparador – Captura - PWM). La limitación que nos impide implementar este puerto de función especial, es que según como juguemos con la configuración del prescaler y el valor del cristal asociado a nuestro micro (4-48Mhz), solo podremos obtener señales que oscilan entre 244Hz y 5Khz. La estructura del PROGRAMA básico para un VFD Para diseñar un VFD, requerimos tener control del hardware en tiempo real en todo momento; Es por ello que el programa anterior es obsoleto, ya que cuando queramos trabajar sobre los tiempos de disparo del ambos mosfet, se ralentizara o dejara de cumplir determinadas ejecuciones para atender la nueva orden impartida Para solucionar este problema, se opta por trabajar con una librería que nos permite generar una técnica de control SPWM (5Hz-200Hz), sin tener problemas de atender otras funciones de nuestro cuerpo del programa, ya que ésta prácticamente pareciera trabajar en segundo plano, pero la realidad es que trabaja con un PWM por software que asocia TIMER e INTERRUPCIONES lo cual lo tornan más eficiente y práctico para nuestro propósito. • preSETEO de variables • Limpieza de registros • Carga Valores iniciales INICIO LOOP • Lectura pulsadores • Imprimir LCD • Carga valores y genera SPWM • Vuelve a LOOP SPWM El manejo de la librería SPWM que adjuntamos al final del artículo y que deberemos adjuntar con nuestro programa al momento de compilar es simple; Como podemos observar en el grafico superior, nuestro programa debe de iniciar con una mínima configuración de los puertos. Luego, se debe generar una limpieza y puesta a cero de los valores por defecto en el arranque del microcontrolador, seguido de un pre-seteo de las variables y puertos donde tendremos la acción de salida (Solo configuración de puerto de salida y valores iniciales para las variables “Frecuencia” y “Duty”). Siempre este pre-seteo debe de estar seguido a las configuraciones principales de nuestro microcontrolador. El control de la frecuencia de salida, solo lo veremos cuando actualicemos los valores de determinadas variables. O sea, esto quiere decir que para cada acción de pulsador, se incrementa o decrementa la variable FREQ, pero esta no se verá reflejada en la salida asignada, hasta no tanto saltemos a la librería SPWM para actualizar las variables. Para este propósito, implementaremos “GOSUB StartSPWM”, y las modificaciones que realizamos en las variables, se refrescaran y veremos un cambio de comportamiento en nuestra salida. Así como podemos modificar la frecuencia de nuestra señal de salida, también podemos modificar nuestro ciclo de trabajo. Para ello, deberemos modificar los valores de la variable “DUTY”, y al igual que la variable de FRECUENCIA, para que este tenga efecto a la salida de nuestra señal, deberemos refrescar los valores de los registros implementando un salto a la librería como indicamos anteriormente… Veamos un sencillo ejemplo de cómo controlar un PWM de frecuencia variable con salida 30-100Hz '**************************************************************** '* Proyecto: EJEMPLO IMPLEMENTACION DE LIBRERÍA SPWM '* Autor: TORRES IO&Se '* Noticia: Copyright ©2020 ETI - [email protected] '* ® All Rights Reserved ETI (Educación Tecnica Informal) '**************************************************************** define OSC 4 TRISA = %11111111 ; config todo el portA como entrada TRISB = %11111111 ; config portB como entrada TRISC = %00000000 ; config todo el portC como salidas MAS_button VAR PORTB.0 ; botón mas MENOS_button VAR PORTB.1 ; botón menos CLEAR ' ---- SPWM Slow Software Pulse Width Modulation -------------SPWMpin var PORTC.0 ' Output Pin for SSPWM Include "SSPWM.INC" ' Output Pin must be Defined before Include file ' Include file must be after the Clear statement Freq = 30 DutyCycle = 50 gosub StartSPWM ' Set Frequency of SSPWM (word) ' Set Duty Cycle of SSPWM (byte) 0-100 ' Start SSPWM @ Freq/DutyCycle Loop: if MAS_button = 0 then Freq = freq + 10 if Freq > 100 then Freq=100 gosub StartSPWM endif if MENOS_button = 0 then Freq = freq - 10 if Freq < 30 then Freq=30 gosub StartSPWM endif pause 100 goto Loop END El Motor del VFD El motor usado en un sistema VFD es normalmente un motor de inducción trifásico. Algunos tipos de motores monofásicos pueden ser igualmente usados, pero los motores de tres fases son normalmente preferidos. Varios tipos de motores síncronos ofrecen ventajas en algunas situaciones, pero los motores de inducción son más apropiados para la mayoría de propósitos y son generalmente la elección más económica. Motores diseñados para trabajar a velocidad fija son usados habitualmente, pero la mejora de los diseños de motores estándar aumenta la fiabilidad y consigue mejor rendimiento del VFD. Los Variadores de Frecuencia en los procesos de Climatización: Los variadores de frecuencia cuentan con características que se pueden aprovechar en los sistemas de refrigeración y aire acondicionado para el ahorro de energía, así como en el control de procesos y la optimización de trabajos. Al utilizar un variador de frecuencia se tiene prácticamente un arrancador suave, lo que indica que se arranca desde una velocidad mínima hasta llegar a la velocidad máxima, sin hacer picos de corriente, con lo que se logra un ahorro adicional. Los beneficios de utilizar un variador de frecuencia en un sistema de refrigeración, la importancia del control de capacidad, sus beneficios en comparación con un sistema convencional, el uso de compresores para refrigeración y aire acondicionado, el uso en bombas de agua y el uso en ventiladores de evaporador y en ventiladores de condensación. Todas estas aplicaciones necesitan una variación de frecuencia en los motores para reducir el consumo de energía. La puesta en marcha de un variador de velocidad, el cual se acompaña del arrancador suave, es fundamental la correcta definición de su aplicación. “Cuando se arranca un motor a plena carga, se logra ocho veces más el amperaje nominal que éste tiene”, por ejemplo. También podemos observar que hay otro método para el arranque, el estrella delta, donde se puede arrancar una parte del bobinado y después se arranca la segunda parte, por lo que se reduce el consumo de energía. Ventajas de los variadores de frecuencia: _Corrección del factor de potencia del motor _Control mejorado de caudal y presión _Arranque suave de los motores _Eliminación de ruidos por vibraciones La única Desventaja que tenemos con los VFD, es que, en cuanto a su uso en compresores, si un sistema tiene tres compresores, no se le puede colocar un variador de frecuencia a cada compresor: “Es impráctico, costoso y no es necesario. Lo que se debe hacer es colocar el variador a un sólo compresor. Al encender el compresor con variador de frecuencia a su capacidad mínima, ya sea 25 o 30 Hz, dependiendo de qué compresor se tenga, vamos a acelerarlo hasta llegar a su capacidad máxima. Si el sistema requiere más capacidad térmica, en ese momento, se parte al mínimo la frecuencia y velocidad del compresor con variador y se enciende el compresor de velocidad fija; de esta manera, se logra esta capacidad con la mínima del compresor con variador”. Ahora, si todavía se necesita más capacidad térmica se va a acelerar el compresor hasta su capacidad máxima otra vez a 100 Hz, y si se requiere más capacidad, se enciende el tercer compresor. “Ya se tiene la carga del primer y segundo fijo, y la mínima del compresor con variador de frecuencia. Si se sigue requiriendo más calor vamos a llegar al cien por ciento de la velocidad y la capacidad del primer compresor, el variable, más la capacidad del segundo, más la capacidad del tercero”. Variaciones de carga de enfriamiento: La velocidad variable para los compresores se utiliza de manera más efectiva cuando tiene condiciones de carga razonablemente consistentes. Si en un minuto el compresor está avanzando y luego, el siguiente, está luchando para cumplir con el punto de ajuste de la temperatura seteada para un espacio, es probable que no sea una aplicación ideal para un VFD. Cuando el compresor ve variaciones menos dramáticas en la temperatura del espacio durante un período de tiempo más prolongado, el VFD se puede utilizar de manera más efectiva y lograr un ahorro de energía mucho mejor. El compresor es una máquina volumétrica y la demanda de refrigeración se cubre mediante la evaporación de una masa determinada. El rendimiento del compresor será siempre superior a cargas parciales y el consumo finalmente será siempre menor, trabajando con un variador de frecuencia. En general al trabajar a menos revoluciones todas las pérdidas por rozamientos serán menores en todos los elementos mecánicos (rodamientos, pérdidas de presión en tubería, etc.), las pérdidas en estos elementos no son lineales, sino cuadráticas y por ello finalmente el compresor consumirá menos. En pocas palabras, si desea aplicar soluciones de velocidad variable sobre el compresor de su equipo de refrigeración o aire acondicionado, solo hay que tener en cuenta que no puedes bajar muy abajo la velocidad porque necesitas una velocidad periférica mínima en el tornillo para garantizar sellado, porque si no recircula por el borde y el compresor no comprime... En el caso de los compresores a Pistón, requerimos una revolución mínima para que el sistema de refrigeración pueda cumplir su rol/función en el cilindro y partes mecánicas. En principio de 100hz hasta 30 Hz, tendremos un funcionamiento óptimo de nuestro compresor. Nuestro Diseño propuesto de un VFD INVERTER: Anteriormente citamos ejemplos de cómo confeccionar un simple VFD y un INVERSOR de corriente, ambos monofásicos. Si tu idea era modificar tu sistema de climatización y el compresor es trifásico, el siguiente ejemplo práctico, mostramos como construir nuestro propio Variador de Frecuencia Trifásico para procesos de control en Climatización. En el siguiente diagrama de circuito, contamos con varias etapas, a continuación, describiré cada una de ellas para una mayor comprensión del diseño. A_ Etapa RECTIFICADORA: Esta etapa consta de dos fuentes de alimentación de las cuales una de ellas es la que se encarga de proveer de energía a los sistemas de control microcontrolado del variador. Aplicara +5Volts para alimentar la etapa de control de frecuencia y la etapa de control de desfase y disparo, también se provee de +15volts a la etapa de acoplamiento, la otra es una fuente trifásica de onda completa no controlada, la cual rectifica las líneas trifásicas convirtiéndolas de AC a CC para posteriormente pasar por un filtro. La sumatoria de los filtros da como resultado un filtro total de 2100 microfaradios – 500Volts. La corriente máxima está determinada por los diodos de la fuente de poder. Para este caso particular, estaría entregando una corriente máxima de 12Amp, se debe de tener en consideración que el formato del diodo rectificador de 12 Amperes, puede ser del tipo rápido o ultra rápido. Después de esto, la energía proporcionada por la fuente trifásica es entregada a la etapa de los MOSFET. Una posible variación en este circuito es aplicando IGBT y un desacoplamiento de estos u los mosfet actuales del diseño, sumando opto acopladores NPN a la salida de nuestras compuertas NOR y atacando los drivers IR21XX, los cuales, tendrán la alimentación de una tercera fuente de 12Vcc que saldrá de del rectificador trifásico y que compartirá GND con los semiconductores de potencia. Con esta acción, vamos a prevenirnos de posibles interferencias ocasionados por ruidos u otras distorsiones que pueden afectar el normal comportamiento y funcionamiento de nuestro microcontrolador. B_ Etapa CONTROL DE FRECUENCIA: Para la etapa control de frecuencia, se seleccionó un microcontrolador 16F876A de microchip, el cual nos provee un puerto analógico para el sensor de temperatura (LM35), un puerto completo dedicado al control del display LCD y la salida de la señal SPWM, y un puerto dedicado al control del teclado de funciones. El firmware de este diseño, cuenta con el control de la frecuencia y duty de salida en dos modos: _MODO MANUAL: La salida de la señal SPWM, se controla desde las teclas de incremento y decremento de Frecuencia, y las teclas de incremento y decremento e incremento de Duty. _MODO AUTOMATICO: La salida de la señal SPWM, se controla en base a los parámetros configurados de trabajo por temperatura. O sea, se setea la Temperatura deseada del ambiente, y en base al sensado del sensor de temperatura, nos generara una salida que varía entre los 30-100Hz, según lo requiera el compresor para llevar el proceso al punto que deseamos. El firmware mencionado, es aplicable tanto para el diseño monofásico, como para el trifásico, ya que este solo trabaja como base de tiempo para las etapas de CONTROL DE DESFASE Y DISPARO C_ Etapa CONTROL DE DESFASE Y DISPARO: Esta etapa consta de un desplazador de registro (circuito integrado 74198) de 8 bits y seis compuertas NOR (circuito integrado 74LS27). El registro de desplazamiento genera un barrido en este caso de 6 bits. Cuando haya un pulso positivo enviado por la etapa de control de frecuencia, desplazara 1 bits en la salida desde QA hasta QF luego reiniciándose automáticamente para posteriormente volver a generar un nuevo barrido, para posteriormente ser desplazado como se describió anteriormente. Mientras que las 6 compuertas, generar el desfase y a la vez proporcionan los voltajes para poder excitar las entradas de la etapa de acoplamiento. D_ Etapa CONTROL DE DISPARO: El IR2101 tiene dos controles de salidas (el IR2130 tiene 6 y es ideal para este propósito) para el disparo de los semiconductores de potencia. En nuestro diseño, emplearemos 3 driver IR2101, de los cuales tres salidas van referenciadas a VS0, y tres manejadores flotantes capaces de trabajar con voltajes offset de hasta 600Volts positivos con respecto a VS0. Todas las salidas tienen lógica invertida, o sea, todas ellas van a positivo con su correspondiente 0.5Volts de entrada, LIN o HIN van a nivel bajo. La corriente de salida típica es de 250mA en el flanco de subida u 500mA en el flanco de bajada. El IR21XX cuenta cada integrado con una protección de UV y un offset que les permite un buen disparo de los dispositivos de potencia del lado alto. Una de las diferencias más notables que tendremos en cuanto a la selección de nuestro driver, es que el IR2130 respecto al IR2101, es que cuenta con una función extra (PIN FAULT) en uno de sus pines, y es la de marcarnos problemas de sobre corriente entre otras anomalías, poniendo en estado bajo sus salidas sin importar las señales de disparo HIN-LIN. Este pin de salida podemos implementar un LED y una resistencia para obtener una señal lumínica de fallo en la etapa de potencia, o bien, sumar un puerto de entrada de nuestro microcontrolador para que este detecte cuando tenemos problemas y lo indique en nuestro display LCD. Notas sobre el diseño: Para calcular y o verificar la frecuencia mínima y máxima que tenemos a la salida, se debe de tener en consideración que este variador de frecuencia trifásico, es de seis pasos, por consiguiente, la frecuencia mínima y máxima obtenida en cualquiera de las tres fases de salida del variador, se debe multiplicar por 6 para poder determinar el valor de la frecuencia real que tenemos en el compresor, que básicamente, es similar al que tenemos en la salida “OUT_SPWM” del microcontrolador PIC. Imagen de los desfase de las salidas LIBRERÍA SSPWM (Archivo .INC): '**************************************************************** '* Name : SSPWM.INC Slow Software PWM * '* Author : Darrel Taylor * '* Date : 5/1/2003 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** DEFINE INTHAND INT_CODE ' Tell PBP Where the code starts on an interrupt wsave VAR BYTE $20 SYSTEM '$20 Save location for the W register if in bank0 wsave1 VAR BYTE $A0 SYSTEM ' Save location for the W register if in bank1 wsave2 VAR BYTE $120 SYSTEM ' Save location for the W register if in bank2 wsave3 VAR BYTE $1A0 SYSTEM ' Save location for the W register if in bank3 ssave VAR BYTE Bank0 SYSTEM ' Save location for the STATUS register psave VAR BYTE Bank0 SYSTEM ' Save location for the PCLATH register Freq var word ' SPWM Frequency W1 var word ' Temporary variable W2 var word ' Temporary variable TP var word ' Temporary variable y var TP.lowbyte ' Temporary variable shared uS var word ' Time for 1 cycle in MicroSeconds uSdec var byte ' .1us digit ActuS var word ' Actual cycle time after integer math ActuSdec var byte ' Actual cycle time .1us digit Ticks var word ' # of Timer Ticks to = us PicOSC var byte Bank0 ' OSC value, Usable in PBP Prescaler var byte ' Timer1 Prescale value DutyCycle var byte ' As %, 0 - 100 0 = Always Off 100 = Always On TMR1_ON_TICKS var word Bank0 ' # of Tmr ticks for On Time TMR1_OFF_TICKS var word Bank0 ' # of Tmr ticks for Off Time TMR1_ON_VAL var word Bank0 ' # to load TMR1 for On Time TMR1_OFF_VAL var word Bank0 ' # to load TMR1 for Off Time DataFlags var byte Bank0 Valid var DataFlags.0 ' 1 if Freq is valid - Set by CalcSPWM: SPWMenabled var DataFlags.1 ' shows if SPWM is running or not SPWMstate var DataFlags.2 ' Current state of SPWM output high or low GIE var INTCON.7 PEIE var INTCON.6 TMR1IE var PIE1.0 TMR1ON var T1CON.0 goto GetOsc ' -----------------------------------------------------------------------asm INT_CODE if (CODE_SIZE <= 2) movwf wsave ; copy W to wsave register swapf STATUS,W ; swap status reg to be saved into W clrf STATUS ; change to bank 0 regardless of current bank movwf ssave ; save status reg to a bank 0 register movf PCLATH,w ; move PCLATH reg to be saved into W reg movwf psave ;6 ; save PCLATH reg to a bank 0 register endif btfss PIR1, TMR1IF ; is TMR1IF set? Timer1 Interrupt Flag GOTO NoTimerInt ; No. Bypass timer load btfss _Valid ; Is Freq valid? GOTO NoSPWM ; No. Halt SPWM btfss _SPWMenabled ; is Software PWM enabled? GOTO NoSPWM ; No. Halt SPWM ; Yes, then Set output and reload Timer1 btfss _SPWMstate ; Is Output High? GOTO TurnON ;9/15 ; No TurnOFF bcf _SPWMpin ; Set SPWMpin Low bcf _SPWMstate ; BCF T1CON,TMR1ON ; Turn off timer MOVF _TMR1_OFF_VAL,W ; 1 ADDWF TMR1L,F ; 1 ; reload timer with correct value BTFSC STATUS,C ; 1/2 INCF TMR1H,F ; 1 MOVF _TMR1_OFF_VAL+1,W ; 1 ADDWF TMR1H,F ; 1 BSF T1CON,TMR1ON ; 1 ; Turn it back on GOTO TimerDone ;12/27 TurnON bsf _SPWMpin ; Set on SPWMpin High bsf _SPWMstate ; bcf T1CON,TMR1ON ; Turn off timer MOVF _TMR1_ON_VAL,W ; 1 ADDWF TMR1L,F ; 1 ; reload timer with correct value BTFSC STATUS,C ; 1/2 INCF TMR1H,F ; 1 MOVF _TMR1_ON_VAL+1,W ; 1 ADDWF TMR1H,F ; 1 bsf T1CON,TMR1ON ; 1 ; Turn it back on GOTO TimerDone NoSPWM bcf T1CON,TMR1ON ; Turn off timer bcf _SPWMpin ; Idle SPWMpin Low TimerDone bcf PIR1, TMR1IF ; 1/28 ; Clear Timer1 Interrupt Flag NoTimerInt Movf psave,w ; Restore the PCLATH reg Movwf PCLATH swapf ssave,w ; Restore the STATUS reg movwf STATUS swapf wsave,f swapf wsave,w ; 6/34 ; Restore W reg Retfie ; Exit the interrupt routine endasm ' -----------------------------------------------------------------------StartSPWM: ' Set Freq and DutyCycle before calling low SPWMpin ' Set SPWMpin to Output and idle Low GIE = 1 PEIE = 1 TMR1H = 255 ' Load TMR1 with 65535, First tick will cause TMR1L = 255 ' an interrupt that will load TMR1_???_VAL SetSPWM: ' Set Freq and DutyCycle before calling if DutyCycle = 0 then StopSPWM if DutyCycle >= 100 then IdleHigh gosub CalcSPWM if Valid = 1 then SPWMenabled = 1 lookdown Prescaler,[1,2,4,8],y lookup y,[0,1,2,3],y y = (y << 4) + 1 TMR1_ON_VAL = 65535 - TMR1_ON_TICKS + 8 TMR1_OFF_VAL = 65535 - TMR1_OFF_TICKS + 8 TMR1IE = 1 T1CON = y ; Set Timer1 prescaler and turn Timer1 on else goto StopSPWM endif return StopSPWM TMR1IE = 0 TMR1ON = 0 low SPWMpin ' Idle output Low SPWMstate = 0 SPWMenabled = 0 return IdleHigh: ' Idle output High gosub StopSPWM ' First, stop the timer high SPWMpin ' Set output High return CalcSPWM: Prescaler = 1 Valid = 1 TMR1_ON_TICKS = 0 TMR1_OFF_TICKS = 0 W2 = 1000 W1 = W2 * W2 ' Load internal registers with 1,000,000 uS = Div32 Freq ' solves (1/Freq)*1000000 Full Cycle time in uS if uS = 65535 then Valid = 0 goto CalcDone endif uSdec = 0 if uS < 6550 then ' get .1uS value W1 = 10000 W1 = W1 * W2 ' 10,000,000 W1 = Div32 Freq uSdec = W1 dig 0 endif TryPrescaler: if uS < 6550 then W1 = uS * 10 + uSdec TP = Prescaler * 100 else W1 = uS TP = Prescaler * 10 endif if (PicOsc = 4) and (uSdec > 5) then W1 = W1 + 10 W2 = PicOSC * 10 / 4 Ticks = W1 * W2 Ticks = div32 TP TP = TP * 100 W1 = W1 * W2 W1 = div32 TP if Ticks /100 <> W1 then Prescaler = Prescaler * 2 if Prescaler > 8 then Valid = 0 goto CalcDone endif goto TryPrescaler endif W1 = Ticks * DutyCycle ' Calc # of Ticks for ON and OFF periods TMR1_ON_TICKS = div32 100 TMR1_OFF_TICKS = Ticks - TMR1_ON_TICKS CalcDone: return GetOsc: ' Retreive defined OSC value on Reset asm ifdef OSC MOVE?CB OSC, _PicOSC else MOVE?CB 4, _PicOSC endif endasm '**************************************************************** '**************************************************************** CONEXIONADO TIPICO BIBLIOGRAFIA: Variadores de Frecuencia – Jorge Fernando Lagos Núñez – INACAP Slow Software PWM (SSPWM) - Darrel Taylor Métodos para llevar a cabo la variación voltaje/frecuencia – apuntes Electrónica de potencia – UTN Design of a single-phase SPWM inverter application with PIC microcontroller -Yas ar Birbir (Department of Electric & Electronic Engineering, Technology Faculty, Marmara University, Turkey) -Kaner Yurtbasi (Marmara University, Institute for Graduate Studies in Pure and Applied Sciences Istanbul, Turkey) -Volkan Kanburoglu (Marmara University, Ataturk Faculty of Education, Istanbul, Turkey) Introducción al control de procesos con Picbasic PRO (PBP) – Curso de programación ETI (Educacion Tecnica Informal) Diseño de Inversor de corriente – Sergio Uasd Variadores de Frecuencia para compresores – www.danfoss.com Curso de Aire acondicionado Inverter – www.frionline.net Tecnología Inverter en sistemas de Climatización – ingemecanica.com Generación de ondas SPWM con Arduino para la excitación de Inversores – JP Andriach – UTN FRBB Maquinas Eléctricas – UTN FRM Como diseñar un variador de frecuencia – www.forosdeelectronica.com Generador de Pulsos variables (Frec y Duty) – Articulo Teórico y práctico ETI (Educacion Tecnica Informal) Automatización Temperatura Invernadero con LM35 – Articulo Teórico y práctico ETI (Educacion Tecnica Informal) Termómetro – Termostato con DS18B20 – Articulo Teórico y práctico ETI (Educacion Tecnica Informal)