control inteligente para los sistemas quanser … · robot en arduino que emula el sistema nervioso...

103
CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER FLEXIBLE JOINT Y SRV02 USANDO PLATAFORMAS DE HARDWARE LIBRE JUAN CAMILO ARENAS ALVARADO 2127016 LUIS FELIPE CHACÓN CEBALLOS 2127014 UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA PROGRAMA DE INGENIERÍA MECATRÓNICA SANTIAGO DE CALI 2019

Upload: others

Post on 13-Jul-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER FLEXIBLE JOINT Y SRV02 USANDO PLATAFORMAS DE HARDWARE LIBRE

JUAN CAMILO ARENAS ALVARADO 2127016

LUIS FELIPE CHACÓN CEBALLOS 2127014

UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA

DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA PROGRAMA DE INGENIERÍA MECATRÓNICA

SANTIAGO DE CALI 2019

Page 2: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER FLEXIBLE JOINT Y SRV02 USANDO PLATAFORMAS DE HARDWARE LIBRE

JUAN CAMILO ARENAS ALVARADO LUIS FELIPE CHACÓN CEBALLOS

Proyecto de Grado para optar por el título de Ingeniero Mecatrónico

Director Jesús Alfonso López Sotelo

Doctor en ingeniería

UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍA

DEPARTAMENTO DE AUTOMÁTICA Y ELECTRÓNICA PROGRAMA DE INGENIERÍA MECATRÓNICA

SANTIAGO DE CALI 2019

Page 3: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

3

Nota de Aceptación:

Aprobado por el Comité de Grado en cumplimiento de los requisitos exigidos por la Universidad Autónoma de Occidente para optar al título de Ingeniero Mecatrónico.

Juan Carlos Mena

Edgar Francisco Arcos

Santiago de Cali, 18 de septiembre de 2019

Page 4: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

4

AGRADECIMIENTOS

Quiero dedicarles este logro a mis padres, Juan Carlos y Gloria por siempre apoyarme en cada paso de mi formación como persona y como profesional, por dedicarme el tiempo y la paciencia para que pudiera cumplir este sueño de obtener mi título profesional. A mis amigos y compañeros con quienes compartí en las aulas por ser parte de un proceso muy importante en mi vida y aquellos que siempre estuvieron presente apoyándome a culminar este proyecto para finalizar de la mejor forma mi carrera profesional.

Juan Camilo Arenas Alvarado

Le dedico este logro a mis padres por proveerme de todo lo que necesité en algún momento y todo el amor para verme como una buena persona y un profesional integro, a mis amigos por aconsejarme y apoyarme, en especial a dos personas que han sido como mis mentores, a mi pareja por darme siempre ánimos, y a Jesús López por darnos la oportunidad para salir adelante.

Luis Felipe Chacón Ceballos

Page 5: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

5

CONTENIDO pág.

RESUMEN 14

INTRODUCCIÓN 15

1. PROBLEMA DE INVESTIGACIÓN 16

1.1 PLANTEAMIENTO DEL PROBLEMA 16

2. JUSTIFICACIÓN DEL PROBLEMA 18

3. OBJETIVOS 19

3.1 OBJETIVO GENERAL 19

3.2 OBJETIVOS ESPECÍFICOS 19

4. ANTECEDENTES 20

5. MARCO TEÓRICO 28

5.1 INTELIGENCIA ARTIFICIAL 28

5.2 CONTROL INTELIGENTE 28

5.3 RED NEURONAL ARTIFICIAL 29

5.4 CONTROL NEURONAL O NEUROCONTROL 30

5.5 DISEÑO DIRECTO 30

5.6 DISEÑO INDIRECTO 30

5.7 LÓGICA DIFUSA 31

5.8 CONTROLADOR DIFUSO 31

5.9 PLATAFORMAS DE ADQUISICIÓN DE DATOS 32

Page 6: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

6

5.9.1 Arduino 32

5.9.2 Raspberry pi 32

5.9.3 MYrio 1900 33

6. IDENTIFICACIÓN DEL SISTEMA DINÁMICO, DISEÑO DE CONTROLADORES, IDENTIFICACIÓN DE NECESIDADES Y SISTEMA DE ACONDICIONAMIENTO. 35

6.1 DESCRIPCIÓN DEL SISTEMA. 35

6.1.1 Servomotor srv02. 35

6.1.2 Módulo flexible joint (articulación flexible) 36

6.2 DESARROLLO MATEMÁTICO 37

6.3 DISEÑO DE LOS CONTROLADORES 41

6.3.1 Diseño del controlador neuronal 41

6.3.2 Diseño del controlador difuso. 47

6.4 PLANTEAMIENTO DE LA MISIÓN DEL PROYECTO 50

6.4.1 Identificación de las necesidades 53

6.4.2 Generación de conceptos (alternativas) 55

6.4.3 Despliegue de gestión de calidad (qfd) 57

6.5 ADQUISICIÓN DE DATOS HACIENDO USO DE MATLAB. 61

6.6 ACONDICIONAMIENTO DE SEÑAL 75

7. IMPLEMENTACIÓN 84

7.1 IMPLEMENTACIÓN DE CONTROLADORES POR MEDIO DE MATLAB. 86

7.2 IMPLEMENTACIÓN DEL CONTROLADOR NEURONAL. 87

7.3 IMPLEMENTACIÓN DEL CONTROLADOR DIFUSO. 89

Page 7: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

7

7.4 ADQUISICIÓN DE DATOS POR MEDIO DE ARDUINO PARA CONTROL DIFUSO 91

8. CONCLUSIONES 96

9. TRABAJO FUTURO 97

REFERENCIAS 98

ANEXOS 102

Page 8: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

8

LISTA FIGURAS

pág.

Fig. 1. Estructura de un criostato [4] 20

Fig. 2. Articulación flexible de un robot manipulador. [1] 21

Fig. 3. Resultado de la simulación con PID difuso [5] 23

Fig. 4. Resultado de la simulación con PID tradicional [5] 24

Fig. 5. Diagrama de funcionamiento del robot [6] 24

Fig. 6. A) Imagen capturada por la cámara, B) Imagen escrita por el sistema [6] 25

Fig. 7. Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26

Fig. 8. Diagrama de implementación del controlador neuronal de un sistema de tanques en cascada. [10] 27

Fig. 9. Robot basado en Arduino con redes neuronales para evitar luz. [11] 27

Fig. 10. Modelo de red neuronal artificial [12] 29

Fig. 11. Esquema representativo del controlador difuso. [15] 31

Fig. 12. Estructura de Arduino. [16] 32

Fig. 13. Estructura de Raspberry Pi. [17] 33

Fig. 14. Sistema embebido de adquisición MyRIO-1900 [18] 34

Fig. 15. Motor SRV02 de QUANSER [20] 36

Fig. 16. Sistema Flexible Joint de QUANSER [20] 37

Fig. 17. Parámetros angulares del sistema [21] 38

Fig. 18. Puntos de anclaje del sistema. 40

Page 9: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

9

Fig. 19. Descripción no lineal del comportamiento de la Flexible Joint [21] 40

Fig. 20. Diagrama de Bloques de la Flexible Joint [21] 41

Fig. 21. Diagrama de Bloques de la toma de datos del controlador clásico 42

Fig. 22. Funcionamiento del controlador clásico 42

Fig. 23. Parámetros de entrenamiento de la red 43

Fig. 24 Rendimiento de la red durante el entrenamiento. 44

Fig. 25. Implementación del controlador de acuerdo al regresor Y(k)=[Y(k-1), Y(k-2), U(k-1), U(k-2)] 44

Fig. 26. Simulación del sistema de control neuronal 45

Fig. 27. Entrada vs Salida del sistema. (A) Control neuronal, B) Control proporcional, integral y derivativo) 46

Fig. 28 Acción de control, línea azul: Controlador PID, línea negra: Modelo neuronal. Se puede observar una disminución considerable en la acción de control. 47

Fig. 29. Comportamiento del sistema Flexible Joint [3] 48

Fig. 30. Error Flexible Joint 48

Fig. 31. Derivada del Error 49

Fig. 32. Caja negra del dispositivo 54

Fig. 33. Caja blanca del dispositivo. 55

Fig. 34. Barra de herramientas de Simulink. 61

Fig. 35. Ruta de configuración de parámetros 62

Fig. 36. Implementación del hardware 62

Fig. 37. Selección de la tarjeta 62

Fig. 38. Selección de paquetes en caso de no tener la tarjeta instalada 63

Fig. 39. Selección del hardware de Arduino 63

Page 10: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

10

Fig. 40. Ventana del paquete de hardware de Arduino 64

Fig. 41. Configuración e instalación del paquete 64

Fig. 42. Ventana de instalación 64

Fig. 43 Inicialización de la tarjeta 65

Fig. 44. Selección del método por el cual está conectada la tarjeta al computador 65

Fig. 45. Selección de librerías 66

Fig. 46. Ventana de finalización de la instalación 67

Fig. 47. Diagrama de bloques para la lectura de encoders 67

Fig. 48. Bloque de memoria 68

Fig. 49. Bloque de detección de cambio 68

Fig. 50. Bloque de comparación 69

Fig. 51. Bloque contador 69

Fig. 52. Bloque de ganancia 69

Fig. 53 Tabla de datos de la salida analógica del Arduino Due [25] 76

Fig. 54. Circuito restador [26] 77

Fig. 55. Divisor de voltaje 77

Fig. 56. Circuito restador de ganancia 1, para eliminar el offset del DAC 78

Fig. 57. Amplificador no inversor [26] 79

Fig. 58. Amplificador de ganancia 36.8648 81

Fig. 59. Divisor de tensión 82

Fig. 60. Restador b 83

Fig. 61. Módulo Universal de Poder 15-03 (UPM 15-03) [27] 85

Fig. 62. Configuración del conector tipo 5-pin-stereo-Din [3] 85

Fig. 63. Pinout Arduino Due [28] 86

Page 11: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

11

Fig. 64. Adquisición de datos y comparación 87

Fig. 65 Implementación del controlador neuronal 88

Fig. 66 Resultado del controlador neuronal (línea azul representa la referencia (entrada), la roja la lectura de los sensores (salida)) 88

Fig. 67. Diagrama de bloques del controlador difuso 89

Fig. 68. Respuesta del controlador difuso. (Azul referencia, rojo salida) 90

Fig. 69. Diagrama del sistema de control completo con Matlab 90

Fig. 70. Diagrama del sistema completo con Arduino 91

Fig. 71. Referencia y salida de la planta control difuso por medio de Arduino. (Rojo representa la entrada del sistema (referencia), azul la salida (lectura de los encoders)) 94

Fig. 72 Circuito acondicionador 102

Fig. 73 Circuito físico de acondicionamiento de señal 103

Page 12: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

12

LISTA DE TABLAS

TABLA I. 22

TABLA II 22

TABLA III 23

TABLA IV 38

TABLA V 49

TABLA VI 50

TABLA VII 51

TABLA VIII 52

TABLA IX 53

TABLA X 54

TABLA XI 58

TABLA XII 59

TABLA XIII 60

TABLA XIV 74

TABLA XV 84

Page 13: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

13

LISTA DE ANEXOS

Anexo A: Esquemático Circuito Acondicionador 102

Anexo B: Montaje Circuito Acondicionador 103

Page 14: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

14

RESUMEN

En el presente trabajo se muestra la identificación, control neuronal y control difuso de un sistema de Articulación Flexible Quanser (Flexible Joint) y el motor SRV02. Para la implementación de estos controladores se utiliza un software que ayuda a la independización de la tarjeta Quanser por un dispositivo de hardware libre, el cual es escogido por diferentes parámetros de diseño y funcionalidad.

