INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENERÍA MECÁNICA Y ELÉCTRICA
UNIDAD ZACATENCO
SECCIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN
“Diseño y construcción de un robot móvil controlado con técnicas
de lógica difusa implementadas en un FPGA”
TESIS
Que para obtener el grado de
MAESTRO EN CIENCIAS EN INGENIERÍA ELECTRÓNICA
Presenta
Ing. Belmar García García
Directores de Tesis
Dr. Alberto Jorge Rosales Silva
Dra. Ivonne Bazán Trujillo
México D.F. Septiembre de 2012
I
II
III
RESUMEN
El presente trabajo presenta la construcción de un robot móvil de configuración guia do
diferencial. La configuración elegida es la más simple mecánicamente, pero presenta el
inconveniente de no poder desplazarse en línea recta, haciéndose necesario igualar la
velocidad de rotación de las llantas que proporcionan movimiento al robot móvil. La técnica
de control utilizada en este prototipo para resolver este problema es un FLC (Controlador
Lógico Difuso), el cual a través de un DAC (Convertidor digital-analógico) y una etapa de
amplificación se controla la potencia necesaria para cada motor de CD. Finalmente dicho
robot móvil es manipulado de manera inalámbrica por medio de una interfaz gráfica por
computadora por un usuario.
ABSTRACT This thesis presents the construction of a mobile robot, type “differential guide configuration”.
The chosen configuration is the simplest mechanically speaking, but has the disadvantage of not
being able to displace in a straight line, making it necessary to match the rotational speed of the
wheels that set the robot in motion. The control technique used in this prototype to solve this
problem is an FLC (Fuzzy Logic Controller), which, through a DAC (digital-analog converter) along
with amplification phase controls the power of each DC motor. Finally, the user can manipulate
the stated mobile robot wirelessly through a computer graphical interface.
IV
AGRADECIMIENTOS Agradezco de manera sincera a todas las personas que sin dudar me proporcionaron su ayuda en
todo momento para la realización de este proyecto de tesis.
Agradezco a Dios por haberme permitido llegar hasta este punto y haberme dado salud para lograr
mis objetivos.
Agradezco a mis padres María Natividad García Ríos y Jorge García Hernández que sin su apoyo no
hubiese podido realizar todo lo que está dentro de este trabajo, gracias por su ayuda,
comprensión, por sus consejos y los ánimos que me dieron de siempre seguir adelante.
A mi casa de estudios, el Instituto Politécnico Nacional por la formación académica y profesional
que me ha brindado en estos últimos años, en los cuales me ha visto crecer como ingeniero y ahora
como maestro en ciencias.
Agradezco a mis asesores, el Dr. Alberto Jorge Rosales Silva y la Dra. Ivonne Bazán Trujillo por sus
ideas, sugerencias, apoyos en la realización del trabajo, y a quienes admiro por su dedicación y
empeño en lograr sus proyectos.
Agradezco al Dr. Francisco Javier Gallegos Funes que siempre estuvo al pendiente del avance y
progreso de este proyecto en conjunto con mis asesores.
A mis amigos de la SEPI por haberme apoyado en situaciones difíciles de quienes también estoy
infinitamente agradecido.
V
ÍNDICE GENERAL
ACTA DE REVISIÓN DE TESIS I CARTA CESIÓN DE DERECHOS II RESUMEN III ABSTRACT III AGRADECIMIENTOS IV ÍNDICE GENERAL V ÍNDICE DE FIGURAS VIII ÍNDICE DE TABLAS X ACRÓNIMOS Y ABREVIATURAS XI OBJETIVO GENERAL XII OBJETIVOS PARTICULARES XII JUSTIFICACIÓN XIII CAPÍTULO 1. ESTADO DEL ARTE DE LOS ROBOTS MÓVILES 1.1 INTRODUCCIÓN---------------------------------------------------------------------------------------------------------- 1 1.2 CONFIGURACIONES DE ROBOTS MÓVILES CON RUEDAS------------------------------------------------------ 2 1.2.1 Configuración Triciclo básico con conducción sincronizada--------------------------------------------- 2 1.2.2 Configuración Guiado diferencial con llantas y orugas--------------------------------------------------- 3 1.2.3 Configuración Direccionamiento Ackermann--------------------------------------------------------------- 5 1.2.4 Configuración Guiado Omnidireccional----------------------------------------------------------------------- 6 1.3 SENSORES Y ACTUADORES UTILIZADOS EN ROBÓTICA MÓVIL----------------------------------------------- 7 1.3.1 Motores de CD (corriente directa) ---------------------------------------------------------------------------- 7 1.3.1.1 Motores de CD con encoder------------------------------------------------------------------------------- 8 1.3.2 Características de los motores de CD utilizados en el robot móvil------------------------------------- 10 1.3.2.1 Encoder utilizado en los motores de CD del robot móvil------------------------------------------- 11 1.3.3 Servomotores------------------------------------------------------------------------------------------------------- 12 1.3.4 Motores a pasos--------------------------------------------------------------------------------------------------- 14 1.3.4.1 Tipos de motores a pasos---------------------------------------------------------------------------------- 15 1.3.4.2 Secuencias para motores a pasos tipo unipolar y bipolar------------------------------------------ 16 CONCLUSIÓN------------------------------------------------------------------------------------------------------------------ 18 REFERENCIAS------------------------------------------------------------------------------------------------------------------ 19 CAPÍTULO 2. TÉCNICAS DE CONTROL UTILIZADAS EN LOS ROBOTS MÓVILES 2.1 INTRODUCCIÓN---------------------------------------------------------------------------------------------------------- 21 2.2 GENERALIDADES DE UN SISTEMA DE CONTROL----------------------------------------------------------------- 21 2.2.1 Dinámica de un sistema de control---------------------------------------------------------------------------- 22 2.2.2 Sistema de control en lazo abierto---------------------------------------------------------------------------- 23 2.2.3 Sistema de control en lazo cerrado---------------------------------------------------------------------------- 23 2.3 TÉCNICAS DE CONTROL CLÁSICO------------------------------------------------------------------------------------ 24 2.3.1 Controlador Proporcional (P) ----------------------------------------------------------------------------------- 24 2.3.2 Controlador Proporcional Integral (PI) ----------------------------------------------------------------------- 24 2.3.3 Controlador Proporcional Derivativo (PD) ------------------------------------------------------------------ 25 2.3.4 Controlador Proporcional Integral Derivativo (PID) ------------------------------------------------------- 26 2.4 LÓGICA DIFUSA----------------------------------------------------------------------------------------------------------- 26 2.4.1 Conjuntos difusos-------------------------------------------------------------------------------------------------- 27 2.4.2 Sistemas Expertos Difusos--------------------------------------------------------------------------------------- 30 2.4.3 Controlador Lógico Difuso (FLC) ------------------------------------------------------------------------------- 31 2.4.4 Configuración de un controlador lógico difuso------------------------------------------------------------- 32
VI
2.4.4.1 Elección de las variables de estado y variables de control----------------------------------------- 33 2.4.4.2 Interfaz de fusificación-------------------------------------------------------------------------------------- 33 2.4.4.3 Base de conocimiento--------------------------------------------------------------------------------------- 34 2.4.4.4 Inferencia (Toma de decisión lógica) -------------------------------------------------------------------- 38 2.4.4.5 Interfaz de defusificación----------------------------------------------------------------------------------- 40 2.4.5 Tabla de búsqueda------------------------------------------------------------------------------------------------- 41 2.4.6 Procedimiento de diseño de un Controlador Lógico Difuso--------------------------------------------- 42 2.4.7 Diseño de aplicación de un FLC--------------------------------------------------------------------------------- 43 2.5 CONTROL CLÁSICO COMO CONTROL DIFUSO-------------------------------------------------------------------- 46 2.5.1 Control P como un control difuso------------------------------------------------------------------------------ 47 2.5.2 Control PD como un control difuso---------------------------------------------------------------------------- 47 2.5.3 Control PI como un control difuso----------------------------------------------------------------------------- 48 2.5.4 Control PID como un control difuso--------------------------------------------------------------------------- 48 2.6 COMPARACIÓN ENTRE UN CONTROL CLÁSICO Y UN CONTROL DIFUSO----------------------------------- 49 CONCLUSIÓN------------------------------------------------------------------------------------------------------------------ 52 REFERENCIAS------------------------------------------------------------------------------------------------------------------ 53 CAPÍTULO 3. IMPLEMENTACIÓN DEL CONTROL DIFUSO EN EL FPGA PARA EL ROBOT MÓVIL 3.1 INTRODUCCIÓN---------------------------------------------------------------------------------------------------------- 54 3.2 CARACTERIZACIÓN DE LOS MOTORES DE CD--------------------------------------------------------------------- 55 3.2.1 Respuesta a la entrada escalón de los motores de CD---------------------------------------------------- 55 3.2.2 Obtención de la función de transferencia de los motores de CD-------------------------------------- 57 3.2.3 Validación de las funciones de transferencia de los motores de CD---------------------------------- 61 3.3 METODOLOGÍA DE DISEÑO DEL FLC-------------------------------------------------------------------------------- 62 3.3.1 Definir los parámetros a controlar del motor de CD------------------------------------------------------ 62 3.3.2 Descripción general del sistema de control difuso para el motor de CD----------------------------- 63 3.3.3 Definir el número de funciones de membresía por cada entrada y salida--------------------------- 63 3.3.4 Establecer la configuración del FLC mediante las reglas de inferencia difusa de acuerdo a la forma deseada de operación y basado en el conocimiento que se tiene acerca de los motores de CD
66
3.3.5 Simulación del FLC usando Simulink--------------------------------------------------------------------------- 68 3.4 IMPLEMENTACIÓN DEL FLC EN EL FPGA--------------------------------------------------------------------------- 69 CONCLUSIÓN------------------------------------------------------------------------------------------------------------------ 72 REFERENCIAS------------------------------------------------------------------------------------------------------------------ 73 CAPÍTULO 4. CONSTRUCCIÓN DEL ROBOT MÓVIL CONTROLADO CON TÉCNICAS DE LÓGICA DIFUSA
4.1 INTRODUCCIÓN---------------------------------------------------------------------------------------------------------- 74 4.2 IMPLEMENTACIÓN DEL SISTEMA DE CONTROL DIFUSO EN EL FPGA--------------------------------------- 75 4.3 DIAGRAMA DE BLOQUES DEL PROYECTO------------------------------------------------------------------------- 80 4.4 CÁLCULOS PARA LA ELECCIÓN DE LOS MOTORES DE CD------------------------------------------------------ 82 4.5 ESTRUCTURA MECÁNICA DEL ROBOT MÓVIL--------------------------------------------------------------------- 84 CONCLUSIÓN------------------------------------------------------------------------------------------------------------------ 86 REFERENCIAS------------------------------------------------------------------------------------------------------------------ 87 CAPÍTULO 5. RESULTADOS 5.1 INTRODUCCIÓN---------------------------------------------------------------------------------------------------------- 88 5.2 DESCRIPCIÓN DE LAS PRUEBAS DEL ROBOT MÓVIL------------------------------------------------------------- 89 CONCLUSIÓN------------------------------------------------------------------------------------------------------------------ 95 REFERENCIAS------------------------------------------------------------------------------------------------------------------ 96 CAPÍTULO 6. CONCLUSIONES--------------------------------------------------------------------------------------------- 97
VII
TRABAJO A FUTURO--------------------------------------------------------------------------------------------------------- 99 ANEXO 1
A1.1 CÓDIGO FUENTE PARA EL DISEÑO DE LA INTERFAZ GRÁFICA EN VISUAL BASIC----------------------- 100 A1.2 CÓDIGO FUENTE DEL MICROCONTROLADOR ATMEGA8 PARA LA COMUNICACIÓN SERIAL-------- 101 A1.3 CÓDIGO FUENTE EN VHDL------------------------------------------------------------------------------------------- 102 ANEXO 2 A2.1 DATASHEET DEL FPGA EPF10K70 DE LA FAMILIA FLEX 10K UTILIZADO EN EL ROBOT MÓVIL------ 108 A2.2 DATASHEET DEL MICROCONTROLADOR ATMEGA8----------------------------------------------------------- 117 A2.3 DATASHEET DEL TRANSMISOR HMT------------------------------------------------------------------------------ 120 A2.4 DATASHEET DEL RECEPTOR HMR---------------------------------------------------------------------------------- 122
VIII
ÍNDICE DE FIGURAS
Fig. 1.1 Robot móvil con configuración triciclo------------------------------------------------------------------------ 2 Fig. 1.2 Conducción y rotación de un robot con configuración triciclo------------------------------------------ 2 Fig. 1.3 Robots móviles con configuración diferencial-------------------------------------------------------------- 3 Fig. 1.4 Conducción y rotación de un robot con configuración diferencial------------------------------------- 3 Fig. 1.5 Robot con orugas--------------------------------------------------------------------------------------------------- 4 Fig. 1.6 Trayectoria recorrida por un robot móvil con configuración diferencial----------------------------- 4 Fig. 1.7 Robot con configuración de direccionamiento Ackermann--------------------------------------------- 6 Fig. 1.8 Llantas omnidireccionales---------------------------------------------------------------------------------------- 6 Fig. 1.9 Robot omnidireccional con tres llantas----------------------------------------------------------------------- 6 Fig. 1.10 Robot omnidireccional con cuatro llantas------------------------------------------------------------------ 6 Fig. 1.11 Motor de CD------------------------------------------------------------------------------------------------------- 7 Fig. 1.12 Motorreductores, a) Reductor plástico; b) Reductor metálico---------------------------------------- 8 Fig. 1.13 Encoder Incremental, a) Esquema; b) Disco utilizado--------------------------------------------------- 8 Fig. 1.14 Esquema de un encoder absoluto---------------------------------------------------------------------------- 9 Fig. 1.15 Disco utilizado para un encoder absoluto, a) Disco codificado en código Gray; b) Código Gray de tres bits--------------------------------------------------------------------------------------------------------------
9
Fig. 1.16 Motorreductor utilizado en el robot móvil----------------------------------------------------------------- 10 Fig. 1.17 Motorreductor con soporte para montaje----------------------------------------------------------------- 10 Fig. 1.18 Motorreductor con soporte para montaje y encoder, a) Encoder con dos pares de sensores, b) Encoder montado en los doce dientes, c) Encoder montado en los doce dientes y llanta del motor de CD junto con el soporte para montaje----------------------------------------------------------------
11 Fig. 1.19 Captura en osciloscopio de la salida del encoder con la llanta girando a 630 rpm--------------- 11 Fig. 1.20 Control de posición de servomotores, a) 0°, b) 90°, c) 180°------------------------------------------- 12 Fig. 1.21 Control de velocidad de servomotores, a) Servomotor sin giro, b) Servomotor con giro en sentido de las manecillas del reloj, c) Servomotor con giro en sentido contrario de las manecillas del reloj------------------------------------------------------------------------------------------------------------------------------
13 Fig. 1.22 Motor a pasos----------------------------------------------------------------------------------------------------- 14 Fig. 1.23 Tipos de motores a pasos, a) Motor a pasos unipolar, b) Motor a pasos bipolar ---------------- 15 Fig. 2.1 Diagrama general de un sistema de control----------------------------------------------------------------- 22 Fig. 2.2 Modelo del sistema------------------------------------------------------------------------------------------------ 23 Fig. 2.3 Diagrama de bloques de un sistema de control en lazo abierto---------------------------------------- 23 Fig. 2.4 Diagrama de bloques del sistema de control en lazo cerrado------------------------------------------ 23 Fig. 2.5 Diagrama de bloques de un controlador Proporcional--------------------------------------------------- 24 Fig. 2.6 Diagrama de bloques de un controlador Proporcional Integral---------------------------------------- 25 Fig. 2.7 Diagrama de bloques de un controlador Proporcional Derivativo------------------------------------- 25 Fig. 2.8 Diagrama de bloques de un controlador Proporcional Integral Derivativo-------------------------- 26 Fig. 2.9 De acuerdo a la teoría de conjunto convencional, el conjunto de pacientes con “fiebre alta” está definido exactamente por 39°C------------------------------------------------------------------------------------
27
Fig. 2.10 El conjunto difuso de pacientes con fiebre alta admiten elementos que son parcialmente pertenecientes a este conjunto-------------------------------------------------------------------------------------------
28
Fig. 2.11. El grado de membresía )(xCD con temperatura x que pertenece por ejemplo al
conjunto de pacientes con “fiebre alta” puede ser expresado con una función continua ----------------
29
Fig. 2.12 Representación gráfica de los conceptos básicos asociados con los conjuntos difusos--------- 29 Fig. 2.13 Configuración de un sistema experto difuso--------------------------------------------------------------- 30 Fig. 2.14 Configuración del FLC------------------------------------------------------------------------------------------- 32 Fig. 2.15 a) Función de fusificación tipo singleton, b) Función de fusificación tipo triangular------------ 34 Fig. 2.16 Funciones de membresía; a) Triangular, b) Trapezoidal y c) Gaussiana----------------------------- 35 Fig. 2.17 Reglas difusas representadas por una tabla de reglas--------------------------------------------------- 37
IX
Fig. 2.18 Media del máximo (MOM) ------------------------------------------------------------------------------------ 40 Fig. 2.19 Centro de área (COA) ------------------------------------------------------------------------------------------- 41 Fig. 2.20 Bisector de área (BOA) ----------------------------------------------------------------------------------------- 41 Fig. 2.21 Partición del espacio, NG = Negativo Grande, NM = Negativo Mediano, NP = Negativo Pequeño, CE =
Cero, PP = Positivo Pequeño, PM = Positivo Mediano y PG = Positivo Grande -----------------------------------------
44 Fig. 2.22. Representación gráfica de los conjuntos difusos-------------------------------------------------------- 45 Fig. 2.23 Representación de las reglas difusas------------------------------------------------------------------------ 45 Fig. 2.24 PID contra control difuso--------------------------------------------------------------------------------------- 50 Fig. 2.25 Diferencias conceptuales entre el control clásico y difuso--------------------------------------------- 50 Fig. 3.1 Representación de la entrada escalón del motor de CD-------------------------------------------------- 55 Fig. 3.2 Circuito empleado para la entrada escalón del motor de CD------------------------------------------- 55 Fig. 3.3 Respuesta a la entrada escalón de 4 V de los motores de CD, los motores no giran a las mismas rpm,
de ahí que se obtenga un Vout distinto. a) Motor derecho, b) Motor izquierdo ---------------------------------------
57 Fig. 3.4 Análisis de la entrada escalón de los motores de CD: a) Motor derecho, b) Motor izquierdo-- 58 Fig. 3.5 Respuesta ante una entrada escalón de la función de transferencia: a) Motor derecho, b) Motor izquierdo- -------------------------------------------------------------------------------------------------------------
61
Fig. 3.6 Validación de la función de transferencia: a) Motor derecho, b) Motor izquierdo--------------- 61 Fig. 3.7 Motor de CD utilizado en el robot móvil--------------------------------------------------------------------- 62 Fig. 3.8 Sistema de control difuso para el motor de CD------------------------------------------------------------- 63 Fig. 3.9 Funciones de membresía para la variable de entrada e ------------------------------------------------ 65
Fig. 3.10 Funciones de membresía para la variable de entrada e --------------------------------------------- 65
Fig. 3.11 Funciones de membresía para la variable de salida v ----------------------------------------------- 66
Fig. 3.12 Funciones de membresía para la variable de salida v del motor de CD izquierdo------------ 68
Fig. 3.13 Diagrama de bloques simulación del sistema de control difuso del motor derecho------------- 68 Fig. 3.14 Resultado de la simulación del sistema de control difuso: a) Motor derecho, b) Motor izquierdo------------------------------------------------------------------------------------------------------------------------
69
Fig. 3.15 Visor de reglas de la herramienta Fuzzy Logic Toolbox para el motor derecho de CD---------- 70 Fig. 4.1 Encoder utilizado para monitorear la velocidad de rotación del motor de CD--------------------- 75 Fig. 4.2 Parte del contador de 1.258 kHz diseñado en el FPGA--------------------------------------------------- 76 Fig. 4.3 DAC de configuración escalera R-2R--------------------------------------------------------------------------- 78 Fig. 4.4 Circuito electrónico utilizado para la implementación del FLC a nivel hardware para un motor de CD y Receptor----------------------------------------------------------------------------------------------------
79
Fig. 4.5 Diagrama de bloques del proyecto---------------------------------------------------------------------------- 80 Fig. 4.6 Interfaz gráfica por computadora para el envío de órdenes al robot móvil------------------------- 81 Fig. 4.7 Circuito electrónico para la Tarjeta de adquisición de datos y Transmisor-------------------------- 81 Fig. 4.8 Estructura mecánica del robot móvil-------------------------------------------------------------------------- 84 Fig. 4.9 Dimensiones de las ruedas: a) Parlante y b) Traseras----------------------------------------------------- 84 Fig. 4.10 Prototipo final tomando las consideraciones estudiadas en el proyecto de investigación----- 85 Fig. 5.1 Distribución normal de las mediciones de la desviación del robot móvil de la recta con FLC sobre piso----------------------------------------------------------------------------------------------------------------------
91
Fig. 5.2 Distribución normal de las mediciones de la desviación del robot móvil de la recta sin FLC sobre piso----------------------------------------------------------------------------------------------------------------------
92
Fig. 5.3 Distribución normal de las mediciones de la desviación del robot móvil de la recta con FLC sobre mesa---------------------------------------------------------------------------------------------------------------------
93
Fig. 5.4 Distribución normal de las mediciones de la desviación del robot móvil de la recta sin FLC sobre mesa---------------------------------------------------------------------------------------------------------------------
94
X
ÍNDICE DE TABLAS
Tabla 1.1 Características del motorreductor utilizado-------------------------------------------------------------- 10 Tabla 1.2 Secuencia de un motor a pasos bipolar-------------------------------------------------------------------- 16 Tabla 1.3 Secuencia Wave Drive de un motor unipolar------------------------------------------------------------- 16 Tabla 1.4 Secuencia Normal de un motor unipolar------------------------------------------------------------------ 17 Tabla 1.5 Secuencia Medio Paso de un motor unipolar------------------------------------------------------------- 17 Tabla 2.1. Nivel de pertenencia que se presenta cuando las temperaturas que están dentro de 35°C y 43°C ---------------------------------------------------------------------------------------------------------------------------
28
Tabla 2.2. Discretización y normalización------------------------------------------------------------------------------ 44 Tabla 2.3 Definición de los conjuntos difusos------------------------------------------------------------------------- 44 Tabla 2.4 Tabla de búsqueda---------------------------------------------------------------------------------------------- 46 Tabla 3.1 Tabla de búsqueda para el motor derecho de CD------------------------------------------------------- 70 Tabla 3.2 Tabla de búsqueda para el motor izquierdo de CD------------------------------------------------------ 71 Tabla 5.1 Resultados de las mediciones de la desviación de la recta seguida por el robot móvil sobre piso----------------------------------------------------------------------------------------------------------------------------- --
89
Tabla 5.2 Resultados de las mediciones de la desviación de la recta seguida por el robot móvil sobre mesa-----------------------------------------------------------------------------------------------------------------------------
93
Tabla A1.1 Porción de la tabla de búsqueda para el motor derecho de CD------------------------------------ 107 Tabla A1.2 Porción de la tabla de búsqueda para el motor izquierdo de CD---------------------------------- 107
XI
ACRÓNIMOS Y ABREVIATURAS
CD Corriente Directa rpm Revoluciones por minuto PWM Modulación por ancho de pulso SLIT Sistema lineal invariante en el tiempo TL Transformada de Laplace CI Condiciones iniciales P Proporcional PI Proporcional Integral PD Proporcional Derivativo PID Proporcional Integral Derivativo FLC Controlador Lógico Difuso MISO Múltiples entradas, una salida MOM Método de la media del máximo COA Método del centro de área BOA Bisector de área NG Negativo Grande NM Negativo Mediano NP Negativo Pequeño CE Cero PP Positivo Pequeño PM Positivo Mediano PG Positivo Grande MIMO Múltiples entradas, múltiples salidas FPGA Arreglo de compuertas lógicas programables en campo VHDL Lenguaje para la descripción de hardware de alta velocidad EN Error Negativo EC Error Cero EP Error Positivo CN Cambio Negativo CC Cambio Cero CP Cambio Positivo VN Voltaje Negativo VC Voltaje Cero VP Voltaje Positivo RF Radiofrecuencia FSK Modulación por desplazamiento de frecuencia DAC Convertidor digital-analógico UP2 University Program 2
XII
OBJETIVO GENERAL
Diseñar y construir un robot móvil manipulado inalámbricamente mediante una interfaz de
computadora utilizando un FPGA (Arreglo de Compuertas Programables en Campo) y la teoría de
lógica difusa para navegación en lugares poco accesibles por el humano.
OBJETIVOS PARTICULARES
1.- Diseñar un algoritmo de control difuso para el control de los motores del robot móvil.
2.- Implementar en un FPGA el algoritmo de control difuso para el funcionamiento de los motores
del robot móvil.
3.- Probar y validar el algoritmo de control difuso implementado en los motores del robot móvil
realizando pruebas de laboratorio.
4.- Construir la electrónica de potencia, de comunicación inalámbrica y mecánica que se utilizará
en el robot móvil para su funcionamiento.
XIII
JUSTIFICACIÓN
Cada una de las configuraciones de los robots móviles presentan ventajas que los hacen idóneos
para determinada aplicación pero también tienen desventajas particulares que no permiten un
desempeño óptimo tales como la complejidad del diseño mecánico, problemas de
maniobrabilidad para moverse en espacios reducidos, o dificultad para desplazarse describiendo
trayectorias geométricas conocidas.
La configuración del robot propuesto es el “Guiado diferencial con llantas”, éste se seleccionó
debido a que es el más simple mecánicamente pero tiene como principal desventaja la dificultad
de desplazarse en línea recta; por lo tanto, se requiere que las llantas vayan a la misma velocidad
(control con retroalimentación - encoders). Este problema puede ser solucionado utilizando la
teoría de lógica difusa para el control de los motores de CD.
1
CAPÍTULO 1 ESTADO DEL ARTE DE LOS ROBOTS MÓVILES
1.1 INTRODUCCIÓN Los robots móviles brindan la posibilidad de desplazarse en distintos terrenos, en este sentido,
tienen aplicaciones diversas como: exploración minera, exploración planetaria, misiones de
búsqueda, rescate de personas, limpieza de desechos peligrosos, automatización de procesos,
vigilancia, y reconocimiento de terreno, entre otros. En complemento y con el objetivo de
conformar una herramienta más eficaz, también son utilizados como plataformas móviles en
aplicaciones que requieren de la integración con otros tipos de robots, tal es el caso de los robots
móviles que incorporan un brazo manipulador, utilizados como elementos de seguridad en la
inspección y manejo de paquetes sospechosos, neutralización de dispositivos explosivos,
manipulación de productos químicos peligrosos y materiales radioactivos.
Los robots móviles se pueden clasificar por el tipo de locomoción utilizado, en general, los tres
medios de movimiento son: por ruedas [1] [2] [3] [4], por patas [5] y orugas [6] [7]. Cabe señalar
que aunque la locomoción por patas y orugas han sido ampliamente estudiadas, el mayor
desarrollo se presenta en los robots móviles con ruedas, esto debido a las ventajas que presentan
las ruedas respecto a las patas y orugas. Dentro de los atributos más relevantes de los robots
móviles con ruedas destacan su eficiencia en cuanto a la energía en superficies lisas y firmes, a la
vez que no causan desgaste en la superficie donde se mueven y requieren un número menor de
partes de baja complejidad en comparación con los robots de patas y de orugas, lo que permite
que su construcción sea más sencilla. Son precisamente estos argumentos los que motivan el
análisis de este tipo de robots, y surge la necesidad, en primera instancia, de tener una definición
que satisfaga el contexto de los robots móviles con ruedas. De esta manera, se puede definir un
robot móvil con ruedas como un sistema electromecánico controlado, que utiliza como locomoción
ruedas de algún tipo (para el prototipo serán llantas convencionales y de bola), y que es capaz de
trasladarse de forma autónoma o teleoperado (para el prototipo será teleoperado) a distancia a
una meta en un determinado espacio de trabajo (para el prototipo se usará el suelo debiendo ser
una superficie plana mínima de 4 m x 4 m para la realización de pruebas de funcionamiento y
validación de resultados).
2
1.2 CONFIGURACIONES DE ROBOTS MÓVILES CON RUEDAS En el presente trabajo nos enfocaremos en los robots móviles con ruedas y para aplicaciones en ambientes controlados, es decir, aquellos ambientes completamente conocidos y manipulables por el diseñador de modo que éste proporciona una descripción formal cuantitativa exenta de ambigüedad. A continuación se presentan los tipos y características más importantes que rigen el comportamiento de tales robots [8].
1.2.1 Configuración Triciclo básico con conducción sincronizada
El concepto de diseño más simple se basa en una llanta que tiene la capacidad de impulsar y direccionar. Esta configuración requiere dos ruedas pasivas en la parte posterior, dado que siempre son requeridos por lo menos tres puntos de contacto para estabilizar una plataforma [9]. Dicha configuración se presenta en la Figura 1.1.
La velocidad lineal y angular de este tipo de robots están completamente desacopladas, así que para impulsarlo en línea recta, la llanta frontal debe estar posicionada en el centro y debe ser impulsado a la velocidad deseada. En la Figura 1.2 se muestra el guiado para algunas configuraciones de direccionamiento. Este tipo de diseño no tiene la capacidad de girar sobre su centro de gravedad, con la llanta delantera puesta a 90° por el motor que proporciona direccionamiento, el robot girará cerca del punto medio entre las dos llantas posteriores, así que el radio mínimo de giro es la distancia entre la llanta delantera y el punto medio de las llantas de atrás.
Fig. 1.1 Robot móvil con configuración triciclo
Fig. 1.2 Conducción y rotación de un robot con configuración triciclo
3
1.2.2 Configuración Guiado diferencial con llantas y orugas Este diseño tiene dos motores fijos, uno sobre el lado derecho y otro en el izquierdo del robot y ambos tienen la capacidad de impulsarlo [9]. Puesto que siempre es necesario contar con tres puntos de soporte, este diseño requiere una o dos llantas pasivas adicionales, dependiendo de la localización de los motores (ver Figura 1.3). El guiado diferencial es mecánicamente más simple que un robot configurado como triciclo, porque no se requiere que una de sus llantas tenga la capacidad de impulsar y direccionar a la vez, sino sólo la función de impulsar. Sin embargo, el control del desplazamiento es más complejo que la configuración de triciclo, debido a que se requiere siempre de la coordinación de ambos motores. La configuración con una sola rueda pasiva no puede disponer de una llanta con motor en el centro del robot por razones de estabilidad, así que cuando se hace girar, el robot rotará en el punto medio donde están los motores. El diseño con dos ruedas pasivas, una en la parte frontal y otra en la posterior permite que el robot gire sobre su centro de gravedad. Sin embargo, este diseño puede introducir problemas de direccionamiento debido a que el contacto con la superficie tiene cuatro puntos de soporte. En la Figura 1.4 se muestra la trayectoria del robot en función de la velocidad de sus motores. Si ambos motores tienen la misma velocidad, el robot se desplazará en línea recta ya sea hacia adelante o hacia atrás, si uno de los motores tiene una mayor velocidad que el otro, el robot se desplazará en una trayectoria tipo arco, si ambos motores giran a la misma velocidad pero en dirección opuesta, el robot girará sobre su centro de gravedad.
Fig. 1.3 Robots móviles con configuración diferencial
Fig. 1.4 Conducción y rotación de un robot con configuración diferencial
4
Un caso especial de robots con guiado diferencial son los que emplean orugas en lugar de llantas, la única diferencia que presentan, es una mejor maniobrabilidad en terrenos rugosos y alta fricción al girar, debido a sus múltiples puntos de contacto con la superficie. En la Figura 1.5 se muestra un robot de este tipo [9]. Para este tipo de robots móviles existen ecuaciones que se pueden utilizar para estimar la posición relativa de un robot, dado que es el tipo de robot que vamos a utilizar, damos una descripción de estas ecuaciones. La odometría es uno de los métodos más usados para estimar la posición relativa de un robot móvil con respecto a un punto de partida conocido (ver Figura 1.6). Se basa en ecuaciones simples que pueden implementarse fácilmente y utilizan la información generada por encoders colocados generalmente en los motores de los robots [10]. Dependiendo de la configuración de los robots móviles estas expresiones pueden variar considerablemente. Las ecuaciones que rigen a un robot móvil con configuración diferencial son las siguientes:
Fig. 1.5 Robot con orugas
Fig. 1.6 Trayectoria recorrida por un robot móvil con configuración diferencial
5
(1.2) 2
IDRobot
DDD
(1.4) 2
LrDD
(1.5) LDD DI
(1.6) L
DD DI
(1.3) 2
LrDI
)(1.1 esrevoluciondeNúmeroDRDD ID
donde
RobotD es el desplazamiento del robot, DD es el desplazamiento del motor derecho,
ID es
el desplazamiento del motor izquierdo, DR es el diámetro de las llantas. Tomando como referencia el desplazamiento del robot, el desplazamiento de cada llanta puede expresarse de la siguiente forma:
donde L es la separación entre el punto medio de las llantas. Restando ambas ecuaciones se elimina la variable r que es el radio de cada llanta.
Despejando podemos conocer la orientación del robot en radianes: Aunque dentro de los alcances del presente trabajo no se contempla determinar la posición de un robot móvil configuración guiado diferencial sino sólo corregir el problema que presenta éste cuando se desplaza en línea recta, se mostraron las ecuaciones básicas para determinar su posición para trabajos a futuro que se pudieran hacer debido a que el robot móvil cuenta con el hardware necesario para lograr este alcance no contemplado ya que el prototipo será manipulado por un usuario a distancia.
1.2.3 Configuración Direccionamiento Ackermann El sistema de locomoción de un automóvil, consiste de dos llantas combinadas en la parte trasera que permiten impulsar y dos llantas también combinadas en la parte delantera cuya función es dar orientación al móvil. Esto es conocido como direccionamiento de Ackermann (ver Figura 1.7) [9]. El desplazamiento en línea recta no presenta ningún problema dado que las llantas de atrás son impulsadas por un mismo motor, sin embargo éstas presentan deslizamiento en las curvas, y la mayor limitante que tiene un robot de este tipo es que no puede girar sobre su centro de gravedad.
6
1.2.4 Configuración Guiado Omnidireccional
Hasta el momento las plataformas móviles presentan la misma deficiencia, no poder desplazarse en cualquier dirección. En contraste a esto, el robot con guiado omnidireccional es capaz de moverse en todas direcciones, esta propiedad está relacionada con el tipo de llantas que utiliza (ver Figura 1.8) [9]. Dichas llantas están cubiertas con cilindros que rotan libremente; es importante indicar que las llantas son manipuladas por los motores, pero los cilindros no. Un robot de este tipo puede ser construido ya sea con tres o cuatro llantas, sin embargo la orientación de los cilindros en las llantas difiere, en el caso de un robot con tres llantas (ver Figura 1.9) los cilindros deben estar a 90° con respecto al eje de la llanta, en cambio en un modelo con cuatro llantas (ver Figura 1.10) se requiere que los cilindros estén a 45°. A pesar de las grandes ventajas de esta configuración tiene dificultades para seguir líneas rectas y su implementación es muy complicada.
Fig. 1.7 Robot con configuración de direccionamiento Ackermann
Fig. 1.8 Llantas omnidireccionales
Fig. 1.9 Robot omnidireccional con tres llantas Fig. 1.10 Robot omnidireccional con cuatro llantas
7
1.3 SENSORES Y ACTUADORES UTILIZADOS EN ROBÓTICA MÓVIL
Los robots cuentan con una serie de dispositivos que los dotan de movilidad para realizar las tareas asignadas por su diseñador; los actuadores son los músculos de un robot, son los elementos que convierten la energía de alimentación en movimiento (por ejemplo pistones o motores). En la robótica móvil existen básicamente tres tipos de motores de uso común: los motores de corriente directa, los motores a pasos y los servomotores. Los seres vivos cuentan con una serie de sentidos que les sirven para obtener información del ambiente; de manera similar un robot debe contar con sentidos que le permitan conocer su entorno, para ello debe estar provisto de una serie de sensores cuya información será utilizada por un sistema de control. En el caso de este prototipo es necesario conocer la velocidad angular de cada llanta del robot. Para esta tarea los sensores de posición son uno de los más empleados en robótica pudiendo ser de tipo óptico o magnético utilizándose para este proyecto los de tipo óptico debido a que permiten tener una mejor resolución (número de pulsos) por vuelta al utilizar un haz de luz infrarroja en la mayoría de los casos.
1.3.1 Motores de CD (Corriente Directa) Dentro de la gran variedad de tipos existentes en el mercado, los más económicos son los que se
utilizan en algunos juguetes, pero tienen el inconveniente de que su número de revoluciones por
minuto (rpm) es muy elevado, lo que no los hace muy apropiados para la construcción de un robot
móvil que por ejemplo, siga una línea, si no se utilizan reductores adicionales (caja de engranaje
reductora de velocidad colocada en el rotor del motor) o un sistema de regulación electrónico
(sistema de control electrónico para monitorear la velocidad de rotación del motor y controlarla).
En la Figura 1.11 se muestra una fotografía de un motor de CD.
En los juguetes del tipo Mecano o Lego, podemos encontrar motores con reductores o sistemas
reductores para acoplar a los motores. Ésta es una buena opción si se dispone de ellos. Además de
disminuir la velocidad, le dan más torque al robot móvil para mover su estructura y la batería (que
generalmente su peso es de los más grandes respecto a los componentes que conforman el robot
móvil) y otros objetos para lo cual se necesita disponer de motores con torque de arranque capaz
de desplazar una masa considerable (piezas que conforman al robot móvil).
Fig. 1.11 Motor de CD
8
Los reductores o motorreductores son apropiados para el accionamiento de toda clase de máquinas y aparatos de uso industrial, que necesitan reducir su velocidad en una forma segura y eficiente. Algunos de los beneficios de los reductores son:
· Una regularidad tanto en la velocidad como en la potencia transmitida. · Una mayor eficiencia en la transmisión de la potencia suministrada por el motor. · Mayor seguridad en la transmisión, reduciendo los costos en el mantenimiento. · Menor espacio requerido y mayor rigidez en el montaje. · Menor tiempo requerido para su instalación.
En robótica es muy común encontrar este tipo de motores (ver Figura 1.12) ya que tienen la
versatilidad de ser bidireccionales (funcionan en sentido horario o en sentido anti-horario)
dependiendo de la polarización en la que esté funcionando [11].
1.3.1.1 Motores de CD con encoder El principio de funcionamiento de un encoder consiste en que un disco gira, con zonas transparentes y opacas que interrumpen un haz de luz captado por foto-receptores, luego estos transforman los impulsos luminosos en impulsos eléctricos los cuales son tratados y transmitidos por la electrónica de salida. Encoder Incremental: En la Figura 1.13 se muestra un esquema de este tipo de encoder que se caracteriza porque determina su posición contando el número de impulsos que se generan cuando un rayo de luz es atravesado por marcas opacas en la superficie de un disco unido al eje (ver Figura 1.13a).
Fig. 1.12 Motorreductores, a) Reductor plástico; b) Reductor metálico
a) b)
Fig. 1.13 Encoder Incremental, a) Esquema; b) Disco utilizado
a) b)
9
En el estator hay como mínimo dos pares de foto-receptores ópticos, escalados un número entero de pasos más ¼ de paso. Al girar el rotor genera una señal cuadrada, el escalado hace que las señales tengan desfase de ¼ de periodo si el rotor gira en un sentido y de ¾ si gira en el sentido contrario, lo que se utiliza para discriminar el sentido de giro (ver Figura 1.13b). Un simple sistema lógico permite determinar desplazamientos a partir de su origen, a base de contar impulsos de un canal y determinar el sentido de giro a partir del desfase entre los dos canales. Algunos encoders pueden disponer de un canal adicional que genere un pulso por vuelta y la lógica puede dar número de vueltas más fracción de vuelta. La resolución del encoder depende del número de impulsos por revolución [12]. Encoder Absoluto: En el encoder absoluto, el disco contiene varias bandas dispuestas en forma de coronas circulares concéntricas, dispuestas de tal forma que en sentido radial el rotor queda dividido en sectores, con marcas opacas y transparentes codificadas en código Gray. El estator tiene un foto-receptor por cada bit representado en el disco. El valor binario obtenido de los foto-receptores es único para cada posición del rotor y representa su posición absoluta. Se utiliza el código Gray en lugar de un binario clásico porque en cada cambio de sector sólo cambia el estado de una de las bandas, evitando errores por falta de alineación de los captadores [13]. En la Figura 1.15a se ilustra un disco codificado en código Gray con su respectiva tabla de conversión a decimal (Figura 1.15b), el valor señalado en el disco es 001 correspondiente a uno decimal.
Decimal Gray
0 000
1 001
2 011
3 010
4 110
5 111
6 101
7 100
Fig. 1.14 Esquema de un encoder absoluto
Fig. 1.15 Disco utilizado para un encoder absoluto, a) Disco codificado en código Gray, b) Código Gray de tres bits
a) b)
10
1.3.2 Características de los motores de CD utilizados en el robot móvil Se utilizan dos motorreductores metálicos de CD, cada uno es de tipo miniatura de dimensiones (24 mm x 10 mm x 12 mm), con escobillas y utiliza una caja reductora de velocidad con relación de transmisión 250:1. La caja reductora de velocidad tiene una longitud de 9.27 mm, 3 mm de diámetro del eje de salida con forma de D. En la Figura 1.16 se muestra una fotografía de este motorreductor.
El voltaje nominal del motorreductor es de 6 V, aunque en general este tipo de motor puede trabajar con tensiones por encima o por debajo de este voltaje nominal; el motor comienza a rotar a partir de 0.5 V, y tensiones por encima de 9 V podrían dañarlo y acortar su vida útil [14]. En la Tabla 1.1 se muestran algunas características adicionales a las ya mencionadas:
Característica a 6 V Revoluciones por minuto (sin carga) 120 rpm Consumo de corriente (sin carga) 70 mA Corriente de arranque 1.6 A Torque 4.3 kg-cm
Estos motorreductores cuentan con soporte para montaje tal como se aprecia en la Figura 1.17, de tal manera que pueda montarse de forma segura sobre alguna plataforma y a la vez cubre los engranes metálicos expuestos de la caja reductora de velocidad.
Fig. 1.16 Motorreductor utilizado en el robot móvil
Tabla 1.1 Características del motorreductor utilizado
Fig. 1.17 Motorreductor con soporte para montaje
11
1.3.2.1 Encoder utilizado en los motores de CD del robot móvil Consiste de un encoder de tipo incremental utilizado para medir la velocidad de rotación de la
llanta, se tienen 12 dientes con los cuales se obtiene una resolución de 48 conteos por revolución,
lo que corresponde a una resolución lineal de 3 mm. La tarjeta está diseñada para trabajar con dos
pares de sensores de tipo infrarrojo mediante la reflectancia en el interior de la llanta; esto quiere
decir que se alternan zonas claras (correspondiente al color blanco de los dientes) que es cuando
hay reflexión y zonas oscuras (correspondientes al color negro de la llanta) cuando no la hay y de
esta manera medir el movimiento de los 12 dientes que se encuentran en el borde de la rueda
[15]. Estas características mencionadas se ilustran mejor en la Figura 1.18.
Los dos sensores están espaciados para proporcionar formas de onda cuadrada con 900 de desfase (Figura 1.19), determinándose así la dirección de rotación de la llanta y proporcionando cuatro conteos por diente para una resolución de 48 conteos por revolución. El diseño compacto de la tarjeta permite introducirla dentro de la llanta, permitiéndose que la tarjeta pueda ser montada entre el motor y la plataforma del robot móvil donde estará sujeto el motor. El encoder está calibrado de fábrica para una operación de 5 V con un consumo de corriente de 14 mA.
Fig. 1.18 Motorreductor con soporte para montaje y encoder, a) Encoder con dos pares de sensores, b) Encoder montado
en los doce dientes, c) Encoder montado en los doce dientes y llanta del motor de CD junto con el soporte para montaje
Fig. 1.19 Captura en osciloscopio de la salida del encoder con la llanta girando a 630 rpm
a) b) c)
12
1.3.3 Servomotores Un servomotor (también llamado servo) es un dispositivo que tiene la capacidad de ser ubicado en cualquier posición dentro de su intervalo de operación y mantenerse en dicha posición. Conformado por un motor de corriente directa muy pequeño, un tren de engranaje reductor que permite incrementar su torque, una tarjeta controladora que convierte la señal PWM (Modulación por Ancho de Pulso) recibida, en movimiento del eje de salida y un potenciómetro que mide la posición de salida del eje. La tarjeta controladora dispone de retroalimentación y monitorea constantemente la información generada por el resistor variable, de tal forma que permite posicionar y mantener el eje del motor [16]. Por ejemplo para el Servomotor Hitec HS22 la señal PWM utilizada para manipularlo tiene una frecuencia de 50 Hz, así que los pulsos son generados cada 20 ms. El ancho del pulso especifica la posición deseada en el eje del motor (Figura 1.20). Por ejemplo, una señal con un ancho de 1.1 ms llevará el motor a 0° (Figura 1.20a), una de 1.5 ms lo pondrá a 90° (Figura 1.20b) y con una de 1.9 ms hará que el motor esté en 180° (Figura 1.20c). Es posible modificar un servomotor para eliminar su restricción de giro y permitirle una rotación continua [17], sin embargo, es posible adquirir servos modificados por el fabricante tal es el caso del servomotor Parallax #900-00008 mostrado en la Figura 1.21. Estos dispositivos alterados permiten incrementar la velocidad de rotación del motor dependiendo del pulso en su entrada PWM. Al aplicar un pulso de 1.5 ms hará que el motor se detenga (Figura 1.21a). Un pulso menor a
Fig. 1.20 Control de posición de servomotores, a) 0°, b) 90°, c) 180°
a)
b)
c)
13
1.5 ms provocará que el motor gire en sentido de las manecillas del reloj (Figura 1.21b), por ende cuando el pulso es mayor a 1.5 ms girará en sentido contrario de las manecillas del reloj (Figura 1.21c). Los servomotores modificados pueden ser analógicos o digitales. En el caso de los analógicos, ofrecen la ventaja de poderse calibrar (llevándolo al punto de reposo) utilizando un potenciómetro. En el caso de los digitales, cuentan con un circuito integrado el cual ya no permite hacer modificaciones, sin embargo no requieren de calibración puesto que el ajuste es preciso.
Fig. 1.21 Control de velocidad de servomotores, a) Servomotor sin giro, b) Servomotor con giro en sentido de las
manecillas del reloj, c) Servomotor con giro en sentido contrario de las manecillas del reloj
a)
b)
c)
14
(1.7) 60
n
fN
1.3.4 Motores a pasos Un motor a pasos, es una máquina eléctrica en la que sus devanados se energizan uno después del otro, estas excitaciones provocan un giro discontinuo en un ángulo que se determina por la posición que toma el eje. Éste es capaz de transformar información digital, en movimientos mecánicos, el eje del motor gira un determinado ángulo por cada impulso de entrada, el resultado final del movimiento es fijo y repetible, produce un posicionamiento preciso y fiable, el sentido de rotación del motor se define con el sentido de excitación de las bobinas que al ser excitadas con impulsos, actúan sobre un núcleo de hierro dulce o imán permanente y lo hacen girar un ángulo determinado, la velocidad de rotación del eje del motor (N) en revoluciones por minuto es: Donde espiras de número y [Hz] impulsos los de frecuencia nf
El desplazamiento angular al pasar de una bobina a otra es n/2 , lo que representa una conversión de señales digitales de excitación a una posición angular discontinua definida sobre el eje del motor. Al desplazamiento angular se le denomina paso angular y es precisamente lo que caracteriza a este tipo de motores, ya que funcionan en pasos con un ángulo determinado. La frecuencia se varía desde cero hasta la frecuencia máxima que permita el motor. Un motor a pasos es capaz de girar en ambos sentidos un número exacto de grados con incrementos mínimos que se determinan por el diseño de su construcción, este incremento está comprendido entre 0.72 y 90, correspondientes a 500 pasos y 4 pasos por revolución respectivamente, aunque el motor a pasos es de concepción antigua, sólo se emplea en la práctica a partir de la aparición de los modernos semiconductores, con los cuales se implementan los circuitos para la regulación y el control del motor [18]. En la Figura 1.22 se ilustra un motor a pasos.
Fig. 1.22 Motor a pasos
15
1.3.4.1 Tipos de motores a pasos En los motores a pasos tenemos los unipolares y los bipolares. Los motores unipolares se llaman
así porque la corriente que circula por las diferentes bobinas siempre circulan en el mismo sentido
(Figura 1.23a); en los bipolares, para que estos funcionen, la corriente que circula por las bobinas
cambia de sentido en función de la tensión que se aplica (Figura 1.23b) por lo que una misma
bobina puede tener en uno de sus extremos distinta polaridad (bipolar). Algunos motores tienen
las bobinas de tal manera que en función de los puentes pueden convertirse en unipolares o
bipolares.
Con respecto a los motores bipolares la dificultad está en controlar la alimentación, cambiar la polaridad y el ritmo necesario los cuales permitirán que éste funcione correctamente siguiendo una secuencia de pasos [18].
Fig. 1.23 Tipos de motores a pasos, a) Motor a pasos unipolar, b) Motor a pasos bipolar
a)
b)
16
1.3.4.2 Secuencias para motores a pasos tipo unipolar y bipolar Como se dijo anteriormente, los motores bipolares necesitan la inversión de la corriente que circula en sus bobinas en una secuencia determinada. Cada inversión de la polaridad provoca el movimiento del eje en un paso, cuyo sentido de giro está determinado por la secuencia seguida. A continuación en la Tabla 1.2 se muestra la secuencia necesaria para controlar motores paso a paso del tipo Bipolares para una vuelta completa en sentido contrario a las manecillas del reloj:
PASO Bobina A Bobina B Bobina C Bobina D
1 VCC VCC GND GND
2 GND VCC VCC GND
3 GND GND VCC VCC
4 VCC GND GND VCC
Es importante mencionar que las bobinas A y C son una misma correspondiente a la Bobina 1 y que las bobinas B y D conforman la Bobina 2 esquematizadas en la Figura 1.23b. Existen tres secuencias posibles para el tipo de motor unipolar. Todas las secuencias comienzan nuevamente por el paso 1 una vez alcanzado el paso final (4 u 8). Para revertir el sentido de giro, simplemente se deben ejecutar las secuencias en modo inverso. En la Tabla 1.3 se muestra la secuencia para una vuelta de 360° para una secuencia Wave drive en sentido anti horario. En la Tabla 1.4 la secuencia correspondiente a la de tipo Normal y en la Tabla 1.5 la de Medio Paso [19].
PASO Bobina A Bobina B Bobina C Bobina D
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON
Paso 1
Paso 2
Paso 3
Paso 4
Paso 1
Paso 2
Paso 3
Paso 4
Tabla 1.2 Secuencia de un motor a pasos bipolar
Tabla 1.3 Secuencia Wave Drive de un motor unipolar
17
PASO Bobina A Bobina B Bobina C Bobina D
1 ON OFF OFF OFF
2 ON ON OFF OFF
3 OFF ON OFF OFF
4 OFF ON ON OFF
5 OFF OFF ON OFF
6 OFF OFF ON ON
7 OFF OFF OFF ON
8 ON OFF OFF ON
Para este trabajo se utilizaron motores de CD con caja reductora con encoder principalmente por las siguientes consideraciones: poder operar a altas revoluciones por minuto (rpm) y además la posibilidad de modificar la velocidad de rotación de referencia a la cual se desee trabajar por parte del diseñador del algoritmo de control difuso. Un servomotor nos restringiría elegir la velocidad de rotación de referencia hasta determinados márgenes debido a que el circuito de control que tiene integrado viene adaptado específicamente para el motor de CD que tiene integrado el servomotor. Por otro lado un motor a pasos presentaría inconvenientes si se quisiera operar a altas revoluciones por minuto debido a que si la frecuencia de los impulsos es muy elevada el motor a pasos podría girar erráticamente, comenzar a vibrar o incluso girar en sentido opuesto.
PASO Bobina A Bobina B Bobina C Bobina D
1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
4 ON OFF OFF ON
Tabla 1.4 Secuencia Normal de un motor unipolar
Tabla 1.5 Secuencia Medio Paso de un motor unipolar
18
CONCLUSIÓN
La variedad de aplicaciones que se les ha dado a los robots móviles los convierte en una
herramienta complementaria en actividades que serían difíciles de realizar o pondrían en riesgo la
integridad del hombre; dependiendo del problema o la tarea a resolver se puede elegir una de las
distintas configuraciones de robots móviles descritas en este capítulo, aprovechando las
particularidades que los hacen ventajosos para determinado propósito.
El desempeño del robot móvil y los resultados para alguna tarea asignada para determinada
configuración, dependerá en gran medida de los materiales empleados durante su diseño y
construcción, es decir, una elección acertada de los sensores, actuadores y el tipo de llantas
empleadas para su manufactura. Durante el desarrollo de este capítulo se presentaron los
actuadores (motores) más empleados en robótica móvil haciendo un análisis de su
funcionamiento y parámetros a tomar en cuenta durante el diseño de alguna de las
configuraciones de robots móviles y de esta manera elegir el motor que más de adecúe a las
necesidades de la tarea a realizar. También se describieron los sensores asociados al
funcionamiento de los actuadores, específicamente a los motores de CD, los cuales brindan la
posibilidad de tener un control sobre éstos pudiendo cuantificar su velocidad de rotación y
posicionamiento angular. Al igual que en los actuadores, la elección del tipo de sensor estará
determinada por las necesidades de la problemática a resolver así como su resolución y material
de construcción.
Es así como de esta manera se tiene un panorama general de la robótica móvil en nuestros días y
de los sensores y actuadores más utilizados para su construcción. A lo largo de los capítulos
restantes de detallarán los sensores y actuadores empleados para el prototipo final.
19
REFERENCIAS
[1] P.F. Muir and C.P. Neuman, “Kinematic modeling of wheeled mobile robots”, Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, Tech. Rep. CMU-RI-TR-86-12, 1992. [2] P.F. Muir and C.P. Neuman, “Kinematic modeling of wheeled mobile robots”, Journal of Robotics Systems, vol. 3, 1987. [3] J. C. Alexander and J. H. Maddocks, “On the kinematics of wheeled mobile robots,” International Journal Robotics Research, vol. 8, 1989. [4] G. Campion, G. Bastin and B. D’Andrea-Novel, “Structural properties and classification of kinematic and dynamic models of wheeled mobile robots”, IEEE Transactions on Robotics and Automation, vol. 12, 1996. [5] M. H. Raibert, H. Brown, M. Chepponis, E. Hastings, J. Koechling, K. N. Murphy, S. S. Murthy and A. Stentz, “Dynamically stable legged locomotion,” Robotics Intitute, Carnegie Mellon University, Pittsburgh, P.A. Tech. Rep. CMU-RI-TR-83-20, 1983. [6] T. Iwamoto. H. Yamoto and K. Honma, “Transformable crawler mechanism with adaptability to terrain variations,” in Proc. 1983 International Conference on Advanced Robotics Conf., Tokyo, Japan. [7] G. Granosik and J. Borenstein, “Integrated joint actuator for serpentine robots,” IEEE/ASME Transactions on Mechatronics, vol. 10, 2005. [8] Thomas Bräunl. “Embedded Robotics: Mobile Robot Design and Applications with Embedded Systems”, School of Electrical, Electronic and Computer Engineering, University of Western Australia, 2006. [9] Omar Sánchez Pérez. “Cinemática de Robots Móviles”. Departamento de Ingeniería Electrónica, Sistemas Informáticos y Automática. Universidad de Huelva. España. 2007.
[10] David P. Anderson. “IMU Odometry”. 2006. www.geology.smu.edu/~dpa-www/robo/Encoder/limu_odo. [11] http://www.webelectronica.com.ar/news29/nota05.htm, 2011 [12] “Encoder incremental descripción general”, Eltra, Silge Electrónica, S.A. , 2011 [13] “Encoder absoluto descripción general”, Eltra, Silge Electrónica, S.A., 2011 [14] http://www.pololu.com/catalog/product/995, 2012 [15] http://www.pololu.com/catalog/product/1217, 2012
20
[16] Dennis Clark and Michael Owings, “Building Robot Drive Trains”, TAB Robotics, 2003. [17] Seattle Robotics Society. http://www.seattlerobotics.org/guide/servohack.html [18] José Beristain López, Pedro D. Espinos Vázquez, “Sistema de control para motores a pasos de tipo unipolar”, ESIME IPN, México D.F. [19] http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm, 2012
21
CAPÍTULO 2 TÉCNICAS DE CONTROL UTILIZADAS EN LOS ROBOTS MÓVILES
2.1 INTRODUCCIÓN Existen dos métodos para el análisis y diseño de sistemas de control realimentados. El primer
método conocido como técnica en el dominio de la frecuencia se basa en la conversión de la
ecuación diferencial de un sistema en una función de transferencia, generando así un modelo
matemático del sistema que algebraicamente relaciona una representación de la salida con una
representación de la entrada. La sustitución de una ecuación diferencial con una ecuación
algebraica simplifica la representación del sistema. Por este motivo, para este trabajo de
investigación se hará uso de este método, además, es aplicable a sistemas lineales invariantes en
el tiempo (SLIT) o a sistemas que se puedan aproximar como tales como lo es nuestro caso. El
segundo método llamado espacio de estados, es utilizado frecuentemente para sistemas no
lineales y variantes con el tiempo. Con este método el diseñador tiene que ocuparse de varios
cálculos antes de que pueda obtener la interpretación física del modelo, mientras que con la
técnica del domino de la frecuencia sólo son necesarios unos cuantos y rápidos cálculos o una
representación grafica de datos, tal como se demuestra posteriormente en el capitulo 3 para
nuestra aplicación [1].
Una vez obtenido el modelo matemático del sistema, es necesario aplicar alguna técnica que
permita controlarlo, es por eso que también a lo largo de este capitulo, se dará un panorama
general de las técnicas de control más utilizadas en el área de ingeniería; por un lado se
describirán las técnicas de control clásico (P, PI, PD, PID) y por otro la técnica de control haciendo
uso de lógica difusa. Posteriormente se describirá la analogía que existe entre estas dos
metodologías y finalmente una comparación para resaltar sus diferencias, ventajas, desventajas, y
en qué tipo de situaciones conviene aplicar una u otra, utilizándose para este proyecto la técnica
de control con lógica difusa debido a que exige un análisis matemático menos riguroso para su
implementación.
2.2 GENERALIDADES DE UN SISTEMA DE CONTROL Desde el punto de vista de la teoría de control, un sistema o proceso es el conjunto de elementos que interaccionan entre ellos, obteniéndose señales o datos de salida en función de señales o datos de entrada. Estas señales pueden tener diferentes unidades físicas como frecuencia (Hz), temperatura (K), tiempo (s), masa (Kg), etc. En algunas aplicaciones tales como control de velocidad de rotación de un motor, control de la temperatura o control de nivel de agua es importante, pero no es necesario, conocer el funcionamiento interno o cómo interaccionan entre
22
SISTEMA DE
CONTROL
Objetivos Resultados
Entradas,
referencias o
señales de control
Salidas, variables o
señales controladas
sí los diversos elementos para caracterizar el sistema; para eso, únicamente es necesario conocer las relaciones entrada/salida del proceso. El aspecto más importante de un sistema es el conocimiento de su dinámica, es decir, cómo responde un sistema frente a una señal de entrada determinada o cómo varía la señal de salida ante una variación de la señal de entrada. Un conocimiento preciso de la relación entrada/salida permite predecir la dinámica del sistema y seleccionar la acción de control adecuada para mejorarla. De esta manera, conociendo la dinámica deseada, se podrá ajustar la acción de control para conseguir el objetivo final. Un sistema de control es el conjunto de elementos que interaccionan para conseguir que la salida de un proceso se comporte tal como se quiere que lo haga mediante una acción de control. La Figura 2.1 muestra el diagrama general de un sistema de control [2].
2.2.1 Dinámica de un sistema de control Un sistema físico puede caracterizarse dinámicamente mediante el conjunto de ecuaciones
diferenciales que describen las leyes físicas que determinan el comportamiento del sistema. Se
debe tener en cuenta que una descripción completa y precisa del sistema físico puede resultar
demasiado compleja y laboriosa; por eso tiene que modelarse el sistema y llegar a un compromiso
entre la exactitud y la sencillez requeridas. En general, un sistema lineal invariante en el tiempo
(SLIT) puede modelarse mediante una ecuación diferencial:
(2.1) .xbxbxbxbyayayaya mmmm
nnnn ........ )2(
2)1(
1)(
0)2(
2)1(
1)(
0
Esta ecuación diferencial relaciona la señal de salida )(ty de un sistema con la señal de entrada
)(tx , con coeficientes constantes a’s y b’s permite conocer la respuesta del sistema para una señal
de entrada determinada mediante su solución. Esta ecuación diferencial se llama ecuación
característica del sistema. Sin embargo, en general, es complejo el tratamiento analítico del
sistema mediante la ecuación característica diferencial, y para resolver este problema se utiliza la
función de transferencia, que se obtiene realizando la 0TL/CI (Transformada de Laplace (TL) de
la ecuación característica del sistema con Condiciones Iniciales (CI) nulas) dando como resultado la
Ecuación 2.2 [2]:
(2.2) n
nn
mmm
asasa
bsbsbsG
sX
sY
....
....)(
)(
)(1
10
110
donde n es el orden del sistema.
Fig. 2.1 Diagrama general de un sistema de control
23
)(sX )(sY
Así, puede modelarse el sistema lineal invariante en el tiempo con su función de transferencia,
como muestra la Figura 2.2. La función de trasferencia contiene toda la información con respecto
a la dinámica del sistema.
2.2.2 Sistema de control en lazo abierto Los sistemas de control en lazo abierto son aquellos en los cuales la salida no tiene efecto sobre la
acción del controlador (Figura 2.3); por eso, cada entrada de referencia corresponde a una
operación fija. En conclusión, la exactitud del sistema dependiente de la calibración, y la presencia
de perturbaciones (señales no deseadas) puede provocar que el sistema incumpla la función
asignada [2].
2.2.3 Sistema de control en lazo cerrado Un sistema de control de lazo cerrado es aquel en el cual la señal de salida tiene efecto sobre la
acción del controlador. Este efecto recibe el nombre de realimentación. La variable controlada
tiene que realimentar y compararse con la entrada de referencia, después el resultado se envía
mediante una señal de control hacia la planta o proceso, proporcional a la señal de error
(diferencia entre la señal de entrada de referencia y la variable controlada), disminuyéndose esta
desviación, objetivo primordial de este sistema de control (Figura 2.4). La ventaja principal del
sistema de control en lazo cerrado sobre el sistema en lazo abierto es que la utilización de la
realimentación hace al sistema menos sensible a perturbaciones externas y variaciones de
parámetros internos [2].
SLIT
Fig. 2.2 Modelo del sistema
CONTROLADOR PLANTA O
PROCESO
Entrada de
referencia
Señal de
control
Variable
controlada
Fig. 2.3 Diagrama de bloques de un sistema de control en lazo abierto
CONTROLADOR PLANTA O
PROCESO
Entrada de
referencia Señal de
control
Variable
controlada Señal de
error
Fig. 2.4 Diagrama de bloques del sistema de control en lazo cerrado
+
-
24
2.3 TÉCNICAS DE CONTROL CLÁSICO Los controladores convencionales (clásicos), como por ejemplo el controlador proporcional-
integral-derivativo (PID), es uno de los más conocidos y más ampliamente usados en la industria
moderna: las estadísticas han mostrado que más del 90% de los controladores usados en las
industrias actuales son PID [3].
Al hablar de controladores PID, tratamos con controladores puramente reactivos, es decir, responden solamente al error del sistema. Inicialmente fueron introducidos en controles de temperatura en lazo cerrado y fueron diseñados utilizando componentes analógicos [4].
2.3.1 Controlador Proporcional (P) Este tipo de controlador es un amplificador lineal. Con la acción del controlador P, la señal de
control es proporcional a la señal de error presente de acuerdo a la Ecuación 2.3 donde PK es la
ganancia proporcional. Este proceso puede ser usado por si solo cuando se trata de un problema
simple.
(2.3) )),()(()()( tytrKteKtu PP
donde )(tu es la señal de control, ))()(()( tytrte es la señal de error, con )(tr como la entrada
de referencia, y )(ty como la variable controlada.
Este tipo de controlador implementa la operación de incrementar la señal de control cuando la señal de error aumenta (con el signo adecuado, dependiendo si la señal de error es positiva o negativa) y decrementa la señal de control cuando la señal de error es pequeña. La principal desventaja de usar un controlador puro proporcional es que éste produce un error de estado estacionario, es decir que la variable controlada nunca llega a ser igual a la entrada de referencia teniendo como consecuencia la presencia de una señal de error distinta de cero. En la Figura 2.5 se muestra el diagrama de bloques de un controlador puramente proporcional [5].
2.3.2 Controlador Proporcional Integral (PI) Con la acción integral, la señal de control es proporcional a la integral de la señal de error presente,
está dada por la Ecuación 2.4 donde IK es la ganancia integral.
(2.4) . dtteKteKtu Ip )()()(
Fig. 2.5 Diagrama de bloques de un controlador Proporcional
25
El problema que existe con un controlador P es la presencia del error en estado estacionario; al
colocar un integrador en el sistema de control en lazo cerrado, el sistema puede de manera lenta
incrementar o decrementar continuamente la variable controlada hasta que la señal de error sea
cero. Cuando el error en estado estacionario se elimina, la parte integral deja de actuar. En estado
estacionario o estable, el error se hace cero y el término integral es reemplazado por completo por
el término proporcional. La ventaja del controlador PI está en que el error en estado estacionario
adquiere un valor nulo, esto toma tiempo ya que incrementa o decrementa la variable controlada
continuamente.
Las aplicaciones para un controlador con acción integral son cuando se tiene una entrada de
referencia por periodos prolongados; caso contrario es cuando la entrada de referencia cambia
constantemente por periodos cortos donde la parte integral permanece prácticamente constante.
En la Figura 2.6 se muestra el diagrama de bloques de un controlador proporcional integral [4].
2.3.3 Controlador Proporcional Derivativo (PD) Para la característica derivativa, ésta se obtiene directamente derivando la señal de error y se le afecta por una constante a la que se denomina constante derivativa DK como lo expresa la
Ecuación 2.5.
(2.5) .dt
tdeKteKtu Dp
)()()(
La parte derivativa tiene su mayor efecto en los transitorios y hace más estable al sistema. Este
tipo de control responde a la velocidad de variación de la señal de error y puede producir una
corrección significativa antes de que la señal de error se haga excesiva, esto tiende a aumentar la
estabilidad del sistema. En la Figura 2.7 se muestra el diagrama de bloques de un controlador
proporcional derivativo [6].
Fig. 2.6 Diagrama de bloques de un controlador Proporcional Integral
Fig. 2.7 Diagrama de bloques de un controlador Proporcional Derivativo
26
2.3.4 Controlador Proporcional Integral Derivativo (PID) Este controlador incorpora las ventajas que proporcionan cada una de las tres acciones
individuales descritas anteriormente. En el diseño se debe considerar no sólo el seguimiento de la
entrada de referencia sino también el rechazo de perturbaciones y ruido en la medida de lo
posible. Las tres acciones de control (proporcional, integral y derivativo) actúan directamente
sobre la señal de error, cada acción de control puede ser variada por separado sin que ello pueda
inducir a cambios en las demás acciones de control. La Ecuación 2.6 describe este tipo de
controlador [7].
(2.6) .dt
tdeKdtteKteKtu DIp
)()()()(
En la Figura 2.8 se muestra el diagrama de bloques de un controlador PID también conocido como
algoritmo paralelo de control PID.
2.4 LÓGICA DIFUSA La lógica difusa ha cobrado una importancia grande por la variedad de sus aplicaciones, las cuales van desde el control de procesos industriales complejos, hasta el diseño de dispositivos artificiales de deducción automática, pasando por la construcción de artefactos electrónicos de uso doméstico y de entretenimiento, así como también de sistemas de diagnóstico. Se ha considerado de manera general que el concepto de lógica difusa apareció en 1965, en la Universidad de California en Berkeley, introducido por Lofti A. Zadeh. Los valores de tipo falso y verdadero han modelado satisfactoriamente una gran parte del razonamiento “natural”, es cierto que el razonamiento humano utiliza valores de verdad que no necesariamente son “tan deterministas”. Por ejemplo, al calificar que “el cielo es azul” el hombre está tentado a graduar qué tan “azul” es el cielo. La lógica difusa procura crear aproximaciones matemáticas en la resolución de ciertos tipos de problemas. Pretende producir resultados exactos a partir de datos imprecisos, por lo cual es particularmente útil en aplicaciones electrónicas o computacionales. El adjetivo difuso aplicado se debe a que los valores de verdad utilizados tienen, por lo general, una connotación de incertidumbre. Un vaso medio lleno, independientemente de que también esté medio vacío, no está lleno completamente ni está vacío completamente. Qué tan lleno puede estar es un elemento de incertidumbre, es decir, de imprecisión o aspecto difuso, entendido esto último como una propiedad de indeterminismo. Ahora bien, los valores de verdad asumidos por enunciados aunque no son deterministas, no necesariamente son desconocidos. La lógica difusa ha tenido
Fig. 2.8 Diagrama de bloques de un controlador Proporcional Integral Derivativo
27
aplicaciones de suma relevancia en el procesamiento electrónico de datos. En determinadas áreas de conocimiento, a sus enunciados se les asocia valores de verdad que son grados de veracidad o falsedad, mucho más amplios que los meros “verdadero” y “falso”. En un sistema deductivo se distinguen enunciados “de entrada” y enunciados “de salida”. El objetivo de todo sistema manejador de una lógica difusa es describir los grados de los enunciados de salida en términos de los de entrada. Más aún, algunos sistemas son capaces de refinar los grados de veracidad de los enunciados de salida conforme se refinan los de entrada. Por estas propiedades es que ciertos sistemas de lógica difusa aparentan una labor de aprendizaje, y son excelentes mecanismos de control de procesos. Desde el punto de vista tecnológico, la lógica difusa se encuadra en el área de la llamada Inteligencia Artificial y ha dado origen a sistemas de tipo difuso y a sistemas de control automático [6].
2.4.1 Conjuntos difusos Para entender el concepto de conjuntos difusos consideraremos el siguiente ejemplo: Si un
médico no tiene en mente un umbral preciso al evaluar un paciente que padece de “fiebre alta”,
no puede hacer su trabajo. Un médico compararía al paciente con dos prototipos. En un extremo,
colocaría al paciente con fiebre alta, pálido, sudoroso, con escalofríos; y en el otro extremo al
paciente con buena temperatura que no muestra ninguna señal de fiebre. Comparando la
condición del paciente con los dos extremos, un médico evalúa dónde colocar a su paciente.
Ahora, para modelar esto matemáticamente se considera la teoría de conjunto convencional,
donde primeramente se define el conjunto de todos los pacientes con “fiebre alta” y después se
define una función matemática que indica si cada paciente pertenece o no a este conjunto. En la
Figura 2.9 se da un ejemplo del conjunto de los pacientes con “fiebre alta” (área negra), donde se
define a la función con una temperatura de 39° C.
Un médico evalúa el grado en el que su paciente pertenece al conjunto de los pacientes con “fiebre alta” y si ahora en lugar de usar la teoría de conjunto convencional mostrado en la Figura 2.9 se hace uso de conjuntos difusos mostrados en la Figura 2.10 entonces el paciente del médico puede pertenecer de manera parcial al conjunto de pacientes con “fiebre alta”. Las sombras grises indican el grado al que la temperatura del cuerpo pertenece al conjunto difuso de “fiebre alta”.
Fig. 2.9 De acuerdo a la teoría de conjunto convencional, el conjunto de pacientes con “fiebre alta” está
definido exactamente por 39°C
38°C
39°C
42°C
40°C 36.8°C
37°C
38.9°C
Conjunto de pacientes
sin fiebre alta Conjunto de pacientes
con fiebre alta
28
En la Figura 2.10 la temperatura de cada cuerpo es asociada con un cierto grado de pertenencia al
conjunto de pacientes con “fiebre alta”. Este grado se le denomina grado de membresía o grado
de pertenencia )(xuCD , donde el elemento x pertenece al conjunto X de “fiebre alta” por lo
tanto la temperatura del cuerpo es una base variable x en el universo X . Se define CD como
un conjunto difuso, u es una función de membresía que proporciona el nivel de pertenencia en un
rango de 0 a 1. Esto queda expresado por lo siguiente:
Sea X un conjunto, denominado universo de discurso y x un elemento del universo X . Un CD de un universo de discurso X , es una función de membresía:
(2.7) ]1,0[: XCD
u
donde el grado de membresía o de pertenencia de un punto Xx ( x pertenece a X ) al
conjunto difuso CD es el valor )(xuCD de la función CDu en el punto x , esto quiere decir que
mientras más próximo esté )(xuCD a 1, decimos que x pertenece más al conjunto difuso CD .
Como ejemplo para entender lo mencionado y retomando el tema de las temperaturas,
considérese ahora que una temperatura de 43°C tiene una pertenencia completa y una
temperatura de 35°C no la tiene, entonces las temperaturas entre estas pertenencias del conjunto
tienen un cierto grado tal como lo muestra la Tabla 2.1 [8]:
0.0)35( CuCD 44.0)38( CuCD 85.0)41( CuCD
12.0)36( CuCD 6.0)39( CuCD 94.0)42( CuCD
3.0)37( CuCD 7.0)40( CuCD 0.1)43( CuCD
El grado de membresía puede ser representado por una función continua tal como se muestra en la Figura 2.11. Para una variable continua este grado se expresa por una función matemática llamada función de membresía. En la Figura 2.11 se muestra algo semejante a una función de
42°C
40°C
39°C 36.8°C
37°C
38°C
38.9°C
Fig. 2.10 El conjunto difuso de pacientes con fiebre alta admiten elementos que son parcialmente
pertenecientes a este conjunto
Conjunto difuso de
pacientes con fiebre alta
Conjunto difuso de
pacientes sin fiebre alta
Tabla 2.1. Nivel de pertenencia que se presenta cuando las temperaturas están
dentro de 35°C y 43°C
29
)(xCD
C)( x
membresía; y puede notarse que una temperatura de 39°C es evaluada diferente a una de 38.7°C, justamente con un “pedazo pequeño” y no como un umbral.
Algunos conceptos básicos asociados a los conjuntos difusos son [6]:
Universo de discurso: es el intervalo de todos los posibles valores aplicables a una variable de un sistema.
Entrada real: son las entradas provenientes del mundo exterior hacia el sistema difuso.
Etiqueta: es el nombre descriptivo usado para identificar una función de membresía.
Dominio: es el intervalo de valores sobre el cual se ubica el ancho de una función de membresía.
Grado de membresía: es el grado de compatibilidad de una entrada con una función de membresía en un intervalo de 0 a 1. El cero es para no pertenencia, el 1 es para pertenencia total y los valores intermedios para pertenencia parcial.
Funciones de membresía: función matemática que nos indica el grado de pertenencia de las variables de entrada y de salida.
En la Figura 2.12 se esquematizan de manera gráfica los conceptos asociados a los conjuntos difusos.
Fig. 2.11. El grado de membresía )(xCD con temperatura x que pertenece por ejemplo al conjunto de
pacientes con “fiebre alta” puede ser expresado con una función continua
“pedazo pequeño”
Fig. 2.12 Representación gráfica de los conceptos básicos asociados con los conjuntos difusos
)(xCD
x
NG CE NG
-2 0 2
1
Grado de membresía
Dominio
Etiquetas
Universo de discurso
Entrada real
Función de membresía
30
Base de
conocimiento
Interfaz de
fusificación
Aproximación
lingüística
Máquina de
inferencia
Planificador Salida
Usuario de
entrada
Fig. 10.16 Configuración de un sistema experto difuso
Fig. 2.9 Configuración de un sistema experto difuso
2.4.2 Sistemas Expertos Difusos Un sistema experto es una metodología que contiene conocimiento experto humano y responde a
las interrogantes de los usuarios usando un método de inferencia. El conocimiento es
comúnmente almacenado en forma de base de reglas, y la manera más utilizada es “SI-
ENTONCES”. Además, un sistema experto difuso es un sistema el cual puede tratar incertidumbre
e información difusa. Un humano experto posee su conocimiento en forma de términos
lingüísticos. Por lo tanto, es natural representar el conocimiento haciendo uso de reglas difusas y
de esta manera utilizar métodos de inferencia difusos.
La estructura de un sistema experto difuso es similar a la de un controlador lógico difuso (FLC).
Esta configuración se muestra en la Figura 2.13, este FLC presenta una interfaz de fusificación,
base de conocimiento, máquina de inferencia (toma de decisión lógica) y un módulo de
aproximación lingüística [9]. A continuación se describirán cada una de los componentes de un
sistema experto difuso.
Interfaz de fusificación
Este módulo trata los requerimientos del usuario, y de esta manera se tiene que determinar la
estrategia de fusificación. Si queremos hacer que el sistema experto difuso reciba términos
lingüísticos, este módulo deberá tener la habilidad de manipular tal información. Contrario al
controlador lógico difuso, no es necesario considerar la discretización o normalización, pero la
partición y la asignación de términos lingüísticos difusos a cada subregión si es necesaria.
El conocimiento experto puede ser representado de la forma “SI-ENTONCES” usando términos
lingüísticos difusos. Cada regla puede tener su factor de incertidumbre el cual representa el nivel
de incertidumbre de la regla. El factor de incertidumbre se utiliza en la generación de los
resultados de cada regla.
Fig. 2.13 Configuración de un sistema experto difuso
31
Máquina de inferencia (Toma de decisión lógica)
Los sistemas expertos difusos pueden usar métodos de inferencia del controlador lógico difuso. El
sistema no trata con una máquina o proceso, es por esto que sería difícil tener un conjunto difuso
con función de membresía monótona en la parte consecuente de una regla. Por lo tanto, el
método de Mamdani y Larsen son los métodos de inferencia más utilizados [9].
Aproximación lingüística
Un sistema experto difuso no controla una máquina o un proceso, por lo tanto, la defusificación no
es necesaria. En lugar del módulo de defusificación, en ocasiones es necesario un módulo de
aproximación lingüística. Este módulo encuentra un término lingüístico el cual se acercará al
conjunto difuso obtenido. Para lograr esto, se pueden usar técnicas de medición de distancia entre
conjuntos difusos.
Planificador
Este módulo controla todos los procesos en el sistema experto difuso. Determina las reglas a ser ejecutadas y el orden en que se ejecutan.
2.4.3 Controlador Lógico Difuso (FLC) La lógica difusa se asemeja mucho más a la forma de pensamiento humano y al lenguaje natural. Básicamente, proporciona un medio eficaz para procesar lo aproximado, esto es, la inexactitud natural del mundo real. Por lo tanto, la parte esencial de un Controlador Lógico Difuso (FLC) es que un conjunto de estrategias de control lingüísticas basadas en el conocimiento experto se convierten en una estrategia de control automático. Particularmente el FLC es útil en dos casos:
Cuando los procesos de control son difíciles de analizar por técnicas cuantitativas
convencionales, por ejemplo los manipuladores robóticos.
Las fuentes disponibles de información son interpretadas cualitativamente, de manera
inexacta o con incertidumbre, por ejemplo el control de tráfico.
Las ventajas de un FLC pueden resumirse como [9]:
Control distribuido o paralelo: En el sistema de control convencional, una acción de
control es determinada por una única estrategia de control como ).,...,,( 21 nxxxfu
Pero en el caso de un FLC, la estrategia de control se encuentra representada por
múltiples reglas difusas, y de esta manera se facilita la representación de sistemas
complejos y sistemas no lineales.
Control lingüístico: La estrategia de control es modelada por términos lingüísticos para
representar el conocimiento humano, por ejemplo, el tiempo de riego de un jardín
dependerá de la temperatura del aire y la humedad del suelo.
32
Control robusto: Existe más de una regla de control y de esta manera, un error de una
regla no es de gravedad para todo el sistema, por ejemplo el control de ciclo de lavado en
una lavadora que está determinado por las reglas de cantidad de suciedad de las prendas,
el tipo de suciedad, material de la prenda, etc.
2.4.4 Configuración de un controlador lógico difuso No existe un procedimiento sistemático para el diseño de un FLC. Sin embargo, una configuración
básica de un FLC es la que se muestra en la Figura 2.14. La configuración consiste de cuatro
componentes: Interfaz de fusificación, Base de conocimiento, Toma de decisiones lógicas, e
Interfaz de defusificación [9].
La interfaz de fusificación transforma los valores reales de entrada en valores difusos y esto implica las siguientes funciones:
Recibir los valores de entrada.
Transformar el intervalo de valores de la variable de entrada en su correspondiente universo de discurso.
Convertir los datos de entrada en adecuados valores lingüísticos (conjuntos difusos).
La base de conocimiento contiene un conocimiento referente a la aplicación y los objetivos de
control. Ésta consiste de una base de datos y una base de reglas lingüísticas:
La base de datos contiene las definiciones necesarias, las cuales son usadas en las reglas
de control y manipulación de datos.
La base de reglas lingüísticas define la estrategia de control y metas, a través de las reglas
de control lingüísticas.
La toma de decisiones lógicas permite las siguientes funciones:
Simular el procedimiento de la toma de decisión humana basado en conceptos difusos.
Las acciones de control difusas, que utilizan implicación difusa y reglas lingüísticas.
Base de
conocimiento
Interfaz de
fusificación
Inferencia
Interfaz de
defusificación
Sistema controlado
(proceso)
Entrada Salida
Estado
Control
Control
Fig. 2.14 Configuración del FLC
33
La interfaz de defusificación tiene las siguientes funciones:
Una representación gráfica por medio de la cual se convierte el intervalo de valores de
salida en su correspondiente universo de discurso.
La defusificación produce una acción de control no difusa a partir de una acción de control
de inferencia difusa.
2.4.4.1 Elección de las variables de estado y variables de control Un sistema de control difuso está diseñado para controlar un proceso y por lo tanto es necesario determinar las variables de estado y variables de control del proceso. Las variables de estado se transforman en las variables de entrada del sistema de control difuso, y las variables de control se transforman en las variables de salida. La selección de las variables depende del conocimiento experto que se tenga del proceso. Particularmente son: el error, cambio del error y la integral de error.
2.4.4.2 Interfaz de fusificación En la fusificación existen dos principales problemas a ser considerados: la representación gráfica de los datos de entrada y la selección de funciones de fusificación. Representación gráfica de los datos de entrada: se tiene que decidir una estrategia para convertir
el intervalo de valores de las variables de entrada en un correspondiente universo de discurso.
Cuando un valor de entrada viene a través de un sistema de medición, los valores deben ser
escalados para un intervalo de variables de entrada. Por ejemplo, si el intervalo de las variables de
entrada fue normalizado entre -1 y +1, un proceso se aplica, el cual graficará el valor del dato de
entrada dentro de un intervalo normalizado.
Selección de la función de fusificación: un operador de fusificación tiene el efecto de transformar
los valores reales en conjuntos difusos.
(2.8) ),( 0xrfusificadox
donde 0x es el valor real observado, x es un conjunto difuso, rfusificado representa el operador
de fusificación y )(xF es el grado de membresía o grado de pertenencia. En la Figura 2.15a se
muestra una función de fusificación la cual transforma un valor real en un valor difuso con la
ayuda de la función singleton. En la figura 2.15b se muestra una función de fusificación que
transforma un valor real en un número difuso con una función triangular.
34
2.4.4.3 Base de conocimiento La base de conocimiento de un FLC se compone de dos partes: una base de datos y una base de reglas de control difusa. Base de datos: En la parte de base de datos hay tres principales parámetros de diseño para un FLC: discretización y normalización del universo de discurso, partición difusa de las entradas y salidas espaciales, y funciones de membresía de los conjuntos difusos [9]. 1) Discretización y normalización del universo de discurso: un universo de discurso en un FLC
puede ser discreto o continuo.
Discretización de un universo de discurso: se refiere a la cuantización. La cuantización
discretiza un universo en un cierto número de segmentos. Cada segmento es etiquetado y
así forman un universo discreto. De esta manera un conjunto difuso es definido dentro de
un universo de discurso discreto.
Normalización de un universo de discurso: esto es una discretización dentro de un
universo normalizado. El universo normalizado consiste de un número finito de
segmentos.
2) Partición difusa de las entradas y salidas espaciales: una variable lingüística vista como una
regla antecedente forma una entrada espacial difusa, mientras que la parte consecuente forma
una salida espacial difusa. En general, una variable lingüística es asociada con un conjunto de
términos. Una partición difusa espacial determina cuantos términos deben existir en un
conjunto de términos. Éste es el mismo problema que se tiene para encontrar el número de
conjuntos difusos (términos lingüísticos). El número de términos difusos en un espacio de
entrada determina el máximo número de reglas de control difuso. Por ejemplo, un sistema de
control difuso que tiene dos variables de entrada y una de salida; si las variables de entrada
tienen 4 y 5 términos respectivamente, entonces el máximo número de reglas de control que
pueden ser construidas son 20 (4 x 5).
Control
Control
Estado
Control
Control
Control
Estado
Control Fig. 10.2Función de fusificación tipo singleton
a) b)
Fig. 2.15 a) Función de fusificación tipo singleton, b) Función de fusificación tipo triangular
35
3) Funciones de membresía de los conjuntos difusos: una función de membresía es una función matemática que nos indica el grado de membresía de las variables de control y de estado. Existen varios tipos de funciones de membresía tales como triangulares, trapezoidales y formas Gaussianas mostradas en la Figura 2.16 con sus respectivas representaciones analíticas.
3
32233
21121
1
321
0
)/()(
)/()(
0
),,;(
x
xxxxx
xxxxx
x
xxx
a)
4
43344
32
21121
1
4321
0
)/()(
1
)/()(
0
),,,;(
x
xxxxx
xx
xxxxx
x
xxxx
b)
2
2
2
2
5
54
35
3
43
35
3
32
13
1
21
13
1
1
54321
0
2
21
21
2
0
),,,,;(
x
xxxx
x
xxxx
x
xxxx
x
xxxx
x
x
xxxxx
c)
Fig. 2.16 Funciones de membresía; a) Triangular, b) Trapezoidal y c) Gaussiana.
36
Base de reglas: un sistema difuso está caracterizado por un conjunto de declaraciones lingüísticas,
usualmente representadas por la forma “SI-ENTONCES”.
1) Fuente de las reglas de control difusas: Hay dos principales enfoques para la obtención de
reglas de control difuso. El primero consiste de un método heurístico en el cual las reglas son
obtenidas por medio del análisis del comportamiento del proceso a ser controlado. El segundo
enfoque es un método determinístico, el cual puede sistemáticamente determinar la
estructura lingüística de las reglas.
Podemos usar cuatro procedimientos para la obtención de las reglas de control difusos. Estos
procedimientos no son mutuamente exclusivos, y es necesaria la combinación de los mismos para
obtener un sistema difuso efectivo: a) Basado en la experiencia y conocimiento en ingeniería de
control, b) Basado en acciones de control del operador, c) Basado en el modelo difuso de un
proceso y d) Basado en el aprendizaje.
2) Tipos de reglas de control difuso: Hay dos tipos de reglas de control difusas, reglas de control
difuso de evaluación del estado y las reglas de control difuso de evaluación del proceso.
Reglas de control difuso de evaluación del estado: las variables de estado son referidas a la parte
antecedente de las reglas y las variables de control son referidas a la parte consecuente de las
reglas. En el caso de MISO (múltiples entradas, una salida), pueden ser caracterizados como una
colección de reglas de la forma:
,C es entonces B es y ... A es si R
...
(2.9) C es entonces B es y ... A es si R
C es entonces B es y ... A es si R
nnnn
2222
1111
zyx
zyx
zyx
,:
,:
,:
donde x , … y y z son variables lingüísticas representando las variables de estado y la variable
de control del proceso respectivamente. Ai, … Bi y Ci, donde i=1, 2, … , n son los valores
lingüísticos de las variables x ,… y y z respectivamente en el universo de discurso U, … V y W
respectivamente, esto es:
WC W
VB V
(2.10) ...
UA U
i
i
i
,
,
,
z
y
x
La parte consecuente está representada como una función de las variables de estado x , … y .
(2.11) ... entonces B es y ... A es si R iii ),(,: yxfzyx i
37
Las reglas para la evaluación del estado evalúan el estado del proceso (por ejemplo, error, cambio
de error) en un tiempo t y realizando una acción de control difuso en el mismo tiempo t .
Se mencionó sobre la partición difusa de las variables espaciales, donde el máximo número de reglas de control del sistema se encuentra definido por la partición. En la variable espacial de entrada, la combinación de los términos lingüísticos de entrada produce una regla difusa. Cuando hay un conjunto de reglas difusas como las siguientes:
n
(2.12) , C es entonces B es y ... A es si R iiii
,...,2,1
,:
i
zyx
Éstas se pueden representar como se muestra en la Figura 2.17.
Reglas de control difusas de evaluación del proceso: También se llama control difuso predictivo.
Predice las acciones de control presente y futura y evalúa los objetivos del proceso a controlar,
como ejemplo de reglas de este tipo se tienen las siguientes:
C es entonces ))B es y A es ( C es ( si R
...
(2.13) C es entonces ))B es y A es ( C es ( si R
C es entonces ))B es y A es ( C es ( si R
nnnnn
12222
11111
zyxz
zyxz
zyxz
:
:
:
Una acción de control es determinada por la evaluación de un objetivo que satisface estados y
objetivos deseados. x y y son las entradas para la evaluación del objetivo y z es el comando
de control. Ai y Bi son los valores difusos. La regla de control más probable a ejecutar se
selecciona a través de la predicción de los resultados ( x , y ) correspondientes a cada comando
de control Ci.
En términos lingüísticos, la regla se interpreta como: si la entrada x es Ai y la entrada y es Bi
cuando un comando de control zi es Ci, entonces esta regla se selecciona, y el comando de control
Ci se toma como la salida del controlador.
Fig. 2.17 Reglas difusas representadas por una tabla de reglas
38
2.4.4.4 Inferencia (Toma de decisión lógica) De manera general, en la parte de toma de decisión, se usan principalmente cuatro métodos de inferencia: Mamdani, Larsen, Tsukamoto y método de TSK [9]. Método de Mamdani: este método utiliza el operador mínimo como operador de implicación
difusa, y el operador máximo-mínimo para la composición. Si suponemos que las reglas difusas
están dadas de la siguiente manera:
WCW
VBV
(2.14) UAU
n, ... 2, 1,i
C es entonces B es y ... A es si R
i
i
i
iiii
,
,
,
,:
z
y
x
zyx
Cuando los datos de entrada son funciones singleton tal como 0xx y 0yy (en este caso los
datos de entrada no son fusificados), los niveles de pertenencia de Ai y Bi son )( 0xuiA
y )( 0yuiB
respectivamente. Por lo tanto el grado de pertenencia de la regla Ri es
(2.15) )()( 00 yuxuii BAi
Por lo tanto )()(' zuzuii
CiC donde '
iC es el resultado de la regla Ri. El valor de 'C proviene
de las reglas de control individual el cual se define como:
'
1
'
)()('
i
n
i
CiC
CUC
zuzui
(2.16) Vn
1i
Método de Larsen: este método utiliza el operador producto para la implicación difusa, y el
operador producto máximo para la composición. Si suponemos que las reglas difusas están dadas
de la siguiente manera:
n , ... 2, 1,i
(2.17) C es entonces B es y A es si R iiii
,: zyx
Cuando los datos de entrada son funciones singleton, 0xx y 0yy . El nivel de pertenencia es
(2.18) )()( 00 yuxuii BAi
'
iC es el resultado de la regla Ri definida por:
39
(2.19) )()(' zuzuii
CiC
El valor de 'C es:
'
1
'
)()('
i
n
i
CiC
CUC
zuzui
(2.20) Vn
1i
Método de Tsukamoto: Este método es utilizado cuando la parte consecuente de cada regla, es
representada por conjuntos difusos con una función de membresía monótona. La salida de cada
regla se define por un valor real obtenido a partir del grado de pertenencia de la regla.
Supóngase que las reglas difusas están dadas como se muestra a continuación y el conjunto iC
tiene una función de membresía monótona )(zuiC
:
n, , ... 2, 1,i
(2.21) C es entonces B es y A es si R iiii
zyx:
el nivel de membresía i de cada regla se define como en los métodos de Mamdani y Larson en
los casos cuando la función de entrada es singleton. El valor de iz a partir de la regla Ri es:
(2.22) )(1iCi i
uz
El resultado final 'z se obtiene a partir del promedio de los pesos de cada regla de salida
(2.23) .21
2211'
zzz
Este método da como resultado un valor real, por lo tanto no es necesaria una etapa de
defusificación.
Método TSK: este método se utiliza cuando la parte consecuente está dada como una función de
las variables de entrada.
(2.24) es entonces B es y A es si R iii ),,(: yxfzyx i
donde ),( yxfz es una función con valores reales a partir de las variables de entrada x y y .
Usualmente ),( yxf tiene forma de función polinomial.
Si los datos de entrada son de tipo singleton 0x y 0y , entonces el resultado de la regla Ri es
),( 00 yxf i . El nivel de membresía i de cada regla se define como en los métodos de Mamdani y
40
Larson en los casos cuando la función de entrada es singleton. El resultado final para la obtención
de 'z se obtiene a partir del promedio de los pesos usando el nivel de membresía i
(2.25) 21
00220011' ),(),(
yxfyxfz
El resultado final es un valor real y con esto, no es necesaria la defusificación.
2.4.4.5 Interfaz de defusificación En muchas aplicaciones prácticas, se necesitan comandos de control en valores reales. Por lo
tanto, es necesario defusificar el resultado obtenido de la inferencia difusa. Por medio de un
proceso de defusificación se obtiene una acción de control no difuso que representa mejor la
acción de control difuso inferida. Desafortunadamente no se tiene un procedimiento sistemático
para elegir una buena estrategia de defusificación, por lo tanto se debe de elegir alguno tomando
en consideración las propiedades de la aplicación. Son empleadas comúnmente tres estrategias las
cuales son:
Método de la Media del Máximo (MOM): la estrategia MOM genera una acción de control la cual
representa el valor medio de todas las acciones de control, cuyas funciones de membresía
alcanzan el máximo mostrado en la Figura 2.18. En el caso de un universo discreto, la acción de
control se puede expresar como:
(2.26)
k
j
j
k
zz
1
0 ,
donde
jz es la acción de control cuyas funciones de membresía alcanzan el máximo y k es el
número de acciones de control.
Fig. 2.18 Media del máximo (MOM)
41
Método del Centro de Área (COA): Es el método más ampliamente utilizado, obtiene el centro de gravedad de una distribución de un conjunto difuso C mostrado en la Figura 2.19. En el caso de un universo discreto el método está dado por:
(2.27) ,
n
j
jC
j
n
j
jC
zu
zzu
z
1
1
0
)(
)(
donde n es el número de niveles de cuantización de la salida.
Bisector de Área (BOA): El BOA genera la acción ( 0z ) la cual divide el área en dos regiones, esto se
muestra en la Figura 2.20. La ecuación siguiente representa el BOA:
(2.28) ,
0
0
)()(z
C
z
C dzzudzzu
donde W|min zz y W|min zz .
2.4.5 Tabla de búsqueda Incluso con las ventajas que ofrecen los FLC, existe el problema del tiempo de procesamiento para
las etapas de la inferencia difusa y la defusificación. Por lo tanto, se utiliza frecuentemente una
tabla de búsqueda para simplificar las relaciones entre las variables de entrada y las acciones de
control de salida. La tabla de búsqueda se puede construir después de la realización del FLC e
identificando las relaciones entre las variables de entrada y salida. En general, es extremadamente
Fig. 2.19 Centro de área (COA)
Fig. 2.20 Bisector de área (BOA)
42
difícil obtener una tabla de búsqueda aceptable para un sistema de control no lineal sin construir
su correspondiente FLC [9].
2.4.6 Procedimiento de diseño de un Controlador Lógico Difuso Para diseñar un controlador lógico difuso se sigue el siguiente procedimiento: 1) Determinación de las variables de estado y variables de control.- la variable de control, está
determinada por las propiedades del proceso a ser controlado; pero también deben
seleccionarse las variables de estado, en general el error y la diferencia de error con frecuencia
son las variables más usadas. Las variables de estado son las variables de entrada, y las
variables de control son las salidas de nuestro controlador a ser desarrollado.
2) Determinación del método de inferencia.- la decisión del método dependerá de las
propiedades del proceso a estudiar.
3) Determinación del método de fusificación.- se requiere el estudio de las propiedades de los
datos medidos de las variables de estado. Si existe incertidumbre en los datos, será necesaria la
fusificación, y la selección de las funciones de membresía de los conjuntos difusos. Si no existe
incertidumbre, se pueden utilizar funciones tipo singleton para las variables de estado.
4) Discretización y normalización de las variables de estado espaciales.
5) Partición de las variables espaciales.- las variables de estado son las variables de entrada de
nuestro controlador, por lo tanto, la partición de éstas es importante para la estructura de las
reglas difusas. En este paso, la partición del espacio de control (salidas espaciales del
controlador) es también necesaria.
6) Determinación de las formas de los conjuntos difusos.- es necesario determinar la forma de los
conjuntos difusos y sus funciones de membresía para las entradas y salidas espaciales
particionadas.
7) Construcción de la base de reglas difusas.- se determinan las variables y sus correspondientes
términos lingüísticos en la parte antecedente y en la parte consecuente de cada regla.
8) Determinación de la estrategia de defusificación.
9) Pruebas y sintonización.- es casi imposible obtener un controlador difuso satisfactorio sin
sintonización.
10) Construcción de una tabla de búsqueda.- si el controlador muestra un rendimiento
satisfactorio, podemos decidir si es necesario usar una tabla de búsqueda en lugar de usar el
sistema de inferencia. La tabla de búsqueda se utiliza con frecuencia para ahorrar tiempo de
43
procesamiento en la inferencia difusa y defusificación. La tabla de búsqueda muestra la
relación entre una combinación de variables de entrada y las acciones de control.
2.4.7 Diseño de aplicación de un FLC Los servomotores son usados en muchos sistemas automáticos tales como controladores para impresoras, videograbadoras y manipulaciones de robots. El proceso de un servomotor muestra propiedades no lineales, y así podemos aplicar un control lógico difuso al control de un motor. La tarea del control es rotar el eje del motor a una posición de referencia sin sobretiro. La posición de referencia y la salida del proceso se miden en grados. 1) Determinación de las variables de estado y variables de control.-
Variables de estado (variable de entrada del controlador)
- El error ( e ) es igual a la posición de referencia menos la salida del proceso.
- El cambio de error (ce ) es igual a error de la salida del proceso menos el error de la
salida del proceso anterior.
Variable de control (variable de salida del controlador)
- El control de entrada ( v ) equivale al voltaje aplicado al proceso.
2) Determinación del método de inferencia.- Se selecciona el método de inferencia de Mamdani debido a que es el método más usado por producir resultados aceptables con una estructura simple, intuitiva y también por la interpretabilidad en un lenguaje heurístico de la base de reglas.
3) Determinación del método de fusificación.- se pueden medir las variables de estado sin
incertidumbre y de esta manera se pueden utilizar los datos fusificados por funciones singleton
para la inferencia difusa.
4) Discretización y normalización.- el encoder del eje del motor tiene una resolución de 1000
pulsos por revolución. Los universos de discurso son los siguientes:
100100
10001000
ce
e (2.29)
El amplificador del servomotor tiene un rango de salida de 30 V, con esto las variables de control se encuentran en el rango de:
(2.30) 3030 v
Posteriormente se discretizan y normalizan las variables de entrada en el rango -1 a +1 como se muestra en la Tabla 2.2. La variable de control v es normalizada en el rango de -1 a +1 con la ecuación:
(2.31) vv30
1'
44
NG NM NP CE PP PM PG
Error ( e ) Cambio de error ( ce ) Nivel cuantizado -1000≤ e ≤-800 -100≤ e ≤-80 -1.0
-800≤ e ≤-600 -80≤ e ≤-60 -0.8
-600≤ e ≤-400 -60≤ e ≤-40 -0.6
-400≤ e ≤-200 -40≤ e ≤-20 -0.4
-200≤ e ≤-100 -20≤ e ≤-10 -0.2
-100≤ e ≤100 -10≤ e ≤10 0
100≤ e ≤200 10≤ e ≤20 0.2
200≤ e ≤400 20≤ e ≤40 0.4
400≤ e ≤600 40≤ e ≤60 0.6
600≤ e ≤800 60≤ e ≤80 0.8
800≤ e ≤1000 80≤ e ≤100 1.0
5) Partición de la entrada espacial y salida espacial.- se particiona el espacio para cada
variable de entrada y de salida en siete regiones y cada región es asociada con un término
lingüístico mostrado en la Figura 2.21. Se puede notar que el máximo número de reglas difusas
posibles son 49.
donde NG = Negativo Grande, NM = Negativo Mediano, NP = Negativo Pequeño, CE = Cero, PP = Positivo Pequeño, PM = Positivo Mediano y PG = Positivo Grande. 6) Determinación de las formas de los conjuntos difusos.- se normalizaron las variables de
entrada y salida en el mismo intervalo de -1 a +1. Se ha particionado la región en siete
subregiones, y con esto, se definen los conjuntos difusos triangulares (elegidos con esta forma por
su simplicidad analítica ya que se pueden describir con ecuaciones de recta) para todas las
variables mostradas en la Tabla 2.3 y la Figura 2.22.
Nivel NG NM NP CE PP PM PG -1.0 1 0.5 0 0 0 0 0
-0.8 0 1 0 0 0 0 0
-0.6 0 0.5 0.5 0 0 0 0
-0.4 0 0 1 0 0 0 0
-0.2 0 0 0.5 0.5 0 0 0
0 0 0 0 1 0 0 0
0.2 0 0 0 0.5 0.5 0 0
0.4 0 0 0 0 1 0 0
0.6 0 0 0 0 0.5 0.5 0
0.8 0 0 0 0 0 1 0
1.0 0 0 0 0 0 0.5 1
Tabla 2.2. Discretización y normalización
Fig. 2.21 Partición del espacio, NG = Negativo Grande, NM = Negativo Mediano, NP = Negativo
Pequeño, CE = Cero, PP = Positivo Pequeño, PM = Positivo Mediano y PG = Positivo Grande
Tabla 2.3 Definición de los conjuntos difusos
45
7) Construcción de las reglas difusas.- la construcción depende del nivel de experiencia
acerca del control de servomotores, se podría plantear mediante la experiencia lo siguiente:
Si el error es cero y el cambio de error es positivo pequeño, entonces la entrada de control de
entrada es negativo pequeño.
Este tipo de reglas se pueden reescribir de la siguiente manera:
1) Si e es PG y ce es cualquiera, entonces v es PG.
2) Si e es PM y ce es NG, NM, o NP, entonces v es PP.
3) Si e es C y ce es C, PP, o PM, entonces v es C.
4) Si e es PP y ce es NP, C, o PP, entonces v es C.
5) Si e es NP y ce es NP, C, PP o PM, entonces v es NP.
El conjunto de reglas difusas completas se resumen en la Figura 2.23.
NG NM NP CE PP PM PG
Fig. 2.22. Representación gráfica de los conjuntos difusos Fig. 2.22. Representación gráfica de los conjuntos difusos
Fig. 2.23 Representación de las reglas difusas
46
8) Determinación de la estrategia de defusificación.- Se tomará el método COA (Centro de
área) debido a que es el más comúnmente usado ya que proporciona variaciones suaves y
continuas de los valores de salida defusificados.
9) Pruebas y sintonización.- se verifica el rendimiento del controlador desarrollado y se
ajustan algunas reglas difusas en caso de ser necesario.
10) Construcción de la tabla de búsqueda.- después de verificar que el controlador muestra
un buen rendimiento, se procede a la construcción de una tabla de búsqueda. Se extenderá la
inferencia difusa a todas las combinaciones posibles de las variables de entrada discretizadas e y
ce . Por ejemplo:
2.0,4.04.0
4.0,02.0
es y Para
(2.32) es y Para
vcec
vcec
La correspondiente tabla de búsqueda está dada en la Tabla 2.4. Se puede usar esta tabla de búsqueda con el fin de ahorrar tiempo de procesamiento durante la inferencia y defusificación.
ce e
-1.0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1.0
-1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -0.8 -0.8 -0.8 -0.8 -0.6 -0.6
-0.8 -0.8 -0.8 -0.8 -0.8 -0.8 -0.8 -0.6 -0.6 -0.6 -0.6 -0.6
-0.6 -0.6 -0.6 -0.6 -0.6 -0.4 -0.4 -0.4 -0.4 -0.4 -0.2 -0.2
-0.4 -0.2 0 0 0 0 0 0 0.2 0.2 0.2 0.2
-0.2 -0.4 -0.4 -0.4 -0.4 -0.4 -0.4 0 0 0 0 0
0 -0.2 -0.2 -0.2 -0.2 -0.2 -0.2 -0.2 0 0 0 0
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.4 0.4
0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.6 0.6 0.6 0.6 0.6
0.6 0.6 0.6 0.4 0.4 0.4 0.4 0.8 0.8 0.8 0.8 0.8
0.8 0.6 0.6 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8 0.8
1.0 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.8 0.8 0.8
2.5 CONTROL CLÁSICO COMO CONTROL DIFUSO Los controladores PI difusos son extensiones naturales de los controladores PI convencionales; tienen la misma estructura pero son definidos en base a operaciones matemáticas difusas y estrategias de control difusas [3]. No es fácil reproducir un controlador PI difuso exactamente a PI convencional. Para hacer esto se necesita elegir las variables de entrada y salida y las reglas del controlador correctamente. Cuando uno toma la decisión de diseñar un controlador P, PD, PI, o PID como controlador difuso, esto implica la elección de variables de entrada y salida, así como el contenido de las reglas antecedentes y consecuentes [10].
Tabla 2.4 Tabla de búsqueda
47
2.5.1 Control P como un control difuso De acuerdo con un controlador clásico proporcional dado por la Ecuación 2.3, se retoman los
siguientes términos: )(teK p y )(tu
De la Ecuación 2.3 ))()(()( tytrte es la señal de error, )(tr es la entrada de referencia, )(ty es
la variable controlada, )(tu es la señal de control y PK es la ganancia proporcional.
Recordando de la Sección 2.4.4.4 la sintaxis de las reglas dadas por la estructura definida, si se diseña un control de tipo proporcional difuso, la descripción simbólica estará dada como [10]:
Si )(te es (antecedente 1), Entonces )(tu es (consecuencia 1) )33.2(
En un lenguaje natural equivalente en las descripciones simbólicas se leería como: Si el valor de la señal de error es (antecedente 1), Entonces el valor de la señal de control es
(consecuencia 1).
2.5.2 Control PD como un control difuso De acuerdo al controlador clásico proporcional derivativo dado por la Ecuación 2.5 se retoman los
siguientes términos: dt
tdeKteK Dp
)(),(
y )(tu
De la Ecuación 2.5 ))()(()( tytrte es la señal de error, )(tr la entrada de referencia, )(ty la
variable controlada, )(tu es la señal de control, PK es la ganancia proporcional y DK es la
ganancia derivativa. Si se diseña un control de tipo proporcional derivativo difuso la descripción simbólica estará dada como [10]:
Si )(te es (antecedente 1) y )(te es (antecedente 2), Entonces )(tu es (consecuencia 1) )34.2(
donde )1()()( tetete es el cambio en la señal de error; representando al término de la
derivada de la señal de error de la Ecuación 2.5. Esto quiere decir que a la señal de error presente se le restará el valor de la señal de error previa. En un lenguaje natural equivalente la descripción simbólica de arriba se leería como: Si el valor de la señal de error es (antecedente 1) y el valor del cambio en la señal de error es
(antecedente 2), Entonces el valor de la señal de control es (consecuencia 1).
48
2.5.3 Control PI como un control difuso De acuerdo al controlador clásico proporcional integral dado por la Ecuación 2.4 se retoman los
siguientes términos: dtteKteK Ip )(),( y )(tu
De la Ecuación 2.4 ))()(()( tytrte es la señal de error, )(tr la entrada de referencia, )(ty la
variable controlada, )(tu es la señal de control, PK es la ganancia proporcional y IK es la
ganancia integral. En ocasiones es difícil formular reglas lingüísticas que dependan de una integral de error. Como alternativa se derivan ambos miembros de la Ecuación 2.4 obteniéndose lo siguiente:
(2.35) ).()()(
teKdt
tdeK
dt
tduIp
En el control de tipo proporcional integral difuso, la descripción simbólica estará dada como [10]:
Si )(te es (antecedente 1) y )(te es (antecedente 2), Entonces )(tu es (consecuencia 1) )36.2(
donde )1()()( tututu se define como cambio en la señal de control; esto quiere decir que a
la señal de control presente se le restará el valor de la señal de control previa. En un lenguaje natural equivalente en las descripciones simbólicas de arriba se leería como: Si el valor de la señal de error es (antecedente 1) y el valor del cambio en la señal de error es
(antecedente 2), Entonces el valor del cambio en la señal de control es (consecuencia 1).
2.5.4 Control PID como un control difuso De acuerdo a un controlador clásico proporcional integral derivativo dado por la Ecuación 2.6 se
retoman los siguientes términos: dt
tdeKdtteKteK DIp
)(,)(),(
y )(tu
De la Ecuación 2.6 ))()(()( tytrte es la señal de error, )(tr la entrada de referencia, )(ty la
variable controlada, )(tu es la señal de control, PK es la ganancia proporcional, IK es la
ganancia integral y DK es la ganancia derivativa.
En el caso de un controlador PID difuso es necesario introducir una variable llamada suma de las
señales de error denotada como e y descrita por la Ecuación 2.37:
49
)37.2()()(1
.
t
i
iete
De esta manera la Ecuación 2.37 está representando al término de la integral de la señal de error
de la Ecuación 2.6.
Si se diseña un control de tipo proporcional integral derivativo difuso la descripción simbólica estará dada como [10]: Si )(te es (antecedente 1) y )(te es (antecedente 2) y )(te es (antecedente 3), Entonces )(tu es
(consecuencia 1) )38.2(
En un lenguaje natural equivalente en las descripciones simbólicas de arriba se leería como: Si el valor de la señal de error es (antecedente 1) y el valor del cambio en la señal de error es (antecedente 2) y la suma de las señales de error son (antecedente 3), Entonces el valor en la señal
de control es (consecuencia 1).
2.6 COMPARACIÓN ENTRE UN CONTROL CLÁSICO Y UN CONTROL DIFUSO
Todos los ejemplos de procesos de ingeniería implican un punto de referencia y su seguimiento.
En términos de control sería interesante comparar como un control difuso con un control clásico
siguen a un punto de referencia. Un controlador difuso es con frecuencia, pero no siempre, simple
de realizar, sobre todo si el ingeniero conoce la física del sistema. Un control difuso por lo general
es más rápido que un control PID con la existencia de un pequeño sobretiro o sin éste. Como
ejemplo, en la Figura 2.24 se muestran los resultados de un control difuso contra un control PID
para 2 tanques de tamaño real en el que el nivel del líquido de uno de los dos funciona como
punto de referencia. El control difuso resultó ser más fácil de diseñar y mejor con MIMO (Múltiples
entradas, Múltiples salidas) o sistemas no lineales, aunque en ocasiones el control difuso se puede
complicar si las funciones de membresía son difíciles de determinar. Por otro lado, el control
clásico tiene una matemática elegante, es bastante exacto para problemas ideales, y da las bases
para determinar la estabilidad. Los algoritmos de control clásico pueden ser muy simples de
implementar para “problemas ideales”. Desafortunadamente el control clásico se basa
fundamentalmente en la habilidad del ingeniero para determinar unas buenas constantes para el
controlador PID, y en ocasiones esto es difícil para muchos problemas no lineales.
50
En la Figura 2.25 se muestra de manera esquemática la comparación entre estas dos
metodologías, difusa y clásica, desde una perspectiva de alto nivel. En ambos se comienza con el
mundo real, comúnmente llamado “planta”, esto es, el objeto que se desea controlar. En este caso
la planta se trata de los dos tanques con cierto líquido dentro de ellos. En el caso del control
clásico el primer paso es desarrollar un modelo matemático de la planta; este paso es de
abstracción sobre todo si se tiene que modelar algún objeto complejo, y se debe de simplificar
haciendo suposiciones antes de describir el sistema, por ejemplo, con ecuaciones diferenciales.
Después que el modelo matemático ha sido desarrollado, se recurre a la teoría de control
trabajándose junto con las ecuaciones del modelo, resultando en la descripción del controlador
que usualmente es otro modelo matemático. Posteriormente el controlador es aplicado a la planta
y se verifica si el controlador realmente funciona o no. En la mayoría de los casos, el controlador
debe ser estabilizado por medio de teoremas que pueden probar la estabilidad y determinar si se
Tiempo (s)
Alt
ura
(p
ulg
adas
)
PID Difuso Punto de referencia
Controlador difuso
Modelo lógico difuso
Paso difícil
Humano Mundo real (planta)
Controlador
Teoría de control
Modelo matemático
Mundo real (planta)
Paso difícil
Teorema de estabilidad
DIFUSO CLÁSICO
Fig. 2.24. PID contra control difuso.
Fig. 2.25 Diferencias conceptuales entre el control clásico y difuso
51
tiene un buen comportamiento del modelo matemático. Para el caso del control difuso, el mundo
real, o planta, por lo general es un dispositivo controlado por un humano o algún otro tipo de
“agente inteligente”. En la Figura 2.25, hay dos flechas que cierran un ciclo entre el humano y la
planta; esto es porque existe una fuerte retroalimentación entre el humano y la planta, esto
último necesario en el control humano del proceso. Los humanos ofrecen su experiencia y
habilidad en forma de reglas lingüísticas acerca de cómo controlan el dispositivo. Usando estas
reglas, y asociadas a funciones de membresía (las cuales también provienen del mismo agente
inteligente), se desarrolla un controlador basado en reglas difusas. Usando la teoría de sistemas
difusos, es posible obtener un modelo de control automático. Posteriormente se le realizan
pruebas al controlador que consisten en verificar que el control de la planta sea de una manera
aceptable, o al menos con buenos resultados como lo haría un humano como controlador [11].
Ambos métodos ilustrados en la Figura 2.25 describen lo que implica cada uno de los procesos
para desarrollar un control automático. En el caso clásico, el modelo de control resulta de una
abstracción matemática del mundo real, y en el caso difuso el modelo de control es resultado de la
experiencia y habilidad de un controlador humano. En ambos casos, se debe demostrar que el
control automático realmente funciona; en ambos casos las mediciones de buena calidad pueden
ser las mismas, por ejemplo, el tiempo en estabilizar cierta configuración, tamaño de sobretiro y
cantidad de energía suministrada en una acción de control.
52
CONCLUSIÓN
Un SLIT puede modelarse mediante su función de transferencia, debido a que ésta contiene toda
la información referente a su dinámica obtenida a través de la relación entrada/salida del sistema
o proceso. Una expresión analítica como lo es función de transferencia puede ser utilizada para
representar el fenómeno o proceso de interés para posteriormente ser controlado por algunos de
los controladores clásicos (o convencionales) o de tipo difuso descritos a lo largo de éste capítulo
ya sea por medio de un sistema de control en lazo cerrado o abierto.
Las nuevas generaciones de controladores lógicos difusos están basadas en la integración del
control convencional y controladores difusos. Las técnicas difusas se han utilizado para obtener
reglas lingüísticas del tipo SI-ENTONCES de datos numéricos. En general, la tendencia es hacia la
recopilación y fusión de diferentes formas de representación del conocimiento para una mejor
visualización y control de sistemas complejos. Los dos nuevos paradigmas, las redes neuronales
artificiales y sistemas difusos, tratan de interpretar la mecánica del mundo real, comenzando por
las fuentes más básicas del conocimiento, esto es, observaciones pacientes y cuidadosas,
mediciones, experiencia, razonamiento analítico e intuitivo, en lugar de comenzar con alguna
teoría existente o un modelo matemático. Los controladores lógicos difusos avanzados utilizan sus
capacidades de adaptación para ajustar o modificar las funciones de membresía, borrar o agregar
reglas, y así optimizar el rendimiento y compensar los efectos de perturbaciones internas o
externas. Los sistemas difusos de aprendizaje tratan de aprender las funciones de membresía o las
reglas [11].
53
REFERENCIAS
[1] Norman S. Nise, “Sistemas de control para ingeniería”, Editorial Continental, California State Polytechnic University, tercer edición, 2004. [2] Antoni Mànuel, Domingo Biel, Joaquim Olivé, “Instrumentación Virtual, Adquisición procesado, y análisis de señales”, Politext, Barcelona, 2001. [3] Guanrong Chen, Trung Tat Pham, “Introduction to Fuzzy Sets, Fuzzy Logic and Fuzzy Control Systems”, CRC Press LLC, United States of America, 2001. [4] John M. Holland, “Designing Autonomous Mobile Robots Inside the Mind of an Intelligent Machine”, Elsevier, British, 2004. [5] Antonio Visioli, “Practical PID Control”, Springer, London, 2006. [6] Sinhué López Vite, “Simulación de reguladores difusos de velocidad para motores de C.D. con excitación separada”, IPN, México D.F., 2008. [7] Karl J. Åström, Tore Hägglund, “PID Controllers: Theory, Design and Tunning”, Department of Automatic Control, United States of America, 2° Edition, 1994. [8] Terano Toshiro, Asai Kiyoji, Sugeno Michio, “Fuzzy Sustems Theory and its Applications”, Edit, Academic Press, 1987 [9] Kwang H. Lee, “First Course on Fuzzy Theory and Applications”, Springer, Republic of South Korea, 1995. [10] Leonid Reznik, “Fuzzy Controllers”, Victoria University of Technology, Newnes, Melbourne Australia, 1997. [11] Timothy J. Ross, “Fuzzy Logic with Engineering Applications”, Wiley, Third Edition, University of New Mexico, USA, 2010.
54
CAPÍTULO 3 IMPLEMENTACIÓN DEL CONTROL DIFUSO EN EL FPGA PARA EL ROBOT MÓVIL
3.1 INTRODUCCIÓN Las secciones de este capítulo describen cada una de las etapas de la metodología utilizada para el
diseño e implementación del Controlador Lógico Difuso (FLC) en un FPGA (Arreglo de Compuertas
Lógicas Programables en Campo). Se caracterizaron los dos motores de CD (Corriente Directa) que
componen al robot móvil para obtener su función de transferencia, posteriormente se usaron
estos resultados para simular el FLC mediante el uso de Simulink y la caja de herramientas llamada
Fuzzy Logic Toolbox del Software MatLab, este toolbox se utilizó para ajustar los diferentes
parámetros de los conjuntos difusos propuestos, para de esta manera eliminar el error en estado
estacionario en cada uno de los dos motores de CD. El propósito de este capítulo es mostrar el
diseño de los FLC para cada uno de los motores y demostrar el funcionamiento de ambos al rotar
a la misma velocidad angular en base a una referencia propuesta; esto debe lograrse primero
simulando los dos motores de CD para obtener el valor del voltaje de alimentación a ser aplicado
para cada uno de los motores para mantener la velocidad de referencia propuesta.
Se presentará una breve descripción del código fuente desarrollado en VHDL (Lenguaje para la
Descripción de Hardware de Alta Velocidad) para la implementación del FLC diseñado en MatLab.
La metodología para el desarrollo del FLC es similar a la presentada en el capítulo 2, aquí se
detallará más cada una de las etapas y los procedimientos experimentales llevados a cabo para el
diseño y construcción del FLC.
55
Vout
Vcc
3.2 CARACTERIZACIÓN DE LOS MOTORES DE CD
3.2.1 Respuesta a la entrada escalón de los motores de CD Antes de proceder a diseñar el FLC es necesario caracterizar los motores de CD. Para esto fue
necesario obtener la función de transferencia de cada uno de los motores utilizados. Cabe
mencionar que la función de trasferencia contiene toda la información respecto a la dinámica de
un sistema, esta función de transferencia se utilizará durante el proceso de diseño del FLC [1]. A
veces no es posible o práctico obtener analíticamente la función de transferencia de un sistema
debido a la complejidad de las ecuaciones matemáticas requeridas para su obtención. Como la
función de transferencia es una representación del sistema desde la entrada a la salida, la
respuesta a una entrada escalón del sistema puede llevar a una representación cuantitativa, aún
cuando no se conozca la construcción interior. Con una entrada escalón (la función escalón es
comúnmente utilizada para representar fenómenos que correspondan a estados si ó no o bien
activo o inactivo y se va a utilizar para representar la tensión aplicada a los motores de CD) se
puede medir la constante de tiempo y valor en estado estable, y a partir de estos dos parámetros
es posible calcular la función de transferencia, esto se muestra en la Figura 3.1 para un motor de
CD, la misma metodología se realiza para el segundo motor [2].
Para llevar a cabo experimentalmente lo que se muestra en la Figura 3.1, se utiliza el circuito integrado LM2907 el cual es un convertidor de frecuencia a voltaje. En la Figura 3.2 se muestra el circuito empleado [3].
Fig. 3.1 Representación de la entrada escalón del motor de CD
M
Escalón Motor de CD Osciloscopio
10kΩ
R2
44uF
C2 100kΩ
R1 0.4uF
C1
Fig. 3.2 Circuito empleado para la entrada escalón del motor de CD
Osciloscopio
Motor de CD
4V
56
Como puede observarse, la señal utilizada como entrada escalón es una fuente de voltaje de CD de 4 V que alimenta al motor de CD el cual tiene integrado un sensor de posición tipo encoder que proporciona una señal cuadrada en su salida la cual es a su vez es la entrada del convertidor de frecuencia a voltaje LM2907. El resultado de esta conversión se observa en el osciloscopio. El
voltaje de salida del convertidor frecuencia a voltaje Vout está dado por [4]:
(3.1) ],V[ )1)(1)()(( CRFVccVout in
donde Vout es el voltaje de salida del convertidor frecuencia a voltaje, Vcc es el voltaje de
alimentación del circuito convertidor de frecuencia a voltaje, inF es la frecuencia de la señal de
salida del encoder del motor de CD, 1R es el valor del resistor 1 y 1C es el valor del capacitor 1, ver Figura 3.2.
Para la elección de los valores de 1C , 2C y 1R se propusieron los siguientes parámetros de acuerdo el fabricante del circuito integrado LM2907 tomando en cuenta que cuando se alimentan los motores de CD con 4 V, la frecuencia de la señal de salida del encoder observada en un osciloscopio es de aproximadamente 16 Hz (en realidad existe una pequeña diferencia de 0.5 Hz, pero por el momento interesa estimar el orden de la frecuencia de salida de los encoders de los motores de CD para el diseño del circuito convertidor de frecuencia a voltaje) en ambos motores y se dispone de una fuente de 11.5 V para alimentar al circuito convertidor de frecuencia a voltaje. Los parámetros propuestos son los siguientes:
.V 10maxV es el voltaje máximo que se puede obtener a la salida del convertidor frecuencia
voltaje.
.V 5.11Vcc es el voltaje de alimentación del circuito convertidor frecuencia a voltaje.
.Hz 22maxF es la frecuencia máxima de la señal de salida del encoder del motor de CD que
se puede introducir al convertidor frecuencia a voltaje. .Hz 1minF es la frecuencia mínima de la señal de salida del encoder del motor de CD que se
puede introducir al convertidor frecuencia a voltaje. .V 05.0Vrizado es el voltaje de rizo en la salida del convertidor (sugerido por el fabricante).
.μA 150min3I corriente a través del pin 3 (sugerido por el fabricante).
1) Cálculo de 1R
,max
1min3I
VR
,μA 150
V 101R
(3.2) kΩ 66.661R
de acuerdo al circuito de la Figura 3.2 se propone un resistor de kΩ 100
2) Cálculo de 1C
,max))()(1(
max1
FVccR
VC
,
)Hz 22)(V 5.11)(kΩ 100(
V 101C
(3.3) μF 39.01C
de acuerdo al circuito de la Figura 3.2 se hizo un arreglo de capacitores para obtener μF 4.0 3) Cálculo de 2I
57
2 ( max)( 1)( ),I F C Vcc ),V 5.11)(μF 4.0)(Hz 22(2 I )4.3( mA 101.02 I
4) Cálculo de 2C
1 ( )( min)( 1)2 1 ,
2 2
Vcc C Vcc F CC
Vrizado I
mA 101.0
)μF 4.0)(Hz 1)(V 5.11(1
V 05.0
μF 4.0
2
V 5.112C
)5.3( μF 9.432 C
de acuerdo al circuito de la Figura 3.2 se hizo un arreglo de capacitores para obtener μF 44
5) Cálculo de 2R
El valor de 2R es sugerido por el fabricante con un valor de kΩ 10
3.2.2 Obtención de la función de transferencia de los motores de CD
Una vez elegidos los valores de 1,C 2C y 1,R se procede a la obtención de la función de
transferencia para ambos motores de CD, para esto, se analiza el valor de Vout mostrado en el oscilograma de la Figura 3.3 donde se puede apreciar que la respuesta a la entrada escalón de 4 V no es la misma a pesar de que se están utilizando la misma marca y modelo de motores de CD para el robot móvil; esto quiere decir que la dinámica para cada motor es diferente ya que la relación salida/entrada para cada uno de éstos mostró un comportamiento distinto (7.24 V en estado estable para el motor derecho y 7.76 V en estado estable para el motor izquierdo), esto tendrá como consecuencia la obtención de una función de transferencia distinta para cada motor.
Fig. 3.3 Respuesta a la entrada escalón de 4 V de los motores de CD, los motores no giran a las mismas rpm, de ahí que
se obtenga un Vout distinto. a) Motor derecho, b) Motor izquierdo
a) b)
7.24 V 7.76 V
58
Como puede observarse, ambas respuestas de los motores de CD corresponden a un sistema de primer orden, por lo tanto, estos pueden modelarse por medio de una ecuación diferencial de primer orden dada por:
( ) ( ), (3.6)dy
ay t bu tdt
donde a y b son dos constantes denominadas coeficientes de la ecuación diferencial; )(tu
representa a la entrada escalón y )(ty es el voltaje de salida del convertidor frecuencia a voltaje.
Resolviendo la ecuación diferencial utilizando transformada de Laplace con condición inicial nula
0)0( y se tiene:
( ) ( ) ,dy
L ay t L bu tdt
( ) (0) ( ) ( ). (3.7)sY s y aY s bU s
Reacomodando términos para encontrar la relación )(
)()(
sU
sYsG , donde )(sG es la función de
transferencia del sistema:
( ) . (3.8)b
G ss a
De la Ecuación 3.8 deben obtenerse los valores de las constantes a y b , con esto se podrá obtener la función de transferencia de los motores de CD. Como se había mencionado antes, con una entrada escalón se puede medir la constante de tiempo y valor en estado estable, y a partir de estos dos parámetros es posible calcular la función de transferencia, esto quiere decir que a partir de la Figura 3.3 es posible obtener la constante de tiempo y el valor en estado estable para cada uno de los motores de CD para posteriormente utilizar estos valores en la Ecuación 3.8. En la Figura 3.4 se muestra el análisis de los resultados obtenidos para poder medir la constante de tiempo y el valor en estado estable.
a) b)
Fig. 3.4 Análisis de la entrada escalón de los motores de CD: a) Motor derecho, b) Motor izquierdo.
4.57 V 4.9 V
0.9 s 0.9 s
59
El valor en estado estable para el motor derecho es de 7.24 V (Figura 3.4a) y para el motor izquierdo de 7.76 V (Figura 3.4b), esto es, el valor de la respuesta de la entrada escalón cuando ya no varía con el tiempo. La constante de tiempo es el tiempo que toma a la respuesta de la entrada escalón para alcanzar el 63.2 % de su valor final o estado estable [2]. Para el caso del motor derecho, el 63.2 % del valor final (7.24 V) es 4.57 V. Para el motor izquierdo el 63.2 % del valor final (7.76 V) es 4.9 V. El valor de la constante a se obtiene a partir de:
1, (3.9)
b
at
donde bt es la constante de tiempo. Para ambos motores de CD el valor de bt es de 0.9 s, por lo
tanto el valor de a es:
1,
0.9a
(3.10) 1.1a
El valor de la constante b se obtiene a partir de:
( )( ). (3.11)finalb V a
donde finalV es el valor en estado estable.
El valor de la constante b para el motor derecho es:
(7.24)(1.1),b (3.12) 96.7derechob
El valor de la constante b para el motor izquierdo es:
(7.76)(1.1),b (3.13) 53.8izquierdob
Sustituyendo los valores de las constantes a y b en la Ecuación 3.8 para obtener la función de transferencia de cada uno de los motores de CD, para el motor derecho se tiene:
(3.14) 1.1
96.7)(
ssG derecho
Y para el motor izquierdo:
(3.15) 1.1
53.8)(
ssG izquierdo
60
Finalmente se obtiene la función de transferencia en función de la frecuencia de la señal de salida
de los encoder de los motores de CD. Para hacer esto se retoma la Ecuación 3.1 y se despeja inF
(3.16) ]Hz[ )1)(1)(( CRVcc
VoutFin
Por lo tanto la frecuencia de la señal de salida del encoder del motor derecho es:
,)μF 4.0)(kΩ 100)(V 5.11(
V 24.7derechoinF
(3.17) Hz 73.15derechoinF
Esto quiere decir que cuando el valor en estado estable para el motor derecho es de 7.24 V la frecuencia de la señal de salida de su encoder integrado es de 15.73 Hz. Si se toma a 15.73 Hz como el valor en estado estable y se realiza el mismo procedimiento para la obtención de las
constantes a y b se llega a una función de transferencia en función de la frecuencia para este motor, entonces aplicando la Ecuación 3.9 el valor de a estará dado por:
1,
0.9a
(3.18) 1.1a
esto quiere decir que al motor derecho le toma 0.9 s para llegar al 9.94 Hz que representa el 63.2 % de la amplitud final o en estado estable.
El valor de b es obtenido aplicando la Ecuación 3.11:
),1.1)(73.15(b (3.19) 3.17derechob
Finalmente sustituyendo los valores de las Ecuaciones 3.18 y 3.19 en la Ecuación 3.8 se obtiene la función de transferencia en función de la frecuencia de la señal de salida del encoder del motor derecho:
(3.20) 1.1
3.17)(
ssG derecho
Realizando el mismo procedimiento para obtener la función de transferencia del motor izquierdo
en función de la frecuencia de la señal de salida su encoder integrado con Hz 86.16izquierdoinF
1.1a y 5.18izquierdob :
(3.21) 1.1
5.18)(
ssG izquierdo
61
3.2.3 Validación de las funciones de transferencia de los motores de CD Antes de tomar como válidas las funciones de transferencia descritas por las Ecuaciones 3.14 y
3.15 para los motores de CD derecho e izquierdo respectivamente, es necesario verificar que en
realidad describan correctamente la dinámica de éstos. Para llevar a cabo este procedimiento se
hace uso de la herramienta Simulink del Software MatLab por medio de la cual se obtendrá la
respuesta de la función de transferencia ante una entrada escalón que posteriormente se
comparará con las respuestas obtenidas experimentalmente en el osciloscopio. El diagrama de
bloques construido en Simulink para ambos motores de CD es el que se muestra en la Figura 3.5
[5]:
En la Figura 3.6 se observan las respuestas simuladas de las funciones de transferencias obtenidas en Simulink (líneas de color rojo) ante una entrada escalón para ambos motores, comparadas con las respuestas obtenidas de manera experimental en un osciloscopio (líneas de color azul). En esta figura se aprecia que prácticamente se superponen; esto quiere decir, que las expresiones obtenidas en las Ecuaciones 3.14 y 3.15 son válidas para describir la dinámica de los motores de CD utilizados en este proyecto.
Fig. 3.5 Respuesta ante una entrada escalón de la función de transferencia: a) Motor derecho, b) Motor izquierdo.
a)
b)
Fig. 3.6 Validación de la función de transferencia: a) Motor derecho, b) Motor izquierdo.
a) b)
Escalón Función de transferencia Osciloscopio
Escalón Función de transferencia Osciloscopio
Simulada
Experimental
Simulada
Experimental
62
3.3 METODOLOGÍA DE DISEÑO DEL FLC Una vez que se tiene la función de transferencia de los motores de CD se procede con el diseño del FLC. Como se dijo anteriormente, el diseño inicialmente se realizó con ayuda de Simulink y la herramienta Fuzzy Logic Toolbox de MatLab, y la implementación en hardware se realizó utilizando código VHDL (ver Anexo 1 para ver el código fuente). Independientemente de la metodología, los aspectos más importantes que tienen que tomarse en cuenta para el diseño de un FLC en un FPGA son los siguientes [6]:
Aplicación a la que se destina (en este caso control de velocidad de motores de CD).
La capacidad de procesamiento (se codifica un código fuente en VHDL para programar un FPGA que cuenta con un reloj de 25.175 MHz).
La cantidad de recursos utilizados para tal propósito (El FPGA cuenta con 3744 elementos
lógicos)
Las ventajas del diseño de hardware, haciendo uso de VHDL, es que permite llevar cualquier sistema a su elaboración en poco tiempo. A continuación se presentan las etapas para el diseño del FLC para llevar a cabo el control de velocidad de rotación del Motor derecho de CD, la misma metodología se sigue para el segundo motor, del cual sólo se irán resaltando las diferencias de diseño con el motor derecho de CD mediante esquemas cuando sea necesario. 1) Definir los parámetros a controlar del motor de CD. 2) Descripción general del sistema de control difuso para el motor de CD. 3) Definir el número de funciones de membresía por cada entrada y salida. 4) Establecimiento de la configuración del FLC mediante las reglas de inferencia difusa de acuerdo
a la forma deseada de operación y basado en el conocimiento que se tiene acerca de los motores de CD.
5) Simulación del FLC usando Simulink.
3.3.1 Definir los parámetros a controlar del motor de CD El sistema puede ser tan grande como la cantidad de recursos disponibles en el FPGA. Así que podemos hablar de un FLC que contenga un número cualquiera de entradas y un número cualquiera de salidas. Así pues, para comenzar, es necesario saber qué se pretende controlar y basado en qué, para luego establecer un número de entradas y un número de salidas concretos. En este caso se pretende controlar la velocidad de rotación de un motor de CD, por lo tanto, es necesario monitorear este parámetro, pero a su vez es necesario identificar de qué manera se puede controlar este parámetro y una manera es modificando el voltaje de alimentación en sus terminales [7] [8] [9].
Fig. 3.7 Motor de CD utilizado en el robot móvil
63
V
Error )(e
Cambio de
error )( e
FLC Motor
de CD
Cambio de
voltaje )( v
)(ref
(10 Hz)
+ -
3.3.2 Descripción general del sistema de control difuso para el motor de CD El sistema de control difuso contiene reglas de tipo MISO (múltiples entradas, una salida), la descripción siguiente se hará para el motor derecho ya que la misma metodología se aplica al motor izquierdo. El sistema de control difuso mostrado en la Figura 3.8, posee 2 entradas y una salida, donde e representa la variable de entrada del error que existe entre la velocidad de
rotación actual y la velocidad de rotación de referencia y e representa el cambio en este error; la
variable de salida v representa el voltaje que debe aplicársele al motor de CD para conseguir la velocidad de rotación de referencia [10]. Se etiquetará a la primera variable de entrada e como el
error, la segunda variable de entrada e como el cambio de error y a la variable de salida v como cambio de voltaje. Es importante mencionar que de acuerdo a las variables de entrada y salida elegidas para el diseño del FLC, se va a implementar un controlador de lazo cerrado de tipo PI difuso descrito en el Capítulo 2 sección 2.5.3.
Nótese que la segunda variable de entrada e del controlador FLC depende solamente de una de las variables características del sistema, que en este caso, es la medición de la velocidad de rotación actual del motor de CD, y se obtiene a partir de la derivación del error de la velocidad resultante del módulo restador característico del sistema de control de lazo cerrado. La salida del controlador es llevada a un circuito que sirve de interfaz entre el motor de CD y el controlador, el cual interpreta el voltaje de corriente directa que debe aplicársele a las terminales del proceso a controlar para modificar la velocidad de rotación y llevarla a la velocidad de referencia. El motor de CD posee un encoder el cual entrega mediciones continuamente de la velocidad de rotación actual (se utiliza una relación analítica que permite obtener unidades de frecuencia (Hz) a partir de la velocidad angular y la resolución del encoder, esto se describirá en el siguiente capítulo, por el
momento interesa el diseño del FLC) representada con la letra V en la Figura 3.8. De esta manera el lazo cerrado (de retroalimentación) se logra con el uso del restador donde llegan ambas medidas, tanto la de velocidad de rotación actual como la de referencia ref que son 10 Hz, siendo
ésta última, la única velocidad a desarrollar por el robot móvil.
3.3.3 Definir el número de funciones de membresía por cada entrada y salida Antes de elegir el número de funciones de membresía (conjuntos difusos) y las etiquetas lingüísticas (variables lingüísticas) que tendrá el FLC es necesario establecer el tamaño del universo de discurso para cada una de las variables de entrada. Para el caso de la variable de entrada e el universo propuesto es de -5 Hz hasta 5 Hz cuya medición está basada en los valores que se
obtienen de ,V el error esta descrito por la siguiente ecuación:
Fig. 3.8 Sistema de control difuso para el motor de CD
64
(3.22) Vrefe
esto quiere decir que si el valor de V es mayor a ref se tendrá como resultado un e negativo, y
un valor positivo de éste cuando V es menor a ref . En el caso de la variable de entrada e el
tamaño del universo de discurso propuesto es de -3 Hz hasta 3 Hz; la ecuación que describe a esta variable de entrada es:
(3.23) 1 eee
donde 1e es el error previo al error e . De manera análoga a la variable de entrada e , la variable
e puede tener valores positivos (cuando el valor de 1e es menor a e ) y negativos (cuando el
valor de 1e es mayor a e ). Para la elección de ambos intervalos de universo de discurso de cada
variable de entrada, depende de la experiencia y conocimiento que se tenga acerca del proceso, que en este caso son los motores de CD y de los resultados obtenidos a través de pruebas de simulación utilizando Simulink y el Fuzzy Logic Toolbox de Matlab descritos en la sección 3.3.5 de este capítulo con el fin de alcanzar la referencia de 10 Hz en el menor tiempo posible. Es importante mencionar que si se da el caso que algún valor e o e se sale de los límites de los universos de discurso propuestos, el FLC codificado en el FPGA tomará a este valor como el máximo valor del universo de discurso dependiendo en qué extremo se encuentre (positivo o negativo) y según la variable de entrada, por ejemplo, si se llegara a obtener un 7e , como este valor excede el limite del universo de discurso positivo de la variable de entrada error e , entonces el valor asignado será 5e porque los límites para el universo de discurso de esta variable de entrada son de -5 Hz hasta 5 Hz y se ejecutará el FLC hasta que los valores de esta variable de entrada se encuentren dentro de estos límites propuestos y se logre llegar a la velocidad de rotación de referencia deseada. El número de funciones de membresía (para este trabajo se utilizaron tres) que debe tener cada variable de entrada del FLC depende en gran parte de los recursos del sistema computacional donde se vaya a implementar (se cuenta con un FPGA de 3744 elementos lógicos) y también de la precisión requerida para el proceso que desee controlar. Aunque con cinco funciones de membresía se notaron mejoras de medio segundo menos en el tiempo para llegar a la frecuencia de referencia durante las simulaciones que usando tres funciones de membresía, los recursos computacionales del FPGA no fueron suficientes para su implementación, y además, el objetivo es lograr que se llegue a la frecuencia de referencia en tiempos iguales para ambos motores de CD. Para el sistema de control difuso propuesto de la Figura 3.8, se requiere obtener los requerimientos mínimos para su funcionamiento. Para la entrada e , se requiere que su valor sea mínimo o nulo y que si es muy grande, tanto positiva como negativamente, el sistema sea capaz de reducirlo o anularlo completamente. Se proponen tres etiquetas lingüísticas para las funciones de membresía: Error Negativo (EN), Error Cero (EC) y Error Positivo (EP) (los nombres asignados a las etiquetas lingüísticas no son determinantes en el funcionamiento del FLC, sólo sirven para identificar a cada función de membresía y por lo general uno como diseñador decide cómo nombrarlas en base a su experiencia y conocimiento del proceso) mostradas en la Figura 3.9. Sin embargo, todas estas etiquetas lingüísticas como tales siguen siendo valores concretos y no difusos, esto debido a que cualquier
valor V que esté por encima de ref siempre provocará un error negativo y sólo pertenecerá al
65
)(e
e
EN EC
-5 0 5
1 EP
)( e
e
CN CC
-3 0 3
1 CP
conjunto Error Negativo, lo mismo sucede para el conjunto Error Positivo, quedando uno y sólo un
valor para el conjunto Sin Error que es cuando V y ref son exactamente iguales. Debido a esto, es
necesario convertir tales conjuntos tradicionales a conjuntos difusos dentro del intervalo de
trabajo, es decir, su universo de discurso. A este paso se le ha llamado fusificación. La Figura 3.9 muestra una distribución uniforme de tres funciones de membresía dentro del universo de discurso para la variable e , por lo tanto, para cada valor (en Hz) de la variable e , existe por lo menos un valor de membresía y hasta dos como máximo, es decir que la pertenencia no se limita a un solo conjunto.
La entrada e se puede entender como la rapidez de cambio del error de velocidad de rotación que describe el proceso al aplicársele la acción de control en un instante dado; ésta es interpretada como la derivada del error de velocidad de rotación con respecto al tiempo, lo cual representa una velocidad de error. Para esta variable, de igual manera se requiere que el cambio de error sea mínimo o nulo, es decir, que entre más cerca esté de cero, existe la posibilidad de que el proceso esté controlado para la acción de control que se le esté aplicando en ese instante. Se proponen tres etiquetas lingüísticas para las funciones de membresía: Cambio Negativo (CN), Cambio Cero (CC) y Cambio Positivo (CP). De la misma manera que para la variable e , es necesario convertir estos conjuntos tradicionales a conjuntos difusos por medio de la fusificación. Dicho esto, los conjuntos difusos resultantes se pueden apreciar en la Figura 3.10:
Finalmente la variable de salida v es el voltaje aplicado al motor de CD, las funciones de membresía propuestas son las que se muestran en la Figura 3.11. Se proponen tres etiquetas lingüísticas: Voltaje Negativo (VN), Voltaje Cero (VC) y Voltaje Positivo (VP).
Fig. 3.9 Funciones de membresía para la variable de entrada e
Fig. 3.10 Funciones de membresía para la variable de entrada e
66
)( v
v
VN VC
-2.5 0 2.5
1 VP
De acuerdo al diseño propuesto, cuando el motor de CD se encuentre funcionando sin carga, la alimentación suministrada a éste será de 2.5 V, obteniéndose a su vez una lectura en el osciloscopio de 10 Hz (frecuencia de referencia) a la salida del encoder de este motor; sin embargo, cuando el motor tenga alguna perturbación externa que frene su velocidad de rotación,
un v positivo entre 0-2.5 V se sumará a 2.5 V; en caso contrario, si la perturbación provoca que la velocidad de rotación exceda los 10 Hz de referencia entregados por el encoder, entonces
existirá un v negativo entre -2.5-0 V, el cual se sumará a 2.5 V. La distribución y la forma de las funciones de membresía a lo largo de los universos de discurso de cada una de las variables tanto de entrada como de salida están sujetas al criterio y al conocimiento acerca del proceso. El siguiente paso es conocer el número de reglas con las que se puede contar a partir de las variables de la entrada. El número de entradas y de funciones de membresía por cada entrada afecta al número de reglas que puede haber en el FLC. Por lo tanto, tomando en cuenta que cada entrada posee 3 funciones de membresía, entonces existen nueve reglas que pueden estar activas en el FLC. Para nuestro caso estas nueve reglas fueron suficientes para mantener la velocidad de rotación de referencia; una mayor cantidad de reglas implica mayor consumo de recursos del FPGA aunque con ciertas mejoras en la reducción de tiempo para alcanzar los 10 Hz.
3.3.4 Establecimiento de la configuración del FLC mediante las reglas de
inferencia difusa de acuerdo a la forma deseada de operación y basado
en el conocimiento que se tiene acerca de los motores de CD Basándose en el conocimiento que se tiene acerca del proceso, se establecen las reglas de operación y control del sistema. Las reglas son finalmente la configuración del controlador y las que permiten inferir, por medio de la Inferencia Difusa, una salida a partir de las premisas, es decir, las entradas al controlador. Para elegir la configuración del FLC ideal que llevará a cabo el control, es necesario realizar un análisis al proceso para cubrir todos los posibles valores que pueden ocurrir en las entradas del FLC y así asegurar que en su salida exista un valor concreto y exacto que promueva una acción de control óptima.
Fig. 3.11 Funciones de membresía para la variable de salida v
67
Teniendo en cuenta el párrafo anterior, y las nueve combinaciones entre las entradas, esto da lugar a nueve casos distintos, los cuales se muestran a continuación: 1. Si el error es negativo y el cambio de error es negativo. 2. Si el error es negativo y el cambio de error es cero. 3. Si el error es negativo y el cambio de error es positivo. 4. Si el error es cero y el cambio de error es negativo. 5. Si el error es cero y el cambio de error es cero. 6. Si el error es cero y el cambio de error es positivo. 7. Si el error es positivo y el cambio de error es negativo. 8. Si el error es positivo y el cambio de error es cero. 9. Si el error es positivo y el cambio de error es positivo. Puede decirse entonces que cada caso representa una regla de inferencia con la que el FLC decidirá lo que debe hacer en el momento en que ocurra y para cada caso que ocurra se activarán las reglas pertinentes de acuerdo a los valores de las entradas implicadas. Cabe destacar, que por el hecho de que existan nueve reglas, no todas ellas tienen que estar activas de manera obligada. Es responsabilidad del diseñador decidir cómo quiere que el FLC reaccione para cada uno de estos casos. Es por eso, que se necesita llegar a una expresión lingüística que describa de manera sencilla la acción de control que necesita el FLC para funcionar adecuadamente, por ejemplo: 1.- Si el error de velocidad es negativo y el cambio de error de velocidad es negativo, entonces el cambio de voltaje aplicado es negativo. 2.- Si el error de velocidad es negativo y el cambio de error de velocidad es cero, entonces el cambio de voltaje aplicado es negativo. .
.
. 9.- Si el error de velocidad es positivo y el cambio de error de velocidad es positivo, entonces el cambio de voltaje aplicado es positivo. El control difuso es un método de aproximación que permite calcular heurísticamente la acción de control que debe aplicarse. Por lo tanto las reglas de inferencia que representan la base de conocimiento quedan como:
1. Si e es EN y e es CN entonces v es VN.
2. Si e es EN y e es CC entonces v es VN.
3. Si e es EN y e es CP entonces v es VN.
4. Si e es EC y e es CN entonces v es VC.
5. Si e es EC y e es CC entonces v es VC.
6. Si e es EC y e es CP entonces v es VC.
7. Si e es EP y e es CN entonces v es VP.
8. Si e es EP y e es CC entonces v es VP.
9. Si e es EP y e es CP entonces v es VP. La precisión de un FLC depende directamente del número de funciones de membresía que existan en el universo de discurso de cada una de sus entradas y de la forma en que se distribuyan. Esto
68
debido a que el número de reglas posibles en el FLC es la combinación del número de funciones de membresía de cada una de sus entradas. Hasta este momento toda la metodología se ha centrado en el motor derecho de CD, sin embargo, debido a que la dinámica de cada motor (derecho e izquierdo) es distinta, el diseño no puede ser exactamente el mismo; la diferencia radica en las funciones de membresía de salida las cuales se muestran en la Figura 3.12. Como puede apreciarse, el universo de discurso para el motor de CD izquierdo es menor al anterior, con este ajuste se pretende que ambos alcancen la misma velocidad de referencia durante el mismo tiempo. En este caso cuando el motor se encuentre funcionando sin carga, una alimentación de 2.3 V llevará a obtener una frecuencia de 10 Hz a la salida del encoder integrado a este motor.
3.3.5 Simulación del FLC usando Simulink Para verificar el funcionamiento del FLC propuesto para ambos motores de CD se realizó una simulación mediante el uso de Fuzzy Logic Toolbox de MatLab. Esta herramienta permitió diseñar las funciones de membresía de entrada y salida y establecer su universo de discurso entre otras cosas. Uno puede elegir el método de inferencia difusa y el método de defusificación [11] [12]. Para el diseño propuesto se utiliza el método de Mamdani como método de inferencia difusa debido a que es el método más usado por producir resultados aceptables con una estructura simple, intuitiva y también por la interpretabilidad en un lenguaje heurístico de la base de reglas [13][14]. El método de Centroide fue utilizado como método de defusificación. El diagrama de bloques construido para el motor de CD derecho es el que se muestra en la Figura 3.13.
Fig. 3.13 Diagrama de bloques simulación del sistema de control difuso del motor derecho
Fig. 3.12 Funciones de membresía para la variable de salida v del motor de CD izquierdo.
)( v
v
VN VC
-2.3 0 2.3
1 VP
69
Es importante destacar que en el bloque FLC está contenida toda la información de la metodología descrita hasta el momento para este motor, están contenidas las funciones de membresía de las variables de entrada y salida, las reglas de inferencia, los universos de discurso propuestos y las etiquetas propuestas. En el bloque Función de transferencia, se encuentra implementada la función de transferencia para el motor derecho de CD representando el proceso a controlar dentro del sistema de control difuso. Al mismo tiempo se construye en Simulink el sistema de control difuso para el motor izquierdo, los resultados obtenidos de la simulación para ambos motores, son los mostrados en la Figura 3.14.
Los resultados muestran respuestas muy similares, prácticamente iguales, lo cual quiere decir que el diseño del FLC se realizó correctamente ya que se alcanzan los 10 Hz de referencia aproximadamente en tiempos iguales. El siguiente paso es la implementación en hardware FPGA del algoritmo probado con el uso de MatLab.
3.4 IMPLEMENTACIÓN DEL FLC EN EL FPGA El uso de la herramienta Fuzzy Logic Toolbox proporciona la elaboración de una tabla de búsqueda para llevar a cabo la implementación del FLC en algún dispositivo físico [11] [12]. La ventana gráfica o visor de reglas generada por esta herramienta para el motor derecho de CD que permite la elaboración de una tabla de búsqueda es la que se muestra en la Figura 3.15 donde se presenta
el ejemplo para el caso en que las variables de entrada tienen valores 1e y 5.0e
obteniendo un valor 57.0v . Esto es, que el voltaje aplicado al motor derecho de CD será 3.07 V resultado de la suma 2.5 V + 0.57 V. En la esquina inferior derecha se muestran entre corchetes los valores de las variables de entrada que pueden ser modificados y automáticamente se genera una salida a partir de éstas. Esto facilita la creación de una tabla de búsqueda. La Tabla 3.1 ilustra la tabla de búsqueda de los valores de voltaje que deben ser aplicados al motor derecho obtenidos a partir del visor de reglas de la herramienta Fuzzy Logic Toolbox. Este mismo procedimiento se realiza para generar la tabla de búsqueda para el motor izquierdo (Tabla 3.2) apreciándose que el voltaje aplicado para los mismos casos de las variables de entrada es distinto para cada motor debido a que la dinámica de cada uno de ellos no es la misma.
a)
b)
Fig. 3.14 Resultado de la simulación del sistema de control difuso: a) Motor derecho, b) Motor izquierdo
Tiempo [s] Tiempo [s]
Frec
uen
cia
[Hz]
Frec
uen
cia
[Hz]
70
Fig. 3.15 Visor de reglas de la herramienta FuzzyToolboxpara el motor derecho de CD
[1 -0.5]
error=1 cambio_de_error=-0.5 cambio_de_voltaje=0.57
e e
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
-5 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54
-4.5 2.54 1.26 1.26 1.26 1.26 1.27 1.26 1.27 1.26 1.26 1.26 1.26 2.54
-4 2.54 1.26 1.26 1.26 1.26 1.27 1.26 1.27 1.26 1.26 1.26 1.26 2.54
-3.5 2.54 1.26 1.26 1.27 1.26 1.27 1.27 1.27 1.26 1.27 1.26 1.26 2.54
-3 2.54 1.26 1.26 1.26 1.26 1.27 1.26 1.27 1.26 1.26 1.26 1.26 2.54
-2.5 2.54 1.27 1.27 1.27 1.27 1.26 1.27 1.26 1.27 1.27 1.27 1.27 2.54
-2 2.54 1.46 1.46 1.46 1.46 1.46 1.46 1.46 1.46 1.46 1.46 1.46 2.54
-1.5 2.54 1.71 1.71 1.71 1.71 1.71 1.71 1.71 1.71 1.71 1.71 1.71 2.54
-1 2.54 2 2 2 2 2 2 2 2 2 2 2 2.54
-0.5 2.54 2.29 2.29 2.29 2.29 2.29 2.29 2.29 2.29 2.29 2.29 2.29 2.54
0 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54
0.5 2.54 2.78 2.78 2.78 2.78 2.78 2.78 2.78 2.78 2.78 2.78 2.78 2.54
1 2.54 3.07 3.07 3.07 3.07 3.07 3.07 3.07 3.07 3.07 3.07 3.07 2.54
1.5 2.54 3.36 3.36 3.36 3.36 3.36 3.36 3.36 3.36 3.36 3.36 3.36 2.54
2 2.54 3.62 3.62 3.62 3.62 3.62 3.62 3.62 3.62 3.62 3.62 3.62 2.54
2.5 2.54 3.81 3.81 3.81 3.81 3.8 3.81 3.8 3.81 3.81 3.81 3.81 2.54
3 2.54 3.81 3.81 3.8 3.81 3.81 3.8 3.81 3.81 3.8 3.81 3.81 2.54
3.5 2.54 3.8 3.8 3.81 3.8 3.8 3.81 3.8 3.8 3.81 3.8 3.8 2.54
4 2.54 3.81 3.81 3.8 3.81 3.81 3.8 3.81 3.81 3.8 3.81 3.81 2.54
4.5 2.54 3.81 3.81 3.8 3.81 3.81 3.8 3.81 3.81 3.8 3.81 3.81 2.54
5 2.54 3.81 3.81 3.8 3.81 3.81 3.8 3.8 3.81 3.8 3.81 3.8 2.54
Fig. 3.15 Visor de reglas de la herramienta Fuzzy Logic Toolbox para el motor derecho de CD
Tabla 3.1 Tabla de búsqueda para el motor derecho de CD
71
Con la ayuda de las tablas de búsqueda, es posible programar en VHDL el FLC, se introducirá la
información de las tablas en código fuente y posteriormente se descargará al FPGA. El tipo de
sentencias para describir las tablas de búsqueda son las que se muestran en el ejemplo de código
fuente para el motor derecho presentado a continuación [15]:
if (error = -5 and cambio_error = -3) then voltaje:= 2.54; elsif (error = -5 and cambio_error = -2.5) then voltaje:= 2.54; . . . elsif (error = 5 and cambio_error = 3) then voltaje := 2.54; endif;
En el siguiente capítulo se darán más detalles de la implementación del FLC en el FPGA.
e e
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
-5 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37
-4.5 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
-4 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
-3.5 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
-3 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
-2.5 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
-2 2.37 1.36 1.36 1.36 1.36 1.36 1.36 1.36 1.36 1.36 1.36 1.36 2.37
-1.5 2.37 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 2.37
-1 2.37 1.88 1.88 1.88 1.88 1.88 1.88 1.88 1.88 1.88 1.88 1.88 2.37
-0.5 2.37 2.14 2.14 2.14 2.14 2.14 2.14 2.14 2.14 2.14 2.14 2.14 2.37
0 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37
0.5 2.37 2.6 2.6 2.6 2.6 2.6 2.6 2.6 2.6 2.6 2.6 2.6 2.37
1 2.37 2.87 2.87 2.87 2.87 2.87 2.87 2.87 2.87 2.87 2.87 2.87 2.37
1.5 2.37 3.14 3.14 3.14 3.14 3.14 3.14 3.14 3.14 3.14 3.14 3.14 2.37
2 2.37 3.38 3.38 3.38 3.38 3.38 3.38 3.38 3.38 3.38 3.38 3.38 2.37
2.5 2.37 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 2.37
3 2.37 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 2.37
3.5 2.37 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 2.37
4 2.37 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 2.37
4.5 2.37 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 3.56 2.37
5 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37
Tabla 3.2 Tabla de búsqueda para el motor izquierdo de CD
72
CONCLUSIÓN
La propuesta de diseño del FLC descrita a lo largo del capítulo muestra una metodología clara y
sintetizada de las etapas a desarrollar para ser aplicado al control de velocidad de rotación de los
motores de CD del robot móvil. Esto no quiere decir que esta metodología es aplicable solo a
motores de CD, de manera análoga podría ser aplicada a otros procesos donde se requiera un
control de variables físicas tales como la temperatura, humedad, iluminación, entre otras. La
característica principal del diseño de un FLC es que consiste en el desarrollo de un control
automático por medio de expresiones lingüísticas, es decir, emplea el lenguaje natural que un
humano utiliza, para la descripción de la configuración del FLC. El rendimiento y resultados de
diseño de un FLC dependerá en gran medida de qué tan familiarizado se encuentre el diseñador
con el proceso y esto se logra mediante observaciones pacientes, cuidadosas mediciones y un
razonamiento intuitivo del funcionamiento del proceso que se pretende controlar (que en este
caso fueron los motores de CD), en otras palabras, el diseño del FLC variará dependiendo de
persona que lo diseñe y en este trabajo se presentan los resultados de diseño en base al
conocimiento y experiencia obtenida a lo largo de dos años trabajando y analizando estos motores
de CD.
Hoy en día existen herramientas de software que permiten llevar a cabo el diseño de un FLC en
muy poco tiempo, tal es el caso de la herramienta Fuzzy Logic Toolbox la cual fue de gran utilidad
para la obtención de los valores de salida de voltaje a ser aplicado a los motores de CD. Su
ambiente gráfico facilitó el diseño de las funciones de membresía así como los universos de
discurso y reglas de inferencia; uno como diseñador sólo tiene que elegir el método de inferencia
difusa y defusificación y automáticamente esta herramienta generará los valores reales a ser
aplicados a alguna planta o proceso.
A pesar de que todo el diseño se basa en reglas y expresiones lingüísticas, se hizo necesario
representar al proceso a controlar mediante una expresión analítica, esto es, su función de
transferencia, la cual contiene toda la información referente a la dinámica de los motores de CD y
ésta fue utilizada durante todas las simulaciones y pruebas realizadas en Matlab a través de sus
herramientas de diseño del FLC.
73
REFERENCIAS
[1] Antoni Mànuel, Domingo Biel, Joaquim Olivé, “Instrumentación Virtual, Adquisición procesado y análisis de señales”, Politext, Barcelona, 2001. [2] Norman S. Nise, “Sistemas de control para ingeniería”, Editorial Continental, California State Polytechnic University, tercer edición, 2004. [3] LM2907 Tachometer/Speed Switch Building Block Applications, National Semiconductor
[4] LM2907/LM2917 Frequency to Voltage Converter, National Semiconductor
[5] Steven T. Karris “Introduction to Simulink with engineering applications”, Orchard publications, United States of America, 2006 [6] Arturo Téllez, Velázquez, “Arquitectura de un controlador lógico difuso usando lógica combinatoria”, CIC, IPN, México, 2008. [7] Maloney Timothy J., “Electrónica industrial moderna”, Prentice Hall, Quinta edición, 2006 [8] Wildi Theodore, “Maquinas eléctricas y sistemas de potencia”, Prentice Hall, Sexta edición, 2007. [9] Irving L. Kosow Ph. D., “Máquinas eléctricas y transformadores”, Prentice Hall, Segunda edición, 1993. [10] Nguyen, H. T.; Prasad, N. R.; Walker, C. L.; Walker, E. A.; “A First Course in Fuzzy and Neural Control;” Champman & Hall/CRC Editions, 2003 [11] The MathWorks™, “MATLAB, Fuzzy Logic Toolbox, User’s guide”, Release 2008a, version 2. [12] Coronel Lemus Martha Esmeralda, Hernández Reyes José Antonio, “Simulación de sistema difuso para el control de velocidad de un motor de CD”, 2002. [13] Antonio Javier Barragán Piña, “Síntesis de sistemas de control borroso estables por diseño”,
Tesis doctoral, Universidad de Huelva, Mayo 2009.
[14] J. J. Jassbi, Paulo J. A. Serra, “A comparison of Mamdani and Sugeno inference systems for a space fault detection application”, 2002. [15] David G. Maxines, Jessica Alcalá, “VHDL el arte de programar sistemas digitales”, 1° Edición,
Grupo Editorial Patria.
74
CAPÍTULO 4 CONSTRUCCIÓN DEL ROBOT MÓVIL CONTROLADO CON TÉCNICAS DE LÓGICA DIFUSA
4.1 INTRODUCCIÓN
El propósito general del proyecto es resolver el problema que tiene un robot móvil de
configuración guiado diferencial al seguir una recta, es por esto que en este capítulo se describirá
la metodología empleada para la implementación en tiempo real y en FPGA del sistema de control
difuso propuesto en el capítulo anterior. Se explicará el método de monitoreo de la velocidad de
rotación de los motores de CD, esto se realizará haciendo uso del hardware que permite esta
etapa y de los cálculos necesarios para la adquisición de las variables de entrada del FLC.
Se hablará en términos particulares del hardware que compone el prototipo construido como
parte del proyecto de investigación, desde los circuitos electrónicos hasta la construcción
mecánica del mismo. Se trata también el hardware empleado para la adquisición de datos desde
una computadora por puerto serial hasta la transmisión de los datos que son enviados a través de
un transmisor de RF (Radiofrecuencia) mediante modulación FSK. Se presentará el diagrama de
bloques, y su descripción, del prototipo final, resaltando en cuáles de estos se encuentra la
implementación del FLC.
Es importante recalcar, que durante el desarrollo del presente capítulo, los resultados se
detallarán para un solo motor y se mencionará cuando sea necesario, sólo las diferencias de
diseño que existan con el segundo motor, ya que la metodología de implementación en tiempo
real para ambos motores de CD en el FPGA del FLC es la misma.
75
4.2 IMPLEMENTACIÓN DEL SISTEMA DE CONTROL DIFUSO EN EL FPGA Se retomará el diagrama de bloques del sistema de control difuso del capítulo anterior (Figura 3.8) para su implementación a nivel hardware. Analizando el bloque “Motor de CD”, que representa un un motor de CD, tiene acoplado en su rotor una caja reductora de velocidad, y un encoder óptico que permite monitorear la velocidad de rotación del motor y por medio del cual se logra la retroalimentación en lazo cerrado. En la Figura 4.1 se muestra una fotografía del encoder utilizado para el robot móvil montado en el motor de CD. Para determinar la velocidad angular a la que se encuentra rotando la llanta, se hizo uso de sólo un par de sensores (el encoder incluye dos pares de sensores), después, el motor de CD se alimentó con 3 V (el voltaje de alimentación puede ser cualquiera entre su margen de trabajo 0-9 V, ya que la finalidad es medir algún valor de frecuencia a la salida del encoder que se encuentre dentro de estos valores voltaje) obteniéndose como
salida una señal cuadrada periódica en osciloscopio con una frecuencia " "frec de 12.86 Hz. Por
otro lado la frecuencia del reloj del FPGA (la frecuencia de reloj original "" originalclk es de 25.175
MHz) es divida por medio de programación en 10000 partes debido a que la frecuencia original es demasiado alta para nuestro propósito, pudiéndose elegir otro número de partes a dividir. Esta división se realiza implementando la Ecuación 4.1.
(4.1) kHz 5175.210000
MHz 175.25
10000
originalclkclk
Esto da como resultado que la nueva frecuencia del reloj del FPGA sea de 2.5175 kHz.
Posteriormente se diseña un contador ascendente de 8 bits (el número de bits se eligió después
del resultado obtenido por la Ecuación 4.8 de tal manera que se exceda este resultado sin quedar
muy cercano a éste) " "cont que se repite continuamente dentro del FPGA, donde de acuerdo a
esta nueva frecuencia de reloj, la frecuencia de este contador será de 1.258 kHz, esto es, la mitad
de la frecuencia de reloj. En la Figura 4.2 se muestra parte de este contador, señalando sólo los
bits 0cont , 1cont y 2cont junto con la frecuencia de reloj de 2.5175 kHz. Para llegar a la
conclusión que la frecuencia de " "cont es la mitad que la frecuencia de reloj se analiza el bit
menos significativo ( 0cont ) del contador, observándose que su periodo el cual designaremos
como contP resulta ser el doble que el periodo de ""clk [1].
Fig. 4.1 Encoder utilizado para monitorear la velocidad de rotación del motor de CD
76
Si se sabe que la frecuencia de una señal periódica es inversamente proporcional a su periodo
entonces la frecuencia de " "cont será la de mitad ""clk .
Con los resultados obtenidos hasta el momento, podemos obtener el periodo tanto de la señal del
contador contP como la obtenida experimentalmente a la salida del encoder del motor frecP a
partir de los valores de sus frecuencias f . Estos resultados se describen en las Ecuaciones 4.2 y
4.3 respectivamente.
(4.2) ms 794.0kHz 258.1
11
cont
contf
P
(4.3) ms 76.77Hz 86.12
11
frec
frecf
P
A partir de la Ecuación 4.3 se puede deducir que el tiempo en alto de la señal producida por el
encoder del motor de CD es de 38.88 ms, es decir, la mitad del periodo; por otro lado, a partir de
la Ecuación 4.2 y en base al bit menos significativo del contador esquematizado en la Figura 4.2 el
tiempo que le lleva a este contador en contar un valor es la mitad de su periodo, 0.397 ms. Si ahora
dividimos estos resultados, el tiempo en alto entre el tiempo en contar un valor se llega a la
Ecuación 4.4 con unidades adimensionales.
(4.4)
valoruncontarentiempo
altoentiempoconteos
A partir de esta ecuación se puede monitorear la velocidad de rotación de los motores de CD a
partir del número de conteos, esto quiere decir que dentro de la programación del FPGA en VHDL,
cuando la salida del encoder indique un 1 lógico en uno de los pines del FPGA configurado como
entrada, el contador cont se ejecutará, y se detendrá hasta que llegue un cero lógico de parte de
la salida del encoder. Una vez llegado el cero lógico, el valor de cont se guarda en una variable del
código fuente. Este proceso se repite continuamente para así monitorear constantemente la
velocidad de rotación de los motores de CD.
0cont
1cont
2cont
clk
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Fig. 4.2 Parte del contador de 1.258 kHz diseñado en el FPGA.
77
Si aplicamos la Ecuación 4.4 al ejemplo mencionado, se llega a la siguiente expresión.
(4.5) 98ms 397.0
ms 88.38conteos
Esto quiere decir que una frecuencia de 12.86 Hz a la salida del encoder de uno de los motores de
CD, equivale a monitorear 98 conteos dentro de la programación en VHDL en el FPGA, por lo
tanto, es necesario encontrar alguna expresión que relacione el valor de la frecuencia de salida del
encoder con el número de conteos dentro del código fuente para determinar aproximadamente
cuántos conteos equivalen a 10 Hz que es la frecuencia de referencia " "ref a la cual se está
diseñando el FLC. Recordando que el altoentiempo es la mitad del periodo de la señal de
salida del encoder del motor de CD y retomando las Ecuaciones 4.4 y 4.5 se llega a la Ecuación 4.6.
(4.6) ms 397.0
2
frecP
conteos
donde frecP es el periodo de la señal de salida del encoder. Tomando en cuenta que la frecuencia
es el inverso del periodo se llega a la Ecuación 4.7.
(4.7) )ms 397.0)()(2(
1
frecconteos
donde frec es la frecuencia de la señal de salida del encoder del motor de CD. Para determinar el
número de conteos equivalentes a los 10 Hz de referencia requeridos para el diseño del FLC,
sustituimos Hz 10frec en la Ecuación 4.7, llegando a la Ecuación 4.8.
(4.8) 126)ms 397.0)(Hz 10)(2(
1conteos
Esto quiere decir que cuando se haga la codificación del código fuente en VHDL del FLC se utilizará
como referencia 126 conteos y a partir del número de conteos obtenidos durante el tiempo en
alto se obtengan las variables de entrada error e y cambio de error e descritas en el Capítulo 3.
Una vez mostrado cómo el FPGA adquiere las variables de entrada, se ejecuta la tabla de
búsqueda codificada en VHDL obtenida a partir de la herramienta Fuzzy Logic Toolbox del software
MatLab y dependiendo de los valores de las variables de entrada, será el voltaje a ser aplicado a
los motores de CD. Desafortunadamente la salida de voltaje obtenida por el FPGA es de forma
binaria y de muy baja potencia por lo que no puede ser aplicado directamente a los motores de
CD. Aquí se hace necesario algún circuito electrónico capaz de convertir tal información binaria en
algún tipo de señal que pueda ser aplicada a los motores de CD. Se utilizó un DAC (convertidor
78
2R
2R
2R
2R
2R
2R
2R
2R
R
R
R
R
R
R
R
2R
OPAM
R Vcc
b0
b1
b2
b3
b4
b5
b6
b7 Vout
digital-analógico) de 8 bits de configuración escalera R-2R para dicho propósito, el cual está
esquematizado en la Figura 4.3 [2].
(4.9) 256
VccnVout
donde n es la sumatoria del peso en decimal de los bits que están a uno. La salida de este convertidor estará conectada a una etapa de potencia compuesta por un arreglo de transistores para que de esta manera el motor de CD reciba más potencia de acuerdo al valor de las variables de entrada manteniendo una frecuencia de 10 Hz propuesta como referencia a la salida de su encoder. El circuito electrónico completo para un motor de CD y Receptor se muestra en la Figura 4.4 donde se detallan todos los componentes electrónicos utilizados para la implementación del FLC a nivel hardware en tiempo real incluyendo el receptor de RF (radiofrecuencia) HM-R de cuatro bits debido a que el robot móvil será teleoperado por un usuario a distancia. El mismo circuito se utiliza para el segundo motor de CD utilizándose otros pines del FPGA distintos a los mostrados en esta figura. Se usó el kit (University Program 2) UP2 el cual contiene un FPGA de la familia FLEX 10K del fabricante Altera (el EPF10K70RC240-4); el software donde se programó el código en VHDL es el MAX-PLUS II [3].
Fig. 4.3 DAC de configuración escalera R-2R
79
DIP16
2 3
16
4 51 7
14
8
11
12
10
15
6
13
9
100kΩ 100kΩ 100kΩ 100kΩ
220Ω
DSUB25MDIP16
2 3
16
4 51 7
14
8
11
12
10
15
6
13
9
100kΩ 100kΩ 100kΩ 100kΩ
220Ω
BD135
BD136
9V
BD135
BD136
9V
DC_MOTOR_ARMATURE
A
5V
K
1mH 1 Ω
BC547A
10kΩ 5V
HDR1X3
5V
DIP18
2 316
4
17
5118
7
14
811
9
12
15
613
10
HDR1X4
5V
47kΩ
OP27GP
3
2
4
7
6
81
OP27GP
3
2
4
7
6
81
10kΩ
10kΩ
10kΩ
10kΩ
10kΩ
10kΩ
10kΩ
10kΩ
5kΩ
5kΩ
5kΩ
5kΩ
5kΩ
5kΩ
5kΩ
10kΩ
5kΩ 5kΩ
5kΩ
-9V-9V
9V 9V
5V 5V
1N4148 1N4148
1N4148 1N4148
TLP521-4
HM-R
HT12D
Fig. 4.4 Circuito electrónico utilizado para la implementación del FLC a nivel hardware para un motor de CD y Receptor
EPF1
0K
70R
C2
40-
4
TLP521-4
80
4.3 DIAGRAMA DE BLOQUES DEL PROYECTO Una vez explicada la electrónica asociada al sistema de control difuso, en la Figura 4.5 se muestra el resto de los módulos que componen el proyecto de investigación. Los bloques de color verde corresponden al sistema electrónico empleado en el Robot móvil y que es lo que se ha descrito hasta el momento junto con el bloque motores de CD.
Por otra parte se encuentra el Usuario, éste enviará las órdenes al robot móvil para indicarle en
qué dirección o qué movimientos deberá de ejecutar. Para enviar las órdenes, el usuario cuenta
con una Interfaz gráfica por computadora mostrada en la Figura 4.6, la cual fue programada en
Visual Basic para facilitar la manipulación del robot móvil [4]. Si se desea que el robot móvil se
mueva hacia adelante, las llantas que tienen los motores de CD girarán en un mismo sentido de tal
manera que se desplace en esta dirección; si se desea que el desplazamiento sea hacia atrás, las
llantas girarán en sentido opuesto a cuando el móvil se desplaza hacia adelante; si se requiere que
el robot móvil gire hacia la derecha, la llanta izquierda girará en el mismo sentido cuando el
prototipo se desplaza hacia adelante y la llanta derecha girará en el mismo sentido cuando el
prototipo se desplaza hacia atrás; y finalmente cuando se desee girar el robot móvil hacia la
izquierda las llantas girarán en sentido opuesto a cuando el robot móvil gira hacia la derecha. En
todos los casos de direccionamiento, la velocidad de rotación de las llantas está controlada por el
FLC siguiendo la frecuencia de referencia propuesta de 10 Hz y el prototipo responde a las órdenes
del usuario sólo cuando se encuentra oprimido el botón de la interfaz gráfica correspondiente al
movimiento deseado. Posteriormente es necesaria una etapa de adquisición de datos por
computadora por lo que el siguiente bloque dentro de la etapa de Usuario es una Tarjeta de
adquisición de datos, por medio de ésta serán recibidos los datos enviados por el usuario a través
Fig. 4.5 Diagrama de bloques del proyecto.
81
DIP28
2
19
3
16
4
17
5
20
1
18
7 14
8 11
9 12
10
6 13
21
22
23
24
25
26
27
28
15
DIP16
2 3
16
4 51 7
14
8
11
12
10
15
6
13
9
DIP18
2 316
4
17
5118
7
14
811
9
12
15
613
10
5V
1kΩ
1uF
1uF
1uF
1uF
5V
HDR1X3
BC547A
5V
5V
1MΩ
BC547A BC547A BC547A
5V
68kΩ
330Ω
330Ω 330Ω 330Ω 330Ω
68kΩ68kΩ 68kΩ
5V 1uF
DSUB9F
5V
330Ω 330Ω330Ω
5V 5V 5V
del puerto serial (se usa un conector DB9 para realizar la conexión por puerto serial) en forma
binaria para posteriormente ser enviados a una etapa llamada Transmisor el cual enviará ésta
información por Radio Frecuencia al módulo Receptor que se encuentra en el robot móvil, la
modulación FSK bajo la cual funcionan estos módulos brinda inmunidad a interferencias, algo de
gran utilidad cuando el prototipo sea sometido a ambientes no controlados. El circuito electrónico
correspondiente a los bloques Tarjeta de adquisición de datos y Transmisor es el que se muestra
en la Figura 4.7.
Fig. 4.6 Interfaz gráfica por computadora para el envío de órdenes al robot móvil.
Fig. 4.7 Circuito electrónico para la Tarjeta de adquisición de datos y Transmisor.
HT12E
MAX 232
ATMEGA8
DB9
HM-T
82
4.4 CÁLCULOS PARA LA ELECCIÓN DE LOS MOTORES DE CD La decisión del tipo de motores utilizados en este proyecto se basa en cuáles serán los límites de operación del prototipo, esto no quiere decir que siempre se encontrará funcionando en estos máximos márgenes (para el diseño se refiere a la masa y velocidad máxima), esto proporciona datos de la potencia que debe utilizarse y que deben de desarrollar los motores de CD. Si los motores de CD elegidos exceden los requerimientos del prototipo esto se traduce en un inversión económica excesiva en la compra de los motores y un consumo excesivo de energía; en caso contrario, el prototipo no cumplirá con los requerimientos mínimos requeridos para la aplicación a la que fue diseñado el robot móvil. Para calcular la potencia de los motores de CD requerida para el robot móvil propuesto, se comienza proponiendo la masa máxima que el prototipo podrá mover y la velocidad máxima tangencial que desarrollará el prototipo [5]. Como masa máxima se propone kg 2max m y
m/s 28.0max v como velocidad máxima tangencial. Posteriormente se tiene:
( )( ), (4.10)rT F r
donde T es el torque del motor de CD, F es la fuerza de arrastre y m 02.0rr es el radio de la
llanta del motor de CD. El valor de F fue medido de manera experimental haciendo uso de un
dinamómetro midiendo la fuerza necesaria para mover el robot móvil cuando éste tiene una masa
de 2 kg (la estructura del robot móvil junto con los circuitos electrónicos y batería tienen una masa
de 0.7 kg así que se le agregó una masa de 1.3 kg para sumar 2 kg) obteniéndose el siguiente
resultado:
(4.11) N 19F
Sustituyendo la Ecuación 4.11 en la Ecuación 4.10 se tiene:
(4.12) mN 38.0)m 02.0)(N 19( T
Puesto que para desplazar el robot móvil se utilizan dos motores, este último resultado es dividido
entre 2 para obtener el torque requerido para cada motor, es decir
(4.13) mN 19.0 T
Posteriormente se procede a calcular la potencia del motor P para cada motor dada por la
Ecuación 4.14:
(4.14) ))(( wTP
donde w es la velocidad angular de la llanta del motor que se calcula a partir de:
83
(4.15) max
rr
vw
Sustituyendo los valores de maxv y rr en la Ecuación 4.15 se llega a un resultado expresado en
rad/s debido a que el radian es adimensional, rad [mm-1]:
(4.16) rpm 7.133rad/s 14m 02.0
m/s 28.0w
La conversión a rpm de la Ecuación 4.16 se obtiene a partir de la equivalencia mostrada por la
Ecuación 4.17:
)17.4( rpm 60rad/s 28.6
Sustituyendo el valor de w y T para un sólo motor en la Ecuación 4.14, se obtiene la potencia
mecánica:
(4.18) W 66.2)rad/s 14)(mN 19.0( P
Se hace la consideración que esta potencia representa el 70% debido a que existe una pérdida de
potencia en la caja reductora de velocidad, por lo cual, añadiendo el restante 30% tendremos la
potencia deseada deseadaP :
(4.19) W 8.37.0
PPdeseada
Debido a que si un motor siempre se encuentra funcionando a su máxima capacidad, se acortaría
su tiempo de vida útil, por tanto, se debe seleccionar un motor cuya potencia desarrolle entre 1.5
y 2 veces la potencia deseada, a esta potencia se le denominará potencia final finalP
(4.20) W 6.7 W7.5 25.1 finaldeseadafinaldeseada PPPP
Cada motor utilizado para el prototipo desarrolla potencia de W6.9 (los detalles técnicos se dan
en el capítulo 1) calculados a partir de una corriente de arranque de 1.6 A cuando se alimenta con
6 V a partir de la ecuación de potencia eléctrica.
(4.21) W 6.9)A 6.1)(V 6( VIPot
donde V es el voltaje aplicado al motor de CD e I es la corriente del motor. Esto quiere decir que
los motores empleados en el robot móvil tienen la potencia suficiente para desplazar como
máximo una masa de kg 2 y desplazarla a una velocidad máxima tangencial de m/s 28.0 .
84
4.5 ESTRUCTURA MECÁNICA DEL ROBOT MÓVIL
El prototipo final consta de dos plataformas distribuidas de manera paralela una encima de la otra
separadas por unos soportes metálicos con el fin de contar con dos superficies para montar el
FPGA y los circuitos electrónicos para su funcionamiento. Cuenta con una rueda parlante en la
parte delantera y dos ruedas traseras (cada una conectada a los motores de CD) las cuales le
brindan movimiento al robot móvil. En la figura 4.8 se ilustra un esquema del prototipo final
señalándose sus dimensiones en centímetros.
Información más detallada sobre las dimensiones de las ruedas del prototipo se detallan en la
Figura 4.9 [6] [7].
Finalmente, en la Figura 4.10 se muestran fotografías del prototipo final construido en el
laboratorio. En las imágenes se aprecia que el FPGA y las baterías se encuentran en la plataforma
superior mientras que el resto de la circuitería se encuentra en la plataforma inferior.
4 cm
2.1 cm 0.8 cm
1.3 cm
2 cm
1.9 cm
a) b)
Fig. 4.8 Estructura mecánica del robot móvil.
Fig. 4.9 Dimensiones de las ruedas: a) Parlante y b) Traseras.
a) b)
85
Fig. 4.11 Fotografías del prototipo final
Fig. 4.10 Prototipo final tomando las consideraciones estudiadas en el proyecto de investigación.
86
CONCLUSIÓN
Con la construcción de los circuitos electrónicos descritos a lo largo de este capítulo, el FLC
propuesto para el control de velocidad de los motores de CD no sólo quedará a nivel simulación en
software Matlab, sino que también se podrá llevar a cabo de manera práctica. Además de la
implementación del FLC en el FPGA, el resto del hardware descrito permite la realización del
prototipo final propuesto en el objetivo general así como la interfaz gráfica utilizada por el usuario
a que manipulará el robot móvil a distancia.
Los cálculos propuestos permiten monitorear la velocidad de rotación de los motores de CD por
medio de la información proporcionada a la salida de los encoders, y por consiguiente la obtención
de las variables de entrada del FLC e y e . Por otra parte, con el uso del convertidor digital
analógico y a través de una etapa de potencia es posible aplicar a los motores de CD el voltaje en
forma binaria a la salida del FPGA a partir de la tabla de búsqueda programada en VHDL generada
por el Fuzzy Logic Toolbox donde se diseñó el FLC a nivel software descrito en el capítulo 3.
Los cálculos desarrollados para la elección de los motores de CD permitieron realizar un estimado
de la potencia a ser desarrollada por estos a partir de los parámetros iniciales velocidad máxima y
masa máxima para que por un lado no se haga un gasto económico excesivo y por otro cumpla los
parámetros iniciales propuestos para desplazar sin dificultad la estructura mecánica sobre la cual
se encuentra toda la circuitería desarrollada para su funcionamiento.
87
REFERENCIAS
[1] David G. Maxines, Jessica Alcalá, “VHDL el arte de programar sistemas digitales”, 1° Edición,
Grupo Editorial Patria.
[2] José L. Martin Gonzalez, Jagoba Arias Pérez, “Problemas resueltos de electrónica digital”, Publicaciones Delta, Madrid España, 2007. [3] James O. Hamblen and Michael D. Furman, “Rapid Prototyping of Digital Systems: a tutorial approach”, 2° Edition, Kluwer Academic Publishers. [4] Ramírez Ramírez J. Felipe, “Aprenda Visual Basic practicando”, Pearson Prentice Hall, México, 2001. [5] http://www.micromo.com/technical-library.aspx, 2011 [6] http://www.pololu.com/catalog/product/1090, 2012 [7] http://www.pololu.com/catalog/product/956, 2012
88
CAPÍTULO 5 RESULTADOS
5.1 INTRODUCCIÓN
El objetivo principal del proyecto es solucionar el problema que tiene un robot móvil de
configuración guiado diferencial al desplazarse en una línea recta, es por esto que en este capítulo
se presentan los resultados obtenidos del FLC diseñado con la herramienta Fuzzy Logic Toolbox y
Simulink de Matlab e implementado en un dispositivo programable FPGA para el control de
velocidad de los motores de CD que proporcionan movimiento al robot móvil haciéndolos rotar a
la misma velocidad.
Se realizaron una serie de pruebas de laboratorio al robot móvil indicándole desde la interfaz
gráfica el desplazamiento hacia adelante en línea recta midiendo parámetros tales como la
velocidad tangencial (parámetro que no es objetivo de este trabajo), y la desviaciones del móvil al
seguir una línea recta para compararlos con los parámetros medidos sin FLC que controle la
velocidad de rotación de las llantas del robot móvil. Con estos resultados comparativos se
pretende probar el mejor funcionamiento al utilizar un control FLC en los motores para este tipo
de robot móvil.
Finalmente se realizó un análisis estadístico de las mediciones tomadas para justificar
cuantitativamente el comportamiento de los parámetros medidos. Se muestran representaciones
gráficas de la distribución de los datos obtenidos.
89
5.2 DESCRIPCIÓN DE LAS PRUEBAS DEL ROBOT MÓVIL Las pruebas realizadas consisten en que el usuario envía la instrucción al robot móvil para que éste
se desplace hacia adelante en línea recta recorriendo una distancia de 2 m. Las mediciones se
realizaron sobre el piso del laboratorio (las condiciones del ambiente no son totalmente
controladas debido a las irregularidades que existen en el suelo), esto con el objetivo de que los
resultados sean lo más apegados a la realidad, sobre el cual se trazó la línea recta a seguir por el
prototipo realizando 20 repeticiones. En la Tabla 5.1 se muestran los resultados obtenidos de las
mediciones realizadas, mostrándose la desviación que tiene el robot móvil de la recta por cada
metro de desplazamiento, así como también los resultados para el caso de no contar con un FLC
que controle la velocidad de rotación de los motores de CD.
Medición Desviación de la recta por cada metro con FLC [cm]
Desviación de la recta por cada metro sin FLC [cm]
1 2.8 9.7
2 3.0 10.3
3 2.9 10.4
4 3.4 9.6
5 2.6 9.5
6 2.7 10.5
7 3.2 9.8
8 3.1 10.3
9 3.2 10.1
10 2.8 10.6
11 2.6 9.9
12 2.9 9.6
13 3.1 10.0
14 2.8 9.8
15 3.3 10.2
16 3.0 10.1
17 2.5 9.4
18 3.2 10.4
19 2.8 10.2
20 2.6 9.7
Es importante mencionar que la velocidad desarrollada por el prototipo durante estas pruebas fue
de 10 cm/s (para esta medición se tomó un video durante su desplazamiento para una distancia
conocida cualquiera y se tomó el tiempo indicado por el reproductor de video para los segundos
en recorrer esta distancia) y que la desviación del robot móvil de la recta ocurría tanto hacia la
izquierda como a la derecha de manera aleatoria. Un análisis estadístico se presenta en base a las
mediciones para una mejor observación de la distribución de las mismas, esto es, mediante una
Tabla 5.1 Resultados de las mediciones de la desviación de la recta seguida por el robot móvil sobre piso
90
distribución normal. Para llegar a una distribución de este tipo es necesario conocer la media o
promedio y la varianza de los datos recopilados [1].
La media o promedio x es calculado a partir de la suma de todos los datos y dividir el resultado
entre el número total de datos, esto es:
(5.1) N
xx
N
xxxxx
i
N
...321
donde N es el número de datos con 1,2,3.... .i N
Si se aplica la Ecuación 5.1 a las mediciones de desviación del robot móvil de la recta con FLC se
obtiene la media de estos datos:
(5.2) 2.92
20
5.58
20
6.2...9.238.2
FLC
FLC
x
x
De manera análoga para las mediciones de desviación del robot móvil de la recta sin FLC, se
obtiene la media de estos datos observándose una mejora del 70.8% con el uso del FLC:
(5.3) 10
20
1.200
20
7.9...4.103.107.9
sin
sin
FLC
FLC
x
x
La varianza 2 es definida como el cuadrado de la desviación estándar ; la desviación estándar
es una medida de la dispersión de los datos alrededor de la media o promedio. La desviación
estándar esta descrita por la Ecuación 5.4.
2 2 2 2
1 2 3
2
1
( ) ( ) ( ) ... ( )
( )
. (5.4)
N
N
i
i
x x x x x x x x
N
x x
N
Si se aplica la Ecuación 5.4 a las mediciones de desviación del robot móvil de la recta con FLC se
obtiene la desviación estándar de estos datos:
91
(5.5) 0.2520.067
FLC
FLC
20
)92.26.2(...)92.29.2()92.23()92.28.2( 2222
De manera análoga para las mediciones de desviación del robot móvil de la recta sin FLC, se
obtiene la desviación estándar de estos datos:
(5.6) 347.0126.0
20
)107.9(...)104.10()103.10()107.9(
sin
2222
sin
FLC
FLC
Por lo tanto, la varianza para cada uno de los casos es:
(5.7) 067.02 FLC
(5.8) 126.02sin FLC
A partir de las medias FLCx y FLCxsin la varianzas 2FLC y
2sin FLC es posible obtener una
distribución normal para cada uno de los dos casos mediante la siguiente función:
(5.9) 2
2
2
)(
22
1)(
xx
exf
Para el caso de las mediciones de desviación del robot móvil de la recta con FLC se tiene la
distribución normal de la cual nos permite conocer la probabilidad de que se dé determinada
magnitud (las desviaciones del robot móvil de la recta) en determinados puntos de esta
distribución de la Figura 5.1.
Fig. 5.1 Distribución normal de las mediciones de la desviación del robot móvil de la recta con FLC sobre piso
x x x 2.66 2.92 3.17
92
Lo mismo se realizó pero para las mediciones de desviación del robot móvil de la recta sin FLC
mostrado en la Figura 5.2
En ambas distribuciones normales se aprecia el comportamiento de los datos medidos
señalándose la media x , así como el intervalo de x a x en el cual se encuentra
contenido el 68% de las mediciones realizadas [2].
Debido a que estos resultados fueron realizados sobre una superficie con muchas irregularidades,
la hipótesis es que si se realizan las mismas pruebas pero ahora en una superficie con menos
imperfecciones, los resultados deben presentar una mejoría. Es por esto que el siguiente
experimento consistió en usar una mesa del laboratorio que presente una superficie más plana
que la del piso del laboratorio. La medición se realizó para una distancia de 1.5 m ya que las
dimensiones de la mesa no permitieron realizarlo para los 2 m de distancia tal como se hizo con la
prueba en el suelo del laboratorio. Los resultados obtenidos para estas pruebas son los mostrados
en la Tabla 5.2 para 20 mediciones. Los resultados demuestran una mejoría para ambos casos,
con y sin FLC, confirmándose la hipótesis planteada. Sin embargo se observan aún más mejoras
para el caso con FLC disminuyéndose en promedio la desviación del robot móvil de la recta casi 3
veces (de 2.92 cm a 0.98 cm) y casi 2 veces (de 10 cm a 6.1 cm) para el caso sin FLC. Estos
resultados se pueden apreciar de manera gráfica por medio de las funciones de distribución
normal mostradas en las Figuras 5.3 y 5.4 con FLC y sin FLC respectivamente.
Fig. 5.2 Distribución normal de las mediciones de la desviación del robot móvil de la recta sin FLC sobre piso
x x x 9.65 10 10.34
93
Medición Desviación de la recta por cada metro con FLC [cm]
Desviación de la recta por cada metro sin FLC [cm]
1 1.2 5.7
2 0.3 5.9
3 1.0 6.5
4 1.4 5.8
5 0.8 6.4
6 1.1 6.3
7 1.3 6.4
8 0.7 6.0
9 0.6 5.9
10 1.4 6.1
11 0.9 5.5
12 0.3 5.7
13 1.3 6.6
14 1.2 6.5
15 0.8 5.7
16 0.6 6.6
17 1.2 6.3
18 0.6 5.8
19 1.1 6.5
20 0.7 5.9
Tabla 5.2 Resultados de las mediciones de la desviación de la recta seguida por el robot móvil sobre mesa
Fig. 5.3 Distribución normal de las mediciones de la desviación del robot móvil de la recta con FLC sobre mesa
x x x 0.59 0.92 1.25
94
Fig. 5.4 Distribución normal de las mediciones de la desviación del robot móvil de la recta sin FLC sobre mesa
x x x 5.76 6.1 6.44
95
CONCLUSIÓN
El FLC diseñado con la herramienta Fuzzy Logic Toolbox del software Matlab aplicado al control de
velocidad de los motores de CD disminuyó la desviación del robot móvil al seguir una línea recta, la
diferencia promedio entre las desviaciones alcanzadas con y sin FLC fue aproximadamente de 7 cm
(10 cm de desviación sin FLC contra 2.92 cm con FLC) sobre el piso del laboratorio y una diferencia
promedio de aproximada de 6 cm (6.1 cm de desviación sin FLC contra 0.92 cm con FLC) sobre la
mesa con una superficie más plana, demostrándose una mejoría a la problemática de seguimiento
de una línea recta que presenta la configuración del robot móvil guiado diferencial aún cuando la
distribución del peso del prototipo no es uniforme. Esto facilita la manipulación del prototipo por
parte del usuario, debido a que el número de ocasiones que tendrá que estar re-direccionando al
robot móvil a seguir una recta será menor respecto a que si los motores de CD no contaran con la
propuesta de control FLC. Sin embargo, la desviación del robot móvil al seguir una línea recta no se
eliminó por completo, debido a que no sólo una desigualdad en la velocidad de rotación de las
llantas provoca que el prototipo no pueda lograr este objetivo, también existen otros factores que
impedirán lograr que el robot móvil pueda seguir una línea recta, tales como la superficie donde
se desplaza ya que presenta irregularidades; el radio de las llantas, que aún garantizando que
ambas roten a la misma velocidad una ligera diferencia en sus tamaños provocará una desviación;
los obstáculos con los que se encuentra la llanta parlante e incluso la misma construcción del
robot móvil.
El análisis estadístico permitió conocer mejor el comportamiento del robot móvil con y sin FLC,
esto nos da nuevas ideas de parámetros a considerar ya que entre mejor se conozca el proceso o
la planta a controlar en base a la experiencia propia del diseñador (como lo indica la teoría de
lógica difusa), se garantiza un mejor desempeño del FLC.
96
REFERENCIAS
[1] David S. Moore, “Estadística básica aplicada”, España, 2° Edición, 2004. [2] Alberto Luceño, Francisco Javier González, “Métodos Estadísticos para medir, describir y controlar la variabilidad”, Universidad de Cantabria, Textos universitarios, 2006.
97
CAPÍTULO 6 CONCLUSIONES
Los robots móviles son una herramienta de mucha utilidad debido a que permiten realizar tareas
que para un humano sería difícil de realizar o que incluso pueden poner en riesgo la vida. Típicas
aplicaciones que se dan son la exploración de lugares pequeños o de difícil acceso para el hombre,
transporte de material peligroso e inspección de lugares cuando a éstos se les monta alguna
cámara de video. Existe una variedad de configuraciones de robots móviles en el que las
particularidades de cada uno lo hacen apropiado para determinada aplicación, pero también
presentan desventajas características que se tienen que tratar para lograr el objetivo final. En este
trabajo se trabaja con un robot móvil configuración guiado diferencial con llantas el cual presenta
el problema de poder seguir o desplazarse en línea recta, es decir, las llantas que proporcionan
movimiento al robot móvil no rotan a la misma velocidad aun cuando se les aplique el mismo
voltaje de alimentación a sus motores, es por esto que en este trabajo se presenta la metodología
para resolver este problema aplicando un algoritmo de control difuso (FLC) para lograr que ambas
llantas roten a la misma velocidad.
Existen una variedad de técnicas de control para resolver este problema, sin embargo en este
trabajo se diseña un FLC debido a que su diseño e implementación exige una menor complejidad,
esto quiere decir que no se hace uso de herramientas matemáticas abstractas para su realización;
su diseño está basado en reglas lingüísticas; su configuración consiste en una serie de
declaraciones “Si-Entonces” en las que el diseñador vacía su conocimiento y experiencia acerca del
proceso que se quiere controlar.
Para el diseño del FLC en este trabajo, la etapa que requirió mayor empleo de análisis matemático
fue durante la obtención de la función de transferencia de los motores de CD, esto se hizo
necesario debido a que durante la simulación del sistema de control difuso en Simulink, de alguna
manera se tenían que representar a los motores de CD ya que la función de transferencia contiene
toda la información referente a la dinámica de un proceso. Una vez logrado esto, el resto del
diseño del FLC consistió en la proposición reglas lingüísticas que de acuerdo al conocimiento que
se tenía acerca de los motores con los que trabaja el robot móvil haciendo uso de la herramienta
Fuzzy Logic Toolbox. Las reglas lingüísticas reportadas en esta tesis no fueron las primeras que se
propusieron, es decir, a lo largo de del proceso del diseño del FLC se fue adquiriendo más
experiencia y conocimiento sobre el comportamiento de los motores del robot móvil lo cual
resultó en una constante mejora su diseño. Básicamente durante este proceso continuamente se
modificaban el número de reglas y proposiciones lingüísticas, el tipo de funciones de membresía y
los universos de discurso de las variables de entrada y salida con el fin de eliminar el error en
estado estacionario con el menor tiempo posible. Es válido mencionar que conforme se desgastan
cada una de los componentes de prototipo será necesario un reajuste de los parámetros
mencionados con el fin de mantener los mismos resultados presentados en este trabajo o incluso
98
podrían mejorarse más debido a un mayor tiempo de interacción de uno como diseñador con el
robot móvil conociéndose mejor su comportamiento.
Es importante resaltar que el FLC es de tipo PI, éste fue elegido debido a que el termino integral es
el que elimina el error en estado estacionario; el tiempo en lograrlo es mayor en comparación con
un controlador PID difuso que contiene el termino derivativo, pero en este trabajo sólo interesa
que las llantas roten a la misma velocidad y lleguen a la velocidad de referencia en el mismo
tiempo para que el robot móvil consiga seguir una línea recta con la menor desviación posible.
La implementación del sistema de control difuso a nivel hardware fue quizás la etapa más tediosa
de este trabajo, pero los circuitos electrónicos empleados responden a los valores de entradas y
salida que contiene en FLC.
Finalmente, durante las pruebas realizadas al prototipo sobre el piso del laboratorio y sobre una
mesa con una superficie más plana, las mejoras fueron notables con FLC que sin FLC debido a que
la velocidad de rotación de cada uno de los motores de CD se monitorea constantemente
aplicando un voltaje que depende del valor de las variables de entrada del FLC diseñado para
mantener una frecuencia de referencia de 10Hz en cada uno de los encoder integrados a cada
motor de CD. Las diferencias en las mejoras de resultados sobre el piso del laboratorio comparado
con los obtenidos en la mesa llevaron a la conclusión que no sólo la velocidad de rotación de las
llantas que proporcionan el movimiento al robot conlleva a no poder seguir una línea recta, sino
también factores como la superficie donde se desplaza, el radio de las llantas, los obstáculos con
los que se encuentra la llanta parlante e incluso la misma construcción del robot móvil no
permitirán que el prototipo logre desplazarse en línea recta. Debido a esto, los resultados se
presentan con un análisis estadístico haciendo uso de la distribución normal para observar el
comportamiento de los datos obtenidos ya que los valores de las mediciones fueron aleatorios y
afectados por los factores ya mencionados.
Las mediciones presentadas en esta tesis son comparables con los obtenidos por otros trabajos de
investigación encontrados en la literatura científica, como lo es el robot móvil configuración
guiado diferencial desarrollado en University of Girona publicada por Jordi Ferrer, Ningsu Luo, en
su trabajo de tesis “Local model predictive control experiences with differential driven wheeled
mobile robots” en 2009, en el cual presentan como resultado final una desviación promedio del
robot móvil al seguir una línea recta de 0.9 cm para una distancia recorrida de 1.3 m, utilizándose
control predictivo para monitorear la velocidad de rotación de los motores del prototipo. En
nuestro trabajo de investigación se reporta una desviación promedio de 0.92 cm para una
distancia recorrida de 1 m. Además también se tiene el caso respecto a otra universidad, tal es el
caso de Jaume-I University en la publicación titulada “Going straight: a Lego-based minirobot drive
system” por E. Cervera en 2001 en el que reportan una desviación promedio del robot móvil al
seguir una línea recta de 5 cm para una distancia recorrida de 1 m haciendo uso de un controlador
PI clásico para el monitoreo de la velocidad de rotación de sus motores. Con estas comparativas se
demuestra la calidad del trabajo desarrollado en esta tesis.
99
TRABAJO A FUTURO
Tomar en cuenta durante el diseño del FLC factores tales como la superficie donde se
desplaza, el radio de las llantas, los obstáculos con los que se encuentra la llanta parlante e
incluso la misma construcción del robot móvil ya que provocan que el robot móvil no siga
una línea recta, esto con el objetivo de disminuir error que se tiene hasta el momento.
Realizar pruebas tomando como parámetro para modificar la velocidad de rotación de los
motores de CD la corriente que circula a través de ellos y comparar resultados con los
obtenidos en este trabajo de investigación en el cual se utilizó el voltaje aplicado en sus
terminales para modificar la velocidad de rotación.
Llevar a cabo más pruebas de laboratorio realizando un análisis con distintas velocidades
para conocer mejor el comportamiento del sistema, determinándose a cuántas
revoluciones por minuto se obtienen mejores resultados, y a partir de esto proponer el
tipo de funciones de membresía, universos de discurso, el número de reglas y las
proposiciones lingüísticas que logren disminuir aún más la desviación del robot móvil al
seguir una línea recta.
100
ANEXO 1
A1.1 CÓDIGO FUENTE PARA EL DISEÑO DE LA INTERFAZ GRÁFICA EN
VISUAL BASIC Private Sub Command1_Click() MSComm1.Output = "a" End Sub Private Sub Command2_Click() MSComm1.Output = "b" End Sub Private Sub Command4_Click() MSComm1.Output = "c" End Sub Private Sub Command3_Click() MSComm1.Output = "d" End Sub Private Sub Command8_Click() MSComm1.Output = "e" End Sub Private Sub Command5_Click() MSComm1.PortOpen = True End Sub Private Sub Command6_Click() End End Sub
101
A1.2 CÓDIGO FUENTE DEL MICROCONTROLADOR ATMEGA8 PARA LA
COMUNICACIÓN SERIAL #include<avr/io.h> #include<avr/interrupt.h> unsigned char data; void init_USART(void) UBRRL=25; UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE); UCSRC=(1<<URSEL)|(1<<USBS)|(3<<UCSZ0); ISR(SIG_UART_RECV) data=UDR; switch(data) case('a'):PORTC=0b00000001; break; case('b'):PORTC=0b00000010; break; case('c'):PORTC=0b00000100; break; case('d'):PORTC=0b00001000; break; case('e'):PORTC=0b00001001; break; int main(void) DDRC=255; sei(); init_USART(); while(1);
102
A1.3 CÓDIGO FUENTE EN VHDL library ieee; library work; USE IEEE.STD_LOGIC_1164.all; use ieee.std_logic_1164.std_ulogic; USE IEEE.STD_LOGIC_ARITH.all; USE IEEE.STD_LOGIC_UNSIGNED.all; USE IEEE.STD_LOGIC_SIGNED.all; ENTITY Tabla_proporcional_integral IS PORT ( a, b : in std_logic; Q : inout std_logic_vector(7 downto 0); Q1 : inout std_logic_vector(7 downto 0); voltaje1 : out std_logic_vector (7 downto 0); voltaje2 : out std_logic_vector (7 downto 0); vect_control : in std_logic_vector (3 downto 0); rele1 : out std_logic; rele2 : out std_logic; ------------------------------------------------------ clock_25Mhz : IN STD_LOGIC; clock_gde : OUT STD_LOGIC; clock_2 : OUT STD_LOGIC; clock_3 : OUT STD_LOGIC; clock_4 : OUT STD_LOGIC; clock_5 : out std_logic); END Tabla_proporcional_integral; ARCHITECTURE a OF Tabla_proporcional_integral IS SIGNAL count_gde: STD_LOGIC_VECTOR(15 DOWNTO 0); signal count_2, count_3, count_4, count_5: std_logic_vector (2 downto 0); signal clock_intgde,clock_int2, clock_int3, clock_int4, clock_int5: std_logic; BEGIN PROCESS BEGIN WAIT UNTIL clock_25Mhz'EVENT and clock_25Mhz = '1'; IF count_gde < 99 THEN count_gde <= count_gde + 1; ELSE count_gde <= "0000000000000000"; END IF; IF count_gde < 12 THEN clock_intgde <= '0'; ELSE clock_intgde <= '1'; END IF; clock_gde <= clock_intgde; clock_2 <= clock_int2; clock_3 <= clock_int3; clock_4 <= clock_int4; clock_5 <= clock_int5; END PROCESS; -- Divide by 10 PROCESS BEGIN WAIT UNTIL clock_intgde'EVENT and clock_intgde = '1'; IF count_2 /= 4 THEN count_2 <= count_2 + 1;
103
ELSE count_2 <= "000"; clock_int2 <= NOT clock_int2; END IF; END PROCESS; -- Divide by 10 PROCESS BEGIN WAIT UNTIL clock_int2'EVENT and clock_int2 = '1'; IF count_3 /= 4 THEN count_3 <= count_3 + 1; ELSE count_3 <= "000"; clock_int3 <= NOT clock_int3; END IF; END PROCESS; tabla1: process (a) --motor derecho variable Q_ent: integer; variable salida_ent : integer:=0; variable error_actual: integer:= 0; variable cambio_error : integer:= 0; variable error_anterior: integer := 0; begin Q_ent := conv_integer(unsigned(Q)); if clock_int3'event and clock_int3 = '1' then if a='1' then Q <= Q + 1; end if; if a='0' and Q /= "00000000" then error_actual := 52-Q_ent; if error_actual > 9 then error_actual := 9; end if; if error_actual < -14 then error_actual := -14; end if; cambio_error := error_actual - error_anterior; error_anterior := error_actual; Q <= "00000000"; end if; end if; --fin del if clock_int3 if (error_actual = 43 and cambio_error = 21) then -- -5 y -3 salida_ent := 161; elsif (error_actual = 43 and cambio_error = 17) then -- -5 y -2.5 salida_ent := 161; elsif (error_actual = 43 and cambio_error = 13) then -- -5 y -2 salida_ent := 161; elsif (error_actual = 43 and cambio_error = 10) then -- -5 y -1.5 salida_ent := 161; elsif (error_actual = 43 and cambio_error = 6) then -- -5 y -1 salida_ent := 161; elsif (error_actual = 43 and cambio_error = 3) then -- -5 y -0.5 salida_ent := 161; elsif (error_actual = 43 and cambio_error = 0) then -- -5 y 0 salida_ent := 161; elsif (error_actual = 43 and cambio_error = -1.7) then -- -5 y 0.5 salida_ent := 161; elsif (error_actual = 43 and cambio_error = -4) then -- -5 y 1 salida_ent := 161; elsif (error_actual = 43 and cambio_error = -6) then -- -5 y 1.5 salida_ent := 161; elsif (error_actual = 43 and cambio_error = -9) then -- -5 y 2 salida_ent := 161; elsif (error_actual = 43 and cambio_error = -11) then -- -5 y 2.5 salida_ent := 161;
104
elsif (error_actual = 43 and cambio_error = -14) then -- -5 y 3 salida_ent := 161; elsif (error_actual = 40 and cambio_error = 23) then -- -4.5 y -3 salida_ent := 161; elsif (error_actual = 40 and cambio_error = 18) then -- -4.5 y -2.5 salida_ent := 80; elsif (error_actual = 40 and cambio_error = 14) then -- -4.5 y -2 salida_ent := 80; elsif (error_actual = 40 and cambio_error = 10) then -- -4.5 y -1.5 salida_ent := 80; elsif (error_actual = 40 and cambio_error = 7) then -- -4.5 y -1 salida_ent := 80; elsif (error_actual = 40 and cambio_error = 3) then -- -4.5 y -0.5 salida_ent := 80; elsif (error_actual = 40 and cambio_error = 0) then -- -4.5 y 0 salida_ent := 80; elsif (error_actual = 40 and cambio_error = -2) then -- -4.5 y 0.5 salida_ent := 80; elsif (error_actual = 40 and cambio_error = -4) then -- -4.5 y 1 salida_ent := 80; elsif (error_actual = 40 and cambio_error = -7) then -- -4.5 y 1.5 salida_ent := 80; elsif (error_actual = 40 and cambio_error = -9) then -- -4.5 y 2 salida_ent := 80; elsif (error_actual = 40 and cambio_error = -11) then -- -4.5 y 2.5 salida_ent := 80; elsif (error_actual = 40 and cambio_error = -14) then -- -4.5 y 3 salida_ent := 161; elsif (error_actual = 37 and cambio_error = 25) then -- -4 y -3 salida_ent := 161; elsif (error_actual = 37 and cambio_error = 20) then -- -4 y -2.5 salida_ent := 80; elsif (error_actual = 37 and cambio_error = 15) then -- -4 y -2 salida_ent := 80; elsif (error_actual = 37 and cambio_error = 11) then -- -4 y -1.5 salida_ent := 80; elsif (error_actual = 37 and cambio_error = 7) then -- -4 y -1 salida_ent := 80; elsif (error_actual = 37 and cambio_error = 4) then -- -4 y -0.5 salida_ent := 80; elsif (error_actual = 37 and cambio_error = 0) then -- -4 y 0 salida_ent := 80; elsif (error_actual = 37 and cambio_error = -2) then -- -4 y 0.5 salida_ent := 80; elsif (error_actual = 37 and cambio_error = -5) then -- -4 y 1 salida_ent := 80; elsif (error_actual = 37 and cambio_error = -7) then -- -4 y 1.5 salida_ent := 80; elsif (error_actual = 37 and cambio_error = -10) then -- -4 y 2 salida_ent := 80; elsif (error_actual = 37 and cambio_error = -12) then -- -4 y 2.5 salida_ent := 80; elsif (error_actual = 37 and cambio_error = -14) then -- -4 y 3 salida_ent := 161; end if; voltaje1 <= std_logic_vector(conv_unsigned(salida_ent,8)); end process tabla1; tabla2: process (b) --motor izquierdo variable Q_ent: integer; variable salida_ent : integer:=0; variable error_actual: integer:= 0; variable cambio_error : integer:= 0; variable error_anterior: integer := 0; begin Q_ent := conv_integer(unsigned(Q1));
105
if clock_int3'event and clock_int3 = '1' then if b='1' then Q1 <= Q1 + 1; end if; if b='0' and Q1 /= "00000000" then error_actual := 52-Q_ent; if error_actual > 9 then error_actual := 9; end if; if error_actual <-1 4 then error_actual := -14; end if; cambio_error := error_actual - error_anterior; error_anterior := error_actual; Q1 <= "00000000"; end if; end if; --fin del if clock_int3 if (error_actual = 43 and cambio_error = 21) then -- -5 y -3 salida_ent := 151; elsif (error_actual = 43 and cambio_error = 17) then -- -5 y -2.5 salida_ent := 151; elsif (error_actual = 43 and cambio_error = 13) then -- -5 y -2 salida_ent := 151; elsif (error_actual = 43 and cambio_error = 10) then -- -5 y -1.5 salida_ent := 151; elsif (error_actual = 43 and cambio_error = 6) then -- -5 y -1 salida_ent := 151; elsif (error_actual = 43 and cambio_error = 3) then -- -5 y -0.5 salida_ent := 151; elsif (error_actual = 43 and cambio_error = 0) then -- -5 y 0 salida_ent := 151; elsif (error_actual = 43 and cambio_error = -1.7) then -- -5 y 0.5 salida_ent := 151; elsif (error_actual = 43 and cambio_error = -4) then -- -5 y 1 salida_ent := 151; elsif (error_actual = 43 and cambio_error = -6) then -- -5 y 1.5 salida_ent := 151; elsif (error_actual = 43 and cambio_error = -9) then -- -5 y 2 salida_ent := 151; elsif (error_actual = 43 and cambio_error = -11) then -- -5 y 2.5 salida_ent := 151; elsif (error_actual = 43 and cambio_error = -14) then -- -5 y 3 salida_ent := 151; elsif (error_actual = 40 and cambio_error = 23) then -- -4.5 y -3 salida_ent := 151; elsif (error_actual = 40 and cambio_error = 18) then -- -4.5 y -2.5 salida_ent := 75; elsif (error_actual = 40 and cambio_error = 14) then -- -4.5 y -2 salida_ent := 75; elsif (error_actual = 40 and cambio_error = 10) then -- -4.5 y -1.5 salida_ent := 75; elsif (error_actual = 40 and cambio_error = 7) then -- -4.5 y -1 salida_ent := 75; elsif (error_actual = 40 and cambio_error = 3) then -- -4.5 y -0.5 salida_ent := 75; elsif (error_actual = 40 and cambio_error = 0) then -- -4.5 y 0 salida_ent := 75; elsif (error_actual = 40 and cambio_error = -2) then -- -4.5 y 0.5 salida_ent := 75; elsif (error_actual = 40 and cambio_error = -4) then -- -4.5 y 1 salida_ent := 75; elsif (error_actual = 40 and cambio_error = -7) then -- -4.5 y 1.5 salida_ent := 75; elsif (error_actual = 40 and cambio_error = -9) then -- -4.5 y 2 salida_ent := 75;
106
elsif (error_actual = 40 and cambio_error = -11) then -- -4.5 y 2.5 salida_ent := 75; elsif (error_actual = 40 and cambio_error = -14) then -- -4.5 y 3 salida_ent := 151; elsif (error_actual = 37 and cambio_error = 25) then -- -4 y -3 salida_ent := 151; elsif (error_actual = 37 and cambio_error = 20) then -- -4 y -2.5 salida_ent := 75; elsif (error_actual = 37 and cambio_error = 15) then -- -4 y -2 salida_ent := 75; elsif (error_actual = 37 and cambio_error = 11) then -- -4 y -1.5 salida_ent := 75; elsif (error_actual = 37 and cambio_error = 7) then -- -4 y -1 salida_ent := 75; elsif (error_actual = 37 and cambio_error = 4) then -- -4 y -0.5 salida_ent := 75; elsif (error_actual = 37 and cambio_error = 0) then -- -4 y 0 salida_ent := 75; elsif (error_actual = 37 and cambio_error = -2) then -- -4 y 0.5 salida_ent := 75; elsif (error_actual = 37 and cambio_error = -5) then -- -4 y 1 salida_ent := 75; elsif (error_actual = 37 and cambio_error = -7) then -- -4 y 1.5 salida_ent := 75; elsif (error_actual = 37 and cambio_error = -10) then -- -4 y 2 salida_ent := 75; elsif (error_actual = 37 and cambio_error = -12) then -- -4 y 2.5 salida_ent := 75; elsif (error_actual = 37 and cambio_error = -14) then -- -4 y 3 salida_ent := 151; end if; voltaje2 <= std_logic_vector(conv_unsigned(salida_ent,8)); end process tabla2; control: process (vect_control) begin if vect_control = "1101" then rele1 <= '0'; rele2 <= '0'; end if; if vect_control = "1110" then rele1 <= '1'; rele2 <= '1'; end if; if vect_control = "1011" then rele1 <= '0'; rele2 <= '1'; end if; if vect_control = "0111" then rele1 <= '1'; rele2 <= '0'; end if; if vect_control = "0110" then voltaje1 <="00000000"; voltaje2 <="00000000"; end if; end process control; END a; --fin de la arquitectura
Respecto a la codificación de la tabla de búsqueda, solo se muestra para las primeras entradas
debido a que el código fuente es muy extenso. Estas entradas son las que se muestran en la Tabla
A1.1 y Tabla A1.2 para los motores derecho e izquierdo respectivamente.
107
e
e -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
-5 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54 2.54
-4.5 2.54 1.26 1.26 1.26 1.26 1.27 1.26 1.27 1.26 1.26 1.26 1.26 2.54
-4 2.54 1.26 1.26 1.26 1.26 1.27 1.26 1.27 1.26 1.26 1.26 1.26 2.54
e
e -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
-5 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37 2.37
-4.5 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
-4 2.37 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 1.18 2.37
Tabla A1.2 Porción de la tabla de búsqueda para el motor izquierdo de CD
Tabla A1.1 Porción de la tabla de búsqueda para el motor derecho de CD
108
ANEXO 2
A2.1 DATASHEET DEL FPGA EPF10K70 DE LA FAMILIA FLEX 10K UTILIZADO
EN EL ROBOT MÓVIL
109
110
111
112
113
114
115
116
117
A2.2 DATASHEET DEL MICROCONTROLADOR ATMEGA8
118
119
120
A2.3 DATASHEET DEL TRANSMISOR HMT
121
122
A2.4 DATASHEET DEL RECEPTOR HMR
123