Diseño y construcción de un robot móvil controlado con técnicas de ...

137
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

Transcript of Diseño y construcción de un robot móvil controlado con técnicas de ...

Page 1: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 2: Diseño y construcción de un robot móvil controlado con técnicas de ...

I

Page 3: Diseño y construcción de un robot móvil controlado con técnicas de ...

II

Page 4: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 5: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 6: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 7: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 8: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 9: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 10: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 11: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 12: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 13: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 14: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 15: Diseño y construcción de un robot móvil controlado con técnicas de ...

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).

Page 16: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 17: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 18: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 19: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 20: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 21: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 22: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 23: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 24: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 25: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 26: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 27: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 28: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 29: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 30: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 31: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 32: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 33: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 34: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 35: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 36: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 37: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

+

-

Page 38: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 39: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 40: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 41: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 42: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 43: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 44: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 45: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 46: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 47: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 48: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 49: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 50: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 51: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 52: Diseño y construcción de un robot móvil controlado con técnicas de ...

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:

Page 53: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 54: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 55: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 56: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 57: Diseño y construcción de un robot móvil controlado con técnicas 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'

Page 58: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 59: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 60: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 61: Diseño y construcción de un robot móvil controlado con técnicas de ...

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).

Page 62: Diseño y construcción de un robot móvil controlado con técnicas de ...

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:

Page 63: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 64: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 65: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 66: Diseño y construcción de un robot móvil controlado con técnicas de ...

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].

Page 67: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 68: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 69: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 70: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 71: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 72: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 73: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 74: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 75: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 76: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 77: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 78: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 79: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 80: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 81: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 82: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 83: Diseño y construcción de un robot móvil controlado con técnicas de ...

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]

Page 84: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 85: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 86: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 87: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 88: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 89: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 90: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 91: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 92: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 93: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 94: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 95: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 96: Diseño y construcción de un robot móvil controlado con técnicas de ...

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:

Page 97: Diseño y construcción de un robot móvil controlado con técnicas 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 .

Page 98: Diseño y construcción de un robot móvil controlado con técnicas de ...

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)

Page 99: Diseño y construcción de un robot móvil controlado con técnicas de ...

85

Fig. 4.11 Fotografías del prototipo final

Fig. 4.10 Prototipo final tomando las consideraciones estudiadas en el proyecto de investigación.

Page 100: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 101: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 102: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 103: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 104: Diseño y construcción de un robot móvil controlado con técnicas de ...

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:

Page 105: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 106: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 107: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 108: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 109: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 110: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 111: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 112: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 113: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 114: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 115: Diseño y construcción de un robot móvil controlado con técnicas de ...

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);

Page 116: Diseño y construcción de un robot móvil controlado con técnicas de ...

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;

Page 117: Diseño y construcción de un robot móvil controlado con técnicas de ...

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;

Page 118: Diseño y construcción de un robot móvil controlado con técnicas de ...

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));

Page 119: Diseño y construcción de un robot móvil controlado con técnicas de ...

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;

Page 120: Diseño y construcción de un robot móvil controlado con técnicas de ...

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.

Page 121: Diseño y construcción de un robot móvil controlado con técnicas de ...

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

Page 122: Diseño y construcción de un robot móvil controlado con técnicas de ...

108

ANEXO 2

A2.1 DATASHEET DEL FPGA EPF10K70 DE LA FAMILIA FLEX 10K UTILIZADO

EN EL ROBOT MÓVIL

Page 123: Diseño y construcción de un robot móvil controlado con técnicas de ...

109

Page 124: Diseño y construcción de un robot móvil controlado con técnicas de ...

110

Page 125: Diseño y construcción de un robot móvil controlado con técnicas de ...

111

Page 126: Diseño y construcción de un robot móvil controlado con técnicas de ...

112

Page 127: Diseño y construcción de un robot móvil controlado con técnicas de ...

113

Page 128: Diseño y construcción de un robot móvil controlado con técnicas de ...

114

Page 129: Diseño y construcción de un robot móvil controlado con técnicas de ...

115

Page 130: Diseño y construcción de un robot móvil controlado con técnicas de ...

116

Page 131: Diseño y construcción de un robot móvil controlado con técnicas de ...

117

A2.2 DATASHEET DEL MICROCONTROLADOR ATMEGA8

Page 132: Diseño y construcción de un robot móvil controlado con técnicas de ...

118

Page 133: Diseño y construcción de un robot móvil controlado con técnicas de ...

119

Page 134: Diseño y construcción de un robot móvil controlado con técnicas de ...

120

A2.3 DATASHEET DEL TRANSMISOR HMT

Page 135: Diseño y construcción de un robot móvil controlado con técnicas de ...

121

Page 136: Diseño y construcción de un robot móvil controlado con técnicas de ...

122

A2.4 DATASHEET DEL RECEPTOR HMR

Page 137: Diseño y construcción de un robot móvil controlado con técnicas de ...

123