Académique Documents
Professionnel Documents
Culture Documents
Campus Tehuantepec
Tesis presentada para obtener el ttulo de
Ingeniero en Computacin
Ttulo de la tesis:
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
III
El anlisis realizado en este trabajo esta basado referente a los siguientes parmetros:
el tiempo de respuesta, comportamiento ante ruido y recursos hardware utilizados.
El anlisis y las comparaciones estarn basados en los siguientes rubros:
El anlisis del comportamiento ante ruido se realiza tanto para los controladores en softwa-
re como en los de hardware, este anlisis se realiza comparando la seal sin ruido contra la
seal con ruido y la seal con ruido con la seal de referencia, obteniendo el error cuadr-
tico medio y el error promedio.
Se toman en cuenta las arquitecturas del PID y PID difuso para distintos dispositivos FP-
GAs, esto con el fin de conocer en que dispositivo conviene implementarlo.
Adems, este trabajo busca brindar bases en la toma de decisiones de los diseadores
al desarrollar sistemas de control clsicos como el PID e inteligentes como el PID difuso,
as como tambin en plataforma software y hardware.
IV
Agradecimientos
A Dios.
Por haberme permitido llegar hasta este punto y haberme dado salud para lograr mis
objetivos, adems de su infinita bondad y amor.
A mis padres.
Juan Pantoja Barbosa y Antonia Laces Hernndez, por mostrarme con paciencia, amor
y comprensin el camino hacia la superacin por medio del conocimiento.
A mis hermanos.
Juan Pantoja Laces y Briseida Pantoja Laces, por estar conmigo en mi formacin aca-
dmica.
A mis familiares.
Porque gracias a su apoyo y consejos he llegado a realizar una de mis metas pro-
fesionales. En especial a mis tas Claudia Pantoja Barbosa, Eustolia Pantoja Barbosa y
Minerva Pantoja Barbosa.
V
A mi director de tesis.
Dr. Ignacio Algredo Badillo por su gran apoyo y motivacin para la culminacin de
mis estudios profesionales y para la elaboracin de esta tesis; por su tiempo compartido y
por impulsar el desarrollo de mi formacin profesional.
A mis profesores.
Que durante toda mi carrera han aportado con un granito de arena a mi formacin,
en especial a M.C. Sergio Jurez Vzquez, M.A.G.N. Silvia Reyes Jimnez, M.C. J. Jess
Arellano Pimentel por sus consejos y su enseanza.
A mis amigos.
Benito, Sergio, Rodolfo, Fajardo, Laurencio, Jos Roberto, Salvador, Francisco Javier,
Luis y los dems miembros de la banda que han estado conmigo y que los considero muy
buenos amigos.
<Rabindranath Tagore>
VI
ndice general
Resumen III
Agradecimientos V
1. Introduccin 1
1.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Justificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2. Objetivos especficos . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Hiptesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5. Alcances y metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.2. Metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2. Marco terico 11
2.1. Sistemas de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1. Motores de Corriente Directa . . . . . . . . . . . . . . . . . . . . . 17
2.2. Controladores clsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 lingsticas . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.2. Conjuntos clsicos o duros y conjuntos difusos . . . . . . . . . . . 24
2.3.3. Funciones de pertenencia . . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Sistemas difusos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1. Diseo 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. Lgica 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. Tecnologas de programacin . . . . . . . . . . . . . . . 45
2.5.2.3. Fabricantes de FPGAs . . . . . . . . . . . . . . . . . . . 46
2.5.2.4. Componentes de FPGAs . . . . . . . . . . . . . . . . . . 47
3. Antecedentes 49
3.1. Control clsico en software . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2. Control inteligente en software . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3. Control clsico en hardware . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4. Control inteligente en hardware . . . . . . . . . . . . . . . . . . . . . . . 54
3.5. Discusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
VIII
5. Resultados 101
5.1. Respuesta en la salida de los controladores . . . . . . . . . . . . . . . . . . 101
5.1.1. Seales de respuesta de los controladores PID y PID difuso desa-
rrollados en software . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.1.2. Seales de respuesta de los controladores PID y PID difuso desa-
rrollados en hardware . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.2. Clculo de error y comportamiento ante ruido . . . . . . . . . . . . . . . . 109
5.2.1. Clculo 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. Comparacin con otros trabajos . . . . . . . . . . . . . . . . . . . . . . . 130
6. Conclusiones 133
IX
Bibliografa 157
X
ndice de cuadros
XI
5.18. Tiempos y Sobreelongacin 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 Sobreelongacin 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 Sobreelongacin del controlador PID difuso en la arquitectura 3 130
5.23. Comparacin PID con otros trabajos relacionados usando tecnologa Spartan 130
5.24. Comparacin PID difuso con otros trabajos relacionados usando tecnologa
Spartan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.25. Comparacin PID difuso con otros trabajos relacionados usando tecnologa
Virtex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
XII
ndice de figuras
XIII
4.4. Operacin Integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5. Controlador PID implementado en hardware . . . . . . . . . . . . . . . . 61
4.6. Diagrama del controlador PID difuso con la planta . . . . . . . . . . . . . 62
4.7. Funcin 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. Funcin de salida ajustada . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.17. Interfaz de ingreso de las reglas Si-entonces . . . . . . . . . . . . . . . . . 75
4.18. Exportacin del sistema difuso al workspace de MatLab . . . . . . . . . . 75
4.19. PID difuso implementado en Simulink de MatLab . . . . . . . . . . . . . . 76
4.20. Importacin de la variable PIDfuzzy2 . . . . . . . . . . . . . . . . . . . . . 76
4.21. Etapas del mdulo difuso a desarrollar en hardware . . . . . . . . . . . . . 77
4.22. Paso de parmetros desde el editor de MatLab . . . . . . . . . . . . . . . . 78
4.23. Variables en workspace de MatLab . . . . . . . . . . . . . . . . . . . . . . 79
4.24. Representacin grfica de las variables en workspace . . . . . . . . . . . . 80
4.25. Fuzzificacin con paso de parmetros . . . . . . . . . . . . . . . . . . . . 81
4.26. Mdulo fuzzificacin1 de la entrada determinada por el error . . . . . . . . 82
4.27. Selector de activacin del mdulo fuzzificacin1 . . . . . . . . . . . . . . . 83
4.28. Mdulo de fuzzificacin2 de la entrada determinada por la derivada del error 84
4.29. Selector_de_activacin de la etapa 2 de fuzzificacin . . . . . . . . . . . . 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. Submdulos llamados selector de reglas de salida . . . . . . . . . . . . . . 88
4.33. Implementacin individual de una regla . . . . . . . . . . . . . . . . . . . 89
4.34. Bloque de reglas para cada conjunto de salida . . . . . . . . . . . . . . . . 90
XIV
4.35. Mtodo Root Sum Square . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.36. Mtodo del centroide o centro de rea . . . . . . . . . . . . . . . . . . . . 92
4.37. Etapas del mdulo PD difuso para arquitectura 1 y 2 . . . . . . . . . . . . 93
4.38. Diagrama final de la arquitectura 1 . . . . . . . . . . . . . . . . . . . . . . 93
4.39. Bloques selector de activacin con y sin paso de parmetros . . . . . . . . 94
4.40. Diagrama final de la arquitectura 1 . . . . . . . . . . . . . . . . . . . . . . 95
4.41. Eliminacin del mtodo RSS . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.42. Defuzzificacin con tres entradas . . . . . . . . . . . . . . . . . . . . . . . 96
4.43. Defuzzificacin con nueve entradas . . . . . . . . . . . . . . . . . . . . . 97
4.44. Etapas del mdulo PD difuso para arquitectura 3 . . . . . . . . . . . . . . 98
4.45. Diagrama final del PID difuso . . . . . . . . . . . . . . . . . . . . . . . . 98
XV
5.20. Diagrama PID difuso con ruido en hardware . . . . . . . . . . . . . . . . . 121
5.21. Respuesta del PID difuso con ruido en hardware . . . . . . . . . . . . . . . 122
XVI
Captulo 1
Introduccin
1
2 CAPTULO 1. INTRODUCCIN
ms utilizados. Existen una gran variedad de controladores de lazo cerrado, pero en parti-
cular el controlador clsico ms usado es el denominado controlador PID (Proporcional-
Integral-Derivativo) (Noriega del Castillo, 2011). ste se usa para controlar diversos siste-
mas como hornos, motores de CD (Corriente Directa), entre otros (Castillo, 2009; Farid
and Faruq, 2008; Kamalasadan and Hande, 2004).
En esta investigacin se abordar el control de los sistemas utilizando lgica reconfi-
gurable, cuya planta es representada por motores de CD perteneciente a un robot mvil
del Cuerpo Acadmico de la ingeniera en Computacin de la universidad del Istmo cu-
yo 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 ms empleado en este tipo
de control, en general, existen procesos reales donde estos controladores tienden a deses-
tabilizarse 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 re-
ajustados para las nuevas condiciones de operacin o funcionamiento de esos sistemas ante
la prdida de funcionalidad para controlar de manera adecuada. Actualmente se estudian
nuevos mtodos y mejoras a los mtodos clsicos para mejorar el rendimiento tanto en
tiempo de respuesta, recursos utilizados y mantenimiento a largo plazo sin la necesidad de
estar reajustndolos. Estos mtodos estn basados en Inteligencia Artificial (IA) y algunas
permiten un reajuste automtico como si lo hiciera un humano experto en la sintonizacin
de controladores.
El campo de la IA est todava en etapas de crecimiento comparadas con otras ramas de
la computacin, 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 mquinas capaces de jugar ajedrez. De esta
manera, entre uno de sus objetivos, la IA busca seguir creando mquinas capaces de facilitar
ciertas labores de los humanos, logrando as que la tecnologa tenga un avance mucho
mayor, adems de otros beneficios en ramas de la ciencia como computacin, medicina,
biologa, etc.
La inteligencia artificial se divide en diferentes reas: deduccin y demostracin au-
tomtica de teoremas, resolucin de problemas, mtodos de control y bsqueda, juegos,
3
bajo plataforma software no cumplen en su totalidad con este requisito debido su paradigma
de programacin secuencial. Por lo que en este trabajo se estudia el uso de plataforma hard-
ware usando lgica reconfigurable (uso de FPGAs) como opcin para desarrollar sistemas
eficientes y con un alto desempeo en velocidad de clculo, aprovechando el procesamiento
paralelo que ofrecen las arquitecturas hardware.
Por otra parte, cuando se desarrollan controladores, el establecer qu diseo es el ms
adecuado para una aplicacin resulta una tarea complicada, ya que se tendra que imple-
mentar una gran cantidad de controladores para despus para analizarlos y compararlos, lo
cual demandara tiempo y esfuerzo. De manera que, contar con un estudio realizado con un
anlisis en la seal de respuesta (Sw-Hw), respuesta ante ruido (Sw-Hw) y recursos utili-
zados (Hw) de los controladores resulta beneficioso, pues brinda conocimiento preliminar
til en el desarrollo de sistemas de control.
En este trabajo se abordar el anlisis y comparacin de controladores PID y PID difu-
so aplicados en el control de una planta que representada por motores de corriente directa.
El problema del PID, es que dadas las caractersticas 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 clsicos como el PID. La bsqueda y la investiga-
cin realizada apuntan al uso de IA, por ejemplo al uso lgica difusa, ya que sta se adapta
mejor al entorno y permite interpretar expresiones de la vida cotidiana, adems brinda una
repuesta rpida y precisa, disminuyendo las transiciones de estados fundamentales del en-
torno, por lo que combinado con un controlador PID da lugar al controlador PID difuso.
1.2. Justificacin
Los controladores inteligentes como los difusos requieren algunos clculos que son
complejos y, en aplicaciones que requieran un buen desempeo en tiempo, llegan a tener
complicaciones con el nmero de clculos por segundo. Por lo que se buscan tecnologas de
alto desempeo que ayuden a solventar este tipo de problemas, en este trabajo se emplear
1.3. OBJETIVOS 7
1.3. Objetivos
En esta seccin se menciona el objetivo general del trabajo de investigacin y los obje-
tivos especficos que se esperan cumplir.
Simular el controlador PID clsico y el controlador PID difuso con una misma planta
representada con un motor de CD, la simulacin se realizar bajo plataforma software
y hardware.
1.4. Hiptesis
El anlisis y comparacin de sistemas de control PID y PID difuso en lgica reconfi-
gurable es una contribucin en el conocimiento y toma de decisiones tiles en el diseo de
sistemas de control, por ejemplo en motores de CD en sillas ruedas y robots mviles.
El desarrollo en lgica reconfigurable de los controladores PID clsico y PID difuso
tendrn mejores prestaciones en referencia con sus similares desarrollados en software.
1.5. ALCANCES Y METAS 9
1.5.1. Alcances
Los sistemas de control estn limitados al control de velocidad angular de motores de
corriente directa caracterizados en (Surez., 2006). De este trabajo se extrae la slo
la funcin de transferencia que representa los motores.
1.5.2. Metas
Obtener nuevas arquitecturas hardware que estn orientadas al control de motores de
CD.
Evaluar las respuestas de los sistemas de control PID clsico y PID difuso usando
lgica reconfigurable, tomando en cuenta la respuesta en tiempo, recursos usados y
comportamiento ante ruido.
Comparar el mtodo de control PID clsico con el mtodo PID difuso con lgica
reconfigurable.
Marco terico
Debido a que este proyecto se relaciona con el control de sistemas por medio de m-
todos clsicos e inteligentes y lgica reconfigurable, se presenta a continuacin el marco
terico con el fin de establecer las bases tericas para el desarrollo de este proyecto.
11
12 CAPTULO 2. MARCO TERICO
Planta se designa a cualquier objeto fsico que pueda ser controlado. Ejemplos de
plantas son el motor, automviles, aviones, electrodomsticos, equipo militar, equipo
mdico, 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 operacin que
se vaya a controlar. Ejemplos de procesos son: qumicos, econmicos, biolgicos,
etc.
Los sistemas de control, segn la topologa, se pueden clasificar en los que se denominan
control de lazo abierto y control de lazo cerrado.
2.1. SISTEMAS DE CONTROL 13
Entrada de
Seal de control Seal controlada
referencia Controlador Planta
seal de error del sistema; esta seal es la que acta sobre el sistema para llevar la salida
a un valor deseado. En otras palabras, el trmino lazo cerrado implica el uso de accin de
retroalimentacin negativa para reducir el error del sistema.
Entrada de +
referencia Convertidor Digital/
Computadora Planta
Analgico
-
Convertidor
Analgico/ Digital
Perturbacin
r(t) e(t) y(t)
m(t)
Regulador o Planta
Amplificacin
Actuador controlada
- b(t)
Elemento de
medicin o bloque
de realimentacin
El estator, el cual le brinda estabilidad al dispositivo dado que mantiene una posicin
fija, puede estar devanado o tener imanes permanentes dentro de ste.
Una forma de clasificar a los motores de CD segn la excitacin de su campo magntico es:
excitacin serie, excitacin paralelo y excitacin independiente (Romero, 2001). Sin em-
bargo la caracterstica de los dos primeros son no lineales, de manera que para aplicaciones
de control el ms usado es el motor de excitacin independiente.
En este proyecto se hace uso de un motor de CD, el cual es parte de un robot mvil
denominado ROCA, desarrollado en (Romero, 2001) y tambin usado en (Surez., 2006).
Los motores de este robot mvil descrito en este trabajo son de la marca Pittman de CD a 24
volts de la serie GM9000. En la actualidad se cuenta fsicamente con este robot mvil, ya
que es parte del proyecto del Cuerpo Acadmico de la Ingeniera en Computacin (CAIC)
en la Universidad del Istmo campus Tehuantepec, ese es el motivo de su utilizacin ya que
cumple con la caracterstica de ser un sistema real. Para obtener el comportamiento, se
hace uso del documento de (Surez., 2006), en el cual se realiz el modelado del motor de
corriente directa. De este estudio realizado se toma la funcin de transferencia para trabajar
en esta tesis, la funcin de transferencia se presenta en la ecuacin 2.2.
18 CAPTULO 2. MARCO TERICO
(S) KT
G(S) = = 2 (2.1)
Va (S) S Jm La + S (Jm Ra + DLa ) + DRa + KT KE
Donde
Jm es la inercia del rotor.
La es la inductancia del motor.
Ra es la resistencia del motor.
D es el coeficiente de friccin 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 especificacin, ver apndice la ecuacin de
transferencia es:
Tiempo de retardo td
Tiempo de subida tr
Tiempo pico t p
2.2. CONTROLADORES CLSICOS 19
Tiempo de asentamiento ts
Z t
kp
u(t) = k p e(t) + e(t) dt (2.7)
I 0
1
U(S) = k p 1 + E(S) (2.8)
I S
en control, en este proyecto se realiza control difuso ya que se combina la lgica difusa y
el control automtico.
entregan palabras como salidas, las cuales se transmiten a las variables lingsticas, estas
ltimas transforman descripciones vagas en lenguaje natural a trminos matemticos pre-
cisos (Passino and Yurkovich, 1998), por lo que las variables lingsticas son adecuadas
cuando se disean e implementan sistemas difusos ya que cada una puede representar un
conjunto difuso o una equivalencia matemtica representada por una funcin de pertenen-
cia basada en el lenguaje humano.
La funcin de pertenencia asociada a los conjuntos concretos slo pueden tener dos
valores: 0 o 1, mientras que en los conjuntos difusos pueden tener cualquier valor
entre el intervalo cerrado 0 y 1.
Funcin triangular
Donde a, b y c representan la coordenada del eje horizontal de los vrtices del triangulo
formado.Un ejemplo de una funcin triangular usando el software MatLab es mostrada en
la Figura 2.6
26 CAPTULO 2. MARCO TERICO
Funcin trapezoidal
Donde a, b, c y d representan la coordenada del eje horizontal de los vrtices del trape-
cio formado. Un ejemplo de la funcin trapezoidal usando el software MatLab, se ve en la
Figura 2.7.
2.3. CONTROL DIFUSO 27
Funcin Gaussiana
1 xc 2
gaussiana (x; , a) = e 2 ( ) (2.13)
Figure 2.8: Funcin Gaussiana en MatLab con la funcin gaussmf(x, [0.5 5])
Funcin campana
1
campana (x; a, b, c) = (2.14)
1 + | xc
a |
2b
Este tipo de reglas componen lo que se denomina base de reglas del sistema, donde
las palabras baja y ms tienen asociadas funciones de pertenencia. Un sistema difuso
est construido de un conjunto de reglas difusas. En resumen, el punto de inicio para la
construccin de un sistema difuso es obtener una coleccin de reglas difusas de la forma
Sientonces de expertos humanos en base a su conocimiento y experiencia (Wang and
Mendel, 1992).
Este sistema difuso es el ms usado cuando se trabaja con la metodologa fuzzy y fue uno
de los primeros sistemas de control que utiliz conjuntos difusos. El mtodo de Mamdani
fue propuesto en 1975 por Ebrahim Mamdani (Nicols Nicols, 2008) y est compuesto de
los elementos mostrados en la Figura 2.11.
Base de reglas
A continuacin se describe cada elemento que conforma a este tipo de sistema difuso
para dar una mejor idea de la interpretacin de este sistema.
Fuzzificacin
Base de reglas
Si A es B entonces C es D
2.4. SISTEMAS DIFUSOS 33
Interpretando la expresin, se observa que la relacin difusa est definida en los do-
minios de las variables lingsticas A y C por lo que el grado de verdad de la implicacin
es:
En donde el operador puede ser un simple producto cartesiano o algn operador de im-
plicacin difuso. Si el antecedente o el consecuente son proposiciones compuestas, enton-
ces se calcula primero la funcin de pertenencia de la proposicin compuesta y el operador
es aplicado a las funciones de pertenencia resultantes. Por lo que cualquier operacin o re-
lacin en lgica 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 mtodo 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):
Antecedente Consecuente
Defuzzificacin
un defuzzificador. Los mtodos ms empleados para defuzzificar son los basados en centro
de rea, centro de sumas, altura, medio del mximo, etc. A continuacin se describirn
algunos mtodos usados en la lgica difusa.
l
fi ( fi)
i=1
fCOA = (2.17)
l
( 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 procedi-
miento de inferencia. Este mtodo es el ms 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 numrico 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 parmetros en los rangos de los conjuntos.
PondA = 0,8
36 CAPTULO 2. MARCO TERICO
PondB = 0,7
PondC = 0,5
Estos mtodos de defuzzificacin utilizan el valor mximo del conjunto total resultante.
Ms largo del mximo (LOM) utiliza el valor mximo, el ms pequeo (SOM) utiliza
2.4. SISTEMAS DIFUSOS 37
el valor mnimo y el promedio (MOM) utiliza el valor medio entre SOM y LOM. Si el
conjunto resultante posee un solo valor mximo, entonces los tres valores son iguales pero
si posee un intervalo de valores mximos estos valores son distintos.
Para realizar este mtodo se cuenta con tres funciones A, B y C de pertenencia que
representan conjuntos de salida, los cuales tiene los siguientes parmetros en los rangos de
los conjuntos.
PondA = 0,8
PondB = 0,7
PondC = 0,5
SOM = 0,2
MOM = 0,275
LOM = 0,35
Biseccin
Consiste en encontrar el punto para el cual, si se traza una lnea vertical, el conjunto resul-
tante queda dividido en dos regiones cuyas reas son iguales, ver Figura 2.16.
Para calcular el rea de las regiones se pueden emplear cualquier mtodo matemtico
que mas convenga, el mtodo de la biseccin no se restringe a una sola frmula.
Los sistemas tipo Sugeno se pueden utilizar para cualquier modelo en el que las funcio-
nes de pertenencia de salida sean lineales o constantes (Nicols Nicols, 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 continuacin.
Antecedente Consecuente
En los sistemas difusos tipo Sugeno, los valores obtenidos de los consecuentes de las dife-
rentes reglas que se han activado ya son valores numricos, por lo que no se necesita una
etapa de defuzzificacin.
kde ki
u(t) = e + de + ie ke ku (2.20)
ke ke
Por otro lado, la ecuacin 2.21 representa al controlador PID ideal:
de 1
Z
u(t) = e + d + e dt (2.21)
dt I
Se puede observar semejanzas entre las ecuaciones 2.20 y 2.21, de la comparacin entre
ellas surge la ecuacin 2.22, 2.23 y 2.24.
k p = ke ku (2.22)
d = kde ke (2.23)
1 ki
= (2.24)
I ke|
Cabe aclarar que el ajuste de los controladores difusos tambin se ven afectados por los
valores de las funciones de pertenencias por lo cual queda a conocimiento del diseador
una sintonizacin adecuada tomando las funciones de pertenencia y las ganancias de los
controladores.
Comnmente la estructura de lgica 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
fuzzificacin, inferencia y defuzzificacin. Algunos clculos son complejos y, en aplica-
ciones que requieran un buen desempeo en tiempo, llegan a tener complicaciones con el
nmero de clculos por segundo. Por lo que se busca tecnologas de alto desempeo que
ayuden a solventar este tipo de problemas, una de estas tecnologas es la lgica reconfigu-
rable, sta se basa en el uso de dispositivos reprogramables como los FPGAs, los cuales
proporcionan un alta capacidad de clculo por lo que mejora en tiempo gran cantidad de
procesos.
42 CAPTULO 2. MARCO TERICO
Se observa que las mejores prestaciones la proporciona un diseo full-custom pero tiene
un costo elevado y una gran complejidad de diseo. Por otro lado, un diseo en software
es ms barata econmicamente y flexible, sin embargo en algunos casos no puede alcanzar
prestaciones altas.
Las otras dos opciones estn caracterizadas por la fabricacin de un sistema digital rea-
lizado mediante un diseo semi-custom, utilizando ya sea clulas estndar o un dispositivo
que se programe como son los FPGAs.
Los dispositivos programables constituyen una buena oferta para realizar diseos elec-
trnicos digitales con un buen compromiso costo-prestaciones y permiten obtener una im-
plementacin en un tiempo de diseo corto.
44 CAPTULO 2. MARCO TERICO
A continuacin se describirn las principales ventajas que se tienen al usar los FPGAs.
Rendimiento
Debido al paralelismo del hardware, los FPGAs exceden la potencia de cmputo de los
procesadores digitales de seales (DSPs), logrando romper el paradigma de ejecucin se-
cuencial y logrando ms en cada ciclo de reloj.
se verifica en hardware sin tener que pasar con el proceso de fabricacin de ASIC, adems
se puede implementar cambios en pocos lapsos de tiempo.
Precio
Fiabilidad
Los FPGA se pueden actualizar cuando ya han sido implementados y no requieren el tiem-
po y el precio que implica redisear un ASIC. Los FPGA, al ser reconfigurables, son capa-
ces de mantenerse al tanto con modificaciones a futuro que pudieran ser necesarias. Mien-
tras el producto o sistema se va desarrollando, se puede implementar mejoras funcionales
sin la necesidad de invertir tiempo rediseando el hardware o modificando el diseo de la
tarjeta.
gran cantidad de veces. Tambin se pueden utilizar para programar las lneas de control de
los multiplexores. Estos multiplexores se utilizan tanto en Flip-Flop tipo D como en los
LUTs. Los LUTs son unas pequeas memorias que poseen varias funciones lgicas. Estos
elementos se pueden comportar como cualquier funcin lgica dependiendo de las lneas
de control.
6. Del mismo modo para la Virtex, comenzando con Virtex, Virtex-E, Virtex 2, Virtex 4,
Virtex 5 y la reciente Virtex 6. Tambin, actualmente se ha estado innovando con nuevas
familias de FPGA como lo son Artix y Kintex.
Antecedentes
49
50 CAPTULO 3. ANTECEDENTES
El uso de la lgica 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 mtodo de inferencia de Mamdani. Se especifica el conocimiento en forma
de reglas lingsticas, estas reglas estn 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 comparacin a un PID clsico explicado en el mismo trabajo.
Por otra parte, los controladores PID pueden ser mejorados con el uso de control de
lgica difusa como en (Morata Palacios, 2009) en el cual se desarroll una implementacin
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 mtodo difuso,
siempre tomando en cuenta la relacin de estabilidad, precisin y velocidad de respuesta.
Otra investigacin es mostrada en (Rodrguez and Liu, 2004), presentando una imple-
mentacin 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 posicin peque-
o comparado con el control clsico PD, donde el control difuso se utiliza como trmino
compensador de efectos gravitacionales y otras no linealidades.
Un trabajo similar es (Moreno et al., 2006), el cual presenta el diseo de un controla-
dor PID difuso, a partir de la sintona de un controlador PID convencional; este proceso de
control es para la regularizacin del proceso de activacin del carbn en un horno rotatorio.
Los resultados obtenidos fueron que el controlador PID difuso presenta oscilaciones ms
leves en la respuesta ante los cambios de escaln y en las variaciones ante las perturbacio-
nes, en cambio, el PID clsico exhibi un tiempo de levantamiento menor ante el cambio
escaln en la referencia.
Por ltimo, en (Garrido et al., 2006) proponen un control proporcional con una tcnica
de compensacin adaptativa basada en lgica difusa. El enfoque se basa principalmente en
3.3. CONTROL CLSICO EN HARDWARE 53
Description Language) para el FPGA Spartan 3 XC3S400. Esta aplicacin est basada
en un controlador PID para el control de velocidad de motor de corriente continua. Las
herramientas utilizadas para crear y probar los mdulos 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 ms veloces y precisos que otra forma de implementacin
digital como los microprocesadores y microcontroladores.
Por ltimo, en (Murthy et al., 2008) se realiza una implementacin FPGA de un con-
trolador PID, el cual se aplic en vehculos terrestres no tripulados. El desarrollo de este
trabajo se realiz con una herramienta adicional de Simulink llamada System Generator
(SysGen), esta herramienta segn el autor hace fcil el diseo y la implementacin de sis-
temas digitales por su alto nivel de abstraccin. Se considera importante esta herramienta,
ya que en este trabajo de tesis se har uso de ella ya que es una rpida 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 implementacin de arquitecturas hardware. Tambin, la descripcin
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 seccin.
3.5. Discusin
En esta bsqueda de trabajos relacionados se han encontrado algunos trabajos de lgica
difusa con FPGA, por lo que se espera que en un futuro exista una documentacin ms
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 investigacin se conclu-
ye que existen diversas maneras de realizar control de sistemas, en especfico, controlar
motores de CD. El trabajo relacionado ha establecido las bases que ayudarn a analizar
y realizar controladores en software y hardware de manera clsica y usando lgica difu-
sa. Asimismo, el trabajo relacionado facilitar la implementacin de nuevas arquitecturas
hardware proporcionando conocimiento previo y experiencia de otros autores.
Captulo 4
Una vez establecidos los fundamentos tericos de los sistemas de control clsico y los
sistemas de control inteligente y conocidos los trabajos similares que se han realizado en
el campo de control clsico e inteligente, se procede a disear y desarrollar controladores
para motores de CD.
Para realizar el control de motores de CD se establece la realizacin de dos controlado-
res:
PID
PID difuso.
57
58 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
anteriormente mencionado (verB apndice B). SysGen cuenta con una opcin llamado Ti-
ming and Power Analisis, que genera un reporte de tiempos en donde muestra el periodo
mnimo y la frecuencia mxima de operacin 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 diseo y desarrollo de los controladores PID
y PID difuso primeramente en software y posteriormente en hardware.
Seal de control
Entrada de Seal de error Gp P
+
referencia + + Seal controlada
Gi I Planta
- +
Gd D
Seal
retroalimentada
Retroalimentacin
Figura 4.1: Diagrama esquemtico del controlador PID conectado a una planta.
0.0645
Gain1
4.58e-2
du/dt 0.0005 18.67e-9s2 +17.68e-6s+2.10e-3 Scope2
1
3
s
Integrator1 Gain3
n
Integralerror = ie = errori (4.2)
i=0
1 In1
Operacin Deriv ada
Error Derivada del
a error = de
a -b 1
b Out1
d z-1 q AddSub5
Error
anterior
Register1
Por otra parte, para el clculo de la integral en lgica reconfigurable se necesita la seal
del error solamente, sta se retroalimenta en un sumador para que realice una sumatoria;
para realizar esta retroalimentacin se utiliza un registro tal como se ve en la Figura 4.4.
4.1. CONTROLADOR PID 61
Operacin Integral
Error
1 a Integral del error = ie
In1 a+b 1
b Out1
AddSub2
Register2
Convert4
cast q z-1 d
ie
previo
El diagrama completo es mostrado en la Figura 4.5, ntese que las tres acciones (P, I
y D), estn afectadas por una ganancia cada una. Por otro lado se resalta el uso del bloque
cast (bloque de SysGen) que sirve para establecer un tamao fijo de bits en las entradas
de los sumadores y la consecuencia de no usarlos es que el tamao de bits en la entrada
crecera con cada retroalimentacin, por lo cual no se tendra una arquitectura fija.
PROPORCIONAL
x 0.01199 cast
a
Convert a+b Scope2
INTEGRAL CMult
b
AddSub1
In a a Gateway Out
a+b x 0.009995 cast a a+b 4.58e-2
Gateway In a-b b Out
Step b 18.67e-9s2 +17.68e-6s+2.10e-3
b AddSub2 Convert1
AddSub3
q
cast q z-1 d
DERIVATIVO
a
a-b x 0.004501 cast
d z-1 q b
Convert2
Register1 AddSub5 System
CMult1 Generator
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 seal de entrada y
los valores de las ganancias hasta obtener la seal de salida deseada.
62 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
Seal de
e Ke E
control Seal
u U controlada
Ku
PD RULES Planta
ce CE
Kde
Z-1
ie IE
Ki
Z-1
Seal
retroalimentada
Retroalimentador
xa
ma a<x<m
bx
m<x<b
bm
triangular (x, p1 , p2 , p3 ) = (4.3)
0 x<aox>b
1 x=m
Entradas y salidas
Los controladores difusos comnmente hacen uso de la informacin 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 ms simples y fciles de implementar compu-
tacionalmente. Adems, se establece la funcin 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 ms sencillo, as
tambin el costo computacional al implementarlas es aceptable.
Las variables de entrada E y CE, y la variable de salida O se conformarn cada una por
tres conjuntos: negativo (N), cero (Z) y positivo (P). Inicialmente se establecen los mismo
64 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
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 operacin para
obtener una respuesta satisfactoria.
Fuzzificacin
Por tal motivo, las siguientes frmulas servirn para las dos entradas. Para el conjunto
difuso que representa N se utiliza la ecuacin 4.4; para el conjunto difuso que representa Z
se utiliza la ecuacin 4.5 y 4.6, por ltimo para el conjunto P se utiliza la ecuacin 4.7.
bN x
N= (4.4)
bN mN
x aZ
Z1 = (4.5)
mZ aZ
bZ x
Z2 = (4.6)
bZ mZ
x aP
P= (4.7)
mP aP
66 CAPTULO 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.
No. E op. CE O O
1 Si NentradaE < NentradaCE entonces Nsalida = NentradaE sino Nsalida = NentradaCE
2 Si NentradaE < ZentradaCE entonces Nsalida = NentradaE sino Nsalida = ZentradaCE
3 Si NentradaE < PentradaCE entonces Zsalida = NentradaE sino Zsalida = PentradaCE
4 Si ZentradaE < NentradaCE entonces Nsalida = ZentradaE sino Nsalida = NentradaCE
5 Si ZentradaE < ZentradaCE entonces Zsalida = ZentradaE sino Zsalida = ZentradaCE
6 Si ZentradaE < PentradaCE entonces Psalida = ZentradaE sino Psalida = PentradaCE
7 Si PentradaE < NentradaCE entonces Zsalida = PentradaE sino Zsalida = NentradaCE
8 Si PentradaE < ZentradaCE entonces Psalida = PentradaE sino Psalida = ZentradaCE
9 Si PentradaE < PentradaCE entonces Psalida = PentradaE sino Psalida = PentradaCE
Una vez definidas las reglas y de saber cmo 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 ecuacin 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 raz cua-
drada; 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 tambin se analizar la no utilizacin de sta.
En este trabajo de tesis se clasifican las reglas segn el conjunto de salida determinado
por su consecuente, ver Cuadro 4.4.
q
Nsalida = R21 + R22 + R24 (4.9)
q
Zsalida = R23 + R25 + R27 (4.10)
q
Psalida = R26 + R28 + R29 (4.11)
Con cada operacin se obtiene un valor para cada conjunto de salida, sin embargo sigue
siendo un valor difuso, de manera que la defuzzificacin se hace necesaria para convertir
este valor difuso a un valor numrico.
En control, el mtodo de defuzzificacin ms usado es el centroide o centro de rea,
COA, (Sanchez, 2009), este mtodo consiste en multiplicar la fuerza ponderada de cada
funcin miembro de salida (F pi ) por los puntos centrales de su respectiva funcin (Ci ).
El resultado se divide por la suma de las fuerzas ponderadas de cada funcin miembro
de salida, ver ecuacin 4.12. Finalmente, se obtiene un nmero el cual representa el valor
ponderado en la funcin de pertenencia de salida.
N
F pi Ci
Centroide = i=1 (4.12)
N
i=1 F pi
Una vez obtenido el valor numrico de la defuzzificacin, se procede a sumar este valor
con la accin 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 opcin es realizar
el mtodo basado en la transferencia de ganancias descrito en la Seccin 2.4.2 y poste-
riormente, un reajuste usando el mtodo prueba y error de los rangos de las funciones de
pertenencia de los conjuntos de salida. Otra opcin es utilizar solamente el mtodo prueba
y error para calibrar todas las ganancias y las funciones de pertenencia, con este mtodo se
ahorra anlisis matemtico y es ms rpido de implementar, por lo que en los controladores
desarrollados en esta tesis se utiliz este mtodo prueba y error en los PID y prueba y error
ms transferencia de ganancias en los PID difusos.
4.2. CONTROLADOR PID DIFUSO 69
Una vez establecidos se establece la arquitectura del controlador difuso, ver Figura
4.11.
70 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
Proporcional
4.58e-2
Step
Scope2
18.67e-9s2 +17.68e-6s+2.10e-3
Derivativo Fuzzy Logic
Transfer Fcn1
voltajeController1
1-z-1
1
Discrete Filter
Cabe mencionar que el controlador difuso solo usa dos acciones: proporcional y deri-
vativo debido a que el uso de tres acciones genera una inferencia compleja y poco prctica.
Adems de todo lo anterior, el diagrama del controlador difuso no cuenta con ganancias en
las acciones proporcional y derivativo.
El resultado de la simulacin del controlador difuso es visto en la Figura 4.12. En donde
el valor de referencia es la funcion escalon establecido en 24.
4.2. CONTROLADOR PID DIFUSO 71
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 reali-
zar su desarrollo en software. Actualmente, existe una herramienta software especializada
que realiza clculos de la fuzzificacin, inferencia y defuzzificacin. Esta herramienta per-
mite el ingreso de las variables de entrada (en forma de funciones de pertenencia) y la
especificacin de las reglas. La herramienta software que realiza todo esto es el tool box
fuzzy de MatLab, ver Figura 4.13.
72 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
En este proyecto de MatLab se necesitan las dos variables de entrada, el error y la deri-
vada 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 73
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.
Posteriormente, se ingresaron las nueve reglas del Cuadro 4.3 como se muestra en la
Figura 4.17.
4.2. CONTROLADOR PID DIFUSO 75
Una vez definidas las reglas, el proyecto se exporta al workspace de MatLab para su
posterior utilizacin 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.
0.0645
4.58e-2
1
Step2 Gain1 18.67e-9s2 +17.68e-6s+2.10e-3
Gain Scope2
Fuzzy Logic
du/dt 0.0078 Transfer Fcn1
Controller
Derivative Gain2
1
2
s
Integrator Gain3
Igualmente, como en el desarrollo del PID en software, se hace uso de los bloques
Derivative e Integrator, cuya funcin 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.
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.
Arquitectura 1
En las lineas de cdigo 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 fuzzificacin, y
otras 3 para la variables de la salida O utilizada en la etapa de defuzzificacin, ver Figura
4.24.
80 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
Establecidos los rangos y las variables que los representan, se procede a describir los
submdulos difusos antes mencionados: fuzzificacin, base de reglas e inferencia y defuz-
zificacin.
Fuzzificacin
En el desarrollo de la parte difusa se deben disear dos mdulos de fuzzificacin, 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 mdulo
de fuzzificacin para las dos variables. Se propone una arquitectura fuzzificacin basada en
el diagrama de la Figura 4.25.
4.2. CONTROLADOR PID DIFUSO 81
Out1 [NEG]
Goto
Out2 [SEL2]
In1 Goto1
Out5 [ZERO]
Goto3
Out4 [POS]
[SEL2]
Goto2
Selector From5
de activacin
c1 In
a
sel
From Gateway In6 cast x
a-b
c1 In Workspace7
a b
1 Convert9
From Gateway In b1 In
a -b cast
In1 x AddSub2
Workspace1 NEGATIVO z -29 y/x
div
b From Gateway In7 0 d0
Convert1
a1 In Workspace8
Constant
AddSub4 z -28 y/x
div cast d a ZERO1
From Gateway In1
z-1 q 1 y
Workspace2 a-b cast
Convert2 en Out1 b1 In cast d1 d
c1 In a b
y Convert10 z-1 q 3
Gateway In2 cast Register From Gateway In8 Convert4 en
From a -b [NEG] 4 AddSub1 Out3
Workspace6 CORDIC DIVIDER2
Workspace b Convert6 Out4 Register2
From6
CORDIC DIVIDER ZERO2 cast d2
AddSub
Convert5
e1 In a d1 a
cast In
From Gateway In3 a-b cast x 0 d3
x a-b
b POSITIVO From Gateway In9 b
Workspace4 Convert7
Workspace10 Convert11 Constant1
AddSub5
c1 In c1 In AddSub7 z -29y/x
div
z -29 y/x
div cast d
Mux
From Gateway In4 From Gateway In10
z-1 q 2
Workspace5 Convert3 Workspace11
en Out2 y
a y [ZERO]
d1 In a 6
a-b cast Register1
5 cast Out6
c1 b
[POS] From Gateway In11 b a - b From1
In Out5
Convert8 Workspace9 CORDIC DIVIDER3
From Gateway In5 AddSub3 Convert12
CORDIC DIVIDER1 From7 AddSub6
Workspace3
Caso 2: El valor de x est dentro del conjunto Zsalida , se activa la operacin 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 operacin Z2 y pone
en la salida el valor de Z2 .
Caso 4: Este caso es invlido, en la arquitectura nunca se da este caso, por defecto su
salida es 0.
1 In1
a1 In a z-1 N
ab
-1 From Gateway In b
b1 In a za and 1
b Workspace1
b Z1 Relational Out1
From Gateway In1
Workspace2 and
Relational2 a z-1 Logical
b a<b
a11 In
a -1
z Logical1 Relational1
a<b From Gateway In4
b
Workspace5
c1 In Relational3 or 3
Gateway In5 Out5
From e11 In a
Logical4
Workspace6 z-1 P
From Gateway In7 a<b
c1 In a b
-1 Workspace8
z Z2
From Gateway In6 ab
b Relational4 and 4
Workspace7
Relational6 Out4
a
and z-1
hi ab Logical2
a
z-1 lo } 2
e1 In b
d1 b ab Logical3 Out2
In Gateway In3
Concat1 From Relational5
From Gateway In2 Relational7 Workspace4
Workspace3
Este mdulo 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 cdigo 01 para
84 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
la parte Z1 , por otro lado se usa el cdigo 10 para la parte de Z2 . El cdigo se crea con la
concatenacin de la salida individual de los bloques relacionales que asignan a cada parte
del conjunto Zentrada .
Una vez explicado el funcionamiento de mdulo fuzzificacin1, ste se replica con el
nombre de mdulo fuzzificacin2, para la variable de entrada determinada por la derivada
del error, ver Figura 4.28.
Out1 [NEG]
Goto
Out2 [SEL2]
In1 Goto1
Out5 [ZERO]
Goto3
Out4 [POS]
[SEL2]
Goto2
Selector From5
de activacin
c2 In
a
sel
From Gateway In6 cast x
a-b
c2 In Workspace7
a b
1 Convert9
From Gateway In b2 In
a -b cast
In1 x AddSub2
Workspace1 NEGATIVO z -29 y/x
div
b From Gateway In7 0 d0
Convert1
a2 In Workspace8
Constant
AddSub4 z -28 y/x
div cast d a ZERO1
From Gateway In1
z-1 q 1 y
Workspace2 a-b cast
Convert2 en Out1 b2 In cast d1 d
c2 In a b
y Convert10 z-1 q 3
Gateway In2 cast Register From Gateway In8 Convert4 en
From a -b [NEG] 4 AddSub1 Out3
Workspace6 CORDIC DIVIDER2
Workspace b Convert6 Out4 Register2
From6
AddSub CORDIC DIVIDER ZERO2 cast d2
Convert5
e2 In a
d2 In a
cast cast x 0 d3
From Gateway In3 a-b x a-b
Workspace4
b POSITIVO From Gateway In9 b
Convert7 Constant1
Workspace10 Convert11
AddSub5
c2 In c2 In AddSub7 z -29y/x
div
z -29 y/x
div cast d Mux
From Gateway In4 From Gateway In10
Workspace5 z-1 q 2
Convert3 Workspace11
en Out2 y
a y [ZERO]
d2 In a 6
a-b cast Register1
5 cast Out6
c2 b
[POS] From Gateway In11 b a - b From1
In Out5
Convert8 Workspace9 CORDIC DIVIDER3
Convert12
From Gateway In5 AddSub3 CORDIC DIVIDER1 From7 AddSub6
Workspace3
Figura 4.28: Mdulo de fuzzificacin2 de la entrada determinada por la derivada del error
Cabe destacar que los parmetros de entrada son los correspondientes a los rangos de la
variable de entrada CE que estn en el workspace. Tambin, como en el mdulo anterior de
fuzzificacin1, se cuenta con el bloque Selector_de_activacin en la Figura 4.29 se muestra
su diseo.
4.2. CONTROLADOR PID DIFUSO 85
1 In1
a2 In a z-1 N
ab
-1 From Gateway In b
b2 In a za and 1
b Workspace1
b Z1 Relational Out1
From Gateway In1
Workspace2 and
Relational2 a z-1 Logical
b a<b
a22 In
a
z-1 Logical1 Relational1
a<b From Gateway In4
b
Workspace5
c2 In Relational3 or 3
Gateway In5 Out5
From e22 In a
Logical4
Workspace6 z-1 P
From Gateway In7 a<b
c2 In a b
-1 Workspace8
z Z2
From Gateway In6 ab
b Relational4 and 4
Workspace7
Relational6 Out4
a
and z-1
hi ab Logical2
a
z-1 lo } 2
e2 In b
d2 b ab Logical3 Out2
In Gateway In3
Concat1 From Relational5
From Gateway In2 Relational7 Workspace4
Workspace3
Se nota que los parmetros de entrada son iguales que los valores de los rangos de la
variable de entrada CE.
Las entradas de esta etapa son las salidas de los mdulos fuzzificacin1 y fuzzificacin2
(error y derivada del error), estas entradas son seales activacin de conjuntos de entrada
y otras son los resultados de los clculos para cada funcin de pertenencia. Para esta etapa
se propone la arquitectura mostrada en el diagrama de la Figura 4.30.
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 mtodo Root Sum Square, til para obtener la ponderacin de
cada conjunto de salida.
El desarrollo en SysGen de esta etapa se muestra en la Figura 4.31, esta arquitectura cuenta
con mdulos que realizan una determinada tarea, las cuales se describirn a continuacin.
4.2. CONTROLADOR PID DIFUSO 87
[S1] In1
VALORES DE ACTIVACIN DE
LOS CONJUNTOS DE ENTRADA From36
Out1
[ENEG] In2
[ENEG] From39
7 Out1
[ENEG] In2
In7 Goto
From6
8 [EPOS] [ACTNEG1] In1 In3
[CEPOS]
In8 Goto13 From22 Out1 [S4] From7
[ACTPOS2] In2 In4
9 [EZERO] Goto15 [S5]
From23 In1
In9 Goto14 From40
[ACTZERO1] In3 In5 Out3
[EZERO] In2 Out1 2
10 [CENEG]
From24 Out2 [S5]
From8 Out2
In10 Goto3 [ACTZERO2] In3
In4 In6
Goto16 [CEZERO]
From25 ROOT SUM SQUARE1
11 [CEPOS] From9
[ACTPOS1] In5 In7
In11 Goto4 [S6]
From26 Out3 [S6]
From41
12 [CEZERO] [ACTNEG2] In6 In8
Goto17 [EPOS] Out4
In12 Goto5 From27
Subsystem1 From10
[CENEG] In9
From11
REGLAS DE CONJUNTO DE SALIDA Z
SELECTOR DE REGLAS ACTIVAS
CONJUNTO DE SALIDA Z
[S7] In1
From42 Out1
[EZERO] In2
[ACTNEG1] [ACTNEG1]
From18 and [S1] From22 and [S4]
[ACTNEG2] [ACTPOS2]
Goto12 Goto15
From19 From23
Logical Logical2
[ACTNEG1] [ACTZERO1]
From20 and [S2] From24 and [S5]
[ACTZERO2] [ACTZERO2]
Goto1 Goto16
From21 From25
Logical1 Logical3
[ACTZERO1]
[ACTPOS1]
From34 and [S3]
From26 and [S6]
[ACTNEG2]
Goto2 [ACTNEG2]
From35 Goto17
Logical8 From27
Logical4
[ACTZERO1]
From28 and [S7]
[ACTPOS2]
Goto18
From29
Logical5
[ACTPOS1]
From30 and [S8]
[ACTZERO2]
Goto19
From31
Logical6
[ACTPOS1]
From32 and [S9]
[ACTPOS2]
Goto20
From33
Logical7
SELECTOR DE REGLAS ACTIVAS
CONJUNTO DE SALIDA P
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 descripcin 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 d0 1
In1 Out1
2 d1
In2
Mux
El nmero 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 estarn agrupadas en un
submdulo que se replica para cada conjunto de salida, ver Figura 4.34.
90 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
1 sel
In1
0 d0 1
Constant2 Out1
2 In1
In2 Out1 d1
3 In2
In3 Mux
REGLA 1
4
sel
In4
0 d0 2
Constant3 Out3
5 In1
In5 Out1 d1
6 In2
Mux1
In6
REGLA 2
7 sel
In7
0 d0 3
Constant4 Out4
8 In1
In8 Out1 d1
9 In2
Mux2
In9
REGLA 3
a
z-3
1 a b cast
In1 b
Convert4 a
Mult
a+b
a
b
a cast a+b x z -31 sqrt x cast 1
2 In2 z-3 AddSub
a b b Out1
b Convert5 Convert1
AddSub1
Mult1
CORDIC SQRT1
a
z-3
3 a b cast
In3 b
Convert6
Mult2
Este mtodo es realizado para cada conjunto de salida Nsalida, Zsalida y Psalida, por
lo que se tienen tres submdulos de RSS.
Defuzzificacin
El ltimo paso es realizar la defuzzificacin, se escogi el mtodo 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 races cuadradas de cada conjunto
difuso de la salida. El diseo en hardware se muestra en la Figura 4.36.
92 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
1
a
In1
a+b a
b
2 a+b
AddSub b
In2
AddSub1
3
In3 a
z-3
a b cast
a3 In b x
Convert1 a
From Gateway In1 z -28 div
Mult y/x cast 1
Workspace a+b y Out1
Convert4
b
CORDIC DIVIDER
a
z-3
a b cast AddSub2
c3 In b
Gateway In2 Convert2 a
From Mult1
Workspace1 a+b
b
a
z-3 AddSub3
a b cast
e3 In b
Gateway In3 Convert3
From Mult2
Workspace2
Out1 [ENEG]
Goto [ACT NEG1] In1
Out2 [EPOS] From55
Goto1 [ACT ZERO1] In2
[EZERO]
ERROR Out3
From56
Out1 In1
1 In1 Goto2
[ACT POS1] In3
In1 Out4 [ACT NEG1]
Goto6 From57
Out5 [ACT ZERO1] [ACT NEG2] In4
Goto7 From58
Out6 [ACT POS1]
[ACT ZERO2] In5
Goto8 From59
FUZZIFICACION1
[ACT POS2] In6
Step1
PROPORCIONAL BLOQUE DIFUSO
x 0.02 cast DE LA ARQ. 1
Convert Sy stem
In1 Generator
In DERIVATIVO CMult Out1
a Subsystem2 4.58e-2
a-b x 0.007004 cast a Gateway Out
a b 18.67e-9s2 +17.68e-6s+2.10e-3
In Convert3 a+b Out
Gateway In3 b
a-b d z-1 q AddSub5 CMult1 Transfer Fcn2
[aux2]
AddSub1
d z-1 q b
INTEGRAL Scope3
From1
Register1
Register3 AddSub
a
a+b x 0.0003052 cast
b [aux1] [aux2]
In1 Out1
Convert1
AddSub2 CMult2 From Goto
Register2 [aux1]
Subsystem
Convert4
Goto1
cast q z-1 d
Se cuenta tambin con un modulo de validacin la seal 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 clculos y en la salida existen datos cuyo valor
se desconoce.
94 CAPTULO 4. SISTEMAS DE CONTROL PROPUESTOS Y DESARROLLO
Arquitectura 2
-25 a
z-1 N
a b
Constant4 b
-12.5 a z-1 and 1
b ab Relational Out1
Constant Z1
Relational2 and a -1
z Logical
b a<b
a z-1 0
a<b Logical1 Relational1
b Constant6
0 Relational3 or 3
Out5
Constant2 0 a
Logical4
z-1 P
a<b
0 Constant7
a z -1 b
Z2
a b
Constant3 b Relational4 and 4
Relational6 Out4
and a
-1
hi z Logical2
a b
a z-1
a b lo } 2 25 b
12.5 b Logical3 Out2
Concat1 Constant5 Relational5
Constant1 Relational7
explicacin en cada mdulo 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.
Step1
PROPORCIONAL BLOQUE DIFUSO
x 0.02 cast DE LA ARQ. 2
Convert Sy stem
In1 Generator
In DERIVATIVO CMult Out1
a Subsystem2 4.58e-2
a-b x 0.007004 cast a Gateway Out
a b 18.67e-9s2 +17.68e-6s+2.10e-3
In Convert3 a+b Out
Gateway In3 b
a-b d z-1 q AddSub5 CMult1 Transfer Fcn2
[aux2]
AddSub1
d z-1 q b
INTEGRAL Scope3
From1
Register1
Register3 AddSub
a
a+b x 0.0003052 cast
b [aux1] [aux2]
In1 Out1
Convert1
AddSub2 CMult2 From Goto
Register2 [aux1]
Subsystem
Convert4
Goto1
cast q z-1 d
Arquitectura 3
1
a
In4
a+b a
b
2 a+b
AddSub4 b
In5
AddSub5
3
In6 a
z-3
a b cast
-15 b a x
Convert5
Constant Mult3 a+b z -28 div
y/x cast 1
b y Out2
a -3 Convert8
z
a b cast a CORDIC DIVIDER1
0 b AddSub6
Convert6 a+b
Constant1 Mult4 b
a AddSub7
z-3
a b cast
15 b
Convert7
Constant2 Mult5
a
a+b a
b
a+b a
AddSub1 b a
a+b
b
AddSub2 a+b a
b
AddSub4 a+b a
b
AddSub5 a+b a
AddSub6 b a
a+b
b
AddSub7 a+b
b
AddSub15
1 a -3 AddSub16
z
In1 ab cast
-15 b a
Convert1
Constant3 Mult1 a+b
2 a b
z-3
In2 ab cast a
-15 b AddSub3
Convert2 a+b
Constant4 Mult2 b x
z -28 div
y/x cast 1
3 a -3 AddSub8
z y Out1
In3 ab cast Convert4
-15 b
Convert3 a CORDIC DIVIDER2
Constant5 Mult6 a+b
b
AddSub13
4 a a
z-3
In4 ab cast a+b
0 b a b
Convert9
Constant6 Mult7 a+b AddSub14
b
5 a
z-3
In5 ab cast a
0 b AddSub9
Convert10 a+b
Constant7 Mult8 b
6 a -3 AddSub10
z
In6 ab cast
0 b
Convert11
Constant8 Mult9
7 a
z-3
In7 ab cast
15 b a
Convert12
Constant9 Mult10 a+b
8 a b
z-3
In8 ab cast
15 b AddSub11 a
Convert13 a+b
Constant10 Mult11 b
9 a AddSub12
z-3
In9 ab cast
15 b
Convert14
Constant11 Mult12
Out1 [ENEG]
[ACT NEG1] Out1 In1
Goto In1
Out2 [EPOS] From55
Goto1 [ACT ZERO1] In2
[EZERO]
ERROR Out3
From56
Out2 In2
1 In1 Goto2
[ACT POS1] In3
In1 Out4 [ACT NEG1]
Goto6 From57
Out3 In3
Out5 [ACT ZERO1] [ACT NEG2] In4
Goto7 From58
Out6 [ACT POS1]
[ACT ZERO2] In5
Out4 In4
Goto8 From59
FUZZIFICACION1
[ACT POS2] In6
Step1
PROPORCIONAL BLOQUE DIFUSO
x 0.02 cast DE LA ARQ. 3
Convert Sy stem
In1 Generator
In DERIVATIVO CMult Out1
a Subsystem2 4.58e-2
a-b x 0.007004 cast a Gateway Out
a b 18.67e-9s2 +17.68e-6s+2.10e-3
In Convert3 a+b Out
Gateway In3 b
a-b d z-1 q AddSub5 CMult1 Transfer Fcn2
[aux2]
AddSub1
d z-1 q b
INTEGRAL Scope3
From1
Register1
Register3 AddSub
a
a+b x 0.0003052 cast
b [aux1] [aux2]
In1 Out1
Convert1
AddSub2 CMult2 From Goto
Register2 [aux1]
Subsystem
Convert4
Goto1
cast q z-1 d
Se nota que estn presentes los bloques hardware que realizan la derivada y la integral
de error como en el PID en hardware. Estos mdulos son los mismos la diferencia son los
valores de las ganancias obtenidas por medio de la sintonizacin.
4.2. CONTROLADOR PID DIFUSO 99
Resultados
101
102 CAPTULO 5. RESULTADOS
con la nica diferencia que no se utilizarn segundos sino ciclos de reloj como valor de
medida, el tiempo en segundos estar dado por la frecuencia mxima o el periodo mnimo
de la arquitectura establecido en el anlisis de recursos utilizados. El nmero de ciclos de
reloj del sistema y el numero de ciclos de retroalimentacin no estn dados en segundo
hasta que se implementen en FPGA en el proceso Place and Rute.
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 clsico sin embargo el tiem-
po de asentamiento es menor, este parmetro es ms importante ya que esta caracterstica
describe la cantidad de tiempo que tarda el controlador en igualar la seal de referencia.
Este controlador cuenta con un paso de parmetros desde el workspace de MatLab y fue
usado para calibrar los valores de los conjuntos de entrada y de salida del sistema difuso.
106 CAPTULO 5. RESULTADOS
Figura 5.4: Respuesta del controlador PID difuso con paso de parmetros y RSS
Figura 5.5: Respuesta del controlador PID difuso sin paso de parmetros con RSS
Figura 5.6: Respuesta del controlador PID difuso sin parmetros sin RSS
Se nota que este controlador ha mejorado en comparacin a las dos arquitecturas ante-
riores del PID difuso. El nmero de ciclos de reloj del tiempo de asentamiento es de 135,
5.2. CLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 109
El clculo de los valores del promedio del error y del error cuadrtico medio es mostra-
do en el cuadro 5.7.
Estos datos indican que es el error promedio es menor que el error cuadrtico 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 CAPTULO 5. RESULTADOS
El clculo de los valores del promedio del error y del error cuadrtico medio del con-
trolador PID difuso es mostrado en el cuadro 5.8.
El clculo de los valores del promedio del error y del error cuadrtico medio del con-
trolador PID difuso es mostrado en el cuadro 5.9.
El clculo de los valores del promedio del error y del error cuadrtico medio del con-
trolador PID difuso es mostrado en el cuadro 5.10.
Tambin en esta seccin se analizar el comportamiento del PID difuso con ruido, en
la Figura 5.12 se muestra la modificacin hecha para este anlisis.
En este diseo 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 CAPTULO 5. RESULTADOS
0.0645
Gain1
4.58e-2
du/dt 0.0005
Scope2
18.67e-9s2 +17.68e-6s+2.10e-3
Step Derivative1 Gain2 Add
Transfer Fcn3
1
3
s Uniform
Integrator1 Gain3
Uniform Noise
Generator
0.0645
1 4.58e-2
Step Gain4
Fuzzy Logic Scope2
Gain 18.67e-9s2 +17.68e-6s+2.10e-3
voltajeController1 Add1
Transfer Fcn3
du/dt 0.0078
Derivative Gain5
1
2.1
s
Integrator Gain6
Uniform
Uniform Noise
Generator1
Se estableci como valor de referencia una funcin escaln de valor 24; el comporta-
miento de la seal de salida es mostrado en la Figura 5.16.
118 CAPTULO 5. RESULTADOS
Como se aprecia en la Figura anterior la seal del controlador PID difuso no tiene gran
cantidad de oscilaciones y tiende a estabilizarse tomando en cuenta la seal de referencia.
En el cuadro 5.12 se aprecia el tamao de muestra y el valor de Erms de este controlador.
Adems, se muestra una comparacin de las seales tanto de la salida del sistema del
controlador PID y del PID difuso, por lo que se grafican juntas para observar su comporta-
miento una respecto a la otra, ver Figura 5.17.
5.2. CLCULO DE ERROR Y COMPORTAMIENTO ANTE RUIDO 119
PROPORCIONAL
x 0.01401 cast
Convert
a a
In CMult
a+b
Gateway In INTEGRAL
Step a-b b
In b a AddSub1
Gateway In1 a+b
AddSub b
x 0.009995 cast a
AddSub4 a+b a Gateway Out Scope2
Convert1 4.58e-2
Register2 b
CMult2 a+b Out
Convert4 b 18.67e-9s2 +17.68e-6s+2.10e-3
AddSub3
cast q z-1 d In AddSub2 Transfer Fcn1
Gateway In2
DERIVADA
a
Sy stem
a-b x 0.004501 cast Generator
b Uniform
d z-1 q Convert2
AddSub5 CMult1
Uniform Noise
Register1 Generator
Para realizar la prueba con ruido se estableci una funcin de escaln como referencia,
la respuesta del controlador PID en hardware con ruido se muestra en la Figura 5.19.
El comportamiento del PID clsico muestra una gran cantidad de oscilaciones y la seal
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 anlisis.
Por otra parte, para realizar el anlisis de ruido con el PID difuso se simul la arqui-
tectura 3 que no posee paso de parmetros ni el mtodo RSS, ya que esta arquitectura tuvo
menor tiempo de establecimiento. En el diseo de controlador del PID difuso en hardware,
la adicin 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]
x 0.02 cast
Step1 In1 From3
Convert
Out1
DERIVATIVO CMult
In2 PID DIFUSO
Subsystem1
In
a a Gateway Out
4.58e-2
Gateway In2 a -b x 0.007004 cast a a+b Out
b b 18.67e-9s2 +17.68e-6s+2.10e-3 HW4
Convert3 a+b
b
a d z-1 q AddSub5 CMult1 AddSub3 T ransfer Fcn2
[aux2]
AddSub1
a -b INTEGRAL From1
Register1
b
a
Uniform In [aux3]
a+b x 0.001205
Gateway In3 AddSub cast
b Gateway In5 Goto3
Convert1 Uniform Noise
In
Tambin se cuenta con mdulos que validan la seal 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 clculos y en la salida existen datos cuyo valor
se desconoce.
Para realizar el anlisis del ruido para el controlador difuso en HW, se toma como
referencia una funcin escaln establecida en un valor de 24; el comportamiento del con-
trolador con ruido se muestra en la Figura 5.21.
122 CAPTULO 5. RESULTADOS
Como se aprecia en la Figura anterior, el controlador PID difuso tiene un nmero bajo
de oscilaciones cuando se le aplica perturbaciones, adems la estabilizacin de este contro-
lador es mejor que el controlador PID clsico en hardware.
El tamao de la muestra y el valor de Erms se reporta en el cuadro 5.14.
Los cuadros reportan que el controlador PID difuso tiene un menor error cuadrtico
medio, esto cumple la tendencia de operacin ante ruido que se segua desde la plataforma
software.
Una vez obtenidos los resultados de las seales de respuesta con y sin ruido de los
controladores PID y PID difuso, se analizar la cantidad de recursos que utilizan las arqui-
tecturas hardware.
5.3. RECURSOS HARDWARE DE LAS ARQUITECTURAS PROPUESTAS 123
W Z
/ h^ h h
EZ
h&&
> E>hd
h
^ h
/ E^
Z
K W &
D,
W Z^
/ h^ h h
EZ
h&&
> E>hd
h
^ h
/ E^
Z
K W &
D,
W Zs
/ h^ h h
EZ
h&&
> E>hd
h
^ h
/ E^
Z
K W &
D,
De este cuadro se observa que para el dispositivo Artix 7 se obtiene un periodo mnimo
de 2.179 ns y una frecuencia mxima de 458.926 MHz.
Otra tecnologa FPGA revisada es la basada en Spartan 6, cuyo dispositivo elegido para
este anlisis es el Spartan 6 xc6slx45-3cgs324. El periodo mnimo es de 1.921 ns y la
frecuencia mxima es de 520.562 MHz.
Por ltimo, se analiz la tecnologa FPGA cuyo dispositivo es Virtex 5 xc5vlx50-
3ff324, se muestran los resultados de los recursos empleados en este dispositivo, asimismo
el periodo mnimo y la frecuencia mxima. El periodo mnimo obtenido en el dispositivo
de Virtex 5 es de 1.635 ns y la frecuencia mxima 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 125
Z
h^ h h
EZ
Z h&&
E>hd
Y h
h
E^
Z
W &
D,
Z^
h^ h h
EZ
Z h&&
E>hd
Y h
h
E^
W
Z
&
D,
Zs
h^ h h
EZ
Z h&&
E>hd
Y h
h
E^
W
Z
&
D,
Se muestran los recursos utilizados para el dispositivo Artix 7, el periodo mnimo para
esta arquitectura es de 88.35 ns y su frecuencia mxima correspondiente es de 11.317 MHz.
Por otro lado, tambin se hizo un anlisis con los recursos utilizados, periodo mnimo
y la frecuencia mxima de operacin para el dispositivo Spartan 6 xc6slx75-3fgg484, se
establece un periodo mnimo de 113.925 ns,con una frecuencia de operacin de 8.778 MHz.
Finalmente, se realiza la obtencin 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 mxima de 11.036 MHz. Por otra parte, en el Cuadro 5.18 se muestran los
tiempos de operacin que se obtienen de la arquitectura conforme al tipo de dispositivo.
5.3. RECURSOS HARDWARE DE LAS ARQUITECTURAS PROPUESTAS 127
Los resultados de los reportes muestran que en esta arquitectura 1, el dispositivo Artix
7 tiene mejores tiempos de operacin y tambin en este dispositivo se consumen menos recursos.
Z
h^ h h
EZ
Z h&&
E>hd
Y h
h
E^
Z
W &
D,
Z^
h^ h h
EZ
Z h&&
E>hd
Y h
h
E^
Z
W &
D,
Zs
h^ h h
EZ
Z h&&
E>hd
Y h
h
E^
Z
W &
D,
Se muestran los recursos utilizados para el dispositivo Artix 7, el periodo mnimo para
esta arquitectura es de 89.160 ns y su frecuencia mxima correspondiente es de 11.216
MHz.
Por otro lado, tambin se hizo un anlisis con los recursos utilizados, periodo mnimo
y la frecuencia mxima de operacin para el dispositivo Spartan 6, se establece un periodo
mnimo de 94.508 ns,con una frecuencia de operacin de 10.581 MHz.
Finalmente, se realiza la obtencin de los recursos usados, periodo y frecuencia para el
dispositivo Virtex 5, el valor del periodo es de 109.313 ns con una frecuencia mxima de
9.148 MHz. Por otra parte, en el Cuadro 5.20 se muestran los tiempos de operacin que se
obtienen de la arquitectura conforme al tipo de dispositivo.
Los resultados de los reportes muestran que en esta arquitectura el dispositivo Artix 7
tiene mejores tiempos de operacin y tambin en este dispositivo se consumen menos recursos.
Z
h^ h h
EZ
Z E&&
E>hd
Y E
E
E^
Z
W &
D,
Z^
h^ h h
EZ
Z E&&
E>hd
Y E
E
E^
Z
W &
D,
Zs
h^ h h
EZ
Z E&&
E>hd
Y E
E
E^
Z
W &
D,
Se muestran los recursos utilizados para el dispositivo Artix 7, el periodo mnimo para
esta arquitectura es de 25.742 ns y su frecuencia mxima correspondiente es de 38.847
MHz.
Por otro lado, tambin se hizo un anlisis con los recursos utilizados, periodo mnimo
y la frecuencia mxima de operacin para el dispositivo Spartan 6, se establece un periodo
mnimo de 30 ns,con una frecuencia de operacin de 33.33 MHz.
Finalmente, se realiza la obtencin de los recursos usados, periodo y frecuencia para
el dispositivo Virtex 5, el valor del periodo es de 23.018 ns con una frecuencia mxima de
43.444 MHz. Por otra parte, en el Cuadro 5.22 se muestran los tiempos de operacin que
se obtienen de la arquitectura conforme al tipo de dispositivo.
130 CAPTULO 5. RESULTADOS
Cuadro 5.23: Comparacin PID con otros trabajos relacionados usando tecnologa Spartan
Por otra parte, se compara la arquitectura 3 del controlador PID difuso con otros traba-
jos debido a que esta arquitectura es la que present mejores resultados en las mediciones
realizadas secciones atras. La comparacin se realiza utilizando dos familias FPGAs: Spar-
tan y Virtex.
En el Cuadro 5.24 se muestran diferentes trabajos realizados y sus resultados obtenidos
en tecnologa Spartan y en el Cuadro 5.25 los trabajos que utilizan la tecnologa Virtex.
Las comparaciones estn basados bajo los parmetros de frecuencia mxima, recursos
hardware y time per action. El time per action es el tiempo que tarda en realizar un ciclo
de retroalimentacin y es lo que reportan los trabajos.
Cuadro 5.24: Comparacin PID difuso con otros trabajos relacionados usando tecnologa
Spartan
Cuadro 5.25: Comparacin PID difuso con otros trabajos relacionados usando tecnologa
Virtex
Conclusiones
En este apartado se presentan las conclusiones del trabajo de Tesis Anlisis y compa-
racin de controladores PID y PID difuso en lgica 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 realizacin del PID en lgica 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 diseo, por otro lado, la sintonizacin del
controlador se realiz con el mtodo de prueba y error, con este mtodo se logr una
sobreelongacin de cero en la seal de salida, as como tambin un tiempo de asentamiento
pequeo.
Se considera que existen otros mtodos ms complejos en la sintonizacin de los con-
troladores por lo que se deja en un futuro cercano realizar una sintonizacin ms ptima de
las ganancias de las arquitecturas ya que las ganancias no llegan a afectar el diseo de las
arquitecturas propuestas.
Cabe mencionar que el buen comportamiento de la seal tambin se debe a que la
funcin 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 pequeo,
ya que de eso depender de la sintonizacin que se le de a los controladores en conjunto
con distintas plantas.
133
134 CAPTULO 6. CONCLUSIONES
Por otra parte, tambin 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 fcil
acceso y navegacin, adems de esta herramienta, tambin se us de nueva cuenta Simulink
ya que provee de un bloque que logra importar el diseo realizado desde el toolbox fuzzy.
La sintonizacin de este controlador se realiz a prueba y error, la sintonizacin abar-
ca 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 diseador de siste-
mas difusos ya que en base a ellos depender el comportamiento de la seal de salida del
controlador. La seal de respuesta del controlador PID difuso en software no tiene sobre-
elongacin, su tiempo de retardo es mayor que el PID clsico, 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 clsico, 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 seal 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,
adems, la seal de salida tiende a estabilizarse al valor de la seal 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 afectacin por ruido.
La anterior informacin se utiliz para el desarrollo en hardware (lgica reconfigurable)
de los controladores PID y PID difuso. El controlador PID difuso se dise utilizando
Simulink y libreras de componentes hardware a lo que se denomina System Generator, esta
herramienta es importante ya que provee una visin 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 parmetros, este paso de parmetros 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 seal de comportamiento de este controlador no cuenta con sobreelongacin, por
lo cual la seal 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 reduccin de perturbaciones en general cuando se
implemente el modelo.
Respecto a los recursos hardware, se analizaron las arquitecturas del PID y la tercera ar-
quitectura del controlador PID difuso ya que es que tiene mejor respuesta. Para realizar
este anlisis se tuvo que hacer pruebas orientados en dispositivos hardware con diferente
tecnologa FPGA como: Artix 7 xc7a100t-3cgs324, Spartan 6 xc6slx45-3cgs324 y Virtex
5 xc5vlx50-3ff324.
Para los dos controladores PID y PID difuso, el dispositivo el que ofrece mejores resultados
tanto en periodo mnimo, frecuencia mxima y recursos usados fue el Virtex 5 xc5vlx50-
3ff324. Sin embargo, este no es el dispositivo que menos recursos consume, esta caracters-
tica la comparten los dispositivos Spartan 6 xc6slx45-3cgs324 y Artix 7 xc7a100t-3cgs324
para el PID difuso y para el PID clsico 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 adems tiene un periodo menor y, por consecuente, una frecuencia ms
136 CAPTULO 6. CONCLUSIONES
alta. Esto se debe a que el controlador PID no requiere de clculos como la divisin como
lo requiere el PID difuso, la operacin de divisin hace uso de un gran nmero recursos
hardware por tal motivo el controlador PID difuso tiende a utilizar ms recursos.
Tambin, como se coment anteriormente, se realiz un anlisis con la presencia de
ruido en los controladores PID y PID difuso en hardware, de estos anlisis se obtuvo que
el controlador PID tiene una salida oscilatoria que genera picos, y dado estos picos la seal
de salida tiende a no estabilizarse. Por otro lado en el anlisis del controlador PID difuso, la
salida de este controlador no presenta gran cantidad de picos, por lo que la seal de salida
trata de estabilizarse ante la seal de referencia.
El anlisis con la presencia de ruido es importante, ya que en la realidad muchos sis-
temas estn propensos a cambios repentinos, ruido o perturbaciones del ambiente que los
rodea, por lo que contar con un sistema que sea robusto ante esto generara grandes benefi-
cios tanto econmicos como funcionales. Con las arquitecturas propuestas del PID difuso
hay que examinar si su frecuencia mxima es suficiente para controlar procesos que re-
quieren alto desempeo. 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 anlisis y una comparacin entre controlado-
res PID y PID difuso desarrollados en lgica reconfigurable. Con estos resultados ya se
tienen las bases para controlar motores en especial orientado a controlar motores de CD
en cualquier aplicacin. Adems, se han obtenido diferentes arquitecturas hardware de los
controladores PID difuso: la primera es flexible y servir en un futuro para que se con-
trolen otros procesos diferentes (pueden ser distintos a los motores de CD); tambin 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 cono-
cimientos a los diseadores de sistemas de control y se prev que en un futuro este anlisis
sean tomados en cuenta al momento de disear controladores.
Por ltimo, se comenta que en este proyecto se ha desarrollado un artculo titulado
Controlador PID difuso implementado con lgica reconfigurable (Pantoja-Laces, Marzo
137
2013), el cual ya ha sido publicado en las memorias del congreso. Adems se haba explo-
rado la velocidad de motores usando microcontroladores de uso general (Pantoja-Laces,
Octubre 2011). Actualmente, se prepara un artculo para una revista indexada.
138 CAPTULO 6. CONCLUSIONES
Apndice A
139
140APNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA
Z
F(s) = L { f (t)} = f (t)et dt (A.1)
0
c+
Z j
1
f (t) = F(S) eSt dS (A.3)
2 j
c j
En donde c es una constante real que es mayor que las partes reales de todas las singula-
ridades de F(s). La ecuacin A.3 representa una integral de lnea que se evala en el plano
s. Para funciones simples, la operacin de la transformada inversa de Laplace, se puede
A.2. FUNCIONES DE TRANSFERENCIA 141
llevar a cabo sin realizar la evaluacin de esta integral, utilizando una tabla de transforma-
das. Si la integral resulta compleja se puede utilizar el mtodo de integracin que sea ms
adecuado para resolverla.
3. Incluye las unidades necesarias para relacionar la entrada con la salida, pero no pro-
porciona informacin de la estructura fsica del sistema.
142APNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA
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 seales 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 seales por lo que al final es posible evaluar la contribucin
de cada componente en el sistema. En ocasiones los diagramas de bloques contienen una
gran cantidad de ramificaciones por lo que se requiere una simplificacin mediante un
reordenamiento paso a paso a travs de las reglas del lgebra de los diagramas de bloques,
ver Figura A.1.
A.2. FUNCIONES DE TRANSFERENCIA 143
En los sistemas de control de lazo abierto (ver Figura A.2) es sencillo encontrar la
funcin de transferencia dada la topologa de este tipo de sistemas, ya que no existen rami-
ficaciones por lo que el resultado es el producto de la entrada por el proceso, ver ecuacin
A.5.
Por otro lado, en los sistemas de lazo cerrado se requiere conocer el lgebra de los
diagramas a bloques para encontrar la funcin de transferencia, ya que el diagrama de
bloques clsico de los sistemas retroalimentados como tambin se les llama se representa
como en la Figura A.3 la cual tiene ramificaciones y comparaciones.
144APNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA
C(s)
F(s) = (A.6)
R(s)
Por lo que se procede a obtener las salidas de las seales dentro del sistema, las cuales
son:
B(s)
= G(s) H(s) (A.12)
E(s)
C(s)
[1 + H(s)G(s)] = R(s) (A.13)
G(s)
C(s) G(s)
= (A.14)
R(s) 1 + H(s)G(s)
En conclusin, las funciones de transferencia ayudan a representar modelos fsicos de
procesos o plantas hasta sistemas completos y en este trabajo de investigacin se hace
referencia al control de motores de corriente directa por lo que se debe de establecer los
fundamentos tericos del motor de corriente directa.
146APNDICE A. TRANSFORMADA DE LAPLACE Y FUNCIONES DE TRANSFERENCIA
Apndice B
System Generator
System Generator para DSP es una plataforma software que usa las herramientas de The
MathWork MatLab/Simulink para representar una visin abstracta de alto nivel del sistema
de DSP, y que automticamente genera el cdigo HDL de la funcin 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 fcil de utilizar sistemas de DSP, permitiendo un desa-
rrollo de alto rendimiento para una plataforma hardware especfica. Un diseo desarrollado
con esta herramienta puede componerse de una gran variedad de elementos: bloques espe-
cficos de System Generator, cdigo de un lenguaje de descripcin de hardware tradicional
(VHDL, Verilog) y funciones derivadas del lenguaje programacin MatLab. As, todos es-
tos elementos pueden ser usados simultneamente, simulados en conjunto y sintetizados
para obtener una funcin de DSP sobre FPGA. El aspecto ms interesante de trabajar en
MatLab/Simulink es emplear la herramienta de simulacin de sistemas Simulink para rea-
lizar la verificacin del diseo.
Una de las caractersticas ms importantes de Xilinx System Generator es que posee
abstraccin aritmtica, es decir, trabaja con representaciones en punto fijo con una precisin
arbitraria, incluyendo la cuantizacin y el sobreflujo. Tambin puede realizar simulaciones
tanto en doble precisin como en punto fijo.
Se cuenta con una gran cantidad de bloques de construccin de DSP en el Blockset Xi-
linx DSP para Simulink. Estos bloques son los bloques DSP comunes de construccin tales
147
148 APNDICE B. SYSTEM GENERATOR
addr
In
Gateway In data z-1
x_in x_out addrz-1
we
Sy stem Single Port RAM
Generator ROM
CORDIC 4.0
1 Out
Constant Gateway Out
a
a+b
d z-1 q
xn_re
xk_re
b
xk_im
AddSub xn_im
Register
++ and xn_index
start xk_index
Counter Logical fwd_inv rfd
tready tvalid
fwd_inv_we busy
dv
tvalid tdata scale_sch
edone
a scale_sch_we
z-1 z-3 done
a b tdata tready Fast Fourier T ransform 7.1
b
Delay AXI FIFO
Mult
especfico del dispositivo. Otros son de alto nivel de ejecucin, procesamiento de seales
y algoritmos avanzados de comunicacin. 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.
Librera Descripcin
Index Cada Bloque en el Blockset de Xilinx.
Basic Elements Bloques de elementos estndar para la construccin de lgica digital.
Communication Bloques de correccin de errores y moduladores.
Control Logic Bloques de circuitos de control y mquinas de estado.
Data Types Los bloques que convertir tipos de datos.
DSP Bloques de Procesamiento Digital de seales (DSP).
Math Bloques que implementan funciones matemticas.
Memory Bloques para la implementacin y acceso a memoria.
Shared Memory Bloques para la implementacin y acceso a memoria compartida de Xilinx.
Tools Bloques de herramientas, para estimacin de recursos, co-simulacin HDL, etc.
Librera Descripcin
Communication Bloques de correccin de errores y moduladores
Control Logic Bloques de circuitos de control y mquinas de estado
Imaging Bloques de Procesamiento de Imgenes.
DSP Bloques de Procesamiento Digital de seales (DSP)
Math Bloques que implementan funciones matemticas
Synthesis Tool: indica la herramienta usada para sintetizar el diseo. Las posibles op-
ciones son Synplicitys Synplify Pro, Synplify, y Xilinxs XST.
Hardware Description Language: especifica el lenguaje HDL que se usar para la com-
pilacin, puede ser VHDL o Verilog.
Asimismo, en la opcin de Clocking se encuentran diferentes parmetros mostrados en
la Figura B.3 y se describen algunos a continuacin.
FPGA Clock Period: define el perodo en nanosegundos del reloj hardware y debe ser
un entero.
Clock Pin Location: indica cul es el pin del reloj. Esta informacin se le pasa a las
herramientas de implementacin de Xilinx a travs de un archivo (xcf o ngc) en el que
tambin se incluyen otro tipo de restricciones.
Simulink System Period: define el perodo de Simulink, en segundos.
Por otra parte, en la opcin General se muestra el parmetro Block Icon Display, ver
Figura B.4, el cual especifica el tipo de informacin que ser mostrada en los iconos de los
bloques.
Este parmetro cuenta con un men desplegable que tiene las siguientes opciones:
Default: muestra la informacin por defecto del bloque.
B.2. TIPOS DE SEALES EN SYSTEM GENERATOR 153
Pipeline stages: indica la latencia de los puertos de entradas, cuya informacin 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 seales de entrada a los bloques, cuya
informacin suele ser til para resolver errores.
Output data types: muestran los tipos de datos de las seales de salida de los bloques.
Esta informacin suele ser til para resolver errores.
Para finalizar, en este apndice se describirn algunas formas de compilacin que se
pueden utilizar cuando se maneja el entorno System Generator, las ms importantes son:
HDL: sta es la compilacin por defecto. En ella se generan los archivos HDL, NGC y
EDIF necesarios para implementar el modelo diseado. Adicionalmente se crean otros ar-
chivos que simplifican este proceso. Todos los archivos creados se guardan en el directorio
que se indique en el bloque System Generator.
Bitstream: Esta compilacin 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 compilacin es la que se utiliza para crear el
modelo que se usa en la co-simulacin hardware.
154 APNDICE 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 rea-
lizar un anlisis temporal para resolver este tipo de conflictos. Mediante este anlisis se
muestra el camino ms lento de la parte hardware diseada, as como aquellos que no cum-
plen con los requisitos temporales. Para realizar este tipo de anlisis, System Generator
se basa en la herramienta Trace, que forma parte del paquete ISE de Xilinx, este tipo de
compilacin se utiliz en el trabajo de tesis ya que no se poda realizar la co-simulacin
porque no se contaba fsicamente con los dispositivos.
La herramienta System Generator es importante para la realizacin de proyectos con
lgica reconfigurable ya que brinda de herramientas de alto nivel de abstraccin que facilita
la implementacin de diseos de la forma mas rpida, 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 propsitos de uso general.
Cuadrotor Un cuadrotor es un helicptero con cuatro rotores, el cual permite tener una
mayor estabilidad que un helicptero normal
IA Inteligencia Artificial
Look Up Table Look up table (del ingls tabla de consulta) es una estructura de datos,
normalmente un arreglo o un arreglo asociativo, que se usa para substituir una rutina
de computacin con una simple indexacin de los arreglos.
offset Offset significa que el controlador mantendr la medida a un valor diferente del
valor de consigna
155
156 APNDICE B. SYSTEM GENERATOR
SW Plataforma Software
Bibliografa
Cercs, J. N., Diseo de un controlador avanzado basado en redes neuronales para la ges-
tin de la mezcla aire-gasolina en un motor alternativo, Ph.D. thesis, Universitat Politc-
nica 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), 18981906, 2007.
Chen, W., H.-m. Yuan, and Y. Wang, Design and implementation of digital fuzzy-pid con-
troller based on fpga, in Industrial Electronics and Applications, 2009. ICIEA 2009. 4th
IEEE Conference on, pp. 393397, IEEE, 2009.
157
158 BIBLIOGRAFA
Economakos, G., and C. Economakos, A run-time reconfigurable fuzzy pid controller ba-
sed on modern fpga devices, in Control & Automation, 2007. MED07. Mediterranean
Conference on, pp. 16, IEEE, 2007.
Farid, M., and M. Faruq, Pid controller design for dc motor using matlab application, Ph.D.
thesis, Universiti Malaysia Pahang, 2008.
Galn, R., A. Jimnez, F. Marta, and R. Sanz, Control inteligente, Inteligencia artificial:
Revista Iberoamericana de Inteligencia Artificial, 4(10), 4348, 2000.
Garca, J. A. E., Modulador pwm en fpga para un inversor multinivel en cascada, Masters
thesis, CENIDET, 2009.
Garrido, R., D. Calderon, and A. Soria, Adaptive fuzzy control of dc motors, in Internatio-
nal Power Electronics Congress, 10th IEEE, pp. 16, IEEE, 2006.
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), 192198, 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 Met-
hods in Applied Sciences, 2(2), 143147, 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. 3439, Citeseer, 2004.
BIBLIOGRAFA 159
Len Galarza, C. F., et al., Diseo e implementacin del control pid de velocidad para un
motor dc utilizando la tarjeta fpga spartan 3e y labview para los laboratorios de la carrera
de ingeniera electrnica de la universidad politcnica salesiana, 2012.
Moreno, R., P. Aros, and J. Ribet, Diseo de un controlador pid difuso aplicado en un horno
rotatorio para producir carbn activado, in Memoria INGELECTRA 2006, Congreso es-
tudiantil de ingeniera elctrica y electrnica. Universidad Austral de Chile, 2006.
Nicols Nicols, I., Tcnicas de compresin de tablas de datos mediante regresiones linea-
les, redes neuronales y sistemas fuzzy, 2008.
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), 27242740, 2009.
Ortiz, F., and W. Y. Liu, Modelado y control pd-difuso en tiempo real para el sistema barra-
esfera, Mxico, DF, 2004.
Pantoja-Laces, W. A., Variable speed control based on multiplexing dc and stepper motors,
in 4ta Jornada Informtica JINF-2011, Octubre 2011.
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),
114, 2005.
Prez, M. A., Introduccin a los sistemas de control y modelo matemtico para sistemas
lineales invariantes en el tiempo, 2008.
Rodrguez, F. O., and W. Y. Liu, Modelado y control pd-difuso em tiempo real para el
sistema barraesfera, Masters thesis, Universidad de Mexico, 2004.
BIBLIOGRAFA 161
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 applicationsa review, IACSIT International Journal of Engineering and Technology,
1(5), 491503, 2009.
Toloza, E. R. M., Diseo 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.
341344, IEEE, 2008.
Varela Rincn, J., and J. E. Loaiza Pulgarn, Reconocimiento de palabras aisladas mediante
redes neuronales sobre fpga, 2008.
Wang, L.-X., Adaptive fuzzy systems and control- design and stability analysis(book), En-
glewood Cliffs, NJ: PTR Prentice Hall, 1994., 1994.
162 BIBLIOGRAFA
Wang, L.-X., and J. M. Mendel, Fuzzy basis functions, universal approximation, and ort-
hogonal least-squares learning, Neural Networks, IEEE Transactions on, 3(5), 807814,
1992.