UNIVERSIDAD AUTÓNOMA DE TLAXCALA
FACULTAD DE CIENCIAS BÁSICAS, INGENIERÍA Y TECNOLOGÍA
“DISEÑO DE UN CONTROLADOR LÓGICO DIFUSO APLICADO EN EL CONTROL DE UN PÉNDULO INVERTIDO”
TESIS PROFESIONAL
QUE PARA OBTENER EL TÍTULO DE: INGENIERO EN SISTEMAS ELECTRÓNICOS
PRESENTA: JOSE ALBERTO CORTES VAZQUEZ ARIEL MÉNDEZ MARTÍNEZ
DIRECTOR Y ASESOR DE TESIS M. en C. FRANCISCO EPIMENIO MORALES LÓPEZ
APIZACO, TLAX.
OCTUBRE 2016
I
II
Resumen El presente trabajo de Tesis aborda el diseño y desarrollo de un Controlador Lógico Difuso Aplicado al Control de un Péndulo Invertido, el cual, se desarrolla en el software matemático MatLab utilizando las herramientas FIS y ANFIS, propias de éste. Se diseña un controlador difuso tipo Takagi-Sugeno-Kang, el cual, consta de nueve reglas, una señal de salida y dos variables de entrada, de las cuales, cada una consta de tres funciones de membresía. El algoritmo del Sistema de Control se implementa en un microcontrolador de gama alta PIC18F4550 de la familia 18F de Microchip. El sistema completo cuenta con tres microcontroladores del mismo tipo, de los cuales, dos de ellos hacen uso de la técnica Overclock para acelerar el procesamiento de datos. El sistema electrónico completo, se forma por tres partes importantes, la Etapa de Control A, la Etapa de Control B y la Etapa de Potencia, todas ellas comunicadas entre sí y fabricadas según la técnica de diseño de tarjetas de circuito impreso SHIELD. El encoder empleado para conocer la posición angular en la que se encuentra el Péndulo Invertido es un potenciómetro de salida lineal, obtenido de un servomotor de alto torque, el cual, es capaz de girar 240°sin presentar fricción en el eje. Por último, por medio de gráficas se presenta el comportamiento del sistema ante dos tipos de pruebas: Prueba de Perturbación y Recuperación y Prueba Grado a Grado y Recuperación, en las cuales, se observa la respuesta que tiene ante diversos escenarios y con diferentes distancias entre el pivote y la masa del Péndulo Invertido.
III
IV
Dedicatorias Ariel Méndez Martínez
Dedico esta Tesis a: Dios: Por haberme permitido llegar a este punto de mi vida, por darme salud y fuerza necesarias para lograr cada uno de mis objetivos. A mi hijo Sebastián Méndez Rascón (Ɨ): A mi querido hijo, que con su partida ha dejado un gran vacío difícil de llenar llevándose una parte de mí, sin embargo, con su breve estadía me lleno de una felicidad inmensa. Tu recuerdo siempre quedara grabado en mi mente y en mi corazón, cada logro que realice será siempre para ti Mi Angelito y sé que siempre me acompañaras y cuidaras de mí, durante todo el camino que Dios me permita hasta poder reencontrarnos. A mi hijo Lionel Méndez Rascón: Dedico especialmente este trabajo de Tesis a mi hijo Lionel, por haber llegado a mi vida, por ser el motivo de cada uno de mis logros, por soportar los días en los que no pude estar a su lado y sobre todo, porque desde el primer día de vida haz llegado a hacerme infinitamente feliz con tu cariño, carisma, y tu amor puro y sincero de hijo. ¡Te Amo Lionel! eres quien me alienta a seguir y motivo por el cual quiera ser mejor.
A mis Padres: Mi Padre Adrián Méndez Méndez: Por estar siempre conmigo en las buenas y en las malas, por enseñarme a crecer y que si caigo debo levantarme. Por apoyarme y guiarme, inculcarme el sentido de la responsabilidad y la humildad, y así mismo, por su ejemplo de perseverancia, dedicación y constancia que siempre lo caracterizan, por ser el ejemplo a seguir, sin dejar de lado su amor incondicional. Te Amo Papá. Mi Madre Blanca Silvia Martínez Sánchez: Por apoyarme siempre en todo momento, por todos los sacrificios que ha tenido que hacer para que realice mis objetivos y sueños, por su confianza, alegría, cariño y sobre todo, por su amor incondicional de madre, que la han convertido en un pilar importante en mi vida. Te Amo Mamá. V
A mis Hermanos: Hugo Martínez Sánchez: Por apoyarme y estar presente en cada logro alcanzado, así como también en las pérdidas irreparables de la vida, por todos esos días de diversión y aprendizaje que han servido para afrontar los golpes que vengan. Rogelio Méndez Martínez: Por ser un ejemplo a seguir demostrando el carácter y la fortaleza que lo caracterizan para tomar decisiones, por el apoyo que siempre me ha brindado a pesar de todas las cosas que hemos pasado. Cesar Adrián Méndez Martínez: Por ser siempre el hermano que está cerca y me apoya en cualquier circunstancia que habremos de pasar juntos y sobre todo, por su gran sinceridad que lo caracteriza. Erik Méndez Martínez: Por su apoyo incondicional que siempre me ha demostrado, por ser el que me ha enseñado que la sinceridad y el respeto son los valores que nunca debo de perder, por hacerme poner los pies en la tierra.
Además: A Alicia Rascón Carrasco: Por apoyarme a lo largo de este camino, alentarme a seguir y soportar los días incontables de trabajo, por no dejarme solo. Además por darme la dicha de ser Padre y así mismo ser ella una excelente Madre. Sin importar lo que haya pasado, sin duda alguna eres una excelente persona, nunca pierdas tu esencia. A mi abuelito Alfonso Martínez Mancilla (Ɨ): Abuelito, con tu partida nos llenaste de mucha tristeza, sin embargo, nos dejaste grandes enseñanzas, grandes lecciones de vida que quedaran siempre en mi recuerdo, y sé que siempre estarás presente y me acompañaras a todas partes. Al igual: A mis tíos, Por su gran apoyo, que a pesar de todas las situaciones que hemos pasado siempre se han preocupado por nosotros y han estado en las buenas y en las malas. A mis abuelitas Soledad Sánchez Lecona y Petra Roberta Méndez Hernández, por todo el apoyo que siempre me han brindado, no solo a lo largo de mi carrera sino a lo largo de toda mi vida, siempre preocupándose por mi bienestar. VI
Jose Alberto Cortes Vazquez
Dedico esta tesis: A mis tíos Olga Velasco y Juan Santiago: Por tomar el papel de padres desde mis 11 años, por el ejemplo predicado, el tiempo dedicado, el coraje expuesto y sobre todo la confianza mostrada. “No es la carne ni la sangre, sino el corazón lo que nos hace padres e hijos.” A mis padres Rufina Vazquez y Carlos Cortes: Por darle la oportunidad de nacer a un error suyo; aunque tal vez se arrepintieron en algún momento, para mí fue la mejor elección de sus vidas. “Para estar mañana en el recuerdo de tus hijos, debes estar presente en sus vidas hoy.” A mis primos Miguel Ángel García y Alejandro García: Por estar presentes en estos últimos años de mi vida, por apoyarme y no dejarme solo, por los buenos y malos momentos, por el ejemplo y el error, simplemente por ser ustedes. “Porque tengo hermanos, siempre tengo amigos.” A mi hermana Vanessa Cortes: Por brindarme parte de tu infancia, por vivir conmigo buenos y malos momentos, por forjar en mi un carácter frio pero inquebrantable; es contigo con quien tengo mis más lejanos recuerdos y experiencias de vida. “Si pudiese elegir el mejor hermano, te elegiría a ti.” A Claudia Paredes y familia: Por acogerme en tu familia y hacerme sentir parte de una cuando lo necesitaba, por darme la primer educación impórtate para la vida y el estudio, por fomentar mi desarrollo autónomo, por sembrar en mi la idea de que todo se puede si se trabaja por ello, por mostrarme que si voy a hacer algo, es mi obligación hacerlo bien; es gracias a ti que hoy doy más de mi por ser el mejor, gracias. “La enseñanza que deja huella no es la que se hace de cabeza a cabeza, sino de corazón a corazón.”
VII
VIII
Agradecimientos Ariel Méndez Martínez
Agradezco a: A mi director de tesis M. en C. Francisco E. Morales: Por su dedicación en la enseñanza de sus conocimientos, su paciencia y motivación que han sido parte fundamentales durante mi formación académica, siendo inspiración para seguir aprendiendo cada día más, por darme las herramientas necesarias para el desarrollo de mis habilidades dentro de los sistemas digitales, y además, por siempre exigirme de más con el objetivo de sacar lo mejor de mí. A mi profesor y amigo Ing. Alejandro Loaiza: Por ser más haya que un simple profesor, quien se encargó de enseñarme sus conocimientos aun después de horas de clase, por siempre preocuparse de que entendiera hasta lo más mínimo de sus enseñanzas en la implementación de nuevas tecnologías dentro de la carrera y ser ejemplo de una persona humilde, con valores y principios bien definidos. A mis profesores: M. en C. Bernardo Cante, Dr. Miguel Ángel Carrasco, Dr. Nery Delgadillo, Ing. Lauro Reyes, M. en C. Adriana Ruiz, Lic. Alejandro Pimentel, Ing. Mauro Gutiérrez, Ing. Elvira Contreras, Ing. Demetrio Alí Tetlalmatzi, M. en C. Néstor Rosendo, Dr. Brian González, M. en C. Magda Muñoz, Dr. Enrique Gutiérrez, Lic. Magally López, Tec. Jesús Rosas. Por sus enseñanzas, su apoyo y paciencia dentro de mi formación académica, de cada uno me llevo lo mejor, tanto como persona así como de sus conocimientos compartidos a lo largo de mi camino por la Universidad. Sin duda alguna, son un gran cuerpo académico con gran preparación y compromiso hacia cada generación, no me queda más que agradecerles por todo. A mis compañeros y amigos: Harim Salas, José Luis Maya, Adrián Yacotu, Gustavo Yacotu, Ricardo Mendieta, Luz María Juárez, Héctor Sánchez, Eliud Pérez, Gabriela Fuentes, Osbaldo Tzompantzi, Rogelio Espejel, Rene Hernández, Sergio Ruiz, Sergio Vela, Manuel Beltrán, Erick Luna, Cristian Mena, Genaro Sánchez, Rafael Pérez, Jair Hernández, Carlos Hernández, Aarón Sánchez, Erick Fernández, Adriana Tlilayatzi, Fabián Colín, Marco Antonio Padilla, Alfredo García, Adannel Huerta, Héctor Grande, Simón Vázquez, Carlos Matamoros, Eduardo Ortega, Carolina Franco; larga es la lista de amigos y compañeros que estuvieron conmigo durante IX
mi largo camino universitario, si lees esto y notas que faltas, no creas que me olvide de ti, solo de tu nombre. Antes que nada, le agradezco a cada uno de ustedes por brindarme su amistad y confianza. Por su apoyo incondicional, por esos incontables días de diversión en la cafetería y en las canchas, dentro y fuera de la Universidad, por las tardes, noches e incluso desveladas de estudio. Serán siempre parte importante de mi vida. Que Dios los guie por el buen camino y los bendiga hoy y siempre Mis Amigos. Especialmente agradezco: A mi amigo y compañero de tesis Alberto Cortes: Por su inigualable amistad y apoyo que me brindo a lo largo de mi estancia en la Universidad. Porque sin sus consejos y ayuda, todo sería más difícil, por siempre decirme en que estoy mal y alentarme a seguir adelante, por dar lo mejor de sí, para yo seguir aprendiendo cada día más ,y finalmente, por los nuevos proyectos.
X
Jose Alberto Cortes Vazquez
Agradezco: A mi director de tesis M. en C. Francisco E. Morales: Por su entusiasmo al guiarme durante el proceso de titulación, por mostrarme todo lo necesario sobre los sistemas digitales, por brindarme las herramientas necesarias para desarrollar mis habilidades en programación de microcontroladores y por darme los mejores consejos para el diseño y desarrollo de sistemas embebidos. A mi colega, profesor y amigo Ing. Alejandro Loaiza: Por las tardes que colaboró en mi desarrollo académico, por darme la oportunidad de trabajar con sistemas nuevos en la carrera, por ser un ejemplo sobre lo que debe saber un ingeniero en electrónica, por ser la persona con quien puedo intercambiar ideas de diseño y retroalimentar mi conocimiento. A la Lic. Magally López Pérez: Por la paciencia puesta en su enseñanza, por ser la primera persona en mostrarme la utilidad de las ciencias exactas en la ingeniería, por jamás dejarme morir en un examen, por siempre exigirme más; es usted uno de los mejores profesores que tuve en mi desarrollo académico. Al Dr. Enrique Gutiérrez: Por resolver todas mis dudas sobre una de las materias que más interés tiene de parte mía: la Física, sé que debí caerle mal en algún momento; agradezco por mostrarme el lado profesional del ser humano, ser un ejemplo a seguir en mi vida profesional, por mostrarme que la redacción de textos científicos no solo consta en escribir experiencias e hipótesis, es un arte y en este trabajo de tesis plasme todo lo que usted me enseño, espero este al nivel de su enseñanza. Sin duda, es el mejor profesor que pudo enseñarme algo durante mi paso por la universidad, gracias. A mis profesores: M. en C. Bernardo Cante, Dr. Miguel Ángel Carrasco, Dr. Nery Delgadillo, Ing. Lauro Reyes, M. en C. Adriana Ruiz, Lic. Alejandro Pimentel, Ing. Mauro Gutiérrez, Ing. Elvira Contreras, Ing. Demetrio Alí Tetlalmatzi, M. en C. Néstor Rosendo, Dr. Brian González, M. en C. Magda Muñoz, Tec. Jesús Rosas; por ser parte importante en mi desarrollo académico, por su compromiso al brindarme parte de sus conocimientos, por exigirme y mostrarme el camino a seguir, gracias a todos. XI
A mis compañeros y amigos: Gerardo Pluma, Conrado Carro, Cesar Onofre, Noé Pozos, Alfredo Moreno, Alfredo García, Gary Alvarado, Adannel Huerta, Héctor Grande, Simón Vazquez, Fredy Montalvo, Carlos Matamoros, Eduardo Ortega, Anismareli Montalvo, Adrián Yacotu, Gustavo Yacotu, Ricardo Mendieta, Luz María Juárez, Héctor Sánchez, Eliud Pérez, Gabriela Fuentes, Osbaldo Tzompantzi, Rogelio Espejel, Rene Hernández, Sergio Ruiz, Sergio Vela, Manuel Beltrán, Cristian Mena, Genaro Sánchez, Rafael Pérez, Jair Hernández, Carlos Hernández, Tonatzin Osorio, Aarón Sánchez, Adriana Tlilayatzi, Daniel Hernández, Adilene Fernández, Luis Francisco López, Marco Antonio Padilla, Carolina Franco; larga es la lista de amigos y compañeros que estuvieron conmigo durante mi largo camino universitario, si lees esto y notas que faltas, no creas que me olvide de ti, solo de tu nombre. Les agradezco plenamente a todos por su apoyo, los ratos de relajación, las tardes de estudio, los malos y buenos ratos; cada uno de ustedes forma parte de un selecto grupo de recuerdos que permanecerán hasta el fin, gracias.
Especialmente agradezco: A mi amigo y compañero de tesis Ariel Méndez: Por su apoyo incondicional durante mi estancia universitaria y laboral, por confiar en mí y querer dar más de sí mismo para continuar con los proyectos que están pendientes. Largo es el camino que hemos recorrido, pero sin duda es impensable el que nos falta por recorrer, muchas gracias. A mí: Por no dejarme caer aun cuando las cosas se pusieron difíciles, por perseverar y encontrar fuerza donde no existía, por no bajar la cabeza jamás y aceptar lo que me imponían, por exigirme, por dar lo mejor y lo peor de mí. Sin duda alguna mi paso por la universidad fue solo el comienzo de mi carrera, y aun cuando jamás seguí los patrones universitarios logre llegar al final, completamente satisfecho por mis logros, pero sin duda, con hambre de más. “Me acreditan ser uno de los trabajadores más duros, y quizás lo soy, si el pensamiento es equivalente a la labor, ya que he dedicado a ello casi todas mis horas despierto. Pero si el trabajo es interpretado como la ejecución definida en un tiempo específico, según reglas rígidas, entonces podría ser que soy el peor de los holgazanes.” Nikola Tesla XII
Índice General Capítulo I Introducción .................................................................................................. 1 Introducción ........................................................................................................................ 1 1.1 Planteamiento del Problema ...................................................................................... 1 1.2 Justificación................................................................................................................. 2 1.3 Trabajos Relacionados ................................................................................................ 3 1.4 Objetivo General ......................................................................................................... 6 1.5 Objetivos Específicos .................................................................................................. 6 1.6 Alcances y Limitaciones .............................................................................................. 7 Capítulo II Marco Teórico............................................................................................... 9 Introducción ........................................................................................................................ 9 2.1 Antecedentes a los Sistemas de Control .................................................................... 9 2.1.1 Control Automático......................................................................................... 9 2.1.2 Introducción a los Sistemas de Control ........................................................ 10 2.1.3 Características de un Sistema de Control ..................................................... 10 2.1.4 Configuraciones de un Sistema de Control ................................................... 11 2.1.5 Tipos de Sistema de Control ......................................................................... 11 2.1.6 Alternativas a los Sistemas de Control ......................................................... 12 2.1.6.1 Control Adaptativo ......................................................................... 12 2.1.6.2 Control Robusto .............................................................................. 12 2.1.6.3 Control Difuso ................................................................................. 13 2.1.6.3.1 Ventajas y Desventajas del Control Difuso .................. 13 2.2 Sistemas Difusos y Neuro-Difusos ............................................................................ 14 2.2.1 Lógica Difusa ................................................................................................. 15 2.2.2 Conjuntos Difusos ......................................................................................... 16 2.2.2.1 Definición ........................................................................................ 16 2.2.2.2 Funciones de Membresía................................................................ 18 2.2.2.3 Variable Lingüística ......................................................................... 19 2.2.3 Control Difuso ............................................................................................... 20 2.2.3.1 Fuzzificación .................................................................................... 21 2.2.3.2 Base de Conocimiento .................................................................... 21 2.2.3.3 Inferencia Lógica ............................................................................. 22 2.2.3.3.1 Tipo Mamdani................................................................... 23 2.2.3.3.2 Tipo Takagi-Sugeno-Kang ................................................. 24 2.2.3.4 Defuzzificación ................................................................................ 25 2.2.4 Sistemas Neuro-Difusos ................................................................................ 25 2.2.4.1 Redes Adaptativas .......................................................................... 26 2.2.4.2 Sistemas de Inferencia Neuro-difusos Adaptativos (ANFIS) .......... 28
XIII
Capítulo III Diseño del Control Difuso ........................................................................... 29 Introducción ...................................................................................................................... 29 3.1 Selección del Problema............................................................................................. 29 3.2 Desarrollo del Control Difuso ................................................................................... 29 3.2.1 Representación del Sistema de Lógica Difusa Usando MatLab .................... 30 3.2.2 Sistema de Inferencia Difusa ........................................................................ 30 3.2.3 Función de Membresía y Conjuntos Difusos ................................................ 31 3.2.4 Definición de las Variables ............................................................................ 32 3.2.5 Base de Conocimiento .................................................................................. 34 3.2.6 Visualización del Sistema Difuso Diseñado (No Entrenado) ......................... 35 3.2.7 Entrenamiento del Sistema Difuso (ANFIS) .................................................. 37 3.2.7.1 Analizar el Comportamiento de la Salida ....................................... 37 3.2.7.2 Datos de Entrenamiento a Partir del Conocimiento del Sistema ... 38 3.2.7.3 Carga de Datos Para el Entrenamiento Difuso ............................... 39 3.2.7.4 Inicialización y Generalización del Sistema de Inferencia Difuso ... 40 3.2.7.5 Entrenamiento ANFIS ..................................................................... 41 3.2.7.6 Prueba del Sistema de Inferencia Difusa Entrenado ...................... 45 Capítulo IV Diseño y Desarrollo del Péndulo Invertido .................................................. 51 Introducción ...................................................................................................................... 51 4.1 Etapa de Control A .................................................................................................... 51 4.1.1 Tipos de Encoder ........................................................................................... 51 4.1.1.1 Acelerómetro .................................................................................. 52 4.1.1.2 Potenciómetro ................................................................................ 58 4.1.2 Selección del Encoder ................................................................................... 61 4.1.3 Diseño de Software ....................................................................................... 61 4.1.3.1 Selección de los Microcontroladores a Utilizar .............................. 61 4.1.3.2 Programación Para la Etapa de Control A ...................................... 62 4.1.4 Diseño de Hardware ..................................................................................... 69 4.1.4.1 Fuente de Alimentación y Filtros .................................................... 69 4.1.4.2 Captura Analógica y Microcontroladores ....................................... 73 4.1.4.3 Visualización de Datos en LCD ........................................................ 74 4.1.4.4 Placa de Circuito Impreso (PCB) ..................................................... 74 4.1.4.5 Resultado Final de la PCB Para la Etapa de Control A .................... 76 4.2 Etapa de Control B .................................................................................................... 78 4.2.1 Selección del Microcontrolador a Utilizar .................................................... 78 4.2.2 Adquisición y Procesamiento de Información ............................................. 79 4.2.3 Programación Para la Etapa de Control B ..................................................... 80 4.2.4 Diseño de Hardware ..................................................................................... 85 4.2.4.1 Visualización de Datos del Puerto D en Barra de Leds ................... 85 4.2.4.2 El Microcontrolador y las Señales de Control Para la Etapa de Potencia .......................................................................................... 86 4.2.4.3 Placa de Circuito Impreso (PCB) ..................................................... 88 4.2.4.4 Resultado Final de la PCB Para la Etapa de Control B .................... 90 XIV
4.3 Etapa de Potencia ..................................................................................................... 92 4.3.1 Optoacopladores........................................................................................... 92 4.3.2 Selección de los Optoacopladores a Utilizar ................................................ 93 4.3.3 Puente H........................................................................................................ 94 4.3.3.1 Tipos de Puente H ........................................................................... 94 4.3.3.2 Elementos de Potencia Utilizados en los Puente H ....................... 96 4.3.3.3 Selección del Tipo de Puente H y los Elementos de Potencia a Utilizar ............................................................................................. 99 4.3.4 Diseño de Hardware ................................................................................... 100 4.3.4.1 Fuentes de Alimentación y Filtros ................................................ 100 4.3.4.2 Etapa de Acoplamiento y Manipulación de las Señales de Control .......................................................................................... 102 4.3.4.3 Diseño de Puentes H ..................................................................... 103 4.3.4.4 Placa de Circuito Impreso (PCB) ................................................... 107 4.3.4.5 Resultado Final de La PCB Para la Etapa de Potencia ................... 109 4.4 Presentación Final del Sistema Completo .............................................................. 111 Capítulo V Diseño de la Estructura Tipo Carro Para el Control de un Péndulo Invertido ....................................................................................................................113 Introducción .................................................................................................................... 113 5.1 Estructura base para el Carro ................................................................................. 113 5.1.1 Selección de los Componentes ................................................................... 113 5.1.1.1 Placas Laterales ............................................................................. 114 5.1.1.2 Ejes Giratorios Para las Ruedas .................................................... 115 5.1.1.3 Ejes Fijos de Soporte ..................................................................... 117 5.1.1.4 Placa Superior Para Soporte del Sistema de Control.................... 118 5.1.2 Ensamblaje de la Estructura Base Para el Carro ......................................... 119 5.2 Estructura de Soporte Para el Encoder y la Masa del Péndulo .............................. 120 5.2.1 Selección de los Componentes ................................................................... 120 5.2.1.1 Base de Soporte ............................................................................ 121 5.2.1.2 Sistema de Engranaje y Soporte de la Masa del Péndulo ............ 122 5.2.1.3 Extensiones Para la Masa del Péndulo Invertido ......................... 123 5.2.2 Ensamblaje de la Estructura de Soporte Para el Encoder y la Masa del Péndulo ....................................................................................................... 126 5.3 Sistema de Tracción y Engranajes........................................................................... 127 5.3.1 Selección de los Componentes ................................................................... 127 5.3.1.1 Motores ........................................................................................ 127 5.3.1.2 Engranes ....................................................................................... 129 5.3.2 Ensamblaje del Sistema de Tracción y Engranaje ....................................... 130 5.4 Módulo de Energía.................................................................................................. 131 5.3 Ensamblaje Final ..................................................................................................... 132
XV
Capítulo VI Pruebas y Resultados ................................................................................137 Introducción .................................................................................................................... 137 6.1 Módulo Independiente de Captura de Datos en Tiempo Real ............................... 137 6.1.1 Placa Arduino y Respaldo de Datos en SD .................................................. 137 6.1.2 Manejo de los Datos Obtenidos ................................................................. 138 6.2 Características del Entorno Para Realizar las Pruebas ........................................... 139 6.3 Pruebas Realizadas ................................................................................................. 140 6.3.1 Prueba de Perturbación y Recuperación .................................................... 140 6.3.2 Prueba Grado a Grado y Recuperación ...................................................... 142 6.4 Consumo de RAM y ROM en los Microcontroladores ............................................ 148 Conclusiones y Trabajos Futuros .................................................................................149 Apéndices ..................................................................................................................153 A Datos para el Entrenamiento Difuso ..................................................................... 153 B Valores obtenidos al realizar la caracterización del Acelerómetro analógico MMA7361L ............................................................................................................ 155 C Programa desarrollado en Niple para el acelerómetro analógico MMA7361L .... 157 D Programa realizado en PIC C para el acelerómetro digital .................................... 159 E Programa realizado en PIC C para el potenciómetro ............................................ 163 F Programa desarrollado en PIC C para el µC_1 ........................................................ 165 G Programa desarrollado en PIC C para el µC_2 ........................................................ 167 H Programa desarrollado en Niple para el µC_3....................................................... 171 I Modelado matemático de un Péndulo Invertido………………………………………………..173 Referencias ................................................................................................................179
XVI
Índice de Figuras 1.1 1.2 1.3 1.4 1.5
Péndulo invertido tipo carro....................................................................................... 1 Sistema Péndulo, Actuador, Computadora Personal ................................................ 4 Mecanismo del péndulo invertido de la maqueta BYTRONIC ................................... 4 Diagrama a bloques del sistema péndulo invertido con el controlador difuso con dos variables de entrada ............................................................................................ 5 Diagrama a bloques diseñado en Simulink ................................................................ 6
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13
Representación de un Sistema de Control .............................................................. 10 Conjunto de días que pertenecen al fin de semana ................................................ 16 Representación del conjunto de personas de Estatura Alta ................................... 17 Funciones de membresía comúnmente utilizadas .................................................. 18 Valores que puede tomar la variable Velocidad en un motor eléctrico .................. 19 Estructura básica de un sistema difuso ................................................................... 20 Construcción de una función de membresía ........................................................... 21 Resolución obtenida según el número de funciones de membresía ...................... 22 Regla tipo Mamdani ................................................................................................. 23 Sistema Tipo Mamdani ............................................................................................ 23 Regla tipo Sugeno .................................................................................................... 24 Sistema difuso tipo Sugeno ..................................................................................... 24 Ejemplo de una red adaptativa ................................................................................ 27
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
Proceso de control difuso del péndulo invertido .................................................... 30 Configuración del sistema difuso usando FLT ......................................................... 31 Funciones de membresía para la variable Error ...................................................... 32 Funciones de membrecía para la variable Posición ................................................ 33 Variable de salida Grados ........................................................................................ 33 Definición de reglas de inferencia difusa ................................................................. 34 Visualizador de reglas .............................................................................................. 35 Visualizador de superficie del control difuso antes del entrenamiento ANFIS ....... 36 Forma de respuesta sigmoidea ................................................................................ 37 (a) Vista lateral Derecha, (b) Vista Frontal, (c) Vista lateral Izquierda y (d) Vista desde arriba ............................................................................................... 38 Datos de Entrenamiento cargados en ANFIS ........................................................... 39 Método de Gridpartition y Generate FIS ................................................................. 40 Generación e inicialización del sistema (número y tipo de funciones de membresía) ............................................................................................................... 41 Selección del método de entrenamiento (método híbrido) .................................... 42 Error de inicio antes del entrenamiento ANFIS ....................................................... 43 Error después del entrenamiento con 1000 épocas ............................................... 43
3.11 3.12 3.13 3.14 3.15 3.16
XVII
3.17 3.18 3.19 3.20 3.21 3.22 3.23 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31
Error establecido después del entrenamiento de 17000 épocas ............................ 44 Error establecido después del entrenamiento de 20000 épocas ............................ 45 Verificación de entrenamiento del sistema difuso .................................................. 46 Funciones de membresía de la variable Error, con el sistema de entrenamiento ANFIS ........................................................................................................................ 46 Funciones de membresía de la variable Posición, con el sistema de entrenamiento ANFIS ........................................................................................................................ 47 Editor de la variable Salida, con los datos obtenidos después del entrenamiento ANFIS ........................................................................................................................ 48 Visualizador de superficie del control difuso después del entrenamiento ANFIS .. 49 Etapas del sistema completo ................................................................................... 51 Vista física del acelerómetro de 3 ejes MMA7361L ................................................ 52 Respuesta del Acelerómetro entre la relación valor analógico-grados .................. 53 Diagrama de conexión para el acelerómetro MMA7361L ...................................... 54 Vista física del acelerómetro de 3 ejes MMA8452Q ............................................... 55 Ejes del acelerómetro en posición estática ............................................................. 55 Componentes vectoriales en los ejes X y Z .............................................................. 56 Fuerza aplicada a las componentes X y Z ................................................................ 56 Diagrama de conexión para el acelerómetro MMA8452Q ..................................... 57 Respuesta en función del modo de regulación de un Potenciómetro .................... 58 Potenciómetro empleado ........................................................................................ 59 Diagrama de conexión para el Potenciómetro ........................................................ 60 Respuesta del Potenciómetro entre la relación valor analógico-grados ................ 60 Filtros de Línea ......................................................................................................... 69 Uso de capacitores para filtro en fuente de alimentación ...................................... 70 Uso de bobina para filtrado en fuente de alimentación ......................................... 70 Filtro en circuitos integrados ................................................................................... 71 Diagrama de conexión para la fuente de alimentación con filtros ......................... 72 Diagrama de conexión de los µCs ............................................................................ 73 Jumpers de selección para la visualización de información .................................... 74 Diseño en ARES PROTEUS de la Etapa de Control A ................................................ 75 Diseño en 3D de la Etapa de Control A .................................................................... 76 Acabado final de la Etapa de Control A ................................................................... 77 Circuito esquemático de un puente H con interruptores ........................................ 78 Configuración del Timer2 del µC_3 .......................................................................... 79 Respuesta de los módulos CCP según la posición (en grados) del Péndulo Invertido ................................................................................................................... 80 Configuración de entrada y salido para los pines del µC_3 ..................................... 81 Captura del Puerto D dentro del registro d_l de 8 bits ........................................... 81 Comparaciones para controlar el comportamiento de los motores ....................... 82 Acciones programadas si se cumple la primera condición ...................................... 83 Acciones programadas si se cumple la segunda condición ..................................... 84 XVIII
4.32 4.33 4.34 4.35 4.36 4.37 4.38 4.39 4.40 4.41 4.42 4.43 4.44 4.45 4.46 4.47 4.48 4.49
4.53 4.54 4.55 4.56 4.57 4.58 4.59 4.60 4.61 4.62 4.63 4.64 4.65 4.66 4.67 4.68
Acciones programadas si se cumple la tercera condición ....................................... 84 Conexiones necesarias para el circuito integrado 74LS245 en el sistema .............. 85 Conexión de la barra de leds ................................................................................... 86 Diseño en ISIS PROTEUS para el Etapa de Control B ............................................... 87 Diseño en ARES PROTEUS de la Etapa de Control B ................................................ 88 Diseño en ARES PROTEUS para la barra de leds ...................................................... 89 Diseño en 3D de la Etapa de Control B .................................................................... 89 Diseño en 3D de la Etapa para la barra de leds ....................................................... 90 Cara frontal del diseño para la Etapa de Control B ................................................. 90 Cara trasera del diseño para la Etapa de Control B ................................................. 91 Diseño fabricado para la barra de leds .................................................................... 91 Optoacoplador 4N25 y distribución de pines .......................................................... 93 Conexión del Optoacoplador 4N25 .......................................................................... 93 Circuito esquemático simplificado de un Puente H ................................................. 94 Circuito esquemático de un Medio Puente H .......................................................... 95 Circuito esquemático de un Puente H completo con transistores MOSFET ........... 95 Circuito esquemático del CI L293 ............................................................................. 96 Circuito esquemático de un Puente H diseñado con transistores BTJ PNP y NPN ......................................................................................................................... 97 Diagrama esquemático de transistores Darlington NPN y PNP .............................. 97 Circuito esquemático de un Puente H diseñado con transistores Darlington ........ 98 Circuito esquemático de un Puente H diseñado con transistores MOSFET de canal N y canal P ...................................................................................................... 98 Circuito esquemático de un Puente H diseñado con transistores IGBT .................. 99 Conexiones y componentes para las fuentes de voltaje de 24VDC ...................... 101 Conexiones y componentes para la fuente de voltaje de 5VDC ........................... 102 Conexiones y componentes para la etapa de acople ............................................ 102 Conexiones y componentes para la manipulación de las señales de control ....... 103 Diseño de un Puente H con transistores Darlington ............................................. 104 Conexiones y componentes para un Puente H ...................................................... 104 Conexiones y componentes para un Puente H ...................................................... 105 Diseño en ISIS PROTEUS para la Etapa de Potencia .............................................. 106 Diseño en ARES PROTEUS de la Etapa de Potencia ............................................... 107 Diseño en 3D de la Etapa de Potencia ................................................................... 108 Cara frontal del diseño para la Etapa de Potencia ................................................ 109 Cara posterior del diseño para la Etapa de Potencia ............................................ 110 Vista Superior del Sistema Completo .................................................................... 111 Vista Lateral del Sistema Completo ....................................................................... 112 Vista Frontal del Sistema Completo ....................................................................... 112
5.1 5.2 5.3 5.4
Placa lateral extraída de una impresora marca HP ............................................... 114 Ubicación de las placas laterales dentro de la estructura base para el carro ...... 115 Eje giratorio para las ruedas extraído de una impresora marca HP ..................... 116 Ubicación de los ejes giratorios dentro de la estructura base para el carro ........ 116
4.50 4.51 4.52
XIX
5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12
Ubicación de los ejes fijos dentro de la estructura base para el carro ................. 117 Ubicación de la placa superior dentro de la estructura base para el carro .......... 118 Vista lateral de la estructura base para el carro ................................................... 119 Vista superior de la estructura base para el carro ................................................ 119 Vista inferior de la estructura base para el carro ................................................. 120 Base de soporte extraída de una impresora marca HP ........................................ 121 Ubicación del encoder dentro de la base de soporte ........................................... 122 Engranes metálicos de un servomotor Tower Pro MG-996R ............................... 122 Ubicación del encoder dentro de la base de soporte ........................................... 123 Extensión fijada al sistema de engranes de soporte ............................................ 124 Extensión fijada a la masa del Péndulo ................................................................. 124 Varilla de aluminio atornillada a las extensiones ................................................. 125 Vista frontal de la estructura de soporte para el encoder y la masa del péndulo ................................................................................................................. 126 Vista lateral de la estructura de soporte para el encoder y la masa del péndulo ................................................................................................................. 126 Motor de DC extraído de una impresora marca HP ............................................. 128 Ubicación de los motores dentro de la estructura base para el carro ................. 128 Engranes extraídos de una impresora marca HP .................................................. 129 Ubicación del sistema de engranes dentro de la estructura base para el carro .. 130 Vista interna del sistema de tracción y engranaje montado sobre la estructura base para el carro ................................................................................................. 130 Diseño del módulo de energía .............................................................................. 131 Vista superior del módulo de energía ................................................................... 132 Acabado final de la estructura tipo carro y el módulo de energía desarrollados en el software de diseño mecánico SolidWorks ................................................... 133 Vista superior de la estructura tipo carro y el módulo de energía ....................... 134 Vista lateral de la estructura tipo carro y el módulo de energía .......................... 134 Vista superior de la estructura tipo carro ............................................................. 135 Vista superior del módulo de energía ................................................................... 135 Módulo Independiente de Captura de Datos en Tiempo Real ............................. 138 Área donde se realizaron las pruebas ................................................................... 139 Prueba de Recuperación y Perturbación para 40, 60 y 80 cm. entre masa y pivote .................................................................................................................... 141 Prueba Grado a Grado y Recuperación, 91° al inicio ............................................. 142 Prueba Grado a Grado y Recuperación, 92° al inicio ............................................. 143 Prueba Grado a Grado y Recuperación, 93° al inicio ............................................. 143 Prueba Grado a Grado y Recuperación, 94° al inicio ............................................. 144 Prueba Grado a Grado y Recuperación, 95° al inicio ............................................. 144 Prueba Grado a Grado y Recuperación, 96° al inicio ............................................. 145 Prueba Grado a Grado y Recuperación, 91° al inicio contra 89° al inicio .............. 146 Prueba Grado a Grado y Recuperación, 93° al inicio contra 87° al inicio .............. 146 Prueba Grado a Grado y Recuperación, 95° al inicio contra 85° al inicio .............. 147 XX
C.1 H.1 I.1 I.2 I.3
Programa desarrollado en Niple para el acelerómetro analógico MMA7361L .... 157 Programa desarrollado en Niple para el µC_3....................................................... 171 Sistema del Péndulo Invertido .............................................................................. 173 Diagrama de fuerzas del carro .............................................................................. 174 Diagrama de fuerzas sobre el péndulo ................................................................. 175
XXI
XXII
Índice de Tablas 3.1 3.2 3.3 3.4 3.5
Conjuntos difusos asignados para cada entrada ..................................................... 32 Definición del rango de Error ................................................................................... 33 Base de conocimientos del control difuso ............................................................... 34 Parámetros de membresía de Error y Posición Actual del entrenamiento ANFIS .. 47 Parámetros de la variable Salida del entrenamiento ANFIS .................................... 48
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14
Valores obtenidos mediante la caracterización del Potenciómetro ....................... 59 Comparación de encoder ......................................................................................... 61 Configuración del µC PIC18F4550 ............................................................................ 62 Sub-rutina para leer el puerto analógico ................................................................. 63 Sub-rutina para calcular el ángulo ........................................................................... 63 Ciclo infinito del programa principal ....................................................................... 64 Sub-rutina CalcularAngulo ....................................................................................... 65 Sub-rutina CalcularError .......................................................................................... 65 Sub-rutinas FuncionPertenenciaError y FuncionPertenenciaPosActual ................. 66 Sub-rutina Fuzzificación ........................................................................................... 67 Sub-rutina Composición ........................................................................................... 67 Sub-rutina Agregación ............................................................................................. 68 Ciclo infinito del programa principal ....................................................................... 68 Tabla comparativa de las características de los elementos de potencia utilizados ................................................................................................................ 100
6.1 6.2
Tabla comparativa del trabajo realizado contra trabajos similares ...................... 147 Porcentajes de memoria utilizada en cada µC ...................................................... 148
A.1 B.1
Datos para el Entrenamiento Difuso ..................................................................... 153 Valores obtenidos al realizar la caracterización del Acelerómetro analógico MMA7361L ............................................................................................................. 155 Programa realizado en PIC C para el acelerómetro digital .................................... 162 Programa realizado en PIC C para el potenciómetro ............................................ 164 Programa desarrollado en PIC C para el µC_1 ........................................................ 166 Programa desarrollado en PIC C para el µC_2 ........................................................ 169
D.1 E.1 F.1 G.1
XXIII
XXIV
Capítulo I Introducción En este capítulo se expone la problemática que presenta controlar un sistema inestable y no lineal como un péndulo invertido, la solución propuesta, los trabajos relacionados, los alcances y limitaciones; así como también, el objetivo general y los objetivos específicos que se cubrirán en el presente trabajo de tesis.
1.1 Planteamiento del Problema El péndulo invertido es un sistema inestable y no lineal, conocido por ser uno de los problemas más importantes y clásicos de la teoría de control [1], [2].
Figura 1.1. Péndulo invertido tipo carro.
Uno de los modelos más estudiados de esta familia es el denominado péndulo invertido sobre un vehículo, al que comúnmente se le denomina carro, como se muestra en la Figura 1.1.; en el cual, se observa la masa del carro (M), la fuerza aplicada al carro (F), la masa del péndulo (m), la distancia desde el pivote al centro de gravedad del péndulo (l) y finalmente el ángulo del péndulo respecto a la vertical θ. El funcionamiento básico de este sistema consiste en mantener el péndulo en equilibrio, es decir, cuando el péndulo se incline hacia un lado el algoritmo de control tratará de mover el carro en la misma dirección con la velocidad apropiada; esto se logra gracias a los sensores de posición, que son los que detectan la posición del péndulo. Es un sistema flexible que permite la investigación y posterior validación del diseño y aplicación de controladores óptimos y robustos [3]. 1
El péndulo invertido sobre un carro es un sistema subactuado [4] con dos grados de libertad y solo una entrada para el control, esto lo hace interesante para el estudio y análisis de controladores para mantenerlo en estado estable. La problemática del control de este sistema consiste en que es un típico sistema no lineal y ha sido ampliamente estudiado, debido a características tales como, no linealidad, inestabilidad, fase no mínima, etc., esto hace que requiera de un control no lineal. Además, presenta un modelado matemático complejo, el cual, se ve afectado por las características físicas del sistema, como: la masa del carro y del péndulo, la distancia desde el pivote al centro de gravedad del péndulo, la velocidad de reacción, el ángulo del péndulo respecto a la vertical, mismas características que a su vez delimitarán el rango de control de este.
1.2 Justificación En la naturaleza existen sistemas físicos como el péndulo invertido, que no pueden ser operados de forma lineal debido a las características no-lineales inherentes que estos presentan, y porque las técnicas clásicas de control como el PID1, fueron desarrolladas para controlar sistemas lineales; lo cual implica que, si estas técnicas son aplicadas a sistemas de este tipo, el rango de operación del sistema estaría muy limitado. Por lo que, se considera necesario estudiar y desarrollar técnicas avanzadas de control para estos tipos de sistemas, como son los controles inteligentes; mismos que tienen muchas alternativas y entre las cuales se encuentra el control difuso, que por su naturaleza sencilla y posibilidad de trabajar sin un modelo matemático preciso de la planta; conviene explorar su implementación con sistemas embebidos. Por lo tanto, en este trabajo se diseñará e implementará un control difuso aplicado a un sistema de péndulo invertido. Las aplicaciones de los controladores basados en Lógica Difusa, han encontrado mucha aceptación por parte de Investigadores e Ingenieros en todos los ámbitos del control automático; ya que se ha demostrado tanto en la investigación como en la práctica, que el uso de los CLD2 se justifica cuando los procesos a controlar resultan muy complejos o bien, cuando se tienen deficiencias en el modelado del mismo [5]. Sin embargo, en muchas ocasiones los procesos son tan complejos que la experiencia del diseñador del Controlador Lógico Difuso, por si sola, no es suficiente para que funcione de manera óptima. Es por ello, que para mejorar el desempeño de los CLDs, se están empezando a utilizar otras herramientas que ayuden a obtener una base de conocimientos óptima. Una de estas herramientas y la cual se empleará para el desarrollo
1 2
PID.- Control Proporcional Integral Derivativo. CLD.- Controlador Lógico Difuso.
2
de esta Tesis será el uso de las redes neuronales, que servirán para sintonizar un Controlado Lógico Difuso aplicado al control de un péndulo invertido. Otra justificación de porqué trabajar con este tipo de sistemas es la de poder desarrollar aplicaciones del péndulo invertido en la vida cotidiana, como son: el mantenimiento del vuelo de un cohete, corregir las perturbaciones que existen en el vuelo de una aeronave, control de misiles, análisis de la biomecánica en marcha, balance y postura humana, comportamiento de sistemas robóticos, el caminar de robots bípedos, estabilidad en grúas así como en edificios, transportador personal, etc. Todas éstas son aplicaciones de gran complejidad que se han realizado con sistemas convencionales, sin embargo hay otros problemas que no se han podido solucionar por estas técnicas y se requiere explorar otras alternativas.
1.3 Trabajos Relacionados Dentro de la literatura desarrollada entre universidades y centros de investigación, se encuentra una gran diversidad de trabajos que tratan sobre el desarrollo de CLDs implementados en el control de un péndulo invertido, así como de otras alternativas de control, de entre los cuales, destacan los siguientes: En 2004, F. Castaños y R. Carrera de la Universidad Nacional Autónoma de México (UNAM) [1], proponen levantar al péndulo a partir de su posición vertical hacia abajo con un algoritmo sencillo que contiene reglas heurísticas de tipo una condición una acción (ifthen), y regularlo en su posición vertical con una retroalimentación de estado con ubicación de polo óptima, diseñada con un regulador lineal cuadrático (LQR) y el modelo del sistema linealizado en el punto de equilibrio inestable. Tal sistema, se compone de un péndulo invertido, un actuador y una computadora que contiene el programa que realiza el control desarrollado en un lenguaje de alto nivel, como lo es MATLAB, en tiempo real, en su opción de SIMULINK. Dicho sistema cuenta con una masa del carro de 3.200 Kg, una masa del péndulo de 0.329 Kg y una distancia del pivote al centro de la masa de 44 cm, ver Figura 1.2, dentro de las características principales del péndulo invertido presentado.
3
Figura 1.2. Sistema Péndulo, Actuador, Computadora Personal [1].
En 2009, Ing. Gabriel Calderón Zavala del Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) [24], presenta el estudio y desarrollo de un controlador neuronal analógico para ser implementado en el control de un péndulo invertido de tipo carro. Dicho controlador resuelve el problema de inestabilidad característico de este sistema. La maqueta de péndulo invertido marca BYTRONIC localizada en el CENIDET, es el sistema con el que se llevaron a cabo las pruebas correspondientes. El mecanismo del péndulo consiste en un carro que soporta una varilla y una masa montada sobre el pivote, el cual, es movido a lo largo de un riel de 50 cm mediante un servo-motor y una banda dentada, véase Figura 1.3.
Figura 1.3. Mecanismo del péndulo invertido de la maqueta BYTRONIC [24]. 4
En 2009, Luis Mario Bárcenas Cortés y Cesar Pérez Martínez del Instituto Politécnico Nacional [26], presentan el diseño de un controlador difuso para un sistema péndulo invertido, desarrollando su modelo matemático e incluyendo sus no-linealidades con la finalidad de llevar a cabo una simulación digital a través del Simulink de MATLAB. Dicho controlador es de tipo Mamdani, el cual consta de dos variables de entrada, cada una con tres funciones de membresía. Finalmente, por medio de gráficas presentan el comportamiento de las variables en estudio del sistema y posteriormente controladas por medio del controlador difuso diseñado. Cabe mencionar que para efectos de simulación, realizaron algunas consideraciones para el modelo de péndulo invertido, en donde, fijaron una masa del carro de 0.45 Kg, una masa para el péndulo de 0.27 Kg, véase Figura 1.4.
Figura 1.4. Diagrama a bloques del sistema péndulo invertido con el controlador difuso con dos variables de entrada [26].
En 2013, Juan G. Valenzuela Hernández, Oscar D. Montoya Giraldo y Didier Giraldo Buitrago de la Universidad Tecnológica de Pereira [27], publican en la revista Scientia et Technica Año XVIII, Vol. 18, No. 4 Lógica Difusa Aplicada al Control Local del Péndulo Invertido con Rueda de Reacción, donde se utilizan los conceptos fundamentales de la lógica difusa para diseñar el controlador a partir del conocimiento que los operarios tienen sobre la dinámica del sistema, evitando el modelado dinámico del mismo y aplicando diferentes tipos de perturbaciones con el fin de evaluar las capacidades del controlador. En 2013, Carlos Eduardo Caamaño y Gerald Dalbie Rene Solís Pereira de la Universidad Tecnológica de Chile INACAP [25], presentan la construcción de un péndulo invertido rotacional controlado mediante Lógica Difusa, con el objetivo de mantener el péndulo en su punto de equilibrio inestable (control de equilibrio), el cual también deberá soportar perturbaciones; además de la implementación de otro controlador difuso (control de levantamiento) para abordar el sub problema de llevar el péndulo de su 5
posición de reposo a las cercanías de la posición invertida. Dicho prototipo consiste en un brazo que rota en el plano horizontal por medio de un motor y de un péndulo unido a uno de los extremos del brazo que es libre de rotar en el plano vertical. El modelo en Simulink puede observarse en la Figura 1.5.
Figura 1.5. Diagrama a bloques diseñado en Simulink [25].
1.4 Objetivo General Diseñar e implementar un Controlador Lógico Difuso en dispositivos microcontroladores aplicado al control de un péndulo invertido.
1.5 Objetivos Específicos 1. Utilizar las herramientas del software matemático MatLab, así como del software Scientific Workplace para el desarrollo del Control Difuso. 2. Crear un sistema barra-masa (Péndulo) que oscile libremente sobre engranes, presentando el menor grado de fricción, además de contar con un encoder para medir la posición angular de éste. 3. Desarrollar un sistema en un µC3 PIC18F4550 (µC_1) capaz de medir la inclinación del péndulo invertido y enviar este valor mediante el puerto serial a µC_2.
3
µC.-Microcontrolador.
6
4. Migrar el Control Difuso desarrollado a un µC PIC18F4550 (µC_2), utilizando lenguaje C para la programación. La salida del Control Difuso estará dispuesta por el puerto B del microcontrolador para el µC_3. 5. Desarrollar un sistema en un µC PIC18F4550 (µC_3) que genere dos señales PWM proporcionales al valor recibido por µC_2, además de controlar el sentido de giro de dos motores. 4
6. Desarrollar un sistema optoacoplador para el µC_3, que proporcione la potencia para dos motores de 24VDC a 600mA cada uno. 7. Integrar en cada sistema desarrollado una etapa de visualización de datos. 8. Desarrollar una tarjeta tipo SHIELD5 que integre todos los sistemas mencionados anteriormente. 9. Desarrollar el chasis de un carro que sea capaz de moverse libremente sobre un eje. 10. Desarrollar un módulo que sea capaz de respaldar la posición del Péndulo Invertido en una memoria SD utilizando la placa Arduino Mega 2560.
1.6 Alcances y Limitaciones. Alcances: El Control de un Péndulo Invertido desarrollado en este trabajo de Tesis se realizó implementando un Sistema de Lógica Difusa en microcontroladores basado en MatLab; el cual será capaz de mantener en posición vertical una barra de longitud variable y masa fija aun cuando sufra una perturbación o inicialice en un ángulo al menos de ± 5°. El Sistema de Inferencia Lógica empleado es de tipo Sugeno, por lo tanto, no necesita defuzzificación, además, cuenta con dos variables de entrada para las cuales se tienen tres funciones de membresía, por cada una. Se diseñó un circuito electrónico tipo SHIELD, el cual, es capaz de leer la posición del Péndulo Invertido a través de una señal analógica, procesar la información, generar señales para controlar dos puentes H, ya sean comerciales (L293D) o con transistores Darlington (TIP 127 y TIP 122) y, por último, activar dos motores de 24VDC a 600mA. Finalmente, se desarrolló una estructura tipo carro sin riel, la cual, es capaz de moverse libremente sobre un solo eje según sea la respuesta de los motores; sobre ella 4
PWM.- Pulse-WidthModulation (Modulación por ancho de pulsos). SHIELD.-Placa de circuito impreso que se puede conectar sobre otra para ampliar las capacidades del sistema. 5
7
está montado el Sistema Completo para el Control del Péndulo Invertido. De igual forma, sobre ella se encuentra el Módulo Independiente de Captura de Datos en Tiempo Real y la Estructura de Soporte Para el Encoder y la Masa del Péndulo.
Limitaciones: Para garantizar el funcionamiento adecuado del sistema, es necesario que el suelo donde se realicen las pruebas sea completamente firme (0°) y se encuentre libre de polvo y suciedad, además, las llantas se tienen que limpiar continuamente para garantizar la adhesión al suelo. El encoder utilizado en el sistema es un potenciómetro extraído de un servomotor, por lo tanto, su función original es simplemente girar sin una carga, sin embargo, al ser utilizado para medir la inclinación que presenta el Péndulo Invertido, presenta desgaste con el tiempo y éste, se ve reflejado en los datos que proporciona, por tal motivo, se debe sustituir después de cierto período de trabajo. El control presenta una mejor respuesta cuando la distancia entre el pivote y la masa del Péndulo Invertido es mayor, y deficiente cuando es menor. Por lo que, el sistema es capaz de alcanzar la estabilidad con barras superiores a 60 cm.
8
Capítulo II. Marco Teórico Introducción En este capítulo se abordarán los tipos de sistemas de control, así como las características principales y las configuraciones que pueden presentar; así como también se describirá a detalle el sistema de control difuso y los elementos más importantes para su diseño.
2.1 Antecedentes a los Sistemas de Control Para poder entender la manera en la que se puede controlar un Péndulo Invertido como el que se comentó en el Capítulo I, es importante conocer los métodos de control convencional y los no convencionales utilizados para este fin. Es por esto, que a continuación se describen conceptos fundamentales de la Teoría de Control.
2.1.1 Control Automático El control automático es el mantenimiento de un valor deseado dentro de una cantidad o condición midiendo el valor existente, comparándolo con el valor deseado, y utilizando la diferencia para proceder a reducirla. En consecuencia, el control automático exige un lazo cerrado de acción y reacción que funcione sin intervención humana. El Control Automático es una de las disciplinas que soporta de manera importante el tecnológicamente avanzado modo de vida que conocemos hoy en día. Sus aplicaciones se encuentran en casi todas las actividades que el ser humano realiza en el siglo XXI: desde el funcionamiento del telescopio espacial Hubble y de numerosas naves espaciales hasta el refrigerador que se encuentra en los hogares asegurando la conservación de los alimentos. Desde los depósitos de agua residenciales hasta las grandes industrias que producen todos los satisfactores de los seres humanos: automóviles, aviones, alimentos, bebidas y medicinas, por mencionar algunos [4]. Las aplicaciones del control automático en la actualidad son muy extensas, variadas e importantes. Quizá una de las más populares es la del control de robots manipuladores en la industria de manufactura. Desde la líneas de ensamble de automóviles hasta las celdas robotizadas de soldadura. Las razones principales para este éxito son la alta calidad del trabajo, el ahorro de tiempo y la reducción del costo de producción.
9
2.1.2 Introducción a los Sistemas de Control El control es un campo del conocimiento de gran utilidad en la ingeniería y la ciencia. Ha sido piedra angular en el desarrollo de la tecnología, ya que posibilita obtener un óptimo desempeño de sistemas autónomos [7]. Por ejemplo, la velocidad o precisión que podrá alcanzar un ser humano con respecto a la de una máquina. El hombre ha utilizado el control con fines variados a lo largo de la historia. Los griegos, hacia el año 300 A.C., utilizaban sistemas de control de nivel de líquidos. En 1681 Denis Papin inventó una válvula de seguridad para controlar la presión de las máquinas de vapor. En el siglo XVII Cornelis Drebbel inventó un sistema de control de temperatura. Para 1745 Edmun Lee desarrolló un control de velocidad para un molino de viento. De la misma manera James Watt inventó el gobernador centrífugo de velocidad para controlar la velocidad de los motores de vapor. Esto solo por mencionar algunos [6]. Hoy en día el uso de los sistemas de control es muy diverso, ya que se pueden aplicar desde la guía de proyectiles hasta la navegación de naves espaciales, barcos y aviones. En la industria también encontramos numerosos usos, pero también no están limitados a ésta, sino que pueden encontrarse también en la ciencia, en el hogar y en el entretenimiento, debido a que podemos encontrar sencillos sistemas de control en los sistemas de calefacción de las casas o los sistemas de entretenimiento, como los DVD’s o reproductores de CD que cuentan con un sistema de control integrado [8].
2.1.3 Características de un Sistema de Control Un sistema de control produce una salida o respuesta para una entrada o un estímulo dado, como se muestra en la Figura 2.1.
Figura 2.1. Representación de un Sistema de Control.
La entrada representa una respuesta deseada y la salida representa una respuesta real. Existen dos factores que hacen que la salida sea diferente a la entrada. El primero se conoce como respuesta transitoria, la cual está presente cuando existe un cambio instantáneo de la entrada con respecto al cambio gradual de la salida. Después de la
10
respuesta transitoria, un sistema físico aproxima su respuesta en estado estable, en donde trata de aproximarse a la respuesta deseada. La precisión es el segundo factor que puede ocasionar que la salida sea diferente a la entrada, ésta diferencia es conocida como error en estado estable y en ocasiones depende de las características físicas del dispositivo que se desea controlar.
2.1.4 Configuraciones de un Sistema de Control Existen dos configuraciones de sistemas de control: lazo abierto y lazo cerrado. En un sistema de control de lazo abierto la salida siempre se rige por la señal de entrada y no es capaz de realizar compensaciones a las perturbaciones que se suman a la señal de actuación del controlador, esto se debe a que carece de una retroalimentación [6]. Un sistema de control de lazo cerrado mide la señal de la respuesta de salida y la compara con la señal de la respuesta de entrada mediante una trayectoria de retroalimentación, la cual permite estimar las perturbaciones exteriores para que estas puedan ser corregidas [6]. Para poder realizar el control de cualquier proceso es necesario contar con el modelo matemático del mismo. El modelo matemático de estos procesos puede estar en el dominio de la frecuencia o en el tiempo. Los modelos en el dominio de la frecuencia requieren de una función de transferencia y se utilizan principalmente en sistemas lineales que no varían con el tiempo, haciendo de esta su principal ventaja. Los modelos en el dominio del tiempo permiten modelar procesos más complejos, con múltiples entradas y salidas.
2.1.5 Tipos de Sistemas de Control Existen diferentes tipos de sistemas de control, estos pueden ser de acción proporcional, acción integral, acción proporcional-integral, acción proporcional-derivativa y acción proporcional-integral-derivativa. Estos tipos de control mejoran el error en estado estable y la respuesta transitoria. El modelo en cualquier dominio que se elija, requiere de modelos matemáticos que pueden ser demasiado complejos o incluso imposibles de obtenerlos y su análisis resulta también muy difícil o no existen técnicas desarrolladas aún para abordarlos.
11
2.1.6 Alternativas de Sistemas de Control Los tipos de control como los que se mencionaron anteriormente realizan de manera eficiente la función de mantener estable un sistema, pero son vulnerables a cambios e incertidumbres que no se tomaron en cuenta cuando se diseñaron. Existen algunas alternativas que se han desarrollado recientemente, para estos casos. Una de estas alternativas es el control adaptativo el cual puede modificar su comportamiento para responder a cambios que no estaban previstos en el diseño. Otra alternativa es el control robusto el cual considera las incertidumbres que se presentan en un sistema para responder de manera óptima. También se encuentra el control difuso, el cual a diferencia de los sistemas de control convencionales, utiliza el conocimiento experto para realizar una acción de control.
2.1.6.1 Control Adaptativo Un control adaptativo es un tipo de control no lineal el cual puede modificar su comportamiento en respuesta a cambios en la dinámica del sistema a las perturbaciones. En un mecanismo de adaptación se presenta una solución en tiempo real al problema de diseño para sistemas con parámetros conocidos [7]. Existen dos tipos de controladores adaptativos; los controladores adaptativos con modelo de referencia y los controladores autoajustables. Los primeros intentan alcanzar para una señal de entrada definida, un comportamiento de lazo cerrado dado por un modelo de referencia. Mientras que los segundos tratan de alcanzar un control óptimo, sujeto a un tipo de controlador para obtener información del proceso y sus señales [7]. Las ventajas de los controladores adaptativos con modelo de referencia están en su rápida adaptación para una entrada definida y en la simplicidad de tratamiento de la estabilidad. Los controladores autoajustables tienen la ventaja de que se adaptan para cualquier caso y en particular para perturbaciones no medibles [7]. Un control adaptativo se puede utilizar en procesos industriales muy complejos donde la variación de los parámetros de un sistema no se puede determinar desde el inicio.
2.1.6.2 Control Robusto Un proceso puede ser demasiado complejo para ser descrito de forma precisa por un modelo matemático. Se puede considerar que cualquier modelo matemático de un proceso va a ser en mayor o menor grado impreciso o va a tener incertidumbre o errores de modelado. Si se desea controlar de manera eficiente un proceso, es necesario contar 12
con la información de las posibles fuentes de incertidumbre y evaluar su efecto sobre el comportamiento del sistema [7]. El control robusto abarca los problemas que se caracterizan por considerar incertidumbres en el modelo que sean tolerables por un controlador lineal y que no varíe en el tiempo [7]. Las principales aplicaciones de la teoría de control robusto se han llevado a cabo en las áreas de control de procesos químicos, robótica, estructuras flexibles y control de aeronaves.
2.1.6.3 Control Difuso Un sistema de control difuso es una alternativa muy útil a los sistemas de control que requieren de un modelo matemático demasiado complejo. Este tipo de sistema de control utiliza el conocimiento experto para generar una base de conocimientos, la cual le otorga al sistema la capacidad de tomar decisiones. La base del funcionamiento de este tipo de sistema de control es la lógica difusa. Se hace referencia a esta alternativa de control debido a que se utilizará en este trabajo para controlar los movimientos del péndulo invertido.
2.1.6.3.1 Ventajas y Desventajas del Control Difuso En los últimos años los sistemas difusos se han venido consolidando como una herramienta útil para tratar y modelar sistemas complejos y no lineales, especialmente en áreas como el control, el procesamiento de imágenes, la robótica y la electrónica de consumo. Algunas de las ventajas que presentan este tipo de sistemas se citan a continuación. 1. Son bastante intuitivos: La posibilidad de usar expresiones con imprecisión genera modelos intuitivos. 2. Tolerancia al ruido: como una salida depende de varias reglas no se verá afectada si se produce una perturbación (ruido). 3. Estabilidad: en caso de caída del sistema ésta se produce lentamente, dando tiempo de tomar medidas. 4. No necesita un modelo matemático preciso del sistema a controlar: permite controlar sistemas que son muy difíciles de controlar con sistemas de control clásicos.
13
5. Pueden ser evaluadas mayor cantidad de variables. 6. Relaciona entradas y salidas sin tener que entender todas las variables, permitiendo que el sistema pueda ser más confiable y estable que uno con un sistema de control convencional. 7. Es posible obtener prototipos rápidamente, ya que no requiere conocer todas las variables acerca del sistema antes de empezar a trabajar. 8. Alta velocidad de respuesta. Por otra parte, estos sistemas de control también presentan desventajas, las cuales, se citan en breve. 1. Para conseguir los resultados deseados debe plantearse la velocidad de respuesta del sistema de control, la cual, vendrá limitada por factores como el grado de precisión requerido o la flexibilidad del diseño. En otras palabras, si se requiere de una alta precisión en el control, será necesaria una gran cantidad de conjuntos para cada variable y un alto número de reglas, lo cual exigirá una elevada cantidad de cálculos, causando aumento del tiempo de respuesta. 2. Si se requiere que el sistema de control tenga flexibilidad de adaptaciones a los cambios del sistema y aprenda de los errores cometidos, serán necesarios más cálculos adicionales, estas opciones influyen en el costo del sistema final y en muchos casos será la mayor restricción de diseño. 3. Necesitan ajustes después de ser puestos en operación. 4. Requieren mayor número de simulaciones para obtener la salida que se aproxime al comportamiento deseado del sistema. 5. Poca flexibilidad en los programas de implantación de sistemas expertos, cuando se desea cambiar un valor particular en una regla. Para minimizar algunas de las desventajas de los sistemas difusos, se han desarrollado técnicas híbridas, una de las principales son los sistemas Neuro-difusos.
2.2 Sistemas Difusos y Neuro-difusos Debido a las ventajas que presenta esta técnica de control, se comentan algunos de los conceptos y términos básicos que definen los principales rasgos estructurales de los Sistemas de Control Difuso y Neuro- difuso.
14
2.2.1 Lógica Difusa La lógica difusa surge gracias al Profesor Lotfi Zadeh, matemático de la Universidad de California, Berkeley; en el momento en que publica un documento titulado Fuzzy Sets en la revista Information and Control [10]. Este documento estuvo terminado dos años antes de su publicación, pero no había sido divulgado debido a que esta revista técnica no se atrevía a publicar tan radical idea, pues era inconcebible en el campo de la ingeniería que para la época, se aferraba de la descripción matemática clásica de la lógica bivalente. La aceptación y publicación de este documento solo ocurrió hasta 1965, año en el que el profesor Zadeh asumió el cargo de editor de la revista y a partir del cual, propuso otras ideas sobre conjuntos y algoritmos difusos [10]. Esta teoría propuesta sobre conjuntos difusos, partió de observaciones realizadas por Zadeh para el modelado de sistemas y la limitante que en repetidas ocasiones se tenía para describir ciertos fenómenos mediante expresiones matemáticas, por tal motivo, plantea su principio de la incompatibilidad el cual predica que: "Conforme la complejidad de un sistema aumenta, nuestra capacidad para ser precisos y construir instrucciones sobre su comportamiento disminuye hasta el umbral más allá del cual, la precisión y el significado son características excluyentes"[10].
De esta manera, Zadeh realiza este planteamiento teórico que denomino lógica difusa, definiéndolo como un intento de formalización o mecanización de dos importantes capacidades del ser humano. La primera, la capacidad de conversar, razonar y tomar decisiones racionales en un ambiente de imprecisión o información incompleta. Y la segunda, la capacidad de formular una amplia variedad de tareas físicas y mentales sin realizar mediciones y sin computadoras [10]. La lógica difusa puede ser descrita como un sistema interpretativo, en el cual los objetos o elementos son relacionados con conjuntos de fronteras no nítidamente definidas, otorgándoles un grado de pertenencia relativa o graduada y no estricta como es costumbre en la lógica tradicional [11]. Se podría decir que existe una especie de interpolación entre una frontera y otra, o bien, entre un conjunto y otro, permitiendo así tener en cuenta elementos que presentan un estado ambiguo como el que se presenta en expresiones tales como: La temperatura está más o menos alta o El vaso esta medio lleno, las cuales son evidentemente inaceptables en la lógica clásica o bivalente. Este tipo de situaciones son frecuentemente encontradas en la vida cotidiana como por ejemplo, en el caso de considerar los días que pertenecen al fin de semana como se puede observar en la Figura 2.2. La mayoría estamos de acuerdo con que obviamente este conjunto incluye totalmente los días Sábado y Domingo, pero ¿Qué sucede con el día Viernes? Muchos viven parte de este día como si fuera del fin de semana, pero técnicamente y razonando de la manera lógica clásica, este es excluido del fin de semana.
15
Figura 2.2. Conjunto de días que pertenecen al fin de semana.
Se puede decir entonces, que la lógica difusa no es realmente difusa, de hecho, una de las principales contribuciones de esta, es el alto poder de precisión y a su vez es mucho más cercana al razonamiento humano [28]. Existe una gran cantidad de planteamientos teóricos alrededor de la lógica difusa que han tenido una amplia aplicación en el diseño de sistemas de control, puesto que con esta herramienta se ha logrado incorporar sentencias de lenguaje común para interpretar el estado de las variables de cierto proceso, haciendo que el sistema de control pueda ser diseñado a partir de la descripción del comportamiento deseado por el operario. Para llevar a cabo este proceso, las entradas son clasificadas dentro de conjuntos difusos asignándoles en cada momento un grado de pertenencia relativa a estos conjuntos de fronteras no nítidamente definidas, después son sometidos a un conjunto de reglas para luego deducir en forma lógica una actuación posible que permita llevar a la variable al estado deseado, produciendo una o varias acciones de salida (Acción de Control) [27], [10].
2.2.2 Conjuntos Difusos 2.2.2.1 Definición Un conjunto difuso es una clasificación de objetos con un grado de membresía continuo. Como conjunto, es caracterizado por una función de membresía (característica), la cual asigna a cada elemento u objeto un grado de membresía dentro del rango de cero a uno [0,1]. Un conjunto difuso se encuentra asociado por un valor lingüístico que está definido por una palabra, etiqueta lingüística o adjetivo. Un conjunto difuso en el universo de discurso U (que contiene todos los elementos posibles o valores para una variable) se caracteriza por una función de pertenencia ( ) y puede representarse como un conjunto de pares ordenados de un elemento x y su valor de pertenencia al conjunto [9]: 16
*(
( )|
)+
(2.1)
( ) es el grado de Dónde : , - es la función de pertenencia, pertenencia de la variable x y U el universo de discurso. Entre más cerca este A del valor 1, mayor será la pertenencia del objeto x al conjunto A. Un ejemplo pertinente para explicar el concepto de conjunto difuso es el conjunto de valores que inciden en la expresión: Esta persona es alta, haciendo referencia a la estatura de una persona. Basándose en el razonamiento de la lógica clásica, el conjunto de estaturas para los cuales la anterior expresión es válida, es para aquellas personas con estaturas mayores a un valor determinado como podría ser de 1.70 metros. Es en este momento donde entra en conflicto el razonamiento humano y la lógica clásica, pues en el caso de que la estatura de una persona sea 1.68 metros, ¿Es esta persona baja? El hecho de que una persona sea catalogada como alta o baja, cuando existe una diferencia de estaturas que resulta insignificante para la percepción de sus sentidos, no resulta muy coherente para el razonamiento humano. Este concepto de conjuntos difusos, señala que todos los elementos en los que se basa el razonamiento humano son etiquetas cualitativas y no necesariamente cuantitativas, las cuales, pueden ser modeladas dentro de un lenguaje matemático a través de la teoría de conjuntos difusos. Para una expresión tal como Estatura Alta, la teoría de conjuntos difusos plantea que este conjunto no posee una frontera nítidamente establecida que discrimine de manera estricta si un valor de estatura pertenece a este conjunto o no, sino que de manera distinta, asigna a esta variable un grado de pertenencia a dicho conjunto, siendo de esta manera como una persona de 1.65 metros de estatura podría tener una pertenencia de 0.85 al conjunto de Estatura Alta y a la vez, un grado de pertenencia de 0.1 al conjunto de Estatura Baja, Figura 2.3.
Figura 2.3. Representación del conjunto de personas de Estatura Alta. 17
Estos conjuntos no nítidamente definidos juegan un papel muy importante en el pensamiento humano, particularmente en los dominios de reconocimiento de patrones, comunicación de información y abstracción, permitiendo incorporar sentencias del lenguaje común para interpretar el estado de las variables de cierto proceso, asignándoles en cada momento un grado de pertenencia a estos conjuntos difusos.
2.2.2.2 Funciones de Membresía Las funciones de membresía constituyen un método utilizado para la representación de los conjuntos difusos, de tal manera que a cada punto en el espacio se le asigna un valor o grado de pertenencia a dicho conjunto, definiendo así al conjunto mismo. De este modo, ( ) es el grado de membresía de en A y es limitado a valores entre 0 y 1, siendo 0 el más bajo grado de membresía y 1 el más alto. Nótese el contraste con la teoría de conjuntos clásica o discreta, en el cual ( )= 0 ó 1, dónde 0 significa que no pertenece a A y 1 denota que pertenece a A. Las funciones de membresía más utilizadas son: triangular, trapezoidal, gaussiana y sigmoidal, Figura 2.4.
Figura 2.4. Funciones de membresía comúnmente utilizadas.
Existe cantidad de software especializado donde se podrá encontrar gran variedad de funciones de membresía, pero la selección de una de estas siempre estará determinada por el problema, análisis y punto de vista del diseñador y la capacidad de carga computacional, siendo este último un factor sumamente influyente en el momento
18
de escoger la función de membresía, donde en la mayoría de los casos, la función triangular resulta siendo el candidato más llamativo.
2.2.2.3 Variable Lingüística Si una variable puede adoptar palabras en el lenguaje natural como sus valores, ella es llamada una variable lingüística, donde las palabras son caracterizadas mediante conjuntos difusos definidos en el universo de discurso en el cual la variable es definida [12]. Cuando se usan sensores para medir variables, ellos entregan información numérica para expresar su magnitud; mientras que en el caso de preguntar a una persona experta que evalué la variable, esta lo expresa en palabras. Es aquí donde toma una gran importancia el concepto de variable lingüística, puesto que esta permite realizar una descripción natural a través de términos matemáticos. En el caso de la velocidad de un motor eléctrico, esta es una variable x que puede tomar valores en el intervalo [0, Vm], donde Vm es la máxima velocidad que puede alcanzar el motor. Se definen entonces tres conjuntos difusos lenta, media y rápida en el rango ya definido. Si se toma x como variable lingüística, entonces ella puede tomar lenta, media y rápida como sus valores, de tal manera que se podría decir que x es lenta, x es media, x es rápida. Lo anterior es presentado en la Figura 2.5.
Figura 2.5. Valores que puede tomar la variable Velocidad en un motor eléctrico.
Una variable lingüística está caracterizada mediante unos parámetros (X, T, U, M): X: es el nombre de la variable lingüística. T: es el conjunto de valores lingüísticos que X puede tomar.
19
U: es el dominio físico de la variable dentro del cual la variable lingüística X puede tomar cualquier valor cuantitativo. M: es una regla semántica que relaciona cada valor lingüístico en T con conjunto difuso en U. De manera que para el ejemplo anterior, se puede definir que X es la velocidad del motor eléctrico, T está conformado por lenta, media y rápida, U es el intervalo [0, Vm] y M es la regla semántica que relaciona lenta, media y rápida con las funciones de pertenencia de la Figura 2.5.
2.2.3 Control Difuso El conjunto difuso es una alternativa práctica para resolver una variedad de complejas aplicaciones de control, ya que propone un método para construir controles no lineales a través de información heurística [13, 14]. En el desarrollo de un control difuso es posible prescindir de la matemática y transmitir el raciocinio humano a un sistema. La estructura básica de un sistema difuso se muestra en la Figura 2.6. El corazón del sistema es una base de conocimientos que contiene la definición de las funciones de membresía (MFC´s) para los antecedentes y consecuentes (MFG´s) usadas en las reglas, y un mecanismo de inferencia capaz de procesar esta información. Además, normalmente se incluyen los bloques de interface que conectan el mecanismo de inferencia con las entradas y salidas del sistema, a estos bloques se les conoce como fuzzificador y desfuzzificador [15].
Figura 2.6. Estructura básica de un sistema difuso [12].
20
2.2.3.1 Fuzzificación La fuzzificación convierte los datos de entrada en valores lingüísticos adecuados para su manipulación. En esta etapa, se le otorga a los datos de entrada un grado de membresía a uno o varios de los conjuntos difusos en los que se divide el rango de valores posibles para dicha entrada, para ello busca la correspondencia entre el estado de las variables y las funciones de membresía definidas para tal propósito. Dentro de este proceso se podría obtener mayor resolución al representar el dominio con mayor cantidad de conjuntos difusos, lo cual resulta inconveniente puesto que se produce un incremento en la cantidad de reglas que implicaría un aumento de la complejidad de cálculo y por consiguiente mayores gastos computacionales. La cantidad de conjuntos que aquí se definen debe ser impar (usualmente entre 3 y 9), con el fin de que esté disponible un punto central que tiende a inhibir oscilaciones numéricas entre conjuntos adyacentes [16].
2.2.3.2 Base de Conocimiento La base de conocimiento es el corazón del sistema difuso en el sentido de que contiene información necesaria para el funcionamiento de los otros componentes del sistema. Está formado por una base de datos y una base de reglas. La primera recoge la definición de las funciones de pertenencia de las entradas y la salida y toda la información necesaria para caracterizar las reglas de control y la manipulación de datos; y la segunda, es un conjunto de reglas que caracteriza y resume los objetivos de control de un experto por medio de expresiones lingüísticas de control. La base de datos está relacionada con los soportes sobre los cuales los conjuntos difusos son definidos. Las funciones de membresía son definidas por algunos parámetros que varían según la forma de la función deseada, obteniendo de esta manera funciones como la mostrada en la Figura 2.7.
Figura 2.7.Construcción de una función de membresía. 21
En el momento de definir las funciones de membresía se debe cubrir todo el rango de valores posibles que puede tomar la variable medida o el rango de valores que se pueden asignar a la señal que será aplicada al sistema controlado. La selección de la cantidad de conjuntos difusos para representar una variable determina la resolución del control obtenible, pues el mismo espacio se puede definir con distinto número de conjuntos como se muestra en la Figura 2.8, haciendo de esta una de las consideraciones para el diseño en las que más cuidado se debe tener, convirtiéndola en un procedimiento heurístico de ensayo y error donde se busca una partición optima [17].
Figura 2.8. Resolución obtenida según el número de funciones de membresía.
La imagen a la izquierda de la Figura 2.8 muestra un espacio definido por tres conjuntos difusos: N: Negativo. ZE: Cero. P: Positivo. Obteniendo así una resolución amplia, pues cada conjunto difuso está abarcando una gran cantidad de posibles valores que puede asumir la variable en algún momento, mientras que la imagen de la derecha de la Figura 2.8 muestra una variable definida por siete conjuntos difusos de la siguiente manera: NL: Negativo Grande. NM: Negativo Mediano. NS: Negativo Pequeño. ZE: Cero. PS: Positivo pequeño. PM: Positivo Mediano. PL: Positivo Grande. Debido a que el rango de valores posibles es definido por una mayor cantidad de conjuntos difusos se puede lograr una resolución más fina pero puede traer ciertas dificultades en los procesos de Fuzzificación y defuzzificación.
2.2.3.3 Inferencia Lógica La inferencia, es el proceso mediante el cual se genera un mapeo para asignar a una entrada una salida utilizando lógica difusa. El proceso de inferencia provee las bases para
22
la toma de decisiones del sistema. Este, involucra la utilización de funciones de pertenencia y las reglas generadas en la base de conocimientos. Existen diferentes métodos de inferencia, los más comunes son los de Mamdani y Takagi – Sugeno – Kang[19, 20].
2.2.3.3.1 Tipo Mamdani Este modelo fue propuesto por Ebrahim Mamdani en 1974; en este sistema difuso las reglas están dadas por expresiones lingüísticas tipo if – else (si – entonces). Una regla de la base de conocimientos tiene dos partes, el antecedente y la consecuente, Figura 2.9. El consecuente de una regla fuzzy asigna un conjunto difuso a la salida, los cuales sufren el proceso de agregación que se hace según el método ''MAX'' que elige en cada valor posible de salida el máximo valor de pertenencia obtenido en todas las reglas. Así, el conjunto difuso agregado de salida será la respuesta difusa del sistema de decisión. En un sistema difuso tipo Mamdani tanto el antecedente como el consecuente de las reglas están dados por expresiones lingüísticas.
Figura 2.9. Regla tipo Mamdani.
En la Figura 2.10 se muestra la configuración básica de un sistema tipo Mamdani [18], en el cual se distinguen tres elementos principales: fuzzificación, motor de inferencia difusa y defuzzificación.
Figura 2.10. Sistema Tipo Mamdani. 23
El método de Mamdani tiene muchas variaciones. Se pueden utilizar diferentes Tnormas (Min, Producto, etc.) para conectar antecedentes, diferentes operadores para la agregación y numerosos métodos para la defuzzificación.
2.2.3.3.2 Tipo Takagi - Sugeno - Kang Las reglas de la base de conocimientos de un sistema Sugeno son diferentes a las de los sistemas Mamdani pues el consecuente de esta regla ya no es una etiqueta lingüística sino que es una función de la entrada que tenga el sistema en un momento dado, Figura 2.11.
Figura 2.11. Regla tipo Sugeno.
En los sistemas difusos tipo Sugeno, los valores que arrojan las consecuentes de las diferentes reglas que se han activado en un momento determinado ya son valores numéricos, por lo que no se necesita una etapa de defuzzificación [21]. La Figura 2.12 presenta el esquema de un sistema de inferencia tipo Sugeno. En estos sistemas la fuzzificación e implementación son similares a los empleados en los sistemas tipo Mamdani, mientras que la diferencia se presenta en la forma como se calcula la salida.
Figura 2.12. Sistema difuso tipo Sugeno.
24
Para calcular la salida del sistema difuso se ponderan los diferentes consecuentes teniendo en cuenta el valor con el cual se activó el antecedente de cada una de las reglas, para un sistema con dos reglas la salida del sistema difuso seria: (2.2)
2.2.3.4 Defuzzificación La defuzzificación es el proceso de convertir los valores difusos de las variables de salida que resultan del proceso de inferencia, en información precisa expresada mediante un valor nítido. Esta etapa es necesaria en los sistemas de tipo Mamdani, porque el conjunto difuso de salida para estos sistemas no es directamente utilizable para dar una información precisa al operador o mandar un accionador, es necesario pasar del “mundo difuso” al “mundo real” [22]. La selección del método de defuzzificación puede jugar un papel decisivo en la síntesis de modelos difusos para muchas áreas de aplicación. Particularmente dentro del área de control difuso, su influencia puede ser determinante en el comportamiento y la robustez del controlador [22]. La estrategia de esta fase, es obtener el elemento numérico que mejor represente el conjunto difuso de salida. Desgraciadamente, no existe hasta la fecha una forma sistemática para la elección del método de defuzzificación más adecuado para cada aplicación. En la literatura, los métodos mayoritariamente utilizados son: Centro de Áreas (CDA) Centro de Sumas (CDS) Centro de Picos (CDP) Centro del Área Mayor (CDAM) Primer Máximo (PM) Media de Máximos (MDM) Método de Calidad ξ
2.2.4 Sistemas Neuro-difusos. Los sistemas que combinan diferentes técnicas de computación suave, proporcionan mayores ventajas para resolver una gran cantidad de problemas de una manera más eficiente, debido a que cada método aporta diferentes ventajas y características que 25
resuelven cierto tipo de problemas. Se combinan tratando de aprovechar características que ayuden al desarrollo de aplicaciones específicas, tal es el caso de los sistemas de inferencia Neuro-difusos Adaptativos, mejor conocidos como ANFIS por sus siglas en inglés (Adaptive Neuro-FuzzyInferenceSystems). Los sistemas Neuro-difusos Adaptativos son un campo de la Inteligencia Artificial y se clasifican como sistemas híbridos ya que se combinan las técnicas de Redes Neuronales Artificiales y de Lógica Difusa. En los últimos años, la lógica difusa se ha utilizado en un amplio número de aplicaciones [9]. Sin embargo, hay algunos aspectos básicos que son importantes de entender. No existen métodos estándares para transformar conocimiento humano o experiencia en una base de reglas de un sistema difuso. Hay una necesidad de un método efectivo para ajustar las funciones de membresías y así minimizar el error de salida o maximizar el índice del rendimiento. Un área de aplicación importante de la lógica difusa, es el área de controladores difusos, sin embargo, la selección de los parámetros adecuados como son el número y tipo de funciones de membresía, las reglas para el comportamiento deseado del controlador, etc., es un área difícil en la mayoría de los casos. Los sistemas ANFIS pueden servir para construir un conjunto de reglas difusas ifthen con las funciones de membresía apropiadas para generar los pares de entrada-salida estipulados. En el modo ANFIS, las redes neuronales son usadas para representar los sistemas de inferencia difusa, mismos que son empleados como sistemas de toma de decisiones.
2.2.4.1 Redes Adaptativas Una red adaptativa, es una estructura de red que consiste en número de nodos conectados a través de enlaces direccionales, en el que cada nodo representa una unidad de proceso, y los enlaces entre los nodos especifican la relación causal entre los nodos conectados. Cada nodo realiza un tipo de función en particular (función en nodo) sobre sus señales de entrada, para generar una sola salida de nodo, y cada enlace especifica la dirección de flujo de señales de un nodo a otro. Todos o parte de los nodos son adaptativos, lo que significa que, las salidas de esos nodos dependerán de los parámetros modificables relacionados con estos nodos.
26
Figura 2.13. Ejemplo de una red adaptativa.
En la Figura 2.13, se ejemplifica una red adaptativa de dos capas ocultas, la primera con cuatro nodos y la segunda con tres, y una capa de salida con dos nodos. Las diferentes capacidades de adaptación se presentan usando nodos en forma de cuadro y circulares. Los nodos cuadrados son nodos adaptivos, tienen parámetros modificables, mientras que los nodos circulares son nodos fijos porque no tienen parámetros que se ajusten. Las redes adaptivas se clasifican en dos categorías de acuerdo al tipo de enlaces que tienen: Redes de Avance: En este tipo de redes, la salida de cada nodo se propaga del lado de entrada hacia el lado de salida. Redes Recurrentes: Son redes que tienen algún enlace de retroalimentación que forma una trayectoria circular en la red. La regla de aprendizaje especifica cómo deben actualizarse los parámetros para minimizar una medida de error, que es una expresión matemática para medir la discrepancia entre la salida actual de la red y la salida deseada. En otras palabras, una red adaptativa es usada para la identificación de sistemas y su tarea es encontrar una arquitectura de red apropiada y un conjunto de parámetros que puedan modelar mejor un sistema desconocido que es descrito por un conjunto de datos pares de entrada-salida. Si la regla de aprendizaje se aplica empleando pares de datos, es decir, que para cada dato de entrada se especifica a la red la respuesta que debe tener su salida, se denomina una regla de aprendizaje supervisado (red supervisada), por otro lado cuando se utiliza solamente vectores de entrada, la red de aprendizaje es sin supervisión (red no supervisada).
27
La regla básica de aprendizaje de una red adaptiva, es el método de la regla delta correspondiente a una gradiente descendiente, en el cual, el vector gradiente se deriva mediante invocaciones sucesivas de la regla de la cadena en el cálculo de derivadas de una función continua.
2.2.4.2 Sistemas de Inferencia Neuro-difusos Adaptativos (ANFIS) Los sistemas ANFIS son una clase de redes adaptativas que son fundamentalmente equivalentes a un sistema de inferencia difuso. Su mecanismo es similar a la de una red neuronal, solo que ajusta funciones de membresía y no pesos sinápticos. Al igual que en una red neuronal entrenada con el algoritmo de retro propagación, ANFIS utiliza este algoritmo para su entrenamiento, para el ajuste de los parámetros en un sentido lo hace a través del método de optimización denominado estimador de mínimos cuadrados, y de regreso ajusta con el método de Gradiente Descendiente, a este método de aprendizaje se le conoce como Aprendizaje Híbrido, pues combinan ambos métodos de optimización. Las ANFIS facilitan el aprendizaje y la adaptación de estos sistemas que combinan técnicas de lógica difusa, que proporcionan un mecanismo de inferencia sobre la incertidumbre y las redes neuronales que ofrecen grandes ventajas, tales como el aprendizaje, adaptación, tolerancia a fallas, el paralelismo, etc. A pesar de que la lógica difusa puede codificar el conocimiento a través de etiquetas lingüísticas, usualmente toma mucho tiempo definir y ajustar las funciones de membresía, sin embargo, las técnicas de aprendizaje de las redes neuronales pueden automatizar este proceso y reducir sustancialmente el tipo y el costo de desarrollo al mejorar el desempeño del modelo. El algoritmo de aprendizaje híbrido en ANFIS, se basa en la minimización del error. Una parte importante de los sistemas ANFIS son las redes neuronales, sin embargo, una de las desventajas es que el proceso de aprendizaje en ocasiones es relativamente lento, debido a que requiere muchas épocas de entrenamiento [23].
28
Capítulo III. Diseño del Control Difuso Introducción En este capítulo se hablará del diseño del control difuso, el cual se desarrolló en el software matemático MatLab con apoyo del software matemático Scientific Workplace. Además de describir con detalle las etapas que se llevaron a cabo para manipular un péndulo invertido y los elementos más importantes utilizados. De acuerdo con la aplicación y el desarrollo del control, durante este capítulo se mostraran los aspectos más importantes.
3.1 Selección del Problema Los péndulos invertidos son una familia de artefactos que constituyen un banco de pruebas muy completo e interesante para la ingeniería de control, ya que son un ejemplo típico de un sistema inestable. El más estudiado de los miembros de esta familia es el denominado control invertido sobre un vehículo, normalmente conocido como carro. Consiste en un péndulo o varilla que gira libremente por uno de sus extremos mediante una articulación situada sobre un carro que se mueve sobre una guía rectilínea horizontal bajo la acción de una fuerza F, que es la acción de control con la que se pretende actuar sobre la posición de la varilla[24]. El objetivo a alcanzar es mantener el péndulo en posición vertical tanto como sea posible y tener control sobre la posición del carro. Las principales aplicaciones del péndulo invertido son el mantenimiento del vuelo de un cohete, control de misiles, análisis de la biomecánica de la marcha, balance y postura humana, el caminar bípedo de robots, estabilidad en grúas así como en edificios [24]. Como se mencionó en el Capítulo II, existen diferentes metodologías para controlar un sistema inestable, sin embargo, el control difuso resulta eficiente para controlar un péndulo invertido, ya que no se requiere de un modelado matemático, sino de conocer el comportamiento que debería de tener el sistema.
3.2 Desarrollo del Control Difuso El sistema de control se encargará de mantener en equilibrio el Péndulo Invertido, utilizando técnicas de lógica difusa así como del sistema de inferencia difusa basada en la red de adaptación (ANFIS), la cual es un tipo de red neuronal artificial. 29
Como se mencionó anteriormente, el control difuso se grabó en el µC PIC18F4550 y el entrenamiento del mismo se realizó mediante las herramientas que proporciona el software matemático MatLab. En la Figura 3.1, se muestra el proceso de control para el péndulo invertido, cuyo trabajo es mantener controlada una variable de salida con un ángulo de 90° respecto a la horizontal. El valor de la variable controlada se determinó con la ayuda del sistema de medida. Este valor se compara con el valor de referencia y la diferencia se aplica al sistema de control difuso, el cual se encarga de generar la salida necesaria al actuador con el fin de mantener controlada la planta.
Figura 3.1. Proceso de control difuso del péndulo invertido.
3.2.1 Representación del Sistema de Lógica Difusa Usando MatLab La caja de herramientas de lógica difusa FLT (por sus siglas en inglés) es usada para obtener la simulación del control que se empleó en el desarrollo del sistema de control en lazo cerrado, aplicado al diseño y desarrollo de un péndulo invertido. La caja de herramientas provee una interfaz gráfica (FIS) que permite dar una interpretación de manera práctica, además de como la técnica del control difuso ayuda a controlar un sistema en general. A continuación se presenta la configuración del FIS con valores predeterminados, en base a la experiencia del diseñador que sirve como punto de partida para poder realizar en entrenamiento automático neuro-difuso con el sistema ANFIS.
3.2.2 Sistema de Inferencia Difusa Como se mencionó en el Capítulo II existen dos métodos para la realización de la inferencia difusa, el método Mamdani y el Sugeno. En este caso se empleó el método Takagi-Sugeno debido a que no se necesita un método de defuzzificación.
30
Para la realización del control difuso del péndulo invertido se requieren dos entradas y una salida, tal como se muestra en la Figura 3.2.
Figura 3.2. Configuración del sistema difuso usando FLT.
En la Figura 3.2 se muestran las dos entradas, las cuales son suficientes para poder alcanzar los grados deseados para el péndulo invertido. La variable Error indica la diferencia que existe entre el valor de grados deseado y el valor de grados actual del péndulo. La variable Posición, registra los grados actuales del péndulo y por otro lado, la variable Grados indica la salida del valor de los grados que actuará sobre la planta. Para estabilizar la planta, los valores de entrada deben cumplir con los siguientes objetivos: 1. El error debe ser igual a 0. 2. La posición actual debe ser igual a los grados deseados (Set-Point).
3.2.3 Función de Membresía y Conjuntos Difusos Ya definidas las variables tanto de entrada como de salida, deben ser especificadas sus funciones de membresía o pertenencia. Existen varios tipos de funciones de membresía, las más comunes para el sistema de inferencia Sugeno son: Triangular, Trapezoidal, Gaussiana, Gamma y Trapecio extendido. Para el control desarrollado en este trabajo, se designó la función de pertenencia tipo triangular, ya que es la más factible para la realización del software en el µC y por lo tanto, el tiempo de cálculo se minimiza y se logra una mejor respuesta. Se asignaron tres conjuntos difusos con sus respectivas funciones de membresía por cada entrada, las cuales se nombran de la siguiente manera:
31
Etiqueta
Conjunto Difuso
Función de Membrecía
Error Negativo, Error Triangular Cero y Error Positivo Posición Negativa, Posición Posición Cero y Triangular Posición Positiva Tabla 3.1. Conjuntos difusos asignados para cada entrada. Error
La razón por la que se asignaron tres conjuntos difusos por cada entrada es porque así se obtiene una gran cantidad de posibles valores que puede asumir la variable de entrada en algún momento y se mejora el tiempo de respuesta del sistema ya que el número de cálculos es menor, tal como se mencionó en el Capítulo II. Además, en este caso como ambas entradas tienen tres funciones de membresía se obtiene una matriz con 9 posibles reglas difusas.
3.2.4 Definición de las Variables Se definen las variables de salida del sistema, ya que sobre la base de ellas se estructuran las de entrada. Las salidas están dadas directamente por el planteamiento de las funciones del mecanismo. El péndulo invertido genera una variación en su posición actual dada una perturbación, por ello, presenta diferentes inclinaciones y de esta forma genera una única variable de salida, llamada Grados. Los rangos para las funciones de membresía se realizan de la siguiente manera. Para el caso de la variable Error, las etiquetas lingüísticas son los efectos posibles: Error Negativo (eN), Error Cero (eC) y Error Positivo (eP) como se ve en la Figura 3.3.
Figura 3.3.Funciones de membresía para la variable Error.
Las variables tienen finalmente un rango de error de -60 a 60 grados, estos valores son definidos al tomar en cuenta el punto de referencia (set-point) menos los rangos 32
máximo y mínimo, de donde se considera que es posible obtener una respuesta favorable de la planta, véase Tabla 3.2.
Valor de Operador Posición Actual Referencia 90 150 (máximo) = 90 30 (mínimo) = Tabla 3.2. Definición del rango de Error.
Error -60 60
Para el caso de la variable Posición, las etiquetas lingüísticas son los efectos posibles: Posición Negativa (pN), Posición Cero (pC) y Posición Positiva (pP), estas variables tienen un rango de posición de 30° a 150° como se ve en la Figura 3.4.
Figura 3.4.Funciones de membrecía para la variable Posición.
Definidos los rangos y las funciones de membresía para las variables de entrada, se tienen nueve salidas constantes para la variable Grados, debido a que este tipo de sistema debe tener salidas constantes y no conjuntos difusos como el tipo Mamdani, por comodidad nombradas:S1, S2, S3, S4, S5, S6, S7, S8 y S9, véase Figura 3.5.
Figura 3.5. Variable de salida Grados. 33
3.2.5 Base de Conocimiento Esta sección describe la parte central del controlador difuso, nos referimos a la base de conocimiento, punto de partida para la generación del conjunto de reglas sobre las que se rige la inferencia. Después de definir las variables de entrada y salida, se elaboró una matriz llamada tabla de verdad, la cual, indica la relación entre las variables de acuerdo al objetivo que se persigue. Esta tabla sintetiza las reglas de tipo Si-Entonces que manejará el sistema. Para el desarrollo de las reglas difusas o base de conocimientos, se realizó un análisis tomando en cuenta el comportamiento deseado de acuerdo a las condiciones de entrada; con esto se obtuvo la información mostrada en la Tabla 3.3 y Figura 3.6.
Error Negativo
Error Cero
Error Positivo
Posición Negativa S1 S4 S7 Posición Cero S2 S5 S8 Posición Positiva S3 S6 S9 Tabla 3.3. Base de conocimientos del control difuso.
Figura 3.6. Definición de reglas de inferencia difusa.
Para la formulación de las reglas se hizo la composición de las entradas, las cuales en este caso tomaron el conector lógico AND ya que las condiciones de entrada deben ser tomadas en cuenta en conjunción. A cada una de las reglas se le dio un peso de uno que implica que todas tienen prioridad. A continuación se muestra la base de reglas difusas para el control del péndulo invertido. Si el Error es Negativo y la Posición es Negativa entonces la salida es S1. Si el Error es Negativo y la Posición es Cero entonces la salida es S2. Si el Error es Negativo y la Posición es Positiva entonces la salida es S3. Si el Error es Cero y la Posición es Negativa entonces la salida es S4. 34
Si el Error es Cero y la Posición es Cero entonces la salida es S5. Si el Error es Cero y la Posición es Positiva entonces la salida es S6. Si el Error es Positivo y la Posición es Negativa entonces la salida es S7. Si el Error es Positivo y la Posición es Cero entonces la salida es S8. Si el Error es Positivo y la Posición es Positiva entonces la salida es S9.
3.2.6 Visualización del Sistema Difuso Diseñado (No Entrenado) Los pasos anteriores se realizaron para diseñar el sistema difuso, pero para conocer su comportamiento se utiliza la herramienta del visualizador de reglas y visualizador de superficie provistas por el FLT. La Figura 3.7, muestra lo obtenido una vez que el algoritmo de fuzzificación ha sido desarrollado. Aquí se da una visión simplificada del sistema de inferencia difusa en donde cada regla es explicada de forma detallada.
Figura 3.7.Visualizador de reglas.
Se observan tres campos que son las variables de entrada y salida, cada una con sus respectivos conjuntos difusos y las reglas que son activadas de acuerdo a los valores actuales de las entradas. Cada regla es una fila y cada columna es una variable. Las dos 35
columnas están referenciadas a las funciones de membresía de Error y Posición y la tercera tiene los valores constantes de Grados, donde éstas corresponden a los enunciados Si-Entonces del formato de reglas difusas. En la Figura 3.7 se puede observar que cuando la variable Error es igual a cero y la Posición es igual a noventa, la salida Grados es igual a 0.5, dado que el rango de salida está definido de cero a uno; condición que muestra el objetivo deseado cuando se tiene una posición de 90°. En esta condición se cumple una regla, la cual es: Error = 0 y Posición = 90 por lo tanto Grados = 90 Y corresponde a la condición de la regla cinco que dice: Si el Error es Cero y la Posición es Cero entonces es S5. El sistema de inferencia difusa calcula la salida para esta condición, tomando en cuenta el peso de cada regla y entrega un resultado de 0.5. De esta forma, se puede ir observando el comportamiento del sistema por cada condición de entrada, sin embargo, para tener una idea general del comportamiento, se puede utilizar el visualizador de superficie que resume en un gráfico toda esta información, véase Figura 3.8.
Figura 3.8. Visualizador de superficie del control difuso antes del entrenamiento ANFIS.
Se puede observar que el sistema cumple con los objetivos fundamentales, sin embargo, en ambas zonas de los extremos inferiores presenta transiciones abruptas, lo cual es un comportamiento no deseado del sistema. Por lo tanto, se realiza el proceso de 36
entrenamiento del sistema utilizando la herramienta ANFIS, ya que ajustar los parámetros de forma manual es sumamente complicado.
3.2.7 Entrenamiento del Sistema Difuso Mediante ANFIS Una vez que se generó el sistema mediante la caja de herramientas de lógica difusa (FLT) de MatLab, se utiliza ahora la herramienta ANFIS, la cual aplica técnicas de inferencia difusa y técnicas de redes neuronales para aproximar el comportamiento del sistema basado en un conjunto de datos de entrada y salida. A continuación, se presentan los pasos necesarios para llevar a cabo el entrenamiento del sistema Neuro-difuso.
3.2.7.1 Analizar el Comportamiento de la Salida Observando el comportamiento del sistema en la Figura 3.8, se espera que la superficie se comporte como una curva sigmoidea, la cual, deberá tener un segmento central relativamente recto, claramente diferenciable de dos segmentos terminales con menor pendiente por los puntos de inflexión superior e inferior, tal como se muestra en la Figura 3.9. Ya que esta superficie permite modelar la respuesta que requiere el sistema para el control del péndulo, debido a que se desea que el sistema presente una respuesta lenta entre más cerca se encuentre del set-point y viceversa, entre más alejado se encuentre, debe tener una respuesta más rápida para aproximarse al set-point.
Figura 3.9. Forma de respuesta sigmoidea.
Analizando la salida que requiere el sistema y observando nuevamente la Figura 3.8, está claro que la gráfica presenta algunas transiciones abruptas, por lo cual, se plantea generar un gráfico en 3ra dimensión que se asemeje a la respuesta deseada. 37
3.2.7.2 Datos de entrenamiento a partir del conocimiento del sistema. Con los datos obtenidos a través de la herramienta del visualizador de reglas del FLT para los valores de las variables de entrada, salida y error, y con la ayuda del software matemático Scientific Workplace, se genera una matriz con los valores mencionados para generar una gráfica en 3ra dimensión (Ver Apéndice A) y aproximarla a la deseada (gráfica de forma sigmoidea), de no ser así, se manipulan los valores de la variable de salida a base de prueba y error hasta alcanzar una aproximación deseada de la respuesta. Esta manipulación de valores se realiza de forma gradual tanto para el rango de error negativo y el rango de error positivo, partiendo del set-point. De esta manera, se obtiene la gráfica en 3ra dimensión a una respuesta tipo sigmoidea, tal y como se muestran en la Figura 3.10 a, b, c, d.
a)
b)
c)
d) Figura 3.10. (a) Vista lateral Derecha, (b) Vista Frontal, (c) Vista lateral Izquierda y (d) Vista desde arriba. 38
3.2.7.3 Carga de Datos Para el Entrenamiento Difuso (ANFIS) La matriz que se realizó para la representación gráfica en 3ra dimensión de la respuesta de tipo sigmoidea consta de 94 columnas y 3 filas, lo cual da una cantidad de 282 datos, (ver apéndice A) y es guardada en un archivo .DAT, el cual contiene los datos deseados por el diseñador obtenido del comportamiento de la planta y el conocimiento del comportamiento deseado de todo el sistema. Estos datos son el objetivo a buscar por el entrenador ANFIS, variando los parámetros de los conjuntos difusos de entrada y los parámetros constantes de salida. En la Figura 3.11 se muestra la ventana gráfica del editor ANFIS, desplegando la gráfica de los datos de entrenamiento, los cuales aparecen como un conjunto de círculos. El eje horizontal es llamado data set index que indica la cantidad de datos de entrada obtenidos por el archivo .DAT, cada fila tiene un dato de Error y un dato de Posición Actual, y el eje vertical los valores de salida que son los Grados. Debido a que es una gráfica bidimensional no se aprecia la forma del comportamiento que se desea, sin embargo, sirve para que ANFIS compare el comportamiento del sistema a entrenar con el deseado.
Figura 3.11. Datos de Entrenamiento cargados en ANFIS.
En la parte superior derecha de la Figura 3.11 se muestra el número de entradas, número de salidas, números de funciones de membresía y número de datos de entrenamiento cargados. Antes de realizar el entrenamiento del sistema con los datos deseados se proporciona un valor de Error de tolerancia, esto indica hasta que limite se
39
desea alcanzar de tolerancia en el entrenamiento. En este caso, para el sistema del péndulo invertido, se desea tener como máximo un valor de 0,000001 de error promedio.
3.2.7.4 Inicialización y Generalización del Sistema de Inferencia Difuso El sistema de inferencia difuso se puede inicializar de dos formas, una en forma manual, tal como se realizó anteriormente y la otra automáticamente utilizando el método ANFIS. Esta segunda opción es una de las ventajas de utilizar el editor ANFIS, ya que se logran los mismos resultados con menos esfuerzo. Para mostrar cómo se realiza la inicialización del sistema en esta segunda opción, a continuación se describen los pasos. Se escogió el método de partición del sistema difuso, en este caso se seleccionó el método Grid partition que se muestra en la Figura 3.12. Este método de partición por default de ANFIS nos ayuda a observar el comportamiento del entrenamiento por partes y al mismo tiempo ver el decremento del error.
Figura 3.12. Método de Gridpartition y Generate FIS.
Para generar el sistema de inferencia difuso se despliega el submenú que se muestra en la Figura 3.13, oprimiendo el botón Generate FIS, en el cual se escoge el número de funciones y el tipo de funciones de membresía de entrada y salida. En este caso se definieron 3 funciones de membresía para cada entrada del tipo triangular y la salida como una constante, porque como ANFIS solo maneja sistemas de inferencia tipo
40
Sugeno para la implementación del Hardware es más sencilla la combinación constante y se obtienen resultados muy semejantes.
Figura 3.13. Generación e inicialización del sistema (número y tipo de funciones de membresía).
3.2.7.5 Entrenamiento ANFIS Existen dos métodos de optimización disponibles para el entrenamiento del sistema de inferencia difusa, estos son: el Método híbrido y el Método back propagation. En este caso se seleccionó el método de aprendizaje híbrido como se muestra en la Figura 3.14, debido a que es más rápido, por combinar el algoritmo de aprendizaje de gradiente descendiente y el de mínimos cuadrados, para la búsqueda de la optimización. Además, usa el método back propagation para el ajuste de los parámetros asociados con las funciones de membresía de entrada y salida. El error de tolerancia es usado para crear un criterio de paro del algoritmo de entrenamiento. Este número está relacionado con el tamaño del error; cuando esté alcanza la tolerancia, el entrenamiento finaliza. Otro criterio para detener el entrenamiento es definiendo el número de épocas como se muestra en la Figura 3.14. Este criterio se utiliza cuando el entrenamiento no converge y la computadora quedaría ciclada sin este otro criterio de paro.
41
Figura 3.14. Selección del método de entrenamiento (método híbrido).
Como se mencionó anteriormente, se tomó el valor de error de tolerancia de 0,000001 y se designaron 1000 épocas de entrenamiento, debido a que el índice de error que genera el entrenamiento del sistema Neuro-difuso depende de la selección del tipo y numero de funciones de membresía. Para el caso del sistema Neuro-difuso que se entrena, entre más funciones de membresía sean consideradas, menos será el índice de error, pero el esfuerzo de entrenamiento es mayor llegando en la mayoría de las ocasiones a entrenamientos no concluidos debido a limitaciones impuestas por el hardware ya que el número de parámetros de la red aumenta exponencialmente. En la Figura 3.16 se observa el comportamiento del error después de haber presionado el botón Train Now, durante las 1000 épocas de entrenamiento, el error va decreciendo paulatinamente añadiendo consecutivamente 1000 épocas hasta alcanzar un valor mínimo, pero antes, en la Figura 3.15 se muestra el error con el cual comienza el entrenamiento ANFIS. De esta manera, se puede comparar el error al término de las 1000 épocas.
42
Figura 3.15. Error de inicio antes del entrenamiento ANFIS.
En la Figura 3.15 se observa que el error es igual a 19,0881 antes del entrenamiento ANFIS. Este error se debe a la inicialización general del sistema ANFIS y su cálculo depende de todos los parámetros, tipos de funciones de membresía y número de funciones de membresía.
Figura 3.16. Error después del entrenamiento con 1000 épocas. 43
Por lo que se observa en la Figura 3.16 al término del entrenamiento de 1000 épocas se obtuvo un error de 16,6644. Esto nos indica que la pérdida del error en estas 1000 épocas fue de 2,4237; y tienen tendencia a decrecer, por lo que es conveniente aumentar el número de épocas para alcanzar el objetivo. Como se requiere de un valor mínimo de error igual o cercano a cero, se sigue con el mismo procedimiento de aumentar el valor de épocas.
Figura 3.17. Error establecido después del entrenamiento de 17000 épocas.
Se observa que el resultado de error obtenido después de 17,000 épocas es de 4.1943 y el error ya no decrece. Sin embargo, la diferencia con lo deseado aun es considerable aunque si tomamos en cuenta la diferencia con el valor inicial de error y el valor actual de error, se observa que si ha disminuido notablemente. Para verificar que el error ya no decremente más, se realiza otro entrenamiento pero ahora aumentando las épocas hasta 20000, véase Figura 3.18.
44
Figura 3.18. Error establecido después del entrenamiento de 20000 épocas.
Se puede observar claramente que el error después del entrenamiento de 20000 épocas, se ha establecido y es idéntico al error que se observa en la Figura 3.17, lo cual, indica que no se llegó al error deseado, sin embargo, se trabajará con este valor para verificar si es adecuado para el sistema.
3.2.7.6 Prueba del Sistema de Inferencia Difuso Entrenado Después de haber concluido el entrenamiento y de haber obtenido un error de 4.1943, se procede a compararlo contra los datos de entrenamiento. La verificación es satisfactoria, por lo tanto el sistema entrenado responderá a lo deseado como se observa en la Figura 3.19. Por último, se procede a guardar el sistema difuso generado en un archivo con formato .FIS6 para después poder implementarlo en hardware.
6
.FIS.- Fuzzy Inference System, es un archivo generado en MatLab dentro de la caja de herramientas de lógica difusa.
45
Figura 3.19. Verificación de entrenamiento del sistema difuso.
A continuación se muestra el sistema FIS con los valores de entrenamiento de ANFIS obtenidos.
Figura 3.20. Funciones de membresía de la variable Error, con el sistema de entrenamiento ANFIS.
46
Figura 3.21. Funciones de membresía de la variable Posición, con el sistema de entrenamiento ANFIS.
En la Figura 3.20 y 3.21 se observa que después del entrenamiento se generan automáticamente nuevos valores para los parámetros de las funciones de membresía, los parámetros de cada membresía se muestran en la Tabla 3.4.
Valor Inferior Valor Medio Valor superior Error Negativo -115.3 -25.38 6.721 Error Cero -92.76 2 99.36 Error Positivo -7.224 22.96 113.2 Posición Negativa -39.83 48.42 109.3 Posición Cero -22.06 90 196.6 Posición Positiva 74.84 131.4 219.9 Tabla 3.4. Parámetros de membresía de Error y Posición Actual del entrenamiento ANFIS.
En la Tabla 3.4 se observan los parámetros de cada membresía de la Posición y del Error. Al igual que las entradas, también se obtuvieron nuevos parámetros en la salida de Grados después del entrenamiento ANFIS. Esto se muestra en la Figura 3.22 y en la Tabla 3.5.
47
Figura 3.22. Editor de la variable Salida, con los datos obtenidos después del entrenamiento ANFIS.
Salida Valor S1 7.382 S2 -134.6 S3 86.29 S4 -2.587 S5 225.6 S6 -123.5 S7 397.1 S8 -24.43 S9 23.31 Tabla 3.5. Parámetros de la variable Salida del entrenamiento ANFIS.
Finalmente, al comparar la Figura 3.8 con la Figura 3.23 se observa que el sistema después del entrenamiento tiene un comportamiento semejante al deseado, aunque el error no haya decrecido completamente a cero. Con los valores mostrados en la Tabla 3.4 y 3.5 se puede migrar el control difuso desarrollado en MatLab a un µC con la finalidad de brindarle autonomía a la aplicación propuesta; la migración se explica a detalle en el Capítulo IV.
48
Figura 3.23. Visualizador de superficie del control difuso después del entrenamiento ANFIS.
49
50
Capitulo IV.- Diseño y Desarrollo del Péndulo Invertido Introducción En este Capítulo se describe el desarrollo del Control de un Péndulo Invertido mediante lógica difusa, el cual, fue implementado en un µC de gama alta PIC18F4550 de la familia 18F de Microchip. Cabe mencionar, que se emplean otros dos microcontroladores de la misma gama con la finalidad de que el proceso sea más rápido y eficiente. El sistema completo estará formado por tres partes importantes, la Etapa de Control A, la Etapa de Control B y la Etapa de Potencia.
Figura 4.1. Etapas del sistema completo.
4.1 Etapa de Control A La Etapa de Control A, será la encargada de leer la posición actual del Péndulo Invertido y procesar la información dentro del Control Difuso, además, será la encargada de proveer el voltaje necesario para la Etapa de Control B (5VDC).
4.1.1 Tipos de Encoder Un encoder, también conocido como codificador o decodificador, es un dispositivo, circuito, programa de software, algoritmo o incluso hasta una persona cuyo objetivo es convertir información de un formato a otro. 51
Para medir la posición angular del Péndulo Invertido existen diferentes alternativas, de entre las cuales se encuentran el uso de potenciómetros y acelerómetros. A continuación se describen las características que presenta cada uno.
4.1.1.1 Acelerómetro Un acelerómetro como se intuye por su nombre, es un instrumento para medir la aceleración de un objeto al que va unido, lo hace midiendo respecto de una masa inercial interna. Las técnicas convencionales para detectar y medir la aceleración se fundamentan en el primer principio descubierto por Newton y descritos en su “Principio de Newton” en 1687. La aceleración constante de una masa implica una fuerza, ecuación (4.1). (4.1) Donde
es la fuerza,
la aceleración y
es la masa.
La unidad de medida es , aunque podemos encontrarnos referencias de acelerómetros cuyos rangos de actuación sea de varios g, donde g se define como [3]. Existen varios tipos de tecnologías y diseños que, aunque todos tienen el mismo fin, pueden ser muy distintos unos de otros según la aplicación a la cual van destinados y las condiciones en las que han de trabajar. Sin embargo, para observar el comportamiento del péndulo se probarán dos acelerómetros capacitivos de tres ejes, el primero analógico que entrega valores comprendidos entre 0 y 3.3VDC y el segundo digital que entrega valores por el protocolo I2C7. Acelerómetro Analógico de 3 Ejes MMA7361L.- El sensor MMA7361L es un acelerómetro de bajo consumo con acondicionamiento de señales, filtro pasa-bajas, compensación de temperatura y capacidad de detectar en caída libre.
Figura 4.2. Vista física del acelerómetro de 3 ejes MMA7361L. 7 2
I C.- Bus de comunicaciones en serie.
52
Cuenta con una salida analógica que varía de 2.63VDC en 0° a 0.97VDC en 180° con una fuente de alimentación entre 2.2 y 3.76VDC, además, posee una sensibilidad seleccionable entre dos modos (±1,5g, ±6g). Con las características ya mencionadas sobre el acelerómetro MMA7361L, se realiza una gráfica lineal a trozos en base a mediciones realizadas de forma práctica, donde se capturan los valores que arroja en cada extremo de los trozos definidos (Ver Apéndice B), este valor es de tipo analógico y se captura mediante el uso del ADC8 interno de un µC, configurado a una resolución de 10 bits, dando mayor precisión a la respuesta de salida. Esto ayuda a definir que eje podrá ser el de mayor beneficio en base a su respuesta, véase Figura 4.3.
Figura 4.3. Respuesta del Acelerómetro entre la relación valor analógico-grados.
En la Figura 4.3, se observa que el eje que presenta una mejor respuesta sin perturbaciones de salida es el Eje Y, por lo tanto, se desarrolla un programa (Ver Apéndice C) en el entorno de programación Niple9, con la finalidad de observar el comportamiento real del acelerómetro. Para ello, se emplea la fórmula para calcular la pendiente (m), ecuación (4.2), que relaciona el valor analógico (Eje Y) con respecto a los grados (Eje X) para cada uno de los trozos. Por ejemplo, para el trazo comprendido entre los primeros 10°, se tienen los valores Y1= 540, Y2= 538, X1= 0 y X2= 10. (4.2) 8 9
ADC.- Conversor analógico-digital. Niple.- Software de desarrollo visual e interactivo que facilita la programación de Microcontroladores PIC.
53
De la ecuación (4.2) se despeja , dado que es la variable que representa el valor para conocer el grado de inclinación en el que se encuentra el acelerómetro. Donde está representada por: (4.3) Sustituyendo valores en la ecuación (4.3), se llega a la ecuación (4.4), la cual será utilizada para realizar los cálculos dentro del µC. (4.4) Donde, VDA es el valor digital actual del acelerómetro. Este procedimiento se aplica para cada uno de los trozos, de tal modo que se obtenga la ecuación (4.4) para cada uno de ellos. Para realizar las pruebas, es necesario conectar el acelerómetro MMA7361L como se muestra en la Figura 4.4. Se observa la conexión de una LCD10 de 16x2 para visualizar la inclinación en grados de dicho dispositivo, además de la circuitería propia que conlleva un µC.
Figura 4.4. Diagrama de conexión para el acelerómetro MMA7361L.
10
LCD.- Pantalla de cristal líquido.
54
Acelerómetro Digital De 3 Ejes MMA8452Q.- Este acelerómetro capacitivo micro maquinado, cuenta con una fuente de alimentación de entre 1.95 a 3.6VDC, tiene 12 bits de resolución y es de bajo consumo. Tiene una amplia variedad de funciones integradas que pueden ser programadas por el usuario, configurables para dos pines de interrupción, además, tiene escalas de sensibilidad de ±2g, ±4g y ±8g seleccionables por el usuario, con la posibilidad de obtener los datos filtrados (filtro pasa-altas) o los datos sin filtrar, disponibles en tiempo real. Así mismo, permite tener acceso a dos pines de interrupción externa y a los pines de tierra, de voltaje y finalmente pines del protocolo de comunicación I2C.
Figura 4.5. Vista física del acelerómetro de 3 ejes MMA8452Q.
Verificando en la hoja de aplicación y con las características ya mencionadas se desarrolla un programa (Ver Apéndice D) en el entorno de programación PIC C11 con la finalidad de observar el comportamiento real del acelerómetro. Hay que tener en cuenta que al estar usando una interfaz digital los valores arrojados por el acelerómetro ya no son voltajes variables; ahora son paquetes de bytes que vamos a leer por los pines SDA y SCL localizados en el pin RB0 y RB1 del µC, respectivamente. Cabe mencionar, que cuando este se encuentra estático, la única aceleración que detecta es la gravedad que tira hacia bajo de este, Figura 4.6. Por lo tanto, usando esta aceleración (gravedad) se puede calcular el ángulo de inclinación del dispositivo con respecto al eje vectorial de la gravedad.
Figura 4.6. Ejes del acelerómetro en posición estática. 11
PIC C.- Compilador de lenguaje C para PIC.
55
Como se puede observar en la Figura 4.6, cuando el acelerómetro esta en reposo, solamente la fuerza de gravedad actúa sobre el dispositivo y solo sobre el eje Z. Entonces: X = 0g. Y = 0g. Z = 1g. Una vez que el acelerómetro sufre una inclinación, la fuerza de gravedad genera componentes vectoriales en los ejes X, Y y Z, son estos componentes los que ocupamos para poder estimar el ángulo de inclinación que tiene el sensor con respecto a la fuerza de gravedad g, entonces las fuerzas se aplicarían como se observa en la Figura 4.7.
Figura 4.7. Componentes vectoriales en los ejes X y Z.
El acelerómetro, como tal, no conoce en ningún momento su posición. Sin embargo conoce los componentes de la fuerza de gravedad y es posible utilizar los valores de la fuerza que se aplica a los componentes para conocer el ángulo, utilizando una sencilla función trigonométrica inversa, Figura 4.8.
Figura 4.8. Fuerza aplicada a las componentes X y Z. 56
Dado que el acelerómetro ofrece la magnitud de Fx y Fz, es posible conocer el grado de inclinación del mismo, manipulando la ecuación (4.5). (4.5) Despejando θ y calculando el valor del ángulo en el eje X con respecto al vector de gravedad, seria: (4.6) Cabe resaltar, que para calcular la tangente inversa se utiliza el comando atan2 en la programación, el cual, regresa el valor del ángulo en radianes por lo que debemos convertirlo a grados, ecuación (4.7). (
)
( (
))(
)
(4.7)
Para realizar las pruebas, es necesario conectar el acelerómetro MMA8452Q como se muestra en la Figura 4.9. Se observa la conexión de una LCD de 16x2 para visualizar la inclinación en grados de dicho dispositivo, además de la circuitería propia que conlleva un µC.
Figura 4.9. Diagrama de conexión para el acelerómetro MMA8452Q.
57
4.1.1.2 Potenciómetro El potenciómetro es un transductor electromecánico que convierte energía mecánica en energía eléctrica. La entrada de este dispositivo es en forma de desplazamiento mecánico lineal o rotacional. Cuando se aplica un voltaje a través de las terminales fijas del potenciómetro, el voltaje de salida, el cual es medido a través de la terminal variable con respecto a tierra, es proporcional al desplazamiento de entrada con una relación lineal o no lineal. Existen muchas formas de utilizar un potenciómetro, sin embargo, la parte de interés es según la variación del valor en ohm con respecto a la posición de su eje. De este modo, los tipos más comunes se clasifican en lineales y logarítmicos, aunque otras formas de variación menos empleadas son las anti-logarítmicas y las de seno-coseno, Figura 4.10. Lineales.- La resistencia es proporcional al ángulo de giro, es decir, la variación es constante al desplazamiento del contacto móvil. Son aquellos que modifican su valor de uno en uno, Figura 4.10 (a). Logarítmicos.- La resistencia depende logarítmicamente del ángulo de giro. El logaritmo es lo contrario del lineal, al girar su curso, el mismo modifica su resistencia de uno y luego salta a valores más altos, Figura 4.10 (b).
Figura 4.10. Respuesta en función del modo de regulación de un Potenciómetro. 58
Definidos los tipos de respuesta de un potenciómetro y adecuando su funcionamiento al de la aplicación en cuestión, se trabajará con el potenciómetro de salida lineal ya que su función principal será retroalimentar la posición del péndulo, es decir, medir la posición actual del péndulo. En la Figura 4.11 se observa el potenciómetro empleado, el cual, se obtuvo de un servomotor, debido a las características que presenta para la precisión en control, además de que puede alcanzar 210°, de los cuales, el péndulo solo requiere de 180°.
Figura 4.11. Potenciómetro empleado.
Con las características ya mencionadas del potenciómetro acerca de su respuesta lineal, se desarrolla un programa (Ver Apéndice E) en el entorno de programación PIC C, donde, se capturan los valores que arroja en ambos extremos, véase Tabla 4.1
Posición 0° 180°
Valor Analógico de la señal del Potenciómetro(VDP) 82 957
Tabla 4.1. Valores obtenidos mediante la caracterización del Potenciómetro.
Con los datos obtenidos en la Tabla 4.1, se hace uso de las ecuaciones 4.2 y 4.3 empleadas en la Sección 4.1.1.1, ya que el método para la caracterización de este dispositivo donde se calcula la pendiente que relaciona el valor analógico (eje Y) con respecto a los grados (eje X) es el mismo, donde, Y1= 957, Y2= 82, X1= 180 y X2= 0. De este modo, sustituyendo valores en ambas ecuaciones, se llega a la ecuación 4.8, la cual será utilizada para realizar los cálculos dentro del µC. (4.8) Donde, VDP es el valor digital de la señal del potenciómetro.
59
Para realizar las pruebas, es necesario conectar el potenciómetro como se muestra en la Figura 4.12. En ésta, se observa la conexión de una LCD de 16x2 que se usa para visualizar la inclinación en grados de dicho dispositivo, además de la circuitería propia que conlleva un µC.
Figura 4.12. Diagrama de conexión para el Potenciómetro.
En la Figura 4.13, se muestra la respuesta obtenida de la caracterización del potenciómetro, en la cual, se puede observar la linealidad que presenta el dispositivo, dentro del rango comprendido desde 0° a 180°.
Figura 4.13. Respuesta del Potenciómetro entre la relación valor analógico-grados. 60
4.1.2 Selección de Encoder Para seleccionar el encoder que mejor respuesta presenta, en términos del comportamiento que se desea obtener en el sistema del Péndulo Invertido, se realiza la comparación mostrada en la Tabla 4.2, donde se muestran las ventajas y desventajas observadas de cada uno de los dispositivos en base a las pruebas realizadas.
Tipo de encoder Características Tipo de respuesta Temperatura Sensibilidad en g Sensibilidad a vibraciones Tiempo de muestreo Tipo de comunicación Interfaz Complejidad de uso Costo
MMA7361L
MMA8452Q
POTENCIOMETRO
No lineal Sensibilidad alta Si
No lineal
Lineal
Sensibilidad baja
Sensibilidad baja
Si
No
Si
Si
No
Rápido Analógica Buena Regular Alto
Lento I2C Mala Compleja Alto
Rápido Analógica Buena Fácil Bajo
Tabla 4.2. Comparación de encoder.
Como se observa en la Tabla 4.2, en base a las pruebas realizadas, las ventajas y características propias que presenta cada dispositivo, el más apropiado debido a la exigencia del sistema de Péndulo Invertido es el potenciómetro, sobre todo porque los acelerómetros son sensibles a las vibraciones provocadas por el movimiento natural de un Péndulo Invertido y eso evita tener mediciones correctas en tiempo real.
4.1.3 Diseño de Software 4.1.3.1
Selección de los Microcontroladores a Utilizar
Para el diseño de la etapa de control A, se desarrollaron dos sistemas que trabajan en conjunto, uno para la lectura de la posición del péndulo y el otro que contenga al Control Difuso, a su vez, estos sistemas deben comunicarse entre ellos, por lo tanto, se utilizaran dos µCs PIC18F4550. El motivo de usar dos µCs de esta gama, es debido a que la comunicación entre ambos sistemas debe ser lo bastante rápida para que la respuesta del péndulo lo sea, este
61
µC cuenta con un módulo PLL12 que lo hace apropiado para ello, ya que cuenta con opciones de configuración para aumentar la frecuencia de trabajo, logrando llevar la velocidad del µC por encima de las 15 MIPS13, a este proceso se le denomina Overclock14. La comunicación entre ambos µCs es serial y utiliza el protocolo de comunicación RS232 , configurada a una velocidad de 57600 baudios16, por tal motivo ambos µCs deben de contar con la misma frecuencia de trabajo, es decir, la configuración para lograr el Overclock es la misma para ambos, Tabla 4.3. 15
Configuración de ambos µCs para lograr el Overclock #include <18f4550.h> #fuses hspll,nofcmen,noieso,pll5,cpudiv2,nowdt,noprotect,nolvp,put, nobrownout #use delay (clock=16000000) #include #include #include #use rs232(baud=57600, xmit=PIN_C6, rcv=PIN_C7) Tabla 4.3. Configuración del µC PIC18F4550.
Con la configuración anterior en ambos µCs se logra una velocidad teórica de 15 MIPS sin errores en el protocolo de comunicación serial.
4.1.3.2 Programación Para la Etapa de Control A Definidos los µCs a utilizar para la etapa de control A, se desarrolla un programa para cada uno de los sistemas. El primer programa a describir es el que contiene la lectura de la posición actual del péndulo, el cual a partir de ahora se citará como µC_1. Este programa contiene dos sub-rutinas de trabajo, las cuales son: Leer Puerto Analógico.- En esta sub-rutina, se lee el puerto analógico, el cual, contiene el valor de la posición actual del péndulo dada por el potenciómetro.
12
PLL.- Phase Locked Loop, multiplicador de frecuencia. MIPS.- Millones de instrucciones por segundo. 14 Overclock.- Proceso para aumentar la velocidad de trabajo de un procesador. 15 RS232.- Protocolo de comunicación serial. 16 Baudio.- Unidad de medida utilizada en comunicaciones. 13
62
Sub-rutina LeerPuertosAn void LeerPuertosAn(void){ set_adc_channel(0); delay_us(20); lec1=read_adc(); }
Tabla 4.4. Sub-rutina para leer el puerto analógico.
Calcular el Ángulo.- En esta sub-rutina, se realiza la comparación del valor obtenido en la subrutina anterior con el valor máximo y mínimo del potenciómetro, y haciendo uso de la ecuación 4.8 para calcular el valor exacto del ángulo.
Sub-rutina CalcularAngulo void CalcularAngulo(void){ if(lec1 <82) grad=0; if(lec1 >957) grad=0; if(lec1 >=82 && lec1 <957) grad=(957-lec1)/4.861; } Tabla 4.5. Sub-rutina para calcular el ángulo.
Creadas las subrutinas para leer el puerto analógico y calcular el valor del ángulo, se realiza el programa principal, dentro del cual, dichas subrutinas son mandadas a traer. Este programa realiza la comparación del valor de los grados con los rangos máximo y mínimo de donde se considera que es posible obtener una respuesta favorable del sistema, es decir, si el valor es menor o igual a 30 se envía 30, del mismo modo para cuando el valor sea mayor o igual a 150 se enviará solamente 150, dado que están fuera del límite de trabajo. Por otra parte, si el valor se encuentra dentro de este rango, no sufre modificación alguna y estará listo para ser enviado al µC que contiene la información necesaria para llevar a cabo el Control Difuso (µC_2), cuando este lo requiera por medio del protocolo de comunicación serial. Además, si el valor es igual a 90°, el pin RB1 se pondrá en alto para visualizar mediante un led el cruce por éste. Para visualizar el programa completo, Ver Apéndice F.
63
Ciclo infinito del programa principal void main () { //lcd_init(); setup_adc_ports(an0); setup_adc(adc_clock_internal); delay_ms(500); while(1){ LeerPuertosAn(); CalcularAngulo(); grados=ceil(grad); if(grados <30) envio=30; if(grados >150) envio=150; if(grados >=30 && grados <= 150) envio=grados; //printf(lcd_putc,"\fValor ADC=%f",lec1); //printf(lcd_putc,"\nGrados=%u",grados); //delay_ms(100); if(grados ==90) output_high(pulso_2); else output_low(pulso_2); while (input(PIN_B1) == 1){ putc(envio); } } } Tabla 4.6. Ciclo infinito del programa principal.
El segundo programa contiene la información necesaria para llevar a cabo el Control Difuso; recordemos que éste se desarrolló en MatLab, sin embargo, como se mencionó anteriormente, por los requerimientos del sistema es necesario mudarlo a un µC, el cual a partir de ahora se citará como µC_2. El programa contiene las siguientes sub-rutinas: Calcular Ángulo.- En esta sub-rutina, el µC_2 solicita al µC_1 le envíe el valor del ángulo, esto poniendo en alto el valor del pin RA0.
64
Sub-rutina CalcularAngulo voidCalcularAngulo(void){
//Rutina_Calculoangulo
output_high(pulso); delay_ms(5); //printf(lcd_putc,"\fEje Y=%u",grados); } Tabla 4.7. Sub-rutina CalcularAngulo.
Cálculo del error.- Esta sub-rutina, calcula el error del sistema mediante la ecuación (4.5): (4.9) Se conoce que el setpoint es igual a 90° (ya que se desea que el péndulo esté siempre vertical), de este modo se sabe si se trata de un error positivo o negativo. La variable error es necesaria para los cálculos que requiere el Control Difuso.
Sub-rutina CalcularError voidCalcularError(void){ error=90-grados; }
//Rutina_Calculo Error //Error=Posicion_deseada-Posicion_actual Tabla 4.8. Sub-rutina CalcularError.
Cálculo de la función de pertenencia del error y posición actual.- Debido a que dentro del µC no se puede expresar gráficamente un triángulo, se tiene que emplear la ecuación (4.2) para expresar cada uno de los lados de este y así conocer el grado dentro de la función de pertenencia. Cabe resaltar que los valores de a, b y c, están declarados dentro del programa y fueron obtenidos mediante el entrenamiento realizado en el Capítulo III, Sección 3.2.7.5. Sub-rutinasFuncionPertenenciaError y FuncionPertenenciaPosActual voidFuncionPertenenciaError(void){ if (error <=b && error >a) y0=(error-a)/(b-a); if (error b) y0=(c-error)/(c-b); if (error >=c) y0=0; if (error <=a) y0=0; }
65
voidFuncionPertenenciaPosActual(void){ if (grados <=b && grados >a) y1=(grados-a)/(b-a); if (grados b) y1=(c-grados)/(c-b); if (grados >=c) y1=0; if (grados <=a) y1=0; } Tabla 4.9. Sub-rutinas FuncionPertenenciaError y FuncionPertenenciaPosActual.
Fuzzificación.- En esta sub-rutina, se asignan a los datos de entrada un grado de membresía, definidos a través del entrenamiento realizado en MatLab.
Sub-rutina Fuzzificacion voidFuzzificacion(void){ a=-115.3; b=-25.38; c=6.721; FuncionPertenenciaError(); eN=y0; a=-92.76; b=0; c=99.36; FuncionPertenenciaError(); eC=y0; a=-7.224; b=22.96; c=113.2; FuncionPertenenciaError(); eP=y0; a=-39.83; b=48.42; c=109.3; FuncionPertenenciaPosActual(); pN=y1; a=-22.43; b=90; c=196.3; FuncionPertenenciaPosActual(); pC=y1; 66
a=74.84; b=131.4; c=219.9; FuncionPertenenciaPosActual(); pP=y1; } Tabla 4.10. Sub-rutina Fuzzificacion.
Composición.- En esta sub-rutina, se multiplican cada una de las funciones de membresía porcada una de las demás, de modo que todas sean afectadas entre sí.
Sub-rutina Composición voidComposicion(void){ comp1=(eN*pN); comp2=(eN*pC); comp3=(eN*pP); comp4=(eC*pN); comp5=(eC*pC); comp6=(eC*pP); comp7=(eP*pN); comp8=(eP*pC); comp9=(eP*pP); } Tabla 4.11. Sub-rutina Composición.
Agregación.- Dentro de esta última sub-rutina, se utiliza la ecuación (2.2) citada en el Capítulo II, Sección 2.2.3.3.2, para obtener la salida del sistema Difuso.
Sub-rutina Agregación void Agregacion(void){ suma1=((comp1*s1)+(comp2*s2)+(comp3*s3)+(comp4*s4)+(comp5*s5)+(comp6*s6)+ (comp7*s7)+(comp8*s8)+(comp9*s9)); suma2=(comp1+comp2+comp3+comp4+comp5+comp6+comp7+comp8+comp9); y=(suma1/suma2)-1; y=ceil(y); if (y <= 0) salida=0; else salida=y; 67
out=(int8)salida; output_b (out); } Tabla 4.12. Sub-rutina Agregación.
Implementadas cada una de las partes necesarias para llevar a cabo el Control Difuso, se crea un bucle17 de ciclo infinito que mande a traer cada una de las sub-rutinas de manera secuencial.
Ciclo infinito del programa principal void main(){ //lcd_init(); output_low(pulso); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); set_tris_b(0x00); delay_ms(2800); while(1){ CalcularAngulo(); CalcularError(); Fuzzificacion(); Composicion(); Agregacion(); //printf(lcd_putc,"\fGrados:%f",grados); //printf(lcd_putc,"\nValor:%f",y); //delay_ms(100); } } Tabla 4.13. Ciclo infinito del programa principal.
Cabe mencionar, que la salida del sistema Difuso es de forma paralela a través de un puerto completo de 8 bits (Puerto B), el cual será leído por el µC_3 para controlar el sentido de giro de los motores. Para visualizar el programa completo, Ver Apéndice G.
17
Bucle.- Sentencia que se realiza repetidas veces dentro de un programa.
68
4.1.4 Diseño de Hardware En esta sección se muestran los requerimientos necesarios para el diseño del circuito electrónico de la etapa de control A, así como las partes principales del mismo y los componentes necesarios para filtrar las interferencias propias de los sistemas que cuentan con µCs.
4.1.4.1 Fuente de Alimentación y Filtros Debido a que el sistema se comportará de forma autónoma, es necesario que cuente con una fuente regulada de alimentación propia, que proporcione un voltaje continuo de 5VDC, además; contar con componentes que ayuden a filtrar las interferencias que puedan provocar un mal funcionamiento dentro del sistema. Para eliminar las interferencias, se emplea el uso de capacitores y bobinas ubicados en las siguientes zonas: Línea de Alterna.- En esta zona, se utilizan los filtros de línea, que son dispositivos que permiten eliminar el ruido eléctrico generado por otros equipos. Su construcción consta de bobinas, capacitores y en algunos casos varistores.
Figura 4.14. Filtros de Línea.
Como se puede observar en la Figura 4.14, su construcción es muy sencilla y solo consta de 2 capacitores de 0.1uF de tensión suficiente y una bobina realizada sobre un núcleo de ferrita y con ambos bobinados enrollados en el mismo sentido, tanto el alambre como el núcleo para la bobina deben ser de la sección adecuada a la intensidad que por ellos ha de pasar. El diseño es tomado de uno comercial ya que no es objetivo de esta tesis diseñar tal filtro. Puente rectificador.- En la Figura 4.15, se observa un circuito rectificador de onda completa con un capacitor cerámico de 0.1µF en cada diodo (C1, C2, C3, C4). Estos están conectados de manera tal que filtran cualquier señal proveniente del lado del transformador, con lo cual, se evita que las señales de interferencia entren en el circuito. 69
La función de C5 (normalmente electrolítico) es la de filtrar la señal continua pulsante ya rectificada, pero para las señales de alta frecuencia como los son las interferencias no es muy eficiente, por tal motivo tiene aparejado el capacitor C6 (cerámico, multicapa o poliéster de 0.1uF) que realiza tal función. En el caso de existir un circuito integrado regulador de tensión es conveniente que C6 se encuentre lo más próximo posible al pin de la entrada del mismo y que exista uno a la salida del regulador, lo más próximo a esta.
Figura 4.15.Uso de capacitores para filtro en fuente de alimentación.
Las bobinas en las fuentes de alimentación se usan para complementar el filtrado que ya realizan los capacitores, nunca una bobina está sola en una fuente de alimentación.
Figura 4.16. Uso de bobina para filtrado en fuente de alimentación.
Como se aprecia en la Figura 4.16, luego de que la corriente continua pulsante sale del rectificador es filtrada en su mayoría por los capacitores C1 y C2, luego L1 se encarga de evitar que las interferencias pasen, para que luego C3 y C4 vuelvan a realizar un nuevo filtrado. Normalmente el valor de C1 y C2 es muy superior a los de C3 y C4, con esto se consigue que el rizado de la continua sea lo menor posible antes de pasar por L1, ya que cuanto menor sea calentara en menor grado L1 por tratar de filtrar el rizado de la 70
continua. En condiciones normales el valor de C3 y C4 es de solo el 10% de C1 y C2 respectivamente. Por otra parte, se debe tener en cuenta que por L1 está pasando toda la intensidad que es entregada por la fuente, por tal motivo, su bobinado debe ser capaz de soportar ese nivel de corriente; normalmente en esta aplicación las bobinas poseen núcleo de ferrita. De la misma manera que el filtro anterior, este filtro se tomó con valores sugeridos en trabajos con requerimientos similares y no se realizó el cálculo de cada componente. Circuitos Integrados.- En sistemas digitales es muy necesario asegurar que la alimentación de los distintos circuitos integrados no posean interferencia, ya que podría influenciar en el funcionamiento normal de los mismos. En el caso de los sistemas microcontrolados, podrían existir brincos en el programa interno del µC o pérdidas de datos.
Figura 4.17. Filtro en circuitos integrados.
En la Figura 4.17, se puede apreciar que C1 (cerámico o multicapa) está para filtrar la alimentación del circuito integrado, la imagen de la derecha, muestra la ubicación ideal de C1 dentro del diseño de una PCB18, como se puede apreciar, se encuentra lo más cerca posible de los pines de alimentación. Tomando en cuenta las consideraciones ya mencionadas sobre los filtros para la fuente de alimentación, se realiza el diseño de esta, a través del software electrónico ISIS PROTEUS19 como se muestra en la Figura 4.18.
18 19
PCB.- Printed circuit board, circuito impreso. PROTEUS.- Compilación de programas de diseño y simulación electrónica.
71
Figura 4.18. Diagrama de conexión para la fuente de alimentación con filtros. 72
4.1.4.2 Captura Analógica y Microcontroladores. Debido a que la Etapa de Control A requiere de dos µCs para llevar a cabo el proceso de lectura de la posición y el cálculo del Control Difuso, se diseña el circuito electrónico con los componentes y conexiones necesarias para cada µC, además cuenta con el conector necesario para obtener la lectura proveniente del potenciómetro. De igual modo, cuenta con dos leds de visualización, uno para saber cuándo el péndulo cruza por 90° y el otro para saber si la comunicación entre ambos µCs es correcta. Finalmente, el circuito electrónico cuenta con las conexiones necesarias para realizar la programación de cada µC directamente sobre el circuito, protocolo conocido como ICSP20, véase Figura 4.19.
Figura 4.19. Diagrama de conexión de los µCs.
En la Figura 4.19, se observa el conector que tendrá disponible la salida del Control Difuso a través del Puerto B (7 PORT B 0) para el µC_3. 20
ICSP.- In-circuit serial programming, medio de programación serial en el circuito.
73
4.1.4.3 Visualización de Datos en LCD Debido a que el circuito electrónico cuenta con dos µCs procesando información de interés para el usuario, es necesario poder visualizar la información de cada uno a través de una misma pantalla LCD. Para lograr esto, se conectan puentes (jumpers) de selección, en donde el usuario puede elegir la fuente de información que requiera visualizar, ver Figura 4.20.
Figura 4.20. Jumpers de selección para la visualización de información.
4.1.4.4 Placa de Circuito Impreso (PCB) Estando conectados todos los componentes electrónicos, necesarios para el correcto funcionamiento de la Etapa de Control A, en el software electrónico ISIS PROTEUS, se exporta hacia el software de diseño electrónico ARES PROTEUS. El entorno gráfico del software ARES PROTEUS, cuenta con librerías graficas de componentes electrónicos, además, opciones para llevar acabo el diseño de placas de circuito impreso. Debido que el circuito completo para controlar el Péndulo Invertido será muy grande y cuenta con muchos componentes, se diseñará de forma tal que no ocupe mucho espacio, para lograr esto, las placas serán tipo SHIELD e irán conectadas una sobre otra. Teniendo en consideración todo lo anterior, la Etapa de Control A será la base del circuito, así mismo, proporcionará el voltaje de alimentación a la Etapa de Control B y la
74
salida del Control Difuso, por lo tanto deberá contar con dichos conectores, los cuales servirán para acoplar la Etapa de Control A con la Etapa de Control B.
Figura 4.21. Diseño en ARES PROTEUS de la Etapa de Control A.
La Figura 4.21, muestra el diseño final del circuito impreso para la Etapa de Control A, sus dimensiones son de 12.80cm de largo y 9.90cm de ancho con una sola cara de cobre, como se puede apreciar, el circuito está dividido en secciones y cada una cuenta 75
con el nombre de la función que realiza; la Figura 4.22, muestra la imagen del diseño en 3D.
Figura 4.22. Diseño en 3D de la Etapa de Control A.
4.1.4.5 Resultado Final de la PCB Para la Etapa de Control A Finalmente, el diseño realizado en ARES PROTEUS se transfiere a una placa física con la serigrafía y los componentes necesarios soldados sobre ella, las perforaciones para montarla sobre el carro que llevara el Péndulo Invertido y los pines que la acoplaran a la Etapa de Control B. La Figura 4.23, muestra el resultado final de la placa de circuito impreso para la Etapa de Control A, se observa que cuenta con todas las necesidades requeridas para trabajar y acoplarse con la Etapa de Control B.
76
Figura 4.23. Acabado final de la Etapa de Control A.
77
4.2 Etapa de Control B La etapa de control B será la encargada de generar las señales necesarias para controlar el giro y la velocidad de dos motores de corriente continua a partir de la salida generada por la Etapa de Control A, la cual, como se mencionó en la Sección 4.1.3.2, está dada por un valor entero de 8 bits.
4.2.1 Selección del Microcontrolador a Utilizar En un motor de corriente continua, el sentido de giro viene dado por la conexión que se le haga a sus bornes o terminales. De esta manera, para hacer que gire en ambos sentidos, avanzar y retroceder, basta con invertir la polaridad del motor, sin embargo, realizar esto con un µC no es posible, ya que solo puede suministrar 5 VDCy 20mA por pin, por ello, es totalmente insuficiente para mover un motor. Para lograr esto, se requiere de un puente H, el cual, cuenta internamente con 4 interruptores, como se muestra en la Figura 4.24.
Figura 4.24. Circuito esquemático de un puente H con interruptores.
Cuando los interruptores S1 y S4 están cerrados y S2 y S3 abiertos se aplica una tensión positiva en el motor, haciendo que gire en un sentido, de forma contraria, abriendo los interruptores S1 y S4 y cerrando los interruptores S2 y S3 el motor gira en sentido contrario. El encargado de controlar estos interruptores es un µC a través de la modulación por ancho de pulso (PWM por sus siglas en inglés), generada a partir del módulo CCP21 interno del mismo. Debido a que la Etapa de Control B está diseñada para controlar dos motores, requiere de dos señales independientes de tipo PWM trabajando a una frecuencia de 488 Hz cada una. El µC PIC18F4550 cuenta con dos módulos independientes CCP, por lo cual, es ideal para trabajar en esta etapa de control.
21
CCP.- Capture/Compare/PWM, modulo interno generalizado entre µC Microchip, Motorola y Atmel.
78
4.2.2 Adquisición y Procesamiento de Información Como se mencionó anteriormente, en la Sección 4.1.4.2, la salida del Control Difuso se envía a través del Puerto B del µC_2 y es capturada mediante el Puerto D del µC_3, ambos de 8 bits. Debido a que la información es entregada en 8 bits, es necesario procesarla para obtener las señales de control requeridas por los Puente H, para ello, se utiliza el entorno de programación Niple, debido a la facilidad que posee para desarrollar programas que requieren el uso de los temporizadores (Timers) internos del µC, en el cual, se configuran los módulos CCP para trabajar a una frecuencia de 488 Hz, con un cristal externo de 4MHz. Para obtener la frecuencia deseada, es necesario configurar el Timer2 del µC como se muestra en la Figura 4.25, ya que este está diseñado para generar pulsos continuos una vez que se ha activado, sin tener que reiniciarlo.
Figura 4.25. Configuración del Timer2 del µC_3.
Con esta configuración, los módulos CCP requieren valores que se encuentren en un rango entre 0 y 1024 bits, siendo 0% y 100% respectivamente, para su correcto funcionamiento. 79
Debido a que el módulo CCP será el encargado de controlar la velocidad de los motores, requiere de valores que comiencen a partir de 512, para generar un pulso capaz de accionar los motores. Por lo tanto, el rango válido que podrá ser ingresado en los módulos será entre 512 y 1024 bits, siendo 512 la mínima velocidad y 1024 la máxima, como se muestra en la Figura 4.26.
Figura 4.26. Respuesta de los módulos CCP según la posición (en grados) del Péndulo Invertido.
El lado izquierdo de la Figura 4.26, corresponde a la respuesta que tendrán los módulos CCP cuando el ángulo del péndulo sea menor a 90°, el lado derecho corresponde a la respuesta cuando el ángulo del péndulo sea mayor a 90°.
4.2.3 Programación Para la Etapa de Control B Definidas las consideraciones importantes para controlar los motores, se diseña un programa que tenga en funcionamiento el módulo CCP1 y CCP2 del µC y dos pines que invertirán el sentido de giro de ambos motores (RA0 y RA1). Dentro del entorno de Niple la programación se lleva a cabo mediante bloques, los cuales contienen las configuraciones, operaciones y acciones necesarias para llevar a cabo el proceso programado, según las características del µC seleccionado. Estando estructurado el programa en bloques, Niple compila el diseño y verifica los errores del mismo, si presenta errores muestra la ubicación y la posible solución, en caso contrario, genera dos archivos, uno con extensión .ASM que contiene el programa en 80
lenguaje ensamblador y otro con extensión .HEX, el cual estará listo para ser grabado dentro del µC. En esta Sección, se mostraran los bloques más importantes para generar el programa que será grabado dentro del µC_3, el programa completo se podrá visualizar en el Apéndice H. La Figura 4.27 muestra la configuración de todos los puertos del µC, como se mencionó anteriormente, la salida del Control Difuso es adquirida por el µC_3 mediante el Puerto D, por tal motivo, se configuran todos los pines de este puerto como entrada, las señales de control para la Etapa de Potencia serán mediante los pines RA0 y RA1 y son configurados como salidas, por último, las señales provenientes de los módulos CCP1 y CCP2 estarán disponibles por los pines RC2 y RB3, respectivamente, y también son configurados como pines de salida. Para los pines que no son utilizados dentro del programa, es indiferente configurarlos como entrada o salida, por lo tanto se quedan configurados de manera predeterminado por Niple.
Figura 4.27. Configuración de entrada y salida para los pines del µC_3.
El programa principal inicia capturando el valor (binario) que se encuentra en el Puerto D, dado que es un valor de 8 bits es almacenado en un registro de la misma magnitud, la etiqueta inicio, se utiliza para ubicar el programa e iniciar nuevamente al terminar cada proceso, Figura 4.28.
Figura 4.28. Captura del Puerto D dentro del registro d_l de 8 bits. 81
Para poder trabajar con el valor capturado del Puerto D, es necesario tenerlo dentro de un registro de 16 bits (debido a que la configuración de los módulos CCP requiere de un registro de 16 bits), el PIC18F4550 es un µC de 8 bits pero Niple internamente puede unir dos registros, los cuales quedarían nombrados dentro del programa como d_h y d_l. El registro d_h contiene solo ceros, por lo tanto, no modifica el valor real capturado, de esta manera el valor que estaría dentro del nuevo registro de 16 bits seria 00000000XXXXXXXX, donde la letra X corresponde a los valores binarios que sean capturados en cada lectura. Con el valor del Puerto D en 16 bits, se realizan tres comparaciones dentro del programa: 1. Si la salida del Control Difuso es igual a 90. 2. Si la salida del Control Difuso es menor a 90. 3. Si la salida del Control Difuso es mayor a 90. Estas comparaciones son necesarias para controlar el comportamiento de los motores, dentro de Niple, las comparaciones deben tener un camino que seguir si la condición se cumple o no se cumple, la salida del Control Difuso siempre estará dentro de los rangos de comparación programados, por lo tanto, alguna de las tres comparaciones siempre se cumplirá, sin embargo, para no generar ningún error al compilar el programa, la negativa de la última condición se envía a la etiqueta inicio y el programa tendría que volver a iniciar con una nueva captura del Puerto D, Figura 4.29.
Figura 4.29. Comparaciones para controlar el comportamiento de los motores.
Si se cumple la primera condición, "Si la salida del Control Difuso es igual a 90", los pines RA0 y RA1 se ponen en 0 lógico y los módulos CCP1 y CCP2 se apagan, el programa retorna a la etiqueta inicio para volver a capturar el valor del Puerto D, Figura 4.30.
82
Figura 4.30. Acciones programadas si se cumple la primera condición.
Si se cumple la segunda condición, "Si la salida del Control Difuso es menor a 90", se ajusta la salida del control difuso a los rangos necesarios para los módulos CCP1 y CCP2 para obtener el comportamiento mostrado en la Figura 4.25, además, los pines RA0 y RA1 se ponen en 1 y 0 lógico respectivamente, Figura 4.31. Si se cumple la tercera condición, "Si la salida del Control Difuso es mayor a 90", igualmente se ajusta el valor para los módulos CCP y los pines RA0 y RA1 cambian de estado, quedando en 0 y 1 lógico respetivamente, Figura 4.32. Los cambios efectuados en los pines RA0 y RA1, según la posición del péndulo, sirven para cambiar el sentido de giro de los motores y así mantener en equilibrio el péndulo, por otra parte, el comportamiento de los módulos CCP1 y CCP2 es vital para agregar o quitar velocidad a los motores según la salida del Control Difuso, hay que recordar que este comportamiento no es lineal, por lo tanto el cambio en la velocidad de los motores no es gradual y pueden pasar del estado de reposo a la máxima velocidad y viceversa en lapsos de tiempo muy cortos e imperceptibles. Al terminar de procesar las acciones programadas para cada condición, retornan a la etiqueta inicio, y el programa vuelve a iniciar.
83
Figura 4.31. Acciones programadas si se cumple la segunda condición.
Figura 4.32. Acciones programadas si se cumple la tercera condición. 84
4.2.4 Diseño de Hardware Hay que recordar que el sistema completo estará formado por tres partes importantes, la Etapa de Control A, la Etapa de Control B y la Etapa de Potencia, físicamente, cada una de las etapas del sistema estará montada en una placa y todas las placas en conjunto montadas una sobre otra, quedando la Etapa de Control B entre la Etapa de Control A y la Etapa de Potencia. El espacio entre ambas etapas es reducido, por tal motivo, el encapsulado del µC de la Etapa de Control B es tipo TQFP22 de 44 pines, el cual cuenta con los pines necesarios para poder ser grabado mediante el protocolo ICSP.
4.2.4.1 Visualización de Datos del Puerto D en Barra de Leds Es importante visualizar el flujo de datos proveniente de la salida del Control Difuso (µC_2) con la finalidad de monitorear el correcto funcionamiento de ese sector del sistema, como se mencionó anteriormente, los datos son adquiridos por el µC_3 mediante el Puerto D y tienen un ancho de palabra de 8 bits. Para realizar el monitoreo de datos y no interferir en el proceso, los datos se pueden visualizar a través de una barra de leds y la información se toma directamente de los nodos de conexión entre el µC_2 y el µC_3. El µC_2 es un PIC18F4550 con encapsulado DIP23 de 40 pines, el cual es capaz de proporcionar 100mA por puerto completo (sin drenar corriente por los ocho pines del puerto) o 20mA por pin de manera independiente, esto quiere decir que no es capaz mantener encendidos ocho leds simultáneamente, teniendo en cuenta que cada led consume un promedio de 20mA.
Figura 4.33. Conexiones necesarias para el circuito integrado 74LS245 en el sistema.
22 23
TQFP.- ThinQuad Flat Package, variante del encapsulado cuadrado plano. DIP.- Dual in-Line, bloque con dos hileras paralelas de pines.
85
El circuito integrado 74LS245 es un buffer octal bidireccional, debido a sus propiedades, es utilizado para proporcionar la corriente necesaria para encender los leds sin consumir corriente del µC, la Figura 4.33 muestra las conexiones necesarias para conectarlo, la información proveniente de la salida del Control Difuso es conectada en el bus A y en el bus B estarán disponibles las mismas señales de entrada pero con mayor corriente y sin poner en riesgo el funcionamiento del sistema. Se observa que a la salida del bus B están conectadas las resistencias para limitar la corriente drenada a los leds y finalizan en un conector SIL hembra de diez pines. Este conector se acopla con la Etapa de Potencia debido a que no existe espacio suficiente para conectar la barra de leds sobre la Etapa de Control B, por lo tanto, serán conectados sobre la última etapa. Debido que físicamente la barra de leds cuenta con diez leds internamente y la información que se desea mostrar solo utiliza 8 leds, se aprovechan los dos leds sobrantes para mostrar los pines RA0 y RA1 y así poder visualizar el cambio de giro que tienen los motores, por último, se conecta la barra de leds a un conector SIL de trece pines y se agregan dos leds mas para mostrar las salidas de los módulos CCP1 y CCP2, Figura 4.34.
Figura 4.34. Conexión de la barra de leds.
4.2.4.2 El Microcontrolador y las Señales de Control para la Etapa de Potencia Como se mencionó anteriormente, el µC_3 es un PIC18F4550 con encapsulado TQPF de 44 pines, por lo tanto, va directamente soldado sobre la placa de manera permanente y requiere contar con las conexiones necesarias para poder ser grabado directamente sobre 86
la placa (a través del protocolo ICSP), además, al igual que otros tipos de encapsulados para este PIC, requiere conexiones extra para el cristal, el botón de reset, filtros en la alimentación, etc. Las señales de control para la Etapa de Potencia estarán disponibles a través de un conector SIL hembra de cinco pines que ira acoplado a la Etapa de Potencia, estas salidas servirán para activar internamente a cuatro opto-acopladores 4N25 y así separar completamente el Etapa de Control A y B de la Etapa de Potencia. Por último, en la Etapa de Control A las señales de la LCD quedaron dispersas por la placa de circuito impreso y por lo tanto, la Etapa de Control B recoge todas esas señales y las junta en un solo conector, este conector al igual que la barra de leds, se acopla a la Etapa de Potencia y será sobre esta última donde se montarán los dispositivos para visualizar los datos. La Figura 4.35, muestra todas las consideraciones antes citadas para el diseño de la Etapa de Control B.
Figura 4.35. Diseño en ISIS PROTEUS para el Etapa de Control B.
87
4.2.4.3 Placa de Circuito Impreso Al igual que en el diseño de la placa de circuito impreso para la Etapa de Control A, estando conectados todos los componentes necesarios para la Etapa de Control B en el software electrónico ISIS PROTEUS, se exporta el diseño al software de diseño ARES PROTEUS para diseñar el PCB de esta etapa.
Figura 4.36. Diseño en ARES PROTEUS de la Etapa de Control B.
La Figura 4.36, muestra el diseño final del circuito impreso para la Etapa de Control B, esta placa va acoplada sobre la Etapa de Control A, por lo tanto, el diseño cuenta con cortes en las zonas donde se encuentran los conectores para grabar los µCs por el protocolo ICSP así como el conector para el encoder (potenciómetro). El diseño cuenta con una sola cara de cobre, como se puede apreciar, el circuito está dividido en secciones y cada una cuenta con el nombre de la función que realiza, la Figura 4.37, muestra el diseño del circuito impreso para la barra de leds. 88
Figura 4.37. Diseño en ARES PROTEUS para la barra de leds.
Las Figuras 4.38 y 4.39, muestran los diseños terminados en 3D, en la Figura 4.38 se observa que el µC_3 queda en la parte trasera de la placa debido al tipo de encapsulado que se trabajó (TQPF).
Figura 4.38. Diseño en 3D de la Etapa de Control B.
89
Figura 4.39. Diseño en 3D de la Etapa para la barra de leds.
4.2.4.4 Resultado Final de la PCB Para la Etapa de Control B El diseño realizado en ARES PROTEUS se transfiere a una placa física con la serigrafía y los componentes necesarios soldados sobre ella, la Figura 4.40, muestra el acabado final de la placa de circuito impreso para la Etapa de Control B, se observa que en la cara frontal cuenta con los conectores SIL hembra en donde se acopla con la Etapa de Potencia, además, en esta placa es posible retirar el cristal del µC para cambiarlo por otro de valor diferente.
Figura 4.40. Cara frontal del diseño para la Etapa de Control B. 90
En la cara trasera (Figura 4.41), se observan los conectores SIL macho con los que se acopla a la Etapa de Control A, además se aprecia que debido al tipo de encapsulado del µC, éste quedó soldado por la parte trasera del diseño, por último, la Figura 4.42 muestra el acabado final para el circuito de la barra de leds.
Figura 4.41. Cara trasera del diseño para la Etapa de Control B.
Figura 4.42. Diseño fabricado para la barra de leds.
91
4.3 Etapa de Potencia El Control del Péndulo Invertido requiere de dos motores de corriente continua trabajando cada uno con 24VDC a 600mA y picos de corriente de hasta 2.1A. Al invertir el giro, un µC es incapaz de ofrecer estos valores de voltaje y corriente, por lo tanto, es necesario diseñar una etapa que sea capaz de proporcionar estos rangos de manera segura para el resto del circuito.
4.3.1 Optoacopladores Para asegurar el buen funcionamiento del sistema, es necesario separar completamente el circuito de control del circuito de potencia, utilizando optoacopladores en las señales de control provenientes del µC_3. Un optoacoplador, es un circuito integrado compuesto generalmente por un diodo led y un fototransistor, unido de tal forma que cuando una señal eléctrica circula a través del led, emita un haz de luz, la luz que éste emite, es recibida por la base del fototransistor, el cual empieza a actuar en modo saturación. Como la luz que emite el led varía en función de la tensión y la corriente que circulan por él y esta luz a su vez modifica el comportamiento del transistor, la señal eléctrica obtenida a la salida (en el transistor), dependerá de la señal que esté presente a la entrada, por lo tanto, es posible conseguir que el circuito aislador sea invisible en la práctica, es decir, no cambie el comportamiento del circuito global. Existen diferentes tipos de optoacopladores cuya diferencia entre sí depende de los dispositivos de salida que se inserten en el componente, se podrían clasificar de la siguiente manera: Fototransistor. Se compone de un optoacoplador con una etapa de salida formada por un transistor BJT24, también se encuentra con salida formada por un transistor tipo Darlington. Fototriac. Se compone de un optoacoplador con una etapa de salida formada por un triac. Fototriac de paso por cero. Se compone de un optoacoplador en cuya etapa de salida se encuentra un triac de cruce por cero. El circuito interno de cruce por cero conmuta al triac sólo en el cruce por cero de la corriente alterna. Optotiristor. Diseñado para aplicaciones donde sea preciso un aislamiento entre una señal lógica y la red AC. 24
BJT.- Bipolar junction transistor, transistor de unión bipolar.
92
4.3.2 Selección de los Optoacopladores a Utilizar Las señales de control para los motores provienen del µC_3, por lo tanto son señales digitales que varían en 0 y 1 lógico, 0VDC y 5VDC respectivamente, estas señales tienen que ser idénticas después de haber pasado por el optoacoplador, el dispositivo que mejor funciona para esta tarea es el fototransistor, debido a que su salida está formada por un transistor BJT, el cual puede ser usado como un simple interruptor y de esta forma obtener la salida semejante a la entrada.
Figura 4.43. Optoacoplador 4N25 y distribución de pines.
El optoacoplador 4N25 será el utilizado para separar la Etapa de Potencia de la Etapa de Control B, internamente está formado por un led emisor de luz infrarroja y un fototransistor, la base de éste es excitada por medio de la luz emitida por el led y dispone del colector y emisor en los pines 5 y 4 respectivamente. Debido a que el fototransistor interno del CI 4N25 es enteramente un transistor, puede ser conectado utilizando las mismas configuraciones que un transistor común; para obtener la misma salida que en la entrada es conectado utilizando la configuración de amplificador emisor seguidor o colector común.
Figura 4.44. Conexión del Optoacoplador 4N25.
La Figura 4.44, muestra la conexión que lleva cada uno de los optoacopladores utilizados en la Etapa de Potencia.
93
4.3.3 Puente H También conocido como Puente Completo, el Puente H adopta la letra H para su nombre debido a la forma que presenta dentro de un circuito esquemático simplificado y con llaves de conmutación, Figura 4.45. En la barra central se encuentra ubicado el motor y en cada rama lateral ascendente o descendente se ubican los conmutadores que, activados de manera apropiada, brindarán al sistema los movimientos necesarios para que el motor utilizado pueda girar en un sentido u otro.
Figura 4.45. Circuito esquemático simplificado de un Puente H.
Para conectar el motor y hacerlo girar se deben activar las llaves de conmutación (S1, S2, S3 y S4) por pares opuestos en lo que respecta a lados y a posición (superior o inferior). Un error en la activación que permita la conexión de elementos superiores e inferiores de un mismo lado provocará una descarga muy rápida y abrupta de la batería que se esté utilizando o, en el peor de los escenarios, destruirá los elementos que forman las llaves conmutadoras. Para un giro seguro en uno de los dos sentidos en que puede girar el motor, se deben cerrar S1 y S4, mientras que S2 y S3 permanezcan abiertas. En el caso inverso, S2 y S3 se deben cerrar, mientras que S1 y S4 deberán permanecer abiertas.
4.3.3.1 Tipos de Puente H Organizados conforme a la arquitectura, el Puente H puede presentar dos tipos de configuraciones diferentes, el Puente H completo (Full Bridge) y el Medio Puente H (HalfBridge).
94
El Medio Puente H, Figura 4.46, es usado en diseños en los que no es necesario revertir la dirección de rotación del motor. Es decir, lo único que se requiere es controlar la velocidad en un solo sentido. Al utilizar esta configuración hay que tener en cuenta que no es posible realizar el control posicional del motor.
Figura 4.46. Circuito esquemático de un Medio Puente H.
El Puente H completo, Figura 4.47, puede ser usado para invertir el giro del motor, también puede ser utilizado para frenar de manera brusca el motor al generar un corto, o para que el motor pueda ser frenado bajo su propia inercia cuando se desconecta el motor de la fuente de alimentación.
Figura 4.47. Circuito esquemático de un Puente H completo con transistores MOSFET.
La manera más común de elaborar un Puente H Completo es empleando interruptores de estado sólido, como transistores BJT, Darlington, MOSFET25 o IGBT26. Además, los interruptores son acompañados de diodos que permiten a las corrientes circular en sentido inverso al previsto cada vez que se conmute la tensión, ya que el motor 25
MOSFET.- Metal-oxide-semiconductor Fiel-effect transistor, transistor de efecto de campo metal-óxidosemiconductor. 26 IGBT.- Insulatedgate bipolar transistor, transistor bipolar de puerta aislada.
95
está compuesto por bobinas, durante breves periodos estas se opondrán a que varíe la corriente.
4.3.3.2 Elementos de Potencia Utilizados en los Puentes H De forma comercial es posible encontrar al Puente H ya constituido dentro de un chip, los circuitos integrados L293x y L298 son circuitos integrados que incorporan 4 Medios Puentes H, los cuales pueden configurarse para conformar dos Puentes H completos. La Figura 4.48, muestra el uso de 2 medios puentes para configurar un Puente H completo (lado izquierdo) y el uso de los otros dos en forma independientes para encender-apagar otros dos motores (lado derecho), dentro del CI L293.
Figura 4.48. Circuito esquemático del CI L293.
Tanto el circuito integrado L293x como el L298, tienen limitantes físicas que los hacen inutilizables para el Control del Péndulo Invertido, debido a que tienen que soportar los picos de corriente constantemente generados al invertir el giro de los motores de manera instantánea, así como drenar más de 1 A de corriente por canal. Para soportar estas características, existen diseños de Puentes H generados a partir de transistores físicos y separados, brindando así la oportunidad de disipar el calor generado por las conmutaciones transistor por transistor, además, las limitantes físicas son prácticamente nulas, debido a que, conforme a las necesidades de los motores, se pueden sustituir tanto la tecnología de los transistores, como las corrientes y voltajes tolerados por cada uno.
96
Puente H con Transistores BJT.- El Puente H diseñado con transistores BJT puede ser construido completamente con transistores NPN o con transistores PNP en la parte superior y NPN en la parte inferior, esta última configuración también en nombrada "Par Complementario", Figura 4.49; son fáciles de diseñar y de controlar, sin embargo la mayor limitación de este tipo de Puentes H radica en la baja potencia que soportan y la baja eficiencia que presentan.
Figura 4.49. Circuito esquemático de un Puente H diseñado con transistores BTJ PNP y NPN.
Como se mencionó en la Sección 4.3.2.1, los diodos D1, D2, D3 y D4 permitirán que la corriente generada por las bobinas del motor circulen en sentido inverso y así evitar que algunos de los transistores sufra algún daño, esto diodos están presentes en todos los diseños de Puentes H, sin importar los elementos de potencia que utilizan. Puente H con Transistores Darlington.- Los transistores Darlington están compuestos internamente por dos transistores BJT del mismo tipo conectados en cascada, Figura 4.50.
Figura 4.50. Diagrama esquemático de transistores Darlington NPN y PNP.
97
Esta configuración sirve para que el dispositivo sea capaz de proporcionar una mayor ganancia de corriente que un solo transistor, la ganancia total de un transistor Darlington es el producto de la ganancia de los transistores internos individuales. Un dispositivo típico tiene una ganancia en corriente de 1000 o superior. El diseño de un Puente H realizado con amplificadores Darlington tiene la misma estructura que el diseño con transistores BJT, pero son capaces de soportar mayores corrientes, sin embargo, este tipo de dispositivos son lentos para apagarse debido a su configuración interna.
Figura 4.51. Circuito esquemático de un Puente H diseñado con transistores Darlington.
Puente H con Transistores MOSFET.- El Puente H diseñado con transistores MOSFET puede ser construido con transistores de canal P para los lados superiores y de canal N para los lados inferiores, Figura 4.52. La ventaja de este concepto de diseño es que las tensiones necesarias para activar las compuertas (Gates) de los transistores de canal P se pueden sacar directamente de la alimentación utilizada para el motor.
Figura 4.52. Circuito esquemático de un Puente H diseñado con transistores MOSFET de canal N y canal P. 98
Si por el contrario se utilizan transistores de canal N en el lado superior del Puente H, la tensión necesaria para activar los Gates deberá provenir de un elevador de tensión que funcione por encima del valor nominal de alimentación del motor (2 a 4 VDC). Puente H con Transistores IGBT.- El transistor IGBT es un un híbrido entre los transistores MOSFET y los transistores BJT, el cual aprovecha las bondades de ambas tecnologías. Este transistor tiene la salida de conmutación y de conducción con las características de los transistores bipolares, pero es controlado por tensión como un transistor MOSFET. En general, esto significa que tiene las ventajas de la alta capacidad de manejo de corriente propias de un transistor bipolar, con la facilidad del control de conducción por tensión que ofrece un MOSFET. Sin embargo, los transistores IGBT no son dispositivos ideales y entre algunas de sus desventajas se encuentra la baja velocidad de respuesta (20Khz) y no siempre traen el diodo de protección (Damper) que incluyen los transistores MOSFET. El Puente H diseñado con transistores IGBTes eficiente cuando se requiere controlar motores que demandan suficiente potencia, debido al alto voltaje y corriente que pueden soportar, por encima de los 300 Volts y 100 Amperes.
Figura 4.53. Circuito esquemático de un Puente H diseñado con transistores IGBT.
4.3.3.3 Selección del Puente H y los Elementos de Potencia a Utilizar Debido a que el Puente H completo puede ser utilizado para invertir el giro del motor, se utilizará para controlar los motores del Péndulo Invertido. Los Puentes H L293x y el L298, son circuitos integrados que no toleran frecuentes picos de corriente, generados al invertir el giro de los motores de manera instantánea, propios del Control de un Péndulo Invertido, por lo tanto son inapropiados para este diseño. 99
Características Modo de operación Diseño Impedancia de entrada Potencia Velocidad de conmutación Frecuencia de operación Área de operación segura Voltaje de saturación
BJT Corriente Fácil Bajo Bajo Baja (µs) Baja (<100kHz) Angosta Bajo
MOSFET Voltaje Difícil Alto Mediano Rápida (ns) Rápida (<1MHz) Amplia Alto
IGBT Voltaje Difícil Alto Alto Mediana Media Amplia Alto
Tabla 4.14. Tabla comparativa de las características de los elementos de potencia utilizados.
La Tabla 4.14, muestra las características de los Puentes H diseñados con transistores BJT, MOSFET e IGBT; como se mencionó en la Sección 4.2.2, la velocidad de los motores será controlada mediante los módulos CCP internos del µC_3, los cuales estarán trabajando a una frecuencia de 488 Hz, la cual es una frecuencia baja y evita la inestabilidad causada por la respuesta de los motores a frecuencias mas altas. Los elementos de potencia utilizados serán los transistores BJT, debido a las características que presenta el diseño de un Puente H con este tipo de transistores, aunado a la baja frecuencia de trabajo de los módulos CCP; el diseño propuesto será realizado con transistores Darlington y se muestra en la Figura 4.51.
4.3.4 Diseño de Hardware La Etapa de Potencia, es la última de las tres etapas que forman el sistema completo para el control de un Péndulo Invertido, está última, al igual que las otras dos, es de tipo SHIELD y va montada sobre la Etapa de Control B. Esta etapa cuenta con su propia fuente de 5VDC, esto para evitar que a través de las líneas de alimentación se filtren las perturbaciones provocadas por los motores, además, cada Puente H cuenta con una fuente independiente de 24VDC que es capaz de proporcionar hasta 3A máximo. Por último, las señales de control para los motores se encuentran opto aisladas entre el origen y el destino, Etapa de Control B y Etapa de Potencia respetivamente, y es en esta última donde se encuentran los opto aisladores.
4.3.4.1 Fuentes de Alimentación y Filtros Como se mencionó anteriormente, la Etapa de Potencia cuenta con dos fuentes independientes de 24VDC cada una, destinadas a proporcionar el voltaje suficiente para los motores que actuarán en el control del Péndulo Invertido; por otra parte, de una de 100
estas fuentes se desprende una tercera, la cual será la encargada de proporcionar un voltaje continuo de 5VDC para alimentar los circuitos integrados que manipulan las señales de control, provenientes de la Etapa de Control B. Las fuentes que integran a la Etapa de Potencia no requieren de diseños robustos, en términos de filtros que se encarguen de suprimir las componentes indeseadas en las líneas de alimentación, para las fuentes de 24VDC basta con un puente rectificador y un capacitor (filtro) que se encargue de alisar la onda proveniente del rectificador y así eliminar el componente de la corriente alterna. Sin embargo, al final de cada una de las dos fuentes, estará acoplado un capacitor de poliéster de 100nF, con la finalidad de proteger a los diodos rectificadores y el filtro que se encuentran anteriores a él, la Figura 4.54, muestra el diseño de las dos fuentes de 24VDC. Los capacitores de poliéster son capaces de tolerar cambios bruscos en la corriente que fluye a través de ellos, por otra parte, en caso de que un exceso de tensión los perfore, el metal interno que los compone se vaporiza en una pequeña zona, rodeando la perforación y evitando el cortocircuito, lo que le permite seguir funcionando, este fenómeno es conocido como autorregeneración o autoreparación.
Figura 4.54. Conexiones y componentes para las fuentes de voltaje de 24VDC.
La fuente de 5VDC proviene de una de las dos fuentes de 24VDC, debido a que los circuitos integrados que serán conectados a ella no son sensibles a las perturbaciones que existentes en las líneas de alimentación, la Figura 4.55 muestra el diseño de la fuente de 5VDC, la cual solo consta de los reguladores de voltaje y los capacitores de los mismos. 101
Figura 4.55. Conexiones y componentes para la fuente de voltaje de 5VDC.
4.3.4.2 Etapa de Acoplamiento y Manipulación de las Señales de Control En la Sección 4.3.2 fueron definidos los optoacopladores encargados de aislar la Etapa de Potencia de la Etapa de Control B; las cuatro señales de control provienen del µC_3, por lo tanto, es necesario utilizar un optoacoplador 4N25 por cada una.
Figura 4.56. Conexiones y componentes para la etapa de acople. 102
Después de cada salida ya acoplada, se debe conectar un seguidor de voltaje a cada una, debido a que la impedancia de entrada que maneja es muy alta y es capaz de proporcionar aislamiento de la salida respecto de la señal de entrada, anulando así los efectos de carga. La Figura 4.56, muestra las conexiones necesarias para el acoplamiento de las cuatro señales de control, además de las conexiones requeridas para los seguidores de voltaje, los cuales, son implementados mediante el CI LM324 que contiene internamente cuatro amplificadores operacionales. Como se mencionó anteriormente, el control del Péndulo Invertido requiere de dos motores de 24VDC, por lo tanto las señales anteriormente acopladas deben controlar dos Puentes H, estas señales se deben mezclar entre sí para lograr que el sentido de giro (A0 y A1) se vea afectado por las frecuencias generadas por los módulos CCP1 y CCP2, para lograr esto, se utiliza el CI 74HC08, el cual es una compuerta lógica AND.
Figura 4.57. Conexiones y componentes para la manipulación de las señales de control.
La mezcla entre A0 y CCP1 y A1 y CCP1 generan las salidas (S1 y S2) que controlan los transistores de un Puente H, por otra parte, la mezcla entre A0 y CCP2 y A1 y CCP2, generan las salidas (S3 y S4) que controlan los transistores de otro Puente H, Figura 4.57.
4.3.4.3 Diseño de Puentes H En la Sección 4.3.3.3 se definió la selección de los Puentes H que se utilizan para el Control del Péndulo Invertido, los cuales fueron diseñados con transistores Darlington y el diseño es similar al mostrado en la Figura 4.51. Los transistores A y B mostrados en la Figura 4.58 ayudan a que sea más óptimo el funcionamiento del circuito, al no tener que activar directamente la base de los transistores que realizan el movimiento del motor, en lugar de ello, se activa la base del transistor A, el cual, activa la base de los transistores Q1 y Q4 haciendo que el motor gire 103
hacia un lado, por otra parte, si se activa la base del transistor B, éste activará la base de los transistores Q3 y Q2 haciendo que el motor gire en sentido contrario. Como se mencionó anteriormente, se utilizaran dos Puentes H, por tal motivo, se requiere de cuatro señales que activen los transistores A y B de cada puente. Estas señales se observan en la Figura 4.57 y son nombradas como S1, S2, S3 y S4.
Figura 4.58. Diseño de un Puente H con transistores Darlington.
Estando definido el diseño de los Puentes H, así como los componentes necesarios para que el control de los motores que llevara el Péndulo Invertido sea eficiente y soporte los picos de corrientes generados al realizar los cambios de giro, se realiza la conexión del circuito en el software electrónico ISIS PROTEUS.
Figura 4.59. Conexiones y componentes para un Puente H.
La Figura 4.59, muestran el diagrama de conexión de los dos Puentes H que se utilizaran para el Control del Péndulo Invertido, se observa que el diseño es similar para 104
ambos Puentes, debido a que los motores que se utilizarán tienen las mismas características y especificaciones. Como se mencionó en la Sección 4.2.4.2, es sobre la Etapa de Potencia donde estarán montados los dispositivos para visualizar los datos del sistema, la información llegará a través de dos conectores SIL macho, acoplados a la Etapa de Control B, las conexiones se observan en la Figura 4.60.
Figura 4.60. Conexiones y componentes para un Puente H.
Por último, estando descritas y diseñadas las etapas principales, la Figura 4.61, muestra el diseño completo de la Etapa de Potencia, desarrollado en el software electrónico ISIS PROTEUS.
105
Figura 4.61. Diseño en ISIS PROTEUS para la Etapa de Potencia.
106
4.3.4.4 Placa de Circuito Impreso Estando conectados todos los componentes necesarios para la Etapa de Potencia en el software electrónico ISIS PROTEUS, se exporta el diseño al software de diseño ARES PROTEUS para diseñar el PCB de esta etapa.
Figura 4.62. Diseño en ARES PROTEUS de la Etapa de Potencia.
107
La Figura 4.62, muestra el diseño final del circuito impreso para la Etapa de Potencia, esta placa va acoplada sobre la Etapa de Control B que a su vez, estará acoplada a la Etapa de Control A (placas tipo SHIELD), por lo tanto, el diseño cuenta con cortes en las zonas donde se encuentran los conectores para grabar los µCs por el protocolo ICSP así como el conector para el encoder (potenciómetro), el diseño cuenta con una sola cara de cobre; como se puede apreciar, el circuito está dividido en secciones y cada una cuenta con el nombre de la función que realiza.
Figura 4.63. Diseño en 3D de la Etapa de Potencia.
La Figura 4.63, muestra el acabado final en 3D de la tarjeta de circuito impreso para la Etapa de Potencia. Se observa que los elementos de potencia utilizados en los Puentes H están sin disipador, esto se debe a la falta de librerías en el software de diseño, sin embargo, al desarrollarse el diseño físico, estos transistores estarán atornillados a un disipador por cada Puente H.
108
4.3.4.5 Resultado Final de la PCB Para la Etapa de Potencia El diseño realizado en ARES PROTEUS se transfiere a una placa física con la serigrafía y los componentes necesarios soldados sobre ella, la Figura 4.64, muestra el acabado final de la placa de circuito impreso para la Etapa Potencia, se observa que en la cara frontal cuenta con los conectores SIL hembra en donde se acoplan los dispositivos para visualizar la información del sistema.
Figura 4.64. Cara frontal del diseño para la Etapa de Potencia. 109
En la cara posterior (Figura 4.65), se observan los conectores SIL macho con los que se acopla a la Etapa de Control B, además se aprecia que debido a los picos de corriente que estarán presentes en esta última Etapa, las pistas de cobre a través de las cuales fluirá la mayor cantidad corriente están reforzadas con estaño, con el propósito de ofrecer protección adicional al diseño.
Figura 4.65. Cara posterior del diseño para la Etapa de Potencia.
110
4.4 Presentación Final del Sistema Completo El diseño de las placas del sistema completo es de tipo SHIELD, esto significa que cada una se puede desmontar de las demás, con esta característica cualquiera puede ser mejorada y montada, siempre y cuando se ubiquen los conectores tipo SIL hembra y macho en los lugares ya establecidos para trabajar en conjunto con todas las demás placas; las Figuras 4.66, 4.67 y 4.68 muestran diferentes vistas del sistema completo.
Figura 4.66. Vista Superior del Sistema Completo. 111
Figura 4.67. Vista Lateral del Sistema Completo.
Figura 4.68. Vista Frontal del Sistema Completo. 112
Capítulo V. Diseño de la Estructura Tipo Carro Para el Control de un Péndulo Invertido Introducción En este capítulo se presentan el diseño y los materiales necesarios para armar una estructura tipo carro, la cual, será la encargada de soportar sobre sí misma el Sistema de Control desarrollado en el Capítulo IV, la masa del Péndulo Invertido, el encoder utilizado y los motores que darán movimiento a la estructura. El diseño de la estructura se desarrolló en el software de diseño CAD27 para modelado mecánico en 3D SolidWorks, con la finalidad de generar vistas en 3D que ayuden a mostrar la ubicación de cada uno de los componentes utilizados.
5.1 Estructura Base Para el Carro Como se mencionó en el Capítulo I, uno de los modelos más estudiados del Péndulo Invertido es el denominado Péndulo Invertido sobre un vehículo, al que comúnmente se le denomina carro. La estructura base para el carro será la encargada de soportar todos los componentes necesarios para llevar acabo el control del Péndulo Invertido, por lo tanto, ésta debe ser lo suficientemente rígida y firme para garantizar el desempeño óptimo del sistema.
5.1.1 Selección de los Componentes Debido a los requerimientos planteados con los que debe cumplir la estructura base, el material de la mayoría de los componentes utilizados es de aluminio y acero, fijados completamente por medio de tornillos. La selección detallada de cada uno de los componentes necesarios para el desarrollo de la estructura base del carro, se describe a continuación.
27
CAD.- Computer-Aided Design, Diseño asistido por computadora.
113
5.1.1.1 Placas Laterales Las placas laterales son las encargadas de proporcionar el soporte necesario tanto para los ejes giratorios como para los ejes fijos, además, de ellas depende la longitud y el alto de la estructura. Las placas utilizadas en el desarrollo de la estructura fueron adquiridas de una impresora marca HP y estas corresponden al soporte del riel del cabezal de impresión y están fabricadas principalmente de acero templado; cabe mencionar que son necesarias dos placas de este tipo.
Figura 5.1. Placa lateral extraída de una impresora marca HP.
La Figura 5.2 muestra la ubicación que tendrán las placas laterales dentro de la estructura base para el carro, se observa que en ellas se fijan los ejes giratorios y los ejes fijos que darán soporte y estabilidad a la base. Por otra parte, el sistema de tracción y engranaje también es montado sobre una de estas placas, esto hace que las placas laterales sean parte fundamental dentro del desarrollo de la estructura tipo carro descrita en este Capítulo.
114
Placas laterales.
Figura 5.2. Ubicación de las placas laterales dentro de la estructura base para el carro.
5.1.1.2 Ejes Giratorios Para las Ruedas Los ejes giratorios, son elementos destinados a que una o más ruedas puedan girar libremente; para mantener equilibrada la estructura son necesarios dos ejes, uno delantero y uno trasero. Para brindar mayor adhesión, cada eje debe tener el mayor contacto posible con el suelo, esto a través de ruedas de goma, las cuales deben ser preferentemente de caucho. Al igual que las placas utilizadas en el desarrollo de la estructura, los ejes giratorios son adquiridos de una impresora marca HP; estas impresoras tienen un sistema de desplazamiento de hojas por medio de rodillos, de los cuales, uno de ellos cuenta con cuatro gomas de caucho distribuidas a lo largo de él, que cubren cerca del 50% del mismo; las impresoras cuentan con solo una pieza. Por otra parte, este tipo de rodillos tiene un engrane acoplado en un extremo, el cual, se acopla directamente al sistema de tracción y engranajes de la impresora, por lo tanto son ideales para ser utilizados como los ejes giratorios para las ruedas del carro. Cabe destacar que el largo de los ejes determina el ancho de la estructura base, debido a que no es conveniente córtalos para aprovechar los seguros antideslizantes con los que ya vienen fabricados, mismos que son utilizados para fijarlos en la estructura. 115
Figura 5.3. Eje giratorio para las ruedas extraído de una impresora marca HP.
La Figura 5.4 muestra la ubicación que tendrán los ejes giratorios para las ruedas dentro de la estructura base para el carro, se observa que se acoplan directamente a las placas laterales mediante los seguros antideslizantes. Por otra parte, se observa que el sistema de tracción y engranaje se acopla directamente con el eje giratorio, mediante el engrane ubicado en un extremo del mismo.
Ejes giratorios.
Figura 5.4. Ubicación de los ejes giratorios dentro de la estructura base para el carro.
116
5.1.1.3 Ejes Fijos de Soporte Los ejes fijos de soporte son elementos destinados a proporcionar la firmeza requerida por la estructura, y de esta manera, evitar los movimientos indeseados de la misma; el material de estos ejes es totalmente solera de aluminio de ½ pulgada, debido a que es resistente y la manipulación del mismo es sencilla.
Ejes fijos.
Ejes fijos.
Figura 5.5. Ubicación de los ejes fijos dentro de la estructura base para el carro.
La Figura 5.5 muestra la posición en la que son adaptados los ejes fijos dentro de la estructura base, se observa que hay un eje en el extremo frontal y otro en el extremo trasero, ambos están ubicados en esas zonas para cuadrar la estructura. Por otra parte, los ejes que se encuentran en la zona central son los encargados de darle firmeza a toda la estructura, además, sobre estos descansa el soporte para el encoder y la masa del Péndulo Invertido.
117
5.1.1.4 Placa Superior para Soporte del Sistema de Control La placa superior será la zona donde está fijado el Sistema de Control para el Péndulo Invertido y una placa Arduino Mega, debido a esta razón el material tiene que ser completamente aislante para evitar daños debidos a un corto circuito, el material seleccionado es una pieza de acrílico blanco, la cual, cubre completamente el largo de la estructura y solo el 73% del ancho de la misma, quedando con las medidas 310 x 220 mm, respetivamente.
Figura 5.6. Ubicación de la placa superior dentro de la estructura base para el carro.
En la Figura 5.6, se observa que en la parte inferior izquierda se encuentra un conector con tornillo tipo barra de ocho pares, el cual, tiene la función de conectar los cables provenientes del módulo de energía al sistema de control, y de esta forma, controlar a distancia el encendido y apagado del sistema.
118
5.1.2 Ensamblaje de la Estructura Base Para el Carro Estando seleccionados los componentes necesarios para el desarrollo de la estructura base para el carro, se ensamblan cada uno de ellos, de forma tal que se obtenga una estructura firme y rígida; las Figuras 5.7, 5.8 y 5.9 muestran el acabado físico de dicha estructura.
Figura 5.7. Vista lateral de la estructura base para el carro.
Figura 5.8. Vista superior de la estructura base para el carro. 119
Figura 5.9. Vista inferior de la estructura base para el carro.
5.2 Estructura de Soporte para el Encoder y la Masa del Péndulo Como se mencionó en el Capítulo IV, para medir la posición angular del Péndulo Invertido se utiliza un potenciómetro de salida lineal, el cual, funciona como un encoder que está unido directamente al eje que soporta la masa del Péndulo. La estructura de soporte para el encoder y la masa del Péndulo será la encargada de sujetar al potenciómetro en una misma posición sin importar el movimiento del eje, esto asegura que no habrá variación en el ángulo medido debido a algún cambio interno de la estructura.
5.2.1 Selección de los Componentes Debido al tamaño del potenciómetro, es importante considerar que el material con el que se va a realizar la estructura debe ser maleable, ya que se requiere de piezas pequeñas para ser fijado. Por otra parte, el pivote del potenciómetro no es capaz de soportar el peso del eje y de la masa del Péndulo, por esta razón, se acopla a un sistema sencillo de engranes metálicos que están fijos a la estructura de soporte, evitando daños al encoder debidos al peso de la masa. 120
La selección detallada de cada uno de los componentes necesarios para el desarrollo de la estructura de soporte, se describe a continuación.
5.2.1.1 Base de Soporte La base de soporte es la encargada de proporcionar el espacio donde se encuentra fijo el encoder y el sistema de engranaje que soporta el peso de la masa, esta base se encuentra fija a la estructura base para el carro. La base utilizada en el desarrollo de la estructura de soporte, fue adquirida de una impresora marca HP, la cual, corresponde al cabezal de impresión y está fabricada totalmente de plástico, el cual es un material altamente maleable; en este caso solo se requiere de una pieza.
Figura 5.10. Base de soporte extraída de una impresora marca HP.
La Figura 5.11 muestra la ubicación que tendrá el encoder dentro de la base de soporte, se observa que cuenta con barras de acrílico, proporcionando así la suficiente sujeción a la base y de este modo evitar que existan movimientos indeseados que afecten el mecanismo. Por otra parte, el pivote del potenciómetro se fija directamente dentro de un engrane metálico y es de éste último de donde sale el eje que carga la masa del Péndulo, de este modo, se evita que la rotación del eje pase por algún sistema mecánico más complejo que ponga resistencia, dejando así que el eje se comporte como un cuerpo libre.
121
Figura 5.11. Ubicación del encoder dentro de la base de soporte.
5.2.1.2 Sistema de Engranaje y Soporte de la Masa del Péndulo El sistema de engranaje es el encargado de convertir el movimiento angular del eje del Péndulo en el movimiento rotatorio que requiere el encoder para obtener la posición actual de la masa, además, como se mencionó anteriormente, el sistema de engranaje también tiene el propósito de soportar completamente el peso de la masa. Los engranes utilizados para el sistema de engranaje, fueron adquiridos de un servomotor Tower Pro MG-996R de alto torque, los cuales, están fabricados completamente de metal, asegurando así la durabilidad y resistencia necesaria para el soporte.
Figura 5.12. Engranes metálicos de un servomotor Tower Pro MG-996R. 122
La Figura 5.13 muestra la ubicación que tendrá el sistema de engranaje sobre la base de soporte; se observa a detalle la posición de los engranes dentro del sistema para brindar el soporte necesario y evitar el sobrepeso en el pivote del potenciómetro utilizado como encoder.
Figura 5.13. Ubicación del encoder dentro de la base de soporte.
5.2.1.3 Extensiones Para la Masa del Péndulo Invertido Debido a que el Control de un Péndulo Invertido es un modelo de estudio, es innecesario dejar una estructura limitada a futuras pruebas o mejoras, por esta razón, todo el diseño explicado en el presente trabajo de tesis brinda la posibilidad de sustituir algunas piezas con la finalidad de mejorar el diseño, el control o los principios físicos que intervienen en un Péndulo Invertido. Una variable importante al momento de evaluar el sistema de control, es la distancia desde el pivote al centro de gravedad del péndulo, la cual, es representada como (l) en el modelo explicado con anterioridad en el Capítulo I. Las extensiones para la masa del Péndulo, son pequeñas terminales de aluminio fijadas al sistema de engranes de soporte y a la masa del mismo, entre ambas extensiones 123
se atornillan varillas de aluminio de mayor longitud y, de esta manera, es posible variar la variable (l) a conveniencia.
Figura 5.14. Extensión fijada al sistema de engranes de soporte.
Figura 5.15. Extensión fijada a la masa del Péndulo.
124
Figura 5.16. Varilla de aluminio atornillada a las extensiones.
Las Figuras 5.14 y 5.15, muestran la ubicación de las extensiones, así como la magnitud de la extensión que se encuentra fija al sistema de engranes de soporte y la longitud de la masa del Péndulo Invertido, ambos expresados en milímetros; la Figura 5.16 muestra una varilla atornillada entre ambas extensiones.
125
5.2.2 Ensamblaje de la Estructura de Soporte Para el Encoder y la Masa del Péndulo Estando seleccionados los componentes necesarios para el desarrollo de la estructura de soporte para el encoder y la masa del péndulo, se ensamblan cada uno de ellos, de forma tal que se obtenga una estructura firme y rígida, misma que estará unida a la estructura base para el carro; las Figuras 5.17 y 5.18 muestran el acabado físico de dicha estructura.
Figura 5.17. Vista frontal de la estructura de soporte para el encoder y la masa del péndulo.
Figura 5.18. Vista lateral de la estructura de soporte para el encoder y la masa del péndulo.
126
5.3 Sistema de Tracción y Engranaje Debido a las especificaciones que se tienen en torno al diseño de la estructura base del carro y, recordando que la Etapa de Potencia del Sistema de Control desarrollado en el Capítulo IV está diseñada para activar dos motores de corriente continua, trabajando cada uno con 24VDC a 600mA, se necesita acoplar dos sistemas de tracción independientes. El sistema de tracción y engranaje será el encargado de llevar toda la energía de los motores hacia las ruedas, ya que, como se mencionó con anterioridad, estarán acoplados a los ejes giratorios para la ruedas.
5.3.1 Selección de los componentes Debido a que los componentes necesarios para la estructura base y la estructura de soporte, fueron adquiridos de dos impresoras marca HP del mismo modelo, los componentes internos son exactamente los mismos, además, la estructura mecánica de la impresora tiene el mismo principio de funcionamiento que se va a utilizar en el sistema de tracción y engranaje, lo cual, hace posible utilizar el motor y los engranes de cada impresora. La selección detallada de cada uno de los componentes necesarios para el desarrollo de la estructura de soporte, se describe a continuación.
5.3.1.1 Motores Un motor es un sistema eléctrico-mecánico, capaz de convertir una señal eléctrica en un movimiento mecánico giratorio, debido al tipo de motor y a los componentes internos que tiene, es capaz de ofrecer mayor o menor velocidad y fuerza, según se requiera. Los motores utilizados para el sistema de tracción, fueron adquiridos de dos impresoras marca HP, ambos motores están acoplaos al sistema principal de rotación de la impresora, por lo tanto, son motores con alta velocidad y torque, ambos trabajan a 24VDC a 600mA. La Figura 5.20 muestra la ubicación de los motores en la estructura base para el carro, se observa que los motores sobresalen de ésta, debido a que internamente la estructura no tiene los soportes necesarios para sujetarlos, además, el eje de cada motor tiene que quedar en paralelo con el engrane de cada uno de los ejes giratorios, para evitar que el sistema de tracción sea muy complejo.
127
Figura 5.19. Motor de DC extraído de una impresora marca HP.
Motores.
Figura 5.20. Ubicación de los motores dentro de la estructura base para el carro.
128
5.3.1.2 Engranes Un engrane es un mecanismo utilizado para transmitir potencia de un componente a otro dentro de un sistema mecánico. Una de las aplicaciones más importantes de los engranajes es la transmisión del movimiento desde el eje de una fuente de energía, como puede ser un motor eléctrico, hasta otro eje situado a cierta distancia y que ha de realizar un trabajo. De esta manera, una de las ruedas está conectada por la fuente de energía y es conocido como engranaje motor y la otra está conectada al eje que debe recibir el movimiento del eje motor y que se denomina engranaje conducido. Los engranes utilizados para el sistema de tracción y engranaje, fueron adquiridos de dos impresoras marca HP, al igual que los motores, dado que estos engranes se acoplan perfectamente tanto al eje del motor como a el eje giratorio de las ruedas; cabe resaltar, que el sistema de engranes utilizado lleva una polea, la cual, acopla el eje del motor con el engrane principal.
Figura 5.21. Engranes extraídos de una impresora marca HP.
La Figura 5.22, muestra la ubicación de los engranes y de la polea dentro de la estructura base para el carro, se observa que los engranes se acoplan directamente con el eje del motor así como con el engrane de cada uno de los ejes giratorios para las ruedas.
129
Figura 5.22. Ubicación del sistema de engranes dentro de la estructura base para el carro.
5.3.2 Ensamblaje del Sistema de Tracción y Engranaje Estando seleccionados los componentes necesarios para el desarrollo del sistema de tracción y engranaje, se ensamblan cada uno de ellos, de forma tal que se asegure que queden fijos a la estructura base para el carro, con la finalidad de evitar juego entre los engranes y por ende el desgaste de los mismos.
Figura 5.23. Vista interna del sistema de tracción y engranaje montado sobre la estructura base para el carro. 130
5.4 Módulo de Energía El módulo de energía será el encargado de proporcionar los voltajes necesarios para el Sistema de Control, mencionados con anterioridad en el Capítulo IV, ya que dicho sistema requiere de tres voltajes independientes para poder funcionar, dos de 24 VDC y uno de 9VDC. Las fuentes que proporcionan estos voltajes son transformadores de cobre, los cuales, ocupan mucho volumen y tienen un peso considerable, por tal motivo, es imposible que se encuentren montados sobre la estructura base para el carro, esto con la finalidad de evitar sobrepeso a la estructura. Por esta razón, los tres transformadores se encuentran ubicados en un módulo independiente a la estructura base y, al igual que ésta, cuenta con un conector con tornillo tipo barra de ocho pares y es por estos conectores entre ambas estructuras por donde llega la energía, además, cuenta con el interruptor principal del sistema.
Figura 5.24. Diseño del módulo de energía.
La Figura 5.24, muestra la ubicación que tendrá tanto los transformadores como el conector con tornillo tipo barra dentro del módulo de energía, además, se observa el interruptor principal mencionado anteriormente; la Figura 5.25 muestra la vista superior del módulo de energía, en la cual, se observan las medidas que tiene, ambas expresadas en milímetros. 131
Figura 5.25. Vista superior del módulo de energía.
5.5 Ensamblaje Final Finalmente, estando definidas todas las partes principales que integran el diseño de la estructura tipo carro para el control de un Péndulo Invertido, se muestra en las siguientes figuras el acabado final, tanto en el software de diseño CAD para modelado mecánico en 3D, SolidWorks, así como el acabado físico. En la Figura 5.26, se muestra el acabado final en el software de diseño mecánico SolidWorks, se observa la estructura tipo carro así como el módulo de energía; hay que recordar que son varios cables los que se conectan entre ambas estructuras, por lo tanto, estos cables cruzan internamente a través de una manguera corrugada, la cual, cuenta con la flexibilidad suficiente para garantizar el desplazamiento libre de la estructura. Las Figuras 5.27, 5.28, 5.29 y 5.30, muestran el acabado físico visto desde diferentes ángulos, se observa que el Sistema de Control se encuentra montado sobre la estructura y todos los cables conectados en la posición correcta.
132
Figura 5.26. Acabado final de la estructura tipo carro y el módulo de energía desarrollados en el software de diseño mecánico SolidWorks.
133
Figura 5.27. Vista superior de la estructura tipo carro y el módulo de energía.
Figura 5.28. Vista lateral de la estructura tipo carro y el módulo de energía.
134
Figura 5.29. Vista superior de la estructura tipo carro.
Figura 5.30. Vista superior del módulo de energía.
135
136
Capítulo VI.- Pruebas y Resultados Introducción En este Capítulo se presentan las pruebas realizadas al sistema completo, se proponen dos pruebas específicas, prueba de perturbación y recuperación y prueba grado a grado y recuperación, ambas pruebas brindan información sobre el comportamiento del Péndulo Invertido, como el tiempo de recuperación, el grado máximo en cual el Sistema de Control es capaz de recuperar la estabilidad de la masa y la importancia de considerar la distancia desde el pivote al centro de gravedad del péndulo.
6.1 Módulo Independiente de Captura de Datos en Tiempo Real Para realizar las pruebas al Sistema Completo sin afectar su funcionamiento o limitar el espacio que requiere para llevar la masa del Péndulo Invertido a la estabilidad, se considera un módulo que vaya montado sobre el carro, el cual leerá en tiempo real la señal analógica proveniente del encoder al mismo tiempo que ésta es leída por el Sistema de Control.
6.1.1 Placa Arduino y Respaldo de Datos en Memoria SD Arduino es una compañía de hardware libre, la cual, desarrolla placas de circuito electrónico que integran un microcontrolador y un IDE28, estas placas pueden conectarse a placas de expansión conocidas como SHIELDS, las cuales, añaden características de funcionamiento a las placas Arduino. El entorno de desarrollo de Arduino integra librerías adaptadas al tipo de programación que utiliza, esto significa que sin cambios bruscos y utilizando las librerías apropiadas es posible leer un sensor sin más que utilizar la directiva [read] y especificar una dirección de memoria donde se guardará el dato leído. Tanto las características de hardware como de software hacen que la plataforma Arduino sobresalga en el uso de algunas aplicaciones, como las comunicaciones GSM, Ethernet, WiFi y USB, así como el manejo de la lectura y escritura de memorias SD de forma sencilla. El módulo para realizar las pruebas del Control del Péndulo Invertido está programado en una placa Arduino Mega 2560, la cual es la encargada de leer el valor 28
IDE.-Entorno de desarrollo.
137
analógico que proviene del encoder, calcular la posición angular del Péndulo y respaldar los datos obtenidos en una memoria SD; el módulo también cuenta con un µC PIC16F628 el cual se encarga de activar o desactivar la escritura en la memoria SD según los datos obtenidos mediante un receptor IR, por lo tanto, el sistema de respaldo de datos se puede activar o desactivar con un mando a distancia. La Figura 6.1 muestra el Módulo de Captura de Datos en Tiempo Real, la placa inferior es la placa Arduino Mega 2560 y la placa superior tipo SHIELD tiene montado sobre ella el adaptador para la memoria SD, el PIC16F628 y los componentes necesarios para su funcionamiento.
Fig. 6.1. Módulo Independiente de Captura de Datos en Tiempo Real.
6.1.2 Manejo de los Datos Obtenidos El Modulo Independiente de Captura de Datos en Tiempo Real guarda dos columnas de datos en la memoria SD, la primera columna contiene la posición angular del péndulo invertido y la segunda columna almacena una variable de tiempo en milisegundos proporcionada por la placa Arduino, por lo tanto es posible saber la posición del péndulo con respecto al tiempo. Los datos se almacenan en un archivo con extensión .TXT y están separados por una coma, estas condiciones de almacenamiento proporcionan la posibilidad de leer directamente el archivo mediante el software matemático MatLab y de esta forma poder manipular los datos para graficarlos e interpretarlos desde una computadora. 138
6.2 Características del Entorno Para Realizar las Pruebas Como se mencionó en la Sección 5.1.1.2 del Capítulo anterior, las llantas utilizadas en la Estructura Tipo Carro Para el Control del Péndulo Invertido fueron extraídas de una impresora y estas corresponden a los rodillos del sistema de desplazamiento de hojas. Estos rodillos cuentan con secciones cilíndricas color negro, las cuales son utilizadas en este trabajo de tesis como llantas y están fabricadas a base de caucho sintético, el cual, es un componente con bastante adhesión a las superficies y es esta característica la que lo convierte en un material ideal para ser utilizado como llantas. Debido a que las llantas son de diámetro pequeño, lo ideal es que el suelo sea completamente plano; cualquier abultamiento, hundimiento o grieta provocaría que el carro se detenga o brinque bruscamente, afectando directamente el Sistema de Control. Por otra parte, las llantas son completamente lisas, esto significa que el área inferior de estas estará en contacto directo con el suelo, y, al ensuciarse y no tener una forma en su superficie que favorezca el agarre al suelo, estas se patinaran; para evitar esto es indispensable que el suelo y las llantas estén completamente limpias.
Fig. 6.2. Área donde se realizaron las pruebas.
La Figura 6.2 muestra el área donde se realizaron las pruebas, el suelo es de mármol pulido y está completamente liso, además, previamente se verificó que estuviera 139
lo más liso posible y completamente a 0° para evitar que la masa del Péndulo cargara más hacia un lado y evitara que el Sistema de Control realizara su trabajo correctamente.
6.3 Pruebas Realizadas Las pruebas realizadas para verificar el correcto funcionamiento del Sistema de Control en conjunto con la Estructura Tipo Carro fueron dos y se explican a continuación. Prueba de perturbación y recuperación. Esta prueba consiste en poner el Péndulo Invertido inicialmente a 90°, de esta forma el Sistema de Control mantendrá los motores apagados, instantes después el péndulo recibirá una pequeña perturbación. La finalidad de esta prueba es iniciar el sistema en estado de reposo, realizar una perturbación externa y medir el tiempo que tarda en estabilizarse, si es que es posible. Prueba grado a grado y recuperación. Esta prueba consiste en poner el Péndulo Invertido en los próximos cinco grados después de 90°, esto significa ponerlo en 91° soltarlo y detenerlo hasta que se haya establecido en posición de reposo, y así sucesivamente hasta llegar a 95°, grado a grado. La finalidad de esta prueba es observar a que grado máximo el Sistema de Control es capaz de recuperar el control del Péndulo Invertido. Cada una de las pruebas antes mencionadas se realizó con diferentes medidas entre el pivote y el centro de gravedad del péndulo; se contemplaron tres diferentes medidas, 40, 60, y 80 cm., por lo tanto cada prueba se realizó tres veces. Por último, cuando la masa del Péndulo se encuentra estable en 90 grados, el Módulo Independiente de Captura de Datos en Tiempo Real graba en la memoria SD una línea con brincos entre 89, 90 y 91 grados (en algunas ocasiones); esto se debe a las diferencias entre cada sistema de lectura analógica (Microchip y Atmel), la frecuencia de los cristales, y los entornos de programación, sin embargo, el Péndulo se encuentra en estado estable y solo se considera como un error en el respaldo de datos en la memoria SD.
6.3.1 Prueba de Perturbación y Recuperación La Prueba de Perturbación y Recuperación ó PPR, por sus siglas, se realizó una vez para cada una de las medidas antes mencionadas, las gráficas obtenidas muestran el estado de la masa del Péndulo Invertido (eje Y) con respecto al tiempo (eje X). Las tres muestras tienen un tiempo inicial aproximado a 10 segundos, en el cual, se puede apreciar que el Péndulo estaba completamente estable antes de iniciar la prueba, 140
por otra parte, cuando el Sistema de Control logra estabilizar la masa del Péndulo Invertido, la prueba continúa durante cinco segundos aproximadamente, con lo cual queda explícito que se logró estabilizar la masa por un período mayor a 3 segundos. La Figura 6.3, muestra la prueba de Perturbación y Recuperación con las tres distancias propuestas entre el pivote y la masa, todos los datos obtenidos se presentan en la misma imagen y con la misma escala para poder visualizar la diferencia entre cada magnitud de la prueba. La Figura 6.3 a), muestra los datos obtenidos para 40 cm. entre el pivote y la masa; el Control del Péndulo Invertido no logró estabilizar el sistema durante los primeros 90 segundos, además, se observa que tiene mucha variación, logrando caer hasta 60 grados. La Figura 6.3 b), muestra los datos obtenidos para 60 cm. entre el pivote y la masa; el Control del Péndulo Invertido logró estabilizar la masa aproximadamente en 40 segundos después de recibir la perturbación externa.
Fig. 6.3. Prueba de Recuperación y Perturbación para 40, 60 y 80 cm. entre masa y pivote.
Por último, la Figura 6.3 c), muestra los datos obtenidos para 80 cm. entre el pivote y la masa; el Control del Péndulo Invertido logró estabilizar la masa aproximadamente en 35 segundos después de recibir la perturbación externa, además las variaciones del sistema no sobrepasan los 95 grados. 141
6.3.2 Prueba Grado a Grado y Recuperación La Prueba Grado a Grado y Recuperación ó GGR, por sus siglas, se realizó cinco veces para cada una de las medidas antes mencionadas, una prueba por cada grado a partir de 91°, las gráficas obtenidas muestran el estado de la masa del Péndulo Invertido (eje Y) con respecto al tiempo (eje X). Al igual que en la prueba anterior, las muestras tienen un tiempo inicial aproximado a 10 segundos, en el cual, se puede apreciar que el Péndulo estaba completamente fijo a 91°, 92°, 93°, 94° o 95° antes de iniciar la prueba; por otra parte, cuando el Sistema de Control logra estabilizar la masa del Péndulo Invertido, la prueba continúa durante cinco segundos aproximadamente, con esto queda explícito que se logró estabilizar la masa por un periodo mayor a 3 segundos. Las Figuras 6.4, 6.5, 6.6, 6.7 y 6.8, muestran tres gráficas cada una, la gráfica a) muestra los datos obtenidos para 40 cm. entre el pivote y la masa, la gráfica b) muestra los datos obtenidos para 60 cm. entre el pivote y la masa, la gráfica c) muestra los datos obtenidos para 80 cm. entre el pivote y la masa. El comportamiento de la masa del Péndulo Invertido es similar al observado en la prueba anterior para cada una de las medidas entre el pivote y la masa; la Figura 6.4 muestra la prueba realizada para 91° al inicio.
Fig. 6.4. Prueba Grado a Grado y Recuperación, 91° al inicio.
142
La Figura 6.5 muestra la prueba realizada para 92° al inicio; la Figura 6.6 muestra la prueba realizada para 93° al inicio.
Fig. 6.5. Prueba Grado a Grado y Recuperación, 92° al inicio.
Fig. 6.6. Prueba Grado a Grado y Recuperación, 93° al inicio. 143
La Figura 6.7 muestra la prueba realizada para 94° al inicio; la Figura 6.8 muestra la prueba realizada para 95° al inicio.
Fig. 6.7. Prueba Grado a Grado y Recuperación, 94° al inicio.
Fig. 6.8. Prueba Grado a Grado y Recuperación, 95° al inicio. 144
En las pruebas realizadas anteriormente, se observa que el sistema tuvo mejor respuesta cuando la distancia entre el pivote y el centro de la masa es mayor, siendo esta de 80 cm, por lo tanto, se realizó la prueba para 96° al inicio, con las mismas características. La Figura 6.9 muestra la prueba realizada, en la cual, se observa que el sistema no es capaz de recuperar la vertical del Péndulo Invertido. Por tal motivo, se da por hecho que el sistema no funciona correctamente para inclinaciones mayores a 95° y no se realizan más pruebas bajo estas condicones.
Fig. 6.9. Prueba Grado a Grado y Recuperación, 96° al inicio.
Como se mencionó en el Capítulo III, Sección 3.2.7.1, el Sistema de Control fue diseñado para tener una respuesta similar a una señal tipo Sigmoidea, debido a que se desea que el sistema presente una respuesta lenta entre más cerca se encuentre del setpoint, para guardar el equilibrio y viceversa, entre más alejado se encuentre, debe tener una respuesta más rápida para aproximarse al set-point. Por lo tanto, si la respuesta que presenta el sistema se parte sobre el eje X en el set-point (90°), se genera una parte positiva (91°, 92°, 93°, etc.) y una parte negativa (89°, 88°, 87°, etc.), de esta forma el comportamiento del Sistema de Control debe ser similar entra cada una de las partes, debido a que una parte es espejo de la otra, pero en sentido contrario. Las pruebas anteriores se realizaron tanto para la parte positiva como para la parte negativa y se observó que la respuesta del Sistema de Control es similar. Finalmente, las Figuras 6.10, 6.11 y 6.12, muestra dos gráficas cada una, la gráfica a) muestra la respuesta del sistema en la parte positiva y la gráfica b) muestra la respuesta del sistema en la parte negativa; estas pruebas fueron realizadas únicamente con 80 cm. entre el pivote y la masa, debido a que con esta distancia se observó la mejor respuesta del Sistema de Control. La Figura 6.10, muestra las gráficas para 91° al inicio (a) contra 89° al inicio (b), se observa que el sistema se estabiliza en los dos casos, sin embargo, hay variaciones en el tiempo de respuesta; además se puede observar que las variaciones del sistema no sobre pasan el rango de +/- 5° sobre el set-point. 145
Fig. 6.10. Prueba Grado a Grado y Recuperación, 91°al inicio contra 89° al inicio.
La Figura 6.11, muestra las gráficas para 93° al inicio (a) contra 87° al inicio (b), se observa que el comportamiento es muy similar entre ambas y que las variaciones del sistema no sobre pasan el rango de +/- 5° sobre el set-point, además, el tiempo de recuperación entre ambas pruebas es completamente similar.
Fig. 6.11. Prueba Grado a Grado y Recuperación, 93° al inicio contra 87° al inicio.
La Figura 6.12, muestra las gráficas para 95° al inicio (a) contra 85° al inicio (b), se observa que el comportamiento de estabilización se logra, pero el tiempo varía entre ambos, además las variaciones del sistema sobrepasan o alcanzan valores por encima del rango de +/- 5° sobre el set-point.
146
Fig. 6.12. Prueba Grado a Grado y Recuperación, 95° al inicio contra 85° al inicio.
La gráficas mostradas en las Secciones 6.3.1 y 6.3.2 muestran los resultados obtenidos al realizar las pruebas del Sistema de Control, con las cuales, se realiza una tabla comparativa contra el trabajo realizado por Calderón G. en el Centro Nacional de Investigación y Desarrollo Tecnológico (2009), el cual, desarrolla un Controlador del Péndulo Invertido usando dos celdas neuronales analógicas y los compara contra un controlador clásico, los datos se muestran en la Tabla 6.1.
Variables de comparación
Trabajos comparados Clásico
CENIDET
FCBIyT
(Compensador de adelanto de fase)
(Celdas neuronales analógicas)
(Controlador lógico difuso)
Rango de estabilidad
±1.5°
±0.5°
0°
Rango de Recuperación
5°
3°
5°
Tiempo de establecimiento
3.4 seg.
Mejor caso:
Peor caso:
Mejor caso:
Peor caso:
4 seg.
5.2 seg.
3.3 seg.
56 seg.
Tabla 6.1. Tabla comparativa del trabajo realizado contra trabajos similares.
147
6.4 Consumo de RAM y ROM en los Microcontroladores El Sistema de Control de un Péndulo Invertido mediante lógica difusa desarrollado en este trabajo de tesis cuenta con tres µCs de gama alta PIC18F4550 de la familia 18F de Microchip. El PIC18F4550 cuenta con tres tipos de memoria: ROM, RAM y EEPROM; la memoria ROM, también conocida como memoria de programa, se utiliza para guardar permanentemente el programa que está ejecutando en el µC; la memoria RAM se utiliza como memoria de trabajo y el contenido de esta memoria se borra al apagar la fuente de alimentación. La memoria EEPROM sirve para guardar o leer algunos resultados creados y utilizados durante la ejecución del programa y el contenido de esta memoria es permanentemente guardado al apagar la fuente de alimentación. En el Capítulo IV se describió a detalle la función de cada uno de los µCs utilizados, cada uno nombrado como µC_1, µC_2 y µC_3; la Tabla 6.2 muestra el entorno de programación en el que se desarrolló cada programa; además, muestra la cantidad de memoria ROM y RAM utilizada por cada dispositivo, para el µC_3 no se tiene el porcentaje de memoria RAM utilizada debido a que el entorno de programación no lo proporciona; por último, la memoria EEPROM no fue utilizada en ningún dispositivo, por lo tanto, no figura dentro de la tabla.
Microcontrolador µC_1 µC_2 µC_3
Entorno de Programación PIC C PIC C Niple
ROM utilizada RAM utilizada 11% 1% - 3% 19% 8% - 10% 3% Tabla 6.2. Porcentajes de memoria utilizada en cada µC.
148
Conclusiones y Trabajos Futuros Finalmente, después de desarrollar, construir y realizar las pruebas para verificar el funcionamiento del Controlador Lógico Difuso, podemos mencionar las siguientes conclusiones: Se diseñó un control Neuro-Difuso tipo Sugeno aplicado en el control de un Péndulo Invertido, el cual, se desarrolló y entrenó en el software matemático MatLab con apoyo del software matemático Scientific Workplace; este control se migró al lenguaje de programación C para PICs y fue grabado en un µC de gama alta PIC18F4550 de la familia 18F de Microchip. Para el diseño del Sistema de Control se desarrollaron dos sistemas que trabajan en conjunto, uno para la lectura de la posición del péndulo y el otro que contenga al Control Difuso, a su vez, estos sistemas deben comunicarse entre ellos, por lo tanto, se utilizarán dos µCs con las mismas características internas de hardware. El motivo de usar dos µCs de este tipo, es debido a que la comunicación entre ambos sistemas debe ser lo bastante rápida para que la respuesta del péndulo lo sea; este µC cuenta con un módulo de comunicación embebido USB que lo hace apropiado para ello, ya que cuenta con opciones de configuración para aumentar la frecuencia de trabajo, logrando llevar la velocidad del µC por encima de las 15 MIPS. El sistema de control desarrollado requiere conocer el estado actual del Péndulo Invertido, por lo tanto, se implementó un sistema capaz de medir la inclinación a partir de la lectura de un potenciómetro lineal, al cual, se adaptó una barra encargada de soportar una masa. Debido a que el control Neuro-Difuso se desarrolló para realizar el control de un Péndulo Invertido, se diseñó un sistema barra-masa capaz de oscilar libremente en un mismo eje sobre un juego de engranes, el cual, tiene la función de evitar la fricción generada por el movimiento oscilatorio de la masa del Péndulo. El sistema barra-masa fue adaptado a un chasis tipo carro que puede corregir las oscilaciones que presente la masa del Péndulo, por lo tanto, el carro es capaz de desplazarse libremente sobre el mismo eje en el cual se presentan estas perturbaciones; el chasis diseñado cuenta con dos motores de 24VDC a 600mA cada uno. Para controlar el sentido de giro y la velocidad de respuesta de los motores con los que cuenta el chasis, se diseñó un sistema a partir de un µC de la misma gama descrita con anterioridad, debido a las características de los módulos CCP con los que cuenta. Este µC genera dos señales PWM y dos señales de control a partir de los datos que proporciona el control Neuro-Difuso, estas señales son las encargadas de proporcionar la 149
información a la Etapa de Potencia y pueden controlar la velocidad de los motores en un rango de 0-100%, en pasos de 2%. Debido a las inestables oscilaciones que presenta el Péndulo Invertido, el carro tiene que cambiar de dirección bruscamente, estos cambios generan continuos picos de corriente, por ello, se desarrolló una Etapa de Potencia que cuenta con un Puente H para cada motor, los cuales se diseñaron a partir de transistores tipo Darlington capaces de soportar los picos de corriente generados. Todos los sistemas desarrollados cuentan con una etapa de visualización de datos, los cuales, son mostrados a través de una misma pantalla LCD seleccionable por medio de jumpers, además, cada placa PCB diseñada es tipo SHIELD, por lo tanto, cada sistema es capaz de trabajar de forma independiente y ser sustituido por algún otro, dependiendo de los requerimientos del sistema. Por último, se realizó un sistema encargado de leer los datos proporcionados por el potenciómetro lineal utilizado para medir la inclinación del Péndulo, este sistema calcula los grados de forma independiente al sistema principal y los almacena en una memoria SD junto con una variable de tiempo, por lo tanto, mediante este sistema es posible conocer el estado del Péndulo Invertido en tiempo real; con los datos almacenados en la memoria SD, se realizaron las gráficas que muestran el comportamiento del sistema. Al realizar las pruebas, el Controlador Lógico Difuso presentó un desempeño adecuado en lo que a la variable de control se refiere, pues logra estabilizar el Péndulo en un rango de ± 5° con respecto al set-point, se observó que el tiempo de estabilización es dependiente de la distancia que existe entre el pivote y el centro de la masa del Péndulo, presentando una respuesta de estabilización más rápida cuando la distancia es mayor. En el trabajo realizado por Calderón G. en el Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ingeniería Electrónica (2009), se explica que logró mantener la vertical de la varilla en estado estable en un intervalo de ± 0.5° y un máximo sobreimpulso de aproximadamente 3° al momento de presentarse una perturbación, por otra parte y atendiendo las mismas condiciones experimentales, el controlador clásico hizo lo propio manteniendo el ángulo de la varilla con respecto a la vertical en estado estable en un intervalo de ± 1.5° y un máximo sobreimpulso de aproximadamente 5°. Sin embargo, al realizar las pruebas en el presente trabajo de Tesis con la varilla más larga, se logra mantener la vertical de la misma a 90° durante más de 3 segundos y con un sobreimpulso aproximado de 5°, por lo tanto, los resultados obtenidos son ampliamente comparables con trabajos relacionados al control de un Péndulo Invertido utilizando sistemas de Control Difuso y Convencionales.
150
Por lo anterior, el aporte que se identifica con este trabajo de Tesis, consiste en contribuir al desarrollo de la investigación de las nuevas tecnologías, las que pueden ser utilizadas desde los laboratorios de la Universidad así como también, a las aplicaciones y procesos existentes en la industria de nuestro país.
Trabajos Futuros De acuerdo a los resultados que se obtuvieron, se puede afirmar que el tiempo de respuesta es más rápido cuando la distancia que existe entre el pivote y el centro de la masa del Péndulo Invertido es mayor, dentro de un rango de ± 5°, sin embargo, aún se puede optimizar este tiempo y ampliar el rango de oscilación realizando un sistema de control difuso con un número mayor de reglas y, de este modo, obtener una base de conocimientos con decisiones más precisas. Con esto, se puede tener un error menor al que se obtuvo en este trabajo de Tesis y compararse contra los resultados obtenidos con otros Sistemas de Control. La modificación del número de funciones de membresía, traería como consecuencia un requerimiento mayor de recursos en el µC, lo cual, hasta cierto punto no afectaría la respuesta del sistema, debido a que como se mencionó en el Capítulo IV, se implementó un µC por cada etapa, a los cuales, se les aumento la frecuencia de trabajo mediante el técnica Overclock, garantizando de esta manera que el tiempo de respuesta no se vea afectado al tener asignada una tarea específica. Otra modificación propuesta es la implementación de un nuevo encoder, el cual, no presente un desgaste significativo con el tiempo, puesto que el potenciómetro que se utiliza presenta un tiempo de vida corto, debido a la fricción que genera internamente con los cambios de dirección del Péndulo Invertido. Con ello, se propone también mejorar la base de soporte en donde se fija el encoder y el sistema de engranaje que soporta el peso de la masa, dado que a través de las pruebas realizadas se observó que la varilla tiende a cargar el peso del Péndulo hacia los lados contrarios al giro del potenciómetro, generando movimientos indeseados que afectan al mecanismo. Por último, la Etapa de Control de los motores se diseñó para manipular dos señales independientes a través de la modulación por ancho de pulso (PWM), trabajando a una frecuencia de 488 HZ cada una, sin embargo, se propone modificar este valor de frecuencia y observar la respuesta que presentan los motores trabajando a diferentes frecuencias con el propósito de mejorar el control del sistema.
151
152
Apéndice A En la siguiente tabla se muestran los valores de aproximación para la respuesta del sistema tipo Sigmoidea, empleadas en el Capítulo III, Sección 3.2.7.2. Error 60 50 40 30 20 10 3 0 -3 -10 -20 -30 -40 -50 -60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 50 40 30 20 10
Posición Actual 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 20 20 20 20 20 20
Salida 180 178 175 169 159 143 118 90 62 37 21 11 5 2 0 180 178 175 169 159 143 118 90 62 37 21 11 5 2 0 180 178 175 169 159 143
Error 3 0 -3 -10 -20 -30 -40 -50 -60 60 50 40 30 20 10 5 2.5 2 1 0 -60 -50 -40 -30 -20 -10 -5 -2.5 -2 -1 0 60 0 -60 -60 -60
Posición Actual 20 20 20 20 20 20 20 20 20 89 88 84 79 70 90 60 50 40 30 20 90 91 92 96 101 110 120 130 140 150 160 160 160 160 90 20
Salida 118 90 62 37 21 11 5 2 0 90 93 96 104 118 143 118 104 96 93 90 0 3 6 10 17 37 17 10 6 3 0 0 0 0 0 0
Error 60 50 40 30 20 10 5 2.5 2 1 0 -60 -50 -40 -30 -20 -10 -5 -2.5 -2 -1 0
Tabla A.1. Datos para el Entrenamiento Difuso. 153
Posición Actual 90 91 92 96 101 110 120 130 140 150 160 90 89 88 84 79 70 60 50 40 30 20
Salida 90 87 84 76 62 37 17 10 6 2 0 0 3 6 8 22 37 62 78 84 87 90
154
Apéndice B Los valores capturados cada diez grados del acelerómetro analógico MMA7361L para realizar la caracterización, descrita en el Capítulo IV, Sección 4.1.1.1. Grados (°) 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
Valor Leído Eje “Y” 540 538 532 521 504 484 458 430 402 373 342 314 286 260 240 224 210 203 200
Eje “X” 183 186 195 207 224 245 268 298 330 353 385 413 438 461 478 494 505 511 513
Eje “Z” 308 333 364 393 418 438 456 470 477 480 476 466 452 434 412 388 361 332 304
Tabla B.1. Valores obtenidos al realizar la caracterización del Acelerómetro analógico MMA7361L.
155
156
Apéndice C Programa del comportamiento real del acelerómetro analógico MMA7361L.
Fig. C.1. Programa desarrollado en Niple para el acelerómetro analógico MMA7361L.
En la imagen se muestra el programa principal que se realizó para observar el comportamiento real del acelerómetro, desarrollado en el entorno de programación Niple. Como se puede observar, el programa cuenta con cuatro sub-rutinas para una visualización más legible del programador. En la sub-rutina “usr_Eje_Y”, se realiza 157
únicamente la comparación del rango en donde se encuentra la posición del péndulo. Para la sub-rutina “usr_Calculo”, una vez definido el rango, se realizan las operaciones de las ecuaciones descritas en el Capítulo IV, Sección 4.1.1.1 para obtener el valor en grados y mediante la sub-rutina “usr_lcd_Datos”, mostrar el valor capturado a través una LCD. Finalmente la sub-rutina “usr_Ceros”, limpia los registros empleados durante el ciclo.
158
Apéndice D Programa realizado para observar el comportamiento real del acelerómetro digital, desarrollado en el entorno de programación PIC C. Este programa cuenta con las subrutinas necesarias para ejecutar la tarea descrita en el Capítulo IV, Sección 4.1.1.1. #include <18f4550.h> #fuses hs,nowdt,noprotect,nolvp,put,nobrownout,cpudiv4 #use delay (clock=20000000) #include #include #include #use rs232(baud=57600, xmit=PIN_C6, rcv=PIN_C7) #use i2c(master, scl=PIN_B1, sda=PIN_B0, force_hw, fast=450000) // Declaración de registros int8 who_am_i; float GY,GX,GZ,Y; signed int8 y_data_msb,x_data_msb,z_data_msb; char cadena[6]; char string[6]; int i=0; //Sub-rutina de identificación del acelerómetro void Lectura_Sensor(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x0d); i2c_start(); i2c_write(0x3b); who_am_i = i2c_read(0); i2c_stop(); } //Sub-rutina de lectura del eje Y void Lectura_Eje_Y(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x03); i2c_start(); i2c_write(0x3b); y_data_msb = i2c_read(0); i2c_stop(); 159
} //Sub-rutina de lectura del eje X void Lectura_Eje_X(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x01); i2c_start(); i2c_write(0x3b); x_data_msb = i2c_read(0); i2c_stop(); } //Sub-rutina de lectura del eje Z void Lectura_Eje_Z(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x05); i2c_start(); i2c_write(0x3b); z_data_msb = i2c_read(0); i2c_stop(); } //Sub-rutina de la configuración del modo Standby void Escritura_Standby(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x2a); i2c_write(0x00); i2c_stop(); } //Sub-rutina de las configuraciones iniciales void Escritura_Reset(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x2b); i2c_write(0x40); i2c_stop(); } //Sub-rutina de configuración de datos (R/W) void Escritura_XYZ_Data_Cfg(void){ 160
i2c_start(); i2c_write(0x3a); i2c_write(0x0e); i2c_write(0x02); i2c_stop(); } //Sub-rutina de ajustes del filtro void Escritura_HP_Filter_Cutoff(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x0f); i2c_write(0x00); i2c_stop(); } //Sub-rutina de configuración del registro de control 1 void Escritura_CTRL_Reg1(void){ i2c_start(); i2c_write(0x3a); i2c_write(0x2a); i2c_write(0x01); i2c_stop(); } //Sub-rutina de configuración inicial del sistema void main () { lcd_init(); Escritura_Standby(); Escritura_XYZ_Data_Cfg(); Escritura_HP_Filter_Cutoff(); Escritura_CTRL_Reg1(); delay_ms(500);
//Ciclo infinito del programa principal while(1){ Lectura_Eje_Y(); Lectura_Eje_X(); Lectura_Eje_Z(); GY=((float)y_data_msb)/16; GX=((float)x_data_msb)/16; GZ=((float)z_data_msb)/16; 161
Y=atan2(GY,GZ); Y*=57.296; Y+=90; printf(lcd_putc,"\fEje Y=%g",Y); while (input(PIN_A0) == 1){ sprintf(string,"%01.2f",Y); if (Y>0) { strcpy(cadena,"+"); strcat (cadena,string); } else { strcpy(cadena,""); strcat (cadena,string); } for (i=0;i<=5;++i){ putc(cadena[i]); //delay_ms(50); } } } } Tabla D.1. Programa realizado en PIC C para el acelerómetro digital.
162
Apéndice E Programa realizado para observar el comportamiento real del potenciómetro, desarrollado en el entorno de programación PIC C. Este programa cuenta con las subrutinas necesarias para ejecutar la tarea descrita en el Capítulo IV, Sección 4.1.1.2. #include <18f4550.h> #device adc=10 #fuses hs,nowdt,noprotect,nolvp,put,nobrownout,cpudiv4 #use delay (clock=20000000) #include #include #include #define pulso PIN_B0 //Declaración de registros float lec1,grad; int8 grados,envio; //Sub-rutina de lectura del puerto analógico void LeerPuertosAn(void){ set_adc_channel(0); delay_us(20); lec1=read_adc(); } //Sub-rutina para calcular los grados void CalcularAngulo(void){ if(lec1 <82) grad=0; if(lec1 >957) grad=0; if(lec1 >=82 && lec1 <957) grad=(957-lec1)/4.861; } //Sub-rutina de configuración inicial del sistema void main () { lcd_init(); setup_adc_ports(an0); setup_adc(adc_clock_internal); delay_ms(500); printf(lcd_putc, "\fInicializando..."); delay_ms(2000); //Ciclo infinito del programa principal 163
while(1){ LeerPuertosAn(); CalcularAngulo(); grados=ceil(grad); if(grados <30) envio=30; if(grados >150) envio=150; if(grados >=30 && grados <= 150) envio=grados; if(grados ==90) output_high(pulso); else output_low(pulso); if (input(PIN_B1) == 1) { printf(lcd_putc,"\fEstado Actual:"); printf(lcd_putc,"\n Online, g: %u",envio); } } } Tabla E.1. Programa realizado en PIC C para el potenciómetro.
164
Apéndice F Programa correspondiente al µC_1, descrito en el Capítulo IV, Sección 4.1.3.1. #include <18f4550.h> #device adc=10 #fuses hspll,nofcmen,noieso,pll5,cpudiv2,nowdt,noprotect,nolvp,put, nobrownout #use delay (clock=16000000) //#include #include #include #use rs232(baud=57600, xmit=PIN_C6, rcv=PIN_C7) #define pulso_2 PIN_B0 //Declaración de registros float lec1,grad; int8 grados,envio; //Sub-rutina de lectura del puerto analógico void LeerPuertosAn(void){ set_adc_channel(0); delay_us(20); lec1=read_adc(); } //Sub-rutina para calcular el ángulo void CalcularAngulo(void){ if(lec1 <82) grad=0; if(lec1 >957) grad=0; if(lec1 >=82 && lec1 <957) grad=(957-lec1)/4.861; } //Ciclo infinito del programa principal void main () { //lcd_init(); setup_adc_ports(an0); setup_adc(adc_clock_internal); delay_ms(500); while(1){
165
LeerPuertosAn(); CalcularAngulo(); grados=ceil(grad); if(grados <30) envio=30; if(grados >150) envio=150; if(grados >=30 && grados <= 150) envio=grados; //printf(lcd_putc,"\fValor ADC=%f",lec1); //printf(lcd_putc,"\nGrados=%u",grados); //delay_ms(100); if(grados ==90) output_high(pulso_2); else output_low(pulso_2); while (input(PIN_B1) == 1){ putc(envio); } } } Tabla F.1. Programa desarrollado en PIC C para el µC_1.
166
Apéndice G Programa correspondiente al µC_2, descrito en el Capítulo IV, Sección 4.1.3.2. #include <18F4550.h> #fuses hspll,nofcmen,noieso,pll5,cpudiv2,nowdt,noprotect,nolvp,put, nobrownout #use delay (clock=16000000) //#include #include #include #use rs232(baud=57600, xmit=PIN_C6, rcv=PIN_C7) #define pulso PIN_A0 float salida,grados,error,y,suma1,suma2,y0,y1,a,b,c,eN,eC,eP,pN,pC,pP; float comp1,comp2,comp3,comp4,comp5,comp6,comp7,comp8,comp9; float s1=7.382,s2=-134.6,s3=86.29,s4=-2.587,s5= 237.7,s6=-123.5,s7=397.1, s8=-24.43,s9=23.31; int8 out; #int_RDA void RDA_isr() { grados=getc(); output_low(pulso); } void CalcularAngulo(void){ output_high(pulso); delay_ms(5); }
//Rutina_Calculo ángulo
void CalcularError(void){ error=90-grados; }
//Rutina_Calculo Error //Error=Posicion_deseada-Posicion_actual
void FuncionPertenenciaError(void){ if (error <=b && error >a) y0=(error-a)/(b-a); if (error b) y0=(c-error)/(c-b); if (error >=c) y0=0; if (error <=a) y0=0; }
167
void FuncionPertenenciaPosActual(void) if (grados <=b && grados >a) y1=(grados-a)/(b-a); if (grados b) y1=(c-grados)/(c-b); if (grados >=c) y1=0; if (grados <=a) y1=0; } void Fuzzificacion(void){ a=-115.3; b=-25.38; c=6.721; FuncionPertenenciaError(); eN=y0; a=-92.76; b=0; c=99.36; FuncionPertenenciaError(); eC=y0; a=-7.224; b=22.96; c=113.2; FuncionPertenenciaError(); eP=y0; a=-39.83; b=48.42; c=109.3; FuncionPertenenciaPosActual(); pN=y1; a=-22.43; b=90; c=196.3; FuncionPertenenciaPosActual(); pC=y1; a=74.84; b=131.4; c=219.9; FuncionPertenenciaPosActual(); pP=y1; } void Composicion(void){ comp1=(eN*pN); comp2=(eN*pC); 168
comp3=(eN*pP); comp4=(eC*pN); comp5=(eC*pC); comp6=(eC*pP); comp7=(eP*pN); comp8=(eP*pC); comp9=(eP*pP); } void Agregacion(void){ suma1=((comp1*s1)+(comp2*s2)+(comp3*s3)+(comp4*s4)+(comp5*s5)+ (comp6*s6)+(comp7*s7)+(comp8*s8)+(comp9*s9)); suma2=(comp1+comp2+comp3+comp4+comp5+comp6+comp7+comp8+ comp9); y=(suma1/suma2)-1; y=ceil(y); if (y <= 0) salida=0; else salida=y; out=(int8)salida; output_b (out); } void main(){ //lcd_init(); output_low(pulso); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); set_tris_b(0x00); delay_ms(2800); while(1){ CalcularAngulo(); CalcularError(); Fuzzificacion(); Composicion(); Agregacion(); //printf(lcd_putc,"\fGrados:%f",grados); //printf(lcd_putc,"\nValor:%f",y); //delay_ms(100); } } Tabla G.1. Programa desarrollado en PIC C para el µC_2. 169
170
Apéndice H Programa correspondiente al µC_3 desarrollado en el entorno de programación Niple, descrito en el Capítulo IV, Sección 4.2.3.
Fig. H.1. Programa desarrollado en Niple para el µC_3.
171
172
Apéndice I Modelado Matemático de un Péndulo Invertido Para el modelado matemático del sistema, partimos del diagrama de cuerpo libre, que se muestra en la Figura.
Fig. I.1. Sistema del Péndulo Invertido.
Donde:
F es la fuerza que ejerce el motor sobre el carro. M es la masa del carro m es la masa del péndulo. l es la longitud de la varilla. g es la aceleración ejercida por la gravedad. θ es el ángulo del péndulo, x es el desplazamiento del carro. b es el coeficiente de fricción del carro.
El modelo se obtuvo a partir de la segunda ley de Newton que expresa “La fuerza de un Newton (1N) es la fuerza resultante que le imparte a una masa de 1 kilogramo (1 Kg.) una aceleración de 1 m/s. De donde se dedujo la ecuación
Que sirvió para describir el comportamiento del carro. Para calcular la fuerza ejercida en el péndulo se usó la suma de momentos inerciales, puesto que la fuerza es una suma de vectores y la velocidad es angular. De donde se dedujo la ecuación siguiente:
173
Donde: Es igual al momento de torsión del péndulo Es igual al momento de inercia y Es igual a la aceleración angular La suma de fuerzas sobre el carro se muestra en la siguiente figura.
Fig. I.2. Diagrama de fuerzas del carro.
De donde se deducen las siguientes ecuaciones.
Suponiendo que la varilla está en su posición inicial, la suma de fuerzas en y es igual con cero, entonces:
Despejando a Fpx de la ecuación
174
Sustituyendo (2) en (1)
Para el péndulo se cambia el análisis, considerando los ejes coordenados sobre la barra del péndulo, para esto se traslada el origen al extremo del péndulo. Esto es porque se toma como centro de gravedad el extremo de la varilla
Fig. I.3. Diagrama de fuerzas sobre el péndulo.
De la suma de
momentos se deducen las siguientes ecuaciones:
Donde:
Sustituyendo Fpy y Fpx en la ecuación (4)
175
Por lo tanto tenemos que:
Las ecuaciones diferenciales (2) y (5) que expresan la dinámica del sistema son las siguientes:
Donde la ecuación (2) modela al carro y la ecuación (5) modela al péndulo. A continuación se muestra que estas expresiones pueden ser escritas como un sistema de ecuaciones diferenciales: Despejando
de la ecuación (5) se obtiene:
Sustituyendo
en la ecuación (I) se obtiene:
Sustituyendo
en (5) se tiene que:
176
Despejando tenemos:
Igualando las expresiones para (6)
Despejando
a
177
Finalmente las ecuaciones del sistema péndulo invertido se pueden expresar como:
178
Referencias [1] Castaños, F. & Carrera, R. (2004). Levantamiento Y Control De Un Péndulo Invertido Con Un Esquema De Control Reconfigurable. Instituto De Ingeniería UNAM. [2] Gómez, F. & Aguilar, E. (2002). Control De Sistemas No Lineales Basado En La Estructura Hamiltoniana. Escuela Superior De Ingenieros De La Universidad De Sevilla. [3] Ibarguen, F., Moralez, J., Moreno, J., Cardona, J. & Muñoz, P. (2009). Dinámica Hamiltoniana Y Control Por Modos Deslizantes Del Péndulo De Futura. Universidad Del Quindío. Colombia. [4] Hernández, V., Silva, R. & Carrillo, R. Control Automático: Teoría De Diseño, Construcción De Prototipos. Modelado, Identificación Y Pruebas Experimentales. CIDETEC. [5] Jiménez, R. (2007). Diseño De Un Control Lógico Difuso, Aplicado Al Control De Posición De Un Servomotor De C.D., Usando Un Algoritmo Genético. Universidad Veracruzana, Instituto De Ingeniería: A. [6] Norman, S. (2006). Sistemas De Control Para Ingeniería. México: CECSA. [7] Rodríguez, F. (1996). Control Adaptivo Y Robusto. Secretaria De Publicaciones De La Universidad De Sevilla. Sevilla, España. [8] Ogata, K. (1996). Ingeniería De Control Moderna. México D.F.: Prentice Hall Hispanoamérica. [9] John, J. (2003). Introduction To Robotics. USA: Prentice Hall Inc. [10] Zadeh, L. (1965). Fuzzy Sets, Information And Control. [11] Zadeh, L. (2008). Is There A Need For Fuzzy Logic?. IEEE, pp.1-3. [12] Kouro, S. & Musalem, R. (2002). Control Mediante Lógica Difusa, Técnicas Modernas Automáticas, pp.1-7. [13] Alzate, A. (2001). Control Difuso. Universidad Tecnológica de Pereira. [14] Hammerstron, Dan. (1993). Adaptive Solution Inc. Working With Neural Network. IEEE: Spectrum. [15] Morales, F. (2004). Criterios De Diseño De Sistemas Difusos Para Aplicaciones No Lineales. Instituto Nacional de Astrofísica, Óptica y Electrónica: INAOE. [16] Giraldo, D. & Tabares, I. (Abril 1999). Control De Velocidad De Un Motor DC Utilizando Lógica Difusa. Scientia Et Technica, IX, pp.111-119. [17] Hilera, J. & Jiménez, V. (1995). Redes Neuronales Artificiales. Fundamentos, Modelos Y Aplicaciones. Rama. 179
[18] Klir, G. & Yuan, B. (1995). Fuzzy Sets And Fuzzy Logic. New Jersey: Prentice Hall. [19] Kandel, A. (1988). Fuzzy Expert Systems. Addison-Wesley. [20] Jang, N. & Gulley, N. (2000). Fuzzy Logic Toolbox. MS: Mathworks. [21] Takagi, T. & Sugeno, M. (1985). Fuzzy Identification Of Systems And Its Applications To Modeling And Control. IEEE Trans. On Systems, Man, and Cybernetics, XV, pp.116-132. [22] Maguiña, R. (2010). Sistemas De Inferencia Basados En Lógica Borrosa: Fundamentos Y Caso De Estudio. Universidad Nacional Mayor de San Marcos, Facultad de Ingeniería de Sistemas e Informática. [23] Toxqui, R. Red Neuronal Difusa Dinámicas Para Identificación Y Control Adaptable. Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional. Departamento de Control Automático. [24] Calderón, G. (2009). Control Del Péndulo Invertido Usando Dos Celdas Neuronales Analógicas. Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ingeniería Electrónica. [25] Caamaño, C. & Solís, G. (2013). Péndulo Invertido Rotacional Controlado Mediante Lógica Difusa. Universidad Tecnológica de Chile INACAP, Ingeniería en Automatización y Control Industrial. [26] Bárcenas, L. & Pérez, C. (2009). Diseño De Un Controlador Difuso Para Un Sistema Péndulo Invertido. Instituto Politécnico Nacional, Escuela Superior de Ingeniería Mecánica y Eléctrica1. [27] Valenzuela, J., Montoya, O. & Giraldo, B. (2013). Lógica Difusa Aplicada Al Control Local Del Péndulo Invertido Con Rueda De Reacción. Scientia et Technica , XVIII. [28] Nieto, J. & Valenzuela, J. (2012). Control Local Utilizando Lógica Difusa Del Péndulo Invertido Con Rueda De Reacción. Universidad Técnica de Pereira, Facultad de Ingenierías.
180