Palabras Claves: Flexible Joint, Motor SRV02, control neuronal, control difuso, dispositivo de hardware libre.

Page 15: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

15

INTRODUCCIÓN

Las técnicas que se utilizan para control inteligente, al igual que las técnicas clásicas de control, se enfocan en la regulación del comportamiento de un sistema o proceso, por medio de la realización de modificaciones en la entrada de este; entre las técnicas anteriormente descritas, se destaca el control clásico como el controlador PID y sus variaciones y por otro lado tenemos el control inteligente mediante el uso de redes neuronales artificiales y el control difuso, que son usados frecuentemente en el control de sistemas no lineales, tales como el control de robots manipuladores a condiciones reales [1] o diferentes tipos de sistemas no lineales como la bola viga entre otros [2], [3], [4], [5], [6], en los cuales nos enfocaremos en este proyecto [7].

La razón por la que se hará uso del control inteligente, se debe a que éste no necesita el modelo matemático de la planta, basta con tener la información de la entrada y salida del sistema en el caso del control neuronal, y la información del comportamiento lingüístico de la planta en el caso del control difuso.

Por otro lado, los equipos designados para la implementación de controladores inteligentes, generalmente, son sistemas con un alto poder de procesamiento, que, en la mayoría de los casos, suelen estar sobredimensionados a las actividades académicas usuales en los cursos de pregrado y postgrado, requieren una alta inyección de capital y tienen poca disponibilidad por la cantidad que hay habilitados en los laboratorios. Por otro lado, existen sistemas más económicos y asequibles a la comunidad, con un software amigable, intuitivo y un lenguaje de programación estandarizado y gratuito, el cual facilita la creación de programas y controladores para la solución de problemas.

En los últimos años se ha venido presentando un gran avance en los controladores inteligentes, tienen la capacidad de prever, prevenir y corregir acciones propias y ajenas a la planta que alteren el funcionamiento normal del sistema. En este trabajo se evidencia la implementación de controladores haciendo uso de plataformas de hardware libre como sistema de comunicación para la realización del controlador de los sistemas, además de incursionar en el uso de software libre para realizar control difuso sobre la planta Flexible Joint, buscando dar uso a los equipos disponibles en el almacén de la Universidad Autónoma de Occidente.

Page 16: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

16

1. PROBLEMA DE INVESTIGACIÓN

1.1 PLANTEAMIENTO DEL PROBLEMA

La Universidad Autónoma de Occidente tiene en su inventario el módulo Quanser flexible Joint y el motor SRV-02 para el apoyo en los cursos de pregrado y postgrado en la implementación académica de diferentes metodologías de control. Al ser sistemas con comportamiento dinámico más complejo (no lineales) y no compatibles con la tarjeta de adquisición de datos actual (NI 6221), la institución propuso el uso de las tarjetas MyRio 1900; sin embargo, esta tecnología ha sido proscrita, debido a que se tienen conocimientos incipientes por parte de los estudiantes y auxiliares de laboratorio para su uso, al mismo tiempo no muestra compatibilidad con el software más utilizado en la universidad en esta área (Matlab). La academia requiere que las aplicaciones sean desarrolladas en plataformas de fácil acceso y compatible con el software disponible.

Esto causa que los equipos de adquisición de datos y los sistemas de comportamiento complejo incompatibles con la tarjeta actual, estén siempre archivados en el almacén, provocando una demanda excesiva de las plantas disponibles en las etapas finales de cada semestre académico debido a los pocos equipos que quedan a disposición para las diferentes actividades de la asignatura de Control Inteligente.

Adicionalmente, los equipos que se encuentran en estado de abandono ocupan un espacio que podría almacenar otro componente de mayor utilidad o en el peor de los casos, terminan dañándose por desuso y al no tener utilidad alguna, posiblemente no recibirán mantenimiento, perdiendo la inversión por completo.

Page 17: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

17

1.1. FORMULACIÓN DEL PROBLEMA

¿Las plataformas de hardware libre pueden realizar la implementación de técnicas de control inteligente en los sistemas Quanser Flexible Joint y SRV-02 como lo realiza el hardware especializado?

Page 18: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

18

2. JUSTIFICACIÓN DEL PROBLEMA

Las técnicas de control inteligente no requieren un modelo del sistema a controlar, debido a que solo requieren los datos del comportamiento de la entrada y de la salida del sistema (control neuronal) [8], o el conocimiento lingüístico del funcionamiento del sistema a controlar (control difuso) [9] y son más robustos en términos de complejidad frente a las técnicas de control convencional, por lo que representan un procesamiento mayor para el equipo.

Los equipos utilizados para realizar las acciones de control utilizados en la academia, por lo general, equipos de escritorio o equipos portátiles que para este tipo de tareas están sobredimensionados (Altos costos de adquisición y procesamiento muy superior al necesitado en la academia) y resultan ser difíciles de trasladar. Adicionalmente se cuentan con equipos especializados como la MyRIO-1900 que cumple con la función especificada, pero tiene un costo de adquisición muy elevado. Por ello se ha previsto la implementación de herramientas de hardware libre como sistemas embebidos de baja potencia a las plantas Quanser, que a pesar de tener una capacidad de procesamiento mucho menor y no tener la resolución de los equipos, permiten la realización de dicha tarea de manera efectiva por un costo considerablemente menor.

En las etapas finales de los semestres académicos, los laboratorios se ven saturados por la cantidad de carga laboral que recae en los pocos equipos habilitados, agregando a esto el descontento de la comunidad porque muchos de estos equipos generalmente se encuentran en mal estado. El habilitar los diferentes sistemas que se encuentran descontinuados por su incompatibilidad con la tarjeta actual, es una solución que aliviaría dicha carga, dando paso a la implementación de técnicas diferentes de control, además debido a que es una plataforma de hardware libre, existe flexibilidad para que cada estudiante cargue su propio equipo de adquisición de datos, limitando a la institución a prestar la interfaz y el sistema a trabajar.

Page 19: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

19

3. OBJETIVOS

3.1 OBJETIVO GENERAL

Desarrollar algoritmos de control para las plataformas Quanser Flexible Joint y SRV-02, con técnicas de control inteligente que puedan ser implementadas en una plataforma de hardware libre.

3.2 OBJETIVOS ESPECÍFICOS

● Desarrollar controladores basados en redes neuronales artificiales utilizando tarjetas de adquisición de datos comercial, en los sistemas Quanser Flexible Joint y SRV-02. ● Desarrollar controladores basados en lógica difusa utilizando tarjetas de adquisición de datos comercial en los sistemas Quanser Flexible Joint y SRV-02. ● Seleccionar la plataforma de hardware libre en la que se desarrollará el proyecto. ● Implementar los controladores desarrollados en una plataforma de hardware libre.

Page 20: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

20

4. ANTECEDENTES

A continuación, se presentarán diferentes estrategias de control inteligente, implementadas a sistemas no lineales para la solución o cumplimiento de una tarea.

● En la Universidad de Oxford del Reino Unido, se realizó un proyecto que trata de controlar la temperatura de un criostato [4], un dispositivo que trabaja con helio y permite observar las propiedades ópticas de diversos materiales. El control se realiza variando la temperatura de funcionamiento que tiene un rango de 4.2 K a 200 K, el flujo se controla variando la posición de una válvula de tubo que conecta el criostato a la bomba de helio. El problema con este sistema es que no se puede implementar un controlador PID, puesto que, a rangos bajos de temperatura, los valores de ganancia varían, por ello, se realizó la implementación de un PID difuso con ganancia programada. Para las zonas altas temperaturas se diseña un controlador PID y un controlador PI para la zona de baja temperatura. Para evitar cambios bruscos al pasar de una zona a otra, se desarrolló un sistema de reglas difusas que cambian la sintonización del PID.

Fig. 1. Estructura de un criostato [4]

Al mismo sistema, también se le aplicó un control neuro-fuzzy adaptativo, que consiste en un controlador hacia adelante que tiene un modelo difuso relacional que

Page 21: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

21

aprende de la entrada a la planta, mediante el uso de un algoritmo de aprendizaje para el seguimiento de una trayectoria predefinida [4].

● El grupo de investigación de electrónica industrial de la Universidad de Québec en Trois-Rivières, se implementó una estrategia de control adaptativo para el sistema de articulación flexible [1], tomando en cuenta la no linealidad de la fricción y las perturbaciones externas. Como el modelo inverso del sistema es irrealizable, solo es posible generar una aproximación. La táctica consiste en un controlador neuronal difuso de parámetro lineal rígido que compensa las incertidumbres paramétricas y de modelado tales como, la fricción, flexibilidad y perturbaciones externas al sistema.

Fig. 2. Articulación flexible de un robot manipulador. [1]

● En el Instituto de Precisión Mecánica y Óptica de Xi’an, de la Academia de Ciencias de Xi’an, China, se realizó un controlador PID difuso de posición a un servo motor de imán permanente sincrónico [5], utilizando la herramienta de generación de código MATLAB y su extensión para simulación de sistemas Simulink, donde el coeficiente Kp mejora la respuesta la precisión y la velocidad de respuesta del controlador, Ki elimina el error en estado estacionario y Kd afecta las características dinámicas del sistema. Tomando en cuenta dichos parámetros, generaron tres tablas de reglas difusas (cada una correspondiente a un parámetro del PID) que sintonizan el controlador de acuerdo a la necesidad.

Page 22: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

22

TABLA I.

Reglas difusas para ∆Kp [5]

TABLA II

Reglas difusas para ∆Ki [5]

Page 23: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

23

TABLA III

Reglas difusas para ∆Kd [5]

Con esto, simularon el sistema con valores reales de un servo motor PMSM (permanent magnet synchronous motor) donde compararon los resultados de un controlador PID tradicional, con el PID difuso, donde se observa que la respuesta del segundo es más suave que la del primero [5].

Fig. 3. Resultado de la simulación con PID difuso [5]

Page 24: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

24

Fig. 4. Resultado de la simulación con PID tradicional [5]

● En la Universidad Autónoma de Occidente, se diseñó y se implementó un sistema robótico que permite el reconocimiento de caracteres manuscritos y tiene la facultad de la reproducción de los mismos [6]. El proyecto consta de un hardware que tiene como objetivo la adquisición visual del manuscrito y un robot que permite la transcripción del mismo, adicionalmente, cuenta con un software el cual se encarga de recibir y almacenar la imagen capturada y separar los caracteres realizando un reconocimiento de estos utilizando una red neuronal convolucional previamente entrenada.

Fig. 5. Diagrama de funcionamiento del robot [6]

Page 25: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

25

Fig. 6. A) Imagen capturada por la cámara, B) Imagen escrita por el sistema [6]

● Existe un proyecto utilizando hardware libre de bajo costo para la creación de un robot, el cual por medio de redes neuronales emula el sistema nervioso del gusano nematodo C. Elegans [2], que es el sistema que finalmente procesa la información y el cual envía las señales de movimiento al robot, es decir que el robot no se mueve por una programación del usuario sino que sus comportamientos emergen debido a la actividad neuronal simulada por el programa y que es estimulada por las neuronas receptoras o motoras que están conectados a los periféricos del robot.

