Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Instituto Superior Politécnico José Antonio Echeverría Facultad de Ingeniería Eléctrica Centro de Investigaciones y Pruebas Electroenergéticas Trabajo de Diploma para optar por el título de Ingeniero Electricista “Implementación y simulación del algoritmo de sincronización p-PLL mediante un DSP LF2407A.” Autor: Alejandro Méndez Samper Tutores: MSc. Osley López González MSc. Josnier Ramos Guardarrama La Habana, junio de 2016 “Año 58 de la Revolución” I Dedicatoria Con mucho amor para mi familia: A mi abuela Blanca, por nunca dudar. A mi abuelo Eduardo, por la pregunta correcta en el momento preciso. A mi padre Jesús, al que espero le vaya muy bien en su nuevo trabajo como cosmonauta, por ser un ejemplar patrón a seguir. A mi madre Walkiria, quien realmente merece la entrevista que está esperando, por el consejo siempre certero y la palabra firme. A mi novia Debora, por siempre esperar un poquito más y apoyar cada una de mis locuras. A mis hermanos Emmanuel, Carlos y Raúl por ser la vanguardia siempre en los momentos más difíciles. A mis primos María Carla y Carlos David por pasarme por al lado e impulsarme a seguir. A mis tías Belkis e Ileana por el cocotazo educativo. Y a mi familia política Olgui, Orlado, Almita, Pacho, Laurita, Yibran y el pequeño Dieguito por dejarme entrar de corazón. II Agradecimientos No puede pasar por alto esta oportunidad sin agradecer a las personas que de una forma u otra han contribuido a la llegada de este momento. Mis compañeros de estudio con quienes compartí horas y horas de sufrimiento Magdiel y Dashiel. Mi segunda mamá la profesora Mercedes quien con su ejemplo supo inspirar en mí el deseo de ser no solo un ingeniero si no un buen ingeniero. Mis compañeros de equipo quienes me hicieron sufrir y a quien hice sufrir en cada entrega de proyecto Piti, Yoan, Meliza y Camaguey. A mis tutores Osley y Josnier y a Ernesto sin los cuales este trabajo de diploma habría sido impensable. III Este trabajo de diploma ha sido revisado y aprobado por las instancias correspondientes y para que así conste se firma la presente. Tutor: Nombre: _______________________________________________ Firma: _________________________________________________ Fecha: _________________________________________________ Organismo: _____________________________________________ Oponente: Nombre: _______________________________________________ Firma: _________________________________________________ Fecha: _________________________________________________ Organismo: _____________________________________________ J Dpto.: Nombre: _______________________________________________ Firma: _________________________________________________ Fecha: _________________________________________________ Organismo: _____________________________________________ IV Declaro que soy el único autor de este trabajo de diploma y autorizo al Instituto Superior Politécnico José Antonio Echeverría para que haga de este trabajo de diploma el uso que estime pertinente Firma: _______________________ V Resumen En el presente trabajo se realiza el análisis del algoritmo de sincronización p-PLL basado en la teoría de las potencias instantáneas de Akagi. Inicialmente se realiza un estudio de las principales características de los métodos de sincronización existentes y su utilización en sistemas trifásicos con el objetivo de detectar correctamente el ángulo de fase de la componente fundamental. Luego se profundiza en detalles respecto a los procesadores de señales digitales (DSP) enfocándose en el módulo de evaluación ICETEK-LF2407-C el cual representa la plataforma en la cual se desarrollará el algoritmo p-PLL. Para concluir una explicación bastante detallada sobre la construcción del hardware y el software es ofrecida, así como los resultados obtenidos en las simulaciones y experimentos llevados a cabo. Abstract In the present work it is shown the analysis of the p-PLL synchronization algorithm based on the Akagi instantaneous power theory. Initially a study of the main characteristics of the existing synchronization methods it is show, and its application in the detection of the fundamental angle phase in three-phase systems. Later in the document details about the evaluation module ICETEK-LF2407-C are given due to the fact that this is the development platform used in the investigation. To conclude a very detailed explanation about the hardware and the software of the implemented system is given along with the results of the simulations and experiments. VI Índice. Dedicatoria .......................................................................................................... I Agradecimientos ................................................................................................. II Resumen ............................................................................................................ V Abstract .............................................................................................................. V Introducción. ....................................................................................................... 1 Problema ............................................................................................................ 3 Hipótesis............................................................................................................. 3 Objetivo General. ............................................................................................... 3 Objetivos Específicos. ........................................................................................ 3 Capítulo 1: “Circuitos PLL. Métodos de sincronización.” .................................... 4 1.1 Introducción. .......................................................................................... 4 1.2 Métodos de detección de fase. ............................................................. 5 1.3 Circuitos PLL. ........................................................................................ 5 1.3.1 Características de los circuitos PLL. .................................................. 7 1.3.2 Sistema de referencias estacionario. Transformada de Clarke. ......... 7 1.3.3 Sistema de referencias sincrónico. Transformada de Park. ............... 8 1.3.4 Fundamentos de los circuitos PLL trifásicos. ..................................... 9 1.4 Topologías PLL. .................................................................................. 11 1.4.1 Marco de Referencia Sincrónico – PLL. ........................................... 12 1.4.2 Doble Marco de Referencia Sincrónico. ........................................... 13 1.4.3 Integrador de segundo orden generalizado-PLL. ............................. 14 1.5 PLL de Akagi. ...................................................................................... 16 1.5.1 Bases de la teoría de potencias instantáneas. ................................. 16 1.5.2 Teoría p-q. ....................................................................................... 17 1.5.3 Circuito de sincronización PLL de Akagi. ......................................... 18 1.6 Controlador Proporcional Integral. ...................................................... 19 1.6.1 Ajuste de los parámetros del PI. ...................................................... 20 1.7 Conclusiones. ...................................................................................... 21 Capítulo 2: “Introducción a los Procesadores de Señales Digitales. Módulo de Evaluación ICETEK-F2407-C”. ......................................................................... 22 2.1 Introducción.............................................................................................22 2.2 Procesador de Señales Digitales. ........................................................... 22 2.3 Características de los DSP. .................................................................... 23 2.4 Plataformas de DSP. ............................................................................... 23 VII 2.4.1 Software de Desarrollo. .................................................................... 24 2.4.2 Código Ensamblador. ....................................................................... 25 2.4.3 Lenguaje C. ...................................................................................... 26 2.4.4 Code Composer Studio. .................................................................... 26 2.5 Familia DSP TMS320C2000. DSP LF2407A .......................................... 30 2.5.1 Arquitectura de LF2407A. ................................................................. 33 2.5.2 Interrupciones en LF2407A. .............................................................. 35 2.5.3 Registros IFR e IMR. ........................................................................ 36 2.5.4 Mapa de Memoria. ............................................................................ 37 2.5.5 Gestores de Eventos. ....................................................................... 39 2.5.6 Conversor Análogo Digital. ............................................................... 40 2.5.7 SCI y SPI. ......................................................................................... 43 2.6 Módulo de evaluación ICETEK-LF2407-C. ............................................. 43 2.6.1 Interruptor DIP. ................................................................................. 44 2.6.2 Memoria Integrada. ........................................................................... 45 2.6.3 JTAG. ................................................................................................ 45 2.6.4 Pines de Expansión. ......................................................................... 46 2.7 Conclusiones........................................................................................... 47 Capítulo 3: Hardware y Software. ..................................................................... 48 3.1 Introducción. ........................................................................................ 48 3.2 Descripción del sistema de acondicionamiento. .................................. 48 3.3 Descripción del software de control. ................................................... 55 3.4 Resultados .......................................................................................... 59 3.4.1 Simulaciones para valores ideales. .................................................. 60 3.4.2 Simulaciones de señales no ideales. ............................................... 63 3.5 Conclusiones. ...................................................................................... 71 Conclusiones. ................................................................................................... 72 Recomendaciones. ........................................................................................... 73 Referencias Bibliográficas: ............................................................................... 74 Bibliografía. ...................................................................................................... 76 Anexo 1. Bibliotecas de Registros de LF2407A. .............................................. 76 1 Introducción. Desde sus inicios la generación de energía eléctrica ha sido realizada desde grandes instalaciones centralizadas: centrales a base de combustibles fósiles, hidroeléctricas e incluso centrales nucleares. Esta tendencia se ha sostenido por mucho tiempo, debido a que económicamente este tipo de instalaciones ofrecen un rendimiento económico excelente, pero no sucede lo mismo con su costo medioambiental y rendimiento energético. En las últimas décadas el concepto de generación distribuida ha ido tomando fuerza ya que reduce la cantidad de energía que se pierde en la transmisión, por solo mencionar una de las muchas ventajas que ofrece. La infraestructura clásica de los sistemas eléctricos de potencia se está moviendo cada vez con más velocidad en dirección a los sistemas de generación distribuida, basados esencialmente en fuentes renovables de energía, lo cual ha introducido a su vez nuevos desafíos en campos como la estabilidad de los sistemas y la calidad de la potencia transmitida. El interés creciente en el uso de fuentes de energía renovables como los paneles fotovoltaicos y aerogeneradores en los sistemas de generación distribuida, ha creado la necesidad de contar con dispositivos capaces de sincronizar a estos últimos con el sistema electroenergético; debido a lo impredecibles que pueden llegar a ser estas fuentes, este es un aspecto de gran importancia, ya que mediante una efectiva sincronización se pueden evitar la ocurrencia de colapsos y descontrol al introducir corrientes indeseadas debido a la diferencia de potencial de los generadores puestos en paralelo. Con el fin de conseguir dicha sincronización, se han incluido a su vez los convertidores de potencia o inversores como interfaz entre el generador y la red. En la actualidad estos dispositivos son capaces de medir y controlar los flujos de potencia, influyendo en parámetros fundamentales como la tensión, la frecuencia y el ángulo de fase, contribuyendo así al desarrollo de estrategias de control de potencia que expanden las posibilidades de interactuar con el sistema incluso en condiciones de falla. Las técnicas utilizadas para conseguir mediciones precisas de los parámetros de la red y así realizar la sincronización también han evolucionado en el tiempo, comenzando por los simples circuitos de detección de cruce por cero hasta los muy eficientes circuitos de seguimiento de fase o PLL (Phase Locked Loop), dispositivos estos últimos capaces de detectar el ángulo de fase de la tensión de la componente fundamental y realizar un control de forma efectiva cuando las redes son desbalanceadas y/o distorsionadas. 2 A su vez, los avances tecnológicos encaminados hacia la utilización en procesos industriales de softwares, micro computadoras y dispositivos de programación digital han hecho más fácil el manejo y monitoreo de los PLL, por lo que hoy en día es relativamente sencillo implementarlos y ajustarlos utilizando un software, o incluso simular condiciones extremas para monitorear su respuesta. Aun así, este sigue siendo un campo en plena expansión, debido a que, incluso existiendo muchos métodos, ninguno ha demostrado ser superior en cada aspecto a los demás. Teniendo en cuenta lo anteriormente planteado, el presente trabajo de diploma aborda el análisis e implementación de las herramientas necesarias para la modelación de uno de estos métodos basado en la teoría P-Q de Akagi, mediante el uso de una tarjeta de evaluación ICETEK-F2407-C, la cual contiene un DSP TMS320LF2407A. 3 Problema ¿Es necesario para la sincronización de inversores de potencia a la red eléctrica, la detección correcta del ángulo de fase de la componente fundamental si esta se encuentra afectada por armónicos? Hipótesis Se pueden diseñar, implementar y simular algoritmos de sincronización capaces de detectar correctamente el ángulo de fase de la componente fundamental de las tensiones en redes trifásicas distorsionadas, mediante la utilización de un DSP TMS320LF2407A. Objetivo General. Implementar y simular el algoritmo de sincronización p-PLL basado en la teoría p-q de Akagi. Objetivos Específicos. Estudiar la teoría de las Potencias Instantáneas de Akagi. Estudiar las potencialidades del DSP TMS320LF2407A para su aplicación en la técnica de control PLL. Estudiarel o los métodos de ajustes a los reguladores proporcional integral. Diseñar, simular y construir un sistema de acondicionamiento de las señales de tensión de la red eléctrica. 4 Capítulo 1: “Circuitos PLL. Métodos de sincronización.” 1.1 Introducción. La creciente penetración de las fuentes de energía renovables en los sistemas eléctricos de potencia ha introducido nuevos problemas en términos de estabilidad y transitorios en las redes[1]. Como se puede observar en la figura 1.1.1, entre la fuente y la red existe un dispositivo llamado inversor que tiene como objetivo convertir la potencia de directa en potencia de alterna y sincronizar al generador con la red. Figura 1.1.1- Diagrama de un sistema de inyección de potencia a la red. Con el objetivo de mejorar su eficiencia y también para mejorar la operación de los sistemas, en la actualidad, los inversores son provistos de funcionalidades avanzadas que les permiten estar a la altura de las nuevas demandas tecnológicas[1]. En esto juegan un papel protagónico el sistema de sincronización a la red que presente el dispositivo. Una buena sincronización no solo permite un buen monitoreo de la amplitud y la fase de la tensión de la red, o la capacidad de inyectar potencia de una manera más eficiente en esta, sino que, además facilita el control de potencia activa y reactiva o la obtención de las componentes armónicas de corriente para aplicaciones de filtros activos[2]. 5 Luego, para poder conseguir una eficiente sincronización una etapa importante en el control es la detección de fase, para la cual a través de los años han sido implementadas varias variantes. Siendo en la actualidad la más habitual la utilización de circuitos PLL. 1.2 Métodos de detección de fase. En los complejos sistemas de sincronización existentes hoy día, la detección del ángulo de fase de la componente fundamental juega un papel esencial. El método de cruce por cero es el más simple de los métodos de detección de fase, tal como su nombre lo indica, este determina la información de fase encontrando dos puntos consecutivos que cruzan por cero. Este método ha perdido popularidad debido a que de esta forma la información de fase solo puede ser obtenida en cada semiciclo, lo cual afecta la rapidez con que se efectúa la obtención del ángulo, sin contar que cuando se tiene una red contaminada de armónicos y/o desbalanceada los resultados obtenidos pueden ser erróneos.[3] Otras tendencias apuntan al uso de filtros pasa-bajos, filtros de vector espacial y filtros Kalman, pero al igual que con el método anterior, el rendimiento de estos disminuye cuando las tensiones de fase presentan desbalance y contenido de armónicos.[4] Por otra parte, se encuentran los circuitos PLL, los cuales son cada vez más utilizados y se presentan como el método más completo a la hora de trabajar con señales deformadas. 1.3 Circuitos PLL. Los circuitos PLL pueden ser definidos como sistemas de control realimentado a lazo cerrado, que sincronizan su señal de salida tanto en frecuencia como en fase con la componente fundamental de la tensión de la red, es decir, se obtiene a la salida una señal con igual frecuencia y fase que la señal de entrada con la cual es alimentado. [5][6] A pesar de existir diferentes topologías, la mayoría de los circuitos PLL presentan una estructura similar, la cual está basada en tres etapas fundamentales como se muestra en la figura 1.2.1. 6 Figura 1.2.1- Configuración básica de un circuito PLL. Dichas etapas son: Comparador o detector de fase (CF): Es un dispositivo que suministra una salida dependiente del valor de la diferencia de fases entre las señales de entrada y salida. Filtro pasa-bajo: Es un filtro destinado a transmitir las componentes de baja frecuencia de la señal de salida de la etapa anterior. Oscilador controlado por tensión(VCO): Oscilador cuya frecuencia de trabajo se puede variar linealmente aplicando tensión a su entrada. La operación del PLL comienza en el comparador de fase, básicamente el CF compara los valores de fase de las señales de entrada y retroalimentación, la diferencia entre ellas representa el error de fase, el cual es filtrado por el filtro pasa-bajo para eliminar ruidos y componentes de alta frecuencia en la señal. Luego la salida del filtro es utilizada como señal de control por el VCO, el cual variará su frecuencia con el objetivo de reducir la diferencia de fase entre la señal de entrada y la de retroalimentación. Así, si el ángulo de fase de la entrada es mayor que el ángulo de fase de la salida del VCO, el CF dará una tensión positiva a su salida que resultará en un aumento de la frecuencia del VCO, lo cual implica un crecimiento continuo del ángulo de fase de la salida de VCO hasta que se alcance el ángulo de fase de la entrada. De esta manera el PLL asegura que la frecuencia a la entrada sea igual a la de salida y mantiene el error de fase en valores pequeños.[6] 7 1.3.1 Características de los circuitos PLL. Las aplicaciones de los PLL son varias, abarcando desde la modulación y demodulación de fase y/o frecuencia hasta la recuperación de señales portadoras en transmisiones satelitales. Esto indica que incluso aunque presenten el mismo funcionamiento básico, existen características que los diferencian entre sí, diferencias que deben ser atendidas para obtener un buen diseño en cada aplicación.[6] Por ejemplo, para algunas aplicaciones el PLL debe ser rápido siguiendo la fase de entrada, en otras ocasiones una gran velocidad no es la mayor prioridad. Esto depende del ancho de banda que el PLL presente, un ancho de banda estrecho provocará una respuesta transitoria más lenta que uno ancho, pero aumentará el rechazo al ruido.[7] El rango de enganche del PLL es otra característica muy importante y se define como la máxima diferencia de frecuencia inicial, entre la señal de entrada y la salida del VCO, que permite el enganche del PLL. Nótese que, si esta característica no es considerada, en el inicio de la operación el no lograría un estado estable. Otras características de importancia referentes a esta última son el tiempo de adquisición del enganche y la tolerancia de modulación, las cuales también pueden si no se tienen en cuenta en el diseño ocasionar problemas relacionados con la estabilidad del sistema. En la actualidad el elemento que diferencia fundamentalmente los circuitos PLLs, es la forma en la que es puesto en práctica el bloque detector de fase[8], el objetivo de esta práctica es que las señales lleguen al filtro con el menor contenido de armónico posible para alcanzar una respuesta rápida y dinámica. Las estructuras más reconocidas están basadas en los ejes de referencia estacionario y de velocidad de sincronismo. 1.3.2 Sistema de referencias estacionario. Transformada de Clarke. La transformada de Clarke desplaza las tensiones instantáneas trifásicas 𝑣𝑎 , 𝑣𝑏 y 𝑣𝑐 a las tensiones instantáneas en los ejes 𝛼𝛽0. En las ecuaciones 1.3.2.1 y 1.3.2.2 se muestran la transformada de Clarke y su inversa respectivamente[2]. [ 𝑉0 𝑉𝛼 𝑉𝛽 ] = √ 2 3 [ 1 √2 1 √2 1 √2 1 − 1 2 − 1 2 0 √3 2 − √3 2 ] [ 𝑉𝑎 𝑉𝑏 𝑉𝑐 ] (1.3.2.1) 8 [ 𝑉𝑎 𝑉𝑏 𝑉𝑐 ] = √ 2 3 [ 1 √2 1 0 1 √2 − 1 2 √3 2 1 √2 − 1 2 − √3 2 ] [ 𝑉0 𝑉𝛼 𝑉𝛽 ] (1.3.2.2) Similarmente las corrientes de línea de un sistema trifásico genérico 𝑖𝑎 , 𝑖𝑏 e 𝑖𝑐 también pueden ser transformadas a los ejes 𝛼𝛽0 siguiendo el mismo procedimiento. Una de las ventajas que brinda la aplicación de la transformación 𝛼𝛽0, es la separación de la componente de secuencia cero de las componentes de fase de 𝑎𝑏𝑐 ya que los ejes 𝛼 y 𝛽 no contribuyena las componentes de dicha secuencia. Por ejemplo, en un sistema trifásico sin neutro conectado no existe componente de secuencia cero, por lo que 𝑣0 puede ser eliminada de la ecuación quedando la simplificación como se muestra en la ecuación 1.4.1.3. [ 𝑉𝛼 𝑉𝛽 ] = √ 2 3 [ 1 − 1 2 − 1 2 0 √3 2 − √3 2 ] [ 𝑉𝑎 𝑉𝑏 𝑉𝑐 ] (1.3.2.3) 1.3.3 Sistema de referencias sincrónico. Transformada de Park. Para llegar a este sistema de referencia, las tensiones provenientes de la red son sometidas a dos transformaciones: inicialmente la anteriormente explicada transformada de Clarke y acto seguido la transformada de Park, la cual se encarga de llevar el vector de tensión 𝛼𝛽 a un sistema de coordenadas 𝑑𝑞 rotatorio a velocidad de sincronismo. Alternativamente, existe una forma directa para obtener las coordenadas 𝑑𝑞 combinando ambas transformaciones. En la ecuación 1.3.3.1 se muestra la transformada de Park y en la 1.3.3.2 la combinación de ambas. 9 [ 𝑉𝑑 𝑉𝑞 ] = [ cos 𝜃0 sin 𝜃0 −sin 𝜃0 cos 𝜃0 ] [ 𝑉𝛼 𝑉𝛽 ] (1.3.3.1) [ 𝑉𝑑 𝑉𝑞 ] = 2 3 [ cos 𝜃0 cos(𝜃0 − 2𝜋 3 ) cos(𝜃0 + 2𝜋 3 ) −sin(𝜃0 − 2𝜋 3 ) −sin(𝜃0 − 2𝜋 3 ) −sin(𝜃0 − 2𝜋 3 ) ] [ 𝑉𝑎 𝑉𝑏 𝑉𝑐 ] (1.3.3.2) 1.3.4 Fundamentos de los circuitos PLL trifásicos. Aplicando algunas modificaciones el análisis tradicional de los PLL explicado en la sección 1.3, este puede ser aplicado a sistemas de señales de entrada trifásica. Figura 1.3.4.1- Diagrama de bloques de un circuito PLL. Con este objetivo las señales de entradas trifásicas de referencia y la salida del VCO pueden ser representadas como espacios vectoriales[9]: 𝑢1(𝑡) = 𝑈1 ∙ 𝑒 𝑗(𝜔1𝑡 +𝜙1) (1.3.4.1) 𝑢2(𝑡) = 𝑈2 ∙ 𝑒 𝑗(𝜔2𝑡 +𝜙2) (1.3.4.2) Utilizando la transformada de Clarke estas expresiones pueden ser fácilmente llevadas a la forma: 𝑢(𝑡) = 𝑢𝛼 + 𝑗𝑢𝛽 (1.3.4.3) 10 Siendo las componentes 𝑢𝛼 y 𝑢𝛽: 𝑢𝛼 = 𝑈 ∙ cos( 𝜔𝑡 + 𝜙) (1.3.4.4) 𝑢𝛽 = 𝑈 ∙ sin( 𝜔𝑡 + 𝜙) (1.3.4.5) Alternativamente estas señales pueden ser representadas en el marco sincrónico rotatorio presentando resultados similares. Figura 1.3.4.2- Diagrama de bloques con centrado de frecuencia añadido. Como se puede apreciar en la figura 1.3.4.2 la entrada del VCO, 𝜔2, está relacionada con la salida del regulador proporcional integral (PI) 𝑢𝑓(𝑡) por la ecuación: 𝜔2 = 𝜔0 + 𝑢𝑓(𝑡) (1.3.4.6) Donde 𝜔0 representa la frecuencia central( 2𝜋𝑓). La operación del CF está basada en el producto de los vectores 𝑢1 y 𝑢2 lo cual alternativamente puede ser representado en forma rectangular quedando la ecuación: 𝑢𝑑(𝑡) = (𝑢1𝛼 ∙ 𝑢2𝛽 + 𝑢1𝛽 ∙ 𝑢2𝛽) + 𝑗(𝑢1𝛽 ∙ 𝑢2𝛼 − 𝑢1𝛼 ∙ 𝑢2𝛽) (1.3.4.7) Esta expresión presenta la misma estructura que las componentes de los elementos de potencia instantánea real 𝑝 y potencia instantánea imaginaria 𝑞 en la teoría de las potencias instantáneas de Akagi[2], tema que se explicara con más detalle en el epígrafe 1.5.2. 11 Luego si se considera que 𝜔1 = 𝜔2 = 𝜔0 (el PLL se encuentra enganchado en la frecuencia central), entonces el error de fase de la señal puede ser simplificado a: 𝑢𝑑(𝑡) = 𝑈1 ∙ 𝑈2 ∙ sin(𝜙1 − 𝜙2) (1.3.4.8) Lo cual para pequeñas variaciones en la fase es: 𝑢𝑑(𝑡) = 𝑘𝑑 ∙ 𝜙𝑒(𝑡) (1.3.4.9) Donde 𝑘𝑑 = 𝑈1 ∙ 𝑈2 y 𝜙𝑒(𝑡) = 𝜙1(𝑡) − 𝜙2(𝑡). Si las amplitudes 𝑈1 y 𝑈2 se normalizan a la unidad entonces. 𝑢𝑑(𝑡) ≈ 𝜙𝑒(𝑡) (1.3.4.10) En el diagrama de bloques de la figura 1.3.4.2, la frecuencia centrada aparece como un término añadido a la salida del filtro lo que produce el mismo efecto que una condición inicial diferente de cero a la salida del integrador. Esta medida debe ser tenida en cuenta ya que, si el VCO comienza su operación desde frecuencia cero, incluso con pequeñas perturbaciones, el PLL puede no ser capaz de sincronizar con la frecuencia deseada. Por ejemplo, en aplicaciones conectadas a la red, donde la frecuencia es esencialmente constante (60 Hz), una solución sería ajustar la frecuencia del PLL a la nominal de la red. Sin embargo, una solución aún más segura es la introducción de límites a la salida del PI para que así, la frecuencia de variación del VCO este restringida a valores cercanos a los de la central. 1.4 Topologías PLL. Dependiendo de la aplicación y los requerimientos de la misma, las topologías PLL recomendadas pueden variar. Algunas pueden ser muy precisas en estado estacionario, otras presentan una buena respuesta dinámica ante perturbaciones o algunas incluso eliminan en gran medida la posibilidad de errores en estado transitorio. 12 1.4.1 Marco de Referencia Sincrónico – PLL. El marco de referencia sincrónico – PLL (SRF-PLL, Synchronous Reference Frame), es una de las topologías más desarrolladas y prolíficas dentro de los métodos de sincronización a base de PLL. Figura 1.4.1.1- Diagrama del SRF-PLL. En el diagrama se puede observar que dicha topología presenta la estructura básica de los PLL, el detector de fase está representado por el bloque de la transformada de Park, la tensión en cuadratura 𝑉𝑞 representa el error entre la entrada y la salida, el bloque PI actúa como el control del lazo y se puede observar como VCO se encuentra representado por un integrador y un valor constante de centrado de frecuencia (𝜔0 = 2𝜋60). Esta técnica tiene como objetivo la alineación del vector proyectado por 𝑉𝑞 y 𝑉𝑑 con el eje de directa, haciéndoles coincidir en modulo cuando la componente de cuadratura se hace nula. En esta condición la posición del ángulo SRF coincidirá con el ángulo de fase del vector de tensión, describiendo el comportamiento en estado estable del SRF-PLL para sistemas balanceados donde 𝜔0 = 𝜔𝑖 por tanto 𝜃0 = 𝜃𝑖.[10] 𝜃𝑒 = 𝜃𝑖 − 𝜃0 (1.3.3.1) [ 𝑉𝑑 𝑉𝑞 ] = [ 𝑉 ∙ cos 𝜃𝑒 𝑉 ∙ sin 𝜃𝑒 ] [ 𝑉 𝑉 ∙ 𝜃𝑒 ] (1.3.3.2) 13 Donde, 𝑉 es el valor de amplitud máximo de la componente de secuencia positiva de la tensión de fase y 𝜃𝑒 es la diferencia de ángulo de fase entre la entrada y la salida. Se desea que este algoritmo sea capaz de operar en un ancho de banda amplio, lo cual se puede llevar a cabo cuando se considera que la secuencia positiva se encuentra centrada. No obstante, si se fueran a considerar perturbaciones (desbalances en las entradas) se recomienda una sintonización de baja ganancia, lo cual a su vez afecta la respuesta dinámica del SFR-PLL creando un error residual en régimen permanente en las magnitudes detectadas. Ante situaciones de desbalance los resultados 𝑉𝑞 y 𝑉𝑑 contienen segundos armónicos sustanciales que dificultan obtener información sobre la magnitud y ángulo del vector de tensión de la red, además de conllevar a la introducción de un error de doble frecuencia[11], errores estos que pueden ser eliminados realizando una pre filtración a la señal. 1.4.2 Doble Marco de Referencia Sincrónico.Como su nombre lo indica este método está compuesto por dos SRF-PLL convencionales y la diferencia de que se le agrega un circuito de síntesis, cuyo objetivo es descomponer el vector de tensiones en sus componentes de secuencia positiva y negativa, lo que elude las limitaciones del SRF-PLL ante perturbaciones. En este caso ambos PLL operan independientemente, rotando en dirección opuesta, lo cual permite detectar ambas componentes paralelamente[10]. Figura 1.4.2.1- Diagrama DSRF-PLL. 14 En la figura se representa el diagrama del DSRF-PLL, los cuadrantes resaltados en la figura representan el circuito de síntesis, constituido por: un filtro pasa-bajos (LPF por sus siglas en inglés), dos multiplicadores y dos funciones trigonométricas ortogonales cuyo objetivo es generar dos señales ortogonales en fase y de igual magnitud a la señal de entrada. Dichas señales realimentan la entrada de los bloques de transformada de Park y así la secuencia positiva es detectada por el PLL asociado a la salida 𝜃+ , mientras que las secuencia negativa es detectada por el PLL asociado a la salida 𝜃−. El comportamiento del DSRF-PLL se puede describir de la siguiente manera; inicialmente 𝑉𝑑 = 0 y 𝜃 = 𝜔0 ∙ 𝑡 , no existe desacople dado que las salidas de los circuitos de síntesis son nulas, así ambos PLL contienen información tanto de la componente positiva como de la negativa. Considerando un sistema rotatorio de secuencia positiva la ecuación de las coordenadas (𝑉𝑞 , 𝑉𝑑) queda como se muestra: [ 𝑉𝑑 + 𝑉𝑞 +] = [ 𝑉+ 0 ] + [ 𝑉− ∙ cos(2 ∙ 𝜔0 − ∙ 𝑡) 𝑉− ∙ sin(2 ∙ 𝜔0 − ∙ 𝑡) ] (1.4.2.1) Mientras que la negativa queda como: [ 𝑉𝑑 − 𝑉𝑞 −] = [ 𝑉− 0 ] + [ 𝑉+ ∙ cos(2 ∙ 𝜔0 − ∙ 𝑡) 𝑉+ ∙ sin(2 ∙ 𝜔0 − ∙ 𝑡) ] (1.4.2.2) El principal inconveniente que presenta esta topología, es el exceso en la amplitud del ángulo y la frecuencia antes de ser sincronizado, lo cual puede provocar grandes errores transitorios debido al propio desacople de las secuencias[12]. 1.4.3 Integrador de segundo orden generalizado-PLL. El Integrador de Segundo Orden Generalizado (SOGI, Second Order Generalizaed Integrator) es un algoritmo para la detección de fase, basado en la separación de las componentes de secuencia que presenta una mejor respuesta dinámica que el DSRF- PLL[13]. 15 En la figura 1.4.3.1 se muestra la estructura básica del SOGI-PLL, donde se puede observar que, de la señal de entrada, el generador de cuadratura de SOGI crea dos nuevas señales: una señal ortogonal 𝑉𝛽 y una señal filtrada 𝑉𝛼. Figura 1.4.3.1- Diagrama de SOGI-PLL básico. Para mayor claridad en el diagrama de bloques de la figura 1.4.3.2 se muestra la estructura del GC de SOGI. Figura 1.4.3.2- Estructura del GC de SOGI. Como se puede observar en la figura 1.4.3.2, la generación de la señal en cuadratura se consigue utilizando dos integradores en una configuración retroalimentada y las funciones de transferencia que describen este proceso son: 𝐻𝛼(𝑠) = 𝑉𝛼(𝑠) 𝑉𝑖(𝑠) = 𝑘∙𝜔𝑛∙𝑠 𝑠2+𝑘∙𝜔𝑛∙𝑠+𝜔𝑛 2 (1.4.3.1) 16 𝐻𝛽(𝑠) = 𝑉𝛽(𝑠) 𝑉𝑖(𝑠) = 𝑘∙𝜔𝑛 2 𝑠2+𝑘∙𝜔𝑛∙𝑠+𝜔𝑛2 (1.4.3.2) La función de transferencia 𝑉𝛼 muestra una característica de filtro pasa bandas con una frecuencia centrada en 𝜔𝑛. El ancho de banda del filtro mencionado es determinado por el factor de amortiguación k e independiente de 𝜔𝑛. Por lo que cuando la frecuencia del sistema es 𝜔𝑛, entonces 𝑉𝛼 se igualara en magnitud y fase con 𝑉𝑖 . Por otra parte la característica de 𝑉𝛽 es de filtro pasa-bajos. Cuando la frecuencia del sistema es igual a 𝜔𝑛 ,entonces 𝑉𝛽 se atrasa 90° respecto a la componente fundamental de la señal de entrada 𝑉𝑖 . Para bajos valores de k se obtiene un mejor filtrado, pero si estos valores de k se disminuyen mucho pueden ocasionar respuestas des amortiguadas. Por tanto, la elección de la ganancia no está determinada únicamente por los aspectos de filtrado de SOGI sino por la combinación de filtrado y desempeño dinámico. [14] 1.5 PLL de Akagi. Esta topología se basa fundamentalmente en la teoría de las potencias instantáneas de Akagi por lo que un conocimiento general de dicha teoría es imprescindible para su implementación. El PLL de Akagi es dentro de las topologías existentes uno de los más simples. Debido a esto su implementación requiere un bajo esfuerzo computacional al igual que su simulación. Al no tratarse de un PLL complejo permite probar las capacidades de la plataforma de desarrollo disponible. 1.5.1 Bases de la teoría de potencias instantáneas. La teoría de las potencias instantáneas o p-q, fue publicada por primera vez por la IEEE en el año 1984, dos años después de que fuera escrita por primera vez en idioma japonés. Esta teoría se basa en un juego de potencias instantáneas definidas en el dominio del tiempo, no impone restricciones respecto a las formas de ondas de tensiones o corrientes y puede ser aplicada a sistemas trifásicos con o sin neutro. Además, es válida tanto en estado estacionario como en transitorio, lo que la convierte en una teoría muy flexible y eficiente para el diseño de controladores de acondicionadores de potencia [2]. 17 A diferencia de otros conceptos tradicionales de potencia, la teoría p-q considera los sistemas trifásicos como una unidad, no como una superposición o suma de circuitos de fases independientes. 1.5.2 Teoría p-q. La teoría de las potencias instantáneas asegura que para un sistema trifásico con o sin neutro, en estado estable o transitorio, la potencia instantánea activa describe el flujo de energía instantáneo total por segundo de dos subsistemas.[2] Según Akagi, la potencia trifásica puede ser calculada en función de las tensiones de fase y las corrientes de línea instantáneas como se expresa en la ecuación 1.5.2.1: 𝑝3∅ = 𝑣𝑎(𝑡) ∙ 𝑖𝑎(𝑡) + 𝑣𝑏(𝑡) ∙ 𝑖𝑏(𝑡) + 𝑣𝑐(𝑡) ∙ 𝑖𝑐(𝑡) (1.5.2.1) Donde 𝑣𝑎, 𝑣𝑏 y 𝑣𝑐 son las tensiones de fase instantáneas e 𝑖𝑎, 𝑖𝑏 e 𝑖𝑐 son las corrientes de línea instantáneas. En la teoría p-q se definen tres potencias instantáneas: la potencia instantánea de secuencia cero 𝑝0, la potencia instantánea real 𝑝 y la potencia instantánea imaginaria 𝑞, las cuales son obtenidas mediante las tensiones de fase instantáneas y las corrientes de línea instantáneas en los ejes 𝛼𝛽0. [ 𝑝0 𝑝 𝑞 ] = [ 𝑣0 0 0 0 𝑣𝛼 𝑣𝛽 0 𝑣𝛽 −𝑣𝛼 ] [ 𝑖0 𝑖𝛼 𝑖𝛽 ] (1.5.2.2) En los sistemas trifásicos sin conductor neutro no hay presencia de componente de secuencia cero, por lo que en estos casos solo existen las potencias instantáneas definidas en los ejes 𝛼𝛽. [ 𝑝 𝑞] = [ 𝑣𝛼 𝑣𝛽 𝑣𝛽 −𝑣𝛼 ] [ 𝑖𝛼 𝑖𝛽 ] (1.5.2.3) 18 Donde la potencia real instantánea 𝑝 representa el flujo total de energía por unidad de tiempo en términos de las componentes 𝛼𝛽 y la potencia imaginaria instantánea 𝑞 no tiene un significado físico tradicional pero representa la cantidad de corriente o potencia que fluye en cada fase sin transportar energía. 1.5.3 Circuito de sincronización PLL de Akagi. Basándose en la teoría p-q de Akagi, este circuito de sincronización PLL es capaz de rastrear o seguir continuamente la frecuencia fundamental de un sistema de tensiones medido. Un diseño apropiado de este PLL debe permitir una operación correcta ante formas de onda distorsionada y/o desbalanceadas. Existen dos diferentes configuraciones en el PLL de Akagi, p-PLL y q-PLL, la diferencia principal entre ambas es que en q-PLL las corrientes ficticias estarán enfase con las entradas de tensión, mientras que en p-PLL existirá un desfasaje de 90° entre ellas. En el diagrama de la figura 1.5.3.1 se muestra la estructura del p-PLL que será en definitiva el método que se desea implementar a lo largo de la investigación. Figura 1.5.3.1- Diagrama de bloques del algoritmo p-Pll de Akagi. Como se puede observar en el diagrama de bloques en la figura 1.5.3.1, las entradas del circuito son las componentes propias de un sistema trifásico genérico 𝑣𝑎, 𝑣𝑏 y 𝑣𝑐. Las cuales mediante la utilización de la transformada de Clarke son desplazadas al marco de referencia estacionario. Por otra parte, la entrada del controlador PI es la suma de los productos de las componentes de tensión instantánea y las corrientes ficticias generadas por la salida de VCO. El PLL solo puede alcanzar el punto de operación en estado estable, si el valor promedio a la entrada del controlador proporcional integral (PI) es cero. Por ejemplo, si las 19 corrientes ficticias se atrasan 90° respecto a las tensiones instantáneas a la entrada, la operación se encontraría en un estado inestable, ya que cualquier perturbación que incrementara ligeramente la frecuencia del sistema provocaría que los fásores de tensión rotaran más rápido que los de corriente aumentando el ángulo de desfasaje entre ellos, lo que disminuiría el valor promedio a la entrada del PI por debajo de cero disminuyendo a su vez la salida 𝜔 aumentando aún más el ángulo de desfasaje. Por tanto, el único punto de operación estable para el PLL se alcanza cuando el fásor de corriente adelanta 90° al de tensión. En este caso, ante la misma perturbación el ángulo de desfasaje se reduciría, aumentando el valor promedio a la entrada del PI por encima de cero, lo cual incrementaría la señal de salida 𝜔 forzando al fásor de corriente a rotar más rápido, manteniendo así la ortogonalidad.[2], [9] 1.6 Controlador Proporcional Integral. El controlador Proporcional Integral (PI) es un mecanismo de control por retroalimentación ampliamente utilizado en sistemas de control industrial. Este calcula la desviación o error entre un valor medido y un valor deseado. El PI se aprovecha de la ventaja particular de los reguladores proporcionales (rapidez de respuesta) y de la de los integrales (comportamiento en estado estacionario) para conseguir una acción de control de muy buena calidad.[15] Figura 1.5.4.1- Controlador Proporcional Integral. El funcionamiento básico del PI es el siguiente: mediante un sensor el controlador recibe una señal externa que representa el valor que se desea alcanzar (referencia), a este se le resta la señal real o medida, obteniendo así la señal de error que determina en cada instante la diferencia que hay entre el valor deseado y el valor medido. Luego la señal de error es utilizada por los componentes del PI, y la sumatoria de estos componen la señal de salida que el controlador va a utilizar para gobernar al actuador. 20 𝑈𝑐 = 𝐾𝑝 ∙ 𝜙𝑒(𝑡) + 𝐾𝑖 ∫𝜙𝑒(𝑡) (1.6.1) La señal resultante de la suma se llama variable manipulada y no se aplica directamente sobre el actuador, sino que debe ser transformada para ser compatible con el actuador utilizado. 1.6.1 Ajuste de los parámetros del PI. Este es un aspecto muy importante a la hora del diseño de un control, debido a que el objetivo de los ajustes de los parámetros del PI es lograr que el bucle de control corrija eficazmente y en el mínimo tiempo los efectos de las perturbaciones; se tiene que lograr la mínima integral de error. Si los parámetros del controlador PI (Kp y Ki) se eligen incorrectamente, el proceso a controlar puede ser inestable. Ajustar un lazo de control significa ajustar los parámetros del sistema de control a los valores óptimos para la respuesta del sistema de control deseada. Para realizar dicho ajuste existen diferentes técnicas, una de ellas es la sintonización Ziegler-Nichols, la cual asume que gran cantidad de procesos pueden definirse según la función transferencial: 𝐺(𝑠) = 𝐾0∙𝑒 −𝑠𝜏0 1+𝛾0∙𝑠 (1.6.1.1) Los coeficientes 𝐾0, 𝜏0 y 𝛾0 se obtienen de la respuesta del sistema en lazo abierto a una entrada escalón. Se parte del sistema estabilizado y se aplica una entrada escalón de entre un 10 y 20 % del valor nominal y se registra la respuesta de la salida hasta que se estabilice en el nuevo punto de operación. Luego, la relación de estos coeficientes con los parámetros del controlador es[16], [17]: 𝐾𝑝 = 1.2 ∙ 𝛾0 𝐾0∙𝜏0 (1.6.1.2) 𝐾𝑖 = 𝐾𝑝 𝑇𝑖 = 𝐾𝑝 2∙𝜏0 (1.6.1.3) https://es.wikipedia.org/w/index.php?title=Lazo_de_control&action=edit&redlink=1 21 Otra forma de obtener los parámetros del controlador se basa en el conocimiento de los valores de amortiguamiento 𝜉 y la banda ancha(rango de sincronización) del filtro 𝜔𝑛 necesarios en la aplicación[9], [18]. En este caso las expresiones son las siguientes: 𝜔𝑛 = √𝐾𝑖 (1.6.1.4) 𝜉 = 𝐾𝑝 2∙√𝐾𝑖 (1.6.1.5) Aun existiendo diversos métodos, los antes mencionados son los más referenciados en la literatura consultada, y en algunas ocasiones el método de prueba y error debe ser utilizado para complementarlos. 1.7 Conclusiones. En este capítulo se sentaron las bases para la mejor comprensión de lo que es un método de sincronización basado en PLL para la detección del ángulo de fase de la tensión de red. Para esto debido a la importancia que reviste conocer sus limitaciones y potencialidades se tuvieron en cuenta tres de los métodos más comúnmente utilizados el SRF-PLL, el DSRF-PLL y el SOGI-PLL. También se profundizo en la teoría p-q de Akagi para poder comprender el funcionamiento de los algoritmos p-PLL y q-PLL, con el objetivo de realizar la implementación de al menos uno de ellos, además, se dedicó un espacio a la explicación del funcionamiento y sintonización del control PI necesario para dicha implementación. 22 Capítulo 2: “Introducción a los Procesadores de Señales Digitales. Módulo de Evaluación ICETEK-F2407-C”. 2.1 Introducción. Los métodos de sincronización basados en PLLs vistos hasta ahora, requieren para su buen funcionamiento de que las complejas operaciones aritméticas que realizan sean ejecutadas a grandes velocidades. Esto implica que el dispositivo que se utilice para estas funciones debe ser escogido teniendo en cuenta que cada una de sus características sean las adecuadas para la aplicación en cuestión. Es por esta razón que teniendo en cuenta las potencialidades de los Procesadores de Señales Digitales se ha escogido el TMS320LF2407A como herramienta de desarrollo para la tarea de implementar el PLL de Akagi. En el presente capítulo un análisis sobre esta potente herramienta es realizado con el objetivo de demostrar su capacidad para enfrentar el desarrollo de los diferentes algoritmos de sincronización existentes en la bibliografía especializada, además de un acercamiento a las herramientas y/o diferentes prácticas utilizadas para su utilización. 2.2 Procesador de Señales Digitales. Un procesador de señales digitales (DSP por sus siglas en inglés) es cualquier dispositivo capaz de operar señales representadas digitalmente, pero estricta y prácticamente se les da esta denominación a microprocesadores específicamente diseñados para realizar procesado digital de señales. Los DSP utilizan arquitecturas especiales para acelerarlos intensos cálculos matemáticos implicados en el procesado de señales en tiempo real. Estos dispositivos también incluyen modos especiales de direccionamiento y características de control de flujo de programa diseñadas para acelerar la ejecución de operaciones repetitivas. Además, los DSP incluyen periféricos especiales que permiten la comunicación eficiente del procesador con el resto de los componentes del sistema. La diferencia esencial entre un DSP y un microprocesador reside en las características diseñadas para soportar tareas de altas prestaciones, repetitivas y numéricamente intensas con las que cuentan los DSP, al contrario de los microprocesadores o microcontroladores los cuales no están especializados para ninguna aplicación en específico[19], [20]. 23 2.3 Características de los DSP. Los DSP tienen un rango de aplicación muy extenso, que abarca desde la electrónica de consumo hasta los más avanzados sistemas de comunicación satelital. Encontrar un procesador que satisfaga las necesidades de todos los usuarios o aplicaciones es prácticamente imposible, por lo que se hace muy importante en el momento de escoger un DSP para una aplicación específica conocer sus prestaciones, costo, integración, consumo y facilidad de desarrollo. Los productos donde el costo y la integración son un factor de importancia máxima son aquellos sistemas pequeños, baratos y con un gran volumen de producción, tales como los productos de telefonía digital. En sistemas portátiles alimentados por baterías, el consumo constituye el factor crítico, pero la facilidad de desarrollo pierde importancia. A pesar de que estos dispositivos casi siempre implican el desarrollo de hardware y software a medida, el gran volumen de producción justifica el esfuerzo extra de desarrollo. Un segundo grupo de aplicaciones comprendería a las que procesan una gran cantidad de datos mediante algoritmos complejos. Por ejemplo, los dispositivos de exploración sonar o sísmica, poseen un volumen de producción bajo, pero los algoritmos son más exigentes y el diseño del producto más largo y complejo. En estas condiciones el diseñador busca un DSP de máximas prestaciones y buena facilidad de uso. En algunos casos incluso el sistema se construye a partir de placas de desarrollo de catálogo y el software a partir de librerías de funciones ya existentes[19], [20]. 2.4 Plataformas de DSP. Estudios realizados en 2008, arrojaron que el 49% del mercado de los DSP era dominado por Texas Instruments(TI), seguido por Lucent Tecnologies, Freescale y Analog Devices con un 25%, 11% y 10% respectivamente, pero existen otras compañías denominadas fabricantes de terceras partes (Third Party Support) que participan en este mercado, mediante la distribución de tarjetas de evaluación y emuladores de desempeño en tiempo real. En algunos casos las tarjetas son tan especializadas que se incorporan directamente dentro de productos finales. Estos fabricantes claramente deben proporcionar amplia información de diseño del hardware y las características del DSP en que se basa el sistema[21]. En la actualidad se encuentran diversas plataformas de desarrollo, independientes de los fabricantes, las cuales poseen amplios niveles de soporte y costo, desde los muy caros módulos de evaluación (EVM, Evaluation Module) con emulador, hasta los baratos kits de iniciación (DSK, DSP Starter Kit). 24 Los módulos de evaluación son útiles para acelerar el proceso de diseño de las aplicaciones; físicamente son tarjetas que incluyen el DSP y circuitos periféricos tales como codificadores-decodificadores (CODEC) como interface de audio, soporte de emulador JTAG y bancos de memoria. Los módulos de evaluación se pueden conectar dentro de una computadora personal, a través del bus PCI, o externamente mediante un emulador conectado al puerto paralelo o al puerto USB. Los kits de iniciación usualmente son una versión a pequeña escala del módulo de evaluación, cuya ventaja radica en el bajo costo y las herramientas de desarrollo de que disponen que son generalmente fáciles de usar. Además, permiten el desarrollo rápido de prototipos, demostraciones y conceptos de prueba para aplicaciones. Dentro de la gama de productos de estos fabricantes también se encuentra un dispositivo externo que juega un papel muy importante en el proceso de programación y configuración de las tarjetas de DSP, el emulador. El emulador es el dispositivo encargado de la depuración y optimización de las aplicaciones que corren en el DSP, generalmente consisten en una tarjeta externa que interconecta al DSP con la computadora y permite al programador acceder al DSP y sus periféricos. La salida de la tarjeta emuladora se conecta mediante un cable, que contiene un controlador de bus, el cual controla la información de análisis de la tarjeta del procesador. El software de depuración que se instala en la computadora permite al usuario descargar código a la tarjeta de DSP y realizar tareas de depuración, ejecutar paso a paso un programa, ver y editar el contenido de los registros y memoria[21]. 2.4.1 Software de Desarrollo. El software de desarrollo de estos sistemas basados en DSPs es un factor crítico, con la creciente potencia de cálculo de los DSP también ha aumentado la complejidad de sus aplicaciones lo que ha generado una necesidad de comodidad a la hora de escribir el código o programa que se le cargara al sistema. Desarrollar un sistema operativo implica una tarea de cientos y en ocasiones hasta miles de líneas de código en un lenguaje de alto nivel. Por esta razón los fabricantes han creado entornos de desarrollo que facilitan la programación y depuración de los códigos, apoyados además en interfaces fáciles de utilizar. En la mayoría de estos entornos de desarrollo integrados o IDE (Integrated Development Environment) los fabricantes les brindan a los programadores la posibilidad de escribir su código, tanto en ensamblador como en lenguajes de programación de alto nivel de abstracción como “C” o “C++”[21]. 25 2.4.2 Código Ensamblador. El lenguaje ensamblador es un lenguaje de programación de bajo nivel para computadoras, microprocesadores y micro controladores. Implementa una representación simbólica de los códigos de máquina y otras constantes necesarias para programar una arquitectura dada de CPU. Esta representación es usualmente definida por el fabricante de hardware y está basada en mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje[21], [22]. Es importante hacer notar que aun cuando el lenguaje ensamblador ha perdido espacio frente a los lenguajes de alto nivel, este es un código de máquina que trabaja directamente con el procesador y por tanto puede brindar la forma de ejecución más rápida de un algoritmo. Los ambientes de desarrollo que se basan en el uso del lenguaje ensamblador incluyen, ensambladores, enlazadores, simuladores de conjunto de instrucciones, circuitos emuladores, depuradores, tarjetas de desarrollo y librerías. Cada uno de estos módulos tiene una función específica en la herramienta como es lógico. El ensamblador convierte los archivos del código fuente, escritos usando mnemónicos del lenguaje, a archivos binarios de código de objeto para el DSP, produciendo así dos archivos de salida: uno que enlista las operaciones del ensamblador en términos de las localizaciones de memoria en el programa de datos y el otro archivo es de objeto y se usa como entrada en el enlazador. La función del enlazador es combinar varios archivos de objeto y librerías en un solo programa ejecutable. Los enlazadores de DSP se basan en el concepto de mapa de memoria, señalándole al enlazador que segmento de memoria usar para cada sección de código de programa y datos. El simulador esun programa cuya función consiste en simular la operación de un DSP y la ejecución de un programa, permitiendo que mediante una interfaz gráfica se muestre las instrucciones de programa, registros, memoria, banderas y que el usuario pueda manipularlas. Los factores que hacen diferente a un simulador de otro son la precisión, velocidad, integridad y soporte. El depurador es un programa que permite depurar otro programa en desarrollo, mediante este módulo, el programador, puede detener el programa para analizar el estado de las variables, registros y banderas en un punto determinado[21]. 26 2.4.3 Lenguaje C. Se considera a C un lenguaje de programación de alto nivel de abstracción, que proporciona una serie de herramientas muy útiles para desarrollar aplicaciones en DSP. El núcleo del lenguaje es simple y la presencia de librerías con funciones matemáticas y manejo de ficheros facilita en gran medida la programación. La mayoría de los DSP que actualmente se comercializan tienen soporte con este lenguaje e incluso incorporan un compilador en C. El lenguaje C estándar carece de características de simplificación de código de algoritmos DSP, un ejemplo de esto es que omite datos de punto-fijo y complejos. Para solucionar este problema los vendedores de estos programas agregan mejoras que subsanan estas deficiencias, pero esto generalmente implica un costo extra. Generalmente, los compiladores C generan código en ensamblador para que el usuario pueda ver las instrucciones que se generan por cada línea de programa escrita en C. El proceso de configuración del DSP es similar al que se efectúa con lenguaje ensamblador solo que ahora el programa fuente está escrito en C[21], [22]. 2.4.4 Code Composer Studio. Code Composer Studio es el IDE presentado por TI para el desarrollo de sus dispositivos, tanto DSPs como microcontroladores y microprocesadores de propósitos generales. Code Composer Studio o CCS como también suele ser llamado, actúa como interfaz de comunicación entre la tarjeta de desarrollo y la computadora, permitiendo programar el DSP de manera más sencilla. En este IDE, TI incorpora cada uno de los módulos vistos con anterioridad; compilador C, ensamblador, enlazador, simulador y depurador además de brindar estupendas características de visualización gráfica. Gracias al editor que proporciona CCS permite la manipulación de programas en lenguaje C/C++, ensamblador o incluso el manejo de proyectos completos para la construcción de aplicaciones. Code Composer Studio facilita el uso de diversas ventanas de observación y permite establecer puntos de ruptura dentro del programa e incluso puntos de prueba para datos de I/O. También ofrece capacidades gráficas para monitoreo de datos, además de determinar el rendimiento de tiempo que invierte en una porción del programa, ente otras características. En principio Code Composer Studio V2.2 presenta compatibilidad con los sistemas operativos de Windows desde el 95 hasta el XP, pero si se sabe cómo configurar puede ser utilizado en la entrega de Windows 7 de 32 bits. 27 Este software puede ser instalado sin necesidad de tener un dispositivo DSP conectado en la computadora, pero realmente esto no tendría mucho sentido por lo que es pertinente una explicación del procedimiento de instalación desde la misma conexión de la tarjeta DSP, además se asumirá que la instalación se está realizando en Windows 7. Para que la PC reconozca el emulador JTAG, se debe acceder al Administrador de Dispositivos del sistema operativo, si el DSP está conectado a la computadora allí se podrá ver que existe un dispositivo desconocido, en ese caso se debe actualizar el controlador de dicho dispositivo, el asistente de instalación brindara dos opciones para la actualización: buscar automáticamente en el equipo e internet, o buscar el software directamente en un dirección que el usuario debe especificar, si se utiliza la segunda opción la dirección que debe ser suministrada es la de la carpeta donde se encuentre el archivo “seedusb2.sys”. Ya instalado el software del controlador la comunicación entre la computadora y el DSP debe ser satisfactoria. Para comprobar que así sea, el usuario cuenta con el software “usb20emurst”, el cual brinda información sobre si el DSP se encuentra conectado o no. Luego se instala el software junto a un plugin específico que contiene las librerías de comunicación para la familia C2000 de Texas Instruments, esta acción genera dos accesos directos: CCS 2 ('C2000) y Setup CCS 2 ('C2000). Para terminar de configurar la configuración computadora DSP se debe utilizar la aplicación Setup CCS 2 ('C2000), en esta el usuario debe escoger entre las tarjetas disponibles la F24XX XDS510 la cual corresponde con LF2407 y el emulador XDS510 de “Seed”. Una vez escogida la tarjeta, esta debe ser configurada: en la pestaña Board Name & Data File se debe escoger la opción “Auto-generate board data file with extra configuration file”, una vez realizada esta selección se activa la opcion de busqueda del archivo de configuración,donde se debe buscar el fichero “Seedusb2.cfg”, si se han seguido estos pasos la ventana de configuración debe verse como en la figura 2.4.4.1. 28 Figura 2.4.4.1- Ventana de Configuración. En la pestaña “Board Properties” se le asigna al puerto de I/O el valor 0x240. Figura 2.4.4.2. Ventana de Configuración. Pestaña Board Properties. Luego en Processor Configuration utilizando el botón Add Single se añade el procesador quedando como se observa en la figura 2.4.4.3. 29 Figura 2.4.4.3. Ventana de Configuración. Pestaña Processor Configuration. Una vez introducidos estos datos en el software se puede proceder a salvar la configuración e iniciar Code Composer Studio, si todos los pasos fueron seguidos correctamente, el usuario se encontrará en condiciones de comenzar a configurar y programar su tarjeta DSP. Figura 2.4.4.4. Vista final del CCS Setup. Una vez configurado el módulo de evaluación, ya se puede utilizar CCS para preparar el software a utilizar en las diferentes aplicaciones. Code Composer Studio tiene un entorno de programación similar a otros tipos de procesadores ajenos a TI. En la figura 2.4.4.5 muestra la ventana de inicio de CCS. 30 Figura 2.4.4.4. Entorno de CCS. 2.5 Familia DSP TMS320C2000. DSP LF2407A La familia TMS320C2000, perteneciente al fabricante Texas Instruments, posee la arquitectura interna típica de un procesador digital de señales, pero adicionalmente integra un elevado número de periféricos de memoria, de conversión y de comunicaciones, que lo convierten en una adecuada plataforma de diseño para aplicaciones de control de motores y de dispositivos de potencia en general. Se puede decir que combina prestaciones típicas de un micro controlador con una arquitectura de procesador digital de señales. La gran cantidad de periféricos y entradas salidas digitales le dota de una gran flexibilidad y adaptabilidad, dando lugar a soluciones embebidas dentro del propio chip. Pero, al mismo tiempo, la arquitectura interna de procesador digital le permite implementar algoritmos matemáticos de una manera bastante eficiente. Dentro de la familia existen 5 generaciones de DSPs, en orden de aparición ascendente estas son: la línea de 16 bits C240x, la serie de punto-fijo C28x, C28x Piccolo, C28x Delfino de punto-flotante y la más reciente C28x + ARM Cortex M3. Las aplicaciones fundamentales de esta familia se centran en la industria de automoción, fuentes de alimentación, medidores eléctricos, impresoras y copiadoras, sensores inteligentes, láseres ajustables, herramientas de mano, sistemas de aire acondicionado y bienes de consumo en general[23]. 31 Figura 2.5.1 Diagrama de Bloques Funcional del DSP 2407A. La generación C24x posee una CPU de 16 bits en punto-fijo, quepermite conseguir hasta 40 MIPS, y está dotada de tres modos de bajo consumo, un control de emulación JTAG y soporta diseños a 3.3 y 5 V. La generación C28x surge como evolución de C24x, presentando una CPU de 32 bits en punto-fijo, con una capacidad de hasta los 150 MIPS y tensiones de alimentación de 1,9 V para el núcleo y 3,3 V para los periféricos[23]. Específicamente dentro de la familia C24x se encuentra el dispositivo LF2407A, circuito embebido que incluye un CPU de alta velocidad combinado con un set de periféricos típico de un microcontrolador, características que hacen de este, un sistema, adecuado para aplicaciones que requieran de procesado de señales digitales. Un desempeño de 40 millones de instrucciones por segundo (40 MIPS), es una de sus mayores ventajas cuando se compara con los tradicionales microcontroladores de 16 bits. 32 El núcleo 2407A usa una aritmética de punto-fijo de 16 bit con una gran variedad de instrucciones específicamente diseñadas para manipular los intensos cálculos requeridos por las aplicaciones de procesamiento digital. LF2407A es parte de la generación C24x y miembro de la plataforma de DSP de punto-fijo C2000; las similitudes entre las arquitecturas de estos procesadores facilitan la portabilidad del software que para ellos se fabrica, mientras que el control de sus periféricos es prácticamente idéntico en varios aspectos. Comprender el funcionamiento del LF2407A, es probablemente la llave para poder trabajar luego con otros miembros de la plataforma C2000[22]. LF2407A presenta las siguientes características[24]: Tecnología Static CMOS de altas prestaciones que permite: - Ciclo de instrucción de 25 ns. - 40 MIPS. - Diseño de bajo consumo 3.3 V. Tecnología de almacenamiento FLASH. Memoria On-Chip: - 32K word x 16 bits de FLASH EEPROM (4 sectores: 4K, 12K, 12K, 4K). - Característica de seguridad de código para FLASH On-Chip. - 2.5K word x 16 bits de RAM de Datos/Programa, 544 word de Dual-Acces RAM(DARAM) y 2K word de Single-Acces RAM (SARAM) Boot ROM: - Bootloader SCI/SPI. Dos gestores de eventos (EV). Módulos EVA y EVB que incluyen cada uno: - 2 temporizadores de propósitos generales de 16 bits. - 8 salidas PWM de 16 bits. - Banda muerta programable. - 3 unidades de captura. - Conversión Análoga Digital Sincronizada. - Diseñados para control de motores de inducción y de reluctancia conmutada. - Aplicables a múltiples motores y/o control de convertidores. Interfaz de memoria externa. - Hasta 192K word x 16 bits de memoria total. 64K de programa, 64K de datos y 64K de I/O. Temporizador Watchdog. Conversor Analógico-Digital de 10 bits. - 16 canales de entradas multiplexadas. - Mínimo tiempo de conversión de 500 ns. 33 Interfaz CAN 2.0B. Interfaz serie asíncrona SCI (Serial Communications Interface) Interfaz serie síncrona SPI (Serial Peripheral Interface) de 16 bits. Phase-Locked-Loop(PLL) 41 pines de I/O, individualmente programables, multiplexados, de propósitos generales. 5 interrupciones externas. Gestión de consumo. - 3 modos de bajo consumo. - Posibilidad de apagar cada periférico individualmente. Emulación en tiempo real, mediante el estándar IEEE 1149.1(JTAG). 2.5.1 Arquitectura de LF2407A. LF2407A, presentan una arquitectura Harvard modificada, con estructuras de bus separados para memoria de datos y de programa, además de un tercer espacio de memoria de entrada/salida accesible a través de la interfaz de bus externo. El elevado número de periféricos que presentan estos dispositivos, hace necesaria la utilización de un tercer bus de periféricos; este bus esta mapeado en espacio de datos y conectado al mismo bus de datos mediante un módulo especial. Por lo que, todas las instrucciones que operan en espacio de datos también operan en todos los registros de periféricos. 34 Figura 2.5.1 Arquitectura Harvard Mejorada. La separación de espacio de datos y de programa, permite el acceso simultáneo a instrucciones de programa y datos, consiguiendo así un paralelismo que hace posible el uso de operaciones aritméticas, lógicas y de manipulación de bits que pueden ser ejecutadas en un único ciclo de máquina[25]. 35 2.5.2 Interrupciones en LF2407A. Una parte muy importante de un programa es la manipulación de eventos asincrónicos; y una forma de ejecutar dicha manipulación es a través de eventos conocidos como interrupciones. Las interrupciones son eventos especiales, normalmente generados por fuentes externas como los periféricos. Dependiendo del caso, estas señales pueden ser ignoradas, aunque en algunos casos es conveniente “interrumpir” el flujo secuencial de la ejecución y saltar a una función especial que sea capaz de manipular el evento que propició la interrupción. Estas funciones especiales son conocidas como Servicio de Rutinas de Interrupción. El DSP 2407A es capaz de recibir interrupciones de diferentes fuentes, principalmente relacionadas con sus periféricos[25]. El DSP 2407A reconoce dos niveles de interrupción. El propio núcleo provee seis interrupciones enmascarables (INT1-6). Técnicamente, cada una de estas interrupciones debe corresponder a una fuente específica. Por otra parte, el DSP debe ser capaz de servir hasta 49 fuentes de interrupciones, de las cuales la mayoría corresponden a sus periféricos. Para resolver el problema de tener un gran número de interrupciones de hardware a servir, las interrupciones se organizan en grupos de niveles, cada uno correspondiendo a una de las seis interrupciones enmascarables del núcleo [22]. En este asunto es donde interfiere justamente el controlador periférico de expansión de interrupción (PIE por sus siglas en inglés). El PIE intercepta las señales de interrupción de los periféricos y consecuentemente ejecuta la interrupción del núcleo correspondiente. En otras palabras, cada interrupción enmascarable del núcleo es responsable de varias fuentes de interrupción. En consecuencia, los servicios de interrupción ocurren en dos etapas: Inicialmente la ejecución salta al núcleo del servicio de rutinas de interrupción apropiado (GISR por sus siglas en inglés). Luego en GISR se accede al vector de interrupciones periféricas (PIVR por sus siglas en inglés) y de acuerdo al contenido de este salta de nuevo al servicio de rutinas de interrupciones específico (SISR por sus siglas en inglés) de la fuente de interrupciones particular. En la figura 2.6.2.1, se pueden observar las fuentes de interrupción que asimila cada nivel de interrupciones en la distribución del PIE. 36 Figura 2.6.2.1 Diagrama de Bloques del PIE 2.5.3 Registros IFR e IMR. Si se habla de las interrupciones en 2407A, es obligatorio mencionar el registro de banderas de interrupción (IFR por sus siglas en inglés), este es un registro de 16 bits de memoria mapeada en la dirección 0006h de memoria de datos, cuya función es identificar y limpiar interrupciones pendientes. En él se encuentran contenidos los bits banderas para todas las interrupciones enmascarables. Cuando se genera un pedido de interrupción, el bit bandera en el registro de control del periférico correspondiente se pone a 1. Si el bit de enmascaramiento correspondiente también es 1, el pedido de interrupción pasa a la CPU, poniendo 1 en la correspondiente bandera en IFR indicando que hay un pedido de interrupción pendiente[25]. 37 IFR se puede leer y escribir para identificar y limpiar interrupciones pendientes respectivamente. La limpieza de un pedido de interrupciones se realiza poniendo un 1 en el bit correspondiente. Otros eventos que limpian IFR son el reconocimiento de la interrupción por parte del CPU y el reseteo del sistema, aunque el primer método implica que el registro de control de banderas del periférico que solicito la interrupción debe ser limpiado víasoftware. Figura 2.6.3.1 Pedido de Interrupciones. Por otra parte, el registro de enmascaramiento de interrupciones (Interrupt Mask Register, IMR) es un registro de 16 bits de memoria mapeada en la dirección 0004h de memoria de datos, el cual contiene los bits de “enmascaramiento” de todas las interrupciones enmascarables (INT1-INT6). IMR, puede ser leído con el objetivo de identificar que interrupciones están enmascaradas y cuáles no, o se puede escribir en el para “enmascarar” o “desenmascarar” un nivel de interrupciones. Para “desenmascarar” los niveles de interrupción se pone un 1 en el bit correspondiente de IMR, si por el contrario se escribiera un 0 se estará “enmascarando” dicho nivel de interrupción. Una interrupción enmascarada no es reconocible por la CPU, independientemente del valor de INTM (bit de interrupciones globales). De lo contrario si la interrupción no es enmascarada, si el correspondiente bit de IFR es 1 y si INTM vale 0 entonces la CPU es capaz de reconocerla. 2.5.4 Mapa de Memoria. Dado que el diseño de los dispositivos ´240x está basado en una arquitectura Harvard mejorada, estos tienen integrados varios espacios de memoria accesibles en 3 buses paralelos: un bus de direcciones de programa (PAB), un bus de lectura de datos (DRAB) y otro bus de escritura de datos (DWAB). 38 Debido a la independencia de operación de los buses, es posible el a acceso a la memoria de datos y programa simultáneamente, por lo que en un único ciclo de máquina la CALU puede ejecutar hasta tres operaciones en memoria. Por tanto, el mapa de direcciones de memoria en LF2407A se encuentra organizado en tres espacios individuales: Memoria de programa (64K word) donde se encuentran las instrucciones que serán ejecutadas, así como datos de ejecución inmediata. Memoria de datos (64K word) donde se almacena o mantienen los datos que usaran las instrucciones. Memoria de entrada/salida (I/O) (64K word) donde se encuentran las interfaces a periféricos externos. De esta forma queda un espacio total de direcciones de 192K word utilizables. Para apoyar el desempeño y la integración del sistema LF2407A incluye 32K word x 16 bits de memoria flash EEPROM y hasta 2,5K word x 16 bits de RAM. Figura 2.6.4.1 Mapa de memoria. 39 La inclusión de memoria interna trae una serie de ventajas económicas y técnicas como son: Más alto desempeño que en memoria externa (Debido a que se evita el uso de los estados de espera requeridos por las memorias externas). El costo de la memoria externa, encarece el producto La memoria interna posee un menor consumo energético. Mientras que la operación en memoria externa permite acceder a mayores espacios de memoria. 2.5.5 Gestores de Eventos. Los periféricos de mayor peso en LF2407A son sus dos gestores de eventos (EVA y EVB), en ellos se incluyen una serie de módulos que facilitan la generación de pulsos de amplitud modulada (PWM) y capturas cambio de estado. Es en los gestores de eventos donde también se encuentran los temporizadores de propósitos generales, encargados de proveer los conteos de tiempo a los demás módulos del dispositivo y sincronizar la ocurrencia de eventos en los algoritmos. Es to implica que los gestores de eventos son módulos altamente configurables y poseen una larga lista de registros de configuración El temporizador es uno de los activos más importantes que se posee cuando se desea programar un DSP. Utilizando un temporizador se pueden producir y/o controlar eventos periódicos, además pueden ser configurados para generar señales PWM. Los temporizadores juegan un papel muy importante en la utilización práctica de un DSP ya que son los encargados de sincronizar eventos tanto internos, como externos en el programa. El tiempo y el periodo de ejecución son factores importantes a la hora de controlar un motor, encuestar censores o filtrar señales. LF2407A contiene cuatro de estos temporizadores de propósitos generales, dos en cada gestor de eventos, En LF2407A también existen seis unidades de comparación, tres en cada gestor de eventos, su principal tarea es la generación de PWM. Estas unidades se encuentran sincronizadas por los temporizadores 1 y 3 y pueden ser configuradas para producir pulsos en pares de pines. Dichas unidades pueden utilizar una banda muerta especial como accesorio para producir bandas muertas para pares de pines de PWM en activo alto o activo bajo. El término “bandas-muertas” se refiere al intervalo entre el cambio de estado en la señal, durante el cual, la señal no tiene un valor real. El DSP hace uso de un accesorio 40 como este en situaciones en las que se necesite atrasar los flancos de caída/subida de los pulsos para asegurar que al menos una de las señales tenga un valor valido. Como se puede observare la cantidad de registros involucrados en la configuración de estas unidades y otras que se irán analizando, es grande, por lo que es recomendable ir creando una serie de librerías o plantillas que permitan una mayor organización en el desarrollo de programas de gran magnitud. LF2407A está equipado con seis unidades de captura, tres en cada gestor de eventos. Como su nombre indica estas unidades pueden ser configuradas para detectar flancos de caída o de subida en sus pines de entrada. Pueden incluso almacenar información en registros especiales conocidos como FIFO (First In First Out). Estas unidades requieren, al igual que los comparadores, de la sincronización que brindan los temporizadores. 2.5.6 Conversor Análogo Digital. El conversor análogo-digital (ADC) es, junto a los gestores de eventos, de los periféricos más importantes en la plataforma DSP C2000 de Texas Instruments. Específicamente 2407A posee un ADC altamente configurable de 10 bit que presenta un sistema “sample and hold” (S/H), dos secuenciadores y 16 registros para guardar los resultados de los muestreos. El inicio de conversión del ADC puede ser realizado desde diferentes fuentes, como son: los gestores de eventos, software o externamente mediante el pin de inicio de conversión ADCSOC.[22] LF2407A es capaz de muestrear 16 canales diferentes que corresponden físicamente a los pines ADC0-ADC15, los cuales debido a su importancia tienen esta única función. En el ADC de LF2407A una secuencia de conversión involucra un numero de hasta 16 muestras, las cuales se denominan auto-conversiones y son sincronizadas por dos secuenciadores SEQ1 y SEQ2. De estos secuenciadores se debe mencionar que, aunque no es necesario conocer las especificidades de su hardware, es importante al menos manejar los conceptos de su operación, debido a que ciertos eventos relacionados con su funcionamiento están indisolublemente unidos a las interrupciones del ADC. En principio los secuenciadores operan en modo Dual y modo Cascada. En el modo Dual, cada secuenciador ejecuta un numero de pasos de muestreo independientes del otro; como si estuvieran operando dos ADC distintos, mientras que en modo Cascada los secuenciadores trabajan unidos como un único secuenciador de 16 estados y por tanto realizan auto-conversiones como una única unidad. 41 Figura 2.5.6.1 ADC en LF2407A. En el Modulo de Evaluación ICETEK-F2407-C se tiene acceso a cada uno de los pines del ADC, por lo que deben ser tomadas una serie de medidas para su buen funcionamiento. El pin VCCA por donde recibe la alimentación el ADC se encuentra referenciado en el interruptor DIP de la tarjeta, más adelante en el capítulo se especifica con más detalle la función del interruptor DIP, pero por ahora es importante saber que para que el ADC sea capaz de recibir datos este pin (VCCA) debe estar en estado alto. Por otra parte, los pines de referencia VREFHI y VREFLO deben estar conectador a los pines 3.3Va y AGND respectivamente con el fin de que la conversión se realice correctamente.
Compartir