Full text
Repositorio de la Universidad de Zaragoza – Zaguan http://zaguan.unizar.es Proyecto Fin de Carrera ANÁLISIS E IMPLEMENTACIÓN EN FPGA DE UN SISTEMA DE IDENTIFICACIÓN DE CARGAS DE INDUCCIÓN EN TIEMPO REAL BASADO EN EL ALGORITMO DE MÍNIMOS CUADRADOS Autor Raúl Zaborras Sanz Directores Mr. Oscar Jiménez Navascués Dr. Oscar Lucía Gil Departamento de Ingeniería Electrónica y Comunicaciones Escuela de Ingeniería y Arquitectura Universidad de Zaragoza 2012
3 ANÁLISIS E IMPLEMENTACIÓN EN FPGA DE UN SISTEMA DE IDENTIFICACIÓN DE CARGAS DE INDUCCIÓN EN TIEMPO REAL BASADO EN EL ALGORITMO DE MÍNIMOS CUADRADOS RESUMEN En la actualidad, la tecnología de calentamiento por inducción doméstico está desplazando a otras tecnologías de calentamiento clásicas como la resistiva o el gas debido a sus ventajas en cuanto a rapidez, eficiencia y limpieza. Esto ha sido posible gracias a los avances realizados en el área de la electrónica de potencia, que han permitido el diseño de etapas electrónicas compactas, versátiles y robustas. Con el objetivo de alcanzar un elevado rendimiento, generalmente se utilizan etapas de potencia resonantes. Una característica vital de dichas etapas es que el tanque resonante determina el punto de operación. La impedancia de la carga de inducción, formada por el sistema inductor-recipiente, presenta una gran variabilidad debido a que depende de múltiples factores como la frecuencia de trabajo, la temperatura del recipiente, el alineamiento del recipiente con el inductor o el material del recipiente. Dado que la impedancia puede cambiar durante el funcionamiento del sistema, y que ello repercute tanto en el punto de operación de la etapa inversora como en su área de operación segura, se hace deseable obtener una identificación en tiempo real de dicha impedancia. En el presente proyecto fin de carrera se ha analizado el algoritmo mínimos cuadrados aplicado a la identificación de la carga de inducción. Dicho análisis se ha realizado mediante el uso de la herramienta MATLAB, analizándose diversos modos de implementación del algoritmo con el objetivo de seleccionar tanto la forma adecuada del mismo como los parámetros a utilizar en su implementación. En esta fase se ha discretizado la carga, se han desarrollado las distintas formas del algoritmo y se han realizado las simulaciones pertinentes. La forma elegida se ha implementado en Vivado HLS, para lo cual el algoritmo se ha desarrollado en lenguaje C. Posteriormente la implementación del mismo se ha optimizado mediante dicha herramienta de software y los resultados obtenidos con medidas experimentales se han representado en MATLAB para un último análisis.
5 AGRADECIMIENTOS Quisiera aprovechar para agradecer a todas las personas que se han visto involucradas, directa o indirectamente en la realización del presente proyecto. En primer lugar agradecer a José Miguel Burdío y a BSH la posibilidad de incorporarme a su grupo de investigación para el desarrollo de este proyecto. A Luis Ángel Barragán por introducirme en el proyecto y por aportar su experiencia para la resolución de los obstáculos que han surgido en el camino. A mis compañeros de laboratorio por el buen ambiente y disposición en el día a día. A mis amigos y compañeros de carrera por su apoyo incondicional en los momentos difíciles. Me gustaría agradecer de forma especial la dedicación de mis tutores Oscar Jiménez y Oscar Lucía, ya que gracias a sus consejos, conocimientos y paciencia este proyecto ha sido posible. Por último a mis padres por su apoyo a lo largo de toda la carrera, que me ha permitido llegar hasta aquí. A todos ellos gracias.
ÍNDICE 7 ÍNDICE 1. INTRODUCCIÓN ............................................................................... 11 1.1 Funcionamiento de la cocina de inducción ......................................... 11 1.2 FPGA ...................................................................................................... 14 1.3 Motivación ............................................................................................. 14 1.4 Objetivo .................................................................................................. 15 1.5 Alcance ................................................................................................... 15 1.6 Contenido ............................................................................................... 16 2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS ......... 17 2.1 Algoritmo mínimos cuadrados ............................................................ 17 2.2 Discretización de la carga ..................................................................... 18 2.3 Parámetros de simulación .................................................................... 20 2.4 Resultados de simulación ..................................................................... 22 2.4.1 Parámetros de entrada V0 e IL sin ruido ........................................... 22 2.4.2 Parámetros de entrada V0, IL y VC sin ruido .................................... 23 2.4.3 Parámetros de entrada V0, IL y VC con ruido ................................... 25 2.5 Comparación de resultados .................................................................. 27 3. IMPLEMENTACIÓN EN VIVADO HLS ....................................... 31 3.1 Resultados iniciales de síntesis ............................................................. 32 3.2 Optimización del área ocupada ........................................................... 32 3.3 Resultados de las estimaciones ............................................................. 34 3.4 Conclusiones tras la implementación .................................................. 36 4. CONCLUSIONES ............................................................................... 37 BIBLIOGRAFÍA ..................................................................................... 39 ANEXO I. ALGORITMO MÍNIMOS CUADRADOS ..................... 43 I.1 Descripción ............................................................................................ 43
ÍNDICE 8 I.2 Algoritmo recursivo .............................................................................. 45 I.3 Estudio con parámetros de entrada V0 e IL ........................................ 46 I.4 Estudio con parámetros de entrada V0, IL y VC .................................. 50 I.5 Forma extendida del algoritmo mínimos cuadrados ......................... 51 I.6 Discretización de la carga ..................................................................... 52 ANEXO II. RESULTADOS DE SIMULACIÓN ............................... 55 II.1 Parámetros de simulación .................................................................... 55 II.2 Resultados con parámetros de entrada V0 e IL ................................... 56 II.2.1. Euler hacia adelante sin ruido ....................................................... 56 II.2.2. Trapezoidal sin ruido ..................................................................... 58 II.3 Resultados con parámetros de entrada V0, IL y VC ............................ 60 II.3.1. Euler hacia adelante sin ruido ....................................................... 60 II.3.2. Trapezoidal sin ruido ..................................................................... 61 II.3.3. Euler hacia adelante con ruido ...................................................... 63 II.3.4. Trapezoidal con ruido .................................................................... 65 II.4 Resultados del estudio del tiempo de cómputo del algoritmo ........... 67 II.4.1. Parámetros de entrada V0 e IL sin ruido ........................................ 68 II.4.2. Parámetros de entrada V0, IL y VC sin ruido ................................. 69 II.4.3. Parámetros de entrada V0, IL y VC con ruido ................................ 69 ANEXO III. ENTORNO VIVADO HLS ............................................ 71 III.1 Interfaz de Vivado HLS........................................................................ 72 III.2 Optimización del diseño con Vivado HLS .......................................... 76 ANEXO IV. RESULTADOS DE LA IMPLEMENTACIÓN EN VIVADO HLS .......................................................................................... 81 IV.1 Parámetros escogidos para la implementación .................................. 81 IV.2 Resultados de síntesis ............................................................................ 81 IV.3 Resultados de las estimaciones ............................................................. 83
LISTA DE SÍMBOLOS 9 LISTA DE SÍMBOLOS R Resistencia equivalente del modelo inductor-recipiente (Ω) L Inductancia equivalente del modelo inductor-recipiente (µH) C Condensador de resonancia (nF) D Ciclo de servicio fsw Frecuencia de conmutación del sistema (kHz) Tsw Periodo de conmutación de los transistores (ms) FS Frecuencia de muestreo (MHz) TS Periodo de muestreo (s) TSTOP Tiempo de simulación (ms) b Número de bits VBUS Tensión de bus (V) V0 Tensión obtenida del semipuente (V) IL Intensidad que circula por el inductor (A) VC Tensión en el condensador de resonancia (V) TC Tiempo de cómputo del algoritmo (µs) II Intervalo de inicio (ciclos de reloj) PDM Pulse Density Modulation SW Square Wave ADC Analog-to-Digital Converter ADC Asymmetrical Duty Cycle ZVS Zero-Voltage Switching FPGA Field Programmable Gate Array VHDL Very High Speed Integrated Circuit Hardware Description Language HLL High Level Languages
1. INTRODUCCIÓN 16 Los estudios se han realizado siguiendo las distintas formas del algoritmo y discretización e incluyendo variaciones como el ruido que presenta el sistema real. Para la tercera fase, “Implementación en Vivado HLS”, las etapas han sido: Desarrollo de código auxiliar en lenguaje C. Desarrollo del algoritmo en lenguaje C. Optimización del diseño. Implementación con señales tomadas experimentalmente. Análisis de resultados en MATLAB. 1.6 Contenido Los capítulos que siguen a continuación explican los pasos seguidos en la realización del proyecto, así como la comparación de los resultados y las conclusiones que de ella se extrae. En este primer capítulo se han expuesto las bases de las que se ha partido al comienzo del proyecto y se han introducido brevemente algunos conceptos necesarios para la comprensión del mismo. También se han justificado los motivos de su realización y los objetivos a alcanzar. En el segundo capítulo se tratan las etapas de las que consta la parte de análisis de los diversos modos de implementación del algoritmo. El tercero hace referencia a la implementación de la forma escogida. En ambos se exponen los resultados obtenidos y los parámetros utilizados para su obtención. La comparativa de resultados final se muestra en el capítulo cuatro, además de su justificación y extracción de conclusiones. Adjuntos al documento principal se incluyen varios anexos en los que se desarrollan las distintas formas del algoritmo o se presentan los resultados menos representativos que no aparecen en los capítulos anteriores.Equation Section (Next)
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 17 2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS En este capítulo se exponen las distintas etapas y resultados de simulación de las diversas implementaciones del algoritmo mínimos cuadrados analizados en el presente proyecto. La herramienta escogida para el análisis es MATLAB debido a su potencia de cálculo y facilidad a la hora de programar sistemas, así como por la familiaridad con el programa debido a su uso habitual en las carreras de ingeniería. El esquema que se ha seguido para dicho análisis según las distintas formas del algoritmo se muestra en la TABLA 2.1. En el caso de la forma con señales de entrada V0 e IL, el sistema necesita únicamente de dos conversores analógico-digital. Además la digitalización de ambas señales ya está previamente disponible en el sistema debido a que son utilizadas por la etapa de control. En el caso de señales de entrada V0, IL y VC, es necesario un conversor más, aumentando la complejidad del sistema. Por el contrario se espera que las prestaciones del algoritmo aumenten considerablemente. En cuanto a las formas de discretización Euler hacia adelante y trapezoidal, la primera es más sencilla respecto a las operaciones necesarias. A costa del aumento de complejidad, la precisión que se espera conseguir con la Trapezoidal es mayor. Por último las formas matricial y recursiva difieren en que en la primera se realizan en el mismo instante de tiempo las operaciones con todas las medidas tomadas. Esto hace imposible la identificación de la carga de inducción en tiempo real. La recursiva en cambio realiza las operaciones con las señales de entrada en un instante de tiempo determinado. TABLA 2.1. ESQUEMA DEL ANÁLISIS REALIZADO Parámetros de entrada V0 e IL Parámetros de entrada V0, IL y VC Euler hacia delante Trapezoidal Euler hacia delante Trapezoidal Matricial Recursivo Matricial Recursivo Matricial Recursivo Matricial Recursivo 2.1 Algoritmo mínimos cuadrados En este apartado se introduce el algoritmo mínimos cuadrados. En él se explica su funcionamiento y se exponen las ecuaciones que forman los métodos matricial y recursivo. Se analizan ambos porque aunque para la forma matricial se tiene más precisión, no es viable su implementación en FPGA. Su análisis sirve únicamente para la comparación de los resultados obtenidos con la recursiva. El desarrollo de ambos métodos se presenta en el ANEXO I. Este algoritmo se basa en una técnica de análisis numérico que, dada una función f que modela el sistema, encuentra el vector de parámetros de dicha función que
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 18 minimiza el error cuadrático de las estimaciones a partir de un número k de puntos. Dicho error viene dado por (2-1). 2 1 1 ( ) ( ), k i E f i k (2-1) donde ε(i) es el error de la función en el punto i. El desarrollo de dichas ecuaciones a partir de la ecuación en diferencias que modela el sistema se encuentra en el ANEXO I. La forma matricial viene dada por la expresión (2-2): 1 ˆ( )· ( ) · ( )· , TT k k k Y (2-2) donde es el vector con la solución, Y es el vector de observaciones y Φ(k) es la matriz de las k mediciones. La ejecución de la misma supone operar con todos los términos en el mismo instante de tiempo, lo que hace imposible conocer los resultados en tiempo real. Al desarrollarla obtenemos la forma recursiva que se implementa mediante las ecuaciones (2-3), (2-4) y (2-5): ( 1)· ( ) ( ) , ( )· ( 1)· ( ) T P k x k Lk x k P k x k (2-3) ˆ ˆ ˆ ( 1) ( )· ( ) ( )· ( 1) , T k L k y k x k k (2-4) ( 1) ( ) ( )· ( ) · , TPk P k I L k x k (2-5) en las cuales x(k) es el vector con los parámetros del modelo y φ es el factor de olvido utilizado para restar importancia a las muestras más antiguas. En el caso de este proyecto se eligió un valor de φ de uno para dotar de la misma importancia a todas las muestras. Se analizaron a su vez dos formas del algoritmo según los parámetros de entrada y según la discretización fuera Euler hacia delante o Trapezoidal. El desarrollo de dichos métodos se encuentra también en el ANEXO I. 2.2 Discretización de la carga Como se ha explicado en el capítulo 1, la carga se modela como un circuito RL al que se añade el condensador de resonancia. El circuito equivalente de la etapa de potencia y sus principales formas de onda se representan en la Figura 2.1.
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 19 (a) (b) Figura 2.1. (a) Sistema a simular. (b) Señales de entrada del algoritmo. Debido a que el algoritmo ha sido previamente discretizado, es necesario discretizar también el modelo de la carga para obtener las señales de entrada. De otro modo, el error introducido es excesivamente alto y los resultados dependerían del número de muestras empleado siendo entonces muy poco funcional. Se han utilizado dos tipos de discretizaciones, trapezoidal y Euler hacia adelante, en función de con cuál se había discretizado el algoritmo, con periodo de muestreo TS. El proceso de discretización consiste en transformar las ecuaciones de estado en tiempo continuo que modelan el sistema en las ecuaciones en tiempo discreto tal y como se muestra en el ANEXO I.6. En función de si la discretización es Euler hacia adelante o trapezoidal el fundamento es el mostrado en la Figura 2.2. (a) y (b) respectivamente. Como puede apreciarse en ellas el método trapezoidal es más preciso. (a) (b) Figura 2.2. Representación gráfica de la aproximación según el método (a) Euler hacia adelante. (b) trapezoidal. En el primer caso la expresión que corresponde a la integral de la función es la mostrada en (2-6), mientras que la trapezoidal hace referencia a (2-7): ( 1) ( ) ( ), k Ts k Ts x d Ts x k (2-6) V0 R CVC ILL
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 20 ( 1) ( ) ( 1) ( ) , 2 k Ts k Ts x k x k x d Ts (2-7) donde ẋ(τ) es la función a discretizar, Ts el periodo de muestreo y τ el instante de tiempo. 2.3 Parámetros de simulación A continuación se presentan los parámetros fijados para la simulación en MATLAB del sistema. En la TABLA 2.2 se reflejan los rangos de los parámetros que se han variado durante el análisis del algoritmo. Donde fsw es la frecuencia de conmutación, FS es la frecuencia de muestreo, b es el número de bits del conversor y TC es el tiempo de cómputo cuyo significado se explica al final de esta sección. TABLA 2.2. RANGOS DE LOS PARÁMETROS DE SIMULACIÓN fsw (kHz) 30-75 FS (MHz) 10 o 20 b (bits) 8, 10 y formato real TC (μs) 0.1-5 Para el estudio de fsw se ha supuesto una carga de R = 2.85 Ω y L = 18.65 μH, condensador de resonancia de C = 1440 nF y ciclo de servicio D = 0.5. El rango de estudio ha sido de 30 a 75 kHz ya que se corresponde con el utilizado en las cocinas de inducción. Para la obtención de las señales de entrada V0, IL y VC, se ha discretizado el sistema mostrado en la Figura 2.1. (a) según los dos métodos de discretización utilizados. Se ha introducido ruido blanco de potencia 10-14 W y se han tomado frecuencias de muestreo FS de 10 y 20 MHz. Se ha simulado también considerando una captura de las señales de entrada mediante conversores de 8 y 10 bits de precisión para una FS de 10 MHz. Un parámetro importante es el tiempo que tiene el algoritmo para converger. Este tiempo está marcado por el cruce por cero de la red eléctrica, que es el momento en que es necesaria la obtención de la estimación de la impedancia. En la Figura 2.3 se observa como dicho paso por cero ocurre cada 10 ms, ya que es el periodo de tensión de bus VBUS. Figura 2.3. Formas de onda IL y V0 conformadas con VBUS.
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 21 Como consecuencia de implementar el algoritmo en una FPGA es necesario realizar un estudio del tiempo de cómputo TC, debido a que la FPGA necesita un tiempo para realizar las operaciones asociadas al algoritmo. Pasado TC vuelven a muestrearse las señales de entrada en parejas o tríos en función de si se trata de la forma con parámetros de entrada V0, IL y VC o la de V0 e IL respectivamente. La Figura 2.4 muestra gráficamente el significado de TC, para evitar confundirlo con el periodo de muestreo TS. En ella aparece un trío de medidas representadas por cruces rojas y otro trío posterior representado por triángulos. En cada caso las medidas están separadas entre ellas un tiempo TS, puesto hace referencia al tiempo de muestreo. Con las cruces se obtendría el vector (k) que contiene la solución en el instante k. Tras un tiempo TC se volvería a ejecutar el algoritmo con las medidas simbolizadas por los triángulos, obteniéndose el vector (k+1) con las soluciones en el instante k+1. Figura 2.4. Esquema de tiempos del tiempo de cómputo del algoritmo TC con parámetros de entrada V0 e IL. El estudio de TC se ha realizado en un rango de 0.1 a 5 μs para una fsw fija de 75kHz y FS de 10 MHz. A diferencia del estudio de fsw, el realizado en función del tiempo de cómputo se efectuó únicamente sobre la forma recursiva, ya que no tiene sentido hacerlo sobre la matricial. Esto se debe a que en la matricial se utilizan todas las medidas en el mismo instante, así que el tiempo de ejecución del algoritmo no es necesario. Por último aclarar que los errores mostrados en las gráficas han sido obtenidos mediante la ecuación (2-8): __ (%) 100, _ Parámetro estimado Parámetro real Error Parámetro real (2-8) donde Parámetro_estimado es la estimación obtenida tras la ejecución del algoritmo y Parámetro_real es el valor supuesto para R, L o C y con los que se obtienen las señales de entrada. TS TCIL TSTSTS
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 22 2.4 Resultados de simulación En esta etapa se ha implementado el algoritmo según los parámetros de entrada, el primero con las medidas de la intensidad que circula por la inductancia IL y la tensión obtenida del semipuente V0 y el segundo añadiendo VC. Además se han comparado las dos formas de discretizar la carga, trapezoidal y Euler hacia adelante. Debido a que el objetivo final es la implementación en FPGA del algoritmo, el objetivo es el estudio del mismo en su forma recursiva. El único propósito de simularlo también en su forma matricial ha sido el de comparar los resultados y comprobar que el algoritmo funciona correctamente, ya que con este otro método se obtienen buenas estimaciones, aunque no es implementable en FPGA. En los apartados presentados a continuación se exponen los resultados más significativos para las dos formas del algoritmo según los parámetros de entrada. Estos son los relativos al algoritmo con discretización trapezoidal, frecuencia de muestreo FS de 10 MHz y señales de entrada representadas en formato 10 bits y reales. Dentro de cada apartado se muestran los errores de estimación obtenidos tanto para el estudio de TC como para el de fsw. Los resultados del análisis de TC reflejan solo los errores de las estimaciones relativos a la forma recursiva, tal y como se explicó en el apartado 2.3. El capítulo se cierra con las conclusiones de comparar los métodos según las señales de entrada. En el ANEXO II se presentan todos los resultados que se obtuvieron del estudio siguiendo el esquema mostrado en la TABLA 2.1. 2.4.1 Parámetros de entrada V0 e IL sin ruido A continuación se exponen los resultados de las estimaciones según el algoritmo trapezoidal con señales de entrada V0 e IL sin previa adición de ruido blanco. El estudio de TC mostrado en la Figura 2.5 revela que los errores pueden considerarse nulos hasta al menos los 5 µs, que es un tiempo razonable para que la FPGA realice las operaciones. La frecuencia de conmutación utilizada para la simulación ha sido de 75 kHz puesto que es el caso más desfavorable dentro del rango de estudio. (a) (b) Figura 2.5. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función del tiempo de cómputo TC, frecuencia de muestreo de 10 MHz y discretización trapezoidal. 0.1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 Tiempo de computo (s) Error*10-3 (%) 0.1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -0.06 -0.05 -0.04 -0.03 -0.02 -0.01 0 Tiempo de computo (s) Error*10-3 (%)
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 23 En cuanto al estudio de fsw, según muestra la Figura 2.6, los errores en las estimaciones de R y L pueden considerarse nulos. Dichas estimaciones han sido realizadas implementando el algoritmo con las señales de entrada en reales. Se trata por tanto de una situación ideal mediante la cual se ha comprobado que el algoritmo funciona correctamente. En relación a la forma de discretización, los resultados obtenidos con el método Euler hacia adelante son siempre peores que los del trapezoidal. (a) (b) Figura 2.6. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función de la frecuencia de conmutación, frecuencia de muestreo 10 MHz y discretización trapezoidal. Cuando se implementa con un número de bits menor los errores aumentan considerablemente. En la Figura 2.7 se observa como con 10 bits el error en la estimación de R alcanza los dos órdenes de magnitud. A la vista de estos resultados se descartó continuar con la implementación de esta forma del algoritmo, puesto que el error obtenido sin llegar a introducir ruido en las señales de entrada ya lo hace inviable. (a) (b) Figura 2.7. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función de la frecuencia de conmutación, frecuencia de muestreo de 10 MHz, señales de entrada en 10 bits y discretización trapezoidal. 2.4.2 Parámetros de entrada V0, IL y VC sin ruido En este caso se ha comenzado también con el estudio de TC. En la Figura 2.8 se observa que se obtienen errores nulos hasta al menos los 5 µs para las estimaciones de R y L. Por tanto se ha procedido a estudiar el comportamiento del algoritmo al variar la frecuencia de muestreo y decidir si es posible continuar con el análisis. 30 40 50 60 70 80 -20 0 20 40 60 Frecuencia (kHz) Error*10-6 (%) Recursivo Matricial 30 40 50 60 70 80 -1.5 -1 -0.5 0 0.5 Frecuencia (kHz) Error*10-6 (%) Recursivo Matricial 30 40 50 60 70 80 60 80 100 120 140 Frecuencia (kHz) Error (%) Recursivo Matricial 30 40 50 60 70 80 -10 -5 0 5 10 Frecuencia (kHz) Error (%) Recursivo Matricial
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 24 (a) (b) Figura 2.8. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función del tiempo de cómputo TC, frecuencia de muestreo de 10 MHz y discretización trapezoidal. La Figura 2.9 muestra errores nulos para las señales de entrada al variar fsw. Aunque con la forma recursiva no se alcanza la misma precisión que con la matricial, son resultados tan bajos que pueden considerarse nulos. Dichos resultados han sido obtenidos con señales en reales, así que para acercar el sistema a la situación real el siguiente paso ha sido reducir el número de bits con el que se representan. (a) (b) Figura 2.9. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función de la frecuencia de conmutación, frecuencia de muestreo 10 MHz y discretización trapezoidal. La Figura 2.10 hace referencia a los resultados obtenidos con 10 bits, aunque se implementó también con señales de entrada representadas con 8 bits obteniéndose errores de hasta un orden mayor. Se observa también que las estimaciones conseguidas mediante la forma recursiva son prácticamente iguales que los de la matricial, por lo que a priori el algoritmo funcionaría correctamente. (a) (b) Figura 2.10. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función de la frecuencia de conmutación, frecuencia de muestreo de 10 MHz, señales de entrada en 10 bits y discretización trapezoidal. 0.1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 1 2 3 4 Tiempo de computo (s) Error*10-6 (%) 0.1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -0.4 -0.3 -0.2 -0.1 0 Tiempo de computo (s) Error*10-6 (%) 30 40 50 60 70 80 -20 0 20 40 60 80 Frecuencia (kHz) Error*10-9 (%) Recursivo Matricial 30 40 50 60 70 80 -8 -6 -4 -2 0 2 Frecuencia (kHz) Error*10-9 (%) Recursivo Matricial 30 40 50 60 70 80 -0.2 -0.1 0 0.1 0.2 Frecuencia (kHz) Error (%) Recursivo Matricial 30 40 50 60 70 80 -0.2 -0.1 0 0.1 0.2 Frecuencia (kHz) Error (%) Recursivo Matricial
2. ANÁLISIS DEL ALGORITMO MÍNIMOS CUADRADOS 25 Los errores se incrementan considerablemente al disminuir el número de bits aunque, a pesar de dicho aumento, se mantienen dentro de un rango razonable, cuyos valores máximos se sitúan en torno al 0.1%. Además son menores que los obtenidos para la forma del algoritmo con señales de entrada V0 e IL, lo que denota una menor sensibilidad al ruido. En cuanto a la comparación entre métodos de discretización los resultados obtenidos son similares en ambos casos. Puesto que los errores en las estimaciones alcanzan valores pequeños, el siguiente paso ha sido introducir ruido a las medidas para estudiar un sistema más cercano a la realidad. 2.4.3 Parámetros de entrada V0, IL y VC con ruido Para el análisis final del algoritmo se ha introducido ruido en las tres medidas simultáneamente, ya que es la situación que más se acerca a la realidad, siendo el resto de parámetros los mismos que en las situaciones anteriores. Con respecto al análisis para distintos TC se han obtenido los resultados mostrados en la Figura 2.11. En ella se observa que para 2.5 µs el error en la estimación de R alcanza como mucho un 5%. Ambos valores son razonables puesto que hay que llegar a un compromiso entre dichos parámetros, error y TC. Para la estimación de L se obtienen errores inferiores por lo que el factor que restringe TC es la estimación de R. (a) (b) Figura 2.11. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función del tiempo de cómputo TC, frecuencia de muestreo de 10 MHz y discretización trapezoidal. Para el caso del algoritmo con discretización Euler hacia adelante, cuando el tiempo de cómputo supera los 0.6 µs se incurre en errores de estimación de R mayores del 5%. La comparación gráfica de los resultados de ambos métodos se muestra en el ANEXO II. Tras la implementación del algoritmo con señales de entrada en reales y con ruido, se obtienen errores muy superiores en comparación al utilizar señales sin ruido. Aun así en la Figura 2.12 se observa que no supera el 2.5% para la estimación de R, que es un valor razonable una vez se ha introducido el ruido. Lo mismo ocurre con la estimación de L, aunque la Figura 2.13 muestra un error de un orden menos que para la de R. Como en ambas estimaciones los errores cometidos son asumibles se ha procedido al estudio con señales con número de bits de 8 y 10. 0.1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -5 0 5 10 Tiempo de computo (s) Error (%) 0.1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -3 -2 -1 0 1 2 Tiempo de computo (s) Error (%)
3. IMPLEMENTACIÓN EN VIVADO HLS 32 3.1 Resultados iniciales de síntesis En esta sección se presentan los resultados de la síntesis del algoritmo sin aplicar ninguna directriz. Como se observa en la TABLA 3.1, se cumple con la restricción del tiempo de cómputo, pero el porcentaje de la utilización de DSP48Es (Digital Signal Processing logic Element) es superior al 100% por lo que será necesario optimizar la implementación digital realizada. La potencia no presenta unidades puesto que el valor no es una estimación real, sino que sirve únicamente de comparación entre distintas soluciones. TABLA 3.1. RESULTADOS Mínimo periodo de reloj (ns) 8.63 Ciclos de reloj utilizados 116 TC (µs) 1 Potencia 3220 Utilización de componentes (%) BRAM DSP48E FF LUT SLICE 0 234 28 60 0 3.2 Optimización del área ocupada Para cumplir con los requisitos de recursos de la FPGA utilizada se ha intentado reducir el número de componentes usados para ejecutar el algoritmo. La base de dicha optimización es la reutilización de hardware en la implementación de los distintos bucles y en la utilización de funciones cuando se repiten conjuntos de operaciones. Para ello se ha empleado la directiva PIPELINE, cuyo comportamiento es el representado en la Figura 3.2. Por defecto la directiva busca un intervalo de inicio II igual a uno. Esto significa que intentará procesar una nueva señal de entrada cada ciclo de reloj o el mínimo posible que más se le acerque y que permita a su vez realizar las operaciones. Por defecto Vivado HLS intenta ejecuta las operaciones en paralelo reduciendo la latencia del diseño. Con la directiva se puede mejorar el rendimiento permitiendo diferentes formas de ejecución de la función o iteraciones del bucle, solapándolas en el tiempo. En la Figura 3.2. (a) y (b) obtenida de la documentación del software [11] se muestran respectivamente las latencias de un código con tres funciones y otro de un bucle con tres operaciones en cada iteración. A priori los ciclos de reloj necesarios son 8 y 6 respectivamente. Al incluir la directiva se solapan las funciones A, B y C reduciéndose el número de ciclos a 5. En el caso del bucle, cuando termina la primera operación de la primera iteración comienza la operación siguiente, simultáneamente a la primera operación de la segunda iteración, reduciéndose la latencia a 4 ciclos.
3. IMPLEMENTACIÓN EN VIVADO HLS 33 (a) (b) Figura 3.2. Comportamiento de la directiva PIPELINE a nivel de (a) función (b) bucle. Aunque es posible modificar el parámetro II, para un primer análisis no se ha cambiado el valor por defecto. En la TABLA 3.2 pueden verse los resultados conseguidos para esta optimización. La disminución del área ocupada por debajo del 100% se consigue a expensas del tiempo de ejecución del algoritmo, que aumenta hasta 1.72 µs, y de un aumento del reloj mínimo a 15.92 ns. Como era de esperar ante una reducción tan amplia de los recursos utilizados, la potencia ha disminuido a menos de la mitad. El II mínimo que se ha conseguido es de 107 ciclos. TABLA 3.2. RESULTADOS Mínimo periodo de reloj (ns) 15.92 Ciclos de reloj utilizados 108 II 107 TC (µs) 1.72 Potencia 1509 Utilización de componentes (%) BRAM DSP48E FF LUT SLICE 0 58 13 28 0 El periodo de reloj obtenido es superior al periodo de la FPGA (10 ns). Por ello esta implementación es desechada. Con el objetivo de obtener una implementación válida, se ha realizado un análisis variando el II mediante la imposición de directivas. Puesto que la prioridad del software es ejecutar las operaciones en el menor número de ciclos posible, al aumentarlo se permite al software analizar más combinaciones de periodos de reloj y utilización de componentes. Función Bucle 8 ciclos 6 ciclos (2 iteraciones) 5 ciclos 4 ciclos (2 iteraciones)
3. IMPLEMENTACIÓN EN VIVADO HLS 34 En la TABLA 3.3 se presentan los resultados obtenidos con la mejor solución que se ha alcanzado, la cual cumple los requerimientos del sistema. El resto de resultados para los distintos II se muestran en el ANEXO IV. TABLA 3.3. RESULTADOS Mínimo periodo de reloj (ns) 8.63 Ciclos de reloj utilizados 121 II 118 TC (µs) 1.04 Potencia 1289 Utilización de componentes (%) BRAM DSP48E FF LUT SLICE 0 29 11 23 0 Con la optimización del área ocupada se ha conseguido finalmente reducir los componentes utilizados a unos porcentajes mínimos sin apenas aumento del tiempo de cómputo. Esto conlleva, además de la viabilidad de implementación de la solución en la FPGA seleccionada, la disminución de la potencia consumida cumpliendo a su vez ampliamente con la restricción de TC. 3.3 Resultados de las estimaciones En este apartado se presentan los resultados de las estimaciones de R y L en función del tiempo de simulación TSTOP, alcanzados mediante el código sintetizado por el software Vivado HLS. Dichos resultados se han obtenido gráficamente en MATLAB. Los parámetros utilizados han sido los elegidos en las conclusiones del capítulo anterior. Las señales IL, V0 y VC fueron obtenidas experimentalmente mediante un banco de pruebas del laboratorio con una FS de 10 MHz, un ciclo de servicio D = 0.5 y un número de bits igual a 10. Para minimizar la variación de impedancia que presenta un sistema real inductor-recipiente, en este proyecto se ha utilizado una carga patrón R-L formada por componentes discretos. La impedancia de la carga patrón ha sido medida en pequeña señal mediante un analizador de impedancias Agilent 4294A, obteniendo unos resultados de impedancia de R = 2.85 Ω y L = 18.65 μH. El valor del condensador de resonancia es también el mismo: C = 1440 nF. Solo aparecen los resultados relativos a las fsw de 35 y 75 kHz, puesto que son los límites de la zona de estudio y las más representativas. El resto de gráficas se encuentran en el ANEXO IV.
3. IMPLEMENTACIÓN EN VIVADO HLS 35 En la Figura 3.3 y Figura 3.4 se aprecia la respuesta del algoritmo para una fsw de 35 kHz, que con un tiempo de respuesta de poco más de 1 ms, consigue unas estimaciones de R y L con errores de entorno al 3%. (a) (b) Figura 3.3. (a) Estimación de la resistencia R (b) Estimación de la inductancia L en función del tiempo de simulación TSTOP para frecuencia de conmutación fsw de 35 kHz. (a) (b) Figura 3.4. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función del tiempo de simulación TSTOP para frecuencia de conmutación fsw de 35 kHz Conforme aumenta la fsw lo hacen tanto el tiempo de respuesta como los errores de estimación. En el caso de 75 kHz, mostrado en la Figura 3.5 y en la Figura 3.6, el tiempo de respuesta es de unos 2 ms. La repercusión del cambio de fsw es mucho mayor en la estimación de R que en la de L, alcanzando errores del 21% y del 7% respectivamente y siendo los máximos respecto del resto de frecuencias de conmutación. (a) (b) Figura 3.5. (a) Estimación de la resistencia R (b) Estimación de la inductancia L en función del tiempo de simulación TSTOP para frecuencia de conmutación fsw de 75 kHz. 0 1 2 3 4 5 2.5 3 3.5 4 4.5 5 Tiempo de simulación (ms) R (Ohm) 0 1 2 3 4 5 19 20 21 22 23 24 Tiempo de simulación (ms) L (H) 0 1 2 3 4 5 0 10 20 30 40 50 Tiempo de simulación (ms) Error (%) 0 1 2 3 4 5 0 10 20 30 40 50 Tiempo de simulación (ms) Error (%) 0 1 2 3 4 5 2.5 3 3.5 4 4.5 5 Tiempo de simulación (ms) R (Ohm) 0 1 2 3 4 5 19 20 21 22 23 24 Tiempo de simulación (ms) L (H)
3. IMPLEMENTACIÓN EN VIVADO HLS 36 (a) (b) Figura 3.6. (a) Error en la estimación de la resistencia R (b) Error en la estimación de la inductancia L en función del tiempo de simulación TSTOP para frecuencia de conmutación fsw de 75 kHz. 3.4 Conclusiones tras la implementación Aunque inicialmente se superó con creces la ocupación máxima, se consiguió encontrar una solución que cumpliese con las restricciones de tiempo y componentes disponibles. Esto ha permitido, no solamente implementar el algoritmo propuesto, sino valorar la utilidad de Vivado HLS como herramienta de síntesis, optimizando el diseño de forma cómoda y rápida. En cuanto a los resultados relativos a la FPGA, en el mejor caso para el que se cumplía con el área ocupada y el mínimo periodo de reloj, el tiempo necesario para ejecutar el algoritmo ha sido de 1.04 µs, por lo que no se introducen grandes errores producidos a causa de un tiempo de cómputo elevado. Tras la implementación del algoritmo en Vivado HLS se han obtenido estimaciones con errores máximos en R del 21% y en L del 7% para una fsw de 75 kHz, que es el caso más desfavorable. El tiempo de respuesta máximo se sitúa en torno a los 2 ms también para dicha fsw. Tal y como se comprobó previamente en el capítulo anterior, los valores de error son menores al disminuir la frecuencia de conmutación. 0 1 2 3 4 5 0 10 20 30 40 50 Tiempo de simulación (ms) Error (%) 0 1 2 3 4 5 0 10 20 30 40 50 Tiempo de simulación (ms) Error (%)
4. CONCLUSIONES 37 4. CONCLUSIONES El objetivo del presente proyecto es el de analizar un sistema de identificación de cargas de inducción en tiempo real basado en el algoritmo de mínimos cuadrados para implementar en una FPGA. Para ello se realizó un estudio de las distintas formas del algoritmo en MATLAB, introduciendo y variando parámetros como el ruido en las señales de medida, el número de bits usado en la representación de las mismas, la frecuencia de muestreo FS o el tiempo de cómputo TC. Los resultados del estudio de la frecuencia de conmutación fsw se reflejan en la TABLA 2.3, en forma de los valores máximos de error obtenidos. A la vista de estos se descartó la forma con entradas V0 e IL por su elevada sensibilidad al ruido introducido al representar dichas señales con menos bits. Aunque los valores de error máximos resultantes con la forma Euler hacia adelante y trapezoidal son similares cuando el tiempo de cómputo TC es igual al periodo de muestreo, con la trapezoidal el tiempo de convergencia y el nivel de dispersión del error son menores. Con el estudio de TC se obtuvieron los resultados presentados en la TABLA 2.4. A partir de ellos se descartó para la implementación la forma Euler hacia adelante, ya que el tiempo de ejecución del algoritmo se limitaba a 0.6 µs, mientras que con la trapezoidal aumentaba hasta los 2.5 µs. Los resultados presentados en los capítulos del presente proyecto hacen referencia únicamente a los obtenidos con frecuencia de muestreo de 10 MHz, ya que con 20 MHz los errores son mayores en todos los casos. Se escogió la forma recursiva trapezoidal con entradas V0, IL y VC en 10 bits y frecuencia de muestreo de 10 MHz para analizar su implementación en una FPGA. Dicho análisis de implementación se llevó a cabo mediante la herramienta Vivado HLS utilizando señales tomadas experimentalmente en un banco de pruebas. Los resultados referentes a la mejor solución encontrada se presentan en la TABLA 3.3. Estos mostraron que, para la FPGA disponible, se conseguía una implementación viable sin necesidad de un elevado tiempo de cómputo, evitando así el aumento de los errores de estimación por esa causa. Para alcanzar estos resultados se aprovechó la facilidad que proporciona el software a la hora de introducir directrices sin necesidad de cambiar el código que modela el algoritmo. Se representaron finalmente en MATLAB las estimaciones obtenidas alcanzando unos errores máximos en las mismas del 21% y el 7% para R y L respectivamente. Se observa por tanto un elevado aumento con respecto a los resultados del análisis previo del algoritmo. Esto es debido a las distintas contribuciones de
4. CONCLUSIONES 38 factores como las tolerancias de los componentes, ruido no previsto en las medidas o la variabilidad de la carga patrón a lo largo de la zona de estudio. La conclusión final es que la implementación de la forma óptima del algoritmo mínimos cuadrados es viable mediante los recursos disponibles, aunque se incurre en errores importantes a altas frecuencias de conmutación. Como trabajo futuro se propone estudiar la utilización de filtros para reducir los errores producidos por el ruido que portan las señales medidas, ya que en general el algoritmo presenta una fuerte sensibilidad al ruido en la señal de entrada IL. Equation Chapter 9 Section 1
BIBLIOGRAFÍA 39 BIBLIOGRAFÍA [1] J. Acero, J. M. Burdio, L. A. Barragan, D. Navarro, R. Alonso, J. Ramon, F. Monterde, P. Hernandez, S. Llorente, and I. Garde, "Domestic Induction Appliances," Industry Applications Magazine, IEEE, vol. 16, pp. 39-47, 2010. [2] O. Jimenez, L. A. Barragan, D. Navarro, J. I. Artigas, I. Urriza, and O. Lucia, "FPGA-based harmonic computation through 1-bit data stream signals from delta-sigma modulators applied to induction heating appliances," in Applied Power Electronics Conference and Exposition (APEC), 2011 Twenty-Sixth Annual IEEE, 2011, pp. 1776-1781. [3] O. Jimenez, L. A. Barragan, D. Navarro, O. Lucia, J. I. Artigas, and I. Urriza, "FPGA-based real-time calculation of the harmonic impedance of series resonant inductive loads," in 36th Annual Conference on IEEE Industrial Electronics Society IECON 2010, 2010, pp. 1715-1720. [4] O. Jimenez, L. A. Barragan, I. Urriza, O. Lucia, D. Navarro, and J. I. Artigas, "FPGA-based real-time harmonic impedance measurement of series resonant loads by using lock-in algorithm," in 37th Annual Conference on IEEE Industrial Electronics Society IECON 2011, 2011, pp. 2808-2813. [5] D. Palacios, "Identificación y control electrónico aplicado al calentamiento por inducción," Departamento de Ingeniería Electrónica y Comunicaciones, Universidad de Zaragoza, 2005. [6] J. Acero, "Estudio teórico y experimental del calentamiento por inducción domestico de cualquier material conductor," Departamento de Ingeniería Electrónica y Comunicaciones, Universidad de Zaragoza, 2005. [7] Available: http://www.xilinx.com/fpga/asic.htm [8] Xilinx. (2011). "Spartan-6 FPGA Datasheet". Available: http://www.xilinx.com [9] O. Lucia, L. A. Barragan, J. M. Burdio, O. Jimenez, D. Navarro, and I. Urriza, "A Versatile Power Electronics Test-Bench Architecture Applied to Domestic Induction Heating," IEEE Transactions on Industrial Electronics, vol. 58, pp. 998-1007, 2011. [10] O. Lucia, J. M. Burdio, I. Millan, J. Acero, and D. Puyal, "Load-Adaptive Control Algorithm of Half-Bridge Series Resonant Inverter for Domestic Induction Heating," IEEE Transactions on Industrial Electronics, vol. 56, pp. 3106-3116, 2009.
BIBLIOGRAFÍA 40 [11] Xilinx. (2012). "Vivado Design Suite User Guide". Available: http://www.xilinx.com/products/design-tools/vivado/integration/esldesign/hls/index.htm [12] Xilinx. (2012). "Vivado Design Suite Tutorial". Available: http://www.xilinx.com/products/design-tools/vivado/integration/esldesign/hls/index.htm