El robot no tiene movimientos impresionantes, recordemos que está siendo operado por el sistema nervioso más simple que se conoce, sólo 302 neuronas interconectadas gobiernan los comportamientos del robot, y esos comportamientos están condicionados por los estímulos de entrada, o sea el sensor ultrasónico que dispara la sinapsis de las neuronas ligadas a la nariz del gusano (lo que en un ambiente real sería como si el gusano chocara contra algo) y el sensor de sonido que dispara las neuronas relacionadas con el alimento (en un ambiente real sería como si el gusano encontrara rastros de alimentos).

A) B)

Page 26: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

26

● En un artículo de la IEEE desarrollado en la universidad Autónoma de Occidente, se expone como se modela, identifica y finalmente se construye un sistema de control basado en redes neuronales para una planta que consta de dos tanques en cascada.

Para la generación del control realizaron un modelo de redes neuronales para identificar el comportamiento dinámico de la planta, posteriormente con la toma de datos de lo anterior entrenaron otra red neuronal para el control del sistema completo utilizando el método de control inverso [10].

La conclusión del articulo asegura que se puede implementar ambas redes, datos de comportamiento y control, dentro del sistema Arduino demostrando la versatilidad de este programa para el control de sistemas reales.

Fig. 7. Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2]

Page 27: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

27

● En Estados Unidos un joven llamado Sean Hodgins ha creado un pequeño robot el cual puede esquivar la luz que lo rodea. Su funcionamiento consta de una red neuronal que aprende constantemente dentro de unos valores fijos y toma la mejor decisión para que el robot evite las luces. Esta red y el movimiento del robot están programados e implementados en Arduino [11].

Fig. 9. Robot basado en Arduino con redes neuronales para evitar luz. [11]

Fig. 8. Diagrama de implementación del controlador neuronal de un sistema de tanques en cascada. [10]

Page 28: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

28

5. MARCO TEÓRICO

Para el diseño de los controladores, es necesario tener en cuenta los siguientes conceptos:

5.1 INTELIGENCIA ARTIFICIAL

Se define como el estudio del comportamiento inteligente en las máquinas, entendido desde dos puntos de vista de:

● El desarrollo de máquinas que tengan un comportamiento inteligente igual o superior al de los humanos. ● La comprensión de este comportamiento en hombres o animales. [12]

El desarrollo reciente en la inteligencia artificial implica el uso del enfoque evolutivo en la toma de decisiones para problemas específicos de interés. También se define como enfoque metaheurístico, ya que guía y modifica el funcionamiento de la heurística subordinada para proporcionar una solución eficiente. El principio de algoritmo evolutivo se basa en las aplicaciones de cierto comportamiento biológico, molecular, enjambre de insectos y sistemas neurobiológicos [13].

Con el constante desarrollo tecnológico, aparecen continuamente problemas que suelen ser más complejos o que ya estaban presentes, pero no eran considerados para afrontar, algunos de estos son el reconocimiento y clasificación de imágenes, los sistemas cada vez más complejos y difícilmente representados a través de modelos matemáticos que solo realizan aproximaciones del mismo, entre otros.

5.2 CONTROL INTELIGENTE

Son el conjunto de técnicas de control que hacen uso de varias aproximaciones derivadas de la Inteligencia Artificial [12]. También consiste en unas estructuras de datos u objetos y unidades de procesamiento o métodos, a diferencia del control convencional, un control inteligente se caracteriza por emular las funciones de las criaturas vivas en cuanto a algunas de su forma de pensar. Esto implica que como mínimo debe tener la habilidad de percibir y adaptarse al entorno y conforme le llega información del mismo tomar decisiones y realizar las respectivas acciones correctivas. Este tipo de control puede incluir desde el reconocimiento de objetos,

Page 29: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

29

hasta la representación del conocimiento lingüísticos con difícil representación matemática [4]. 5.3 RED NEURONAL ARTIFICIAL

Son sistemas adaptativos que aprenden de la experiencia, esto significa que tienen la capacidad de aprender a llevar a cabo ciertas tareas mediante el entrenamiento con ejemplos ilustrativos, se encuentran constituidas por un número de elementos simples de procesamiento llamado nodos o neuronas que a su vez se hallan organizados en capas [14].

Fig. 10. Modelo de red neuronal artificial [12]

La red neuronal artificial se encuentra inspirada en las redes neuronales biológicas. Generalmente consiste de un número de elementos de procesamiento simple llamadas neuronas, las cuales se encuentran conectadas unas a otras de manera paralela. La fuerza de las interconexiones de la red, se ven representadas en los pesos de las neuronas.

Las RNA (Red Neuronal Artificial) pueden comportarse de forma idéntica al cerebro humano, por lo que, puede realizar tareas de reconocimiento de objetos y patrones, sin embargo, aún existe una enorme diferencia entre las RNA y las redes biológicas [14].

Una característica particular en las redes neuronales es que, si son simples con pocas capas ocultas, generalmente se utilizan para la modelación y control de

Page 30: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

30

sistemas, mientras que si son RNA profundas (muchas capas ocultas) se utilizan para el reconocimiento de imágenes, predicciones de series a través del tiempo, visión artificial entre otras cosas.

5.4 CONTROL NEURONAL O NEUROCONTROL

Es una de las alternativas que ofrece el control inteligente para resolver el problema de controlar un sistema haciendo uso de las propiedades de las redes neuronales artificiales. El neuro control se puede dividir en dos tipos de diseño, diseño directo e indirecto.

5.5 DISEÑO DIRECTO

El diseño directo, la acción de control la genera una red neuronal, esto resulta ventajoso cuando el sistema a controlar impide el uso de técnicas de control convencional. Su implementación es relativamente sencilla, pero el diseño y la sintonización del mismo es compleja, y esto es debido a que el entrenamiento se deba realizar cada vez que un parámetro del diseño sea modificado, otra característica es que se suelen entrenar fuera de línea [12].

Algunos ejemplos de diseño de controladores directos son el control por modelo inverso (con todos los tipos de entrenamiento que implica), control Feedforward o por propagación, control de linealización de realimentación, etc.

5.6 DISEÑO INDIRECTO

A diferencia del diseño directo, la acción de control la genera un controlador convencional y la red funciona como modelo de la planta, que se utiliza para la sintonización del controlador.

Estos sistemas son típicamente entrenados fuera de línea, pero el controlador del mismo es diseñado en línea. Son mucho más flexibles y por ello son los más utilizados en los problemas de control.

Algunas variantes son el control predictivo y control por linealización instantánea.

Page 31: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

31

5.7 LÓGICA DIFUSA

Tipo de lógica que permite visualizar en los eventos valores de verdad o pertenencia, es decir, toma como fuente de información las instrucciones y descripciones lingüísticas del sistema [15].

A diferencia de la lógica binaria, la lógica difusa permite tener valores intermedios entre 0 y 1, tales como 0,4 o 0,1.

5.8 CONTROLADOR DIFUSO

Es la representación del conocimiento heurístico de un ser humano sobre cómo controlar un sistema, con ello, permite la manipulación e implementación de acciones correctivas al mismo [12].

El controlador difuso tiene cuatro componentes principales: en primer lugar, se tiene las reglas del control, las cuales contienen el conocimiento lingüístico acerca de cómo controlar el sistema. Posteriormente se tiene el mecanismo de inferencia que evalúa qué “regla” utilizar en ese preciso instante. El fuzzificador modifica la entrada del sistema para que pueda ser interpretado y comparado con las “reglas”. Finalmente, el defuzzificador que convierte la conclusión en una acción de control [15].

Fig. 11. Esquema representativo del controlador difuso. [15]

Page 32: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

32

5.9 PLATAFORMAS DE ADQUISICIÓN DE DATOS

Son plataformas que son fácilmente accesible (disponibilidad) y con software de programación generalmente gratuito. Generalmente son programados mediante el lenguaje derivado de código C o C++. Cuentan con baja velocidad de procesamiento comparado con hardware especializado y algunos de estos ejemplos son:

5.9.1 Arduino

Arduino es una plataforma libre de computación de bajo coste basada en una placa de entrada-salida y en un entorno de desarrollo IDE que implementa el lenguaje processing/wiring-hardware. Arduino se puede usar para desarrollar objetos interactivos automáticos o conectarse a software en el ordenador (pure data, flash, processing; MaxMSP.) [2].

Fig. 12. Estructura de Arduino. [16]

5.9.2 Raspberry pi

Ordenador del tamaño de una tarjeta que consta de una placa base sobre la que se ensambla un procesador, un chip gráfico y memoria RAM.

Fue lanzado en 2009 por la Fundación Raspberry Pi para estimular la enseñanza de informática en escuelas de todo el mundo. Esta propuesta cuenta con una

Page 33: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

33

notable comunidad de desarrolladores dispuestos a compartir pasó a paso las nuevas características que van encontrándose a la placa [2].

Fig. 13. Estructura de Raspberry Pi. [17]

5.9.3 MYrio 1900

La tarjeta myRIO-1900, es un sistema de adquisición de datos portable, que permite reconfigurar los puertos I/O, en el cual los estudiantes pueden realizar diferentes diseños de sistemas de control, robótica y mecatrónicos.

La tarjeta fue diseñada por la empresa norteamericana National Instruments, para la programación de la tarjeta se utiliza el software del mismo fabricante LabVIEW, pero para el uso de esta tarjeta en específico es necesario una extensión del mismo programa con el nombre de LabVIEW My RIO compatible con las versiones posteriores a la de 2016 [18].

Page 34: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

34

Fig. 14. Sistema embebido de adquisición MyRIO-1900 [18]

Page 35: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

35

6. IDENTIFICACIÓN DEL SISTEMA DINÁMICO, DISEÑO DE CONTROLADORES, IDENTIFICACIÓN DE NECESIDADES Y SISTEMA DE

ACONDICIONAMIENTO.

Para el diseño de las diferentes técnicas de control a los sistemas, se debe tener en cuenta diferentes conceptos y los modelos matemáticos de los mismos.

6.1 DESCRIPCIÓN DEL SISTEMA.

Para realizar la descripción del sistema, lo primero es identificar las partes que lo componen.

6.1.1 Servomotor srv02.

El SRV02 es una de las partes más importantes del módulo de la articulación flexible, puesto que permite al brazo moverse; las acciones de control que se realizan a los sistemas se aplican sobre este componente.

Consiste en un motor de corriente continua encerrado en un marco de aluminio sólido y tiene su propia caja interna de engranajes que impulsa los engranajes externos. Adicionalmente cuenta con un sensor que permite medir la posición angular del engranaje de carga, además de contar con un codificador para la medición de la posición digital y un tacómetro para medir la velocidad [19].

Page 36: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

36

Fig. 15. Motor SRV02 de QUANSER [20]

6.1.2 Módulo flexible joint (articulación flexible)

El módulo de Articulación Flexible (Flexible Joint) es un aditivo para el sistema de rotación del SRV02 de Quanser, generalmente es utilizado para la simulación de balance del eslabón simulando el brazo de un manipulador.

Page 37: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

37

Fig. 16. Sistema Flexible Joint de QUANSER [20]

El módulo consta de un brazo unido a dos muelles idénticos, montados sobre un chasis de aluminio que es sujeto al engranaje de carga del SRV02. Gracias a que es capaz de replicar una articulación es posible hacer uso de diferentes estrategias de control, sin embargo, se puede utilizar para el estudio de análisis de vibraciones y resonancias [3].

Los resortes se encuentran montados en un chasis de aluminio, que está sujeto al engranaje de carga del servomotor SRV02. La articulación flexible permite realizar experimentos que describen y modelan el comportamiento de una articulación flexible en un robot o una nave espacial [14].

6.2 DESARROLLO MATEMÁTICO

