Análisis y comparación de sistemas de control PID y PID

Anuncio
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.
Descargar