Universidad del Istmo Campus Tehuantepec Tesis presentada para obtener el título de Ingeniero en Computación Título de la tesis: ANÁLISIS Y COMPARACIÓN DE SISTEMAS DE CONTROL PID Y PID DIFUSO EN LÓGICA RECONFIGURABLE Presentado por: Williams Antonio Pantoja Laces Asesor de tesis: Dr. Ignacio Algredo Badillo Tehuantepec, Oaxaca Agosto 2013 Con dedicatoria a toda mi familia II Resumen En la actualidad, la tecnología está en constante avance y el campo de control automático no es la excepción, ya que hoy en día se requieren sistemas inteligentes para controlar múltiples procesos, algunos de estos procesos requieren también alta velocidad de procesamiento por lo que la exploración hacia el uso de dispositivos FPGAs se encuentra en una tendencia creciente. En este trabajo se desarrolla un análisis y comparación de un controlador PID y PID difuso en lógica reconfigurable aplicados al control de motores de CD, esto con el fin de obtener conclusiones sobre el comportamiento de ellos. Se realiza primeramente una búsqueda bibliográfica en libros, revistas y artículos de divulgación científica, tanto física como digitalmente para obtener el conocimiento acerca de estos sistemas, así también conocer lo que se ha realizado últimamente. De esta manera se establecen los fundamentos teóricos de control y lógica difusa. El establecimiento de estas bases ayuda a comprender el funcionamiento de los sistemas de control clásicos e inteligentes, en específico los basados en lógica difusa. Posteriormente, se desarrolló en software (Sw) ya que sirve como punto de partida para el desarrollo más importante, el cual esta realizado con lógica reconfigurable (plataforma hardware, Hw). Se resume que en este trabajo se realizan 2 diseños en software y 4 arquitecturas en hardware. Estas ultimas están divididas en una arquitectura del PID clásico y se proponen 3 arquitecturas nuevas para el controlador PID difuso; las novedades de estas arquitecturas son la flexibilidad en el diseño en una de ellas , así como también la estructura y distribución de los bloques que hacen posible los cálculos para obtener una señal de control. III El análisis realizado en este trabajo esta basado referente a los siguientes parámetros: el tiempo de respuesta, comportamiento ante ruido y recursos hardware utilizados. El análisis y las comparaciones estarán basados en los siguientes rubros: Tiempos de las señales de salida Se realiza con el estudio del tiempo de respuesta, sobreelongación, tiempo de subida y tiempo de retardo, los cuales son medidos en tiempo continuo para el desarrollo Sw y en ciclos de reloj para el desarrollo Hw. Comportamiento ante ruido El análisis del comportamiento ante ruido se realiza tanto para los controladores en software como en los de hardware, este análisis se realiza comparando la señal sin ruido contra la señal con ruido y la señal con ruido con la señal de referencia, obteniendo el error cuadrático medio y el error promedio. Cantidad de recursos hardware Se toman en cuenta las arquitecturas del PID y PID difuso para distintos dispositivos FPGAs, esto con el fin de conocer en que dispositivo conviene implementarlo. Además, este trabajo busca brindar bases en la toma de decisiones de los diseñadores al desarrollar sistemas de control clásicos como el PID e inteligentes como el PID difuso, así como también en plataforma software y hardware. IV Agradecimientos A Dios. Por haberme permitido llegar hasta este punto y haberme dado salud para lograr mis objetivos, además de su infinita bondad y amor. A mis padres. Juan Pantoja Barbosa y Antonia Laces Hernández, por mostrarme con paciencia, amor y comprensión el camino hacia la superación por medio del conocimiento. A mis hermanos. Juan Pantoja Laces y Briseida Pantoja Laces, por estar conmigo en mi formación académica. A mis familiares. Porque gracias a su apoyo y consejos he llegado a realizar una de mis metas profesionales. En especial a mis tías Claudia Pantoja Barbosa, Eustolia Pantoja Barbosa y Minerva Pantoja Barbosa. A la Universidad del Istmo Por haberme dado cobijo y por las lecciones que aprendí en ella, asimismo, por haberme dado su voto de confianza y por todo el apoyo otorgado a mi persona. También a la PROMEP por la beca otorgada. V A mi director de tesis. Dr. Ignacio Algredo Badillo por su gran apoyo y motivación para la culminación de mis estudios profesionales y para la elaboración de esta tesis; por su tiempo compartido y por impulsar el desarrollo de mi formación profesional. A mis revisores de tesis. A M.C. Ernesto Cortéz Pérez, M.C. Félix Emilio Luis Pérez, Dr. Miguel Ángel Hernández López y M.C Víctor Hugo García Rodríguez por su amabilidad, buena disposición, paciencia, por el tiempo que me dedico para que este trabajo culminara exitosamente, mi agradecimiento sincero. A mis profesores. Que durante toda mi carrera han aportado con un granito de arena a mi formación, en especial a M.C. Sergio Juárez Vázquez, M.A.G.N. Silvia Reyes Jiménez, M.C. J. Jesús Arellano Pimentel por sus consejos y su enseñanza. A mi compañera, amiga y novia. Claudia por estar en cada momento junto a mí y brindarme apoyo incondicional. A mis amigos. Benito, Sergio, Rodolfo, Fajardo, Laurencio, José Roberto, Salvador, Francisco Javier, Luis y los demás miembros de la banda que han estado conmigo y que los considero muy buenos amigos. Cuanto más grandes somos en humildad, tanto más cerca estamos de la grandeza <Rabindranath Tagore> VI Índice general Resumen III Agradecimientos V 1. Introducción 1 1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.4. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5. Alcances y metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.1. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5.2. Metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2. Marco teórico 11 2.1. Sistemas de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.1. Motores de Corriente Directa . . . . . . . . . . . . . . . . . . . . . 17 2.2. Controladores clásicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.1. Controlador Proporcional (P) . . . . . . . . . . . . . . . . . . . . . 19 2.2.2. Controlador Proporcional-Derivativo (PD) . . . . . . . . . . . . . . 20 2.2.3. Controlador Proporcional-Integral (PI) . . . . . . . . . . . . . . . . 21 2.2.4. Controlador Proporcional-Integral-Derivativo (PID) . . . . . . . . . 22 2.3. Control Difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 VII 2.3.1. Variables lingüísticas . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.2. Conjuntos clásicos o duros y conjuntos difusos . . . . . . . . . . . 24 2.3.3. Funciones de pertenencia . . . . . . . . . . . . . . . . . . . . . . . 25 2.4. Sistemas difusos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.1. Diseño de sistemas difusos . . . . . . . . . . . . . . . . . . . . . . 30 2.4.1.1. Sistema difuso puro . . . . . . . . . . . . . . . . . . . . 30 2.4.1.2. Sistema difuso Mamdani . . . . . . . . . . . . . . . . . 31 2.4.1.3. Sistema difuso Sugeno . . . . . . . . . . . . . . . . . . 39 2.4.2. Controlador PID difuso . . . . . . . . . . . . . . . . . . . . . . . . 40 2.5. Lógica reconfigurable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5.1. Dispositivos Programables . . . . . . . . . . . . . . . . . . . . . . 43 2.5.2. Dispositivo FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.5.2.1. Ventajas del uso de FPGAs . . . . . . . . . . . . . . . . 44 2.5.2.2. Tecnologías de programación . . . . . . . . . . . . . . . 45 2.5.2.3. Fabricantes de FPGAs . . . . . . . . . . . . . . . . . . . 46 2.5.2.4. Componentes de FPGAs . . . . . . . . . . . . . . . . . . 47 3. Antecedentes 49 3.1. Control clásico en software . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2. Control inteligente en software . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3. Control clásico en hardware . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4. Control inteligente en hardware . . . . . . . . . . . . . . . . . . . . . . . 54 3.5. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4. Sistemas de control propuestos y desarrollo 57 4.1. Controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.1.1. Desarrollo en software del controlador PID . . . . . . . . . . . . . 59 4.1.2. Desarrollo en hardware del controlador PID . . . . . . . . . . . . . 60 4.2. Controlador PID difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.2.1. Desarrollo en software del controlador PID difuso . . . . . . . . . 69 4.2.2. Desarrollo en hardware del controlador PID difuso . . . . . . . . . 77 VIII 5. Resultados 101 5.1. Respuesta en la salida de los controladores . . . . . . . . . . . . . . . . . . 101 5.1.1. Señales de respuesta de los controladores PID y PID difuso desarrollados en software . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.1.2. Señales de respuesta de los controladores PID y PID difuso desarrollados en hardware . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.2. Cálculo de error y comportamiento ante ruido . . . . . . . . . . . . . . . . 109 5.2.1. Cálculo del error . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 5.2.2. Comportamiento ante ruido o perturbaciones . . . . . . . . . . . . 114 5.2.2.1. Respuesta a perturbaciones en controladores PID y PID difuso en software . . . . . . . . . . . . . . . . . . . . . 115 5.2.2.2. Respuesta a perturbaciones en controladores PID y PID difuso en hardware . . . . . . . . . . . . . . . . . . . . 119 5.3. Recursos hardware de las arquitecturas propuestas . . . . . . . . . . . . . . 123 5.3.1. Recursos hardware del controlador PID . . . . . . . . . . . . . . . 123 5.3.2. Recursos hardware del controlador PID difuso . . . . . . . . . . . 125 5.4. Comparación con otros trabajos . . . . . . . . . . . . . . . . . . . . . . . 130 6. Conclusiones 133 A. Transformada de Laplace y funciones de transferencia 139 A.1. Transformada de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 A.1.1. Transformada inversa de Laplace . . . . . . . . . . . . . . . . . . 140 A.2. Funciones de Transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B. System Generator 147 B.1. Blockset de Xilinx en Simulink . . . . . . . . . . . . . . . . . . . . . . . . 148 B.1.1. Xilinx Blockset . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 B.1.2. Xilinx Reference Blockset . . . . . . . . . . . . . . . . . . . . . . 149 B.2. Tipos de Señales en System Generator . . . . . . . . . . . . . . . . . . . . 150 B.2.1. Bloque System Generator . . . . . . . . . . . . . . . . . . . . . . 150 IX Bibliografía 157 X Índice de cuadros 4.1. Nomenclatura usada en los conjuntos de entrada y de salida . . . . . . . . . 66 4.2. Reglas difusas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3. Inferencia de las Reglas del controlador PID difuso . . . . . . . . . . . . . 67 4.4. Reglas difusas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.1. Tiempos y Sobreelongación del controlador PID en software . . . . . . . . 103 5.2. Tiempos y Sobreelongación del controlador PID difuso en software . . . . 104 5.3. Tiempos y Sobreelongación del controlador PID en hardware . . . . . . . . 105 5.4. Tiempos y sobreelongación de la arquitectura 1 del PID difuso en hardware 106 5.5. Tiempos y sobreelongación de arquitectura 2 PID difuso en hardware . . . 108 5.6. Tiempos y sobreelongación de arquitectura 3 PID difuso en hardware . . . 109 5.7. Tamaño de muestra y Valor de Erms para el PID en SW . . . . . . . . . . . 111 5.8. Tamaño de muestra, valor de E prom yErms para el PID difuso en SW . . . . 112 5.9. Tamaño de muestra, valor de E prom y Erms para el PID en HW . . . . . . . 113 5.10. Tamaño de muestra, valor de E prom yErms para el PID difuso en HW . . . . 114 5.11. Tamaño de muestra y Valor de Erms para el PID en SW (estudio ante ruido) 117 5.12. Tamaño de muestra y Valor de Erms para el PID difuso en SW (estudio ante ruido) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.13. Tamaño de muestra y Valor de Erms para el PID en HW (estudio ante ruido) 120 5.14. Tamaño de muestra y Valor de Erms para el PID difuso en HW (estudio ante ruido) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.15. Recursos PID implementado en Artix 7, Spartan 6 y Virtex 5 . . . . . . . . 124 5.16. Tiempos y Sobreelongación del controlador PID en hardware . . . . . . . . 125 5.17. Recursos de arquitectura 1 implementada en Artix 7, Spartan 6 y Virtex 5 . 126 XI 5.18. Tiempos y Sobreelongación del controlador PID difuso en la arquitectura 1 127 5.19. Recursos de arquitectura 2 implementada en Artix 7, Spartan 6 y Virtex 5 . 127 5.20. Tiempos y Sobreelongación del controlador PID difuso en la arquitectura 2 128 5.21. Recursos de arquitectura 3 implementada en Artix 7, Spartan 6 y Virtex 5 . 129 5.22. Tiempos y Sobreelongación del controlador PID difuso en la arquitectura 3 130 5.23. Comparación PID con otros trabajos relacionados usando tecnología Spartan 130 5.24. Comparación PID difuso con otros trabajos relacionados usando tecnología Spartan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.25. Comparación PID difuso con otros trabajos relacionados usando tecnología Virtex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 B.1. Bibliotecas de Xilinx Blockset . . . . . . . . . . . . . . . . . . . . . . . . 149 B.2. Bibliotecas de Xilinx Reference Blockset . . . . . . . . . . . . . . . . . . 149 XII Índice de figuras 2.1. Sistema de control abierto . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2. Sistema de control retroalimentado . . . . . . . . . . . . . . . . . . . . . . 14 2.3. Sistema de control digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4. Sistema de control automático continuo . . . . . . . . . . . . . . . . . . . 15 2.5. Curva de respuesta ante la funcion escalón . . . . . . . . . . . . . . . . . . 19 2.6. Función triangular en MatLab con la función trimf(x,[3 6 8]) . . . . . . . . 26 2.7. Función trapezoidal en MatLab con la función trapmf(x,[2 4 6 8]) . . . . . 27 2.8. Función Gaussiana en MatLab con la función gaussmf(x, [0.5 5]) . . . . . . 28 2.9. Función Campana en MatLab con la función gbellmf(x, [2 4 5]) . . . . . . 29 2.10. Sistema difuso puro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.11. Sistema difuso tipo Mamdani . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.12. Valor de pertenencia del fuzzificador no unitario . . . . . . . . . . . . . . . 32 2.13. Regla Si-entonces Mamdani . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.14. Ubicación gráfica del valor de salida usando COA . . . . . . . . . . . . . . 36 2.15. Ubicación de SOM, MOM y LOM . . . . . . . . . . . . . . . . . . . . . . 37 2.16. Ejemplo gráfico de bisección . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.17. Sistema difuso tipo Sugeno . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.18. Regla tipo Si-entonces Sugeno . . . . . . . . . . . . . . . . . . . . . . . . 39 2.19. Flexibilidad, coste, complejidad y prestaciones en diseños de sistemas . . . 43 2.20. Componentes de un FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.1. Diagrama esquemático del controlador PID conectado a una planta. . . . . 58 4.2. Controlador PID y planta en software . . . . . . . . . . . . . . . . . . . . 59 4.3. Operación derivada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 XIII 4.4. Operación Integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.5. Controlador PID implementado en hardware . . . . . . . . . . . . . . . . 61 4.6. Diagrama del controlador PID difuso con la planta . . . . . . . . . . . . . 62 4.7. Función de pertenencia triangular . . . . . . . . . . . . . . . . . . . . . . 63 4.8. Funciones de pertenencia de la variable E . . . . . . . . . . . . . . . . . . 64 4.9. Conjuntos difusos de la variable E y CE . . . . . . . . . . . . . . . . . . . 65 4.10. Funciones de pertenencia de entradas (E y CE) y salida (O) . . . . . . . . . 69 4.11. Diagrama del controlador Difuso . . . . . . . . . . . . . . . . . . . . . . . 70 4.12. Respuesta del controlador difuso . . . . . . . . . . . . . . . . . . . . . . . 71 4.13. Pantalla del toolbox fuzzy de MatLab . . . . . . . . . . . . . . . . . . . . . 72 4.14. Variable de entrada error . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.15. Variable de entrada derivada del error . . . . . . . . . . . . . . . . . . . . 73 4.16. Función de salida ajustada . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.17. Interfaz de ingreso de las reglas Si-entonces . . . . . . . . . . . . . . . . . 75 4.18. Exportación del sistema difuso al workspace de MatLab . . . . . . . . . . 75 4.19. PID difuso implementado en Simulink de MatLab . . . . . . . . . . . . . . 76 4.20. Importación de la variable PIDfuzzy2 . . . . . . . . . . . . . . . . . . . . . 76 4.21. Etapas del módulo difuso a desarrollar en hardware . . . . . . . . . . . . . 77 4.22. Paso de parámetros desde el editor de MatLab . . . . . . . . . . . . . . . . 78 4.23. Variables en workspace de MatLab . . . . . . . . . . . . . . . . . . . . . . 79 4.24. Representación gráfica de las variables en workspace . . . . . . . . . . . . 80 4.25. Fuzzificación con paso de parámetros . . . . . . . . . . . . . . . . . . . . 81 4.26. Módulo fuzzificación1 de la entrada determinada por el error . . . . . . . . 82 4.27. Selector de activación del módulo fuzzificación1 . . . . . . . . . . . . . . . 83 4.28. Módulo de fuzzificación2 de la entrada determinada por la derivada del error 84 4.29. Selector_de_activación de la etapa 2 de fuzzificación . . . . . . . . . . . . 85 4.30. Arquitectura propuesta para la base de reglas e inferencia . . . . . . . . . . 85 4.31. Etapa de base de reglas e inferencia . . . . . . . . . . . . . . . . . . . . . 87 4.32. Submódulos llamados selector de reglas de salida . . . . . . . . . . . . . . 88 4.33. Implementación individual de una regla . . . . . . . . . . . . . . . . . . . 89 4.34. Bloque de reglas para cada conjunto de salida . . . . . . . . . . . . . . . . 90 XIV 4.35. Método Root Sum Square . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.36. Método del centroide o centro de área . . . . . . . . . . . . . . . . . . . . 92 4.37. Etapas del módulo PD difuso para arquitectura 1 y 2 . . . . . . . . . . . . 93 4.38. Diagrama final de la arquitectura 1 . . . . . . . . . . . . . . . . . . . . . . 93 4.39. Bloques selector de activación con y sin paso de parámetros . . . . . . . . 94 4.40. Diagrama final de la arquitectura 1 . . . . . . . . . . . . . . . . . . . . . . 95 4.41. Eliminación del método RSS . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.42. Defuzzificación con tres entradas . . . . . . . . . . . . . . . . . . . . . . . 96 4.43. Defuzzificación con nueve entradas . . . . . . . . . . . . . . . . . . . . . 97 4.44. Etapas del módulo PD difuso para arquitectura 3 . . . . . . . . . . . . . . 98 4.45. Diagrama final del PID difuso . . . . . . . . . . . . . . . . . . . . . . . . 98 5.1. Repuesta del controlador PID en software . . . . . . . . . . . . . . . . . . 102 5.2. Respuesta del controlador PID difuso en software . . . . . . . . . . . . . . 103 5.3. Respuesta del controlador PID en hardware . . . . . . . . . . . . . . . . . 105 5.4. Respuesta del controlador PID difuso con paso de parámetros y RSS . . . . 106 5.5. Respuesta del controlador PID difuso sin paso de parámetros con RSS . . . 107 5.6. Respuesta del controlador PID difuso sin parámetros sin RSS . . . . . . . . 108 5.7. Comportamiento del error absoluto en PID en SW . . . . . . . . . . . . . . 111 5.8. Comportamiento del error absoluto en el PID difuso en SW . . . . . . . . . 112 5.9. Comportamiento del error absoluto en el PID en HW . . . . . . . . . . . . 113 5.10. Comportamiento del error absoluto en PID difuso en HW . . . . . . . . . . 114 5.11. Diagrama general del PID con ruido . . . . . . . . . . . . . . . . . . . . . 115 5.12. Diagrama general del PID difuso con ruido . . . . . . . . . . . . . . . . . 115 5.13. Diagrama del PID con ruido en software . . . . . . . . . . . . . . . . . . . 116 5.14. Respuesta del PID con ruido en software . . . . . . . . . . . . . . . . . . . 116 5.15. Diagrama del PID difuso con ruido en software . . . . . . . . . . . . . . . 117 5.16. Respuesta del PID difuso con ruido en software . . . . . . . . . . . . . . . 118 5.17. Respuesta de PID y PID difuso con perturbación . . . . . . . . . . . . . . 119 5.18. Diagrama PID con ruido en hardware . . . . . . . . . . . . . . . . . . . . 120 5.19. Respuesta del PID con ruido en hardware . . . . . . . . . . . . . . . . . . 120 XV 5.20. Diagrama PID difuso con ruido en hardware . . . . . . . . . . . . . . . . . 121 5.21. Respuesta del PID difuso con ruido en hardware . . . . . . . . . . . . . . . 122 A.1. Reglas de álgebra de diagrama de bloques . . . . . . . . . . . . . . . . . . 143 A.2. Función de transferencia lazo abierto . . . . . . . . . . . . . . . . . . . . . 143 A.3. Diagrama a bloques de un sistema cerrado . . . . . . . . . . . . . . . . . . 144 B.1. Algunos bloques de utilizados en System Generator . . . . . . . . . . . . . 148 B.2. Parámetros de la opción Compilation . . . . . . . . . . . . . . . . . . . . . 151 B.3. Parámetros de la opción Clocking . . . . . . . . . . . . . . . . . . . . . . 152 B.4. Parámetros de la opción General . . . . . . . . . . . . . . . . . . . . . . . 153 XVI Capítulo 1 Introducción En varios campos de la ingeniería se estudia el diseño, implementación y mantenimiento de sistemas así como también los procesos automáticos que se relacionan con ellos. Por proceso se entiende una secuencia de operaciones para obtener un resultado en específico, mientras que el concepto de sistema es más general, siendo comúnmente definido como un conjunto de elementos que interactúan unos con otros para realizar una tarea (Ogata, 2003). Existen muchos sistemas en la naturaleza, algunos naturales y otros creados por el hombre como los sistemas informáticos, sistemas electrónicos, sistemas mecánicos, sistemas eléctricos, etc. Uno de los desafíos de la ingeniería es determinar el funcionamiento de un sistema actuante sobre otro sistema, por lo que se puede definir que un sistema de control es el que regula el funcionamiento de otro sistema o proceso. El control automático tiene una intervención cada vez más importante en la vida diaria y se ha convertido en parte importante e integral de los procesos modernos, industriales y de manufactura. Además, brinda los medios para lograr el funcionamiento óptimo de sistemas dinámicos, mejorar la calidad y abaratar los costos de producción. Los sistemas de control automático se pueden clasificar según su estructura en dos categorías: los sistemas de control de lazo abierto y los sistemas de control de lazo cerrado (Galán et al., 2000). Los primeros son los más sencillos ya que el controlador no toma en consideración la respuesta del sistema que está controlando; por el contrario, los controladores de lazo cerrado sí toman en cuenta la respuesta del sistema que controlan y son los 1 2 CAPÍTULO 1. INTRODUCCIÓN más utilizados. Existen una gran variedad de controladores de lazo cerrado, pero en particular el controlador clásico más usado es el denominado controlador PID (ProporcionalIntegral-Derivativo) (Noriega del Castillo, 2011). Éste se usa para controlar diversos sistemas como hornos, motores de CD (Corriente Directa), entre otros (Castillo, 2009; Farid and Faruq, 2008; Kamalasadan and Hande, 2004). En esta investigación se abordará el control de los sistemas utilizando lógica reconfigurable, cuya planta es representada por motores de CD perteneciente a un robot móvil del Cuerpo Académico de la ingeniería en Computación de la universidad del Istmo cuyo proyecto es NPTC056 . El control de motores de CD está basado principalmente en el uso de controladores de lazo cerrado, los cuales toman el error que existe entre la salida obtenida y la salida esperada. Aunque el controlador PID es el más empleado en este tipo de control, en general, existen procesos reales donde estos controladores tienden a desestabilizarse debido a las perturbaciones no lineales, el desgaste de equipos y otros factores que se presentan en los procesos o sistemas. Esto hace necesario que tengan que ser reajustados para las nuevas condiciones de operación o funcionamiento de esos sistemas ante la pérdida de funcionalidad para controlar de manera adecuada. Actualmente se estudian nuevos métodos y mejoras a los métodos clásicos para mejorar el rendimiento tanto en tiempo de respuesta, recursos utilizados y mantenimiento a largo plazo sin la necesidad de estar reajustándolos. Estos métodos están basados en Inteligencia Artificial (IA) y algunas permiten un reajuste automático como si lo hiciera un humano experto en la sintonización de controladores. El campo de la IA está todavía en etapas de crecimiento comparadas con otras ramas de la computación, pero, poco a poco, el estudio del comportamiento humano dará paso para aplicar estos conocimientos a las computadoras. Los logros actuales de la IA llevan desde un robot capaz de recorrer distancias hasta máquinas capaces de jugar ajedrez. De esta manera, entre uno de sus objetivos, la IA busca seguir creando máquinas capaces de facilitar ciertas labores de los humanos, logrando así que la tecnología tenga un avance mucho mayor, además de otros beneficios en ramas de la ciencia como computación, medicina, biología, etc. La inteligencia artificial se divide en diferentes áreas: deducción y demostración automática de teoremas, resolución de problemas, métodos de control y búsqueda, juegos, 3 formalismos y métodos de representación del conocimiento, procesamiento del lenguaje natural, visión por computadora, sistemas expertos y aprendizaje (Munárriz, 1994); algunas de estas técnicas son utilizadas en el control de sistemas ya que proveen métodos adaptativos y cualitativos que mejoran el control clásico. De esta manera, dado el auge de la IA, existe lo que se conoce como Control Inteligente, el cual es resultado de la intersección del Control Automático, la Inteligencia Artificial y los Sistemas Informáticos Distribuidos de tiempo real. Entre las técnicas de Inteligencia Artificial usadas en Control Inteligente destacan: lógica difusa(Moreno et al., 2006), redes neuronales (Cercós, 2001)y algoritmos genéticos(Martínez et al., 2010). Estas técnicas de inteligencia artificial se usan en conjunción a los controladores PID y lo que pretenden es mejorar las características ante perturbaciones que posiblemente existen en un sistema real (Galán et al., 2000). Las mejoras no sólo abarcan a temas de inteligencia artificial sino también al uso y exportación a la plataforma hardware. Con el avance y el rendimiento que tienen hoy en día las arquitecturas hardware, así como también la reducción del costo de la tecnología de alto desempeño, estas arquitecturas se convierten en una opción más en el diseño y desarrollo de controladores, por lo que se hace necesario la exploración en este rubro para conocer las posibles ventajas de implementación que tienen comúnmente los algoritmos y métodos que se exportan de plataforma software hacia una plataforma hardware. En la actualidad, el control digital requiere de una alta velocidad de cálculo, sobre todo en las nuevas maneras de controlar procesos como control difuso, control adaptativo, entre otros (Trimeche et al., 2008). De manera que se pueden usar controladores implementados en microprocesadores y microcontroladores como en (Kamalasadan and Hande, 2004) en donde controlan la velocidad de un motor de CD. Además existen procesadores de alto rendimiento como los DSP (Digital Signal Processor), los cuales tienen alta velocidad de cálculo, sin embargo la arquitectura interna del DSP no se manipula y por lo que se sólo queda ajustarse a ellos. De manera que, si se desea mejorar la velocidad de procesamiento, tiempo de ejecución y rentabilidad ante una tarea específica , se opta por otra alternativa mostrada en (Chen et al., 2009) donde se hace uso de lógica reconfigurable, mediante la implementación de controladores en FPGAs (en inglés Field Programmable Gate Arrays). De manera que el 4 CAPÍTULO 1. INTRODUCCIÓN FPGA se ha convertido en una solución alterna al momento de realizar control de sistemas y algoritmos complejos, ya que brinda otra perspectiva de funcionamiento y de rendimiento. Por tal motivo, el desarrollo de arquitecturas hardware en FPGA busca el mejor diseño y la mejor distribución de los elementos funcionales que permitan obtener los resultados excelentes de operación. Es importante resaltar que existen diferencias notorias que proveen de ventajas y desventajas al momento de implementar sistemas de control en PC (Personal Computer), microcontrolador y FPGA. Al momento de usar una PC existe flexibilidad en el diseño de sistemas de control porque el alto nivel de abstracción es lo que ayuda en gran medida al diseñador y analista, ya que existen gran cantidad de herramientas de software que modelan, simulan e implementan estos tipos de sistemas. Sin embargo, el consumo de recursos como energía y área así como también su bajo desempeño cuando se requiere alta capacidad de procesamiento dejan un uso limitado de la PC en sistemas de control de alto rendimiento. Esto hace que sistemas basados en PC se limiten a aplicaciones que no requieran alta velocidad ni procesamiento paralelo, por lo que comúnmente dada a la flexibilidad en el diseño desde la PC, ésta se utiliza para simular y probar los sistemas antes de implementarlos en otras plataformas. Por otra parte, el uso de microcontroladores y microprocesadores es amplio ya que este tipo de dispositivos ocupan un área mínima, son baratos, reportan velocidad media para aplicaciones que no requieren altas prestaciones, así como también hay gran oferta de fabricadores y amplia diversidad de herramientas software que ayudan al desarrollo e implementación. La desventaja de los microcontroladores y microprocesadores es la forma en que procesan los datos, ya que ellos lo realizan usando el paradigma de ejecución secuencial (como las PCs) por lo que el alto desempeño en estos dispositivos no es alcanzado; otra desventaja es que al tener muchos fabricantes, la portabilidad de código resulta deficiente, ya que cada fabricante tiene su arquitectura de operación y sus propias instrucciones. Hasta el momento se han descrito las PCs y los microprocesadores y/o microcontroladores y se ha dicho que son muy flexibles en el diseño de aplicaciones especificas sin embargo el costo de esta flexibilidad son las bajas prestaciones en velocidad de procesamiento. Por otro lado, existen dispositivos llamados Circuito Integrado para Aplicaciones Específicas (en inglés ASICs), los cuales realizan una sola tarea asignada y son excelentes 1.1. PLANTEAMIENTO DEL PROBLEMA 5 cuando se requiere un mayor desempeño y velocidad de procesamiento, el inconveniente con estos dispositivos es que sólo se desarrollan para una tarea en especifica por lo que la flexibilidad en ellos es casi nula. En la búsqueda de un dispositivo que reúna las características de alto nivel de procesamiento y que sea flexible en gran medida, se llega a la decisión de desarrollar sistemas de control en FPGA. Los FPGAs son actualmente más usados en aplicaciones de alto desempeño (Chen et al., 2009), tomando ventaja del paralelismo del hardware, el cual excede la potencia de cómputo de los procesadores y los procesadores digitales de señales (DSPs); también el FPGA ofrece flexibilidad, densidad de integración alta y capacidad de rápido desarrollo de prototipos en comparación al diseño personalizado de un ASIC, no obstante la tecnología resulta medianamente costosa y se requieren conocimientos técnicos para describir hardware. Tanto las PCs, microcontroladores y FPGAs tienen ventajas y desventajas, las cuales deben ser consideradas por el usuario para determinar y desarrollar de manera correcta a un determinado sistema de control. Como se ha visto, para controlar sistemas reales como motores de CD se requieren de controladores, existe una gran variedad de estos últimos, algunos ya ampliamente estudiados (clásicos) y otros que son basados en Inteligencia Artificial (inteligentes) como los que utilizan lógica difusa; no obstante se realizan mejoras de los controladores clásicos y de los controladores inteligentes usando tecnología de lógica reconfigurable, por tal motivo causa interés el estudio de estos sistemas de control desarrollados en lógica reconfigurable. Cabe mencionar que este trabajo se centrará en el desarrollo de controladores clásicos e inteligentes utilizando lógica reconfigurable específicamente los FPGAs, con este desarrollo se realizará un análisis y una comparación entre los controladores PID y PID difuso tomando en cuenta tiempos de respuesta, recursos utilizados (en arquitecturas Hw) y comportamiento ante ruido. 1.1. Planteamiento del problema Actualmente, las aplicaciones requieren un control con alta velocidad de procesamiento para obtener una respuesta en tiempo real, sin embargo los controladores implementados 6 CAPÍTULO 1. INTRODUCCIÓN bajo plataforma software no cumplen en su totalidad con este requisito debido su paradigma de programación secuencial. Por lo que en este trabajo se estudia el uso de plataforma hardware usando lógica reconfigurable (uso de FPGAs) como opción para desarrollar sistemas eficientes y con un alto desempeño en velocidad de cálculo, aprovechando el procesamiento paralelo que ofrecen las arquitecturas hardware. Por otra parte, cuando se desarrollan controladores, el establecer qué diseño es el más adecuado para una aplicación resulta una tarea complicada, ya que se tendría que implementar una gran cantidad de controladores para después para analizarlos y compararlos, lo cual demandaría tiempo y esfuerzo. De manera que, contar con un estudio realizado con un análisis en la señal de respuesta (Sw-Hw), respuesta ante ruido (Sw-Hw) y recursos utilizados (Hw) de los controladores resulta beneficioso, pues brinda conocimiento preliminar útil en el desarrollo de sistemas de control. En este trabajo se abordará el análisis y comparación de controladores PID y PID difuso aplicados en el control de una planta que representada por motores de corriente directa. El problema del PID, es que dadas las características lineales de este controlador, lo hacen susceptible a problemas tales como ruido y perturbaciones por lo que son reajustados cada vez que lo necesiten. Ante este tipo de inconvenientes, se requieren de nuevas formas de control o de mejoras a los controladores clásicos como el PID. La búsqueda y la investigación realizada apuntan al uso de IA, por ejemplo al uso lógica difusa, ya que ésta se adapta mejor al entorno y permite interpretar expresiones de la vida cotidiana, además brinda una repuesta rápida y precisa, disminuyendo las transiciones de estados fundamentales del entorno, por lo que combinado con un controlador PID da lugar al controlador PID difuso. 1.2. Justificación Los controladores inteligentes como los difusos requieren algunos cálculos que son complejos y, en aplicaciones que requieran un buen desempeño en tiempo, llegan a tener complicaciones con el número de cálculos por segundo. Por lo que se buscan tecnologías de alto desempeño que ayuden a solventar este tipo de problemas, en este trabajo se empleará 1.3. OBJETIVOS 7 tecnología basada en lógica reconfigurable, ésta se basa en el uso de dispositivos reprogramables como los FPGAs, los cuales proporcionan un alta capacidad de cálculo por lo que mejora en tiempo gran cantidad de procesos. De manera que, se propondrán arquitecturas nuevas en hardware, de las cuales se obtendrán conocimiento útil en la generalización de arquitecturas hardware de controladores. Además de las arquitecturas propuestas, el análisis y comparación de los controladores PID y PID difuso servirá como conocimiento preliminar útil en el desarrollo de sistemas de control. Ya que hace uso de la lógica difusa empleada en control, la cual es importante un futuro en un mundo en constante cambio, por lo que contar con técnicas basadas en lógica difusa resulta atractivo al ser más viable, ya que se adapta mejor al entorno que los métodos de control clásicos y se estima que se ahorrarán los gastos de mantenimiento y los sistema serán más robustos ante perturbaciones. La simulación e implementación del controlador PID y PID difuso se realizarán en dos plataformas (hardware y software), homogeneizado bajo una misma planta a controlar (motor de CD). Se analizará el comportamiento de los controladores, para después compararlos y así obtener conclusiones acerca de ellos. En resumen, se puede decir que el diseño y desarrollo de un controlador es una dificultad que se presenta al momento de trabajar con sistemas de control, por lo que esta investigación contribuirá a tomar mejores decisiones con nuevas formas de control (lógica difusa) y explorando plataforma de alto velocidad (lógica reconfigurable). Esto conllevará a procesos mejor controlados lo cual es benéfico para la industria y desarrollo científico. 1.3. Objetivos En esta sección se menciona el objetivo general del trabajo de investigación y los objetivos específicos que se esperan cumplir. 1.3.1. Objetivo general Realizar un análisis y comparación de un controlador PID clásico y un controlador PID difuso en lógica reconfigurable para controlar los motores de corriente directa, analizando 8 CAPÍTULO 1. INTRODUCCIÓN el comportamiento en tiempo de respuesta, recursos utilizados de hardware y comportamiento ante ruido. 1.3.2. Objetivos específicos Analizar y establecer los fundamentos teóricos de los sistemas de control, las funciones de transferencia, lógica difusa y lógica reconfigurable para comprender su funcionamiento aplicado a sistemas de control. Simular el controlador PID clásico y el controlador PID difuso con una misma planta representada con un motor de CD, la simulación se realizará bajo plataforma software y hardware. Implementar un controlador PID clásico y un controlador PID difuso en hardware. Esta implementación estará realizada lógicamente utilizando herramientas software que emulan dispositivos hardware (FPGAs). Establecer un criterio de evaluación y obtener mediciones en tiempo de respuesta, comportamiento ante ruido y recursos hardware. Analizar y comparar las respuestas de cada controlador en plataforma hardware (FPGAs). 1.4. Hipótesis El análisis y comparación de sistemas de control PID y PID difuso en lógica reconfigurable es una contribución en el conocimiento y toma de decisiones útiles en el diseño de sistemas de control, por ejemplo en motores de CD en sillas ruedas y robots móviles. El desarrollo en lógica reconfigurable de los controladores PID clásico y PID difuso tendrán mejores prestaciones en referencia con sus similares desarrollados en software. 1.5. ALCANCES Y METAS 1.5. 9 Alcances y metas En esta sección se presentan los alcances y metas que se pretenden lograr en este trabajo de investigación. 1.5.1. Alcances Los sistemas de control están limitados al control de velocidad angular de motores de corriente directa caracterizados en (Suárez., 2006). De este trabajo se extrae la sólo la función de transferencia que representa los motores. Se desarrollará el controlador PID clásico y el controlador PID difuso en software sólo para conocer a grandes rasgos su funcionamiento. Se implementará el controlador PID clásico y el controlador PID difuso en lógica reconfigurable (hardware). El estudio estará limitado a evaluar las implementaciones hardware para el control de estos motores de CD primero 1.5.2. Metas Obtener nuevas arquitecturas hardware que estén orientadas al control de motores de CD. Evaluar las respuestas de los sistemas de control PID clásico y PID difuso usando lógica reconfigurable, tomando en cuenta la respuesta en tiempo, recursos usados y comportamiento ante ruido. Comparar el método de control PID clásico con el método PID difuso con lógica reconfigurable. Con el estudio realizado, contribuir en toma de decisiones de los diseñadores de controladores automáticos. 10 CAPÍTULO 1. INTRODUCCIÓN Se espera que se realice un artículo de divulgación científica de las arquitecturas hardware propuestas en esta investigación. Capítulo 2 Marco teórico Debido a que este proyecto se relaciona con el control de sistemas por medio de métodos clásicos e inteligentes y lógica reconfigurable, se presenta a continuación el marco teórico con el fin de establecer las bases teóricas para el desarrollo de este proyecto. 2.1. Sistemas de control El control automático interviene cada vez con más frecuencia en la vida de los seres humanos desde controles simples como los usados en un refrigerador o una tostadora automática, hasta los sistemas complejos de control de vehículos espaciales, guía de misiles, navegación asistida en aviones, robots autónomos, entre otros. Asimismo, el control automático con el transcurso de los años se ha convertido en parte importante de procesos industriales como control de presión, temperatura, velocidad, humedad, etcétera. Actualmente, la industria hace necesario disponer de sistemas de control que permitan mejorar y optimizar los procesos ya existentes, en donde el hombre en ocasiones presenta deficiencias para realizar control, debido a que las capacidades físicas de los humanos como fuerza, rapidez (mental y motriz), exactitud, repetitividad, precisión, visualización, entre otros, por lo que los humanos no son los indicados para usarse en determinados procesos; la industria espacial y de la aviación, petroquímica, papelera, entre otros son algunos ejemplos de lugares en donde se necesitan sistemas de control de alta complejidad ya que los procesos que manejan así lo requieren. 11 12 CAPÍTULO 2. MARCO TEÓRICO El control automático ha sido de vital importancia en el avance de la ingeniería y la ciencia, los avances en el ramo del control automático permiten lograr el funcionamiento óptimo de sistemas dinámicos, mejorar la calidad, abaratar costos, disminuir la complejidad de tareas manuales, etcétera (Pérez, 2008). Los sistemas de control son dinámicos y el tener un conocimiento de la teoría de control proporcionará una base para entender el comportamiento de tales sistemas. El concepto de control consiste en seleccionar, una entrada que haga responder a la planta de una manera deseada, esto es que se obtenga una salida con ciertas características. A continuación se define la terminología necesaria en la teoría de control automático basado en (Pérez, 2008): Planta se designa a cualquier objeto físico que pueda ser controlado. Ejemplos de plantas son el motor, automóviles, aviones, electrodomésticos, equipo militar, equipo médico, entre otros. Proceso se define como un conjunto de pasos con una secuencia determinada, que producen una serie de cambios graduales que llevan de un estado a otro y que tienden a un determinado resultado final. Se denominará proceso a cualquier operación que se vaya a controlar. Ejemplos de procesos son: químicos, económicos, biológicos, etc. Sistema es un conjunto de objetos que se relacionan entre sí, de manera que constituyen un todo. De otra forma, se puede decir que un un sistema es una combinación de componentes que actúan conjuntamente con un determinado objetivo a cumplir. La planta junto con el proceso conforman un sistema, por lo que un sistema de control es un arreglo de componentes físicos conectados, de tal manera que el el conjunto de objetos pueda comandar, dirigir o regular a otro sistema o a sí mismo. Estos sistemas tienen una entrada que se utiliza como excitación del mismo y también una salida que es una variable del sistema elegida de tal modo que se le utiliza para analizar los efectos que produjo una excitación en la entrada. Los sistemas de control, según la topología, se pueden clasificar en los que se denominan control de lazo abierto y control de lazo cerrado. 2.1. SISTEMAS DE CONTROL 13 Por un lado, en el control de lazo abierto la salida ni se mide ni se retroalimenta para compararla con la entrada. Los sistemas de control de lazo abierto son sistemas de control en los que la salida no tiene efecto sobre la señal o acción de control. ver Figura 2.1. Entrada de referencia Señal controlada Señal de control Controlador Planta Figura 2.1: Sistema de control abierto La exactitud de los sistemas de lazo abierto depende de la calibración, pues en la calibración establece una relación entre la entrada y la salida con el objetivo de obtener en el sistema la exactitud deseada. Los sistemas de control de lazo abierto son económicos aunque comúnmente inexactos, ya que éstos no son sensibles a las perturbaciones; por eso, el sistema de control abierto es útil cuando se tiene la seguridad de que no existen perturbaciones que afecten su comportamiento. El uso de este tipo de controladores se debe a su simplicidad y economía, y se utilizan en aplicaciones no críticas como los sistemas de lavado automático de ropa, control de sistemas de refrigeración y los sistemas de control en los semáforos, pues sólo dependen de la calibración que se realice en el sistema. Por otro lado, los sistemas de control de lazo cerrado son aquellos en que la salida o señal controlada debe ser retroalimentada y comparada con la entrada de referencia; se debe enviar una señal actuante o acción de control que responda a la diferencia entre la entrada y la salida a través del sistema para disminuir el error y corregir la salida. La propiedad de retroalimentación permite que la salida del sistema o cualquier variable del mismo sean comparadas con la entrada al sistema o con cualquier componente del sistema para que se tomen las acciones más adecuadas. Entonces, un sistema de control retroalimentado tiene como objetivo mantener una relación preestablecida entre la salida y la entrada de referencia, comparando ambas y utilizando la diferencia como variable de control. Un sistema de control de lazo cerrado (ver Figura 2.2) es aquel cuya señal de salida tiene efecto directo sobre la acción de control (también son conocidos como sistemas retroalimentados); la diferencia entre la señal de entrada y la señal de salida se la denomina 14 CAPÍTULO 2. MARCO TEÓRICO señal de error del sistema; esta señal es la que actúa sobre el sistema para llevar la salida a un valor deseado. En otras palabras, el término lazo cerrado implica el uso de acción de retroalimentación negativa para reducir el error del sistema. + Controlador - Señal controlada Señal de control Señal de error Planta Señal retroalimentada Retroalimentación Figura 2.2: Sistema de control retroalimentado Los sistemas de control retroalimentados se pueden clasificar en diversas formas dependiendo del propósito de la clasificación. Por ejemplo, de acuerdo con el método de análisis y diseño, los sistemas de control se clasifican en lineales o no lineales y variantes o invariantes en el tiempo (Pérez, 2008). De acuerdo con los tipos de señales usados en el sistema, se hace referencia a sistemas en tiempo continuo y en tiempo discreto, o sistemas modulados y no modulados. Lo sistemas de control en tiempo continuo son aquellos en los que las señales, en varias partes del sistema, son todas funciones de una variable continua en tiempo t, es decir, el flujo de señales en todas partes del sistema es siempre continuo. La característica fundamental de un sistema de control automático continuo o analógico es la comparación continua o permanente entre el valor actual de la variable controlada y el valor deseado de esta variable. Los sistemas de control en tiempo discreto, ver Figura 2.3, difieren de los sistemas de control en tiempo continuo en que las señales en uno o más puntos del sistema son en código numérico digital. Normalmente, los sistemas en tiempo discreto se subdividen en sistemas de control de datos muestreados y sistemas de control digital (Pérez, 2008). Los primeros se refieren a una clase más general de sistemas en tiempo discreto en los que las señales están en la forma de pulsos de datos u ondas rectangulares. Por otra parte los 2.1. SISTEMAS DE CONTROL 15 segundos hacen referencia al uso de una computadora o controlador digital en el sistema, de tal forma que las señales están en código digital o código binario. + Entrada de referencia Computadora - Convertidor Digital/ Analógico Planta Convertidor Analógico/ Digital Figura 2.3: Sistema de control digital En específico, los sistemas de control automático continuo son aquellos sistemas de control retroalimentados negativamente, en donde el flujo de señales en todas partes del sistema es siempre continuo, además debe aclararse que no hay factor humano que intervenga como parte del sistema. La característica fundamental de un sistema de control automático continuo es la comparación continua entre el valor actual de la variable controlada y el valor deseado de esta variable, la diferencia entre estos valores es llamada error del sistema. Un sistema de control automático continuo tiende a eliminar el error a través de ajustes convenientes en el sistema, actuando solamente cuando la señal de error tiene un error finito. En la Figura 2.4 se muestra un diagrama más detallado de un sistema de control automático continuo. Perturbación r(t) e(t) Amplificación - Regulador o Actuador m(t) Planta controlada y(t) b(t) Elemento de medición o bloque de realimentación Figura 2.4: Sistema de control automático continuo 16 CAPÍTULO 2. MARCO TEÓRICO El primer paso importante en el análisis y diseño de sistemas de control es el modelado matemático de los procesos controlados. En el modelado matemático se describe el sistema usando ecuaciones integro-diferenciales definidas en el tiempo, así también se hace uso de gráficas del comportamiento de los sistemas, de manera que las ecuaciones integrodiferenciales y las gráficas representen el comportamiento dinámico de los sistemas. En general, dado un proceso controlado, primero se debe definir el conjunto de variables que describen las características dinámicas de dicho proceso. Una forma clásica de modelar sistemas lineales es utilizando funciones de transferencia porque representan la relación entrada-salida entre variables. La función de transferencia es un método operacional usado para expresar una ecuación diferencial ordinaria, lineal y con coeficientes constantes, de manera que se relaciona la variable de salida del sistema con la variable de entrada (Pérez, 2008). La función de transferencia de un sistema invariante en el tiempo se define en el dominio de Laplace como el cociente entre la transformada de Laplace de la salida o respuesta del sistema y la transformada de Laplace de la entrada o función de excitación, bajo la suposición que todas las condiciones iniciales son cero (Avila, 2011). El método de la transformada de Laplace es una herramienta matemática utilizada ampliamente para solucionar ecuaciones ordinarias lineales y es ampliamente usada en la simulación de sistemas físicos, circuitos eléctricos y el modelado y análisis de sistemas de control automático. También existe la transformada Z, la cual es la contraparte discreta de la transformada de Laplace y es la generalización en tiempo discreto de la transformada de Fourier. Las propiedades de la transformada Z son similarmente paralelas a las de la transformada de Laplace, sin embargo existen importantes diferencias entre la transformada Z y la transformada de Laplace, las cuales surgen de las diferencias fundamentales entre sistemas en tiempo continuo y en tiempo discreto. Estas herramientas matemáticas no son las únicas (Ogata, 2003), ya que existen otros tipos, aunque para fines de este proyecto, la transformada de Laplace será utilizada. Pasando a otro contexto, en esta tesis se analizará el control de motores de corriente directa, los cuales están en muchas aplicaciones hoy en día que requieren alto torque y determinada velocidad de giro como en elevadores, sistemas de tranvía, aviones, silla de 2.1. SISTEMAS DE CONTROL 17 ruedas automáticas, maquinaria industrial como tornos, esmeriles y otras aplicaciones. La descripción del motor utilizado y de fundamentos teóricos es dado a continuación. 2.1.1. Motores de Corriente Directa El motor de corriente directa es un dispositivo que convierte la energía eléctrica en energía mecánica, principalmente mediante un movimiento rotatorio. Esta máquina de corriente continua es una de las más versátiles en la industria, ya que la principal característica del motor de corriente continua es la posibilidad de regular la velocidad y su principal inconveniente es que el mantenimiento es costoso y laborioso (Galán et al., 2000). El motor se compone principalmente de dos partes: El estator, el cual le brinda estabilidad al dispositivo dado que mantiene una posición fija, puede estar devanado o tener imanes permanentes dentro de éste. El rotor de forma generalmente cilíndrica, el cual está devanado y cuenta con un núcleo; el rotor gira cuando le llega corriente mediante dos escobillas fijas en el estator. Una forma de clasificar a los motores de CD según la excitación de su campo magnético es: excitación serie, excitación paralelo y excitación independiente (Romero, 2001). Sin embargo la característica de los dos primeros son no lineales, de manera que para aplicaciones de control el más usado es el motor de excitación independiente. En este proyecto se hace uso de un motor de CD, el cual es parte de un robot móvil denominado “ROCA”, desarrollado en (Romero, 2001) y también usado en (Suárez., 2006). Los motores de este robot móvil descrito en este trabajo son de la marca Pittman de CD a 24 volts de la serie GM9000. En la actualidad se cuenta físicamente con este robot móvil, ya que es parte del proyecto del Cuerpo Académico de la Ingeniería en Computación (CAIC) en la Universidad del Istmo campus Tehuantepec, ese es el motivo de su utilización ya que cumple con la característica de ser un sistema real. Para obtener el comportamiento, se hace uso del documento de (Suárez., 2006), en el cual se realizó el modelado del motor de corriente directa. De este estudio realizado se toma la función de transferencia para trabajar en esta tesis, la función de transferencia se presenta en la ecuación 2.2. 18 CAPÍTULO 2. MARCO TEÓRICO G(S) = KT Ω(S) = 2 Va (S) S Jm La + S (Jm Ra + DLa ) + DRa + KT KE (2.1) Donde Jm es la inercia del rotor. La es la inductancia del motor. Ra es la resistencia del motor. D es el coeficiente de fricción viscosa. KT es la constante par o de torque. KE es la constante de fuerza electromotriz. Ω(S) es la velocidad angular. Va (S) es el voltaje de la entrada. Sustituyendo los valores desde la hoja de especificación, ver apéndice la ecuación de transferencia es: G(S) = 2.2. Ω(S) 4,58 x10−2 = Va (S) 18,67 x10−9 S2 + 17,68 x10−6 S + 2,10 x10−3 (2.2) Controladores clásicos Los controladores comparan el valor de una variable medida (señal de entrada) y el valor deseado (set point) para producir una señal de salida que mantenga el valor deseado de la variable y usa la diferencia entre valor deseado y el valor de la salida para manipular la variable controlada. Uno de los métodos para caracterizar el desempeño de los controladores es el uso de una señal de entrada representada por el escalón unitario, ya que si se conoce esta respuesta, es posible calcular la respuesta a cualquier otra entrada mediante técnicas matemáticas. Las especificaciones más comunes son las siguientes, ver Figura 2.5: Tiempo de retardo td Tiempo de subida tr Tiempo pico t p 2.2. CONTROLADORES CLÁSICOS 19 Sobreelongación o sobre impulso MP Tiempo de asentamiento ts Figura 2.5: Curva de respuesta ante la funcion escalón Estos parámetros resultan útiles al momento de medir y comparar los tiempos en la señal de salida de los diferentes controladores que se realizaran en esta tesis. En este trabajo se abordarán temas referentes a controladores retroalimentados clásicos como P, PD, PI y PID hasta controladores basados en técnicas de inteligencia artificial, para después analizar su funcionamiento desde plataforma hardware. En la siguiente sección se describirán los métodos clásicos y posteriormente algúnos métodos inteligentes. 2.2.1. Controlador Proporcional (P) Este controlador toma su nombre debido que su salida es proporcional a la magnitud del error y su característica principal es la presencia de offset que indica que el error no se ha eliminado completamente. Este tipo de controlador tiene una relación de su salida u(t) y la señal de error e(t) como se ve en la ecuación 2.3: 20 CAPÍTULO 2. MARCO TEÓRICO u(t) = k p e(t) (2.3) O bien, en el dominio de la transformada de Laplace representada por la ecuación 2.4, en donde k p se considera la ganancia proporcional. U(S) = k p E(S) (2.4) La característica de la proporcionalidad es representada por la ganancia del controlador k p , con esta ganancia se determina cuánto se modifica la salida del controlador con un cierto cambio de error. Entre las ventajas que tiene este controlador están la aplicación instantánea y la simplicidad de diseño, sin embargo, le falta inmunidad al ruido y tiene un error permanente (offset). 2.2.2. Controlador Proporcional-Derivativo (PD) Este controlador agrega una acción derivativa, por lo que la señal de salida es directamente proporcional a la velocidad con que cambia la variable controlada. Este controlador genera una señal de salida mediante la combinación de la acción proporcional anteriormente mencionada y la acción derivativa, la ecuación 2.5 representa este controlador. u(t) = k p de(t) e(t) + τd dt (2.5) O bien, representado con la transformada de Laplace, ver ecuación 2.6: U(S) = k p {1 + τd S} E(S) (2.6) El valor de τd es el tiempo derivativo y corresponde al cambio en el tiempo del error. El control PD proporciona al sistema una mayor estabilidad que los controladores anteriormente mencionados, ya que este controlador tiene una respuesta transitoria con menor 2.2. CONTROLADORES CLÁSICOS 21 sobreelongación. El control PD es un control con alta sensibilidad y su desventaja radica en que amplifica señales de ruido, no obstante tiene la ventaja de usar una acción de control derivativa la cual responde a la velocidad del cambio del error y produce una corrección significativa antes de que la magnitud del error se vuelva demasiado grande. Por tanto, el control derivativo prevé el error, iniciando una acción oportuna y tendiendo a aumentar la estabilidad del sistema. 2.2.3. Controlador Proporcional-Integral (PI) Una gran cantidad de procesos requieren que se controlen en el punto de referencia y no se permite desviación en ellos, por este motivo se introduce la acción integral o de reajuste por lo que se puede tener un controlador proporcional-integral (PI). La acción integral tiene como objetivo vencer al offset producido por corregir el tamaño del error sin considerar el tiempo. La ecuación 2.7 describe al controlador PI y su trasformada de Laplace es representada por la ecuación 2.8: kp u(t) = k p e(t) + τI Z t e(t) dt (2.7) 1 U(S) = k p 1 + E(S) τI S (2.8) 0 Siendo k p la ganancia proporcional y τI el denominado tiempo integral. Tanto k p como τI son ajustables. El tiempo integral ajusta la acción de control integral, mientras que un cambio en el valor de k p afecta las partes integral y proporcional de la acción de control. El inverso del tiempo integral se denomina velocidad de reajuste, la cual es la cantidad de veces por minuto que se aumenta la parte proporcional de la acción de control. 22 CAPÍTULO 2. MARCO TEÓRICO 2.2.4. Controlador Proporcional-Integral-Derivativo (PID) Este controlador es con frecuencia el más usado y uno de los que ofrecen mayor precisión dentro de la regulación automática. El controlador recibe su nombre ya que es una combinación de una acción de control proporcional, una acción de control integral y una acción de control derivativa por lo que se denomina acción de control proporcional – integral – derivativa o PID. El algoritmo del cálculo del control PID requiere de tres parámetros distintos: el proporcional, el integral y el derivativo. El valor proporcional determina la reacción del error actual. El integral genera una corrección proporcional a la integral del error, esto asegura que aplicado un esfuerzo del control suficiente, el error de seguimiento se reduce a cero. El derivativo determina la reacción del tiempo en el que el error se produce. El PID tiene las ventajas de cada una de las tres acciones de control individuales. La ecuación 2.9 representa el controlador con esta acción combinada. kp u(t) = k p e(t) + τI Z t 0 e(t) dt + k p τd de(t) dt (2.9) Representado con la transformada de Laplace, ver ecuación 2.10. U(S) = k p 1 1+ + τd S E(S) τI S (2.10) Cabe aclarar que los valores de k p , τd , y τI representan los mismos valores que anteriormente se mencionaron. Los controladores PID se recomiendan para procesos con constante de tiempo larga en los que no hay ruido del exterior. Además, ellos son de gran utilidad cuando se regulan procesos industriales como en el control de nivel, presión, flujo, temperatura, posición y velocidad; este último tipo de planta es el estudiado en este documento ya que se desea controlar la velocidad angular de un motor de corriente directa. Como se ha visto existen una gran cantidad de controladores, sin embargo estos controladores clásicos tienen deficiencias que llegan a dificultar el control de procesos cuando se presentan perturbaciones o ruido, por tal motivo se requieren controladores inteligentes. De manera que se han explorado las técnicas de la inteligencia artificial para implementarlas 2.3. CONTROL DIFUSO 23 en control, en este proyecto se realiza control difuso ya que se combina la lógica difusa y el control automático. 2.3. Control Difuso La lógica difusa nace en 1965 a partir de la publicación del artículo Fuzzy sets escrito por Lotfi Zadeh (Wang, 1994). La lógica difusa contrasta con la lógica convencional pues define conceptos en grados variables de pertenencia tratando de emular patrones de razonamiento similares a los del pensamiento humano, contrario a la lógica convencional que utiliza conceptos absolutos para referirse a la realidad. La lógica difusa se presenta como una técnica de la Inteligencia Artificial cuyo objetivo es expresar el conocimiento de tipo lingüístico en un lenguaje matemático basado en la teoría de conjuntos difusos y funciones de pertenencia asociados a éstos, en pocas palabras la lógica difusa relaciona el contexto lingüístico con datos numéricos los cuales proporcionan precisión matemática. La aplicación de la lógica difusa en control de procesos presenta ventajas dada su flexibilidad y tolerancia a imprecisiones ya que están basados en el lenguaje natural, otra ventaja es que la lógica difusa trabaja excelentemente cuando los datos no son precisos, característica muy útil cuando se trabaja con sistemas complejos o reales. 2.3.1. Variables lingüísticas En la vida diaria se usan palabras para describir variables, por ejemplo, cuando se dice la expresión “que hoy hace frío” y que es equivalente a decir que la temperatura es “baja”. Se utiliza la palabra “baja” para describir la temperatura actual. Cuando las variables toman números como sus valores, se tiene un marco de trabajo formulado matemáticamente, pero cuando la variable toma palabras como sus valores, entonces no se consigue este marco, por tal motivo se introduce el concepto de variable lingüística si una variable puede tomar palabras en lenguaje natural como sus valores (Pedrycz, 1993). Las variables lingüísticas son importantes en la representación del conocimiento humano, ya que cuando se mide una variable y se tiene un valor numérico como salida, posteriormente se le pregunta a un experto humano para que evalúe dicha variable. Los humanos 24 CAPÍTULO 2. MARCO TEÓRICO entregan palabras como salidas, las cuales se transmiten a las variables lingüísticas, estas últimas transforman descripciones vagas en lenguaje natural a términos matemáticos precisos (Passino and Yurkovich, 1998), por lo que las variables lingüísticas son adecuadas cuando se diseñan e implementan sistemas difusos ya que cada una puede representar un conjunto difuso o una equivalencia matemática representada por una función de pertenencia basada en el lenguaje humano. 2.3.2. Conjuntos clásicos o duros y conjuntos difusos Un conjunto clásico se define como una colección de elementos que existen dentro de un universo, en donde cada uno de los elementos del universo pertenece o no a un determinado conjunto. Por lo tanto, cada conjunto puede definirse completamente por una función de pertenencia que opera sobre los elementos del universo y que le asigna un valor de 1 si el elemento pertenece al conjunto y de 0 si no pertenece. Por su parte, un conjunto difuso se define de forma similar aunque con una diferencia la cual es que un elemento puede pertenecer parcialmente a más de un conjunto, con un valor de pertenencia ponderado. Las primeras diferencias que se hacen evidentes entre los conjuntos clásicos y los conjuntos difusos según (Ortiz and Liu, 2004) son las siguientes: La función de pertenencia asociada a los conjuntos concretos sólo pueden tener dos valores: 0 o 1, mientras que en los conjuntos difusos pueden tener cualquier valor entre el intervalo cerrado 0 y 1. Un elemento puede pertenecer (parcialmente) a un conjunto difuso y simultáneamente pertenecer (parcialmente) al complemento de dicho conjunto, lo anterior no es posible en los conjuntos clásicos. Las fronteras de un conjunto clásico son exactas, es decir, un elemento pertenece o no pertenece a dicho conjunto, en tanto que las de un conjunto difuso son, precisamente difusas, ya que existen elementos en las fronteras mismas, y estos elementos pueden pertenecer al mismo tiempo a más de un conjunto difuso con diferente grado de pertenencia. 2.3. CONTROL DIFUSO 25 La lógica difusa está basada en la teoría de conjuntos, en la cual el grado de pertenencia de un elemento a un conjunto está determinado por una función de pertenencia y que puede tomar cualquier valor dentro del intervalo [0,1]. 2.3.3. Funciones de pertenencia Las funciones de pertenencia representan gráficamente un conjunto difuso, el eje X representa el universo de discurso y el eje Y sitúa los grados de pertenencia que están definidos de 0 a 1. Al momento de definir un conjunto difuso se puede utilizar cualquier función, sin embargo, existen ciertas funciones que son comúnmente usadas debido a la simplicidad matemática; entre éstas están la funciones triangulares, trapezoidales, parabólicas y Gaussianas. A continuación se describen algunas funciones de pertenencia: Función triangular La función triangular se define como muestra la ecuación 2.11:. µtriangular (x; a, b, c) 0 x−a ,x ≤ a c−x c−b 0 ,b ≤ x ≤ c b−a ,a ≤ x ≤ b (2.11) ,c ≤ c Donde a, b y c representan la coordenada del eje horizontal de los vértices del triangulo formado.Un ejemplo de una función triangular usando el software MatLab es mostrada en la Figura 2.6 26 CAPÍTULO 2. MARCO TEÓRICO Figura 2.6: Función triangular en MatLab con la función trimf(x,[3 6 8]) Función trapezoidal La función trapezoidal se define con la ecuación 2.12: 0 x−a b−a µtrapezoidal (x; a, b, c, d) 1 d−x d−c 0 x≤a a≤x≤b b≤x≤c (2.12) c≤x≤d d≤x Donde a, b, c y d representan la coordenada del eje horizontal de los vértices del trapecio formado. Un ejemplo de la función trapezoidal usando el software MatLab, se ve en la Figura 2.7. 2.3. CONTROL DIFUSO 27 Figura 2.7: Función trapezoidal en MatLab con la función trapmf(x,[2 4 6 8]) Función Gaussiana La función Gaussiana se define con la ecuación 2.13. 1 µgaussiana (x; σ , a) = e− 2 ( x−c 2 σ ) (2.13) Donde a corresponde al centro de la campana gaussiana y σ la anchura de la curva. La Figura 2.8 representa un ejemplo de esta función de pertenencia usando el software MatLab. 28 CAPÍTULO 2. MARCO TEÓRICO Figure 2.8: Función Gaussiana en MatLab con la función gaussmf(x, [0.5 5]) Función campana La función campana está definida como se muestra en la ecuación 2.14: µcampana (x; a, b, c) = 1 2b 1 + | x−c a | (2.14) Donde a corresponde al vértice inicial de (eje horizontal), b representa la proporción en la anchura de la campana y c representa el centro de la campana (eje horizontal). Un ejemplo de la función campana usando el software MatLab se muestra en la Figura 2.9. 2.4. SISTEMAS DIFUSOS 29 Figura 2.9: Función Campana en MatLab con la función gbellmf(x, [2 4 5]) Estas funciones de pertenencia son algunas de las más usadas y el criterio de selección se ha dejado a criterio de los diseñadores y expertos en sistemas difusos, cuyo objetivo es escoger la función de pertenencia óptima que proporcione mejores resultados. 2.4. Sistemas difusos Los sistemas difusos son sistemas basados en conocimiento humano, donde la parte esencial de un sistema difuso es la base de conocimientos que consiste de reglas difusas que tienen la forma: Si antecedente entonces consecuente La primera parte de la regla se denomina antecedente y contiene una o varias condiciones referidas a las entradas del sistema; la segunda parte de la regla es denominada consecuente y es la acción a ejecutarse (González and Hernando, 1995) . A continuación se muestra un ejemplo de una regla difusa de la forma Si−entonces: Si la temperatura es baja entonces hacer más fuego 30 CAPÍTULO 2. MARCO TEÓRICO Este tipo de reglas componen lo que se denomina base de reglas del sistema, donde las palabras “baja” y “más” tienen asociadas funciones de pertenencia. Un sistema difuso está construido de un conjunto de reglas difusas. En resumen, el punto de inicio para la construcción de un sistema difuso es obtener una colección de reglas difusas de la forma Si−entonces de expertos humanos en base a su conocimiento y experiencia (Wang and Mendel, 1992). 2.4.1. Diseño de sistemas difusos Para el diseño de sistemas difusos se tiene en cuenta que existen diferentes tipos de sistemas difusos, entre los más populares y usados están los sistemas difusos puros, los sistemas del tipo Mamdani y los del tipo Sugeno. 2.4.1.1. Sistema difuso puro La configuración básica de un sistema difuso puro se muestra en la figura 2.10 (Ortiz and Liu, 2004), el problema principal con los sistemas difusos puros es que sus entradas y sus salidas son palabras en lenguaje natural, por lo que no tiene un marco matemático de trabajo formal y en la resolución de problemas de sistemas en ingeniería, las entradas y salidas son variables representadas con valores reales. Figura 2.10: Sistema difuso puro 2.4. SISTEMAS DIFUSOS 31 Por lo que su uso en aplicaciones industriales no es recomendado y su uso se centra a las expresiones lingüísticas de las personas. 2.4.1.2. Sistema difuso Mamdani Este sistema difuso es el más usado cuando se trabaja con la metodología fuzzy y fue uno de los primeros sistemas de control que utilizó conjuntos difusos. El método de Mamdani fue propuesto en 1975 por Ebrahim Mamdani (Nicolás Nicolás, 2008) y está compuesto de los elementos mostrados en la Figura 2.11. Base de reglas Fuzzificación Inferencia Defuzzificación Figura 2.11: Sistema difuso tipo Mamdani A continuación se describe cada elemento que conforma a este tipo de sistema difuso para dar una mejor idea de la interpretación de este sistema. Fuzzificación En general, la fuzzificación es el proceso mediante el cual se transforma un valor numérico concreto de una variable de entrada en un conjunto difuso que representa dicho valor. El primer paso consiste en tomar las entradas y determinar el grado al que ellos pertenecen con respecto a cada uno de los conjuntos difusos apropiados y la entrada siempre es un valor numérico limitado al universo del discurso de la variable de entrada. Los fuzzificadores se pueden clasificar en dos categorías según (Méndez and Morales, 2008): el fuzzificador unitario y el no unitario. Un fuzzificador unitario produce un conjunto 32 CAPÍTULO 2. MARCO TEÓRICO el cual se reduce a un punto, el correspondiente al valor preciso de la entrada y tiene grado de pertenencia máximo. Los restantes puntos del universo no pertenecen al conjunto en ningún grado. Para ello, se utiliza una función de pertenencia doblemente evaluada, ver ecuación 2.15: 1 µ(x) = 0 x es x = y ∈ Univ (2.15) x es x 6= y ∈ Univ Un fuzzificador no unitario produce un conjunto difuso cuyo marco de trabajo contiene más de un punto. En estos fuzzificadores, el valor de pertenencia es máximo µ(x) = 1 para x = y. Si la variable x se aleja de y, el valor de pertenencia decrece, ver Figura 2.12. Figura 2.12: Valor de pertenencia del fuzzificador no unitario Base de reglas La base de reglas es un conjunto de reglas difusas expresadas en forma lingüística. Estas expresiones son utilizadas para establecer relaciones causa-efecto entre dos proposiciones difusas las cuales son expresadas mediante variables lingüísticas y se expresan generalmente como: Si proposiciónA entonces proposiciónB En la teoría de control se estudian estas expresiones con la siguiente forma: Si A es B entonces C es D 2.4. SISTEMAS DIFUSOS 33 Interpretando la expresión, se observa que la relación difusa está definida en los dominios de las variables lingüísticas A y C por lo que el grado de verdad de la implicación es: El antecedente de la proposición es A es B y es representado por una conjunto difuso B. El consecuente de la proposición es C es D y es representado por el conjunto D. El significado de la evaluación de la expresión es una relación difusa que se expresa de la siguiente manera, ver ecuación 2.16. µ(A,C) = µB(A) · µD(C) (2.16) En donde el operador · puede ser un simple producto cartesiano o algún operador de implicación difuso. Si el antecedente o el consecuente son proposiciones compuestas, entonces se calcula primero la función de pertenencia de la proposición compuesta y el operador · es aplicado a las funciones de pertenencia resultantes. Por lo que cualquier operación o relación en lógica difusa corresponde a operaciones y relaciones entre funciones pertenencia que dan como resultado otras funciones de pertenencia (Rivas, 2005). Inferencia Los sistemas difusos Mamdani reciben este nombre debido al método de inferencia que utiliza en este caso Mamdani. El mecanismo de inferencia es el encargado de disparar las reglas, es decir, obtener una salida difusa a partir de una entrada difusa. Existen dos tipos de inferencia, las cuales son (Rivas, 2005): Inferencia basada en composición: las relaciones difusas que representan el significado de cada regla individual son agregadas a la relación difusa. Esta operación se realiza mediante una composición entre la entrada fuzzificada y la relación que describe al conjunto de reglas. El resultado de la composición es el conjunto difuso que describe el valor de la salida. 34 CAPÍTULO 2. MARCO TEÓRICO Inferencia basada en el disparo individual: En este tipo de inferencia cada regla se dispara individualmente. El disparo puede interpretarse como el cómputo del grado de pertenencia que se asigna a la entrada no difusa. Las funciones de pertenencia son recortadas y basadas en el conjunto difuso que describe el significado de la consecuencia de la regla, dado el grado del antecedente que ha sido asociado por la entrada no difusa. Finalmente, los valores de las funciones de pertenencia recortados son agregados para formar la salida final. Otra forma de entender el proceso de inferencia es mediante la generación de un mapeo para asignar a una entrada una salida utilizando lógica difusa. El proceso de inferencia provee las bases para la toma de decisiones del sistema. Este proceso involucra la utilización de funciones de pertenencia y las reglas generadas en la base de conocimiento. El método Mamdani utiliza reglas tipo Si-entonces. Una regla de la base de reglas o base de conocimiento tiene dos partes: el antecedente y la conclusión, como se observa en la Figura 2.13. En un sistema difuso tipo Mamdani tanto el antecedente como el consecuente de las reglas están dados bajo la forma de la expresión de la regla. SI la entrada es baja entonces la salida es alta Antecedente Consecuente Figura 2.13: Regla Si-entonces Mamdani Defuzzificación Una vez cumplidas las etapas anteriores, el resultado de la inferencia de la base de reglas será también un valor difuso. Sin embargo, para manejar el actuador es necesaria una magnitud no difusa. Por lo tanto es necesario un bloque que sea capaz de dar una salida determinada (crisp value) cuando se tenga una entrada difusa, esto para que represente lo mejor posible la distribución de posibilidades de los valores difusos, de manera que requiere 2.4. SISTEMAS DIFUSOS 35 un defuzzificador. Los métodos más empleados para defuzzificar son los basados en centro de área, centro de sumas, altura, medio del máximo, etc. A continuación se describirán algunos métodos usados en la lógica difusa. Centro de Área o centroide COA (Center of Area), como también se le conoce, es el método más conocido de defuzzificación. Este método encuentra el centro del área del conjunto difuso que resulta de combinar todos los conjuntos difusos obtenidos en el disparo individual de reglas. Este método toma el área del conjunto resultante como un todo, es decir, que si dos conjuntos individuales se traslapan entre sí, este hecho no se toma en cuenta, matemáticamente este método esta definido por la ecuación 2.17. l ∑ fi · µ( fi) fCOA = i=1 l (2.17) ∑ µ( fi) i=1 Donde fCOA representa la coordenada del centro de área, fi son los distintos valores que puede tomar la salida f y µ representa el conjunto difuso obtenido al aplicar el procedimiento de inferencia. Este método es el más utilizado en los procesos de control y se ha aplicado a un sin numero de proyectos que realizan control difuso, de manera que en este proyecto se hará uso de él. Un ejemplo numérico basado en la figura 2.14es el siguiente: Se tienen tres funciones A, B y C de pertenencia que representan conjuntos de salida, los cuales tiene los siguientes parámetros en los rangos de los conjuntos. LimiteizquierdoA = 0,2 CentroA = 0,275 LimitederechoA = 0,35 LimiteizquierdoB = 0,5 CentroA = 0,6 LimitederechoA = 0,7 LimiteizquierdoC = 0,8 CentroC = 0,9 LimitederechoA = 1 La ponderación de cada conjunto de salida es : PondA = 0,8 36 CAPÍTULO 2. MARCO TEÓRICO PondB = 0,7 PondC = 0,5 Para realizar el método COA se establece la siguiente formula: fCOA = CentroA · PondA +CentroB · PondB +CentroC · PondC PondA + PondB + PondC Sustituyendo en la formula fCOA = 0,275 · 0,8 + 0,6 · 0,7 + 0,9 · 0,5 = 0,54 0,8 + 0,7 + 0,5 En la Figura 2.14 también muestra gráficamente la ubicación del valor de la salida. Figura 2.14: Ubicación gráfica del valor de salida usando COA LOM, SOM y MOM Estos métodos de defuzzificación utilizan el valor máximo del conjunto total resultante. Más largo del máximo (LOM) utiliza el valor máximo, el más pequeño (SOM) utiliza 2.4. SISTEMAS DIFUSOS 37 el valor mínimo y el promedio (MOM) utiliza el valor medio entre SOM y LOM. Si el conjunto resultante posee un solo valor máximo, entonces los tres valores son iguales pero si posee un intervalo de valores máximos estos valores son distintos. Figura 2.15: Ubicación de SOM, MOM y LOM Para realizar este método se cuenta con tres funciones A, B y C de pertenencia que representan conjuntos de salida, los cuales tiene los siguientes parámetros en los rangos de los conjuntos. LimiteizquierdoA = 0,2 CentroA = 0,275 LimitederechoA = 0,35 LimiteizquierdoB = 0,5 CentroA = 0,6 LimitederechoA = 0,7 LimiteizquierdoC = 0,8 CentroC = 0,9 LimitederechoA = 1 La ponderación de cada conjunto de salida es : 38 CAPÍTULO 2. MARCO TEÓRICO PondA = 0,8 PondB = 0,7 PondC = 0,5 Se toma el valor máximo de la ponderación que es 0,8, el cual corresponde al conjunto A, por lo que gráficamente se obtiene: SOM = 0,2 MOM = 0,275 LOM = 0,35 Bisección Consiste en encontrar el punto para el cual, si se traza una línea vertical, el conjunto resultante queda dividido en dos regiones cuyas áreas son iguales, ver Figura 2.16. Figura 2.16: Ejemplo gráfico de bisección 2.4. SISTEMAS DIFUSOS 39 Figura 2.17: Sistema difuso tipo Sugeno Para calcular el área de las regiones se pueden emplear cualquier método matemático que mas convenga, el método de la bisección no se restringe a una sola fórmula. 2.4.1.3. Sistema difuso Sugeno Los sistemas tipo Sugeno se pueden utilizar para cualquier modelo en el que las funciones de pertenencia de salida sean lineales o constantes (Nicolás Nicolás, 2008). Un sistema difuso del tipo Sugeno está compuesto por los elementos que se muestran en la Figura 2.17 y que se explican a continuación. Fuzzificador: Transforma las entradas normales en entradas difusas entendibles por el sistema Sugeno (el funcionamiento es idéntico que el explicado en el anterior sistema difuso). Base de Reglas: El conjunto de reglas que se utilizan en un sistema Sugeno son diferentes a las reglas para sistemas Mamdani, debido a que el elemento consecuente de las reglas ya no es una variable lingüística, sino que es una función de entrada, ver la forma de la regla representada en la Figura 2.18. SI la entrada es baja entonces la salida es F(entrada) Antecedente Consecuente Figura 2.18: Regla tipo Si-entonces Sugeno 40 CAPÍTULO 2. MARCO TEÓRICO Inferencia: El motor inferenciador de este sistema tiene el mismo funcionamiento que el sistema difuso Mamdani que se ha explicado anteriormente. En los sistemas difusos tipo Sugeno, los valores obtenidos de los consecuentes de las diferentes reglas que se han activado ya son valores numéricos, por lo que no se necesita una etapa de defuzzificación. 2.4.2. Controlador PID difuso Es deseable contar con las 3 variables de un controlador PID, pero al trabajar con 3 variables de entrada al sistema, la inferencia difusa da lugar a un gran número de reglas y se dificulta la interpretación de la acción integral mediante reglas, por ello es común que se le desacople o que simplemente se le afecte por una ganancia. Esto último es lo que se propone en (Galán et al., 2000), sumar la acción integral a la salida del sistema de inferencia difusa (FIS). A esta estructura resultante se le llamará FPD+I y es la arquitectura usada en este trabajo. El método de ajuste consiste en transferir los parámetros de un controlador PID (ajustado por cualquier técnica) a un controlador difuso FPD+I. Este controlador también se le conoce como PID difuso y la ecuación 2.18 lo define matemáticamente. u(t) = [ f (ke · e), kde · de + ki · ie)] · ku = FPD + I(e, de) (2.18) Si se realiza una aproximación lineal en la ecuación 2.18, se obtiene la ecuación 2.19. u(t) = [ke · e + kde · de + ki · ie)] · ku (2.19) Donde e es el error (e = re f erencia − salida), de es la derivada del error e ie es la integral del error. La aproximación lineal empleada tiene el objetivo de buscar una semejanza entre dos tipos de controladores: el PID clásico y el PID difuso. Es posible aproximar el FPD con un PD clásico debido a que el FPD está diseñado para emular a un PD, por lo tanto, con la ecuación 2.20 se está representando de manera aproximada el comportamiento “predictivo” del controlador difuso junto con la acción integral. 2.4. SISTEMAS DIFUSOS 41 ki kde · de + · ie ke · ku u(t) = e + ke ke (2.20) Por otro lado, la ecuación 2.21 representa al controlador PID ideal: de 1 u(t) = e + τd · + · dt τI Z e dt (2.21) Se puede observar semejanzas entre las ecuaciones 2.20 y 2.21, de la comparación entre ellas surge la ecuación 2.22, 2.23 y 2.24. k p = ke · ku (2.22) τd = kde · ke (2.23) 1 ki = τI ke| (2.24) Cabe aclarar que el ajuste de los controladores difusos también se ven afectados por los valores de las funciones de pertenencias por lo cual queda a conocimiento del diseñador una sintonización adecuada tomando las funciones de pertenencia y las ganancias de los controladores. Comúnmente la estructura de lógica difusa que se ocupa en el controlador FPD+I es el de Mamdani, por lo que en este proyecto se hara uso de él. Los controladores inteligentes como los difusos requieren operaciones en sus etapas de fuzzificación, inferencia y defuzzificación. Algunos cálculos son complejos y, en aplicaciones que requieran un buen desempeño en tiempo, llegan a tener complicaciones con el número de cálculos por segundo. Por lo que se busca tecnologías de alto desempeño que ayuden a solventar este tipo de problemas, una de estas tecnologías es la lógica reconfigurable, ésta se basa en el uso de dispositivos reprogramables como los FPGAs, los cuales proporcionan un alta capacidad de cálculo por lo que mejora en tiempo gran cantidad de procesos. 42 CAPÍTULO 2. MARCO TEÓRICO 2.5. Lógica reconfigurable Existen dos métodos principales de implementar sistemas reales en la computación tradicional, el primero es usar un Circuito Integrado de Aplicación Específica o ASIC. Se diseñan ASICs para realizar una tarea en especial, estos dispositivos son muy rápidos y eficaces siempre y cuando realicen exactamente la aplicación para la que han sido diseñados. El inconveniente es que después de la fabricación el circuito no puede alterarse, lo cual lo hace caro si el diseño necesita modificaciones posteriores a su desarrollo. El segundo es el uso de los microprocesadores (MP) y microcontroladores (MC), los cuales presentan una solución más flexible. Los MP y MC realizan sus operaciones ejecutando un conjunto de instrucciones, por lo que las modificaciones resultan poco costosas ya que no cambiaría de hardware como lo haría los ASIC, la desventaja de esta flexibilidad es que la velocidad de actuación está por muy debajo del de un ASIC. El procesador debe leer cada instrucción de la memoria, determinar su significado, y sólo entonces lo ejecuta. Además, el conjunto de instrucciones no puede cambiarse ya que se estableció desde el diseño, por lo que cualquier otro funcionamiento no será permitido y costará un tiempo alto de ejecución si se desarrolla fuera del MP o MC. La computación reconfigurable como también se le conoce, ocupa el espacio entre los ASIC y MP, mientras consigue un desempeño más rápido que los microprocesadores mantiene un nivel más alto de flexibilidad que los ASICs. Este tipo de computación se consigue con la utilización de FPGAs. Los FPGAs son introducidas por Xilinx en 1985 y consiste en una matriz bidimensional de bloques configurables que se pueden conectar mediante recursos generales de interconexión (Varela Rincón and Loaiza Pulgarín, 2008). En realidad lo que se programa en un FPGA son los conmutadores que sirven para realizar las conexiones entre los diferentes bloques, más la configuración de los bloques. Actualmente, los FPGAs se han utilizado para acelerar una variedad de aplicaciones. Para lograr estas ventajas, las aplicaciones utilizan la programación reconfigurable, normalmente se forman sistemas con una combinación de lógica reconfigurable. 2.5. LÓGICA RECONFIGURABLE 2.5.1. 43 Dispositivos Programables Al momento de elegir el diseño y cualidades que se desean en un sistema digital se toma en cuenta la flexibilidad, coste, complejidad y prestaciones. En la figura 2.19 se representa éstas principales aproximaciones involucrando distintos diseños de sistemas. Figura 2.19: Flexibilidad, coste, complejidad y prestaciones en diseños de sistemas Se observa que las mejores prestaciones la proporciona un diseño full-custom pero tiene un costo elevado y una gran complejidad de diseño. Por otro lado, un diseño en software es más barata económicamente y flexible, sin embargo en algunos casos no puede alcanzar prestaciones altas. Las otras dos opciones están caracterizadas por la fabricación de un sistema digital realizado mediante un diseño semi-custom, utilizando ya sea células estándar o un dispositivo que se programe como son los FPGAs. Los dispositivos programables constituyen una buena oferta para realizar diseños electrónicos digitales con un buen compromiso costo-prestaciones y permiten obtener una implementación en un tiempo de diseño corto. 44 CAPÍTULO 2. MARCO TEÓRICO 2.5.2. Dispositivo FPGA Dentro de los dispostivos programables, resalta el FPGA (Field Programmable Gate Array), introducidas por Xilinx en 1984, + el dispositivo programable por el usuario de más general espectro (Vallejo and Rodrigo, 2004). Consisten en una matriz bidimensional de bloques configurables que se pueden conectar mediante recursos generales de interconexion. Estos recursos incluyen segmentos de pista de diferentes longitudes, más unos conmutadores programables para enlazar bloques a pistas o pistas entre sí. La tecnología FPGA continúa siendo impulsada en la actualidad. Se espera que el mercado de FPGAs en todo el mundo aumente de $1,900 millones en el 2005 a $2,750 millones en el 2010 . Los FPGA en la industria han sido impulsados por el hecho de que los FPGAs combinan lo mejor de los ASICs y de los sistemas basados en procesadores. Ofrecen altas velocidades temporizadas por hardware y fiabilidad, pero sin requerir altos costos que genera un diseño de ASIC. A diferencia de los procesadores, los FPGAs llevan a cabo diferentes operaciones de manera paralela, por lo que las tareas no necesitan competir por los mismos recursos. Cada tarea se asigna a una sección dedicada del chip y puede ejecutarse de manera autónoma. Como resultado, el rendimiento de una parte de la aplicación no se ve afectado cuando se agregan otros procesos. 2.5.2.1. Ventajas del uso de FPGAs A continuación se describirán las principales ventajas que se tienen al usar los FPGAs. Rendimiento Debido al paralelismo del hardware, los FPGAs exceden la potencia de cómputo de los procesadores digitales de señales (DSPs), logrando romper el paradigma de ejecución secuencial y logrando más en cada ciclo de reloj. Tiempo en llegar al mercado La tecnología FPGA ofrece flexibilidad y capacidades de rápido desarrollo de prototipos para enfrentar los retos de que un producto se libere tarde al mercado. Se prueba una idea y 2.5. LÓGICA RECONFIGURABLE 45 se verifica en hardware sin tener que pasar con el proceso de fabricación de ASIC, además se puede implementar cambios en pocos lapsos de tiempo. Precio El precio de un diseño personalizado ASIC excede considerablemente al de las soluciones de hardware basadas en FPGA. Los requerimientos de un sistema van cambiando con el tiempo y el precio de cambiar incrementalmente los diseños FPGA es insignificante al compararlo con el precio de implementar cambios en un ASIC. Fiabilidad Los circuitos de un FPGA son una implementación segura de la ejecución de un programa. Los FPGAs no necesitan sistemas operativos, minimizan los retos de fiabilidad con ejecución paralela y hardware preciso dedicado a cada tarea. Mantenimiento a largo plazo Los FPGA se pueden actualizar cuando ya han sido implementados y no requieren el tiempo y el precio que implica rediseñar un ASIC. Los FPGA, al ser reconfigurables, son capaces de mantenerse al tanto con modificaciones a futuro que pudieran ser necesarias. Mientras el producto o sistema se va desarrollando, se puede implementar mejoras funcionales sin la necesidad de invertir tiempo rediseñando el hardware o modificando el diseño de la tarjeta. 2.5.2.2. Tecnologías de programación En el campo de los FPGAs existe una variedad de tecnologías de programación. Las más conocidas son los anti-fuse y las celdas SRAM (Aguirre, 2003). Los anti-fuse están normalmente desconectados y se posicionan entre dos cables interconectables. Si se aplica entre los extremos un voltaje elevado se conectarán los dos cables de forma permanente. Estos no sirven para sistemas reconfigurables donde los dispositivos deben cambiar contínuamente su programación. La mayoría de las FPGAs se basan en celdas SRAM programables. Estas celdas realizan las conexiones entre los cables interconectables y también se programan y reprograman una 46 CAPÍTULO 2. MARCO TEÓRICO gran cantidad de veces. También se pueden utilizar para programar las líneas de control de los multiplexores. Estos multiplexores se utilizan tanto en Flip-Flop tipo D como en los LUTs. Los LUTs son unas pequeñas memorias que poseen varias funciones lógicas. Estos elementos se pueden comportar como cualquier función lógica dependiendo de las líneas de control. 2.5.2.3. Fabricantes de FPGAs Los fabricantes de FPGA se diferencian segun la arquitectura que desarrollan. Independientemente del fabricante elegido para el diseño, ciertamente el más beneficiado en esta competencia es el usuario final de los FPGAs. A pesar de tratar de diferenciarse uno del otro, en realidad los FPGAs de los diferentes fabricantes tienen muchos componentes en común, tales como bloques lógicos programables, bloques de memoria de doble puerto, bloques para ejecución de MACs ( Multiplicador– Acumulador o bloques DSPs), bloques de control de reloj, bloques de entrada/salida, etc. Recientemente la revista electrónica ESD (Embedded Systems Design) y EEtimes (Electronic Engineering Times) realizaron un estudio de mercado llamado “2009 Embedded Market Study” (García, 2009). El estudio reveló que Xilinx ocupa desde hace unos años el primer lugar como proveedor de FPGA a nivel mundial en el desarrollo de sistemas embebidos, tambien indica que en segundo lugar está el fabricante Altera. Es importante mencionar que las diferencias entre Xilinx y Altera, a nivel de silicio, son mínimas pues ambos fabricantes tienen productos similares. Sin embargo, existen diferencias evidentes. Xilinx tiene una tendencia por la reconfiguración dinámica, mientras que Altera la ha descartado totalmente. Otra diferencia es el nivel de las herramientas que se emplean para programar los FPGA, ya que Xilinx permite trabajar a un nivel de programación más bajo que Altera. En esta proyecto se hace uso de la tecnología proporcionada por Xilinx. La empresa Xilinx ofrece al mercado dos tipos de FPGAs: una de bajo costo, performance media y otra de alto costo, performance alta-muy alta. La primera se denomina la familia de los FPGA Spartan, y la segunda los FPGA Virtex. Debido al crecimiento del mercado se han ido renovando cada cierto periodo de tiempo. Por ejemplo, la familia Spartan evolucionó de Spartan pasando a Spartan 2, Spartan 3 y la recientemente lanzada Spartan 2.5. LÓGICA RECONFIGURABLE 47 6. Del mismo modo para la Virtex, comenzando con Virtex, Virtex-E, Virtex 2, Virtex 4, Virtex 5 y la reciente Virtex 6. También, actualmente se ha estado innovando con nuevas familias de FPGA como lo son Artix y Kintex. 2.5.2.4. Componentes de FPGAs La estructura interna de un FPGA esta compuesta por un número finito de recursos predefinidos y con interconexiones programables para implementar un circuito digital reconfigurable. Los recursos predefinidos se encuentran integrados básicamente por, ver Figura 2.20: • CLB (Configurable Logic Block): Estos bloques van desde una simple compuerta hasta módulos complejos y suelen incluir Flips-Flops (FF) y tablas de consulta (LUT, Look Up Tables) para facilitar la implementación de circuitos combinacionales y secuenciales. • Trayectorias de interconexión (Routing Channel): La estructura de interconexión interna en un FPGA consiste en un conjunto de pistas o trazas que pueden conectarse mediante elementos de conexión programables. • Bloques entrada/salida (Input/Output). Constituyen una interfaz bidireccional programable de conexión de entrada/salida y son el medio de comunicación con periféricos al FPGA. Figura 2.20: Componentes de un FPGA 48 CAPÍTULO 2. MARCO TEÓRICO El diseño de las arquitecturas generales de un FPGA se encuentran escasamente descritas en la literatura abierta, debido a que mucha de la información es propiedad de los fabricantes. Capítulo 3 Antecedentes En esta investigación se realizó una búsqueda exhaustiva de trabajos relacionados basados principalmente en tesis de licenciatura y maestría, así como también en artículos de divulgación científica. Los temas principales son acerca de lo que se ha realizado en el campo de control clásico y control inteligente sobre motores de CD. A continuación se muestran algunos de estos trabajos relacionados, divididos en dos grandes grupos según la implementación: Software y Hardware. Cada grupo está dividido en dos subgrupos: control clásico y control inteligente, estos últimos están basados en técnicas de inteligencia artificial de lógica difusa. 3.1. Control clásico en software El controlador relativamente más fácil de diseñar e implementar es el control on/off (Ogata, 2003), sin embargo este tipo de control no es el adecuado para la mayoría de sistemas, es por ello que la mayoría de veces se habla de los controladores PID ya que son muy usados, prácticos y muy efectivos. Una de las ventajas del control es que existe una gran variedad de técnicas para llevar a cabo el diseño de los mismos, en este caso se describe los controladores PID y con un costo barato de implementación. Para entender el funcionamiento de los controladores se requiere conocer fundamentos matemáticos, los primeros estudios de sistema de control se basaban en la solución de ecuaciones diferenciales por los medios clásicos como la transformada de Laplace y las 49 50 CAPÍTULO 3. ANTECEDENTES funciones de transferencia. A continuación se describirán algunos trabajos realizados con el uso de la transformada de Laplace y funciones de transferencia. Cuando se hace uso de la transformada, se dice que se está trabajando en el dominio de la frecuencia como el trabajo en (Alejo-Gámez, 2011), donde muestran los pasos a seguir para diseñar el control de velocidad de un motor de corriente directa empleando amplificadores operacionales y elementos electrónicos; los valores del modelo matemático del controlador son valores ideales de manera que en en el circuito la respuesta de salida no fue la misma que la obtenida en un simulador, sin embargo la señal cumple con las restricciones del sistema idealizado. Otro ejemplo es (Noriega del Castillo, 2011), donde se integró la tecnología inalámbrica con el control automático, de manera tal que el controlador de un proceso se comunicó en tiempo real con los sensores y actuadores mediante una red inalámbrica, En este trabajo se concluye que el tiempo de muestreo y de la distancia entre los nodos de la red influye en el tiempo de establecimiento del sistema y su estabilidad, ya que un sistema que realiza un muestreo tendrá más datos por lo que aumentará su precisión. La distancia entre los nodos de la red también es importante ya que el ruido afectara menos y la señal que se envía no se distorsionará en gran mediada por el ambiente. En (Farid and Faruq, 2008) se realiza una simulación y una investigación experimental en el desarrollo del controlador PID utilizando la herramienta de software MatLab y de una tarjeta de adquisición de datos; este proyecto resalta sus distintos métodos de sintonización del controlador PID, usa los métodos de Zeigler Nichols y de prueba y error. Los trabajos anteriormente mencionados realizan un control analógico mediante el uso de la transformada de Laplace y funciones de transferencia. Otra alternativa es realizar un análisis usando la transformada Z para realizar un controlador digital como en (Castillo, 2009), donde controlan un robot móvil siendo los sistemas de potencia, alimentación y control de periféricos los sistemas que adquieren mayor relevancia porque en ellos se centra todo el funcionamiento del robot móvil. Este trabajo resalta lo importante que son los fundamentos matemáticos (transformada Z) necesarios para controlar un robot autómata y de cómo se establecen las variables a controlar mecánicamente, lógica y eléctricamente. 3.2. CONTROL INTELIGENTE EN SOFTWARE 51 En (Toloza, 2011) se realiza un diseño de un control PI para un motor de corriente continua discreto usando la herramienta MatLab y LabView, en particular este documento realza los beneficios de trabajar con herramientas software, éstas aproximan una ecuación la cual representa un comportamiento de datos capturados por una tarjeta de adquisición de datos. Por último, en (Avila, 2011) se presenta el control de velocidad de un motor de corriente directa utilizando control discreto. En este trabajo se usa un encoder acoplado a un eje de un motor, el cual se controla mediante PWM (Pulse Width Modulation), la modulación de ancho de pulso es una técnica en la que se cambia el ciclo de una señal periódica para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga. Con los trabajos anteriores se tienen en cuenta las dos opciones de realizar un controlador: discreto y analógico; se han realizado estudios y análisis como los que presentan en (Chojolán, 2007), en donde se presenta comparación entre la respuesta dinámica de lazos de control con reguladores tipo PID, en tiempo continuo y en tiempo discreto, tomando como parámetros de desempeño su respuesta temporal y su respuesta en la frecuencia, al final se concluye que dada la confiabilidad y bajo costo económico de los sistemas digitales, los reguladores digitales han sustituido o sustituirán a sus semejantes analógicos. Los controladores clásicos, ya sean analógicos o digitales son los más usados en la actualidad aunque en ocasiones este tipo de controladores no resultan ser estables ante perturbaciones y cambios, por lo que el uso de técnicas basadas en inteligencia artificial se ha ido incrementado. En la siguiente sección se presentarán algunos trabajos que se realizaron usando técnicas inteligentes sobre plataforma software. 3.2. Control inteligente en software Como se dijo anteriormente, además de controladores clásicos como PID, entre otras combinaciones, existen nuevas formas de realizar control, la cuales se basan en técnicas de Inteligencia Artificial. A continuación se presentarán trabajos relacionados de control inteligente, esto con el fin de mostrar lo que se ha realizado hasta el momento. 52 CAPÍTULO 3. ANTECEDENTES El uso de lógica difusa en el campo de control es variado, se implementa el sistema de controlen dos formas: 1. Uso de reglas difusas solamente. 2. Uso de un PID mejorado con lógica difusa. El uso de la lógica difusa con solamente reglas se ejemplifica en (Coronel Lemus, 2004), ya que se presenta el desarrollo de un controlador difuso de la velocidad de un motor de CD usando el método de inferencia de Mamdani. Se especifica el conocimiento en forma de reglas lingüísticas, estas reglas están definidas de forma que describen los estados de las variables en conjuntos difusos, el controlador difuso realizado en este proyecto tuvo un mejor tiempo de respuesta en comparación a un PID clásico explicado en el mismo trabajo. Por otra parte, los controladores PID pueden ser mejorados con el uso de control de lógica difusa como en (Morata Palacios, 2009) en el cual se desarrolló una implementación basado en software Simulink de MatLab de un modelo que utiliza un controlador fuzzy PD+I para estabilizar el funcionamiento de un cuadrotor. El autor de este documento realza en gran medida el conocimiento del experto del humano para establecer un método difuso, siempre tomando en cuenta la relación de estabilidad, precisión y velocidad de respuesta. Otra investigación es mostrada en (Rodríguez and Liu, 2004), presentando una implementación en tiempo real de un control PD-Difuso que logra estabilizar un sistema en lazo cerrado de una barra esfera. El control PD-Difuso presenta un error de posición pequeño comparado con el control clásico PD, donde el control difuso se utiliza como término compensador de efectos gravitacionales y otras no linealidades. Un trabajo similar es (Moreno et al., 2006), el cual presenta el diseño de un controlador PID difuso, a partir de la sintonía de un controlador PID convencional; este proceso de control es para la regularización del proceso de activación del carbón en un horno rotatorio. Los resultados obtenidos fueron que el controlador PID difuso presenta oscilaciones más leves en la respuesta ante los cambios de escalón y en las variaciones ante las perturbaciones, en cambio, el PID clásico exhibió un tiempo de levantamiento menor ante el cambio escalón en la referencia. Por último, en (Garrido et al., 2006) proponen un control proporcional con una técnica de compensación adaptativa basada en lógica difusa. El enfoque se basa principalmente en 3.3. CONTROL CLÁSICO EN HARDWARE 53 la teoría de estabilidad de Lyapunov y lógica difusa que se compara con un controlador PI clásico. En la siguiente sección se abordará lo relacionado con trabajos que realizan estudios e implementaciones acerca de control clásico en hardware. 3.3. Control clásico en hardware Como se ha visto existen varios trabajos relacionados con el control en las diferentes áreas con el enfoque en general de controlar motores de CD. Estos trabajos se basan en implementaciones software aunque hoy en día también se investigan métodos de realizar el control usando arquitecturas hardware como el mostrado en (León Galarza et al., 2012), donde se diseña e implementa el control PID de velocidad utilizando la tarjeta FPGA Spartan 3E y LabView, este trabajo muestra cómo trabajar con una tarjeta de adquisición de datos y tarjetas con núcleo FPGA. Por otra parte, en (Londoño, 2011) se presenta el diseño e implementación de un sistema para el control de posición de un motor CD basado en FPGA. Se describen los módulos implementados en la FPGA que se encargan de la generación de la trayectoria de arranque, la lectura de la señal del encoder y el controlador PI. La comparación entre los resultados de la simulación y los datos experimentales permiten validar el funcionamiento del sistema desarrollado. La diferencia en el comportamiento de la señal de error para los resultados de la simulación y los resultados experimentales se relaciona principalmente con el modelado del motor, sin embargo el comportamiento es aproximado entre los resultados de simulación y los experimentales. En (Trimeche et al., 2008) se describe una metodología para la construcción de controladores PID en FPGAs, esta metodología mejora la velocidad, la precisión, energía y la rentabilidad de los controladores. El autor de este documento concluye que los controladores PID en FPGAs obtienen mejores resultados respecto a otras implementaciones digitales, esta conclusión es útil ya que establece las bases que guían cuando se comparan distintos controladores. Otro documento que se revisó fue (Sonoli and Konduru, 2010), en donde se desarrolló una aplicación mediante el lenguaje VHDL (Very High Speed Integrated Circuit Hardware 54 CAPÍTULO 3. ANTECEDENTES Description Language) para el FPGA Spartan 3 XC3S400. Esta aplicación está basada en un controlador PID para el control de velocidad de motor de corriente continua. Las herramientas utilizadas para crear y probar los módulos de software son Xilinx ISE 9.2i y ModelSim XE III 6.3c. El trabajo antes mencionado reporta que los controladores PID implementados en hardware son más veloces y precisos que otra forma de implementación digital como los microprocesadores y microcontroladores. Por último, en (Murthy et al., 2008) se realiza una implementación FPGA de un controlador PID, el cual se aplicó en vehículos terrestres no tripulados. El desarrollo de este trabajo se realizó con una herramienta adicional de Simulink llamada System Generator (SysGen), esta herramienta según el autor hace fácil el diseño y la implementación de sistemas digitales por su alto nivel de abstracción. Se considera importante esta herramienta, ya que en este trabajo de tesis se hará uso de ella ya que es una rápida manera de desarrollar y simular arquitecturas hardware. Los trabajos anteriormente mencionados son configurados en las tarjetas FPGA de prueba, la diferencia entre estos trabajos y el desarrollado en esta tesis es que en la tesis solo se enfocará a la implementación de arquitecturas hardware. También, la descripción de trabajos permite conocer el funcionamiento de controladores en plataforma hardware, y ésto proporciona una base de conocimientos para analizar los controladores inteligentes en hardware, los cuales se presentan en la siguiente sección. 3.4. Control inteligente en hardware Como se comentó anteriormente, actualmente se han implementado técnicas de control con técnicas de inteligencia artificial como lógica difusa, presentado en (Grisales et al., 2001), este artículo presenta el desarrollo de un controlador difuso PD basado en FPGA, la inferencia se lleva a cabo por medio de una Look Up Table de 256 posiciones. El sistema ha sido especificado empleando el lenguaje VHDL integrando la arquitectura del controlador en un solo IC (Cicuito Integrado). La arquitectura del controlador implementada sobre el dispositivo reconfigurable, según el autor le da una naturaleza abierta para futuros cambios. 3.4. CONTROL INTELIGENTE EN HARDWARE 55 En (Chen et al., 2009) se realiza un control difuso implementado en arquitectura hardware, el cual resuelve el problema de control preciso de un sistema no lineal con un controlador digital PID difuso, haciendo el diseño de MatLab y la implementación en un FPGA. En el documento establece que si se aumenta el número de reglas en la inferencia difusa, éste se vuelve más preciso, alcanzando la señal de referencia en menos tiempo. Por otra parte, en (Obaid et al., 2009) se diseña un controlador PID digital difuso usando el lenguaje de programación VHDL para un FPGA y se establecieron 64 reglas para la inferencia difusa. El controlador produce una respuesta en 20.8 ns con 75.85 MHz de frecuencia, por lo que es capaz de formar parte de sistemas complejos que requieran una respuesta rápida. Entre más reglas tenga el sistema difuso es más preciso y sin embargo el costo en recursos es mucho mayor, de manera que en este trabajo de tesis se establece un sistema difuso que cumpla con un buen funcionamiento con su número de reglas y con un bajo costo en recursos hardware. Otro documento revisado es (López et al., 2006), éste describe una metodología para diseñar un controlador PID difuso para ser implementado en un FPGA. El desarrollo del controlador se basó en el comportamiento dinámico del error, diferencial del error y la salida del sistema. El autor reporta que el controlador PID difuso tiene un tiempo de respuesta rápido, un sobreimpulso mínimo y un error en la salida pequeño, asimismo, comenta que la arquitectura del controlador implementado sobre un dispositivo reconfigurable, le da naturaleza abierta para cambios con el objetivo de aumentar el rango de control y la comunicación con la PC. Por último, se ha revisado (Islam et al., 2008) en donde se propone un controlador PID basado en lógica difusa utilizando VHDL, éste es aplicado a un sistema de crucero de transportes, en donde el sistema bajo el concepto difuso se ha desarrollado para evitar la colisiones entre vehículos en la carretera, este trabajo es interesante ya que comenta la importancia de tener un sistema que responda en tiempo real y además se trata de una aplicación en que se la vida humana está de por medio. 56 CAPÍTULO 3. ANTECEDENTES 3.5. Discusión En esta búsqueda de trabajos relacionados se han encontrado algunos trabajos de lógica difusa con FPGA, por lo que se espera que en un futuro exista una documentación más amplia sobre este tema de estudio ya que resulta interesante para el estudio de control. Por último, respecto a los trabajos relacionados seleccionados en esta investigación se concluye que existen diversas maneras de realizar control de sistemas, en específico, controlar motores de CD. El trabajo relacionado ha establecido las bases que ayudarán a analizar y realizar controladores en software y hardware de manera clásica y usando lógica difusa. Asimismo, el trabajo relacionado facilitará la implementación de nuevas arquitecturas hardware proporcionando conocimiento previo y experiencia de otros autores. Capítulo 4 Sistemas de control propuestos y desarrollo Una vez establecidos los fundamentos teóricos de los sistemas de control clásico y los sistemas de control inteligente y conocidos los trabajos similares que se han realizado en el campo de control clásico e inteligente, se procede a diseñar y desarrollar controladores para motores de CD. Para realizar el control de motores de CD se establece la realización de dos controladores: PID PID difuso. Primeramente el desarrollo se realizará en software, ésto para establecer un preámbulo de conocimientos y para conocer el comportamiento de cada controlador. En plataforma software, los controladores PID clásico y PID difuso se desarrollarán utilizando Simulink de MatLab 2012a junto con un toolbox MatLab Fuzzy, las cuales proveen una interfaz gráfica donde se puede describir completamente un sistema difuso. Posteriormente, una vez ya conocido el funcionamiento y el comportamiento de los controladores a desarrollar se procederá a diseñar las arquitecturas hardware. Para esto se utilizan unas herramientas software que sirven para diseñar y simular la plataforma hardware, las cuales son Simulink de MatLab 2012a junto con System Generator (SysGen), 57 58 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO anteriormente mencionado (verB apéndice B). SysGen cuenta con una opción llamado Timing and Power Analisis, que genera un reporte de tiempos en donde muestra el periodo mínimo y la frecuencia máxima de operación de la arquitectura, asimismo se obtiene un resumen de los recursos hardware usados en cada arquitectura, el cual es importante al momento de comparar los controladores. En las secciones siguientes se establece el diseño y desarrollo de los controladores PID y PID difuso primeramente en software y posteriormente en hardware. 4.1. Controlador PID En esta sección se describirá la implementación software y la implementación hardware del controlador PID. Como se ha descrito anteriormente el controlador PID cuenta con tres acciones: proporcional, integral y derivativa. En la Figura 4.1se muestra el controlador conectado a un planta que podría ser un horno, una válvula o un motor de CD, entre otros distintos procesos. Señal de control Entrada de referencia Señal de error Gp P + + Gi I Gd D - Señal retroalimentada + Planta Señal controlada + Retroalimentación Figura 4.1: Diagrama esquemático del controlador PID conectado a una planta. Donde Gp = ke , Gd = kd y Gi = ki . Estas tres ganancias multiplican las acciones Proporcional, Integral y Derivativa, por lo que al sintonizar se deben proporcionar estas ganancias para obtener una respuesta satisfactoria. La sintonización en el desarrollo de este controlador se basa en prueba y error, ya que es el método simple y rápido en comparación 4.1. CONTROLADOR PID 59 a otros basados en la respuesta transitoria del controlador. Se prevé que en un futuro se haga uso de métodos más complejos como Ziegler–Nichols, esto con el fin de optimizar el funcionamiento del controlador. El cambiar el método de sintonización sólo proporciona los valores de las ganancias, por lo que no afecta el diseño de las arquitecturas SW/HW que se proponen. 4.1.1. Desarrollo en software del controlador PID Antes de describir los pasos a seguir para el desarrollo de los controladores, se debe establecer la función de transferencia de la planta, como se ha comentado se trata de motores de CD cuya función de transferencia es la mostrada en la ecuación 2.2. Por lo que en Simulink se realiza el diagrama del controlador PID más la planta a controlar; la conexión de la planta y el controlador se muestra en la Figura 4.2. 0.0645 Gain1 du/dt Step Derivative1 1 s Integrator1 0.0005 Gain2 4.58e-2 18.67e-9s2 +17.68e-6s+2.10e-3 Scope2 Transfer Fcn3 3 Gain3 Figura 4.2: Controlador PID y planta en software La entrada de referencia es representada por una función escalón establecida en el valor numérico de 24; otros bloques analógicos mostrados son un derivative e intregrator, los cuales representan la acción integral y derivativa del controlador PID afectados cada uno por una ganancia, al final se suman con la acción proporcional y la suma de las tres acciones forman la entrada de la planta. La salida obtenida al final de la planta será mostrada en el Capítulo 5 de Resultados. 60 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO 4.1.2. Desarrollo en hardware del controlador PID Una vez que se realizó el diseño del controlador PID en software, se procedió a diseñar la arquitectura del controlador PID en lógica reconfigurable. Para esto se necesita definir la operación de la derivada y de la integral. La derivada esta dada por la ecuación 4.1 y la integral por la ecuación 4.2. Derivadaerror = de = erroractual − erroranterior (4.1) n Integralerror = ie = ∑ errori (4.2) i=0 Para realizar el cálculo de la derivada en lógica reconfigurable se necesitan dos señales de error, la diferencia entre éstas es que una está retrasada en el tiempo respecto a la otra; para realizar este retraso es necesario utilizar un registro, tal como se ve en la Figura 4.3. 1 Operación Deriv ada In1 Derivada del error = de Error a a -b b d z-1 q Register1 1 Out1 AddSub5 Error anterior Figura 4.3: Operación derivada Por otra parte, para el cálculo de la integral en lógica reconfigurable se necesita la señal del error solamente, ésta se retroalimenta en un sumador para que realice una sumatoria; para realizar esta retroalimentación se utiliza un registro tal como se ve en la Figura 4.4. 4.1. CONTROLADOR PID 61 Operación Integral Error 1 Integral del error = ie a In1 1 a+b b Out1 AddSub2 Register2 Convert4 ie previo cast q z-1 d Figura 4.4: Operación Integral El diagrama completo es mostrado en la Figura 4.5, nótese que las tres acciones (P, I y D), están afectadas por una ganancia cada una. Por otro lado se resalta el uso del bloque cast (bloque de SysGen) que sirve para establecer un tamaño fijo de bits en las entradas de los sumadores y la consecuencia de no usarlos es que el tamaño de bits en la entrada crecería con cada retroalimentación, por lo cual no se tendría una arquitectura fija. PROPORCIONAL x 0.01199 In Gateway In CMult a b b AddSub2 Register3 AddSub x 0.009995 a+b Convert4 Register2 cast q z-1 d d z-1 a b Scope2 a+b AddSub1 Gateway Out a a-b cast Convert1 q Step cast Convert INTEGRAL CMult2 a a+b b Out 4.58e-2 18.67e-9s2 +17.68e-6s+2.10e-3 AddSub3 Transfer Fcn1 DERIVATIVO a d z-1 q Register1 a-b x 0.004501 b AddSub5 cast Convert2 CMult1 System Generator Figura 4.5: Controlador PID implementado en hardware Por otra parte, cabe destacar que las ganancias no son las mismas que se utilizan en el PID en software, esto se debe a que se tiene que tomar en cuenta el tiempo de muestreo en cada ciclo de reloj, por lo que se ajustaron el tiempo de muestreo de la señal de entrada y los valores de las ganancias hasta obtener la señal de salida deseada. 62 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO 4.2. Controlador PID difuso La arquitectura hardware del controlador PID difuso tiene en específico la forma FPD+I, que como se ha comentado la parte difusa esta relacionado con las acciones proporcional y derivativo, sumándose con la parte integral. El diagrama del controlador anexando la planta es el que se muestra en la Figura 4.6. e E Ke ce Kde CE Ki IE u Ku PD RULES Señal de control U Planta Señal controlada Z-1 ie Z-1 Señal retroalimentada Retroalimentador Figura 4.6: Diagrama del controlador PID difuso con la planta Como se ve en la Figura anterior se nota que el cálculo de la acción integral y derivativa esta basado en los diagramas 4.3 y 4.4. Una vez conocido el modelo a seguir se decidió desarrollar el módulo difuso. Primeramente se deben de definir los conjuntos difusos en base a una función de pertenencia, la función que se elige depende de los datos de entrada y el comportamiento que se necesite en los sistemas difusos. sin embargo, hay ciertas funciones que son más frecuentemente usadas debido a su simplicidad matemática, entre ellas están las funciones del tipo triangular, trapezoidal, parabólicas y Gaussianas. Este proyecto se enfoca en el uso de funciones triangulares ya que son las más simples de implementar computacionalmente y son muy usadas cuando se realizan controladores difusos. La función de pertenencia de un elemento x se puede calcular usando la ecuación para funciones triangulares, ver ecuación 4.3. 4.2. CONTROLADOR PID DIFUSO µtriangular (x, p1 , p2 , p3 ) = 63 x−a m−a b−x a<x<m 0 1 x<aox>b b−m m<x<b (4.3) x=m Donde a es el vértice más a la izquierda y junto con b que es el vértice mas a la derecha representan el valor mínimo dentro de la función de pertenencia, por otro lado m es el centro de la base del triángulo y representa el máximo valor del función de pertenencia, ver Figura 4.7. Figura 4.7: Función de pertenencia triangular Entradas y salidas Los controladores difusos comúnmente hacen uso de la información de entrada del error (E) y la derivada del error (CE). Para cada entrada se establece funciones de pertenencia triangulares que como se ha dicho son las más simples y fáciles de implementar computacionalmente. Además, se establece la función de pertenencia para la única salida, a la que se denominará como O. Se establecen que los conjuntos de entrada y de salida son representados por funciones de pertenencia de forma triangular ya que al trabajar con ella resulta más sencillo, así también el costo computacional al implementarlas es aceptable. Las variables de entrada E y CE, y la variable de salida O se conformarán cada una por tres conjuntos: negativo (N), cero (Z) y positivo (P). Inicialmente se establecen los mismo 64 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO valores en sus funciones de pertenencia. En la Figura 4.8 se muestran las funciones de pertenencia de las variables de entrada E y CE y de la variable de salida O. Los valores de las funciones depertenencia (triangulares) se ajustan en la sintonización del sistema. Figura 4.8: Funciones de pertenencia de la variable E Cabe mencionar que los conjuntos de cada variable antes vistos se usan inicialmente y no son los finales, posteriormente se tienen que ajustar en el rango de operación para obtener una respuesta satisfactoria. Fuzzificación Como se ha descrito anteriormente en este paso se transforma un valor numérico a un valor difuso, como se ha definido anteriormente. Se utilizaron funciones de pertenencia triangulares descritas por la ecuación 4.3 y se puede observar que las dos entradas cuentan con tres conjuntos difusos de la misma forma y rango, ver Figura 4.9. 4.2. CONTROLADOR PID DIFUSO 65 Figura 4.9: Conjuntos difusos de la variable E y CE Por tal motivo, las siguientes fórmulas servirán para las dos entradas. Para el conjunto difuso que representa N se utiliza la ecuación 4.4; para el conjunto difuso que representa Z se utiliza la ecuación 4.5 y 4.6, por último para el conjunto P se utiliza la ecuación 4.7. N= bN − x bN − mN (4.4) Z1 = x − aZ mZ − aZ (4.5) Z2 = bZ − x bZ − mZ (4.6) P= x − aP mP − aP (4.7) 66 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Para diferenciar las variables de entrada y de salida, ya que usan los mismos conjuntos de salida se usa la siguiente nomenclatura expuesta en la cuadro 4.1. Entrada E Entrada CE Salida O Conjunto N NentradaE NentradaCE Nsalida Conjunto Z ZentradaE ZentradaCE Zsalida Conjunto P PentradaE PentradaCE Psalida Cuadro 4.1: Nomenclatura usada en los conjuntos de entrada y de salida Base de reglas e Inferencia El número de reglas depende de la cantidad de conjuntos en las entradas, un mayor número de conjuntos en las entradas hacen más reglas y brindan mayor precisión sin embargo hacen el proceso de inferencia más complejo ya que se implementan más reglas. Por tal motivo se busca obtener un equilibrio entre la cantidad de reglas que determinan la precisión del sistema y la complejidad para realizar la inferencia. En este trabajo de tesis, se propone usar tres conjuntos en cada variable de entrada de manera que se obtienen nueve reglas, con nueve reglas se realiza un buen control, además de que es su factibilidad implementarlas en hardware es factible (un trabajo futuro es explorar el uso de mayor cantidad de reglas). Por lo tanto la representación de las reglas en esta tesis es la que se muestra en el Cuadro 4.2. E/CE NentradaE ZentradaE PentradaE NentradaCE Nsalida Nsalida Zsalida ZentradaCE Nsalida Zsalida Psalida PentradaCE Zsalida Psalida Psalida Cuadro 4.2: Reglas difusas La inferencia de las reglas antes representadas consiste en el cruce de un conjunto de entrada E con otro conjunto de entrada CE, de este cruce se toma el valor menor de los conjuntos E o CE, ver el cuadro 4.3. 4.2. CONTROLADOR PID DIFUSO No. 1 2 3 4 5 6 7 8 9 E Si Si Si Si Si Si Si Si Si NentradaE NentradaE NentradaE ZentradaE ZentradaE ZentradaE PentradaE PentradaE PentradaE op. < < < < < < < < < 67 CE NentradaCE ZentradaCE PentradaCE NentradaCE ZentradaCE PentradaCE NentradaCE ZentradaCE PentradaCE entonces entonces entonces entonces entonces entonces entonces entonces entonces O Nsalida = NentradaE Nsalida = NentradaE Zsalida = NentradaE Nsalida = ZentradaE Zsalida = ZentradaE Psalida = ZentradaE Zsalida = PentradaE Psalida = PentradaE Psalida = PentradaE sino sino sino sino sino sino sino sino sino O Nsalida = NentradaCE Nsalida = ZentradaCE Zsalida = PentradaCE Nsalida = NentradaCE Zsalida = ZentradaCE Psalida = PentradaCE Zsalida = NentradaCE Psalida = ZentradaCE Psalida = PentradaCE Cuadro 4.3: Inferencia de las Reglas del controlador PID difuso Una vez definidas las reglas y de saber cómo se van a inferir para obtener una salida cada una, el paso siguiente es calcular la fuerza de disparo de cada conjunto de salida usando la RSS (Root Sum Square), ver ecuación 4.8. q RSS = k12 + k22 + k32 + k42 + · · · + kn2 (4.8) Donde RSS es la suma de los cuadrados de ki para posteriormente obtener la raíz cuadrada; ki representa el valor de salida de cada regla una variable cualquiera. Con el uso de la RSS se le da a cada conjunto de salida su respectiva fuerza ponderada aunque en ocasiones no es necesaria, en este trabajo de tesis se analizará el uso de la RSS aplicada a un conjunto de reglas y posteriormente también se analizará la no utilización de ésta. En este trabajo de tesis se clasifican las reglas según el conjunto de salida determinado por su consecuente, ver Cuadro 4.4. Conjunto de salida Nsalida Zsalida Psalida Reglas pertenecientes 1, 2 y 4 3, 5 y 7 6, 8 y 9 Cuadro 4.4: Reglas difusas En forma directa y en base a la Cuadro 4.4 se establecieron las siguientes ecuaciones 4.9, 4.10 y 4.11. Donde Ri representa la salida de cada regla. 68 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO q R21 + R22 + R24 (4.9) R23 + R25 + R27 (4.10) q Psalida = R26 + R28 + R29 (4.11) Nsalida = Zsalida = q Con cada operación se obtiene un valor para cada conjunto de salida, sin embargo sigue siendo un valor difuso, de manera que la defuzzificación se hace necesaria para convertir este valor difuso a un valor numérico. En control, el método de defuzzificación más usado es el centroide o centro de área, COA, (Sanchez, 2009), este método consiste en multiplicar la fuerza ponderada de cada función miembro de salida (F pi ) por los puntos centrales de su respectiva función (Ci ). El resultado se divide por la suma de las fuerzas ponderadas de cada función miembro de salida, ver ecuación 4.12. Finalmente, se obtiene un número el cual representa el valor ponderado en la función de pertenencia de salida. N ∑ F pi Ci Centroide = i=1 ∑N i=1 F pi (4.12) Una vez obtenido el valor numérico de la defuzzificación, se procede a sumar este valor con la acción integral como es mostrado en la Figura 4.6. Por último se debe calibrar las ganancias y el rango de las funciones de pertenencia del sistema. Una opción es realizar el método basado en la transferencia de ganancias descrito en la Sección 2.4.2 y posteriormente, un reajuste usando el método prueba y error de los rangos de las funciones de pertenencia de los conjuntos de salida. Otra opción es utilizar solamente el método prueba y error para calibrar todas las ganancias y las funciones de pertenencia, con este método se ahorra análisis matemático y es más rápido de implementar, por lo que en los controladores desarrollados en esta tesis se utilizó este método prueba y error en los PID y prueba y error más transferencia de ganancias en los PID difusos. 4.2. CONTROLADOR PID DIFUSO 4.2.1. 69 Desarrollo en software del controlador PID difuso Debido a que el controlador PID difuso es la combinación de los controladores PID y Difuso. Se debe también revisar el controlador difuso ya que el controlador PID ya se ha revisado, para fines demostrativos la implementación será en SW. Se definen las funciones de pertenencia de entrada y de salida, ver figura 4.10. Figura 4.10: Funciones de pertenencia de entradas (E y CE) y salida (O) Una vez establecidos se establece la arquitectura del controlador difuso, ver Figura 4.11. 70 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Proporcional 4.58e-2 Step 18.67e-9s2 +17.68e-6s+2.10e-3 Derivativo 1-z-1 Fuzzy Logic voltajeController1 Transfer Fcn1 1 Discrete Filter Figura 4.11: Diagrama del controlador Difuso Cabe mencionar que el controlador difuso solo usa dos acciones: proporcional y derivativo debido a que el uso de tres acciones genera una inferencia compleja y poco práctica. Además de todo lo anterior, el diagrama del controlador difuso no cuenta con ganancias en las acciones proporcional y derivativo. El resultado de la simulación del controlador difuso es visto en la Figura 4.12. En donde el valor de referencia es la funcion escalon establecido en 24. Scope2 4.2. CONTROLADOR PID DIFUSO 71 Figura 4.12: Respuesta del controlador difuso En este controlador los conjuntos se ajustaron lo mejor posible sin embargo se tiene un amplio offset, en estos casos es preferible que se realice un control PID difuso ya que con el la modificacion de ganancias de este controlador se puede eliminar este offset. Conocidos los fundamentos para realizar un controlador PID difuso, se procede a realizar su desarrollo en software. Actualmente, existe una herramienta software especializada que realiza cálculos de la fuzzificación, inferencia y defuzzificación. Esta herramienta permite el ingreso de las variables de entrada (en forma de funciones de pertenencia) y la especificación de las reglas. La herramienta software que realiza todo esto es el tool box fuzzy de MatLab, ver Figura 4.13. 72 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Figura 4.13: Pantalla del toolbox fuzzy de MatLab En este proyecto de MatLab se necesitan las dos variables de entrada, el error y la derivada del error, por lo que se definen sus funciones de pertenencia las cuales son mostrados en la Figura 4.14 para el error y en la Figura 4.15 para la derivada del error. 4.2. CONTROLADOR PID DIFUSO Figura 4.14: Variable de entrada error Figura 4.15: Variable de entrada derivada del error 73 74 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Una vez definidas las dos variables de entrada, se procedió a definir la variable de salida, cabe aclarar que esta variable fue ajustada en varias ocasiones, por lo que se calibró hasta que se obtuvieran resultados satisfactorios en el controlador. Las funciones de pertenencia de la variable de salida final se muestran en la Figura 4.16. Figura 4.16: Función de salida ajustada Posteriormente, se ingresaron las nueve reglas del Cuadro 4.3 como se muestra en la Figura 4.17. 4.2. CONTROLADOR PID DIFUSO 75 Figura 4.17: Interfaz de ingreso de las reglas Si-entonces Una vez definidas las reglas, el proyecto se exporta al workspace de MatLab para su posterior utilización en Simulink. Se le asigna un nombre como una variable y en este caso se le nombró PIDfuzzy2, El proceso anterior es mostrado en la Figura 4.18. Figura 4.18: Exportación del sistema difuso al workspace de MatLab Se procede a implementar el controlador en Simulink, por lo que se introduce el bloque Fuzzy Logic Controller de un controlador PID conectado a una planta anteriormente descrito, como muestra la Figura 4.19. 76 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO 0.0645 1 Step2 Gain1 du/dt Derivative 1 s Integrator 0.0078 Fuzzy Logic Controller 4.58e-2 18.67e-9s2 +17.68e-6s+2.10e-3 Scope2 Gain Transfer Fcn1 Gain2 2 Gain3 Figura 4.19: PID difuso implementado en Simulink de MatLab Igualmente, como en el desarrollo del PID en software, se hace uso de los bloques Derivative e Integrator, cuya función es realizar la derivada y la integral del error. Una vez conectado el bloque Fuzzy Logic Controller se importa la variable PIDfuzzy2 desde el workspace de MatLab como se muestra en la Figura 4.20. Figura 4.20: Importación de la variable PIDfuzzy2 La sintonización que se realizó en este controlador fue inicialmente el método de la subsección 2.4.2 y fue finalizado con el método de prueba y error, teniendo en cuenta las ganancias del controladores PID y las funciones de pertenencias de la parte difusa. 4.2. CONTROLADOR PID DIFUSO 77 Los valores de las ganancias aparecen en los bloques Gain1 = k p , Gain2 = kd , Gain3 = ki y Gain4 = ku , mostrados en la Figura 4.19. 4.2.2. Desarrollo en hardware del controlador PID difuso Una vez conocidos los pasos para realizar un controlador PID difuso, se procede a realizar, primeramente, el módulo difuso cubriendo cada una de las etapas mostradas en la Figura 4.21, para posteriormente introducirlo a un controlador PID desarrollado anteriormente en hardware en la subsección 4.1.2. Figura 4.21: Etapas del módulo difuso a desarrollar en hardware La Figura anterior también representa los módulos a desarrollar utilizando la herramienta Simulink de MatLab 2012a junto con la herramienta denominada System Generator 14.2. En este proyecto se han desarrollado tres arquitecturas: Arquitectura 1: PID difuso con paso de parámetros y con RSS. Arquitectura 2: PID difuso sin paso de parámetros y con RSS. Arquitectura3: PID difuso sin paso de parámetros y sin RSS. Cada arquitectura contiene los módulos difusos fuzzificación, defuzzificación y base de reglas e inferencia, en la fuzzificación se establecerá como se tratara el valor de entrada, en el modulo base de reglas e inferencia se mostraran cómo se combinan los valores de entradas tomando en cuenta los conjuntos difusos y por ultimo, en la Defuzzificación se describirá como obtener un valor numérico a partir de la inferencia realizada. 78 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO A continuación se describe cada arquitectura y el desarrollo de cada etapa del controlador PID difuso en hardware. Arquitectura 1 Es conveniente tener flexibilidad en el sistema ya que en un futuro se pretende generalizar el uso de la arquitectura del controlador. Si se tiene flexibilidad se facilita el proceso de calibración ya que resulta complicado estar modificando la arquitectura con cada combinación de los conjuntos de entrada y de salida, lo cual tomaría gran cantidad de tiempo y esfuerzo. Se toma la decisión de realizar una arquitectura que lleve a cabo un paso de parámetros desde el editor de MatLab, es decir introducir lineas de código ver Figura 4.22 para después ejecutarlas, esto con el fin de guardar su valor en el workspace de MatLab como se muestra en la Figura 4.23. Figura 4.22: Paso de parámetros desde el editor de MatLab 4.2. CONTROLADOR PID DIFUSO 79 Figura 4.23: Variables en workspace de MatLab En las lineas de código se especifican los rangos de los conjuntos de las variables de entrada y los de salida, en total se guardan el workspace 17 variables, de las cuales 14 son asignadas para las variables de entrada E y CE utilizadas en la etapa de fuzzificación, y otras 3 para la variables de la salida O utilizada en la etapa de defuzzificación, ver Figura 4.24. 80 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Figura 4.24: Representación gráfica de las variables en workspace Establecidos los rangos y las variables que los representan, se procede a describir los submódulos difusos antes mencionados: fuzzificación, base de reglas e inferencia y defuzzificación. Fuzzificación En el desarrollo de la parte difusa se deben diseñar dos módulos de fuzzificación, una para la variable error y otra para la derivada del error. Debido a que las dos variables tienen los mismos conjuntos y las mismas funciones de pertenencia, esto permite replicar el módulo de fuzzificación para las dos variables. Se propone una arquitectura fuzzificación basada en el diagrama de la Figura 4.25. 4.2. CONTROLADOR PID DIFUSO 81 Figura 4.25: Fuzzificación con paso de parámetros La etapa de la fuzzificación tiene una entrada denominada x, la cual es el valor que se va a convertir de un valor numérico a un valor difuso, también consta de cuatro operaciones importantes, los cuales se basan en las ecuaciones 4.4, 4.5, 4.6 y 4.7. Además de las cuatro operaciones que se realizan en esta arquitectura, se cuentan con selectores de operaciones válidas, los cuales estarán encargados de que en la salida del módulo de fuzzificación haya valores válidos según el rango de la variable x, por otra parte, las demás variables representadas son los rangos de la entrada. Teniendo el diagrama anterior como modelo, se desarrolla el primer módulo asociado a la variable error, ver Figura 4.26. 82 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO [NEG] Out1 Out2 Goto [SEL2] Out5 Goto1 [ZERO] Out4 Goto3 [POS] In1 [SEL2] Goto2 Selector de activación From5 c1 c1 1 In1 In a1 a -b b c1 cast Gateway In2 From Workspace NEGATIVO z -28 y/x div AddSub4 cast Convert2 a In b1 x y a -b b [NEG] CORDIC DIVIDER AddSub b1 a-b In b From Gateway In8 AddSub1 Workspace6 0 d0 Constant ZERO1 y 1 Out1 4 Convert6 z -29 y/x div AddSub2 a Register cast Convert9 In d z-1 q en sel x cast a-b b From Gateway In7 Workspace8 Convert1 In From Gateway In1 Workspace2 a From Gateway In6 Workspace7 a From Gateway In Workspace1 In cast cast d1 Convert4 CORDIC DIVIDER2 Out4 From6 d z-1 q en Convert10 3 Out3 Register2 ZERO2 cast d2 Convert5 e1 In a a-b From Gateway In3 b Workspace4 c1 In x Convert7 z -29 y/x div cast Convert3 a d z-1 q en y a-b In POSITIVO AddSub5 From Gateway In4 Workspace5 c1 d1 a In cast x a-b From Gateway In9 b Workspace10 Convert11 AddSub7 c1 In cast b cast Register1 [POS] Out2 CORDIC DIVIDER1 From7 From Gateway In10 Workspace11 d1 5 Out5 Convert8 From Gateway In5 AddSub3 Workspace3 2 In 0 d3 Constant1 z -29y/x div Mux y a cast From Gateway In11 b a - b CORDIC DIVIDER3 Workspace9 Convert12 AddSub6 [ZERO] From1 6 Out6 Figura 4.26: Módulo fuzzificación1 de la entrada determinada por el error Se destaca el uso de un bloque de SysGen llamado FromWorkspace, este bloque obtiene un valor guardado en el workspace de MatLab y lo importa a Simulink para que se use junto con los bloques de éste. Además, en la arquitectura propuesta se muestran cuatro divisores que utilizan el algoritmo CORDIC, además de la división, este algoritmo se usa para el cálculo de raíces cuadradas, senos, cosenos y otras funciones. El algoritmo de CORDIC se basa principalmente en sumas y desplazamientos de bits. Otro elemento importante es el multiplexor del conjunto de salida Zsalida , cuya función es elegir solamente una salida válida de las operaciones Z1 y Z2 , de las ecuaciones 4.5 y 4.6 respectivamente. Su funcionamiento consta de 4 casos: Caso 1: El valor de x no está dentro del conjunto Zsalida , en la salida pone 0. Caso 2: El valor de x está dentro del conjunto Zsalida , se activa la operación Z1 y pone en la salida el valor de Z1 . 4.2. CONTROLADOR PID DIFUSO 83 Caso 3: El valor de x está dentro del conjunto Zsalida , se activa la operación Z2 y pone en la salida el valor de Z2 . Caso 4: Este caso es inválido, en la arquitectura nunca se da este caso, por defecto su salida es 0. En la Figura 4.26 también se muestra un módulo llamado selector de activación, este módulo establece qué conjuntos de entrada se activan en un momento determinado. Esto es importante ya que se obtiene un código de activación útil en la inferencia de reglas, más adelante se explica detalladamente. El desarrollo en SysGen se muestra en la Figura 4.27 para el primer módulo de fuzzificación. 1 In1 b1 In From Gateway In1 Workspace2 za ≤ b Z1 Relational2 a -1 z b c1 a1 a In z-1 a≤b Gateway In b From Workspace1 Relational -1 a b a<b and Logical1 From Gateway In6 Workspace7 or Logical4 z b -1 e11 In From Gateway In7 Workspace8 Z2 a≤b hi d1 In b a z-1 a<b From Gateway In2 Relational7 Workspace3 Logical3 lo } Concat1 2 Out2 e1 In Gateway In3 From Workspace4 P b a and z-1 a≤b Logical Relational1 Relational4 Relational6 a b 1 Out1 3 Out5 a In From Gateway In4 Workspace5 Relational3 In Gateway In5 From Workspace6 c1 In z-1 a<b a a11 N and and 4 Out4 z-1 a≤b Logical2 b Relational5 Figura 4.27: Selector de activación del módulo fuzzificación1 Este módulo consta de bloques relacionales, los cuales sirven para saber si el conjunto de entrada (Nentrada , Zentrada y Pentrada ) del cual pertenece la variable error o derivada del error se ha activado. El conjunto Zentrada se analiza en dos partes expresadas por las operaciones Z1 y Z2 . Para el conjunto Zentrada se debe conocer si el conjunto se ha activado y conocer que parte se ha activado Z1 o Z2 . Para responder al primer cuestionamiento basta emplear una compuerta OR y para responder el segundo cuestionamiento se emplea el código 01 para 84 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO la parte Z1 , por otro lado se usa el código 10 para la parte de Z2 . El código se crea con la concatenación de la salida individual de los bloques relacionales que asignan a cada parte del conjunto Zentrada . Una vez explicado el funcionamiento de módulo fuzzificación1, éste se replica con el nombre de módulo fuzzificación2, para la variable de entrada determinada por la derivada del error, ver Figura 4.28. [NEG] Out1 Out2 Goto [SEL2] Out5 Goto1 [ZERO] Out4 Goto3 [POS] In1 [SEL2] Goto2 Selector de activación From5 c2 c2 1 In1 In a2 a -b b c2 cast Gateway In2 From Workspace NEGATIVO z -28 y/x div AddSub4 cast Convert2 a In b2 x y a -b b [NEG] CORDIC DIVIDER AddSub b2 b From Gateway In8 AddSub1 Workspace6 d0 cast a-b In 0 Constant ZERO1 y 1 Out1 4 Convert6 z -29 y/x div AddSub2 a Register cast Convert9 In d z-1 q en sel x cast a-b b From Gateway In7 Workspace8 Convert1 In From Gateway In1 Workspace2 a From Gateway In6 Workspace7 a From Gateway In Workspace1 In cast d1 Convert4 CORDIC DIVIDER2 Out4 From6 d z-1 q en Convert10 3 Out3 Register2 ZERO2 cast d2 Convert5 e2 In a From Gateway In3 b Workspace4 c2 In a-b d2 cast x AddSub5 z -29 y/x div From Gateway In4 Workspace5 d z-1 q en y a-b In c2 cast Convert3 a c2 From Gateway In9 Workspace10 POSITIVO Convert7 b From Gateway In5 AddSub3 Workspace3 cast Register1 [POS] 2 Out2 5 Out5 Convert8 CORDIC DIVIDER1 From7 In In a b a-b cast x 0 AddSub7 d3 Constant1 Convert11 z -29y/x div Mux From Gateway In10 Workspace11 y [ZERO] d2 a In cast From Gateway In11 b a - b From1 CORDIC DIVIDER3 Workspace9 Convert12 AddSub6 6 Out6 Figura 4.28: Módulo de fuzzificación2 de la entrada determinada por la derivada del error Cabe destacar que los parámetros de entrada son los correspondientes a los rangos de la variable de entrada CE que están en el workspace. También, como en el módulo anterior de fuzzificación1, se cuenta con el bloque Selector_de_activación en la Figura 4.29 se muestra su diseño. 4.2. CONTROLADOR PID DIFUSO 1 85 In1 b2 a b In From Gateway In1 Workspace2 za z-1 a<b and Logical1 or b z e22 In From Gateway In7 Workspace8 Z2 a≤b hi d2 In b a Logical3 From Gateway In2 Relational7 Workspace3 lo } Concat1 Logical z-1 a<b 2 Out2 e2 In Gateway In3 From Workspace4 P b a and z-1 a≤b 1 Out1 Relational1 Relational4 Relational6 a b N and 3 Logical4 -1 In From Gateway In4 Workspace5 Out5 a z-1 a<b a a22 Relational3 In From Gateway In6 Workspace7 b Relational2 b c2 ≤ Z1 a Gateway In5 From Workspace6 c2 In a2 a In z-1 a≤b Gateway In b From Workspace1 Relational -1 and 4 Out4 z-1 a≤b Logical2 b Relational5 Figura 4.29: Selector_de_activación de la etapa 2 de fuzzificación Se nota que los parámetros de entrada son iguales que los valores de los rangos de la variable de entrada CE. Base de reglas e Inferencia Las entradas de esta etapa son las salidas de los módulos fuzzificación1 y fuzzificación2 (error y derivada del error), estas entradas son señales activación de conjuntos de entrada y otras son los resultados de los cálculos para cada función de pertenencia. Para esta etapa se propone la arquitectura mostrada en el diagrama de la Figura 4.30. Figura 4.30: Arquitectura propuesta para la base de reglas e inferencia 86 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Los bloques principales de esta arquitectura se describen puntualmente a continuación, y posteriormente se detallarán sus características y funcionamiento: Selector de reglas de salida (Nsalida, Zsalida y Psalida). Estos submódulos activan las reglas válidas para un valor valor determinado y están clasificados para cada conjunto de salida de la variable de salida O. Reglas de Nsalida, Zsalida y Psalida. Éstas representan un juego de tres reglas para cada conjunto de salida Nsalida, Zsalida y Psalida. RSS. Representa el método Root Sum Square, útil para obtener la ponderación de cada conjunto de salida. El desarrollo en SysGen de esta etapa se muestra en la Figura 4.31, esta arquitectura cuenta con módulos que realizan una determinada tarea, las cuales se describirán a continuación. 4.2. CONTROLADOR PID DIFUSO 87 [S1] VALORES DE ACTIVACIÓN DE LOS CONJUNTOS DE ENTRADA 1 In1 [ACTNEG1] Goto6 2 In2 [ACTZERO1] 3 In3 [ACTPOS1] 4 In4 [ACTNEG2] Goto7 Goto8 Goto9 5 In5 [ACTZERO2] Goto10 6 In6 [ACTPOS2] Goto11 From36 [ENEG] [ACTNEG1] In1 From18 [ACTNEG2] In2 From19 [ACTNEG1] In3 Out1 Out2 From20 [ACTZERO2] In4 From21 [ACTZERO1] In5 From34 [ACTNEG2] [S1] Goto12 [S2] Goto1 Out3 [S3] In6 Goto2 From35 Subsystem In1 In2 From [CENEG] In3 From1 [S2] In4 From37 [ENEG] In5 Out1 In1 From2 [CEZERO] From3 In6 [S3] In7 Out3 In2 Out1 In3 1 Out1 ROOT SUM SQUARE From38 [EZERO] In8 From4 [CENEG] In9 Out4 From5 VALORES NUMERICOS DE LA FUZZIFICACIÓN 7 In7 8 In8 9 In9 10 In10 REGLAS CONJUNTO DE SALIDA N SELECTOR DE REGLAS ACTIVAS CONJUNTO DE SALIDA N [S4] From39 [ENEG] [ENEG] Goto [EPOS] Goto13 [EZERO] Goto14 [CENEG] Goto3 [CEPOS] 11 In11 Goto4 12 In12 [CEZERO] Goto5 [ACTNEG1] In1 From22 [ACTPOS2] In2 From23 [ACTZERO1] In3 From24 [ACTZERO2] In4 From25 [ACTPOS1] In5 From26 [ACTNEG2] In6 [S4] Out1 Goto15 [S5] Goto16 In2 From6 [CEPOS] From7 In3 [S5] In4 From40 [EZERO] Out2 In1 From8 [CEZERO] Out1 In1 In5 Out3 In3 [S6] Out3 From27 Goto17 Subsystem1 2 Out2 ROOT SUM SQUARE1 From9 [S6] In2 Out1 In6 In7 From41 [EPOS] In8 From10 [CENEG] In9 Out4 From11 REGLAS DE CONJUNTO DE SALIDA Z SELECTOR DE REGLAS ACTIVAS CONJUNTO DE SALIDA Z [S7] [ACTZERO1] In1 From28 [ACTPOS2] In2 From29 [ACTPOS1] In3 Out1 In4 From31 [ACTPOS1] In5 From32 [ACTPOS2] Goto18 Out2 From30 [ACTZERO2] [S7] In1 From42 [EZERO] In2 From14 [CEPOS] In3 Out1 From15 [S8] In4 In1 [S8] From43 [EPOS] In5 Goto19 From16 [CEZERO] In6 Out3 In3 Out3 [S9] In6 Goto20 From33 Subsystem2 SELECTOR DE REGLAS ACTIVAS CONJUNTO DE SALIDA P 3 Out3 ROOT SUM SQUARE2 From17 [S9] In2 Out1 In7 From44 [EPOS] In8 From12 [CEPOS] In9 Out4 From13 REGLAS DE CONJUNTO DE SALIDA P Figura 4.31: Etapa de base de reglas e inferencia Los submódulos llamados selector de reglas de salida (Nsalida, Zsalida y Psalida), tienen como tarea determinar qué regla se ha activado en base al cruce de las señales de activación de los conjuntos de entrada E y CE. De manera que una regla estará activada si la señal de activación del conjunto E y CE son verdaderos, dada esta característica se desarrolla haciendo uso de compuertas lógicas AND, ver Figura 4.32. 88 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO [ACTNEG1] From18 [ACTNEG2] From19 [ACTNEG1] [S1] and From22 [ACTPOS2] Goto12 Logical [ACTNEG1] From20 [ACTZERO2] From21 From35 [S4] Goto15 Logical2 [ACTZERO1] [S2] and From24 [ACTZERO2] Goto1 and [S5] Goto16 From25 Logical1 [ACTZERO1] From34 [ACTNEG2] and From23 Logical3 [ACTPOS1] [S3] and From26 [ACTNEG2] Goto2 and From27 Logical8 [S6] Goto17 Logical4 SELECTOR DE REGLAS ACTIVAS CONJUNTO DE SALIDA Z SELECTOR DE REGLAS ACTIVAS CONJUNTO DE SALIDA N [ACTZERO1] From28 [ACTPOS2] From29 [S7] and Goto18 Logical5 [ACTPOS1] From30 [ACTZERO2] From31 [S8] and Goto19 Logical6 [ACTPOS1] From32 [ACTPOS2] From33 [S9] and Goto20 Logical7 SELECTOR DE REGLAS ACTIVAS CONJUNTO DE SALIDA P Figura 4.32: Submódulos llamados selector de reglas de salida 4.2. CONTROLADOR PID DIFUSO 89 Cada bloque del bloque selector de reglas de salida cuenta con tres pares de entradas, si el par es verdadero entonces se activa la regla correspondiente a éste. El desarrollo individual de cada regla es mostrado en la Figura 4.33, y como se vio anteriormente en el Cuadro 4.3, se toma el menor valor de los dos valores de salida de los conjuntos de entrada E y CE. Dada esta descripción se hace uso de un bloque relacional, el cual activa el canal d1 del multiplexor si la entrada de la regla In2 es menor que In1, por el contrario activa el canal d0 si In1 es menor que In2. a a ≤ b sel b Relational 1 In1 d0 2 In2 d1 1 Out1 Mux Figura 4.33: Implementación individual de una regla El número total de reglas en este proyecto será de nueve, divididos en tres conjuntos de salida por lo que cada conjunto tendrá tres reglas, estas reglas estarán agrupadas en un submódulo que se replica para cada conjunto de salida, ver Figura 4.34. 90 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO 1 In1 sel 0 2 In2 In1 3 In3 In2 d0 Constant2 Out1 1 Out1 d1 Mux REGLA 1 4 In4 sel 0 5 In5 In1 6 In6 In2 d0 Constant3 Out1 d1 Mux1 REGLA 2 7 In7 0 8 In8 In1 9 In9 In2 2 Out3 sel d0 Constant4 Out1 3 Out4 d1 Mux2 REGLA 3 Figura 4.34: Bloque de reglas para cada conjunto de salida En la Figura anterior se muestran tres reglas y su respectiva activación, de manera que si está activada se obtiene el valor de la regla y si no está activada se obtiene un valor por defecto de 0. Por otra parte, para obtener la ponderación de las reglas del conjunto de salida se realiza la RSS (Root Sum Square) para cada función miembro. En este cálculo se introducen los valores de salida de un conjunto de 3 reglas, las cuales se elevan al cuadrado y suman para que posteriormente se realice una raíz cuadrada. En SysGen se diseñó como muestra la Figura 4.35. Los bloques que se resaltan son los multiplicadores cuyas entradas son el mismo valor, ya que el valor se eleva al cuadrado, posteriormente se suman los tres valores elevados al cuadrado para que al final se le quite la raíz cuadrada a la suma. 4.2. CONTROLADOR PID DIFUSO a 1 In1 z-3 a × b cast b Convert4 Mult a a+b a b 2 91 In2 a z-3 a a+b cast × b b AddSub Convert5 x z -31 sqrt x b cast Convert1 1 Out1 AddSub1 Mult1 CORDIC SQRT1 a 3 In3 z-3 a × b cast b Convert6 Mult2 Figura 4.35: Método Root Sum Square Este método es realizado para cada conjunto de salida Nsalida, Zsalida y Psalida, por lo que se tienen tres submódulos de RSS. Defuzzificación El último paso es realizar la defuzzificación, se escogió el método del COA para obtener un valor en la salida, ya que en una gran cantidad de trabajos revisados hacen uso de él y se obtienen buenos resultados. Las entradas son las tres raíces cuadradas de cada conjunto difuso de la salida. El diseño en hardware se muestra en la Figura 4.36. 92 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO 1 a In1 a+b b a 2 AddSub In2 b a+b AddSub1 3 a In3 a3 z-3 a b In b cast Convert1 Gateway In1 From Workspace × x a z -28 div y/x Mult a+b y b a c3 b In From Workspace2 b cast Mult1 AddSub2 a b a e3 In Gateway In3 b z-3 a × b 1 Out1 CORDIC DIVIDER × Convert2 Gateway In2 From Workspace1 z-3 a cast Convert4 cast a+b AddSub3 Convert3 Mult2 Figura 4.36: Método del centroide o centro de área El método COA realiza suma de multiplicaciones con valores de conjuntos de salida con el centro de éste, dividiendo entre la suma de los valores de conjuntos de salida. Una vez finalizado el módulo de defuzzificación se conecta con los demás módulos fuzzificación, base de reglas e inferencia, como se ve en la Figura 4.37 para las arquitecturas 1 y 2. 4.2. CONTROLADOR PID DIFUSO 93 fuzzificación1 Out1 ERROR 1 [ACT NEG1] Out2 Goto [EPOS] [ACT ZERO1] Out3 Goto1 [EZERO] Out4 Goto2 [ACT NEG1] [ACT POS1] In1 In1 base de reglas e inferencia Goto6 [ACT ZERO1] Out6 Goto7 [ACT POS1] [CENEG] [EZERO] [CEPOS] [EPOS] [CEZERO] [CENEG] [ACT NEG2] In8 In9 In10 From4 Goto9 [CEZERO] [ACT ZERO2] Out3 In11 In3 From5 Goto10 [CEPOS] [ACT POS2] Out6 Out1 From3 Goto5 Out5 1 Out1 In7 From2 Goto4 Out4 In6 From1 Goto3 In1 In2 In5 From60 [ENEG] In2 Out2 In4 From59 [ACT POS2] Out3 In1 From58 [ACT ZERO2] fuzzificación2 2 Out1 In3 From57 [ACT NEG2] Goto8 Out2 In2 From56 Out5 Out1 In1 From55 FUZZIFICACION1 DERIVADA DEL ERROR defuzzificación [ENEG] In12 From6 Goto11 FUZZIFICACION2 BASE DE REGLAS E INFERENCIA COA Figura 4.37: Etapas del módulo PD difuso para arquitectura 1 y 2 En la Figura 4.38 se muestra el diagrama final incluyendo la parte difusa y el controlador PID para formar el PID difuso. PROPORCIONAL Step1 x 0.02 BLOQUE DIFUSO DE LA ARQ. 1 cast Convert DERIVATIVO In Out1 In2 Gateway In2 a Subsystem2 a-b a In Gateway In3 z-1 q x 0.007004 b a-b d Sy stem Generator In1 CMult d z-1 AddSub5 q b cast CMult1 [aux2] INTEGRAL AddSub Out a+b 18.67e-9s2 +17.68e-6s+2.10e-3 b Transfer Fcn2 AddSub1 Scope3 From1 Register1 Register3 4.58e-2 Gateway Out a Convert3 a x 0.0003052 a+b cast b [aux1] Convert1 AddSub2 CMult2 Register2 Convert4 cast [aux1] In1 Out1 From [aux2] Goto Subsystem Goto1 q z-1 d Figura 4.38: Diagrama final de la arquitectura 1 Se cuenta también con un modulo de validación la señal de salida, esto para que no se generen datos basura que afecten al controlador. Los datos basura se generan en el tiempo que le tarda la arquitectura en realizar los cálculos y en la salida existen datos cuyo valor se desconoce. 94 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Arquitectura 2 Se desarrolla una segunda arquitectura, el propósito de esta arquitectura es mejorar el tiempo de respuesta y el uso de recursos hardware de la arquitectura 1. La segunda arquitectura ya no cuenta con la flexibilidad de la primera en donde se usaba el bloque de Sysgen FromWorkspace. En este diseño se introducen los valores resultantes de la calibración realizada, para esto se sustituye cada bloque de FromWorkspace por un bloque Constant, en la Figura 4.39 se muestra un ejemplo de esta sustitución. 2 Con paso de parámetros In2 b2 a b In From Gateway In1 Workspace2 z-1 a≤b z-1 a<b b c2 In Gateway In5 From Workspace6 c2 In Gateway In6 From Workspace7 Z1 and Relational10 a a2 a In z-1 a≤b Gateway In b From Workspace1 Relational8 a22 Logical6 From Gateway In4 Workspace5 Relational11 or Out7 z b -1 a ≤ e22 In Gateway In7 From Workspace8 Z2 b a Relational12 z-1 a b ≤ b lo Logical8 6 e2 From Workspace4 Gateway In3 and 8 z-1 a ≤ b Logical7 b In Out6 Concat2 Gateway In2 Relational15 From Workspace3 1 } P Out8 a hi In z-1 a<b b and d2 Logical5 Relational9 Relational14 a z-1 a<b a b 5 Out3 7 Logical9 a In N and Relational13 Sin paso de parámetros In1 -12.5 a b Constant z-1 a≤b Relational2 a z-1 a<b b Constant3 b z Logical a<b 3 0 a Constant7 z -1 a ≤ z-1 a<b Relational4 z-1 a ≤ b Relational7 Logical3 z } Concat1 2 25 and 4 Out4 a lo P b Z2 b hi 12.5 1 Out1 -1 Constant6 or and Constant1 N b Relational1 Relational6 a ≤ and a b 0 Logical1 Out5 b z-1 a Relational Logical4 a b Z1 Constant2 0 a and Relational3 0 -25 Constant4 -1 a ≤ b Logical2 b Out2 Constant5 Relational5 Figura 4.39: Bloques selector de activación con y sin paso de parámetros La Figura 4.39 muestra el módulo desarrollado anteriormente llamado selector de activación, primeramente se muestra con paso de parámetros usando el bloque FromWorkspace y después se muestra la sustitución de este bloque por el Constant. La sustitución se realiza en todos los módulos y submódulos de la arquitectura del controlador, por razones de repetitividad de todo lo descrito en cada modulo, se omite la 4.2. CONTROLADOR PID DIFUSO 95 explicación en cada módulo modificado por el bloque Constant. Una vez realizado estas modificaciones se procede a realizar el diagrama final de la arquitectura 2, ver Figura 4.40. PROPORCIONAL Step1 x 0.02 BLOQUE DIFUSO DE LA ARQ. 2 cast Convert DERIVATIVO In CMult Out1 In2 Gateway In2 a Subsystem2 a-b a In Gateway In3 z-1 q x 0.007004 b a-b d Sy stem Generator In1 d z-1 AddSub5 q b cast AddSub Out a+b 18.67e-9s2 +17.68e-6s+2.10e-3 b CMult1 [aux2] INTEGRAL Transfer Fcn2 AddSub1 Scope3 From1 Register1 Register3 4.58e-2 Gateway Out a Convert3 a x 0.0003052 a+b cast b [aux1] Convert1 AddSub2 CMult2 Register2 Convert4 cast [aux1] In1 Out1 From [aux2] Goto Subsystem Goto1 q z-1 d Figura 4.40: Diagrama final de la arquitectura 1 Arquitectura 3 La arquitectura 3 tiene como núcleo la segunda con algunas modificaciones, la modificación consta en eliminar el método RSS, ya que se prevé que la raíz cuadrada toma gran cantidad de tiempo para realizar el calculo, también se prevé que con la eliminación de la RSS la salida del controlador siga funcionando correctamente. La arquitectura 3 cambia en módulo de defuzzificación, pasa de ser un método COA con RSS a COA sin RSS, en la Figura 4.41 se muestra en forma de diagrama de bloques. Figura 4.41: Eliminación del método RSS 96 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Se nota en la Figura anterior que el bloque de defuzzificación cambia en el número de entradas se aumenta de tres a nueve, por tal motivo en el diseño hardware también cambia, en la Figura 4.42 se muestra el diseño hardware con tres entradas y en la Figura 4.43se muestra el diseño hardware con nueve entradas. 1 In4 a b a+b a 2 In5 b AddSub4 a+b AddSub5 3 a In6 -15 b b cast a x z × b cast AddSub6 Mult4 a b z-3 a y b -3 a z -28 div y/x a+b Convert6 Constant1 Constant2 b Mult3 a 15 × Convert5 Constant 0 z-3 a CORDIC DIVIDER1 a b a+b AddSub7 × b cast Convert7 Mult5 Figura 4.42: Defuzzificación con tres entradas cast Convert8 1 Out2 4.2. CONTROLADOR PID DIFUSO 97 a b a+b AddSub1 a b a+b AddSub2 a a+b b AddSub4 a a a+b b b AddSub5 a+b a b AddSub6 a a+b b AddSub7 a a+b b AddSub15 1 a In1 -15 -15 b -15 z-3 a×b a+b b cast AddSub3 z b a+b z -28 div y/x y cast a Convert3 Constant5 x AddSub8 -3 a×b a b Mult2 a In3 a Convert2 Constant4 3 cast Mult1 a In2 a×b Convert1 Constant3 2 z b Mult6 b 4 a In4 0 b 5 Mult7 a 0 b 0 b 7 b 8 b 15 Constant11 cast z-3 a×b cast a z-3 a×b a+b b cast AddSub11 Mult11 a In9 a×b a+b AddSub10 Convert13 Constant10 9 z a b -3 Mult10 a 15 AddSub9 Convert12 Constant9 In8 b cast Mult9 a 15 a+b AddSub14 Convert11 Constant8 In7 z-3 a×b Mult8 a In6 b a+b Convert10 Constant7 6 a cast a 1 Out1 a+b AddSub13 z-3 a×b cast Convert4 CORDIC DIVIDER2 Convert9 Constant6 In5 a+b AddSub16 -3 b z-3 a×b a b a+b AddSub12 cast Convert14 Mult12 Figura 4.43: Defuzzificación con nueve entradas Se prevé que con esta modificación se disminuya el tiempo de respuesta (tiempo de asentamiento), así como también los recursos hardware utilizados en para el controlador PID difuso pero con la meta de tener una señal controlada con características similares a la arquitectura que cuenta con RSS. Para la arquitectura 3 el diagrama quedaría como se muestra en la Figura 4.44. 98 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO fuzzificación1 ERROR 1 [ENEG] Out2 Goto [EPOS] Goto1 [EZERO] [ACT ZERO1] Out3 Out4 Goto2 [ACT NEG1] [ACT POS1] In1 In1 base de reglas e inferencia Out1 [ACT NEG1] Out6 Goto7 [ACT POS1] [ACT ZERO2] fuzzificación2 [CENEG] In3 Out4 In4 Out5 In5 [EZERO] [CEPOS] [EPOS] [CEZERO] Out4 [ACT NEG2] Out5 [ACT ZERO2] 1 Out1 In7 Out1 In8 Out6 In6 Out7 In7 Out8 In8 Out9 In9 From2 Goto4 Out3 In6 From1 Goto3 In9 From3 Goto5 [CENEG] In10 From4 Goto9 [CEZERO] In11 From5 Goto10 [CEPOS] [ACT POS2] Out6 In5 From60 [ENEG] In2 Out3 In4 From59 [ACT POS2] In1 In2 From58 Goto8 2 Out2 In3 From57 [ACT NEG2] FUZZIFICACION1 DERIVADA DEL ERROR In1 In2 From56 Goto6 [ACT ZERO1] Out2 Out1 From55 Out5 Out1 In1 defuzzificación In12 From6 Goto11 FUZZIFICACION2 BASE DE REGLAS E INFERENCIA COA Figura 4.44: Etapas del módulo PD difuso para arquitectura 3 Posteriormente, se introduce el módulo PD difuso en el controlador PID, ver la Figura 4.45. PROPORCIONAL Step1 x 0.02 BLOQUE DIFUSO DE LA ARQ. 3 cast Convert DERIVATIVO In Out1 In2 a Subsystem2 a-b a In Gateway In3 z-1 q x 0.007004 b a-b d Sy stem Generator In1 CMult Gateway In2 d z-1 AddSub5 q b cast AddSub a+b Out 18.67e-9s2 +17.68e-6s+2.10e-3 b CMult1 [aux2] INTEGRAL Transfer Fcn2 AddSub1 Scope3 From1 Register1 Register3 4.58e-2 Gateway Out a Convert3 a x 0.0003052 a+b cast b [aux1] Convert1 AddSub2 CMult2 Register2 Convert4 cast [aux1] In1 Out1 From [aux2] Goto Subsystem Goto1 q z-1 d Figura 4.45: Diagrama final del PID difuso Se nota que están presentes los bloques hardware que realizan la derivada y la integral de error como en el PID en hardware. Estos módulos son los mismos la diferencia son los valores de las ganancias obtenidas por medio de la sintonización. 4.2. CONTROLADOR PID DIFUSO 99 La sintonización de las ganancias se realiza por medio del método de transferencias de ganancias del PID clásico al PID difuso, no obstante se tiene que considerar también la calibración de las funciones de pertenencia de los conjuntos de entrada y de salida. La etapa de la sintonización y calibración requiere tener conocimientos adquiridos con la experiencia en el diseño de sistemas difusos. En el siguiente capitulo 5 se describirán y se comentarán los resultados de las arquitecturas aquí propuestas. 100 CAPÍTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO Capítulo 5 Resultados En este capítulo se describen los resultados obtenidos en la implementación de controladores PID clásico y PID difuso en software y en hardware. En la sección 5.1 se muestran, analizan y comparan las señales de respuesta de cada controlador. En la sección 5.2 se estudia el error y el comportamiento de los controladores ante ruido. En la sección 5.3 se analizan, comparan y muestran los recursos hardware usados en las arquitecturas propuestas. 5.1. Respuesta en la salida de los controladores En esta sección se mostrarán los resultados que se obtienen de las simulaciones de las implementaciones de los controladores. Primeramente se mostrarán las señales de respuesta de los controladores desarrollados en software y posteriormente los desarrollados en hardware. Para los controladores desarrollados en software se medirá el tiempo de subida, tiempo de retardo, tiempo pico, sobreelongación y tiempo de establecimiento, utilizando como unidad los segundos. Para los controladores hardware se medirán los mismos parámetros 101 102 CAPÍTULO 5. RESULTADOS con la única diferencia que no se utilizarán segundos sino ciclos de reloj como valor de medida, el tiempo en segundos estará dado por la frecuencia máxima o el periodo mínimo de la arquitectura establecido en el análisis de recursos utilizados. El número de ciclos de reloj del sistema y el numero de ciclos de retroalimentación no están dados en segundo hasta que se implementen en FPGA en el proceso Place and Rute. 5.1.1. Señales de respuesta de los controladores PID y PID difuso desarrollados en software Como se ha dicho anteriormente, el desarrollo del controlador PID en software se ha realizado en la herramienta de Simulink de MatLab; el controlador fue conectado a una función escalón cuyo valor es de 24, la función escalón representa una señal que se activa en un tiempo específico y se queda en ese nivel de manera indefinida; la función escalón sirve para conocer la respuesta transitoria de un sistema ante un valor de excitación. En la Figura 5.1 se muestra la respuesta del controlador PID ante una función escalón. Figura 5.1: Repuesta del controlador PID en software En la salida de este controlador se buscaba tener el menor tiempo de asentamiento y un valor de sobreelongación bajo. En el cuadro 5.1se muestran los valores medidos de la señal de respuesta. 5.1. RESPUESTA EN LA SALIDA DE LOS CONTROLADORES Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts 103 Valor obtenido 1,01s 1,12s 0s 0 1,12s Cuadro 5.1: Tiempos y Sobreelongación del controlador PID en software El controlador PID en software tiene una sobreelongación de 0, esto indica un control sin picos iniciales, al no haber sobreelongación tampoco existe un valor para tiempo pico ya que no se forma ningún pico en la señal de salida, ver seccion 2.2. Otro desarrollo es el controlador PID difuso en software, como se comentó, éste se realizó usando la herramienta simulink y el toolbox fuzzy de MatLab; también en este controlador se desea que la sobreelongación sea 0 ya que implicaría oscilaciones mínimas en la salida. La respuesta del controlador PID difuso ante la función escalón es mostrado en la Figura 5.2. Figura 5.2: Respuesta del controlador PID difuso en software Similarmente al controlador PID, se tiene una sobreelongación 0 por lo que la señal de salida no oscila y se obtiene un tiempo de asentamiento menor comparado con el PID en software, ver cuadro 5.2. 104 CAPÍTULO 5. RESULTADOS Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts Valor obtenido 1,015s 1,08s 0s 0 1,08s Cuadro 5.2: Tiempos y Sobreelongación del controlador PID difuso en software Los resultados obtenidos de los controladores PID y PID difuso en software establecen que el PID difuso tiene un mayor tiempo de retardo que el PID clásico sin embargo el tiempo de asentamiento es menor, este parámetro es más importante ya que esta característica describe la cantidad de tiempo que tarda el controlador en igualar la señal de referencia. 5.1.2. Señales de respuesta de los controladores PID y PID difuso desarrollados en hardware En esta sección se describirán las señales de salida resultantes del desarrollo de los controladores PID y PID en lógica reconfigurable. Al tratarse de un desarrollo que utiliza valores digitales, los valores obtenidos se rigen por los ciclos de reloj del sistema, el cual tiene un tiempo de duración denominado periodo del ciclo de reloj. Este periodo determina la frecuencia del tiempo de ejecución del sistema y se obtiene cuando se implementan los sistemas en FPGA. En primera instancia se describirá el controlador PID clásico; como los controladores antes descritos, se requiere que no exista sobreelongación y que el tiempo de establecimiento sea mínimo. En la Figura 5.3 se muestra la señal de respuesta ante una señal escalón de valor 24. 5.1. RESPUESTA EN LA SALIDA DE LOS CONTROLADORES 105 Figura 5.3: Respuesta del controlador PID en hardware El controlador PID diseñado en hardware no cuenta con sobreelongación y tiene un tiempo de establecimiento determinado por 34 ciclos de reloj (cycle clock, cc). En el cuadro 5.3 se muestra los valores medidos de la señal de respuesta del controlador PID. Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts Valor obtenido (cc) 2 34 0 0 34 Ciclos de Retroalimentación 1 34 0 0 34 Cuadro 5.3: Tiempos y Sobreelongación del controlador PID en hardware Asimismo, se muestran los números de ciclos de retroalimentación, un ciclo de retroalimentación inicia cuando se resta el valor de referencia menos el valor de la salida y dura hasta que se obtiene un dato en la salida del sistema y éste se retroalimente. Por otra parte, como se ha mencionado se realizaron tres arquitecturas para el controlador PID difuso las cuales se describen a continuación: Arquitectura 1 (PID difuso con paso de parámetros y RSS) Este controlador cuenta con un paso de parámetros desde el workspace de MatLab y fue usado para calibrar los valores de los conjuntos de entrada y de salida del sistema difuso. 106 CAPÍTULO 5. RESULTADOS Con el paso de parámetros, el sistema se vuelve flexible en el modelado de los conjuntos difusos de entrada y de salida, ya que un sistema difuso necesita ser calibrado usando diferentes valores en sus rangos, con esta arquitectura se ahorra tiempo y esfuerzo. La señal de salida del controlador PID difuso con paso de parámetros y RSS se muestra en la Figura 5.4. Figura 5.4: Respuesta del controlador PID difuso con paso de parámetros y RSS La arquitectura de este controlador PID difuso cuenta con módulos de multiplicaciones, divisiones y raíz cuadrada, estos módulos requieren más ciclos de reloj para obtener un valor válido en la salida, la cantidad de ciclos de reloj utilizada en una iteración del lazo cerrado del controlador es de 83 ciclos de reloj. Los valores medidos en este controlador se muestran en el cuadro 5.4. Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts Valor obtenido (cr) 83 700 0 0 700 Ciclos de Retroalimentación 1 8 0 0 8 Cuadro 5.4: Tiempos y sobreelongación de la arquitectura 1 del PID difuso en hardware 5.1. RESPUESTA EN LA SALIDA DE LOS CONTROLADORES 107 Como se ve en el cuadro anterior, el tiempo de asentamiento es de 700 ciclos de reloj aunque solo haya realizado 8 iteraciones de lazo cerrado. En base a estos resultados se plantea en un futuro la optimización de la arquitectura del controlador PID difuso. Además, Arquitectura 2 (PID difuso sin paso de parámetros con RSS) Una vez calibrado y comprobado el correcto funcionamiento del controlador, se estableció una arquitectura especifica del controlador PID difuso. En esta nueva arquitectura se eliminaron módulos de división y se reemplazaron por módulos de multiplicación, esta acción beneficia al sistema en la disminución del numero de ciclos de reloj necesarios para que la señal de salida del controlador alcance a la señal de referencia como se puede apreciar en la Figura 5.5. Figura 5.5: Respuesta del controlador PID difuso sin paso de parámetros con RSS En la Figura 5.5 se ve que el tiempo de asentamiento disminuyó en comparación a la arquitectura con paso de parámetros, el tiempo de asentamiento es de 530 ciclos de reloj, también se nota que no hay sobreelongación en la señal de salida. Por último, cabe mencionar que se iguala a la arquitectura con paso de parámetros en el numero de iteraciones de lazo cerrado. Los demás valores medidos en la señal de salida se muestran en el cuadro 5.5. 108 CAPÍTULO 5. RESULTADOS Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts Valor obtenido (cr) 62 530 0 0 530 Ciclos de Retroalimentación 1 8 0 0 8 Cuadro 5.5: Tiempos y sobreelongación de arquitectura 2 PID difuso en hardware Como se ha descrito en el desarrollo se experimenta un cambio en la arquitectura del controlador difuso. Este cambio consiste en retirar el bloque RSS y obtener una defuzzificación basada en las 9 reglas totales de los 3 conjuntos difusos y no solamente de la ponderación de los 3 conjuntos difusos. A continuación se presentan los resultados obtenidos de esta nueva arquitectura. Arquitectura 3 (PID difuso sin paso de parámetros y sin RSS) Como se ha comentado anteriormente, en esta arquitectura ya no se utiliza la RSS. En la Figura 5.6 se muestra la señal de salida del controlador PID difuso sin RSS y sin paso de parámetros. Figura 5.6: Respuesta del controlador PID difuso sin parámetros sin RSS Se nota que este controlador ha mejorado en comparación a las dos arquitecturas anteriores del PID difuso. El número de ciclos de reloj del tiempo de asentamiento es de 135, 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 109 además el número de iteraciones de lazo cerrado también se redujo a solamente 4. Otros valores medidos de la señal de la respuesta del controlador son mostrados en el cuadro 5.6. Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts Valor obtenido 30 135 0 0 135 Ciclos de Retroalimentación 1 4 0 0 4 Cuadro 5.6: Tiempos y sobreelongación de arquitectura 3 PID difuso en hardware Como en las demás arquitecturas, la sobreelongación es 0 y no existen oscilaciones, por lo tanto tampoco hay tiempo pico. Lo que caracteriza a este controlador es su rápida respuesta en comparación a las dos arquitecturas del PID difuso anteriormente mencionadas. En esta sección se han mostrado y analizado las respuestas de los distintos controladores en software y en hardware sin ruido en las señales. En la siguiente sección se mostrarán los resultados de la señal de salida ante la presencia de ruido, este análisis es importante ya que comúnmente los sistemas en implementados sufren cambios y variaciones, ésto es lo que motiva conocer el comportamiento de los controladores ante este tipo de perturbaciones. 5.2. Cálculo de error y comportamiento ante ruido En esta sección se analizará el error de los controladores y el comportamiento de estos ante perturbaciones. Primeramente, se va a realizar un análisis del error donde se compara la señal de referencia con la salida del controlador por lo que se obtiene el error absoluto entre estas dos señales, el error absoluto está expresado por eabs = valormedido − valorre f erencia ; como se trata de un conjunto de valores se establece el uso del promedio del error, el cual esta definido con la ecuación 5.1. E prom = Donde: eabs1 + eabs2 + eabs3 + eabs4 + · · · + eabsN N (5.1) 110 CAPÍTULO 5. RESULTADOS e es el error entre las señales. N es el numero de muestras que toma para el análisis. Además, para realizar el análisis del error se realizan medidas del error cuadrático medio (Error Root Medium Square) existente entre la señal de salida sin ruido y la señal de salida con ruido, también se toman en cuenta el error cuadrático medio entre la señal con ruido y la señal de referencia, el error cuadrático medio esta representado por la siguiente formula: s Erms = e2abs1 + e2abs2 + e2abs3 + e2abs4 + · · · + e2absN N (5.2) Donde: e es el error entre las señales. N es el numero de muestras que toma para el análisis. El error cuadratico medio muestra la medida de las diferencias en promedio entre los valores pronosticados y los observados. 5.2.1. Cálculo del error Definidos los tipos de errores se procede a mostrar los resultados. En la Figura 5.7 se muestra gráficamente el comportamiento del error absoluto del controlador PID en SW. 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 111 Figura 5.7: Comportamiento del error absoluto en PID en SW El cálculo de los valores del promedio del error y del error cuadrático medio es mostrado en el cuadro 5.7. Tamaño de muestra 133,951 E prom Señal de salida y señal de referencia 13.0289 Erms Señal de salida y señal de referencia 17.4353 Cuadro 5.7: Tamaño de muestra y Valor de Erms para el PID en SW Estos datos indican que es el error promedio es menor que el error cuadrático medio por lo que Por otro lado, en el controlador PID difuso en SW, el error absoluto se comporta como se muestra en la Figura 5.8. 112 CAPÍTULO 5. RESULTADOS Figura 5.8: Comportamiento del error absoluto en el PID difuso en SW El cálculo de los valores del promedio del error y del error cuadrático medio del controlador PID difuso es mostrado en el cuadro 5.8. Tamaño de muestra 133,951 E prom Señal de salida y señal de referencia 13.2886 Erms Señal de salida y señal de referencia 17.5697 Cuadro 5.8: Tamaño de muestra, valor de E prom yErms para el PID difuso en SW En el controlador PID en hardware, el error absoluto tiene el comportamiento que muestra en la Figura 5.9. 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 113 Figura 5.9: Comportamiento del error absoluto en el PID en HW El cálculo de los valores del promedio del error y del error cuadrático medio del controlador PID difuso es mostrado en el cuadro 5.9. Tamaño de muestra 6,598 E prom Señal de salida y señal de referencia 7.5652 Erms Señal de salida y señal de referencia 8.3367 Cuadro 5.9: Tamaño de muestra, valor de E prom y Erms para el PID en HW Por último, se muestra el comportamiento del error absoluto en el controlador PID difuso en HW en la Figura . 114 CAPÍTULO 5. RESULTADOS Figura 5.10: Comportamiento del error absoluto en PID difuso en HW El cálculo de los valores del promedio del error y del error cuadrático medio del controlador PID difuso es mostrado en el cuadro 5.10. Tamaño de muestra 6,384 E prom Señal de salida y señal de referencia 0.0929 Erms Señal de salida y señal de referencia 0.5375 Cuadro 5.10: Tamaño de muestra, valor de E prom yErms para el PID difuso en HW Como se ha visto el comportamiento del error absoluto y el error cuadrático es variado, en los controladores implementados en hardware tienen valores menores en comparación a los controladores implementados en software. Los errores promedio en todos los controladores resultaron ser menores en comparación al error cuadrático, aunque para un análisis más profundo en un futuro el error cuadrático es comúnmente el método más usado. 5.2.2. Comportamiento ante ruido o perturbaciones En esta subsección se analizará el comportamiento ante ruido de los controladores desarrollados, de manera que se introduce ruido al diagrama del PID, ver Figura 5.11. 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 115 Figura 5.11: Diagrama general del PID con ruido También en esta sección se analizará el comportamiento del PID difuso con ruido, en la Figura 5.12 se muestra la modificación hecha para este análisis. Figura 5.12: Diagrama general del PID difuso con ruido Una vez establecido qué diagramas se van utilizar, se describirán los comportamientos de los controladores PID y PID difuso en plataforma software para que posteriormente se analice en plataforma hardware 5.2.2.1. Respuesta a perturbaciones en controladores PID y PID difuso en software En este diseño del controlador PID se hace uso de un bloque de Simulink llamado uniform noise, el cual genera un ruido uniforme. El valor de este bloque de ruido se le suma al resultado de la sumatoria de las tres acciones del PID. El diagrama del controlador PID en software se muestra en la Figura 5.13. 116 CAPÍTULO 5. RESULTADOS 0.0645 Gain1 du/dt Step Derivative1 4.58e-2 0.0005 18.67e-9s2 +17.68e-6s+2.10e-3 Scope2 Add Gain2 Transfer Fcn3 1 s Integrator1 3 Uniform Gain3 Uniform Noise Generator Figura 5.13: Diagrama del PID con ruido en software En base al diagrama anterior, la salida del controlador es la que se muestra en la Figura 5.14. Figura 5.14: Respuesta del PID con ruido en software En la Figura 5.14 se muestra la señal de referencia y la señal de respuesta, la señal de respuesta se ve afectada por perturbaciones en gran medida. El análisis del error en este resultado y en los siguientes están basados en el error cuadrático medio Erms presente entre la señal con ruido y la señal sin ruido, así también entre la señal con ruido y la señal de referencia. En el cuadro 5.11 se muestra los resultados al aplicar el método del error cuadrático medio. 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO Tamaño de muestra 133,951 Erms Señal con ruido y señal sin ruido 1.8741 117 Erms Señal con ruido y señal de referencia 17.0384 Cuadro 5.11: Tamaño de muestra y Valor de Erms para el PID en SW (estudio ante ruido) Igual que en el controlador PID en software, se introduce un bloque de Simulink uniform noise para que se sume con la salida del controlador PID difuso, ver Figura 5.15. 0.0645 1 Step Gain4 Fuzzy Logic voltajeController1 Gain 4.58e-2 18.67e-9s2 +17.68e-6s+2.10e-3 Scope2 Add1 Transfer Fcn3 du/dt Derivative 1 s 0.0078 Gain5 2.1 Integrator Gain6 Uniform Uniform Noise Generator1 Figura 5.15: Diagrama del PID difuso con ruido en software Se estableció como valor de referencia una función escalón de valor 24; el comportamiento de la señal de salida es mostrado en la Figura 5.16. 118 CAPÍTULO 5. RESULTADOS Figura 5.16: Respuesta del PID difuso con ruido en software Como se aprecia en la Figura anterior la señal del controlador PID difuso no tiene gran cantidad de oscilaciones y tiende a estabilizarse tomando en cuenta la señal de referencia. En el cuadro 5.12 se aprecia el tamaño de muestra y el valor de Erms de este controlador. Tamaño de muestra 133,951 Erms Señal con ruido y y señal sin ruido 1.2641 Erms Señal con ruido y señal de referencia 17.3768 Cuadro 5.12: Tamaño de muestra y Valor de Erms para el PID difuso en SW (estudio ante ruido) Además, se muestra una comparación de las señales tanto de la salida del sistema del controlador PID y del PID difuso, por lo que se grafican juntas para observar su comportamiento una respecto a la otra, ver Figura 5.17. 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 119 Figura 5.17: Respuesta de PID y PID difuso con perturbación Como se ve en la Figura 5.17 el controlador PID es más afectado por el ruido en comparación al controlador PID difuso, por otra parte las dos señales de salida tienen la misma sobreelongación aunque el PID difuso trata de estabilizarse después de la sobreelongación, contrariamente el controlador PID que se caracteriza por un gran número de perturbaciones sobre la señal de referencia. Esto se ve reflejado en el valor de su Erms , ya que el valor de éste es mas grande en el controlador PID que en el PID difuso. A continuación se analizará los mismos controladores en plataforma hardware, donde se espera que los resultados sean parecidos a este análisis. 5.2.2.2. Respuesta a perturbaciones en controladores PID y PID difuso en hardware Para realizar el análisis se modifica el diseño de la arquitectura del PID en software, se incluye el bloque de simulink noise uniform para que se sume con la salida del controlador PID, como se muestra en la Figura 5.21. 120 CAPÍTULO 5. RESULTADOS PROPORCIONAL x 0.01401 cast Convert In Step a Gateway In In a CMult a+b INTEGRAL a-b b b AddSub1 a Gateway In1 a+b AddSub b x 0.009995 AddSub4 cast a a+b Convert1 Register2 Convert4 a+b cast q z-1 d Out b AddSub3 In Scope2 Gateway Out a b CMult2 4.58e-2 18.67e-9s2 +17.68e-6s+2.10e-3 Transfer Fcn1 AddSub2 Gateway In2 DERIVADA a a-b d z-1 x 0.004501 b AddSub5 Register1 Sy stem Generator cast Convert2 q Uniform CMult1 Uniform Noise Generator Figura 5.18: Diagrama PID con ruido en hardware Para realizar la prueba con ruido se estableció una función de escalón como referencia, la respuesta del controlador PID en hardware con ruido se muestra en la Figura 5.19. Figura 5.19: Respuesta del PID con ruido en hardware El comportamiento del PID clásico muestra una gran cantidad de oscilaciones y la señal de salida no tiende a establecerse por lo que resulta en cierta medida algo inestable. En el cuadro se muestran los valores resultantes en este análisis. Tamaño de muestra 6,598 Erms1 Señal con ruido y señal sin ruido 2.0677 Erms2 Señal con ruido y señal de referencia 7.7039 Cuadro 5.13: Tamaño de muestra y Valor de Erms para el PID en HW (estudio ante ruido) 5.2. CÁLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 121 Por otra parte, para realizar el análisis de ruido con el PID difuso se simuló la arquitectura 3 que no posee paso de parámetros ni el método RSS, ya que esta arquitectura tuvo menor tiempo de establecimiento. En el diseño de controlador del PID difuso en hardware, la adición de ruido se realiza con el uso de bloque de Simulink uniform noise , este bloque se agrega al sistema como se muestra en la Figura 5.20. PROPORCIONAL [aux4] cast x 0.02 Step1 In DERIVATIVO Out1 CMult Subsystem1 a -b z-1 CMult1 [aux2] 4.58e-2 Out a+b 18.67e-9s2 +17.68e-6s+2.10e-3 b a+b b INTEGRAL a -b a In Gateway In3 AddSub a+b Uniform x 0.001205 cast Convert1 Uniform Noise Generator CMult2 Sy stem Generator Goto1 q z-1 [aux3] Goto3 [aux1] Register2 Convert4 cast In Gateway In5 b AddSub2 HW4 T ransfer Fcn2 AddSub3 AddSub1 From1 Register1 b a Convert3 AddSub5 q Gateway Out a cast x 0.007004 b d PID DIFUSO In2 a Gateway In2 a From3 In1 Convert d [aux3] In1 Out1 From2 [aux4] [aux1] Goto2 Subsystem2 In1 Out1 From [aux2] Goto Subsystem Figura 5.20: Diagrama PID difuso con ruido en hardware También se cuenta con módulos que validan la señal de salida, esto para que no se generen datos basura que afecten al controlador. Los datos basura se generan en el tiempo que le tarda la arquitectura en realizar los cálculos y en la salida existen datos cuyo valor se desconoce. Para realizar el análisis del ruido para el controlador difuso en HW, se toma como referencia una función escalón establecida en un valor de 24; el comportamiento del controlador con ruido se muestra en la Figura 5.21. 122 CAPÍTULO 5. RESULTADOS Figura 5.21: Respuesta del PID difuso con ruido en hardware Como se aprecia en la Figura anterior, el controlador PID difuso tiene un número bajo de oscilaciones cuando se le aplica perturbaciones, además la estabilización de este controlador es mejor que el controlador PID clásico en hardware. El tamaño de la muestra y el valor de Erms se reporta en el cuadro 5.14. Tamaño de muestra 6,384 Erms Señal con ruido y y señal sin ruido 1.3790 Erms Señal con ruido y señal de referencia 1.4222 Cuadro 5.14: Tamaño de muestra y Valor de Erms para el PID difuso en HW (estudio ante ruido) Los cuadros reportan que el controlador PID difuso tiene un menor error cuadrático medio, esto cumple la tendencia de operación ante ruido que se seguía desde la plataforma software. Una vez obtenidos los resultados de las señales de respuesta con y sin ruido de los controladores PID y PID difuso, se analizará la cantidad de recursos que utilizan las arquitecturas hardware. 5.3. RECURSOS HARDWARE DE LAS ARQUITECTURAS PROPUESTAS 5.3. 123 Recursos hardware de las arquitecturas propuestas En esta sección se mostrará el uso de recursos hardware, periodo mínimo y frecuencia máxima de operación de los controladores PID y PID difuso. Igualmente como en el análisis de ruido, se toma la arquitectura del controlador PID difuso sin paso de parámetros ni RSS, esto debido a que contiene menos bloques hardware y un tiempo de establecimiento menor en comparación con las otras arquitecturas. Asimismo se muestran los recursos hardware del controlador PID clásico, los valores reportados a continuación se realizaron para tres tecnologías de FPGA: Spartan 6, Virtex 5 y Artix 7. Los campos básicos de los reportes son los relacionados con los slices utilizados, el periodo mínimo y la frecuencia máxima de operación. El periodo mínimo sirve para calcular el tiempo total de respuesta de controlador, ya que en las simulaciones se contaron los números de ciclos de reloj. 5.3.1. Recursos hardware del controlador PID A continuación se presentarán los recursos hardware del controlador PID en las diversas tecnologías FPGA. En el cuadro 5.15 se presentan los recursos hardware para el dispositivo Artix 7 xc7a100t-3cgs324, partan 6 xc6slx45-3cgs324 y Virtex 5 xc5vlx50-3ff324. 124 CAPÍTULO 5. RESULTADOS W / > ^ / K ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽƌƚŝdžϳdžĐϳĂϭϬϬƚͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϳϯ ϭϮϲ͕ϴϬϬ ϭй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϲϱ EƷŵĞƌŽĚĞ>hdƐ ϱϰϭ ϲϯ͕ϰϬϬ ϭй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϱϯϱ ϲϯ͕ϰϬϬ hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϭ ϭϵ͕ϬϬϬ EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϭϲϬ ϭϱ͕ϴϱϬ ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ Ϯ͘ϭϳϵŶƐ ϰϱϴ͘ϵϮϲD,nj W ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽ^ƉĂƌƚĂŶϲdžĐϲƐůdžϰϱͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϳϯ ϱϰ͕ϱϳϲ ϭй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϲϱ EƷŵĞƌŽĚĞ>hdƐ ϱϰϭ Ϯϳ͕Ϯϴϴ ϭй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϱϯϱ Ϯϳ͕Ϯϴϴ hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϭ ϲ͕ϰϬϴ Ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϭϳϭ ϲ͕ϴϮϮ Ϯй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϭ͘ϵϮϭŶƐ ϱϮϬ͘ϱϲϮD,nj ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽsŝƌƚĞdžϱdžĐϱǀůdžϱϬͲϯĨĨϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϲϳ Ϯϴ͕ϴϬϬ ϭй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϲϱ EƷŵĞƌŽĚĞ>hdƐ ϱϰϳ Ϯϴ͕ϴϬϬ hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϱϰϭ Ϯϴ͕ϴϬϬ hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϭ ϳ͕ϲϴϬ Ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϭϱϱ ϳϮϬϬ Ϯй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϭ͘ϲϯϱŶƐ ϲϭϭ͘ϲϮϭD,nj / > ^ / K W / > ^ / K Cuadro 5.15: Recursos PID implementado en Artix 7, Spartan 6 y Virtex 5 De este cuadro se observa que para el dispositivo Artix 7 se obtiene un periodo mínimo de 2.179 ns y una frecuencia máxima de 458.926 MHz. Otra tecnología FPGA revisada es la basada en Spartan 6, cuyo dispositivo elegido para este análisis es el Spartan 6 xc6slx45-3cgs324. El periodo mínimo es de 1.921 ns y la frecuencia máxima es de 520.562 MHz. Por último, se analizó la tecnología FPGA cuyo dispositivo es Virtex 5 xc5vlx503ff324, se muestran los resultados de los recursos empleados en este dispositivo, asimismo el periodo mínimo y la frecuencia máxima. El periodo mínimo obtenido en el dispositivo de Virtex 5 es de 1.635 ns y la frecuencia máxima tiene un valor de 611.235 MHz. Con los datos de los tiempos del Cuadro 5.15 se establecen los valores temporales del controlador para cada dispositivo, ver Cuadro 5.16. 5.3. RECURSOS HARDWARE DE LAS ARQUITECTURAS PROPUESTAS Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts cicle clock 2 34 0 0 34 T. en Artix7 4.35 ns 74.086 ns 0 ns 0 ns 74.086 ns T. en Spartan 6 3.84 ns 65.314 ns 0 ns 0 ns 65.314 ns 125 T. Virtex 5 3.27 ns 55.59 ns 0 ns 0 ns 55.59 ns Cuadro 5.16: Tiempos y Sobreelongación del controlador PID en hardware Los resultados muestran que la arquitectura es más rápida y consume menos recursos en el dispositivo Virtex 5 xc5vlx50-3ff324, sin embargo se tiene que tener en cuenta que una alta frecuencia requiere más potencia por lo se motiva la investigación y el análisis de este parámetro. Cada tecnología es diferente y muestra qué beneficios se tendría con el Virtex 5, cabe mencionar que existen otro tipos de versiones como Virtex así como de Spartan y Artix, la comparación realizada se limita a estas tres tecnologías FPGA especificas teniendo en cuenta que cada familia de los dispositivos son diferentes tanto en costo y rendimiento. 5.3.2. Recursos hardware del controlador PID difuso En esta subsección se abordarán los resultados obtenidos referente a los recursos utilizados en tres diferentes tecnologías FPGA: Artix 7, Spartan 6 y Virtex 5 de las arquitectura 1, 2 y 3. Arquitectura 1 (PID difuso con paso de parámetros y RSS) En el cuadro 5.17 se presentan los recursos hardware obtenidos de la arquitectura 1. 126 CAPÍTULO 5. RESULTADOS Z Y ϭ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽƌƚŝdžϳdžĐϳĂϭϬϬƚͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϯ͕ϱϭϵ ϭϮϲ͕ϴϬϬ Ϯй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϯ͕ϱϭϭ EƷŵĞƌŽĚĞ>hdƐ ϭϬ͕ϲϭϯ ϲϯ͕ϰϬϬ ϭϲй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϭϬ͕ϰϵϲ ϲϯ͕ϰϬϬ ϭϲй hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϯϱ ϭϵ͕ϬϬϬ ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϯ͕Ϭϳϰ ϭϱ͕ϴϱϬ ϭϵй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϴϴ͘ϯϱϵŶƐ ϭϭ͘ϯϭϳD,nj Z Y ϭ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽ^ƉĂƌƚĂŶϲdžĐϲƐůdžϳϱͲϯĨŐŐϰϴϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϯ͕ϲϬϵ ϵϯ͕Ϯϵϲ ϯй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϯ͕ϲϬϬ EƷŵĞƌŽĚĞ>hdƐ ϭϬ͕ϲϰϭ ϰϲ͕ϲϰϴ ϮϮй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϭϬ͕ϰϵϱ ϰϲ͕ϲϰϴ ϮϮй hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ ϭϳ ϭϭ͕ϬϳϮ ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϯ͕ϭϮϳ ϭϭ͕ϲϲϮ Ϯϲй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϭϭϯ͘ϵϮϱŶƐ ϴ͘ϳϳϴD,nj Z Y ϭ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽsŝƌƚĞdžϱdžĐϱǀůdžϯϯϬƚͲϮĨĨϭϳϯϴ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϯ͕ϲϭϭ ϮϬϳϯϲϬ ϭй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϯ͕ϲϬϴ EƷŵĞƌŽĚĞ>hdƐ ϭϭ͕ϴϴϯ ϮϬϳ͕ϯϲϬ ϱй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϭϭ͕ϳϴϯ ϮϬϳ͕ϯϲϬ ϱй hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϯϱ ϱϰ͕ϳϮϬ ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϯ͕ϯϵϴ ϱϭ͕ϴϰϬ ϲй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϵϬ͘ϲϭϰŶƐ ϭϭ͘ϬϯϲD,nj Cuadro 5.17: Recursos de arquitectura 1 implementada en Artix 7, Spartan 6 y Virtex 5 Se muestran los recursos utilizados para el dispositivo Artix 7, el periodo mínimo para esta arquitectura es de 88.35 ns y su frecuencia máxima correspondiente es de 11.317 MHz. Por otro lado, también se hizo un análisis con los recursos utilizados, periodo mínimo y la frecuencia máxima de operación para el dispositivo Spartan 6 xc6slx75-3fgg484, se establece un periodo mínimo de 113.925 ns,con una frecuencia de operación de 8.778 MHz. Finalmente, se realiza la obtención de los recursos usados, periodo y frecuencia para el dispositivo Virtex 5 xc5vlx330-2ff1738, el valor del periodo es de 90.614 ns con una frecuencia máxima de 11.036 MHz. Por otra parte, en el Cuadro 5.18 se muestran los tiempos de operación que se obtienen de la arquitectura conforme al tipo de dispositivo. 5.3. RECURSOS HARDWARE DE LAS ARQUITECTURAS PROPUESTAS Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts cicle clock T. en Artix7 T. en Spartan 6 T. Virtex 5 83 700 700 0 700 7.333 µs 61.84 µs 61.84 µs 0 61.84 µs 9.456 µs 79.75 µs 79.75 µs 0 79.75 µs 7.521 µs 63.43 µs 63.43 µs 0 63.43 µs 127 Cuadro 5.18: Tiempos y Sobreelongación del controlador PID difuso en la arquitectura 1 Los resultados de los reportes muestran que en esta arquitectura 1, el dispositivo Artix 7 tiene mejores tiempos de operación y también en este dispositivo se consumen menos recursos. Arquitectura 2 (PID difuso sin paso de parámetros con RSS) En el Cuadro 5.19 se presentan los recursos hardware obtenidos de la arquitectura 2. Z Y Ϯ Z Y Ϯ Z Y Ϯ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽƌƚŝdžϳdžĐϳĂϭϬϬƚͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϯ͕ϱϰϵ ϭϮ͕ϲϴϬϬ Ϯй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϯ͕ϱϯϵ EƷŵĞƌŽĚĞ>hdƐ ϭϬ͕ϲϰϴ ϲϯ͕ϰϬϬ ϭϲй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϭ͕ϬϱϮϳ ϲϯ͕ϰϬϬ ϭϲй hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϯϱ ϭϵ͕ϬϬϬ ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϯ͕Ϭϴϳ ϭϱ͕ϴϱϬ ϭϵй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϭϭ͘ϮϭϲD,nj ϴϵ͘ϭϲϬŶƐ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽ^ƉĂƌƚĂŶϲdžĐϲƐůdžϰϱͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϯ͕ϲϰϯ ϵϯ͕Ϯϵϲ ϯй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϯ͕ϲϯϰ EƷŵĞƌŽĚĞ>hdƐ ϭϬ͕ϲϳϵ ϰϲ͕ϲϰϴ ϮϮй hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϭϬ͕ϱϮϴ ϰϲ͕ϲϰϴ hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ ϭϳ ϭϭ͕ϬϳϮ EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϯ͕ϭϯϰ ϭϭ͕ϲϲϮ Ϯϲй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϵ͘ϭϰϴD,nj ϭϬϵ͘ϯϭϯŶƐ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽsŝƌƚĞdžϱdžĐϱǀůdžϱϬͲϯĨĨϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϯ͕ϲϯϱ ϮϬϳϯϲϬ ϭй hƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϯ͕ϲϯϮ EƷŵĞƌŽĚĞ>hdƐ ϭϭ͕ϵϬϭ hƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϭϭ͕ϴϬϬ hƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ Ϯϱ ϱϰ͕ϳϮϬ ϭй EƷŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϯ͕ϰϯϭ ϱϭ͕ϴϰϬ ϲй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϭϬ͘ϱϴϭD,nj ϵϰ͘ϱϬϴŶƐ Cuadro 5.19: Recursos de arquitectura 2 implementada en Artix 7, Spartan 6 y Virtex 5 128 CAPÍTULO 5. RESULTADOS Se muestran los recursos utilizados para el dispositivo Artix 7, el periodo mínimo para esta arquitectura es de 89.160 ns y su frecuencia máxima correspondiente es de 11.216 MHz. Por otro lado, también se hizo un análisis con los recursos utilizados, periodo mínimo y la frecuencia máxima de operación para el dispositivo Spartan 6, se establece un periodo mínimo de 94.508 ns,con una frecuencia de operación de 10.581 MHz. Finalmente, se realiza la obtención de los recursos usados, periodo y frecuencia para el dispositivo Virtex 5, el valor del periodo es de 109.313 ns con una frecuencia máxima de 9.148 MHz. Por otra parte, en el Cuadro 5.20 se muestran los tiempos de operación que se obtienen de la arquitectura conforme al tipo de dispositivo. Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts cicle clock T. en Artix7 T. en Spartan 6 T. Virtex 5 62 530 530 5.528 µs 47.25 µs 47.25 µs 0 47.25 µs 5.859 µs 50.09 µs 50.09 µs 0 50.09 µs 6.777 µs 57.94 µs 57.94 µs 0 57.94 µs 0 530 Cuadro 5.20: Tiempos y Sobreelongación del controlador PID difuso en la arquitectura 2 Los resultados de los reportes muestran que en esta arquitectura el dispositivo Artix 7 tiene mejores tiempos de operación y también en este dispositivo se consumen menos recursos. Arquitectura 3 (PID difuso sin paso de parámetros y sin RSS) En el Cuadro 5.21 se presentan los recursos hardware obtenidos de la arquitectura 3. 5.3. RECURSOS HARDWARE DE LAS ARQUITECTURAS PROPUESTAS Z Y ϯ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽƌƚŝdžϳdžĐϳĂϭϬϬƚͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϭ͕ϯϭϳ ϭϮϲ͕ϴϬϬ ϭй EƵŵĞƌŽƵƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϭ͕ϯϭϯ EƷŵĞƌŽĚĞ>hdƐ Ϯ͕ϴϯϭ ϲϯ͕ϰϬϬ ϰй EƷŵĞƌŽƵƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ Ϯ͕ϳϴϴ EƷŵĞƌŽƵƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ ϲ ϭϵ͕ϬϬϬ ϭй EƵŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϴϴϱ ϭϱ͕ϴϱϬ ϱй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ Ϯϱ͘ϳϰϮŶƐ ϯϴ͘ϴϰϳD,nj Z Y ϯ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽ^ƉĂƌƚĂŶϲdžĐϲƐůdžϰϱͲϯĐŐƐϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϭ͕ϯϭϵ ϱϰ͕ϱϳϲ Ϯй EƵŵĞƌŽƵƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϭ͕ϯϭϱ EƷŵĞƌŽĚĞ>hdƐ ϮϵϬϮ ϮϳϮϴϴ ϭϬй EƷŵĞƌŽƵƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϮϴϮϵ Ϯϳ͕Ϯϴϴ EƷŵĞƌŽƵƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ ϱ ϲ͕ϰϬϴ ϭй EƵŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϴϲϳ ϲ͕ϴϮϮ ϭϮй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ ϯϬŶƐ ϯϯ͘ϯϯϯD,nj Z Y ϯ ZĞƐƵŵĞŶĚĞůĂƵƚŝůŝnjĂĐŝſŶĚĞůĚŝƐƉŽƐŝƚŝǀŽsŝƌƚĞdžϱdžĐϱǀůdžϱϬͲϯĨĨϯϮϰ hƚŝůŝnjĂĐŝſŶĚĞ^ůŝĐĞƐůſŐŝĐŽƐ hƐĂĚŽƐ ŝƐƉŽŶŝďůĞ hƚŝůŝnjĂĐŝſŶ EƷŵĞƌŽĚĞZĞŐŝƐƚƌŽƐ ϭ͕ϱϯϱ Ϯϴ͕ϴϬϬ ϱй EƵŵĞƌŽƵƐĂĚŽƐĐŽŵŽ&ůŝƉͲ&ůŽƉƐ ϭ͕ϱϯϰ EƷŵĞƌŽĚĞ>hdƐ ϯ͕ϭϮϯ Ϯϴ͕ϴϬϬ ϭϬй EƷŵĞƌŽƵƐĂĚŽƐůſŐŝĐĂŵĞŶƚĞ ϯ͕Ϭϴϴ Ϯϴ͕ϴϬϬ EƷŵĞƌŽƵƐĂĚŽƐĐŽŵŽŵĞŵŽƌŝĂ ϲ ϳ͕ϲϴϬ ϭй EƵŵĞƌŽĚĞ^ůŝĐĞƐŽĐƵƉĂĚŽƐ ϵϴϰ ϳ͕ϮϬϬ ϭϯй ZĞƐƵŵĞŶĚĞƚŝĞŵƉŽ WĞƌŝŽĚŽŵşŶŝŵŽ &ƌĞĐƵĞŶĐŝĂŵĄdžŝŵĂ Ϯϯ͘ϬϭϴŶƐ ϰϯ͘ϰϰϰD,nj 129 Cuadro 5.21: Recursos de arquitectura 3 implementada en Artix 7, Spartan 6 y Virtex 5 Se muestran los recursos utilizados para el dispositivo Artix 7, el periodo mínimo para esta arquitectura es de 25.742 ns y su frecuencia máxima correspondiente es de 38.847 MHz. Por otro lado, también se hizo un análisis con los recursos utilizados, periodo mínimo y la frecuencia máxima de operación para el dispositivo Spartan 6, se establece un periodo mínimo de 30 ns,con una frecuencia de operación de 33.33 MHz. Finalmente, se realiza la obtención de los recursos usados, periodo y frecuencia para el dispositivo Virtex 5, el valor del periodo es de 23.018 ns con una frecuencia máxima de 43.444 MHz. Por otra parte, en el Cuadro 5.22 se muestran los tiempos de operación que se obtienen de la arquitectura conforme al tipo de dispositivo. 130 CAPÍTULO 5. RESULTADOS Parámetros medidos Tiempo de retardo Tiempo de subida Tiempo pico Sobreelongación Tiempo de asentamiento Símbolo td tr tp MP ts cicle clock T. en Artix7 T. en Spartan 6 T. Virtex 5 30 135 135 0 135 0.7723 µs 3.475 µs 3.475 µs 0 3.475 µs 0.900 µs 4.05 µs 4.05 µs 0 4.05 µs 0.690 µs 3.107 µs 3.107 µs 0 3.107 µs Cuadro 5.22: Tiempos y Sobreelongación del controlador PID difuso en la arquitectura 3 Los resultados muestran que en la arquitectura 3 el dispositivo Virtex 5 obtiene mejores tiempos de operación, sin embargo en cuanto a recursos el dispositivo Artix 7 tiene menos consumo de recursos. 5.4. Comparación con otros trabajos En esta sección se compararán a manera de cuadro los resultados obtenidos de esta investigación con otros obtenidos de distintos trabajos. Primeramente, se muestra las comparaciones realizadas utilizando la familia FPGA Spartan, ver Cuadro 5.23. Fuente Dispositivo Frecuencia máxima Recursos HW PID desarrollado Spartan 6 520.56 MHz Trimeche et al. (2008) Spartan 3 30 MHz 539 LUTs, 368 slices (Zurita-Bustamante et al., 2011) Spartan 3 60.3 MHz 8737 LUTs, 5668 slices (Sonoli and Konduru, 2010) Spartan 3 ———— 2358 LUTs, 1916 slices (Chan et al., 2007) Spartan 3E 47 MHz 437 slices 541 LUTs 171 slices Cuadro 5.23: Comparación PID con otros trabajos relacionados usando tecnología Spartan En el Cuadro 5.23 se muestran diferentes trabajos realizados y sus resultados obtenidos bajos los parámetros de frecuencia máxima y recursos hardware. El controlador PID realizado en este trabajo de tesis es el que tiene la mejor frecuencia de operación, también, éste es el segundo mejor en cuanto al poco consumo de LUTs y el mejor en el poco consumo de slices. 5.4. COMPARACIÓN CON OTROS TRABAJOS 131 Por otra parte, se compara la arquitectura 3 del controlador PID difuso con otros trabajos debido a que esta arquitectura es la que presentó mejores resultados en las mediciones realizadas secciones atras. La comparación se realiza utilizando dos familias FPGAs: Spartan y Virtex. En el Cuadro 5.24 se muestran diferentes trabajos realizados y sus resultados obtenidos en tecnología Spartan y en el Cuadro 5.25 los trabajos que utilizan la tecnología Virtex. Las comparaciones están basados bajo los parámetros de frecuencia máxima, recursos hardware y time per action. El time per action es el tiempo que tarda en realizar un ciclo de retroalimentación y es lo que reportan los trabajos. Fuente Dispositivo Frecuencia máxima Arquitectura 3 Spartan 6 33.333 MHz Recursos HW Time per action 2902 LUTs 0.9 µs 867 Slices (Sulaiman et al., 2009) Spartan 3 40.550 MHz 1394 Slices 2.096 µs (Poorani et al., 2005) Spartan II E 8 KHz 6,144 LUTs 41.1 ms Cuadro 5.24: Comparación PID difuso con otros trabajos relacionados usando tecnología Spartan En el Cuadro 5.24 se muestra que la arquitectura 3 es la segunda más rápida en comparación con las demás. Además tiene el menor time per action y el menor consumo de LUTs-Slices que los otros trabajos comparados. Fuente Dispositivo Frecuencia máxima Arquitectura 3 Virtex 5 43.333 MHz Recursos HW Time per action 3,123 LUTs 0.690 µs 984 Slices (Economakos and Economakos, 2007) Virtex 4 50 MHz 2,064 LUTs 0.75 µs (Hassan and Sharif , 2007) Virtex 40.295 MHz 1,394 Slices 0.421 µs (Obaid et al., 2011) Virtex 40 MHz 494 CLBs 0.3 µs Cuadro 5.25: Comparación PID difuso con otros trabajos relacionados usando tecnología Virtex Utilizando la tecnología Virtex, la arquitectura tiene la segunda mejor frecuencia máxima de operación, además con el menor consumo de slices y el segundo mejor consumo de LUTs. Y en cuanto el time per action, éste se encuentra en el tercer lugar, dado esto 132 CAPÍTULO 5. RESULTADOS se motiva a aumentar la eficiencia dentro de las arquitecturas propuestas, todo esto en un trabajo futuro. En este capítulo se ha visto los resultados del comportamiento de los controladores PID y PID difuso, tanto en el comportamiento de la señal de salida, el comportamiento ante ruido y la cantidad de recursos que utilizan. De manera que en el Capítulo 6 se describirán las conclusiones de este trabajo. Capítulo 6 Conclusiones En este apartado se presentan las conclusiones del trabajo de Tesis “Análisis y comparación de controladores PID y PID difuso en lógica reconfigurable”, que como su nombre lo indica se basó en analizar y comparar los controladores PID y PID difuso en hardware. Como se ha comentado, primeramente se desarrolló el controlador PID en software, ya que éste representa una base para la realización del PID en lógica reconfigurable. Para desarrollar el controlador PID en software se usó la herramienta Simulink, esta herramienta es de gran ayuda ya que reduce el tiempo de diseño, por otro lado, la sintonización del controlador se realizó con el método de prueba y error, con este método se logró una sobreelongación de cero en la señal de salida, así como también un tiempo de asentamiento pequeño. Se considera que existen otros métodos más complejos en la sintonización de los controladores por lo que se deja en un futuro cercano realizar una sintonización más óptima de las ganancias de las arquitecturas ya que las ganancias no llegan a afectar el diseño de las arquitecturas propuestas. Cabe mencionar que el buen comportamiento de la señal también se debe a que la función de transferencia que representa al motor es estable; no se generaliza que en todos los motores se obtenga una sobreelongacion igual a 0 ó un tiempo de asentamiento pequeño, ya que de eso dependerá de la sintonización que se le de a los controladores en conjunto con distintas plantas. 133 134 CAPÍTULO 6. CONCLUSIONES Por otra parte, también se desarrolló el controlador PID difuso en software, la parte difusa se diseñó usando el toolbox fuzzy de MatLab, ésta es una herramienta que ahorra tiempo y esfuerzo al momento de describir un sistema difuso dado su entorno de fácil acceso y navegación, además de esta herramienta, también se usó de nueva cuenta Simulink ya que provee de un bloque que logra importar el diseño realizado desde el toolbox fuzzy. La sintonización de este controlador se realizó a prueba y error, la sintonización abarca los valores de las ganancias y los rangos de las funciones de pertenencia del sistema difuso; en este paso es importante el conocimiento y la experiencia del diseñador de sistemas difusos ya que en base a ellos dependerá el comportamiento de la señal de salida del controlador. La señal de respuesta del controlador PID difuso en software no tiene sobreelongación, su tiempo de retardo es mayor que el PID clásico, sin embargo su tiempo de establecimiento es menor, por lo que en este trabajo la salida del controlador PID difuso es mejor que el PID clásico, ya que el tiempo de establecimiento indica el tiempo que tarda el controlador en establecerse en la salida deseada. Por otro lado, se le agregó ruido al PID en software y se notó que le afecta directamente, ya que la señal de salida presenta gran cantidad de perturbaciones de variada magnitud y tiende a no estabilizarse al valor de referencia establecido. Por el contrario, el PID difuso en software el ruido le afecta en menor medida, ya que no presenta oscilaciones pronunciadas, además, la señal de salida tiende a estabilizarse al valor de la señal de referencia. De este estudio de ruido o perturbaciones, se concluye que el PID difuso en software es mejor que el PID ya que tiene una mejor respuesta temporal y un menor grado de afectación por ruido. La anterior información se utilizó para el desarrollo en hardware (lógica reconfigurable) de los controladores PID y PID difuso. El controlador PID difuso se diseñó utilizando Simulink y librerías de componentes hardware a lo que se denomina System Generator, esta herramienta es importante ya que provee una visión abstracta de alto nivel de los sistemas hardware. En base al desarrollo del controlador PID difuso se generaron tres arquitecturas: La primera arquitectura tiene paso de parámetros, este paso de parámetros sirve para calibrar el sistema y dota de flexibilidad al sistema, resultando beneficioso ya que en un futuro se espera que la arquitectura sirva para controlar distintos procesos. La señal de comportamiento de este controlador no cuenta con sobreelongación, por lo cual la señal se estabiliza sin generar picos ni oscilaciones, cabe aclarar que un 135 sistema real generalmente no pasa eso, sin embargo, el tener un modelo que no genere picos ni oscilaciones implica una reducción de perturbaciones en general cuando se implemente el modelo. La segunda arquitectura es una modificación de la primera, ésta ya no es flexible en cuanto al paso de parámetros se refiere; lo que se buscó fue mejorar el tiempo de ejecución, por lo que esta arquitectura mejora en 25 % el número de ciclos de reloj utilizados para establecerse en el valor de referencia. La señal de comportamiento de este controlador no cuenta con sobreelongación, es decir en la estabilización de la señal no se generan picos ni oscilaciones. Respecto a los recursos hardware, se analizaron las arquitecturas del PID y la tercera arquitectura del controlador PID difuso ya que es que tiene mejor respuesta. Para realizar este análisis se tuvo que hacer pruebas orientados en dispositivos hardware con diferente tecnología FPGA como: Artix 7 xc7a100t-3cgs324, Spartan 6 xc6slx45-3cgs324 y Virtex 5 xc5vlx50-3ff324. Por otra parte, la tercera arquitectura no tiene flexibilidad de introducir parámetros y se diseño para disminuir el número de ciclos de reloj, por tal motivo se decidió eliminar el método RSS, ya que este bloque necesitaba una gran cantidad de ciclos de reloj para calcular la raíz cuadrada, de manera que se disminuyó en un 80 % respecto al primer diseño y 75 % respecto al segundo. En este caso se eliminó la RSS ya que no afectaba en gran medida el resultado del controlador difuso, sin embargo, si el número de conjuntos de salida creciera y se traslaparán entre ellos el método RSS sería de una utilidad mayor. Para los dos controladores PID y PID difuso, el dispositivo el que ofrece mejores resultados tanto en periodo mínimo, frecuencia máxima y recursos usados fue el Virtex 5 xc5vlx503ff324. Sin embargo, este no es el dispositivo que menos recursos consume, esta característica la comparten los dispositivos Spartan 6 xc6slx45-3cgs324 y Artix 7 xc7a100t-3cgs324 para el PID difuso y para el PID clásico se mantiene Virtex 5 xc5vlx50-3ff324 como el mejor. Comparando los dos controladores resulta que el controlador PID usa menos recursos que el PID difuso y además tiene un periodo menor y, por consecuente, una frecuencia más 136 CAPÍTULO 6. CONCLUSIONES alta. Esto se debe a que el controlador PID no requiere de cálculos como la división como lo requiere el PID difuso, la operación de división hace uso de un gran número recursos hardware por tal motivo el controlador PID difuso tiende a utilizar más recursos. También, como se comentó anteriormente, se realizó un análisis con la presencia de ruido en los controladores PID y PID difuso en hardware, de estos análisis se obtuvo que el controlador PID tiene una salida oscilatoria que genera picos, y dado estos picos la señal de salida tiende a no estabilizarse. Por otro lado en el análisis del controlador PID difuso, la salida de este controlador no presenta gran cantidad de picos, por lo que la señal de salida trata de estabilizarse ante la señal de referencia. El análisis con la presencia de ruido es importante, ya que en la realidad muchos sistemas están propensos a cambios repentinos, ruido o perturbaciones del ambiente que los rodea, por lo que contar con un sistema que sea robusto ante esto generaría grandes beneficios tanto económicos como funcionales. Con las arquitecturas propuestas del PID difuso hay que examinar si su frecuencia máxima es suficiente para controlar procesos que requieren alto desempeño. Para el caso del motor de CD la velocidad de respuesta es mucho menor (en el orden de microsegundos) ya que la respuesta del motor de CD estudiado es de 8.5 ms. Como se ha descrito se ha realizado un análisis y una comparación entre controladores PID y PID difuso desarrollados en lógica reconfigurable. Con estos resultados ya se tienen las bases para controlar motores en especial orientado a controlar motores de CD en cualquier aplicación. Además, se han obtenido diferentes arquitecturas hardware de los controladores PID difuso: la primera es flexible y servirá en un futuro para que se controlen otros procesos diferentes (pueden ser distintos a los motores de CD); también otros dos controladores que no son flexibles pero que tienen mejores resultados en tiempo de respuesta son propuestos y con estas arquitecturas se pretende establecer las bases de conocimientos a los diseñadores de sistemas de control y se prevé que en un futuro este análisis sean tomados en cuenta al momento de diseñar controladores. Por último, se comenta que en este proyecto se ha desarrollado un artículo titulado “Controlador PID difuso implementado con lógica reconfigurable” (Pantoja-Laces, Marzo 137 2013), el cual ya ha sido publicado en las memorias del congreso. Además se había explorado la velocidad de motores usando microcontroladores de uso general (Pantoja-Laces, Octubre 2011). Actualmente, se prepara un artículo para una revista indexada. 138 CAPÍTULO 6. CONCLUSIONES Apéndice A Transformada de Laplace y funciones de transferencia En este apéndice se conocerá más acerca de la transformada de Laplace, las cuales son muy útiles al momento de modelar sistemas físicos y ayudan en este caso a analizar sistemas de control. A.1. Transformada de Laplace La transformada de Laplace es parte fundamental de la matemática aplicada y requerida de los ingenieros, físicos, matemáticos, etc. El método de la transformada de Laplace es una herramienta matemática ampliamente utilizada para solucionar ecuaciones ordinarias lineales, también es usada en el modelado, análisis y simulación de sistemas físicos como circuitos eléctricos, sistemas térmicos y sobre todo en sistemas de control automático. La transformada de Laplace tiene dos características importantes que la hacen de gran utilidad, según Chojolán (2007): 1. La solución de la ecuación homogénea y la solución particular se obtienen en una sola operación. 139 140APÉNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA 2. La transformada de Laplace convierte la ecuación diferencial en una ecuación algebraica de (s). La solución final se obtiene tomando la transformada inversa de Laplace de la salida. La transformada de Laplace de f (t) se define para alguna σ real finita, como F(s) = L { f (t)} = Z∞ f (t)e−σt dt (A.1) 0 La variable s se denomina el operador de Laplace, que es una variable compleja s = σ + jw. La ecuación A.1también se conoce como la transformada de Laplace unilateral, y que la integral se evalúa desde t = 0 hasta ∞. Esto se considera así ya que toda la información en la función antes de t = 0 se ignora. Pero esto no representa alguna limitante en las aplicaciones en donde es utilizada pues en el estudio del dominio del tiempo comúnmente se toma como referencia t = 0 . Esto se debe a que la excitación de los sistemas no está presente antes de t = 0. A.1.1. Transformada inversa de Laplace Dada la transformada de Laplace F(s), la operación para obtener f (t) se denomina como la transformada inversa de Laplace y se define por: f (t) = L −1 [F(S)] (A.2) La integral de la transformada inversa de Laplace se representa como: 1 f (t) = 2π j c+ Z j∞ F(S) eSt dS (A.3) c− j∞ En donde c es una constante real que es mayor que las partes reales de todas las singularidades de F(s). La ecuación A.3 representa una integral de línea que se evalúa en el plano s. Para funciones simples, la operación de la transformada inversa de Laplace, se puede A.2. FUNCIONES DE TRANSFERENCIA 141 llevar a cabo sin realizar la evaluación de esta integral, utilizando una tabla de transformadas. Si la integral resulta compleja se puede utilizar el método de integración que sea más adecuado para resolverla. A.2. Funciones de Transferencia Para analizar la respuesta transitoria o la respuesta en frecuencia de sistemas lineales con una entrada y una salida invariantes con el tiempo, la representación usando la función de transferencia es más conveniente que cualquier otra, ya que un sistema puede representarse por diversos modelos matemáticos, dependiendo de cada punto de vista. En el campo de control las funciones de transferencia se usan para representar las relaciones de entrada-salida de componentes o de sistemas que se pueden describir mediante ecuaciones diferenciales lineales invariantes con el tiempo. La función de transferencia de un sistema puede ser descrito mediante una ecuación diferencial lineal invariante con el tiempo, se define como: el cociente entre la transformada de Laplace de la salida y la transformada de Laplace de la entrada, considerando condiciones iniciales nulas. G(s) = L (salida) Y (s) b0 sm + b1 sm−1 + ... + bm−1 s + bm = = L (entrada) X(s) a0 sn + a1 sn−1 + ... + an−1 s + an (A.4) Algunas consideraciones que se tienen en cuenta al momento de trabajar con funciones de transferencias según Chojolán (2007) son : 1. La función de transferencia de un sistema es un modelo matemático, es decir, es un método para expresar la ecuación diferencial que relaciona la variable de salida con la variable de entrada. 2. Es una propiedad de un sistema, independiente de su magnitud y naturaleza de la función de entrada. 3. Incluye las unidades necesarias para relacionar la entrada con la salida, pero no proporciona información de la estructura física del sistema. 142APÉNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA 4. Si se conoce la función de transferencia de un sistema, se estudia la salida o respuesta para varias formas de entrada, con la intención de comprender la naturaleza del sistema. 5. Si se desconoce la función de transferencia de un sistema, puede establecerse experimentalmente, introduciendo entradas conocidas y estudiando la salida del sistema. 6. Una vez obtenida la función de transferencia, tendremos una descripción completa de las características dinámicas del sistema, a diferencia de su descripción física. Una forma que ayuda en gran medida al trabajar con las funciones de transferencia son los diagramas a bloques, los cuales muestran las relaciones que tienes los elementos de un sistema y las señales de flujo dentro de éste. Para construir un diagrama de bloques de un sistema se conectan los bloques que representan los componentes de éste de manera que respeten el flujo de las señales por lo que al final es posible evaluar la contribución de cada componente en el sistema. En ocasiones los diagramas de bloques contienen una gran cantidad de ramificaciones por lo que se requiere una simplificación mediante un reordenamiento paso a paso a través de las reglas del álgebra de los diagramas de bloques, ver Figura A.1. A.2. FUNCIONES DE TRANSFERENCIA 143 Figura A.1: Reglas de álgebra de diagrama de bloques En los sistemas de control de lazo abierto (ver Figura A.2) es sencillo encontrar la función de transferencia dada la topología de este tipo de sistemas, ya que no existen ramificaciones por lo que el resultado es el producto de la entrada por el proceso, ver ecuación A.5. Figura A.2: Función de transferencia lazo abierto C(s) = E(s) · G(s) (A.5) Por otro lado, en los sistemas de lazo cerrado se requiere conocer el álgebra de los diagramas a bloques para encontrar la función de transferencia, ya que el diagrama de bloques clásico de los sistemas retroalimentados como también se les llama se representa como en la Figura A.3 la cual tiene ramificaciones y comparaciones. 144APÉNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA Figura A.3: Diagrama a bloques de un sistema cerrado R(s) señal de entrada o señal referencial. C(s) señal de salida (variable controlada). B(s) señal retroalimentada. H(s) función de transferencia del bloque de retroalimentación. E(s) señal de error. En este caso se requiere obtener la función de transferencia representada por: F(s) = C(s) R(s) (A.6) Por lo que se procede a obtener las salidas de las señales dentro del sistema, las cuales son: E(s) = R(s) − B(s) (A.7) B(s) = C(s) · H(s) (A.8) E(s) = R(s) −C(s) · H(s) (A.9) E(s) = R(s) − E(s) · G(s) · H(s) (A.10) E(s) = E(s) + E(s) · G(s) · H(s) (A.11) A.2. FUNCIONES DE TRANSFERENCIA 145 Reduciendo los términos semejantes y sustituyendo: B(s) = G(s) · H(s) E(s) (A.12) C(s) [1 + H(s)G(s)] = R(s) G(s) (A.13) G(s) C(s) = R(s) 1 + H(s)G(s) (A.14) En conclusión, las funciones de transferencia ayudan a representar modelos físicos de procesos o plantas hasta sistemas completos y en este trabajo de investigación se hace referencia al control de motores de corriente directa por lo que se debe de establecer los fundamentos teóricos del motor de corriente directa. 146APÉNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA Apéndice B System Generator System Generator para DSP es una plataforma software que usa las herramientas de The MathWork MatLab/Simulink para representar una visión abstracta de alto nivel del sistema de DSP, y que automáticamente genera el código HDL de la función de DSP desarrollada usando los LogiCOREs optimizados de Xilinx. De esta forma, System Generator permite modelar directamente mediante un entorno de alto nivel muy flexible, robusto y fácil de utilizar sistemas de DSP, permitiendo un desarrollo de alto rendimiento para una plataforma hardware específica. Un diseño desarrollado con esta herramienta puede componerse de una gran variedad de elementos: bloques específicos de System Generator, código de un lenguaje de descripción de hardware tradicional (VHDL, Verilog) y funciones derivadas del lenguaje programación MatLab. Así, todos estos elementos pueden ser usados simultáneamente, simulados en conjunto y sintetizados para obtener una función de DSP sobre FPGA. El aspecto más interesante de trabajar en MatLab/Simulink es emplear la herramienta de simulación de sistemas Simulink para realizar la verificación del diseño. Una de las características más importantes de Xilinx System Generator es que posee abstracción aritmética, es decir, trabaja con representaciones en punto fijo con una precisión arbitraria, incluyendo la cuantización y el sobreflujo. También puede realizar simulaciones tanto en doble precisión como en punto fijo. Se cuenta con una gran cantidad de bloques de construcción de DSP en el Blockset Xilinx DSP para Simulink. Estos bloques son los bloques DSP comunes de construcción tales 147 148 APÉNDICE B. SYSTEM GENERATOR como sumadores, multiplexores, registros, entre otros. También se incluyen un conjunto de bloques de construcción compleja DSP, tales como bloques de filtros, raíz cuadrada, FFT y memorias. En la Figura B.1 se muestran algunos bloques de System Generator. addr In Gateway In data z-1 x_in addrz-1 x_out we Single Port RAM Sy stem Generator ROM CORDIC 4.0 1 Constant Out Gateway Out a z-1 d a+b q b xn_re xk_re xk_im ++ AddSub Register and xn_im xn_index start Counter Logical fwd_inv tready xk_index rfd tvalid fwd_inv_we busy dv tvalid tdata scale_sch edone z-1 a b Delay z-3 a scale_sch_we × b Mult tdata tready done Fast Fourier T ransform 7.1 AXI FIFO Figura B.1: Algunos bloques de utilizados en System Generator B.1. Blockset de Xilinx en Simulink Después de la Instalación de System Generator en el toolbox de Simulink generan nuevos Blocksets que se describen a continuación. B.1.1. Xilinx Blockset Xilinx Blockset es una familia de bibliotecas que contienen los bloques básicos de System Generator. Algunos bloques son de bajo nivel, facilitando el acceso al hardware B.1. BLOCKSET DE XILINX EN SIMULINK 149 específico del dispositivo. Otros son de alto nivel de ejecución, procesamiento de señales y algoritmos avanzados de comunicación. Para mayor comodidad, los bloques con una amplia aplicabilidad son miembros de varias bibliotecas. Cada bloque se encuentra en la biblioteca índice. Las bibliotecas se describen en el cuadro B.2. Librería Index Basic Elements Communication Control Logic Data Types DSP Math Memory Shared Memory Tools Descripción Cada Bloque en el Blockset de Xilinx. Bloques de elementos estándar para la construcción de lógica digital. Bloques de corrección de errores y moduladores. Bloques de circuitos de control y máquinas de estado. Los bloques que convertir tipos de datos. Bloques de Procesamiento Digital de señales (DSP). Bloques que implementan funciones matemáticas. Bloques para la implementación y acceso a memoria. Bloques para la implementación y acceso a memoria compartida de Xilinx. Bloques de herramientas, para estimación de recursos, co-simulación HDL, etc. Cuadro B.1: Bibliotecas de Xilinx Blockset B.1.2. Xilinx Reference Blockset Por otra parte, Xilinx Reference Blockset contiene compuestos de bloques de System Generator que implementan una amplia gama de funciones. Los bloques en este Blockset se organizan por su función en diferentes bibliotecas. Las bibliotecas se describen en el cuadro B.2 y cada bloque en este Blockset es un compuesto es decir, se implementa como un subsistema de enmascarados, con los parámetros que configuran el bloque. Librería Communication Control Logic Imaging DSP Math Descripción Bloques de corrección de errores y moduladores Bloques de circuitos de control y máquinas de estado Bloques de Procesamiento de Imágenes. Bloques de Procesamiento Digital de señales (DSP) Bloques que implementan funciones matemáticas Cuadro B.2: Bibliotecas de Xilinx Reference Blockset Cada bloque de referencia tiene una descripción de su aplicación y los requisitos de recursos de hardware. 150 B.2. APÉNDICE B. SYSTEM GENERATOR Tipos de Señales en System Generator Los bloques en Xilinx System Generator operan con valores booleanos o valores en punto fijo, esto es para dar una mejor aproximación a la simulación hardware en Simulink. En contraste, Simulink trabaja con números de punto flotante de doble precisión. La conexión entre los bloques de Xilinx System Generator y los bloques de Simulink son los bloques llamados Gateway. El Bloque Gateway In convierte una señal de doble precisión en una señal de Xilinx, y el bloque Gateway Out convierte una señal de Xilinx en una de doble precisión. Las señales continuas de Simulink deben ser muestreadas por el bloque Gateway In. La mayoría de los bloques de Xilinx son capaces de deducir los tipos adecuados de salida basándose en sus tipos de entrada. Cuando se especifica full precisión en los parámetros del bloque, System Generator elige el tipo de salida para garantizar que no se pierda precisión. La extensión de signo y el relleno de ceros ocurre automáticamente, si es necesario. En la parte de System Generator de un modelo Simulink, cada señal debe ser muestreada. Tiempos de muestra deben ser heredados usando reglas de propagación de Simulink, o estableciendo explícitamente la configuración en el cuadro de dialogo de un bloque. A continuación se describirá el bloque System Generator, el cual es importante ya que en él se describe las configuraciones de las simulaciones y así como también la especificación de parámetros para la implementación hardware. B.2.1. Bloque System Generator Cualquier diseño que incluya un bloque de Xilinx debe incluir este bloque, ya que es el encargado de proporcionar el control del sistema y los parámetros de las simulaciones, e invocar el generador de código. En la Figura B.2 se muestra dónde especificar los parámetros para la opción Compilation y se describen a continuación. Compilation: especifica el tipo de compilación que se producirá cuando se invoque al generador de código. Part: define FPGA usado. Target Directory: nombre del directorio para guardar los resultados de la compilación. B.2. TIPOS DE SEÑALES EN SYSTEM GENERATOR Figura B.2: Parámetros de la opción Compilation 151 152 APÉNDICE B. SYSTEM GENERATOR Figura B.3: Parámetros de la opción Clocking Synthesis Tool: indica la herramienta usada para sintetizar el diseño. Las posibles opciones son Synplicity’s Synplify Pro, Synplify, y Xilinx’s XST. Hardware Description Language: especifica el lenguaje HDL que se usará para la compilación, puede ser VHDL o Verilog. Asimismo, en la opción de Clocking se encuentran diferentes parámetros mostrados en la Figura B.3 y se describen algunos a continuación. FPGA Clock Period: define el período en nanosegundos del reloj hardware y debe ser un entero. Clock Pin Location: indica cuál es el pin del reloj. Esta información se le pasa a las herramientas de implementación de Xilinx a través de un archivo (xcf o ngc) en el que también se incluyen otro tipo de restricciones. Simulink System Period: define el período de Simulink, en segundos. Por otra parte, en la opción General se muestra el parámetro Block Icon Display, ver Figura B.4, el cual especifica el tipo de información que será mostrada en los iconos de los bloques. Este parámetro cuenta con un menú desplegable que tiene las siguientes opciones: Default: muestra la información por defecto del bloque. B.2. TIPOS DE SEÑALES EN SYSTEM GENERATOR 153 Figura B.4: Parámetros de la opción General Pipeline stages: indica la latencia de los puertos de entradas, cuya información no está disponible para algunos bloques. HDL port names: muestra el nombre de los puertos de entrada y salida. Input data types: muestra los tipos de datos de las señales de entrada a los bloques, cuya información suele ser útil para resolver errores. Output data types: muestran los tipos de datos de las señales de salida de los bloques. Esta información suele ser útil para resolver errores. Para finalizar, en este apéndice se describirán algunas formas de compilación que se pueden utilizar cuando se maneja el entorno System Generator, las más importantes son: HDL: Ésta es la compilación por defecto. En ella se generan los archivos HDL, NGC y EDIF necesarios para implementar el modelo diseñado. Adicionalmente se crean otros archivos que simplifican este proceso. Todos los archivos creados se guardan en el directorio que se indique en el bloque System Generator. Bitstream: Esta compilación crea un archivo bit que se puede cargar directamente en el FPGA. Este archivo se llama nombre_cw.bit y se guarda en el directorio que se indique en el bloque System Generator. Hardware Co-simulation: Este tipo de compilación es la que se utiliza para crear el modelo que se usa en la co-simulación hardware. 154 APÉNDICE B. SYSTEM GENERATOR Timing: En ocasiones el hardware creado por System Generator puede no cumplir con los requisitos de tiempo. System Generator proporciona una herramienta que permite realizar un análisis temporal para resolver este tipo de conflictos. Mediante este análisis se muestra el camino más lento de la parte hardware diseñada, así como aquellos que no cumplen con los requisitos temporales. Para realizar este tipo de análisis, System Generator se basa en la herramienta Trace, que forma parte del paquete ISE de Xilinx, este tipo de compilación se utilizó en el trabajo de tesis ya que no se podía realizar la co-simulación porque no se contaba físicamente con los dispositivos. La herramienta System Generator es importante para la realización de proyectos con lógica reconfigurable ya que brinda de herramientas de alto nivel de abstracción que facilita la implementación de diseños de la forma mas rápida, reduciendo costo y esfuerzo. Nomenclatura ASIC Es un circuito integrado hecho a la medida para un uso en particular, en vez de ser concebido para propósitos de uso general. CD La corriente continua o corriente directa (CD en español, en inglés DC, de Direct Current) es el flujo continuo de electrones a través de un conductor entre dos puntos de distinto potencial. CORDIC El algoritmo de CORDIC se basa principalmente en sumas y desplazamientos de bits, que lo hacen muy atractivo para la tecnología en que divisiones y multiplicaciones son caras computacional o físicamente; como en los ejemplos presentados anteriormente. Cuadrotor Un cuadrotor es un helicóptero con cuatro rotores, el cual permite tener una mayor estabilidad que un helicóptero normal FPGA En Inglés Field Programmable Gate Arrays. Es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada mediante un lenguaje de descripción especializado. IA Inteligencia Artificial Look Up Table Look up table (del inglés tabla de consulta) es una estructura de datos, normalmente un arreglo o un arreglo asociativo, que se usa para substituir una rutina de computación con una simple indexación de los arreglos. offset Offset significa que el controlador mantendrá la medida a un valor diferente del valor de consigna 155 156 APÉNDICE B. SYSTEM GENERATOR PC Una computadora personal u ordenador personal, también conocida como PC (sigla en inglés de Personal Computer). PID Controlador que se compone de tres acciones: la acción Proporcional, Derivativa e Integral. SW Plataforma Software Bibliografía Aguirre, I., Metodologías de diseño para computación reconfigurable, in XI Congreso Universitario de Innovación Educativa en las Enseñanzas Técnicas Vilanova, 2003. Alejo-Gámez, ., Diseño de un pid para control de velocidad, 2011. Avila, N. S., Control de velocidad discreto de un motor de corriente directa utilizando el microcontrolador pic 18f4550, Ph.D. thesis, Universidad Michoacana de San Nicolás de Hidalgo, 2011. Castillo, L. F. S., Diseño e implementación de un sistema de control digital para un motor de dc con controlador pid, Tech. rep., Universidad de Guadalajara, 2009. Cercós, J. N., Diseño de un controlador avanzado basado en redes neuronales para la gestión de la mezcla aire-gasolina en un motor alternativo, Ph.D. thesis, Universitat Politècnica de Catalunya, 2001. Chan, Y. F., M. Moallem, and W. Wang, Design and implementation of modular fpga-based pid controllers, Industrial Electronics, IEEE Transactions on, 54(4), 1898–1906, 2007. Chen, W., H.-m. Yuan, and Y. Wang, Design and implementation of digital fuzzy-pid controller based on fpga, in Industrial Electronics and Applications, 2009. ICIEA 2009. 4th IEEE Conference on, pp. 393–397, IEEE, 2009. Chojolán, S. E. T., Diseño de controladores pid en tiempo discreto y análisis de respuesta utilizando herramientas computacionales, Ph.D. thesis, Universidad de San Carlos de Guatemala, 2007. 157 158 BIBLIOGRAFÍA Coronel Lemus, M. E., Simulación de sistema difuso para el control de velocidad de un motor c.d, pp. 25–34, 2004. Economakos, G., and C. Economakos, A run-time reconfigurable fuzzy pid controller based on modern fpga devices, in Control & Automation, 2007. MED’07. Mediterranean Conference on, pp. 1–6, IEEE, 2007. Farid, M., and M. Faruq, Pid controller design for dc motor using matlab application, Ph.D. thesis, Universiti Malaysia Pahang, 2008. Galán, R., A. Jiménez, F. Martía, and R. Sanz, Control inteligente, Inteligencia artificial: Revista Iberoamericana de Inteligencia Artificial, 4(10), 43–48, 2000. García, J. A. E., Modulador pwm en fpga para un inversor multinivel en cascada, Master’s thesis, CENIDET, 2009. Garrido, R., D. Calderon, and A. Soria, Adaptive fuzzy control of dc motors, in International Power Electronics Congress, 10th IEEE, pp. 1–6, IEEE, 2006. González, J. R. H., and V. J. M. Hernando, Redes neuronales artificiales: fundamentos, modelos y aplicaciones, Ra-ma, 1995. Grisales, V., J. Bonilla, M. Melgarejo, and M. Melgarejo, Diseño e implementacion de un controlador difuso basado en fpga., microsistemas y lógica difusa, pp. 71–81, 2001. Hassan, M. Y., and W. F. Sharif, Design of fpga based pid-like fuzzy controller for industrial applications, IAENG International Journal of Computer Science, 34(2), 192–198, 2007. Islam, M. S., N. Amin, M. Zaman, and M. Bhuyan, Fuzzy based pid controller using vhdl for transportation application, International Journal of Mathematical Models and Methods in Applied Sciences, 2(2), 143–147, 2008. Kamalasadan, S., and A. Hande, A pid controller for real-time dc motor speed control using the c505c microcontroller, in 17th International Conference on Computer Applications in Industry and Engineering (CAINE), Orlando, FL, pp. 34–39, Citeseer, 2004. BIBLIOGRAFÍA 159 León Galarza, C. F., et al., Diseño e implementación del control pid de velocidad para un motor dc utilizando la tarjeta fpga spartan 3e y labview para los laboratorios de la carrera de ingeniería electrónica de la universidad politécnica salesiana, 2012. Londoño, L. F. C., Diseño de un sistema para el control de posición de un motor dc basado en fpga, 2011. López, L. J., F. M. Zulay, and A. S. Pateti, Metodología de implementación de un controlador pid difuso en una fpga, Universidad, Ciencia y Tecnología, 10(39), 130–133, 2006. Martínez, M. A., J. Sanchis, and X. Blasco, Algoritmos genéticos aplicados al diseño de controladores robustos, RIAII, 3(1), 39–51, 2010. Méndez, J. T. P., and R. L. M. Morales, Inteligencia artificial: técnicas, métodos y aplicaciones, McGraw-Hill Interamericana de España, 2008. Morata Palacios, F., Controlador fuzzy de un quadrotor, Ph.D. thesis, 2009. Moreno, R., P. Aros, and J. Ribet, Diseño de un controlador pid difuso aplicado en un horno rotatorio para producir carbón activado, in Memoria INGELECTRA 2006, Congreso estudiantil de ingeniería eléctrica y electrónica. Universidad Austral de Chile, 2006. Munárriz, L. Á., Fundamentos de inteligencia artificial, vol. 1, Editum, 1994. Murthy, S. N., W. Alvis, R. Shirodkar, K. Valavanis, and W. Moreno, Methodology for implementation of unmanned vehicle control on fpga using system generator, in Devices, Circuits and Systems, 2008. ICCDCS 2008. 7th International Caribbean Conference on, pp. 1–6, IEEE, 2008. Nicolás Nicolás, I., Técnicas de compresión de tablas de datos mediante regresiones lineales, redes neuronales y sistemas fuzzy, 2008. Noriega del Castillo, M., Implementación de un sistema de control digital de la velocidad de un motor dc utilizando redes inalámbricas, 2011. 160 BIBLIOGRAFÍA Obaid, Z. A., N. Sulaiman, and M. Hamidon, Developed method of fpga-based fuzzy logic controller design with the aid of conventional pid algorithm, Australian Journal of Basic and Applied Sciences, 3(3), 2724–2740, 2009. Obaid, Z. A., S. A. A. Salman, H. I. Ali, N. Sulaiman, M. Marhaban, and M. Hamidon, Design of pso-based optimal/tunable pid fuzzy logic controller using fpga, Edited by Clara M. Ionescu, p. 197, 2011. Ogata, K., Ingeniería de control moderna, Pearson Educación, 2003. Ortiz, F., and W. Y. Liu, Modelado y control pd-difuso en tiempo real para el sistema barraesfera, México, DF, 2004. Pantoja-Laces, W. A., Controlador pid difuso implementado con lógica reconfigurable, in Congreso Nacional de Ingeniería Eléctrica y Electrónica del Mayab (CONIEEM), Marzo 2013. Pantoja-Laces, W. A., Variable speed control based on multiplexing dc and stepper motors, in 4ta Jornada Informática JINF-2011, Octubre 2011. Passino, K. M., and S. Yurkovich, Fuzzy control, Citeseer, 1998. Pedrycz, W., Fuzzy control and fuzzy systems (2nd, Research Studies Press Ltd., 1993. Poorani, S., T. U. Priya, K. U. Kumar, and S. Renganarayanan, Fpga based fuzzy logic controller for electric vehicle, Journal of The Institute of Engineers, Singapore, 45(5), 1–14, 2005. Pérez, M. A., Introducción a los sistemas de control y modelo matemático para sistemas lineales invariantes en el tiempo, 2008. Rivas, J. R. R., Análisis y diseño de controladores basados en lógica difusa, 2005. Rodríguez, F. O., and W. Y. Liu, Modelado y control pd-difuso em tiempo real para el sistema barraesfera, Master’s thesis, Universidad de Mexico, 2004. BIBLIOGRAFÍA 161 Romero, L., Construccion de mapas y localización de robots móviles: un enfoque probabilista, Master’s thesis, Instituto Tecnologico y de Estudios Superiores de Monterrey, Campus Cuernavaca, 2001. Sanchez, E. C. M., Controle por aprendizado acelerado e neuro-fuzzy de sistemas servohidráulicos de alta frequência, Ph.D. thesis, Dissertaçao de Mestrado. Departamento de Engenharia Elétrica. Rio de Janeiro: Pontifıcia Universidade Católica do Rio de Janeiro, 2009. Sonoli, S., and N. R. Konduru, Implementation of fpga based pid controller for dc motor speed control system, Sensors & Transducers, 114(3), 2010. Sulaiman, N., Z. A. Obaid, M. Marhaban, and M. Hamidon, Fpga-based fuzzy logic: design and applications–a review, IACSIT International Journal of Engineering and Technology, 1(5), 491–503, 2009. Suárez., C. A. E., Diseño de un sistema de seguimiento de trayectorias para un robot móvil, Master’s thesis, Universidad Michoaacana de San Nicolás de Hidalgo, 2006. Toloza, E. R. M., Diseño de un control pi para un motor de corriente continua, Tech. rep., Universidad Pontificia Bolivariana, 2011. Trimeche, A., A. Sakly, A. Mtibaa, and M. Benrejeb, Pid control implementation using fpga technology, in Design and Test Workshop, 2008. IDT 2008. 3rd International, pp. 341–344, IEEE, 2008. Vallejo, M. L., and J. A. Rodrigo, Fpga: Nociones básicas e implementación, Laboratorio de Diseño Microelectrónico, 4 Curso, P94, 2004. Varela Rincón, J., and J. E. Loaiza Pulgarín, Reconocimiento de palabras aisladas mediante redes neuronales sobre fpga, 2008. Wang, L.-X., Adaptive fuzzy systems and control- design and stability analysis(book), Englewood Cliffs, NJ: PTR Prentice Hall, 1994., 1994. 162 BIBLIOGRAFÍA Wang, L.-X., and J. M. Mendel, Fuzzy basis functions, universal approximation, and orthogonal least-squares learning, Neural Networks, IEEE Transactions on, 3(5), 807–814, 1992. Zurita-Bustamante, E. W., J. Linares-Flores, E. Guzmán-Ramírez, and H. Sira-Ramirez, A comparison between the gpi and pid controllers for the stabilization of a dc–dc ŞbuckŤ converter: A field programmable gate array implementation, Industrial Electronics, IEEE Transactions on, 58(11), 5251–5262, 2011.