Para realizar el modelado de este sistema, en primer lugar, se toman valores que se encuentran en la hoja de datos de la planta que se muestra a continuación:

Page 38: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

38

TABLA IV

Parámetros físicos del sistema, de acuerdo al manual del sistema Flexible Joint

DATASHEET

PARÁMETRO SÍMBOLO VALOR

Constante de Elasticidad del resorte. Ks 1.61 [𝑁/𝑚] Inercia del Eslabón Jeq 0.0021[𝐾𝑔𝑚2] Masa del Eslabón m 0.403[𝐾𝑔]

Constante Gravitacional g −9.81[𝑁/𝑚] Altura de la Base h 0.06[𝑚]

Constante del Motor Km 0.00767[N/rad/s]

Relación de la Transmisión Kg 70 Inercia de la Carga. Jl 0.0059[𝐾𝑔𝑚2]

Resistencia del Motor Rm 2.6 𝛺 Nota: describir el contenido de la tabla [7]

Fig. 17. Parámetros angulares del sistema [21]

Se toman solamente los valores estándar de los elementos, puede variar respecto al tiempo de uso y el estado del sistema.

Se tiene el siguiente desarrollo matemático para obtener el siguiente modelo en espacio de estados.

Partiendo de

𝐊𝐞𝐪 =𝟏

𝟐𝐉𝐞𝐪�̇�𝟐 Energía cinética del motor (1)

Page 39: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

39

𝐊𝐥 =𝟏

𝟐𝐉𝐥(�̇� + �̇�)

𝟐 Energía cinética de la carga (2)

𝐕𝐠 = 𝐦𝐠𝐡 Energía potencial (3)

𝐕𝐬 =𝟏

𝟐𝐊𝐬𝛂𝟐 Energía elástica (4)

La ecuación lagrangianaa del sistema viene siendo representado por

𝛅

𝛅𝐭(

𝛅𝐋

𝛅�̇�) −

𝛅𝐋

𝛅𝚹= 𝐓𝐨 − 𝐉𝐞𝐪�̇� (5)

𝛅

𝛅𝐭(

𝛅𝐋

𝛅�̇�) −

𝛅𝐋

𝛅𝛂= 𝟎 (6)

Por lo tanto, la ecuación de movimiento está dada en las siguientes ecuaciones

𝐉𝐞𝐪�̈� + 𝐉𝐥(�̈� + �̈�) = 𝐓𝐨 − 𝐉𝐞𝐪�̇� (7)

𝐊𝐒𝛂 + 𝐉𝐥(�̈� + �̈�) = 𝟎 (8)

Tomando que el parámetro 𝐾𝑠 que correspondería a la constante de los resortes (suponiendo que ambos resortes son iguales), para este caso no es un valor fijo, dado que:

𝐊𝐬 =𝟐𝐑

𝐃𝟑𝟐

((𝐃𝐝 − 𝐑𝐫𝟐)𝐅𝐫 + (𝐃𝟑

𝟐𝐝 − 𝐃𝐋𝐝 + 𝐑𝐫𝟐𝐋) 𝐊) (9)

sabiendo que

𝐃 = 𝐫𝟐 + (𝐑 − 𝐝)𝟐 (10)

Siendo, r la distancia horizontal entre la carga y el punto de apoyo del resorte respecto a la base, d la distancia vertical entre la unión de la carga a la base y el del resorte a la base y D la distancia desde el anclaje de la carga respecto a la base y el anclaje del resorte al eslabón. (ver Fig. 18)

Page 40: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

40

Fig. 18. Puntos de anclaje del sistema.

Luego de obtenidos los valores, se procede a reemplazarlos en la función no lineal descrita en variables de estado del comportamiento de la planta, que se describe a continuación:

Fig. 19. Descripción no lineal del comportamiento de la Flexible Joint [21]

En Fig. 19. se especifica que la salida es y= θ+α, donde θ es el ángulo de salida del eje del servo (x1) y α es el ángulo relativo del brazo con respecto al ángulo de salida del eje del servomotor (x2), es decir es la medición de la deflexión angular del brazo y la acción de control corresponde a el voltaje que se le pone al motor; las variables

Page 41: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

41

de estado x3 y x4, corresponden respectivamente a la velocidad angular del motor y la velocidad angular del brazo. A partir de la expresión en la figura anterior, se tradujo a diagramas de bloques en la herramienta Simulink de Matlab para realizar la simulación y encontrar parámetros de comportamiento de la planta como el tiempo de muestreo mediante la respuesta temporal a la entrada de los valores límite del rango de trabajo, la estabilidad del sistema y el error en estado estacionario ante las entradas con números aleatorios dentro de su rango de control, todo esto con el objetivo de encontrar los parámetros para el entrenamiento de las redes necesarias para su control.

Fig. 20. Diagrama de Bloques de la Flexible Joint [21]

6.3 DISEÑO DE LOS CONTROLADORES

Para el diseño de los controladores se ha optado por utilizar un control neuronal y un control difuso, esto es debido a que al ser controladores robustos y complejos permiten explotar de una manera controlada la selección de las tarjetas que más adelante son especificadas.

6.3.1 Diseño del controlador neuronal

El diseño de control neuronal es una forma muy versátil para controlar un sistema, existen varias formas de realizar dicho control, para este caso, se van a descartar los tipos de control de más de una capa oculta. Por ello se tienen en cuenta dos opciones, realizar el control inverso a la planta (explicar) o tomar un controlador no

Page 42: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

42

neuronal previamente diseñado y tomar su modelo en RNA para que emule dicho comportamiento.

En este trabajo se precisa tomar un controlador clásico (PID), cuyos valores para la constante proporcional, integral y derivativa es 1.8, 1.5 y 3 respectivamente. Por lo que se replica su comportamiento mediante el uso de una red neuronal; para ello, se requiere tomar datos de la entrada y la salida del sistema de control. La función de transferencia fue sacada de [7] (ver Fig. 21.)

Fig. 21. Diagrama de Bloques de la toma de datos del controlador clásico

Posteriormente para verificar que el controlador PID realmente es capaz de controlar la planta, se realiza una prueba bajo el modelo matemático de la Fig. 21 y el resultado se encuentra en la Fig. 22.

Fig. 22. Funcionamiento del controlador clásico

Page 43: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

43

Posterior a obtener los datos requeridos para el diseño de la red, se debe ingresar esta información en un código que algunas de las variables adicionales a lo obtenido en la toma de datos son el número de neuronas de la red, la función de activación, el tipo de entrenamiento, el número de iteraciones que tiene para realizar el entrenamiento, además de asignar el tipo de modelo que va a generar. Específicamente para este caso, la red consta de una mlp de una capa oculta, compuesta por 25 neuronas, clase ARX, tangente sigmoidal como función de activación, parámetro de entrenamiento de Levenberg- Marquardt, 1000 iteraciones y con 1 ms de tiempo de muestreo.

Fig. 23. Parámetros de entrenamiento de la red

Al entrenar la red es posible observar el rendimiento y el estado de entrenamiento, todo esto se encuentra ilustrado en la Fig. 24.

Page 44: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

44

Fig. 24 Rendimiento de la red durante el entrenamiento.

Al terminar de realizar el entrenamiento, el programa genera un bloque es la representación de la red para utilizarse en el entorno de Simulink, adicionalmente, el sistema necesita de una configuración especial dada por el tipo de regresor que se utilice durante el entrenamiento. En el caso de la red entrenada su regresor es de la forma Y(k)= [ Y(k-1), Y(k-2), U(k-1), U(k-2)]. (ver Fig. 25.)

Fig. 25. Implementación del controlador de acuerdo al regresor Y(k)=[Y(k-1), Y(k-2), U(k-1), U(k-2)]

Finalmente, el sistema completo para la simulación del controlador se puede observar en la imagen.

Page 45: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

45

Fig. 26. Simulación del sistema de control neuronal

La imagen representa el modelo del sistema sacado anteriormente con los valores reales del sistema, la entrada que es un número randómico y la red con su respectivo regresor. La red permite emular la función del controlador práctico, pero con una abismal diferencia en la acción de control, tal y como se puede en la imagen.

Page 46: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

46

Fig. 27. Entrada vs Salida del sistema. (A) Control neuronal, B) Control proporcional, integral y derivativo)

En la imagen se puede observar que ambos controladores controlan el sistema de manera satisfactoria. Según lo visto anteriormente, la red fue diseñada para emular el comportamiento del PID, por lo tanto, se puede pensar que debe realizar las oscilaciones del periodo transitorio y por consiguiente llegar a pensar que la red no fue bien entrenada.

Page 47: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

47

El seguir dicho comportamiento implica que el sistema se encuentra sobreentrenado y esto se refleja en la acción de control de ambos sistemas de control donde, por un lado, el PID tiene un mayor esfuerzo mientras la red suaviza el mismo.

Fig. 28 Acción de control, línea azul: Controlador PID, línea negra: Modelo neuronal. Se puede observar una disminución considerable en la acción de control.

6.3.2 Diseño del controlador difuso.

Para el diseño del controlador difuso se debe tomar en cuenta el comportamiento del error y su derivada, en un trabajo anterior a este, se definió dicho comportamiento como se expresa en la figura 29.

Page 48: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

48

Fig. 29. Comportamiento del sistema Flexible Joint [3]

Se puede apreciar que, dependiendo de la rotación del motor, se define el comportamiento del error y la derivada del mismo. Con esto en mente, se puede estimar un conjunto de reglas que definen la acción de control respectiva en cada caso. Para mayor entendimiento se expondrá una situación hipotética pero posible para el accionar del sistema.

Partiendo del reposo, se requiere que el sistema gire 45 grados en sentido horario, tomando en cuenta la imagen anterior, el sistema va a presentar un error negativo, mientras se desplaza hacia su destino, al mismo tiempo la derivada del error que predice la tendencia del movimiento en un instante de tiempo futuro, nos dice que está pasando entre la muestra actual y la pasada, al moverse en dicho sentido, siempre será negativo. Caso contrario se pide que gire en sentido antihorario, el error será positivo, mientras su tendencia de movimiento también será positiva, por lo tanto, la derivada del error será positiva.

Fig. 30. Error Flexible Joint

Page 49: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

49

Fig. 31. Derivada del Error

En la siguiente tabla, se puede apreciar los valores dados a las etiquetas lingüísticas, donde MN significa Muy Negativo, N Negativo, Z representa Cero, P positivo y MP muy positivo, los valores obtenidos de las reglas oscilan entre 10 y 70 grados, aproximadamente 0.07 - 0.8 voltios.

TABLA V

Valores de las etiquetas lingüísticas

En la TABLA II. se pueden observar las reglas del controlador para el sistema Flexible Joint, con esto se determina la acción de control para corregir el movimiento.

Page 50: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

50

TABLA VI

Reglas del controlador

Reglas Derivada del Error

MN N Z P MP

Error MN MN MN N N Z

N MN N N N P

Z N N Z P P

P N P P P MP

MP Z P P MP MP

Tomando en cuenta que el controlador solo funciona de acuerdo a consideraciones especiales que no son fácilmente representadas mediante una simulación, se omite la simulación del mismo.

6.4 PLANTEAMIENTO DE LA MISIÓN DEL PROYECTO

La misión es la de realizar una sustitución de una tarjeta de adquisición de datos especializada, por medio de sistemas más accesibles, adicionalmente, proveerá al usuario la facilidad de programar de manera efectiva y práctica a un menor coste de adquisición.

Page 51: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

51

TABLA VII

Planteamiento de la misión.

