Story Transcript
UNIVERSIDAD DE VIGO
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN
PROYECTO FIN DE CARRERA
IMPLEMENTACIÓN EN FPGA DE UN ALGORITMO DE MODULACIÓN VECTORIAL PARA CONVERTIDORES DE POTENCIA MULTINIVEL Y MULTIFASE APLICABLE A PROPULSIÓN ELÉCTRICA
Autor: Paula Campo Hortas Tutores: Luis Jacobo Álvarez Ruíz de Ojeda Óscar López Sánchez
CURSO 2006-2007
1
2
PROYECTO FIN DE CARRERA
IMPLEMENTACIÓN EN FPGA DE UN ALGORITMO DE MODULACIÓN VECTORIAL PARA CONVERTIDORES DE POTENCIA MULTINIVEL Y MULTIFASE APLICABLE A PROPULSIÓN ELÉCTRICA ALUMNO
Paula Campo Hortas TUTORES
Luis Jacobo Álvarez Ruíz de Ojeda Óscar López Sánchez
MIEMBROS DEL TRIBUNAL
PRESIDENTE
SECRETARIO
VOCAL
CALIFICACIÓN
Vigo, a ____ de _________de 2007
3
4
RESUMEN El presente Proyecto Fin de Carrera tiene como principal objetivo la implementación en una FPGA de un algoritmo de modulación multifase y multinivel aplicable a convertidores apropiados para sistemas de propulsión eléctrica de muy alta potencia, concretamente, en el campo de la propulsión en barcos eléctricos. La técnica de modulación empleada es la modulación por vector espacial [SVPWM (“Space Vector Pulse Width Modulation”)] multidimensional para convertidores electrónicos de potencia de cualquier número de niveles y fases. Dicha modulación se basa en la representación de un sistema multifase (P fases) de tensiones mediante vectores de dimensión P (la dimensión es acorde con el número de fases) ubicados en un espacio multidimensional, y en llevar a cabo una aproximación de dichos vectores mediante la integración en un único vector de los vectores que se encuentran en su entorno más próximo. Este algoritmo de modulación destaca por su eficacia y por su bajo coste computacional independientemente del número de niveles del convertidor. Además, no utiliza funciones trigonométricas ni tablas de búsqueda y es apropiado para implementaciones hardware en tiempo real. En este proyecto, la implementación del algoritmo se ha realizado mediante una FPGA de Xilinx montada sobre una placa de desarrollo de Digilent. Para realizar la implementación se ha utilizado la herramienta de Xilinx denominada Foundation ISE. El algoritmo se ha descrito mediante el lenguaje de descripción hardware VHDL. Para realizar la síntesis del código VHDL se ha empleado la herramienta XST de Xilinx y para realizar la verificación del funcionamiento del algoritmo mediante simulaciones, se ha utilizado la herramienta ModelSim XE III de Mentor Graphics.
5
PALABRAS CLAVE •
Convertidores de tensión.
•
FPGA.
•
Modulación vectorial.
•
Multinivel.
•
Multifase.
•
Propulsión eléctrica.
•
PWM.
•
SVPWM.
•
VHDL.
6
Agradecimientos A mis padres. Los debo mencionar en primer lugar por ser los primeros en todo. Sin lugar a duda, son las personas más importantes en mi vida y a las que más cosas tengo que agradecer. Quiero darles las gracias por el apoyo que me han dado desde el primer día de carrera. Gracias a sus constantes ánimos, gracias a la confianza depositada en mí, gracias por no haber faltado ni un solo día durante estos años. Sin vosotros nunca hubiese llegado aquí. Gracias.
A mi abuela, que sé que esperabas con mucha ansia que llegase este día. Espero que estés tan orgullosa de mí como yo de ti.
A mi familia. Por haberme apoyado en determinados momentos clave a lo largo de la carrera. Especialmente, mi hermano y mi abuelo Jesús.
A mis amigos. Otro punto fundamental en mi carrera. Qué sería de mí sin vosotros… De verdad, muchísimas gracias por vuestro apoyo y por los buenos momentos que me habéis hecho pasar. Gracias por estar ahí cada día para lo bueno y para lo malo. Gracias por hacerme disfrutar cada mañana desde el primer momento que entraba por la puerta de la facultad. Sin vosotros, no hubiese podido guardar los recuerdos tan bonitos que me llevo. Tras estos años, además de llevarme un título, me llevo unos amigos inolvidables. No creo que haya mayor recompensa que esa.
A mis niñas. Por estar siempre ahí y por haberme tolerado tantas épocas de exámenes.
Por último, quiero agradecer la ayuda que me han prestado para realizar este proyecto mis tutores Jacobo y Óscar. Gracias a ellos, he llevado a cabo esta difícil tarea.
7
8
A mis padres
9
10
ÍNDICE GENERAL 1. INTRODUCCIÓN Y OBJETIVOS…………...……………………………………15
2. CONVERTIDORES MULTINIVEL………..……………………………..………19 2.1. Introducción a los convertidores multinivel..………….………………………19 2.2. Topologías de los convertidores multinivel……………….………………..…21 2.2.1. Convertidores por enclavamiento de diodos………………………...…22 2.2.2. Convertidores de condensadores flotantes……………………………..23 2.2.3. Convertidores de puentes H con conexión en cascada………………....25 2.2.4. Equivalencias…………………………………………………………...27
3. ALGORITMOS DE MODULACIÓN…………..…………………………………29 3.1. Introducción……………….……………………...……………………………29 3.2. Modulación vectorial PWM……………..….…………………………………30 3.2.1. PWM por vector espacial para convertidores trifásicos…………….….30
4. ALGORITMO DE MODULACIÓN PWM POR VECTOR ESPACIAL MULTIFASE MULTINIVEL.........................................................………………..41 4.1. Introducción……………………………………………………………………41 4.2. Desarrollo del algoritmo…………………………………………………….…42 4.2.1. Formulación del algoritmo……………………………………………..42 4.2.2. Descomposición del algoritmo………………………………………....44 4.2.3. Algoritmo multifase de dos niveles…………………………………….46
5. IMPLEMENTACIÓN “HARDWARE” DEL ALGORITMO DE MODULACIÓN……………………………………………………………………51 5.1. Saturador……………………………………………………………………....55 5.2. Modulador de 6 fases y 5 niveles……………………………………………...57 5.3. Generador de secuencia………………………………………………………..84 5.4. Generador de salidas………………………………………………………....101
11
6. VERIFICACIÓN DEL FUNCIONAMIENTO DEL SISTEMA DE MODULACIÓN………………………………………………………………..…107 6.1. Simulaciones mediante Modelsim……………………………………………107 6.2. Pruebas en el prototipo de laboratorio………………………………………..119
7. CONCLUSIONES Y LÍNEAS FUTURAS………………………………………127 7.1. Líneas futuras………………………………………………………………...128
APÉNDICES………………………………………………………………………….131 A. Introducción a las FPGAs.……………………………….……………………131 B. Familia “Spartan 3” de FPGAs de Xilinx.…………………….………………139 C. Placa de desarrollo “S3” de Digilent basada en la FPGA XC3S200 de Xilinx……………………………………………………………………………….…163
BIBLIOGRAFÍA……………………………………………………………………173
12
13
14
1. INTRODUCCIÓN Y OBJETIVOS
La mayoría de los sistemas eléctricos de velocidad variable utilizan motores trifásicos. Sin embargo, puesto que todos estos sistemas incluyen un convertidor electrónico de potencia, el número de fases del motor puede ser más de tres. Las ventajas más importantes de usar un motor multifase en vez de uno trifásico son: •
Una mejora de la fiabilidad y una mayor tolerancia a fallos.
•
Mayor eficiencia.
•
Menor rizado y mayor densidad de par.
•
Menor potencia por fase, debido a una corriente por fase más baja sin necesidad de un aumento de la tensión.
•
Mayor modularidad.
•
Características del ruido mejoradas.
Por otra parte, la tecnología del convertidor multinivel se basa en la síntesis de una forma de onda de voltaje a partir de varios niveles de tensión continua. Cuando el número de niveles de tensión aumenta, la señal de tensión sintetizada a la salida tiene más escalones, produciendo una forma de onda que aproxima mejor la referencia. Las ventajas más importantes de usar un inversor multinivel son: •
Capacidad de manejar altas tensiones con dispositivos de voltaje limitado.
•
Baja distorsión armónica.
•
Menores pérdidas de conmutación.
•
Incremento de la eficiencia.
•
Buena compatibilidad electromagnética.
Aunque la tecnología multinivel, y las máquinas multifase se han estudiado ampliamente, parece haber poca investigación en la aplicación de estos convertidores multinivel a las máquinas multifase. Aquí se ha integrado un inversor multinivel con un motor multifase demostrando que combinaba las ventajas de ambas tecnologías. En un inversor en fuente de tensión, el mecanismo empleado para sintetizar la tensión de salida es la modulación. La técnica de modulación empleada determina el aprovechamiento de los recursos de su bus de continua, la calidad y linealidad de la tensión de salida, el rizado de la corriente, las perdidas de potencia de conmutación, etc. 15
La operación en modo conmutado de los convertidores electrónicos de potencia ha posibilitado la obtención de sistemas de alta eficiencia y elevada densidad de potencia, siendo la modulación por anchura de pulsos (PWM – Pulse Width Modulation) la técnica
básica de procesamiento de energía empleada en estos
convertidores. Fue en 1986 cuando Van der Broek [2] propuso una técnica de modulación avanzada conocida como modulación por vector espacial (SVM – Space Vector Modulation), desde entonces se ha extendido el uso de esta técnica en aplicaciones modernas de electrónica de potencia. La implementación digital de la modulación por vector espacial se basa en los siguientes pasos: •
La determinación de la posición del vector de referencia del sistema de conversión de potencia.
•
El cálculo del tiempo de aplicación de cada uno de los vectores generadores que aproximan la referencia.
•
La elección de la secuencia correcta de estos vectores.
•
La traducción de dichos tiempos en señales de disparo para los interruptores de potencia del convertidor.
La naturaleza relativamente compleja de estos algoritmos obliga al empleo de sistemas digitales de procesado de señal. El continuo incremento de la velocidad de conmutación de los transistores de potencia y el aumento de las prestaciones de los circuitos digitales de procesado de señal (DSP’s [DSP (“Digital Signal Processor”)] y FPGA’s) hace que la investigación en algoritmos de modulación, cada vez más rápidos y eficientes, sea un campo en continuo desarrollo. En este tipo de trabajos suelen emplear procesadores digitales de señal (DSP) para la implementación del algoritmo de control y del algoritmo de modulación del convertidor. Su empleo se extiende a sistemas con o sin neutro, con cargas no equilibradas, con terceros armónicos, etc. Sin embargo, en este proyecto, el algoritmo de modulación se implementará en una FPGA para descargar de dicha tarea al sistema en el que se implementará el algoritmo de control. La FPGA empleada pertenece a la familia de bajo coste “Spartan 3”, fabricada por Xilinx. Para el diseño del algoritmo se empleará la herramienta “Foundation ISE” de Xilinx para síntesis de sistemas digitales con FPGAs.
16
En este proyecto el algoritmo de control se implementará en un microprocesador Power-PC, con la ayuda de la herramienta DSPACE para ordenadores personales y una placa de desarrollo basada en un Power-PC más un DSP. Por tanto, podemos decir que los objetivos del presente proyecto son: •
Diseñar un algoritmo de modulación vectorial para un convertidor
continua-alterna de 5 niveles y 6 fases. •
Diseñar la implementación “hardware” del algoritmo anterior,
mediante el lenguaje de descripción “hardware” VHDL. •
Sintetizar e implementar la descripción en VHDL del algoritmo
mediante la herramienta “Foundation ISE” de Xilinx, para obtener el archivo necesario para programar el algoritmo en la FPGA elegida. •
Simular el funcionamiento del algoritmo mediante el programa
Modelsim. •
Comprobar el funcionamiento del algoritmo en una aplicación
real en el laboratorio. La comprobación se realiza conectando la placa de desarrollo basada en la FPGA al convertidor real.
17
SISTEMAS DE PROPULSIÓN ELÉCTRICA Los convertidores multinivel multifase son buenos candidatos para el uso en sistemas de propulsión de muy alta potencia, tales como la propulsión eléctrica de barcos. Para controlar la velocidad del barco, hay que controlar la velocidad del motor. Y para ello, es necesario un sistema de control de velocidad para poder inyectar corrientes de frecuencia variable. La figura 1.1 muestra el diagrama de bloques de control de velocidad típico para un motor de seis fases donde la diferencia entre la velocidad de referencia y la velocidad actual determina las corrientes del motor. Las tensiones de referencia del motor son generadas por el regulador de corriente basado en la diferencia obtenida entre las corrientes demandadas y las corrientes de referencia. El bloque modulador PWM generará las señales de control apropiadas para que sintetice esta referencia de tensión.
Figura 1.1. Arquitectura de control del sistema a diseñar.
El presente proyecto se ocupa del diseño y de la implementación del bloque PWM que se basa en un algoritmo de modulación por vector espacial, donde, a partir de las tensiones de referencia se generan las señales de disparo de los transistores que forman el convertidor.
18
2. CONVERTIDORES MULTINIVEL 2.1. Introducción a los convertidores multinivel Los convertidores multinivel en fuente de tensión ofrecen beneficios en aplicaciones de alta potencia, siendo la más importante la capacidad de sintetizar formas de onda de tensiones con
contenidos armónicos más bajos que los convertidores
CC/CA de dos niveles. La forma más fácil de entender los convertidores CC/CA multinivel consiste en considerarlos como sintetizadores de tensión. La tensión alterna de salida de valor elevado, se sintetiza a partir de diferentes niveles de tensión continua de entrada, de valor más pequeño, secuenciando adecuadamente el accionamiento de los interruptores del convertidor. Las características funcionales de los CC/CA multinivel le otorgan una serie de ventajas, así, la disposición de la tensión continua de entrada en múltiples niveles permite aumentar varias veces la tensión de trabajo del convertidor. El empleo de mayores tensiones permite aumentar la potencia del convertidor sin necesidad de incrementar la corriente, conteniendo las perdidas en conducción y, por tanto, mejorando el rendimiento del convertidor. Estos convertidores presentan frecuencias efectivas de conmutación a la salida más altas que los convertidores convencionales de dos niveles, ya que optimizando adecuadamente la estrategia de control, se puede reducir notablemente la frecuencia individual de conmutación de cada interruptor, lo que implica una disminución de las pérdidas de conmutación y el consiguiente aumento de la eficiencia. La tensión de salida obtenida con un convertidor CC/CA multinivel presenta un contenido armónico inferior a la obtenida con un convertidor CC/CA convencional de potencia equivalente; por último, mencionar que la corriente de entrada absorbida presenta una distorsión armónica baja. En definitiva, de modo general podría decirse que con los convertidores multinivel se consiguen mejores formas de onda de tensión y corriente de salida al aumentar el número de niveles de tensión continua. Otro punto a favor de las tecnologías multinivel es su contribución a la reducción de la polución armónica en la red, tan demandada en los últimos tiempos por gobiernos e instituciones, con el objeto de preservar la calidad de la red. Como inconvenientes de estos equipos convertidores está la necesidad de emplear un número elevado de interruptores, que incrementan la complejidad del sistema. Es necesario disponer de diferentes niveles de tensión continua de entrada, que 19
han de obtenerse mediante varias fuentes de tensión o bien mediante el empleo de condensadores. Dos factores, al margen de otros, se han mostrado como fundamentales en el desarrollo de la tecnología de los convertidores multinivel. Por un lado el avance de la tecnología de materiales semiconductores (IGBT’s, IGCT’s, etc.) han posibilitado la realización de convertidores multinivel con mejores prestaciones en potencia y frecuencia de conmutación. Por otro lado debido a la complejidad de los algoritmos de control y modulación de este tipo de convertidores ha sido fundamental el fuerte desarrollo experimentado por los sistemas digitales configurables y de proceso de señal (DSP’s, FPGA’s, PLD’s), cada vez con más capacidad de cálculo, mayor velocidad de proceso, elevado número de periféricos integrados y bajo coste.
Figura 2.1. Sistema de convertidor multinivel.
En la figura 2.1 se representa un convertidor multinivel donde el modulador determina el estado de los interruptores del convertidor. La figura 2.2 muestra las distintas formas de onda de la tensión que se obtienen cuando el número de niveles empleados es 2, 3, 5 y 9, respectivamente.
20
Figura. 2.2. Tensión de salida para distintos números de niveles.
2.2. Topologías de los convertidores multinivel Actualmente el desarrollo de los convertidores multinivel se centra en tres topologías básicas, aunque existen otras muchas: •
Convertidor por enclavamiento de diodos (Diode-Clamped Converter).
•
Convertidor con condensadores flotantes (Flying-Capacitor Converter).
•
Convertidor de puentes H con conexión en cascada (Cascade Full-Bridge
Converter).
CONVERTIDORES MULTINIVEL
CONVERTIDOR POR ENCLAVAMIENTO DE DIODOS
CONVERTIDOR CON CONDENSADORES FLOTANTES
CONVERTIDOR DE PUENTES H CON CONEXIÓN E N CA S CA D A
OTRAS TOPOLOGÍAS
Figura 2.3. Clasificación de los convertidores multinivel. El algoritmo de modulación diseñado funciona para cualquiera de estas topologías dadas, aunque en el laboratorio para las pruebas, como se explicará posteriormente, hemos utilizado un convertidor de puentes H con conexión en cascada. A continuación, vamos a mostrar la topología de cada tipo de convertidor junto con una tabla que nos proporcionará los niveles de tensión que se obtienen según las 21
señales de disparo que reciba. Tablas fundamentales para el desarrollo del algoritmo, pues nos proporcionarán las señales de disparo que se deben generar según el nivel de tensión que se quiera alcanzar.
2.2.1. Convertidores por enclavamiento de diodos Un convertidor por enclavamiento de diodos de n niveles divide el bus de continua por medio de n-1 condensadores produciendo n niveles de tensión. La figura 2.4 muestra una fase de esta topología para el caso de cinco niveles. En esta representación, la nomenclatura
Ti a
es usada para identificar los
semiconductores así como los posibles niveles lógicos que los interruptores pueden tomar (1=on y 0=off).
Figura 2.4. Topología de una fase de un convertidor por enclavamiento de diodos para cinco niveles
La tabla 2.1 muestra los posibles niveles, estado de los interruptores y las tensiones de salida correspondientes para el convertidor de la figura 2.4.
22
TABLA 2.1 Accionamiento de interruptores para el convertidor por enclavamiento de diodos de cinco niveles
sa
T1a
T2a
T3a
T4a
Vsa
Vsa (*)
0
0
0
0
0
0
1
1
0
0
0
VC1
2
1
1
0
0
VC1 + VC2
2Vdc
3
1
1
1
0
VC1 + VC2 + VC3
3Vdc
4
1
1
1
1
VC1 + VC2 + VC3 + VC4
4Vdc
0
Vdc
(*)VC = Vdc / i = 1, 2,3, 4 i
2.2.2. Convertidores de condensadores flotantes El nivel de tensión en este tipo de convertidores es similar al existente en el convertidor por enclavamiento de diodos. La tensión de fase de un convertidor de n niveles tiene a su vez n niveles de salida incluyendo el nivel de referencia, y la tensión de línea tiene (2n-1) niveles. La figura 2.5 muestra la estructura de una fase de esta topología para el caso de cinco niveles.
Figura. 2.5. Topología de una fase de un convertidor de condensadores flotantes para cinco niveles.
23
La tabla 2.2 muestra los posibles niveles, estado de los interruptores y las tensiones de salida correspondientes para el convertidor de la figura 2.5. TABLA 2.2 Accionamiento de interruptores en un convertidor de condensadores flotantes de cinco niveles.
sa
T1a
T2a
T3a
T4a
Vsa
0
0
0
0
0
0
1
1
0
0
0
VC a
Vsa (*) 0
Vdc
1
1
0
1
0
0
VC a − VC a
Vdc
VC a − VC a
Vdc
VC a − VC a
Vdc
2
1
0
0
1
0
1
3
1
0
0
0
1
2
4
2
1
1
0
0
3
VC a
2Vdc
2
2
1
0
1
0
VC a − VC a + VC a
2Vdc
VC a − VC a + VC a
2Vdc
VC a − VC a
2Vdc
3
2
1
0
0
1
2
4
2
0
1
1
0
3
3
2
0
1
0
1
0
0
1
1
1
2Vdc
VC a − VC a
2Vdc
VC a
3Vdc
3
2
4
3
1
1
1
1
VC a − VC a + VC a − VC a 4
2
1
0
1
2
3
3
1
1
0
1
VC a − VC a + VC a
3Vdc
VC a − VC a + VC a
3Vdc
VC a − VC a
3Vdc
VC a
4Vdc
4
3
1
0
1
1
3
4
3
0
1
1
1
2
4
4
1
1
1
1
2
1
1
4
(*)VC a = iVdc / i = 1, 2, 3, 4 i
24
2.2.3. Convertidores de puentes H con conexión en cascada (Cascade Full-Bridge Converter) Esta topología se basa en la conexión en serie de inversores monofásicos con fuentes de alimentación continua independientes. Dado que cada etapa puede generar tres tensiones a su salida (Vdc, 0, -Vdc), la suma de éstas genera una tensión de salida VFn que puede tomar cinco valores distintos (2 Vdc, Vdc, 0, -Vdc, -2 Vdc). La figura 2.6 muestra la estructura de una fase de esta topología para el caso de cinco niveles.
Figura 2.6. Topología de una fase de un convertidor de cinco niveles con puentes H con conexión en cascada
La tabla 2.3 muestra los posibles niveles, estado de los interruptores y las tensiones de salida correspondientes para el convertidor de la figura 2.6.
25
TABLA 2.3 Accionamiento de interruptores en convertidor de puentes H con conexión en cascada de cinco niveles.
sa
TLa1
TLa2
TRa1
TRa2
Vsa
Vsa (*)
−2
0
0
1
1
−Vdca 2 − Vdca 1
−2Vdc
−1
1
0
1
1
−Vdca 2
−Vdc
−1
0
1
1
1
−Vdca 1
−Vdc
−1
0
0
0
1
−Vdca 2
−Vdc
−1
0
0
1
0
−Vdca 1
−Vdc
0
1
1
1
1
0
0
0
1
0
0
1
−Vdca 1 − Vdca 2
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
−Vdca 2 − Vdca 1
0
0
0
0
0
0
0
0
1
1
1
0
1
Vdca 1
Vdc
1
1
1
1
0
Vdca 2
Vdc
1
1
0
0
0
Vdca 1
Vdc
1
0
1
0
0
Vdca 2
Vdc
2
1
1
0
0
Vdca 2 + Vdca 1
2Vdc
w1 (*)Vdcia = Vdc / i = 1, 2,3, 4
26
2.2.4. Equivalencia entre convertidores TABLA 2.4 Equivalencia entre el estado de los interruptores en un convertidor de condensadores flotantes y un convertidor de puentes H con conexión cascada Convertidor de condensadores flotantes
sa
T1a
T2a
T3a
T4a
0
0
0
0
0
−2
1
1
0
0
0
−1
1
0
1
0
0
−1
1
0
0
1
0
−1
1
0
0
0
1
−1
2
1
1
0
0
0
2
1
0
1
0
0
2
1
0
0
1
0
2
0
1
1
0
0
2
0
1
0
1
0
2
0
0
1
1
0
3
1
1
1
0
1
3
1
1
0
1
1
3
1
0
1
1
1
3
0
1
1
1
1
4
1
1
1
1
2
TLa1
TLa2
T R1
a
a
T R2
sa
Convertidor de puentes H con conexión cascada
27
28
3. ALGORITMOS DE MODULACIÓN
3.1. Introducción El objetivo de este apartado es mostrar una panorámica de las estrategias de conmutación multinivel más empleadas, centrándose en la modulación concreta empleada en nuestro caso. La elección de una técnica de modulación u otra depende de los factores que caractericen la aplicación, como son, entre otros: •
Nivel de potencia a controlar
•
Dispositivos semiconductores empleados
•
Requisitos de la carga
•
Características de la forma de onda de salida (distorsión,
amplitud, frecuencia, etc.) La figura 3.1 muestra una clasificación de las estrategias de conmutación empleadas en los convertidores multinivel, en función de la frecuencia de conmutación de los interruptores. Los objetivos principales de las estrategias de conmutación para convertidotes CC/CA son, aparte de regulación de la amplitud y frecuencia de salida, la minimización de los contenidos armónicos de la tensión de salida del inversor y el equilibrado de las tensiones instantáneas de las capacidades del convertidor, si la topología del convertidor así lo requiere.
Figura 3.1. Clasificación básica de los métodos de modulación multinivel.
29
3.2. Modulación vectorial PWM En este proyecto, se va a utilizar la técnica de modulación por ancho de pulso por vector espacial SVPWM (Space Vector Pulse Width Modulation) generalmente llamada modulación vectorial. Su principal característica es que se sustituye todo el sistema multifase por un solo vector en el que la amplitud de la onda de tensión queda reflejada en el módulo del vector y la frecuencia queda reflejada en su velocidad de giro. Esto permite emplear dicho vector para estudiar tanto los regímenes estacionarios como los regímenes dinámicos en dichos sistemas. La modulación vectorial o SVPWM de convertidores en fuente de tensión VSC (Voltage Source Converter) constituye una poderosa herramienta para el desarrollo y control de los convertidores de continua a alterna (inversores) y de los convertidores de alterna a continua (rectificadores). La modulación basada en los vectores espaciales de tensión SVPWM es bien conocida y ampliamente utilizada en convertidores CC/CA convencionales (que son los trifásicos-multinivel). Si bien, en sistemas multifase su aplicación está poco extendida debido a la complejidad de los algoritmos SVPWM clásicos. En la modulación por vector espacial cada uno de los posibles estados del convertidor se representa mediante un vector de tensión, y el conjunto de todos estos vectores de estado configura el diagrama vectorial de tensiones del convertidor. La modulación SVPWM multifase usa vectores de dimensión superior a tres, difíciles de representar sobre el plano. Por tanto, para hacer una explicación más intuitiva y para una mejor comprensión, vamos a proceder a la explicación de los conceptos básicos de la modulación vectorial para el caso de los convertidores trifásicos.
3.2.1. PWM por vector espacial para convertidores trifásicos. A. Principios básicos de la modulación por vector espacial La técnica de modulación por vector espacial se basa en la representación del sistema trifásico de tensiones de referencia por medio de un vector o fasor espacial, el cual gira con la misma velocidad angular que los vectores que lo definen. Sea un sistema trifásico de tensiones figura 3.2, donde se cumplen las siguientes igualdades:
30
Va = V sen( w1 ⋅ t ) V = V sen( w ⋅ t − 120º ) b
1
(3.1)
Vc = V sen( w1 ⋅ t − 240º )
Figura. 3.2
Se define el vector espacial de este sistema trifásico por la expresión (3.2). 2 V = ⋅ (Va + aVb + a 2 ⋅ Vc ) 3
(3.2)
2 j ⋅ ⋅π 3
a=e El vector espacial queda definido en el plano por su componente sobre el eje real Vα , y su componente sobre el eje imaginario Vβ , figura 3.3.
Figura 3.3
La actuación sobre los transistores del rectificador se hará de tal forma que las tensiones de entrada al mismo, Va , Vb , Vc , sigan a las tensiones de referencia Va* , Vb* , Vc* Tanto el sistema trifásico de tensiones de entrada como de tensiones de referencia, puede ser representado por el vector espacial correspondiente V o V * .
31
Este principio básico, es igualmente aplicable a rectificadores e inversores trifásicos tanto en fuente de corriente como en fuente de tensión. En la modulación clásica se dispone de tres referencias, una por fase y se controlan los interruptores de cada una de las ramas de forma independiente a los de las otras. En un convertidor trifásico, un cambio en una rama del puente afecta a la tensión de las otras dos ramas. Con la modulación clásica ésta situación ni sus consecuencias son tenidas en consideración, ya que cada rama conmuta de forma independiente con respecto a las otras dos. Como consecuencia de lo expuesto anteriormente, sería interesante analizar el sistema trifásico de referencia en su conjunto y no como tres sistemas monofásicos independientes. Con el control por vector espacial se controlan las tres ramas conjuntamente a partir de la posición del vector espacial de referencia. Una vez determinado el vector espacial de referencia, y dependiendo del estado presente de los interruptores se actúa sobre dichos interruptores.
B. Modulación por vector espacial en un convertidor en fuente de tensión. En la figura 3.4 se presenta un convertidor en fuente de tensión trabajando como inversor.
Figura 3.4
Dependiendo del estado de los dispositivos de potencia (corte o saturación), se pueden presentar ocho situaciones diferentes, figura 3.5. Se ha representando el estado de los transistores de una rama por medio de una variable binaria δi (i = a, b, c), de forma tal que cuando el transistor superior de la rama i está en saturación δi = 1, cuando el transistor inferior de la rama i está en saturación
32
δi=0. Teniendo en cuenta la variable binaria δi que define el estado de una rama y la figura 3.5, en la tabla 3.1 se muestra el estado del inversor en función de δi. A partir del inversor representado en la figura y teniendo presente la definición de la variable δi se obtienen las siguientes expresiones. Van = δ a ⋅ Vdc + VNn Vbn = δ b ⋅ Vdc + VNn
(3.3)
Vcn = δ c ⋅ Vdc + VNn Para un sistema equilibrado de tensiones se tiene: Van + Vbn + Vcn = 0 = (δ a + δ b + δ c ) ⋅ Vdc + 3VNn (3.4) A partir de (3.4) se obtiene (3.5). 1 VNn = − ⋅ (δ a + δ b + δ c ) ⋅ Vdc (3.5) 3 A partir de las ecuaciones obtenidas anteriormente la tensión de entrada por fase del convertidor se expresa en (3.6). 1 Van = (δ a − ⋅ (δ a + δ b + δ c )) ⋅ Vdc 3 1 Vbn = (δ b − ⋅ (δ a + δ b + δ c )) ⋅ Vdc 3 1 Vcn = (δ c − ⋅ (δ a + δ b + δ c )) ⋅ Vdc 3
(3.6)
Tabla 3.1
Estado del inversor
Valor de [δ a , δ b , δ c ]
1
[δ a , δ b , δ c ] = [1, 0, 0]
2
[δ a , δ b , δ c ] = [1,1, 0]
3
[δ a , δ b , δ c ] = [0,1, 0]
4
[δ a , δ b , δ c ] = [0,1,1]
5
[δ a , δ b , δ c ] = [0, 0,1]
6
[δ a , δ b , δ c ] = [1, 0,1]
7
[δ a , δ b , δ c ] = [1,1,1]
8
[δ a , δ b , δ c ] = [0, 0, 0]
33
Figura 3.5
En la tabla 3.2 se representa el valor de la tensión de fase de entrada Va , Vb , Vc , para cada uno de los ocho posibles estados del rectificador; también se obtienen las componentes sobre el eje real e imaginario del vector espacial Vα, Vβ . La relación que liga las componentes real e imaginaria del vector espacial con las componentes trifásicas viene dada por la transformación de Clarke (3.7).
1 1 − Vα 2 2 ⋅ = 3 0 3 Vβ 2
1 V a 2 ⋅ Vb 3 V − 2 c −
(3.7)
34
Tabla 3.2
Estado del inversor
Patrón de conmutación [δ a , δ b , δ c ]
Van
Vbn
Vcn
1
[δ a , δ b , δ c ] = [1, 0, 0]
2 ⋅ Vdc 3
1 − ⋅ Vdc 3
1 − ⋅ Vdc 3
2
[δ a , δ b , δ c ] = [1,1, 0]
1 ⋅ Vdc 3 1 − ⋅ Vdc 3 2 − ⋅ Vdc 3
1 ⋅ Vdc 3 2 ⋅ Vdc 3 1 ⋅ Vdc 3
2 − ⋅ Vdc 3 1 − ⋅ Vdc 3 1 ⋅ Vdc 3
1 − ⋅ Vdc 3 2 − ⋅ Vdc 3 0
2 ⋅ Vdc 3 1 ⋅ Vdc 3 0
0
0
3
[δ a , δ b , δ c ] = [0,1, 0]
4
[δ a , δ b , δ c ] = [0,1,1]
5
[δ a , δ b , δ c ] = [0, 0,1]
7
[δ a , δ b , δ c ] = [1,1,1]
1 − ⋅ Vdc 3 1 ⋅ Vdc 3 0
8
[δ a , δ b , δ c ] = [0, 0, 0]
0
6
[δ a , δ b , δ c ] = [1, 0,1]
Vα
Vβ
0
2 ⋅Vdc 3 Vdc
Vdc
6
2
−
−
Vdc
Vdc
6
2 0
2 ⋅Vdc 3 V − dc 6 Vdc 6 0 0
−
Vdc
−
Vdc
2 2 0 0
Los ocho posibles estados del inversor son representados en el diagrama vectorial de la figura 3.6, las componentes del vector espacial sobre el eje real e imaginario están detalladas en la tabla 3.2. Se puede apreciar que hay dos vectores nulos correspondientes a los estados siete y ocho del convertidor, además hay seis vectores no nulos que forman los ejes del hexágono, cuyo valor en módulo con la transformación de Clarke elegida viene dada por la siguiente ecuación:
V =
2 ⋅Vdc 3
(3.8)
Los ocho vectores son denominados vectores espaciales básicos. Los seis vectores no nulos definen seis sectores cada uno de ellos de 60º.
35
Figura 3.6
El objetivo de la modulación por vector espacial es aproximar el vector tensión de referencia por una combinación de los ocho vectores básicos que están definidos por los ocho posibles estados del convertidor. La modulación óptima se obtendrá cuando se consiga aproximar al máximo la tensión de entrada con su componente fundamental. Ésto se consigue cuando se cumplan los siguientes puntos: •
El periodo de conmutación es mucho menor que el periodo de la
componente fundamental. •
Únicamente se utilizan los vectores básicos adyacentes al vector
de referencia. •
La secuencia de vectores básicos tendrá un orden adecuado para
minimizar el número de conmutaciones de los transistores. Sea el sistema trifásico de tensiones de referencia Va* , Vb* , Vc* , cuyo vector espacial es el vector V * de la figura 3.7. En el instante analizado el vector espacial se encuentra en el sector I formando un ángulo α con el vector básico V1, tal como se indica en la figura 3.13. En esta situación y para cumplir con los puntos anteriormente enumerados, la secuencia de vectores básicos en un periodo partiendo de un vector básico nulo ha de ser: V8 , V1 , V2 , V7 , V 2 , V 1 , V 8 .
36
Figura 3.7
En la figura 3.8 se representa el patrón de conmutación [δa, δb, δc] correspondiente al vector V * en esta situación en función del tiempo para un periodo de conmutación.
Figura 3.8
En la tabla 3.3 se expresan los estados del rectificador, los vectores básicos asociados a cada uno de estos estados y la duración de los mismos para la mitad del periodo de conmutación.
37
Tabla 3. 3. Correspondiente al sector I
Estado del inversor 8
Vector básico
Duración
V8
T0 / 2
1
V1
T1
2
V2
T2
7
V7
T0 / 2
Asumiendo que la frecuencia de conmutación es mucho mayor que la frecuencia a la que gira el vector espacial, se puede asumir que durante un periodo de conmutación el vector espacial mantiene constante su posición. En esta situación el valor medio del vector espacial se puede expresar en función de los vectores básicos (3.9), donde se utiliza únicamente la mitad del periodo de conmutación.
V* =
T T 1 ⋅ (V8 ⋅ 0 + V1 ⋅ T1 + V2 ⋅ T2 + V7 ⋅ 0 ) (3.9) T 2 2 ( ) 2 Teniendo en cuenta que V8 y V7 son vectores nulos, la ecuación anterior se puede
expresar de la siguiente manera. V* =
1 ⋅ (V1 ⋅ T1 + V2 ⋅ T2 ) (3.10) T ( ) 2 Proyectando los vectores básicos y el vector de referencia sobre los ejes alfa y
beta, la ecuación anterior se convierte en
V * ⋅ cos α ⋅
T 2 2 = ⋅ Vdc ⋅ T1 + ⋅ Vdc ⋅ cos(60º ) ⋅ T0 2 3 3
T 2 = ⋅ Vdc ⋅ s en(60º ) ⋅ T2 int eg 2 3 vr = vi + v f / vi = integ(vr ) ∈ ℤ P
V * ⋅ senα ⋅
V * ⋅ cos α ⋅
T 2 2 = ⋅ Vdc ⋅ T1 + ⋅ Vdc ⋅ cos(60º ) ⋅ T2 2 3 3
(3.11)
T 2 V ⋅ senα ⋅ = ⋅ Vdc ⋅ s en(60º ) ⋅ T2 2 3 *
Despejando T1 y T2 se obtiene
38
T1 =
T2 =
T0 =
V* 2 ⋅ Vdc 3 V*
⋅
T se n(60º −α ) ⋅ 2 se n(60º )
T se n(α ) ⋅ ⋅ 2 2 ⋅ se n(60º )
(3.12)
2 ⋅V 3 dc Y finalmente T0 es igual a T − T1 − T2 2
(3.13)
39
40
4. ALGORITMO DE MODULACIÓN PWM POR VECTOR ESPACIAL MULTIFASE MULTINIVEL Una vez vistos los principios básicos sobre la modulación vectorial para convertidores de potencia, procedemos a describir en el presente capítulo el algoritmo de modulación que será implementado físicamente mediante un dispositivo de lógica programable FPGA.
4.1. INTRODUCCIÓN La mayoría de los sistemas eléctricos de velocidad variable utilizan motores trifásicos. Sin embargo, puesto que todos estos sistemas incluyen un convertidor electrónico de potencia, el número de fases del motor puede ser más de tres. Las ventajas más importantes de usar un motor multifase en vez de uno trifásico son: •
Una mejora de la fiabilidad y una mayor tolerancia a fallos.
•
Mayor eficiencia.
•
Menor rizado y mayor densidad de par.
•
Menor potencia por fase, debido a una corriente por fase más baja sin necesidad de aumentar la tensión.
•
Mayor modularidad.
•
Características del ruido mejoradas.
Por otra parte, la tecnología del convertidor multinivel se basa en la síntesis de una forma de onda de voltaje a partir de varios niveles continuos de tensión. Cuando el número de niveles de tensión aumenta, la señal de tensión sintetizada a la salida tiene más escalones, produciendo una forma de onda que aproxima la referencia. Las ventajas más importantes de usar un inversor multinivel son: •
Capacidad de manejar altas tensiones con dispositivos de voltaje limitado.
•
Baja distorsión armónica.
•
Menores pérdidas de conmutación.
•
Incremento de la eficiencia.
•
Buena compatibilidad electromagnética.
41
Aunque la tecnología multinivel, y las máquinas multifase, se han estudiado ampliamente, parece haber poca investigación en la aplicación de estos convertidores multinivel a las máquinas multifase. Recientemente ha sido demostrado que la integración de un inversor multinivel con un motor multifase combina las ventajas de ambas tecnologías. El algoritmo implementado en el presente proyecto es un algoritmo multidimensional SVPWM para convertidores multifase multinivel. Este algoritmo está formulado en un espacio multidimensional y se puede utilizar con convertidores con cualquier número de niveles o fases. Es importante destacar que el coste de cálculo del método es bajo e independiente del número de niveles del convertidor. Además, no utiliza funciones trigonométricas ni tablas de búsqueda y es apropiado para implementaciones hardware en tiempo real. La técnica propuesta optimiza la secuencia de conmutación minimizando el número de conmutaciones en sistemas de multifase multinivel. El algoritmo propuesto ha sido probado con éxito tanto por simulación como usando un prototipo de laboratorio como comprobaremos en un posterior capítulo analizando los resultados obtenidos de las pruebas. Es importante destacar que este es el primer algoritmo SVPWM propuesto para sistemas multifase multinivel apropiado para implementaciones en tiempo real.
4.2. DESARROLLO DEL ALGORITMO 4.2.1. Formulación del algoritmo Debido al hecho de que los estados de conmutación de cualquier topología de convertidor de potencia es un conjunto discreto de estados, el SVPWM se utiliza para aproximar un vector de tensión de referencia Vr por medio de una secuencia de vectores espaciales Sl = {Vg1,Vg 2, ..., Vgl } durante cada ciclo de modulación. Para lograr una síntesis apropiada del vector de referencia, cada vector generador Vgk debe ser aplicado durante un intervalo Tk de acuerdo con la siguiente ley de modulación: l
Vr = ∑ Vgk Tk
(4.1)
k =1
donde la suma de los intervalos debe ser igual al periodo de modulación T: l
∑T k =1
k
=T
(4.2)
42
El vector de referencia indica la tensión de referencia para cada una de las fases del convertidor, mientras que cada vector generador indica el estado de conmutación de cada fase del convertidor. T
Vr = Vr1 , Vr2 ,..., VrP ∈ ℝ P T
Vgk = Vgk1 , Vgk2 ,..., VgkP ∈ ℝ P
(4.3) (4.4)
Por lo tanto, el vector de referencia y los vectores generadores pertenecen al espacio multidimensional ℝ P , donde P es el número de fases del convertidor. En la mayoría de los convertidores multinivel más habituales, tales como el convertidor por enclavamiento por diodos, el convertidor de condensadores flotantes o los convertidores de puente H en cascada, el nivel de salida de cada fase Vg es un múltiplo entero del escalón de tensión VDC . VDC = nVDC / n ∈ ℤ
(4.5)
Por lo tanto, los vectores y los tiempos de conmutación se pueden escalar usando el paso de tensión y el período de conmutación respectivamente para adimensionalizar las ecuaciones (7.1) y (7.2): Vr ∈ ℝP VDC
vr =
vgk =
Vgk VDC
tk =
∈ ℤP
Tk T
(4.6)
(4.7)
(4.8)
Es importante destacar que los nuevos vectores generadores adimensionales vgk pertenecen al espacio vectorial ℤ P . Sustituyendo las expresiones anteriores en las ecuaciones (4.1) y (4.2), la ley de modulación puede ser rescrita en términos de las nuevas variables adimensionales como: l
vr = ∑ vgk tk
(4.9)
k =1
l
∑t k =1
k
=1
(4.10)
Si se expresan los vectores de referencia y de conmutación como sigue: 43
vr = v1r , vr2 ,..., vrP
T
2 vgk = v1gk , vgk ,..., vgkP
(4.11) T
(4.12)
Entonces las ecuaciones (4.9) y (4.10) pueden ser rescritas en forma matricial como:
1 1 1 1 vr vg 1 v 2 = v 2 r g1 ⋮ ⋮ P v P vr g 1
1 vg 12 vg 22 ⋮ vg 2P
⋯ 1 t ⋯ vg 1l 1 t ⋯ vg l2 2 ⋮ ⋱ ⋮ t P ⋯ vg l l
(4.13)
El sistema anterior de ecuaciones lineales constituye la ley de modulación, la cual debe ser resuelta por el algoritmo multifase multinivel SVPWM. La solución a este sistema incluye tres pasos principales: 1.
Rellenar de forma adecuada la matriz de coeficientes con números enteros.
2.
Calcular los tiempos de conmutación resolviendo el sistema lineal
3.
Extraer la secuencia de vectores espaciales a partir de los coeficientes de la matriz.
El algoritmo multinivel SVPWM puede ser simplificado mediante su descomposición en la suma de un desplazamiento y un sistema de dos niveles SVPWM con el mismo número de fases.
4.2.2. Descomposición del algoritmo Descomponiendo el vector de referencia en la suma de su parte entera y su parte decimal:
vr = vi + v f / vi = integ(vr ) ∈ ℤ P
(4.14)
44
El nuevo vector vi pertenece al mismo espacio ℤ P que los vectores generadores ( vgk ), por lo que podría ser sintetizado directamente con uno de ellos. La parte decimal de vr todavía pertenece al espacio ℝ P y no se puede sintetizar directamente mediante un solo vector generador ( vgk ), sino que ha de ser generado como una secuencia de vectores, pero teniendo en cuenta que ahora las componentes del vector de referencia están acotadas en el intervalo [0, 1). Por otra parte, desplazando todos los vectores de conmutación la distancia dada por vi se obtiene un nuevo sistema de vectores de conmutación: vdk = vgk − vi
(4.15)
Expresando estos vectores como: vi = vi1 , vi2 ,..., viP
T
v f = v1f , v 2f ,..., v Pf
(4.16)
T
vdk = v1dk , vdk2 ,..., vdkP
(4.17) T
(4.18)
Y substituyendo la ecuación (4.15) en (4.13), se obtiene la nueva expresión para la ley de modulación:
1 0 1 1 1 1 vr vi vd 1 v 2 = v 2 v 2 r i d1 ⋮ ⋮ ⋮ P P v P vr vi d 1
1 ⋯ 1 t1 vd 12 ⋯ vd 1l t vd 22 ⋯ vd l2 2 ⋮ ⋮ ⋱ ⋮ t vd 2P ⋯ vd lP l
(4.19)
Finalmente escribiendo la ecuación (6.14) como:
1 0 1 1 1 v1 vr vi f v 2 = v 2 + v 2 r i f ⋮ ⋮ ⋮ P P P vr vi v f
(4.20)
Y comparando las ecuaciones (4.19) y (4.20) se obtiene la siguiente relación entre la parte decimal de la referencia y los vectores de conmutación desplazados:
45
1 1 1 1 v f vd 1 v 2 = v 2 f d1 ⋮ ⋮ P P v v f d 1
1
⋯
vd 12 ⋯ vd 22 ⋯ ⋮ ⋱ vd 2P ⋯
1 t1 vd 1l t2 vd l2 ⋮ ⋮ t vd lP l
(4.21)
Este nuevo sistema de ecuaciones tiene la misma forma que la ley general modulación (4.13). Pero, en este caso, las componentes del vector v f están acotadas al intervalo [0, 1) y, por lo tanto, sólo el subconjunto de vectores generadores con los componentes cero o uno es suficiente para realizar la aproximación de la referencia. Consecuentemente, esta nueva ecuación representa un modulador de dos niveles donde el vector de referencia es v f y el campo de vectores generadores es el sistema de vectores generadores vdk desplazado. Resumiendo, la ecuación (4.19) demuestra que un modulador SVPWM multifase multinivel se puede realizar a partir de la suma de un desplazamiento y de un SVPWM de dos niveles con el mismo número de fases. La figura 4.1 muestra un diagrama de bloques del modulador implementado.
Figura 4.1. Diagrama de bloques del SVPWM multifase multinivel
4.2.3. Algoritmo multifase de dos niveles Una vez que se ha descompuesto el problema, el algoritmo multifase de dos niveles de SVPWM ha de cumplir la ley de modulación dada en (4.21). Para obtener un sistema exactamente determinado de ecuaciones lineales, la matriz de coeficientes de
46
esa ley de modulación debe ser una matriz cuadrada. Por lo tanto, la longitud de la secuencia del vector de conmutación Sl es: l = P +1
(4.22)
Y el sistema lineal particular que ha de ser resuelto es el siguiente:
1 1 1 1 v f vd 1 v 2 = v 2 f d1 ⋮ ⋮ P P v v f d 1
1
⋯
1 d2 2 d2
v
⋯
v ⋮
⋯
P d2
v
⋱ ⋯
1 t1 vd 1P +1 t vd 2P +1 2 ⋮ ⋮ t vd PP +1 P +1
(4.23)
El objetivo del algoritmo de modulación de dos niveles es encontrar una secuencia de vectores de conmutación. Para ello, la matriz de coeficientes del sistema (4.23) ha de rellenarse con números enteros que permitan una posterior resolución del sistema. Ha de tenerse en cuenta que el sistema lineal representa un modulador de dos niveles, por lo tanto, solamente los valores cero y uno pueden ser utilizados como números enteros para completar la matriz de coeficientes. Además, la selección de los coeficientes debe ser hecha teniendo en cuenta que los tiempos de conmutación deben ser siempre números positivos. Hay múltiples posibilidades para rellenar la matriz de coeficientes. Sin embargo, la selección de estos coeficientes tiene una incidencia directa en el funcionamiento del sistema de potencia. Así, las pérdidas de conmutación se reducen si los valores de los coeficientes se eligen de manera que los vectores de conmutación consecutivos de la secuencia sean adyacentes. Es decir, solamente un coeficiente es diferente en dos columnas consecutivas de la matriz. El método empleado para el cálculo de los coeficientes se explica a continuación. La ecuación (4.23) se puede escribir de una forma simplificada como:
1 v = Dt f
(4.24)
Calculando una matriz de permutación P que ponga los elementos del vector de referencia v f en orden ascendente:
1 1 P = v f vˆ f
(4.25)
donde
47
1 > vˆ1f ≥ ⋯ ≥ vˆ kf −1 ≥ vˆ kf ≥ ⋯ ≥ vˆ Pf ≥ 0
(4.26)
Y multiplicando ambos lados de la ecuación (4.24) por esta matriz P de permutación se obtiene la ecuación siguiente:
1 vˆ = Dˆ t f
(4.27)
Dˆ = PD
(4.28)
donde
Una matriz de coeficientes Dˆ que hace este nuevo sistema de ecuaciones lineales exactamente determinado, con las columnas consecutivas adyacentes, es la matriz triangular superior siguiente:
1 1 1 ⋯ 1 1 1 ⋯ 1 Dˆ = ⋱ ⋱ ⋮ ⋱ 1 0 1
(4.29)
Además, como se verá luego, los tiempos de conmutación obtenidos con esta matriz de coeficientes son siempre positivos. Una matriz de permutación es siempre una matriz ortogonal inversible y su inversa es la matriz traspuesta P −1 = PT
(4.30)
Por lo tanto, la matriz de coeficientes D de la ley de modulación de dos niveles, puede ser obtenida resolviendo (4.28) como: D = PT Dˆ
(4.31)
La matriz de permutación aplica una serie de operaciones elementales por filas al vector columna v f . De la misma forma, la matriz PT aplica el conjunto inverso de operaciones elementales a la matriz Dˆ y, por lo tanto, el número de unos y de ceros en cada columna no cambia. Entonces, después de la transformación, los vectores consecutivos de la secuencia siguen siendo adyacentes y el número de conmutaciones continúa minimizado. Debido a que la solución t es la misma para ambos sistemas lineales, (4.24) y (4.25), puede ser calculado usando cualquiera de ellos. La segunda
48
opción es la mejor porque, en ese caso, la solución es trivial como se muestra en el siguiente sistema:
1 − vˆ1f ⇔ k = 1 k −1 k tk = vˆ f − vˆ f ⇔ 2 ≤ k ≤ P P vˆ f ⇔ k = P + 1
(4.32)
Todos los intervalos calculados por medio de las expresiones anteriores son siempre positivos porque las coordenadas del vector vˆ f están en orden ascendente, así que obedecen a la expresión (4.26). En resumen, la matriz D resuelve la ley de modulación de dos niveles obteniendo tiempos de conmutación positivos y minimizando el número de conmutaciones. La secuencia de vectores de conmutación de dos niveles se puede extraer directamente de esa matriz. La figura 4.2 muestra el diagrama de bloques del SVPWM multifase de dos niveles del algoritmo.
Figura 4.2. Diagrama de bloques del SVPWM mulifase de 2 niveles
49
50
5. IMPLEMENTACIÓN “HARDWARE” DEL ALGORITMO DE MODULACIÓN Una vez descrito el algoritmo de modulación por vector espacial bidimensional, el paso siguiente consiste en llevar a cabo una descripción de la realización práctica del mismo. Como ya se ha mencionado anteriormente, la implementación del algoritmo se realiza mediante una FPGA de la familia Spartan 3 de Xilinx, utilizando para la descripción del algoritmo el lenguaje de descripción hardware VHDL. Se dispone de las herramientas software de desarrollo Foundation ISE de Xilinx y Modelsim de Mentor Graphics. Vamos a realizar la explicación de todo el sistema de una forma jerárquica. Empezaremos explicando el sistema global (“top”) y poco a poco nos centraremos en la explicación individual de cada uno de los bloques y los circuitos que lo forman.
Figura 5.1. SVPWM
La figura 5.1 muestra el diagrama completo del sistema. Por una parte, está el algoritmo de control, implementado mediante el DSPACE, que es el que genera los 6 vectores. DSPACE es el conjunto formado por un entorno “software” para Matlab y una placa de desarrollo basada en un microprocesador Power-PC y un DSP. Por otra parte, está el algoritmo de modulación implementado en la FPGA, que es la parte correspondiente a este proyecto fin de carrera. Éste se comunica con el DSPACE a través de una interfaz de comunicaciones, que también es diseñada en el presente proyecto. Por último, el IGBT, que es el convertidor que actúa según la activación o
51
desactivación de los transistores, transistores que se regulan según las señales que genera el modulador implementado en la FPGA. Por tanto, procedemos a explicar ahora cómo hemos realizado el modulador para que realice el algoritmo de modulación explicado en el capítulo anterior y, a partir de los vectores entregados por el DSPACE, genere las señales correspondientes para regular los transistores del IGBT. En primer lugar, es importante aclarar que el sistema se ha diseñado de forma que funcione a cuatro frecuencias de conmutación distintas. Estas frecuencias de conmutación (seleccionadas por el usuario desde el exterior) definen cuatro períodos de conmutación distintos a introducir en las señales de disparo, por lo que modifican los cálculos a realizar en el algoritmo en todo el proceso concerniente a la obtención de los ciclos de conmutación de los vectores. Para ello, se ha diseñado el bloque de la figura 5.2. La función de este bloque es la de generar el reloj que va a controlar al modulador según la frecuencia que elija el usuario. El usuario podrá hacer la selección mediante dos interruptores (SW2 y SW3) según la siguiente tabla 5.1: SW3 SW2
FREC
Ts
0
0
10 kHz
100 µs
0
1
5 kHz
200 µs
1
0
2 kHz
500 µs
1
1
1 kHz
1 ms
Tabla 5.1
Figura 5.2
Podemos ver en la figura 5.3 el modulador con todas sus señales de entrada, que incluyen los seis vectores de referencia de 12 bits cada uno y otras señales de sincronización que recibe del DSPACE a través de la interfaz de comunicaciones.
52
Esta figura representa el bloque principal del sistema a diseñar, es decir, el algoritmo de modulación. Existe una señal de entrada adicional, denominada select_dead_time, que, al igual que la frecuencia de conmutación, es una opción a elegir por el usuario. Mediante el interruptor SW7 de la placa de desarrollo, el usuario podrá elegir si la generación de las señales de salida se realiza con tiempos muertos (SW7 =1) o sin tiempos muertos (SW7= 0). Analizando el
bloque modulador, podemos ver en la
figura 5.4 los bloques principales que lo forman, es decir, el esquema general de la implementación del algoritmo.
Figura 5.3. Modulador
53
Figura 5.4. Interconexión de los bloques principales del circuito que forman el modulador.
A continuación vamos a explicar cada uno de los bloques que forman el modulador: sus señales de entrada y salida, su función, la forma en que se han implementado y los circuitos que los componen: 5.1. SATURATE. El saturador. 5.2. MODULATOR6P5N. El modulador de 6 fases y 5 niveles. 5.3.PHASES_SEQUENCE_GENERATOR. El generador de secuencia. 5.4. SIGNAL_GENERATOR. El generador de las señales de disparo iniciales. 5.5. OUTPUTS GENERATOR. El generador de las salidas del sistema, es decir, las señales de disparo y sus complementarias junto con los tiempos muertos.
54
5.1 SATURADOR FUNCIÓN La función de este bloque, como su propio nombre indica es la de saturar, es decir, limitar los valores de la entrada a un número menor que 4 (“011,111111111” en binario, expresado con 12 bits, 3 de ellos enteros y 9 decimales). Por tanto, debe analizar cada uno de los 6 vectores que entran e impedir que la parte entera sea mayor que 3 (“011” en binario). Si la parte entera es 4, 5, 6 ó 7 (son los únicos valores mayores que 3 que se pueden formar con 3 bits) debe saturar el vector al máximo valor representable que será el de parte entera “011” con la máxima parte decimal “111111111”, es decir, “011,111111111”.
ENTRADAS
Figura 5.5.
clk: reloj del circuito. reset: puesta en estado inicial del circuito. init_process: cuya activación indicará el comienzo del funcionamiento del bloque y, en general del sistema global, pues el saturador es el primer bloque de nuestro sistema. Esta señal de inicio de proceso viene siendo el end_capture que entrega el dspace una vez que tienen los seis vectores capturados. VA, VB, VC, VD, VE, VF (11:0). Estos vectores nos los entrega el dspace y son los vectores con los que tiene que empezar a trabajar nuestro sistema. Están formados por 12 bits, los 3 bits más significativos forman la parte entera del vector y los 9 bits menos significativos forman la parte decimal. Recordamos que el dspace es el bloque sobre el que empieza a funcionar nuestro sistema y que no tenemos que generar. Ya se dispone de este bloque para la realización del proyecto.
55
SALIDAS VsatA, VsatB, VsatC, VsatD, VsatE, VsatF(11:0): los seis vectores de 12 bits de entrada saturados. end_process: señal indicadora del fin de funcionamiento del bloque y que los vectores saturados están dispuestos a la salida. Además, esta señal implica el funcionamiento del siguiente bloque (“modulator6p5n”).
ESQUEMA Y DISEÑO El diseño del bloque se basa en analizar el bit más significativo de cada vector. Si es ‘1’, significa que la parte entera de dicho vector es mayor que 3 (“011”) y, por tanto, hay que entregar a la salida el valor máximo, que es el valor constante: “011,111111111”. Sin embargo, si el bit más significativo es ‘0’, a la salida hay que entregar el mismo vector de la entrada, puesto que ya se dispone de un vector de parte entera menor o igual que “011”. Un ciclo después de haber obtenido los 6 vectores a la salida, se genera la señal “end_process”, que indica el fin del proceso.
COMPONENTES NECESARIOS Para llevar a cabo la implementación de este bloque en una FPGA se han necesitado: •
8 registros:
2 registros de 1 bit.
6 registros de 12 bits)
56
5.2. MODULADOR 6 FASES 5 NIVELES FUNCIÓN Este bloque es la parte fundamental de todo el sistema, pues es el que genera los vectores con los que trabajarán prácticamente los demás bloques. La función de este bloque es, a partir de los 6 vectores de entrada, calcular los 7 valores de tiempos y los 7 valores de cada una de las 6 fases para esos instantes de tiempo. Por tanto, generará para cada fase, 7 valores que se corresponderán con cada uno de los 7 tiempos. La obtención de estos vectores se explicará cuando se analicen los circuitos que componen el bloque modulador. Por tanto, entrega 42 valores (0, 1, 2, 3 o 4) que corresponden a 7 vectores por cada una de las 6 fases. Además, entrega otros 7 valores que son el tiempo que
Figura 5.6.
tiene que estar activo cada nivel.
ENTRADAS clk: reloj del circuito. reset: puesta en estado inicial del circuito. init_process: es la señal de inicio del proceso. Esta señal es el end_process del
modulador de 6 fases y 2 niveles. La finalización de dicho bloque implica el comienzo de éste. VsatA, VsatB, VsatC, VsatD, VsatE, VsatF(11:0) : Estos seis vectores de 12 bits son los entregados por el primer bloque de nuestro sistema que es el saturador. Estos vectores de 12 bits están formados por una parte entera, los 3 bits más significativos del vector, y una parte decimal, los 9 bits menos significativos del vector.
SALIDAS t1, t2, t3, t4, t5, t6, t7(9:0): siete vectores tiempo de 10 bits. P1, P2, P3, P4, P5, P6(20:0): seis fases de 21 bits, 21 bits obtenidos de asignar un valor de fase de 3 bits por cada tiempo, en total 21 bits.
57
ESQUEMA Y DISEÑO Este bloque se diseña a partir de la interconexión de dos bloques de una jerarquía inferior: “modulator6p2n” y “add_integer_part”. Estos dos bloques operarán de forma secuencial. Cuando el saturador (“saturate”) genera el end_process, implica el comienzo de nuestro primer bloque “modulator6p2n”. Cuando éste finaliza, ya se disponen a la salida los 7 tiempos calculados y, además, generará la señal de fin de proceso (end_process) que implicará la activación de la señal de inicio de proceso (init_process) del bloque “add_integer_part”. Cuando este bloque termina y, consecuentemente, se obtienen las 6 fases calculadas, este bloque activa la señal de fin de proceso. Por tanto, el end_process de este proceso y del bloque global “modulator6p5n” vendrá marcado por el end_process del “add_integer_part”. En la figura 5.7 vemos el esquema empleado anteriormente para la explicación del algoritmo de modulación. En ella se pueden ver los bloques principales que lo componen, que son por un lado el modulador más pequeño de 5 fases y 2 niveles (SVPWM 2L 5P en la figura) y por otro lado el “add_integer_part “ (matrix concatenation en la figura).
Figura 5.7. Estructura del modulador 6 fases 5 niveles
En la siguiente figura, se ven gráficamente las interconexiones entre las entradas y salidas de los bloques diseñados para realizar el modulador de 5 niveles, además de las entradas comunes a los dos como son clk y reset.
58
Figura 5.8. Bloques que componen al modulador de 6 fases y 5 niveles
COMPONENTES NECESARIOS Para llevar a cabo la implementación de este bloque en una FPGA, los componentes necesarios fueron, como cabía esperar, la suma de los componentes necesarios para la realización de cada uno de los bloques individuales que lo forman. Por tanto, hemos necesitado: •
1 sumador de 3 bits
•
1 restador de 10 bits
•
3 contadores ascendentes de 3 bits
•
114 registros
59 registros de 1 bit
6 de 3 bits
12 de 7 bits
13 de 10 bits
12 de 12 bits y 12 de 21 bits
•
2 multiplexores 8 a 1
1 de 3 bits
1 de 7 bits
59
•
1 comparador de 9 bits
•
4 multiplexores 8 a 1
2 de 10 bits
1 de 3 bits
1 de 7 bits
Explicaremos a continuación la realización de cada uno de los dos bloques de forma individual.
60
5.2.1. MODULADOR 6 FASES 2 NIVELES FUNCIÓN Estamos ante el bloque más importante del algoritmo, puesto que es el que hace las funciones principales del modulador de 5 niveles. La función de este bloque es generar los 7 vectores tiempo y los 6 vectores de la secuencia a partir de las entradas recibidas y tras la activación de la señal de inicio del proceso. Tras la obtención de estos vectores, debe entregarlos a la salida del bloque junto con la señal indicadora de fin del proceso.
ENTRADAS clk: reloj del circuito. reset: puesta en estado inicial del circuito. init_process: es la señal de inicio del proceso.
Esta señal es enviada por el modulador de 6 fases y 5 niveles que engloba a este modulador. VdecimalA, VdecimalB, VdecimalC, VdecimalD, VdecimalE, VdecimalF(8:0): seis vectores de 9 bits, correspondientes a las partes decimales de los seis vectores que salen del saturador. Figura 5.9.
SALIDAS VseqA, VseqB, VseqC, VseqD, VseqE, VseqF(6:0): seis vectores de 7 bits. t1, t2, t3, t4, t5, t6, t7(9:0): 7 vectores tiempo de 10 bits. end_process: la señal que indica el fin del funcionamiento del bloque y que los vectores de secuencia y los tiempos están dispuestos a la salida.
61
ESQUEMA Y DISEÑO En la figura 5.10, vemos el esquema empleado anteriormente en la explicación del algoritmo de modulación para este modulador de 2 niveles. En ella se pueden ver los bloques principales que la componen, que son por un lado el bloque “order” (sort en la figura) que ordena los vectores de mayor a menor y genera unos identificadores para saber cuál era el orden original de dichos vectores. Por otra parte, la parte superior de la figura (double) se corresponderá con el bloque “time_generator” y es la que coge esos vectores ordenados y restándolos entre ellos obtendrá 7 vectores de tiempo. La parte inferior de la figura será realizada por el bloque “inverse_order” y lo que hace es, a partir de los identificadores que guardaron el orden, reordena las filas de una matriz
Figura 5.10. Estructura del modulador de 6 fases y 2 niveles.
triangular inferior y entrega esos valores. Las salidas de este bloque son de gran importancia y se explicará posteriormente su función. Por tanto, este bloque se diseña a partir de la interconexión de los tres siguientes bloques que se explicarán a continuación: “order”, “time_generator” e “inverse_order”. Estos tres bloques operarán de forma secuencial. Cuando nuestro bloque (“modulator6p2n”) recibe la señal de inicio (init_process), activa el bloque “order” con la correspondiente señal de incio de ese bloque. Cuando este bloque termina y, consecuentemente, se obtienen las partes decimales de los vectores ordenadas de menor a mayor, este bloque activa la señal de fin de proceso, señal que, a su vez, activa el
62
inicio de los bloque “time_generator” e “inverse_order”. Estos bloques generarán los vectores tiempo y los vectores de secuencia, respectivamente, vectores que son las salidas finales de nuestro modulador. De los dos bloques, “time_generator” tarda más en calcular y generar los vectores de tiempo que “inverse_order” los vectores de secuencia. Por tanto, el end_process de este proceso y del bloque global “modulator6p2n” vendrá marcado por el end_process del “time_generator”. En la figura 5.11, se ven gráficamente las interconexiones entre las entradas y salidas de los bloques, además de las entradas comunes a los tres como son clk y reset.
Figura 5.11. Interconexión de los boques que forman el modulador 6P2N
COMPONENTES NECESARIOS Para llevar a cabo la realización de este bloque funcional, los componentes necesarios, como cabía esperar, fueron la suma de los componentes necesarios para la realización de cada uno de los bloques individuales que lo forman. Por tanto, hemos necesitado: •
1 restador de 10 bits
63
•
1 contador ascendente de 3 bits
•
73 registros
30 registros de 1 bit
13 de 10 bits
12 de 12 bits
6 de 3 bits12 de 7 bits
•
1 comparador de 9 bits.
•
2 multiplexores de 10 bits 8 a 1
Explicaremos a continuación la realización de cada uno de los bloques de forma individual.
64
ORDER FUNCIÓN Este bloque debe de añadir un identificador (3 bits) a cada uno de los vectores de entrada para guardar la posición que tienen inicialmente. A continuación, tiene que ordenarlos de menor a mayor, quedando ordenadas las partes decimales y desordenados los identificadores asignados (pues no estarán en el orden en el que entraron).
ENTRADAS clk: reloj del circuito. reset: puesta en estado inicial del circuito.
Figura 5.12.
init_process: es la señal de inicio del proceso y cuya activación indicará el comienzo
del funcionamiento del bloque. VA, VB, VC, VD, VE, VF (8:0): son las entradas globales del modulador de 2 nivleles. Son las partes decimales que entran desordenadas pero saturadas. Vienen dadas por el modulador 6 fases y 5 niveles pero son señales que ya vienen del saturador.
SALIDAS VordA, VordB, VordC, VordD, VordE, VordF(11:0): 6 vectores de 12 bits cuyas partes decimales (los 9 bms) están ordenadas de menor (VordA) a mayor (VordB). end_process: señal indicadora del fin de funcionamiento del bloque y que los vectores ordenados están dispuestos a la salida.
ESQUEMA Y DISEÑO El algoritmo que he utilizado para lograr la ordenación de los vectores, se basa en el uso de 2 contadores: 1. Uno que se utiliza para controlar un multiplexor. La salida del contador es el selector del multiplexor. Entonces, según el valor del selector (salida del contador) se van seleccionando vectores de 2 en 2 (VA con VB, VB con VC…y VE con VF). Para cada selección se intercambian las posiciones o no de los vectores según sea el primero mayor que el segundo o no.
65
2. Otro contador que lleva cuenta de la repetición del proceso anterior. Es decir, el primer contador debe volver a realizar el recorrido de nuevo con los 6 vectores de 2 en 2. Vectores que ahora han cambiado de posición (si antes han resultado mayores que su vecino) y ahora tienen vecinos nuevos que pueden ser o no mayores que ellos. Por tanto, este segundo contador dará cinco vueltas que son las necesarias para el peor de los casos. Este caso se da cuando el último vector (VF) es el menor, por lo tanto, intercambiará siempre su posición con el vecino anterior hasta situarse en la primera posición. Tras finalizar las 5 vueltas del contador 2, habremos terminado. Este bloque está compuesto de una unidad de control y una unidad operativa que pasaremos a describir a continuación.
Figura 5.13. Interconexión de los bloques que forman al bloque order.
UNIDAD DE CONTROL Y UNIDAD OPERATIVA La unidad de control se basa en una máquina de estados que envía señales a la unidad operativa y también las recibe de ésta, para lograr hacer el algoritmo explicado anteriormente.
66
Figura 5.14. Unidad operativa y unidad de control del bloque order
La siguiente figura muestra el diagrama de estado utilizado para realizar la unidad de control
67
@ELSE
RESET STAT E0 init_process='1'
STAT E1 load_vectors