Planteamiento de las Misiones

Descripción del Producto

● Un dispositivo electrónico de control que permita diseñar, planificar y desarrollar un comportamiento deseado en un sistema dinámico.

Propuestas de Valor

● Desarrollar un prototipo que cumpla con los requisitos mínimos del cliente.

● Fomentar el desarrollo de dispositivos que complementan el aprendizaje mediante la programación de controles inteligentes.

● Ampliar la capacidad de préstamo del almacén de la Universidad Autónoma de Occidente

● Personalización y accesibilidad a los sistemas especializados de Quanser.

Mercado Objetivo

Mercado primario ● Estudiantes de la materia de Control Inteligente. ● Equipos de ingenieros en formación multidisciplinarios.

Mercado secundario ● Universidades. ● Semilleros de investigación. ● Aficionados.

Tomando en consideración la propuesta de valor, la descripción del producto y el mercado objetivo, se puede pasar a hablar con el cliente y dejar en claro las premisas y restricciones del producto.

Page 52: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

52

TABLA VIII

Premisas y restricciones del producto.

Premisas ·

● El costo del producto es menor respecto a la alternativa presente en el almacén.

● El microprocesador tiene el poder ejecutar procesos de control. ● Permite la programación mediante un software sencillo para el

programador. Restricciones ❏ Amigable con el medio ambiente. ❏ Funciona con tecnología de fácil adquisición. ❏ Fácil reparación. ❏ Tiene una velocidad de reloj al menos de 1 MHz.

Con las premisas y restricciones ya establecidas, es posible proceder a la identificación de las necesidades, de acuerdo al planteamiento del cliente, darle una respectiva calificación a cada una de ellas, para poder asignar de manera pertinente la importancia de cada una de ellas.

Page 53: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

53

6.4.1 Identificación de las necesidades

En la tabla. se encuentran especificada las necesidades planteadas por el cliente y el ajuste para que estas sean medibles.

TABLA IX

Identificación de necesidades

# Planteamiento del cliente Identificación de necesidad

Importancia

1 El dispositivo es económicamente accesible

Costo 6

2 El dispositivo funciona con otras plantas.

Multiplataforma 3

3 ·El dispositivo puede soportar distintos tipos de técnicas de control.

Técnicas de control 9

4 El dispositivo se encuentra en distintos establecimientos

comerciales.

Disponibilidad 9

5 El sistema de acondicionamiento es accesible económicamente.

Adquisición de materiales

6

6 El acondicionamiento de señal es de fácil fabricación y manipulación

Complejidad del diseño

3

Page 54: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

54

Con la tabla. es posible traducir las especificaciones del cliente, de tal manera que, se puede otorgar una jerarquía de acuerdo a la importancia y posteriormente, especificar las métricas para seleccionar el mejor prototipo de acuerdo a lo establecido.

TABLA X

Métricas del proyecto

Núm. Necesidades Métrica Imp. UND

1 1,5 Costo 6 $

2 2 Multiplataforma 3 Lista

3 3 Técnicas de control 9 Lista

4 2, 4, 5 Disponibilidad 9 Lista

5 6 Complejidad del diseño 6 Lista

Para plantear una solución, es necesario determinar las entradas y salidas del dispositivo, conociendo el funcionamiento del sistema, es decir que requiere que tenga y bajo qué parámetros debe trabajar. Para el primero se emplea el uso de la caja negra.

Fig. 32. Caja negra del dispositivo

Teniendo el conocimiento de las entradas y salidas, y contando con el funcionamiento básico de un sistema de control, se puede precisar que el dispositivo

Page 55: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

55

necesita del control, un conversor de digital-analógico, una retroalimentación que permita al controlador tener información en tiempo real del sistema y un acondicionamiento para obtener más potencia.

Fig. 33. Caja blanca del dispositivo.

6.4.2 Generación de conceptos (alternativas)

Para la implementación de los controladores, se hace uso de la tarjeta de adquisición de datos MyRIO-1900, que en la actualidad dentro de las instalaciones de la universidad se encuentran disponibles dos de ellas, por lo que es necesario buscar una alternativa más accesible para los usuarios de las diferentes modalidades de las plantas Quanser, por ello se han estudiado 3 tipos de controladores que son monetariamente más accesibles y que tienen la capacidad de que cada usuario cargue con ellas de manera libre, realizando ciertas modificaciones a la hora de realizar la implementación de controles sobre los diferentes sistemas.

Page 56: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

56

6.4.2.1 Arduino mega (atmega 2560)

Es un microcontrolador fabricado por la empresa Atmel de 8 bits, cuenta con 256KB de memoria flash programable, una RAM de 8 KB, interfaz 2-wire, SPI, USART (puerto serial), con una velocidad de reloj de 16MHz, 86 puertos programables (entrada/salida), 6 temporizadores y cuenta con canales de ADC (16 canales de 10 bits) [22].

Para tener óptimos resultados, este microcontrolador requiere la fabricación de un DAC para obtener una salida analógica, puesto que, dentro de su mapa I/O (entradas/salidas), no cuenta con una salida análoga integrada (discriminando las salidas de PWM), por lo tanto, dentro del software, debe realizarse una conversión a la salida del controlador que no requiere mucho trabajo, pero en términos de hardware, depende netamente de la calidad de los materiales y de una buena calibración, incluyendo el hecho de que también depende de un circuito acondicionador de la señal [22].

6.4.2.2 Raspberry pi-3b+ (broadcom bcm2837)

La Raspberry Pi 3 Modelo B+ es un modelo de la serie Raspberry Pi 3, está impulsado por un procesador quad core de 64 bits a 1.4 GHz, LAN inalámbrica de banda dual de 2.4 GHz y 5 GHz, Bluetooth 4.2 / BLE, Ethernet más rápida y capacidad PoE a través de un PoE HAT independiente [23].

La serie de Raspberry Pi 3 tienen aplicaciones realizando controladores para sistemas autónomos o para IOT (Internet de las cosas) y aprendizaje en programación debido a que su SO (Sistema Operativo), está basado en LINUX [23].

Es un controlador muy potente y se encuentra sobredimensionado a la problemática a tratar en el proyecto, adicionalmente, al igual que con el Arduino Mega, no cuenta con un DAC integrado que permita tener precisión, además de un acondicionamiento de la señal de salida.

6.4.2.3 Arduino due (atmel sam3x8e)

El Arduino Due es la primera placa Arduino basada en un microcontrolador de núcleo ARM de 32 bits. Con 54 pines de entrada / salida digital, 12 entradas analógicas [24].

Page 57: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

57

Arduino Due es una tarjeta con un microcontrolador basado en la CPU Atmel SAM3X8E ARM Cortex-M3. Es la primera tarjeta Arduino basada en un microcontrolador de núcleo ARM de 32 bits. Tiene 54 pines de entrada / salida digital de uso muy similar a los del Arduino Mega 2560 (de los cuales 12 se pueden usar como salidas PWM), 12 entradas analógicas, 4 UARTs (puertos serie de hardware), un reloj de 84 MHz, una conexión compatible con USB OTG, 2 DAC (digital a analógico), 2 TWI, un conector de alimentación, un encabezado SPI, un encabezado JTAG, un botón de reinicio y un botón de borrado [24].

La única condición especial del Arduino Due a diferencia de la mayoría de las tarjetas de Arduino es que funciona a un voltaje de 3.3 V, el cual es el máximo voltaje que soportan los puertos de entrada/salida y someter cualquiera de estos pines a un voltaje mayor podría dañar la tarjeta.

6.4.3 Despliegue de gestión de calidad (qfd)

Tomando en cuenta lo anterior se plantea el uso de la herramienta de diseño de la casa de la calidad, esto permite establecer prioridades sobre las necesidades y las métricas, además de la influencia que ejerce cada métrica sobre cada necesidad, todo esto, mientras se evalúa cada alternativa. La parte lateral izquierda, consiste en evaluar la importancia dada por el cliente, donde este da prioridad a las necesidades que considere de mayor relevancia, por lo tanto, la salida de esta son los pesos de los requerimientos. Mientras la parte central se precisa para evaluar si las métricas cubren una o más necesidades, conociendo su relación (fuerte, moderado o débil), además de contar con la dirección de mejoramiento que muestra hacia donde se enfocan los esfuerzos respecto a las métricas.

Page 58: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

58

TABLA XI

Pesos de los requerimientos, dirección de mejoramiento y relación de las métricas con las necesidades.

Relaciones Fuerte (9) ● Moderado (3) ○ Débil (1) ▽

Como se observa en la tabla VII, la necesidad más importante para el cliente es la de soportar diferentes técnicas de control, pues tiene un 29% de relevancia, seguido por un triple empate entre los costos del controlador y su debido acondicionamiento y la accesibilidad del último. Respecto a la parte central, las métricas que tienen mayor relación con las necesidades son el costo y las técnicas de control con un total de 28 puntos, lo cual tiene sentido, ya que se busca una alternativa de menor costo para el control del sistema flexible joint.

La herramienta de evaluación de calidad también cuenta con una evaluación de las alternativas respecto a las necesidades planteadas por el cliente. En ellas dentro de este trabajo, se asigna como competencia la tarjeta que se encuentra actualmente en uso la MyRIO-1900.

Page 59: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

59

TABLA XII

Desempeño de los competidores con respecto a las necesidades del cliente.

Como se puede observar en la tabla, se evaluaron cada uno de las diferentes alternativas de acuerdo al rendimiento que tuvieron durante la etapa de selección, dando un caso de ello, la tarjeta actual (MyRIO-1900) es una tarjeta muy versátil, pero no es accesible para el público general puesto que, se requiere de al menos 15 millones de pesos para obtener solo el controlador, si a esto se le suma el hecho de que requiere un aditamento para poder controlar las plantas presentes en el Laboratorio de Automática de la Universidad Autónoma de Occidente, cuyo valor oscila entre los 3 y 4 millones de pesos (dependiendo del valor del dólar), todo para un total de 18 millones de pesos para controlar los sistemas en el sitio. También está el caso opuesto, el microcontrolador Atmega2560 (Arduino Mega), es una tarjeta muy accesible, de fácil disponibilidad, pero no es muy potente, por lo tanto, cumple a duras penas con la necesidad de más peso, además que el acondicionamiento por ser diseñado por el usuario, puede tener problemas de precisión.

Page 60: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

60

La parte inferior de la QFD se caracteriza por tener la evaluación técnica de las alternativas, es decir, compara las opciones con las métricas, tomando en cuenta el peso relativo de las últimas, todo ello con el fin de seleccionar de una manera adecuada el uso de alguna de las alternativas, como referencia se tiene la MyRio 1900, debido a que es la que está en uso actualmente.

TABLA XIII

Evaluación de las alternativas

Como se tiene previsto, la MyRIO-1900, cumple de manera muy efectiva la tarea de realizar control sobre los diferentes sistemas, pero en lo que respecta a dos de las métricas de más peso, se queda muy por detrás (Costo y Disponibilidad), Así mismo las alternativa más factible es el Arduino Due, puesto que es la que posee el mayor total ponderado (la puntuación en cada métrica por el valor del peso relativo), seguido por la Raspberry Pi-3B+. Otra conclusión que se puede sacar de la evaluación es que a pesar de que la alternativa del Arduino Mega tuvo la misma

Page 61: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

61

puntuación que la MyRIO-1900, su ponderado fue más alto, esto se debe a que las métricas en las que más destaca, tienen una puntuación más alta.

Teniendo la alternativa elegida, se puede proceder a realizar todos los procedimientos para que esta funcione de manera adecuada y los ajustes de software necesarios para el funcionamiento efectivo del controlador, seguido del diseño del acondicionamiento de señal.

6.5 ADQUISICIÓN DE DATOS HACIENDO USO DE MATLAB.

Para la adquisición de datos de la planta se hará uso del programa Matlab. Teniendo el conocimiento de que se utilizará un Arduino como plataforma de adquisición de datos, se procede a descargar en el programa de Matlab una ayuda externa o “Add-on” con el nombre de “Simulink Support Package for Arduino Hardware”. Una vez instalado se realiza la configuración del paquete conectando el Arduino al procesador y descargando todas las librerías que este paquete contiene.

Con este paquete tendremos acceso a una serie de bloques en el programa Simulink de Matlab, lo cual da la capacidad de configurar y tener acceso a sensores, actuadores y diferentes protocolos de comunicación de la tarjeta.

Para poder comenzar a modelar el sistema para la adquisición de datos es necesario configurar el modo “External” y sincronizar la tarjeta de Arduino que se utilizará, para esto se realizan los siguientes pasos:

1. Desde la barra de herramientas del editor de Simulink, seleccione “external”.

Fig. 34. Barra de herramientas de Simulink.

Esta selección activa la generación de código para soportar la comunicación en modo externo entre Simulink y los sistemas de destino, en este caso Arduino.

2. En la barra de herramientas de Simulink, seleccione Simulation > Model Configuration Parameters.

Page 62: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

62

Fig. 35. Ruta de configuración de parámetros

3. En la ventana que emerge seleccione Hardware implementation

Fig. 36. Implementación del hardware

4. Seleccione la tarjeta de hardware a utilizar. En este caso particular un Arduino Due.

Fig. 37. Selección de la tarjeta

Nota: En caso de no encontrar la tarjeta adecuada, seleccionar la pestaña Hardware board lo que abrirá una lista, y en ella seleccionar la opción Get Hardware Support Packages.

Page 63: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

63

Fig. 38. Selección de paquetes en caso de no tener la tarjeta instalada

Esto abrirá una ventana con add-ons y se selecciona el paquete de soporte de hardware para Arduino e instalarlo.

Fig. 39. Selección del hardware de Arduino

Al tenerlo instalado, entrar en el paquete y sale una ventana con toda la información del paquete, y se selecciona manage, lo que abrirá una ventana más y en Matlab Support Package For Arduino Hardware, se hace click sobre la tuerca, esto hace emerger una ventana de instalación.

Page 64: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

64

Fig. 40. Ventana del paquete de hardware de Arduino

Esto abre una ventana más y en Matlab Support Package For Arduino Hardware, se hace click sobre la tuerca.

Fig. 41. Configuración e instalación del paquete

Esto hace emerger una ventana de instalación, se hace click en next.

Fig. 42. Ventana de instalación

Page 65: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

65

En la ventana de Arduino Hardware Setup, en la pregunta de Do you want set up your Arduino board connection, se selecciona yes y se da click en next (Todo se debe hacer con el Arduino conectado al computador).

Fig. 43 Inicialización de la tarjeta

En esta ventana se selecciona el medio por el cual el Arduino se encuentra conectado al equipo y se hace click en next.

Fig. 44. Selección del método por el cual está conectada la tarjeta al computador

Page 66: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

66

Sale una ventana donde en choose board selecciona la tarjeta de la lista, en choose port, se selecciona el puerto al que está conectado y se hace click en program. (Opcional: Si se requiere, puede instalar todas las librerías)

Fig. 45. Selección de librerías

Al darle en Program, se inicia la instalación de las librerías en la tarjeta, al finalizar, emerge una ventana más, donde se da click en finalizar para cerrar dicha ventana. (Opcional: Si requiere ver los ejemplos que trae Matlab para el paquete recién instalado, dejar seleccionado la pestaña que dice Show examples for support package)

Page 67: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

67

Fig. 46. Ventana de finalización de la instalación

Realizando estos pasos, garantiza la aparición de la tarjeta en la ventana de Hardware Board, en la ventana de hardware implementation.

Click en Ok y continúe con la construcción del modelo de adquisición de datos.

Fig. 47. Diagrama de bloques para la lectura de encoders

Descripción de los bloques utilizados en el diseño del sistema de adquisición de datos:

Page 68: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

68

● Los dos bloques de memoria (Memory blocks), crean los estados PA (estado anterior o pasado del Ch A) y PB (estado anterior o pasado de Ch B). EL bloque tiene una entrada y una salida, creando un retraso en la señal. El incremento de tiempo se establece automáticamente desde el bloque anterior cuando se selecciona la característica ‘inherited sample time’. Al seleccionar este modo el modelo se sincronizará con él mismo.

Fig. 48. Bloque de memoria

● El trabajo del bloque Detectar cambio (Detect change) es notificar al bloque comparación (Matlab fcn), que lea los valores “Pasados” (PA y PB) y los valores actuales (CA y CB). La entrada de estos bloques son la señal A y B, y su salida va a un bloque de operador lógico (en este caso un operador OR). Esta lógica activará un estado TRUE (retorna un ‘1’) cuando cualquier entrada sea verdadera, su salida es T (trigger o disparo).

Fig. 49. Bloque de detección de cambio

● El bloque comparación (MATLAB Function) conecta el modelo de Simulink que se está ejecutando a un script de Matlab. Este es el bloque más importante, ya que es el que compara los valores de los encoders y determina su salida. Las entradas de este bloque son: PA (Pasado de A), PB (Pasado de B), CA (estado actual A), CB (estado actual B) y T (trigger o disparo). Y las salidas MR (giro en sentido manecillas del reloj) y CMR (giro en sentido contra manecillas del reloj) las cuales son valores booleanos. El script .m se describe más adelante.

Page 69: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

69

Fig. 50. Bloque de comparación

● Las salidas del bloque comparación van cada una a un bloque contador el cual incrementa el valor de su salida en 1 (+1) cada vez que recibe un TRUE en su primera entrada. En la entrada reset se establece (set) con un 0. A la salida de cada bloque se le asigna una ganancia (gain), la cual tiene un valor de 0,08789062499999 lo que representa un grado de los 360 que cubre el encoder. Después de esto se suman entre sí respetando su signo (MR++ y CMR--).

Fig. 51. Bloque contador

● Para determinar el valor de la ganancia (gain) se divide el número que entrega el contador entre el número de cuentas que representa un grado en este caso la cantidad de cuentas por giro del encoder (4080) dividido entre la cantidad de grados del sistema (360º), lo cual da como resultado 11.37777777777778

Fig. 52. Bloque de ganancia

Page 70: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

70

● Script del bloque MATLAB Function

Con este código se determina el sentido de giro del motor:

function [MR,CMR] = comparacion(PA,PB,CA,CB,T)

%Condiciones iniciales

MR=NaN;n %Giro en manecillas del reloj

CMR=NaN; %Giro en contra de las manecillas del reloj

%Comparación

if(T==1) %Si existe un cambio continuar, de lo contrario return nada

if PA==0 % PA estado pasado de Ch A

if PB==0 %PB estado pasado de Ch B

if CA==0 && CB==1 %0001, CA estado actual Ch A

MR=1;

CMR=0;

elseif CA==1 && CB==0 %0010, CB estado actual de Ch B

MR=0;

CMR=1;

end

Page 71: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

71

elseif PB==1

if CA==1 && CB==1 %0111

MR=1;

CMR=0;

elseif CA==0 && CB==0 %0100

MR=0;

CMR=1;

end

end

elseif PA==1

if PB==1

if CA==1 && CB==0 %1110

MR=1;

CMR=0;

elseif CA==0 && CB==1 %1101

MR=0;

CMR=1;

Page 72: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

72

end

elseif PB==0

if CA==0 && CB==0 %1000

MR=1;

CMR=0;

elseif CA==1 && CB==1 %1011

MR=0;

CMR=1;

end

end

end

end

end

● Realización del bloque MATLAB function paso a paso:

La inicialización de este código es muy importante, Simulink lo iniciará automáticamente con una plantilla de función en blanco como se muestra a continuación:

Page 73: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

73

Una vez en la plantilla empieza a escribir tu código debajo de la línea %#codegen. Para cambiar las variables de salida se reemplaza o escriben al lado izquierdo del igual ‘=’ en la primera línea.

function [MR,CMR] = comparacion(PA,PB,CA,CB,T)

MR=NaN;n %Giro en manecillas del reloj

CMR=NaN; %Giro en contra de las manecillas del reloj

Al declarar las variables MR y CMR como un ‘NaN’ (Not a number) en las condiciones iniciales, le permite a este código ejecutarse sin problemas cuando no hay cambios en los valores de PA a CA o de PB a CB.

Para que el código pueda procesar los valores de PA, PA, CA y CB el trigger ‘T’ (condición de disparo) tiene que ser igual a ‘1’. Esta línea está aquí para que la computadora que ejecuta el programa solo ejecute el script completo cuando lo necesite para conservar los recursos de la computadora.

Sentencia en la línea 6 del código.

Una vez ‘T’ sea igual a ‘1’ el código se ejecuta hasta el primer conjunto de sentencias if que determinarán la dirección del movimiento. Estas sentencias if están basadas en el código Gray.

Page 74: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

74

TABLA XIV

Código Gray que determina el sentido del giro

Las sentencias ‘if’ están basadas en estas cuatro líneas de código. Cada fila de tiene los 2 primeros bits de igual valor, pero los últimos 2 bits son diferentes lo que le permite al código .m diferenciar la dirección.

Para evitar repeticiones sin sentido se da una explicación del código de las líneas 6 a la 15. El resto de las líneas son similares, pero se han modificado para cumplir con los otros 6 casos.

Línea 6: if(T==1) %Si existe un cambio continuar, de lo contrario return nada

En esta línea si existe un cambio en algún canal del encoder, entra a la sentencia y continúa la ejecución.

Línea 7: if PA==0 % PA estado pasado de Ch A

Aquí se entra a otra sentencia if donde sí PA es igual a 0 entra y continúa la ejecución.

Línea 8: if PB==0 %PB estado pasado de Ch B

Esta sentencia comprueba que la entrada PB sea igual a cero, que al cumplirse seguirá corriendo el código.

Línea 9: if CA==0 && CB==1 %0001, CA estado actual Ch A

Page 75: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

75

MR=1;

CMR=0;

En esta línea se prueban los estados actuales de cada canal, y si CA es igual a 0 Y CB es igual a 1, se tiene que el giro se está dando en el sentido de las manecillas del reloj

Línea 12: elseif CA==1 && CB==0 %0010, CB estado actual de Ch B

MR=0;

CMR=1;

De una forma similar, en esta línea se da un caso de sino; donde la línea 9 no debe ser cierta y además al cumplirse que CA sea igual a 1 y CB igual a 0 se tendrá como salida un giro en el sentido en contra de las manecillas del reloj.

Se sigue la misma idea para el resto del código, manteniendo la relación de las filas del gráfico como la base de las declaraciones if.

6.6 ACONDICIONAMIENTO DE SEÑAL

Para el acondicionamiento de señal, se deben tener en cuenta dos cosas:

La primera es que la señal de Arduino mandada desde los puertos DAC0 y DAC1, tienen un offset equivalente a 0,550 voltios aproximadamente, que son variables de un Arduino a otro, este valor, se puede obtener buscando en las instrucciones dentro de la información suministrada por el equipo de Matlab en Simulink Support Package for Arduino Hardware y MATLAB Support Package for Arduino Hardware.

Page 76: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

76

Fig. 53 Tabla de datos de la salida analógica del Arduino Due [25]

La segunda va conforme a que la salida del controlador es en grados por lo que el DAC realiza una conversión a voltios, de acuerdo a la siguiente fórmula.

𝐕𝐨𝐮𝐭 = 𝐕𝐫𝐞𝐟𝐱 (𝐢𝐧𝐩𝐮𝐭

𝟐𝐍−𝟏) + 𝐕𝐨𝐟𝐟𝐬𝐞𝐭 [25] (11)

Donde Vout corresponde al voltaje de salida, Vref al voltaje de referencia, Input es la señal que se provee al bloque DAC, N el número de Bits y Voffset corresponde al offset del Arduino Due, los valores de algunos de estas variables se encuentran almacenados en la tabla IV.

Teniendo en cuenta dichos parámetros es posible diseñar un circuito de acondicionamiento que permite ajustar de manera precisa los valores máximos y mínimos deseados para la etapa previa al incremento de potencia.

Inicialmente se plantea garantizar que la salida del controlador sea un cero (0,00), lo que significa la elaboración de un circuito restador de la forma.

Page 77: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

77

Fig. 54. Circuito restador [26]

Tomando en cuenta el diseño del circuito se plantea la construcción del valor del voltaje V1, saliendo este de un divisor de voltaje, por lo tanto, la ecuación está dada por:

𝐕𝟏 =𝐑𝟐

𝐑𝟏+𝐑𝟐𝐕𝐜𝐜 (12)

Y tiene la forma de:

Fig. 55. Divisor de voltaje

Suponiendo el valor R1 como 100k y sabiendo que experimentalmente el offset es de 520,9 mV entonces el valor de r2 es de 4538 𝞨.

Page 78: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

78

Posteriormente se procede al diseño del restador que la ganancia depende de los valores de las resistencias, para ello, suponiendo que R1 = R2 y R3 = R4 entonces la ecuación variaría de tal forma que el cálculo se simplifica a lo expuesto a la siguiente ecuación.

𝐕𝐨𝐮𝐭 =(𝐕𝟐−𝐕𝟏)𝐑𝟑

𝐑𝟏 (13)

Para que la ganancia sea 1 suponemos que todas las resistencias son iguales, por lo que queda solamente la diferencia entre los voltajes, quedando el circuito de la siguiente manera.

Fig. 56. Circuito restador de ganancia 1, para eliminar el offset del DAC

Garantizando que si se manda un cero (0.0) desde un pin análogo del controlador, se empieza el diseño de la etapa de acondicionamiento. cabe destacar que, a partir de este punto, los valores de salida de cada etapa están determinados de manera personal, por lo tanto, si se requiere una salida más potente, requiere variar los valores a conveniencia.

Page 79: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

79

Para este caso, se trabaja con una salida máxima de tensión aproximada a 0,65 Voltios, por lo tanto, linealizando el sistema, se toman los puntos en los que el valor de tensión a la salida debería ser 0 (es decir 45º) y un valor que es complementario en ambos lados del plano (para este caso en particular, el voltaje suministrado en 10º o 70º).

Posteriormente, de establecer el cero del sistema, y los puntos máximos y mínimos, es necesario sacar los valores de ganancia m y el punto de corte en el eje y. Todo ello para que el sistema quede de la forma y = mx + b, para ello se puede tomar los puntos limitantes o un límite y el cero (45º) en sus respectivos valores de tensión. Para este caso se utilizan los puntos P (0.035265, 0.65) y Q (0.017633,0)

El cálculo de la pendiente está dado por:

𝐦 =𝐲𝟐−𝐲𝟏

𝐱𝟐−𝐱𝟏=

𝟎.𝟔𝟓−𝟎

𝟎.𝟎𝟑𝟓𝟐𝟔𝟓−𝟎.𝟎𝟏𝟕𝟔𝟑𝟑= 𝟑𝟔. 𝟖𝟔𝟒𝟖 (14)

Tenemos que m = 36.8648

Para ello la ganancia se ve representada en el circuito de acondicionamiento con un amplificador no inversor.

Fig. 57. Amplificador no inversor [26]

Para realizar el cálculo de la ganancia especificado en la imagen anterior, es necesario asumir el valor de una resistencia, por ende, el valor de Rf es 100K𝞨 y el

Page 80: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

80

valor de R1 para obtener el multiplicador necesario está dada por la siguiente ecuación.

𝐀 = 𝟏 +𝐑𝐟

𝐑𝟏 (15)

Reemplazando A y Rf:

𝟑𝟔. 𝟖𝟔𝟒𝟖 = 𝟏 +𝟏𝟎𝟎𝐊𝛀

𝐑𝟏 (16)

Despejando R1:

𝑅1 = 2788.25 ≅ 2.8𝐾𝛺

Habiendo obtenido el valor de R1 el circuito amplificador no inversor queda de la siguiente forma.

Page 81: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

81

Fig. 58. Amplificador de ganancia 36.8648

Finalmente, para terminar el acondicionamiento de la señal, falta hallar el punto de corte con el eje de la salida, para poder adquirir dicho valor, se necesita tomar la ecuación de la recta de trabajo y un punto, tal y como se muestra a continuación.

𝐲 = 𝐦𝐱 + 𝐛 (17)

Tomando el punto Q y reemplazando m:

𝟎 = 𝟑𝟔. 𝟖𝟔𝟒𝟖(𝟎. 𝟎𝟏𝟕𝟔𝟑𝟑) + 𝐛 (18)

Despejando b:

𝐛 = −(𝟑𝟔. 𝟖𝟔𝟒𝟖(𝟎. 𝟎𝟏𝟕𝟔𝟑𝟑)) = −𝟎. 𝟔𝟓𝟎𝟎𝟑𝟕 (19)

Para obtener la ecuación que rige el sistema de acondicionamiento de señal.

𝐲 = 𝟑𝟔. 𝟖𝟔𝟒𝟖𝐱 − 𝟎. 𝟔𝟓𝟎𝟎𝟑𝟕 (20)

Page 82: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

82

Tomando el valor de b y la forma en cómo influye en la ecuación, es necesario realizar un restador de ganancia uno, por lo tanto, se puede replicar el mismo diseño anteriormente implementado de un restador no inversor. Suponiendo todas las resistencias iguales se asegura que la etapa tenga ganancia 1, consecuentemente, lo único que falta por diseñar, es el divisor que refleja el valor de b, para el cual, se implementa un divisor de voltaje de la forma.

Fig. 59. Divisor de tensión

Teniendo el valor de la resistencia R14, la etapa restadora se ve representada en la siguiente imagen.

Page 83: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

83

Fig. 60. Restador b

Para la figura completa es necesario dirigirse al anexo A.

Page 84: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

84

7. IMPLEMENTACIÓN

Para la implementación de los controladores es necesario realizar ciertas variaciones en las conexiones al banco de poder y para ello se requieren de los siguientes materiales.

TABLA XV

Tabla de materiales

Las plantas Quanser generalmente requieren de una amplificación de potencia para la señal de control enviada desde la tarjeta. Para ello el fabricante cuenta con el banco de poder UPM-1503, este tiene la función de realizar el aumento de potencia mencionado anteriormente y la alimentación del circuito acondicionador.

Page 85: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

85

Fig. 61. Módulo Universal de Poder 15-03 (UPM 15-03) [27]

Para realizar su función, es necesario utilizar la fuente que se encuentra incorporada en la parte superior del banco (valor de tensión eléctrica fija en 12V y -12V), y la parte inferior en la que se encuentra la entrada, donde llega la señal de control (From analog output D/A) y la alimentación del motor (To Motor).

Las conexiones requeridas para la lectura de los encoder, son dos cables tipo 5-pin-stereo-Din, uno para la lectura del encoder del SRV-02 y el otro para el encoder anexado a la articulación flexible, para realizar dicho emparejamiento es necesario tomar en cuenta la configuración de los cables de la imagen.

Fig. 62. Configuración del conector tipo 5-pin-stereo-Din [3]

Las conexiones de los canales van dirigidas a las entradas digitales del controlador, puesto que, la señal que se manda son pulsos, y los pines GND y 5V van conectados a la zona declarada como Power Pins de la imagen.

Page 86: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

86

Fig. 63. Pinout Arduino Due [28]

7.1 IMPLEMENTACIÓN DE CONTROLADORES POR MEDIO DE MATLAB.

Para la implementación de los controladores usando Matlab, es necesario haber realizado la configuración del programa apropiadamente, tal y como se explica en la sección 6.5, adicionalmente del montaje del circuito de la sección 6.6. Teniendo esto en cuenta se procede al desarrollo de ambos controladores.

Page 87: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

87

7.2 IMPLEMENTACIÓN DEL CONTROLADOR NEURONAL.

Para el sistema Flexible Joint es necesario tomar en cuenta que tiene dos encoders, uno para el motor SRV 02 y otro en la articulación, para realizar una correcta lectura, se deben tomar ambos valores y sumarlos y esto compararlo con la referencia, así como se puede apreciar en la figura.

Fig. 64. Adquisición de datos y comparación

Todos estos valores están destinados a la entrada del controlador en forma del error y aplicando el modelo de ARX, el sistema de control queda de la siguiente forma.

Page 88: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

88

Fig. 65 Implementación del controlador neuronal

Utilizando el acondicionamiento de señal y la acción de control se tiene el siguiente resultado del controlador.

Fig. 66 Resultado del controlador neuronal (línea azul representa la referencia (entrada), la roja la lectura de los sensores (salida))

Es posible concluir que el controlador tiene un desfase de dos a tres grados, esto se debe a que por un lado, el disco del encoder del motor se suele desalinear con el lector, haciendo que el controlador detecte que se encuentre en el sitio, cuando realmente no es así, esto pasa incluso con la MyRio 1900, y es necesario un

Page 89: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

89

mantenimiento más frecuente para evitar este problema, otro motivo, es que los cambios muy grandes la lectura del encoder no es lo suficientemente rápida para detectar cambios tan grandes, se puede mejorar usando un tiempo de muestreo más alto a costa de tener un costo de consumo de energía más alto.

7.3 IMPLEMENTACIÓN DEL CONTROLADOR DIFUSO.

Utilizando la misma configuración de lectura de datos, el sistema tiene una ligera modificación debido a que son diferentes.

Fig. 67. Diagrama de bloques del controlador difuso

El resultado de la implementación del sistema difuso presenta una mejora ligera sobre el controlador neuronal, puesto que, los valores de cada una de las reglas, se pueden manejar a conveniencia, logrando que, aumenta la precisión, aun así, tiene el mismo problema de la imprecisión de la lectura del encoder del motor, todo esto se puede ver en la figura.

Page 90: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

90

Fig. 68. Respuesta del controlador difuso. (Azul referencia, rojo salida)

En este diagrama se observan las conexiones completas del sistema y la dirección de la información y señales que realizan el control de la planta Flexible Joint.

Fig. 69. Diagrama del sistema de control completo con Matlab

Page 91: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

91

Para utilizar Arduino como controlador, la variación en el esquema de control cambia ligeramente, pero es necesario tenerla en cuenta para proceder a la siguiente sección.

Fig. 70. Diagrama del sistema completo con Arduino

7.4 ADQUISICIÓN DE DATOS POR MEDIO DE ARDUINO PARA CONTROL DIFUSO

Para la realización del control de la planta con el modelo de control difuso o fuzzy a través de una plataforma de hardware libre se realiza el proceso de adquisición de la señal, conversión de la señal, control y salida de la misma a través de la plataforma de Arduino la cual se encuentra disponible de forma completamente gratuita.

Para recopilar la información de los encoders de la planta se hace uso del siguiente código:

Page 92: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

92

Dónde la librería Encoder.h contiene las funciones a realizar para la codificación de las cuentas de los sensores. Una vez se obtienen las cuentas de los encoder se realiza la transformación a grados donde se divide este número de cuentas en 11.385 lo cual representa un grado (º).

Una vez se tiene la lectura de los encoder se realiza el control de la planta por medio de sistema difuso con el siguiente código:

Page 93: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

93

Como se puede apreciar se inicializan todas las variables que se utilizan en el proceso de control, y haciendo uso de la librería “sfun_fuzzyutilsug.h” se genera el control difuso sugeno. Con el control listo se implementa al final del código la ecuación en diferencia para calcular la salida del sistema el cual se hace a través del puerto DAC0 del Arduino Due.

Page 94: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

94

Como restricción importante para este modelo se tiene que su rango de trabajo sigue siendo de 90º pero a diferencia del control neuronal el cual trabaja en los rangos de -45º a 45º este sistema está diseñado para controlar la planta en un rango de 0º a 90º.

A través de la herramienta “Serial plotter” de Arduino podemos observar la entrada y salida de la planta evidenciando el control que realiza. El número randómico dentro del código es el encargado de realizar los cambios en la referencia del sistema y lo hace cada 500 muestras. El funcionamiento del controlador se evidencia de la siguiente manera:

Fig. 71. Referencia y salida de la planta control difuso por medio de Arduino. (Rojo representa la entrada del sistema (referencia), azul la salida (lectura de los encoders))

Para el correcto funcionamiento del controlador en Arduino fue necesario modificar el rango de trabajo de la planta para eliminar la parte negativa y hacerlo de un rango positivo de 90 grados (0º a 90º) debido a que el DAC interno de la tarjeta no acepta salidas negativas y la acción necesaria para corregir este problema ocupa mucha memoria interna y tiempo de muestreo los cuales ralentizan y/o afectan directamente el esfuerzo de control necesario para que la planta llegue a la referencia deseada.

Page 95: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

95

Para la parte final del sistema se utiliza el mismo acondicionamiento de señal utilizado en el control a través de Matlab para garantizar el correcto funcionamiento de la planta.

Page 96: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

96

8. CONCLUSIONES

Para generar el modelo de los controladores tanto neuronal como difuso fue necesario realizar el desarrollo matemático completo de la planta flexible Joint debido a que la teoría recopilada durante la investigación y futuros experimentos con estos modelos matemáticos terminaron en inconsistencia y convirtieron el sistema en no controlable desde ningún punto de vista. Al corregir este error se pudo proceder a hallar los modelos de control para esta planta.

Aún con un modelo matemático más ajustado a la realidad se requieren ajustes tanto en el controlador como en la planta, ya que esta última está expuesta al desgaste del uso diario y del medio ambiente en general.

Para realizar el cambio de software y hardware que se utilizaban originalmente para el control de la flexible Joint y el motor SRV02 se realizaron diversas pruebas alternando plataformas de software libre y se obtuvo que la mejor combinación era para el control neuronal usar como sistema o software Matlab, el cual está instalado con su respectiva licencia en todos los equipos del laboratorio de ingeniería de la universidad Autónoma de Occidente en compañía del hardware de un Arduino Due.

En cuanto al controlador difuso y prestando específica atención al objetivo de cambiar todo el sistema por uno de hardware libre, se implementó el modelo completamente en Arduino, como plataforma de programación e igualmente como tarjeta de comunicación entre el programa y la planta dando resultados prometedores.

Finalmente, para lograr un movimiento fluido y preciso en cuanto a las referencia deseadas fue necesario crear un acondicionamiento de señal el cual permitió asegurar el movimiento positivo (en contra de las manecillas del reloj) y negativo (en sentido de las manecillas del reloj). Este acondicionamiento junto con las bases de la programación puede ser usados para el control de cualquier planta que hoy en día se encuentran en las instalaciones de los laboratorios de ingeniería de la universidad requiriendo unos pequeños ajustes que deben hacerse por parte del diseñador.

Page 97: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

97

9. TRABAJO FUTURO

Para el futuro se planea incursionar más a fondo en el control neuronal dentro de la plataforma de Arduino para plantas de alta complejidad, desde la toma de datos para el entrenamiento de las redes hasta la ejecución del control sobre la planta real. Adicionalmente mejorar la velocidad de reacción del control difuso desarrollado en este trabajo para que la planta realice un movimiento con mayor fluidez y finalmente lograr cubrir el rango de trabajo negativo deseado que contempla desde -45º a 45º.

Otro plan a futuro es el de incursionar en más técnicas de control con el fin de llegar a otro tipo diferente de sistemas que actualmente se encuentran sin uso o con un uso muy limitado.

Page 98: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

98

REFERENCIAS

[1] C. H. y S. P., Adaptative Neural Network Control of Flexible-Joint Robotic Manipulators with Friction and Disturbance, 3. A. C. o. I. I. E. Society, Ed., Montreal, 2012.

[2] C. D. Cordoba y J. L. Velasco, Herramientas para la Enseñanza de Sistemas Inteligentes Utilizando Plataformas de Hardware Libres, Cali, Valle del Cauca: Universidad Autónoma de Occidente, 2017.

[3] G. E. Polanco y O. E. Soto, Análisis Comparativo de Técnicas de Control Convencional e Inteligentes con los Módulos Flexible Link, Flexible Joint y Ball Beam, Cali, Valle del Cauca: Universidad Autónoma de Occidente, 2013.

[4] S. M., «Aplicaciones Exitosas de Control Inteligente a Casos Reales,» Revista Iberoamericana de Automática e Informática Industrial, vol. 1, nº 8, p. 7, 2011.

[5] Q. Guo y P. W. Han Junfeng, «PMSM Servo Control System Design Based on Fuzzy PID,» de 2nd International Conference on Cybernetics, Robotics and Control, Xi'an, 2017.

[6] M. Cano Barragan y C. F. Narvaez Velazques, Diseño e Implementación de un Sistema Robótico que Permita el Reconocimiento de Caracteres Manuscritos y su Posterior Reproducción, Cali, Valle del Cauca: Universidad Autónoma de Occidente, 2017.

[7] J. C. Arenas, S. A. Cantillo, L. F. Chacón y J. A. López, «Modelling and Control using Neural Networks of Quanser Flexible Joint Module,» de CIIMA, Manizales, 2017.

[8] M. H. Beale, H. B. Demuth y M. T. Hagan, «Neural Network Design,» 1996. [En línea]. Disponible: https://hagan.okstate.edu/NNDesign.pdf.

Page 99: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

99

[9] M. Kratmüller, «Adaptive Fuzzy Control Design,» Siemens PSE, Bratislava, República de Eslovaquia, 2009.

[10] S. A. Cantillo, J. J. Lara y J. A. López, «Modeling and Control of a Two Tank System Using Artificial Neural Networks,» de IEEE, Cali, 2019.

[11] O. Gonzales, «Robot basado en Arduino controlado con una red neuronal,» BricoGeek, 14 11 2017. [En línea]. Disponible: https://blog.bricogeek.com/noticias/robotica/robot-basado-en-arduino-controlado-con-una-red-neuronal/.

[12] E. F. Bravo, J. A. López y M. A. Muñoz, Control Inteligente, Cali: Universidad del Valle, 2009.

[13] L. Kumar, «Science Direct,» Ocutbre 2017. [En línea]. Disponible: https://ezproxy.uao.edu.o:2082/science/article/pii/S0952197617301896.

[14] B. L. De Moor, J. A. Suykens y J. P. Vandewalle, Artificial Neural Networks for Modelling and Control of Non-Linear Systems, Springer My Copy UK, 1996.

[15] K. M. Passino. y S. Yurkovich, Fuzzy Control, Ohio: Addison-Wesley, 1997.

[16] Patagonia Tec, «Patagonia Tec blog,» [En línea]. Disponible: http://saber.patagoniatec.com/arduino-mega-2560-atmega-mega-arduino-clon-compatible-argentina-tutorial-basico-informacion-arduino-argentina-ptec/.

[17] Ulises, «Informática práctica cada día,» [En línea]. Disponible: http://www.rolon.es/que-es-raspberry-pi/..

[18] National Instruments, «USER GUIDE AND SPECIFICATIONS NI myRIO-1900,» 2016. [En línea]. Available: http://www.ni.com/pdf/manuals/376047c.pdf.

Page 100: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

100

[19] Quanser Inc., «Quanser Rotatory Servo,» 2011. [En línea]. Disponible: http://eecs.ucf.edu/~abehal/eel4612/lab/General/Rotflex_User_Manual.pdf. .

[20] Quanser Inc., «THE ROTATORY CONTROL LAB,» 2017. [En línea]. Disponible: https://www.quanser.com/wp-content/uploads/2017/04/Rotatory-Brochure-online.pdf.

[21] Y. Y. G. Y. W. J. G. W. y H. Bilal, Introduction Manipulator are the Spine of Industrial Robots. The Applications of Manipulators are Vast Enough so that They have been Used from Industry to Space and Mars wuth the Requirement of High Accuracy and min, Dalian: School of Automation; Nanjing University of Science and Technology, 2017.

[22] Arduino, «ARDUINO MEGA 2560 REV3,» Arduino, 2019. [En línea]. Disponible: https://store.arduino.cc/usa/mega-2560-r3.

[23] Raspberry pi, «Raspberry pi 3 Model B+,» [En línea]. Disponible: https://static.raspberrypi.org/files/product-briefs/Raspberry-Pi-Model-Bplus-Product-Brief.pdf.

[24] Arduino, «ARDUINO DUE,» 2019. [En línea]. Disponible: https://store.arduino.cc/usa/due.

[25] MathWorks, «Analog Output,» Mathworks, 2019. [En línea]. Disponible: https://la.mathworks.com/help/supportpkg/arduino/ref/analogoutput.html?s_tid=doc_ta.

[26] A. P. Malvino, M. A. Miller y P. B. Zoar, Prácticas de Electrónica, vol. 7, Barcelona: ALFAOMEGA GRUPO EDITOR, S.A, 2001.

[27] Quanser Inc., «Universal Power Module 1503, 1506, 2405, 2405-PWM, User Manual,» [En línea]. Disponible: http://www2.hawaii.edu/~gurdal/EE351L/upm.pdf. .

Page 101: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

101

[28] A. Aqeel, «Introduction to the Arduino Due,» 2018. [En línea]. Disponible: https://www.theengineeringprojects.com/2018/09/introduction-to-arduino-due.html.

Page 102: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

102

ANEXOS

Anexo A: ESQUEMÁTICO CIRCUITO ACONDICIONADOR

El siguiente diseño representa el esquemático del circuito completo acondicionador de señal, mediante el cual se aumenta la potencia de salida del controlador.

Fig. 72 Circuito acondicionador

Page 103: CONTROL INTELIGENTE PARA LOS SISTEMAS QUANSER … · Robot en Arduino que emula el sistema nervioso del gusano nematodo utilizando redes neuronales [2] 26 Fig. 8. Diagrama de implementación

103

Anexo B: MONTAJE CIRCUITO ACONDICIONADOR

Obtenido el esquemático, es posible realizar el montaje de este, y se encuentra en la figura 71, los trimmers y los potenciómetros, se usan para dar más precisión al circuito.

Fig. 73 Circuito físico de acondicionamiento de señal