Vous êtes sur la page 1sur 10
Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

DISEÑO Y SIMULACION DE UN CONTROL PID OPTIMIZADO MEDIANTE ALGORITMOS DE INTELIGENCIA COMPUTACIONAL PARA UN MANIPULADOR ROBOTICO DE 5 GRADOS DE LIBERTAD

AUTORES:

Víctor Caballero López, stine_143@hotmail.com Miguel Fernández Zavala, mickelit007@hotmail.com Franz Huanay Martínez, calhoun_123@hotmail.com

ASESORES:

David Achanccaray Diaz, ingmec251@hotmail.com

Escuela de Ingeniería Mecatrónica, Universidad Nacional de Ingeniería, Perú.

1. Introducción
1.
Introducción

Resumen: El propósito de este trabajo de investigación fue realizar el diseño y simulación de un control PID optimizado mediante algoritmos de inteligencia computacional aplicado en el seguimiento de la trayectoria de un manipulador robótico de 5 grados de libertad. El método utilizado realizó una optimización de nuestra sintonización manual inicial de los parámetros del controlador presente en cada grado de libertad para cada movimiento propuesto por el usuario a partir de algoritmos de inteligencia computacional, con la finalidad de evitar complicaciones en el cálculo respectivo de dichos parámetros. Como parte de nuestro análisis se diseñaran controladores difusos, neuro-difusos y el uso de algoritmos genéticos para sintonizar las ganancias. Este trabajo genera una mejor calidad de control en manipuladores robóticos así como también reduce la pérdida de tiempos que se invierten en la obtención e implementación de nuevos controladores en manipuladores presentes muchos de ellos en procesos que requieren menos pausas y más trabajo continuo y eficiente.

Key words: robotic manipulator, fuzzy control, PID, genetic algorithms, neuro-fuzzy control.

Los trabajos desarrollados por los robots manipuladores como un elemento más del proceso productivo consisten frecuentemente en tareas repetitivas, ello exige ubicarlos en áreas accesibles para el manipulador, caracterizado por la máxima extensión de sus articulaciones, lo cual podría resultar imposible a medida que el área sufra variaciones. La necesidad de obtener mayor rapidez y precisión en un manipulador robótico bajo restricciones de área de trabajo nos lleva a una planificación de la trayectoria de movimiento de nuestro manipulador así como también a la supervisión mediante algoritmos los cuales desarrollaremos introduciéndonos en conceptos de inteligencia computacional a partir del cual diseñaremos de un controlador adecuado que garantice la confiabilidad y facilidad de implementación en un manipulador robótico tomando en cuenta en el análisis del modelo características como la no linealidad del movimiento propuesto, y limitaciones presentes en un modelo real como perturbaciones reales (variaciones de cargas, fricción, y demás señales de ruidos externos). Para la elaboración del presente proyecto se tiene como antecedentes artículos destacados realizados en los últimos años en diferentes universidades extranjeras e instituciones, los cuales a partir de estos desarrollaremos nuestra propia línea de investigación. Finalmente presentamos las simulaciones respectivas de nuestro trabajo usando el toolbox Simechanics de Simulink, así como los cálculos respectivos utilizando el software MATLAB.

Palabras clave: manipulador robótico, control difuso, PID, algoritmos genéticos, control neuro-difuso.

Abstract: The purpose of this research was to undertake the design and simulation of an optimized PID control through computational intelligence algorithms applied in tracking the trajectory of a robotic manipulator with five degrees of freedom. The method used made an optimization of our initial manual tuning of the parameters of our controller present in each degree of freedom for each proposed movement by the user from computational intelligence algorithms, in order to avoid complications in the respective calculation of these parameters. As part of our analysis, we designed fuzzy controllers, neuro-fuzzy and the use of genetic algorithms for tuning our gains. This work generates a better quality of control in robotic manipulators as well as reducing the loss of time spent on the procurement and implementation of new drivers in mind manipulators many processes that require fewer breaks and more continuous and efficient work.

PR-RFN-011 Página 1 de 10

PR-RFN-011

Página 1 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

2. Materiales y métodos

2.1. Modelamiento del Manipulador

Nuestro robot de 5 grados de libertad está basado en el manipulador Lynx6 de Lynxmotion, modelo del cual obtendremos la cinemática directa e inversa, jacobianos y la dinámica.

OBS:

y

son datos de entrada.

Ver apéndice 5.1.

1  Y X' (xe,ye)  X  Fig. 1. Representación del robot Fig. 2.
1

Y
X'
(xe,ye)
X

Fig. 1. Representación del robot
Fig. 2. Giro del primer grado de libertad.
 Cinemática Directa
Z (xe,ye)

l 4
(xw,yw)
l 3
r
2

Procedemos a calcular los parámetros D-H del manipulador
para utilizar las matrices de transformación y encontrar la
posición del efector final. Estas ecuaciones son la base para
desarrollar las simulaciones y observar la trayectoria que
sigue el manipulador al utilizar algoritmos en su control.
l2
Eslabón
l 1
X'
1
90°
0
Fig. 3. Giro de los 4 GDL restantes.
2
0
3
0
Jacobiano Lineal y Angular
4
90°
0
0
Partiendo
del
producto
de
matrices
(T),
hallamos
el
jacobiano.
5
0
Tabla 1. Parámetros DH del manipulador Lynx6
Luego de hallar los parámetros DH, se calculan las matrices
homogéneas (A) de los eslabones.
La cinemática directa la obtenemos multiplicando las 5
matrices homogéneas (T), la cual se ha simplificado y
ordenado de la manera como se muestra a continuación.
Al jacobiano lineal de nuestro robot manipulador le hemos
agregado el jacobiano angular con respecto a los
3

Los parámetros

y

son orientaciones a controlar.

Cinemática Inversa

Para hallar la cinemática inversa existen diversos métodos, de los cuales se eligió el método geométrico, por la facilidad del cálculo usando los parámetros de orientación elegidos y la posición final del efector.

parámetros de orientación controlarlos también.

y , con el objetivo de poder

controlarlos también. y , con el objetivo de poder Ahora tenemos un jacobiano de 5x5, en

Ahora tenemos un jacobiano de 5x5, en el cual ya no se tendrán inconvenientes para calcular el jacobiano inverso, tan sólo se tendrán en cuenta los puntos de singularidad, en los cuales se tomará al jacobiano como una matriz identidad.

PR-RFN-011 Página 2 de 10

PR-RFN-011

Página 2 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

El jacobiano inverso se calcula de la siguiente manera:

Existen puntos donde no está definido el jacobiano inverso, estos puntos son llamados de singularidad.

2.2.3.

derivativo

agrega un cero en el infinito para reducir o eliminar el sobre impulso (overshoot).

Control

Derivativo:

El

controlador

Para evitar este problema en las simulaciones, se asumió un para esos puntos de singularidad.

La función de transferencia del controlador está dada por la siguiente expresión:

del controlador está dada por la siguiente expresión: Fig. 5 . Bloque del control PID para

Fig. 5. Bloque del control PID para el voltaje de entrada.

2.3. Función de Transferencia de Motores DC

Dinámica

El modelo dinámico de robot manipulador con articulaciones rotatorias de n GDL, sin considerar la fricción en las articulaciones está determinado por la ecuación:

Donde: M(q) es la matriz de inercias, C(q,q’) es la matriz de fuerzas centrífugas y de coriolis, g(q) es el vector de fuerzas gravitacionales y es el vector de pares de entrada.

Como paso previo al desarrollo del control se usó la compensación de gravedad para comprobar que nuestras ecuaciones de dinámica calculadas fuesen admisibles.

M qq Cq,qq  g q Fig. 6. Bloque del motor DC.
M qq Cq,qq  g q
Fig. 6. Bloque del motor DC.

Compensación de la gravedad

Ahora modificamos el PID inicial, para poder utilizar las características de los motores DC. Se crea el diagrama de bloques dentro de nuestro lazo de control, el cual tendrá como entrada Voltaje y Torque como salida, teniendo en cuenta los valores límites de la entrada Voltaje.

en cuenta los valores límites de la entrada Voltaje. Como se muestran en las figuras 11

Como se muestran en las figuras 11 y 12, se pueden modificar los parámetros de los motores de acuerdo al los valores reales que disponemos. Se construyó el modelo de los motores despreciando los efectos de viscosidad e inercia del motor por ser despreciables respecto a las inercias del robot.

por ser despreciables respecto a las inercias del robot. Fig. 4. Compensación de la gravedad usando

Fig. 4. Compensación de la gravedad usando la dinámica de MATLAB.

2.2. Principio de control PID

El controlador PID es utilizado para mejorar la respuesta dinámica del robot para una referencia de posición sobre el efector final, así como también para eliminar el error en estado estacionario de dicha posición.

2.2.1. Control Proporcional: El controlador proporcional produce un offset en la repuesta del sistema, esto es, regula la ganancia en estado estacionario del sistema.

2.2.2. Control Integral: El controlador derivativo agrega un polo en el origen, para eliminar el error (offset) en estado estacionario.

Fig. 7. Bloque de los actuadores del manipulador.

PR-RFN-011 Página 3 de 10

PR-RFN-011

Página 3 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010
e control R + q Motor PID DC ROBOT Motor - Fig. 8. Esquema de
e control
R +
q
Motor
PID
DC ROBOT
Motor
-
Fig. 8. Esquema de control PID usando la dinámica eléctrica de los
actuadores.

2.4. Algoritmos de Inteligencia Computacional

2.4.1. Lógica Difusa

Reglas difusas

Computacional 2.4.1. Lógica Difusa Reglas difusas Fig. 12. Reglas de control (9). Para la defusificación se

Fig. 12. Reglas de control (9).

Para la defusificación se empleó el método de mandani, obteniendo la salida por el método del centroide.

El diseño del controlador difuso es una atractiva alternativa para reemplazar los métodos convencionales de control ya que proporciona un marco sistemático y eficaz para hacer frente a las incertidumbres y no linealidades en sistemas complejos; sobre todo cuando el modelo matemático del sistema es desconocido, no es posible de obtener, o es demasiado complicado de utilizar para fines de control, sin embrago se necesita de una buena capacidad de procesamiento.

embrago se necesita de una buena capacidad de procesamiento. 2.4.2. Algoritmos Genéticos Los pasos que sigue
2.4.2. Algoritmos Genéticos Los pasos que sigue el Fig. 9. Bloque de control fuzzy-PD+I 2.4.2.1.
2.4.2. Algoritmos Genéticos
Los
pasos
que
sigue
el
Fig. 9. Bloque de control fuzzy-PD+I
2.4.2.1. Reproducción
Existen
diferentes
métodos
-
-
Fig. 10. Diagrama de bloques del controlador (Mamdani).

Fig. 13. Salida del controlador en función de las variables de entrada.

algoritmo

la

dentro

de

cada

de

generación se detallan a continuación:

Se procedió a diseñar un controlador FlCPD+I, ya que, es el controlador más general. Para implementar el controlador se utilizó el toolbox de lógica difusa (Fuzzy logic toolbox) de MATLAB ® 7.10.0.

la

población (nuevos valores de los parámetros) en cada

para

selección

generación, pero están basados en el mismo principio básico, estos métodos son los siguientes:

Realizar la selección de manera aleatoria de la población.

Realizar la normalización universal para elegir la muestra.

Funciones de pertenencia

- Selección por normalización geométrica.

- Retornar la selección para el inicio de una nueva generación.

En este caso se empleó funciones triangulares con un universo de discurso entre ±1:

triangulares con un universo de discurso entre ±1: Fig. 11. Funciones de pertenencia de los parámetros
triangulares con un universo de discurso entre ±1: Fig. 11. Funciones de pertenencia de los parámetros

Fig. 11.

Funciones de pertenencia de los parámetros error, derror y

control

respectivamente.

El método de selección utilizado para la sintonización de los parámetros del PID será el de la selección aleatoria de la población.

2.4.2.2. Crossover

Nuevos individuos son generalmente creados por la selección entre los valores previos de una población, estos son los llamados crossover points, que usualmente son seleccionados de manera aleatoria.

2.4.2.3. Mutación

Los nuevos valores para entrar a una generación son creados haciendo modificaciones de una selección anterior individual. En el algoritmo genético la mutación es la fuente de variabilidad y también mejora la eficiencia de la evolución en cada generación

PR-RFN-011 Página 4 de 10

PR-RFN-011

Página 4 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

2.4.2.4. Sintonización del Controlador PID

controlador PID se

emplea la siguiente configuración, la cual será iterada

utilizando la herramienta Simulink de MATLAB.

Para obtener

los parámetros

del

Simulink de MATLAB. Para obtener los parámetros del Fig. 14. Esquema para la sintonización del controlador

Fig. 14. Esquema para la sintonización del controlador PID.

14. Esquema para la sintonización del controlador PID. Fig. 17. ucontrol respectivamente. Funciones de pertenencia

Fig. 17.

ucontrol respectivamente.

Funciones de pertenencia de los parámetros error, derror y

Reglas difusas

Fig. 18. Reglas de control (25). 2.5. Simulaciones 2.5.1.
Fig. 18. Reglas de control (25).
2.5. Simulaciones
2.5.1.

Control PID sintonizado manualmente:

2.4.3.

Controlador Neuro-difuso

Otra forma de usar un controlador difuso, quizás más eficiente, es la de optimizar las reglas fuzzy mediante algoritmos genéticos y redes neuronales, en nuestro controlador empleará una combinación del uso de redes neuronales y lógica difusa, para ello el algoritmo de aprendizaje del sistema difuso se representa con una arquitectura de redes neuronales. Para realizar la creación de estas ANN (redes neuronales artificiales) y los sistemas Takagi Sugeno FIS (sistema de inferencia difuso) se utiliza el Toolbox fuzzy de Matlab, donde se entrena la red con la data obtenida de las simulaciones previas.

la red con la data obtenida de las simulaciones previas. Fig. 15. Sistema Takagi Sugeno Neuro-fuzzy.

Fig. 15. Sistema Takagi Sugeno Neuro-fuzzy.

Esta estructura teórica fue implementada con la ayuda del “Anfis editor” de MATLAB 7.10.0.

con la ayuda del “Anfis editor” de MATLAB 7.10.0. Fig. 16. Diagrama de bloques del controlador

Fig. 16. Diagrama de bloques del controlador (Sugeno).

A partir del modelo desarrollado realizamos las respectivas simulaciones con el bloque de control obtenido.

Para las simulaciones se realizaron varias trayectorias, sin embargo, mostraremos los resultados obtenidos más resaltantes, en este caso para una trayectoria helicoidal y sinusoidal.



Fig. 19. Diagrama general del control usando el modelo del robot en simmechanics de Simulink.

Funciones de pertenencia básicas

simmechanics de Simulink. Funciones de pertenencia básicas   Trayectoria Helicoidal La trayectoria deseada es

Trayectoria Helicoidal

La trayectoria deseada es la siguiente. x=0.6+0.1cos(t ) y=0.1sen(t ) z=0.01*t +0.2

α=0

β=0

PR-RFN-011 Página 5 de 10

PR-RFN-011

Página 5 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Kp=diag ([6125, 6125, 6125, 6125, 6125]) Ki= diag([30,30,30,30,30]) Kd= diag([70,70,70,70,70])

6125]) Ki= diag([30,30,30,30,30]) Kd= diag([70,70,70,70,70]) Fig. 20. Trayectorias helicoidales real y deseada. Fig. 24.

Fig. 20. Trayectorias helicoidales real y deseada.

Fig. 20. Trayectorias helicoidales real y deseada. Fig. 24. Error en el espacio de trabajo (sinusoide).

Fig. 24. Error en el espacio de trabajo (sinusoide).

Fig. 24. Error en el espacio de trabajo (sinusoide). Fig. 25. Torques de entrada en el

Fig. 25.

Torques de entrada en el bloque robot para trayectoria

sinusoidal.

2.5.2. Control Fuzzy-PD+I Fig. 21. Error en el espacio de trabajo (helicoide). Ganancias usadas: Fig.
2.5.2. Control Fuzzy-PD+I
Fig. 21. Error en el espacio de trabajo (helicoide).
Ganancias usadas:
Fig. 22.
Torques de entrada en el bloque robot para trayectoria
helicoidal.
Trayectoria sinusoidal inscrita en un cilindro
Trayectoria sinusoidal inscrita en un cilindro Kp= diag([105.27,105.27,105.27,38.28,38.28]) Ki=

Kp= diag([105.27,105.27,105.27,38.28,38.28]) Ki= diag([30,30,30,40,30]) Kd= diag([2.45,2.45,2.45,1.75,1.75])

Ahora utilizamos un sistema Fuzzy con una distribución de ganancias de forma similar al PID, con la finalidad de hacer más robusto el control.

GE=100, GIE=1, GCE=0.6, GU=38

hacer más robusto el control. GE=100, GIE=1, GCE=0.6, GU=38 Fig. 26. Bloque FLCPD+I en simulink. Fig.

Fig. 26. Bloque FLCPD+I en simulink.

GIE=1, GCE=0.6, GU=38 Fig. 26. Bloque FLCPD+I en simulink. Fig. 23. Trayectoria sinusoidal real y deseada.

Fig. 23. Trayectoria sinusoidal real y deseada.

simulink. Fig. 23. Trayectoria sinusoidal real y deseada. Fig. 27. Trayectoria helicoidal real y deseada (fuzzy).

Fig. 27. Trayectoria helicoidal real y deseada (fuzzy).

PR-RFN-011 Página 6 de 10

PR-RFN-011

Página 6 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010
Concurso de Proyectos - INTERCON - 2010 Fig. 28. Error en el espacio de trabajo (fuzzy).

Fig. 28. Error en el espacio de trabajo (fuzzy).

- 2010 Fig. 28. Error en el espacio de trabajo (fuzzy). Fig. 29. Torques de entrada

Fig. 29. Torques de entrada en el bloque robot para un FLCPD+I

Incremento de la velocidad

En el control cinematico, además de la trayectoria espacial que debe ser realizada por el robot es necesario

especificar la velocidad media del recorrido o la precisión con que se deba alcanzar el punto de destino. Esto implica que las constantes del controlador a usar varían de acuerdo

a

la velocidad usada en la trayectoria. En la siguiente

gráfica se muestra el resultado de incrementar la velocidad

de recorrido en controladores PID y FLCPD+I:

la velocidad de recorrido en controladores PID y FLCPD+I: Fig. 30. Incremento de velocidad en control

Fig. 30. Incremento de velocidad en control PID.

y FLCPD+I: Fig. 30. Incremento de velocidad en control PID. Fig. 31. Incremento de velocidad en

Fig. 31. Incremento de velocidad en control FLCPD+I.

PID. Fig. 31. Incremento de velocidad en control FLCPD+I. Fig. 32. Data obtenida de nuestro control

Fig. 32. Data obtenida de nuestro control PID (Error_q).

Parámetro

Valor

Método de Selección Roulette Wheel Población 40 Generaciones 20 Crossover Probabilidad 60% Probabilidad de
Método de Selección
Roulette Wheel
Población
40
Generaciones
20
Crossover Probabilidad
60%
Probabilidad de Mutación
0.10%
Rango de valores PID
0 - 2500
Tabla 2. Parámetros del algoritmo genético.
Resultados del algoritmo genético
Para las condiciones seleccionadas y para una trayectoria
helicoidal, se obtuvieron las siguientes ganancias.
Kp =
1.0e+003 *
0.8369
0
0
0
0
0
1.0776
0
0
0
0
0
1.9279
0
0
0
0
0
1.2886
0
0
0
0
0
0.2274
0 0 1.9279 0 0 0 0 0 1.2886 0 0 0 0 0 0.2274 Kd

Kd =

10.0000

0

0

0

0

0

10.0000

 

0

0

0

0

0

10.0000

 

0

0

0

0

0

27.0060

0

0

0

0

0

49.2273

2.5.3. Algoritmos genéticos

Ki =

Ahora utilizamos los algoritmos genéticos para sintonizar nuestro controlador PID. Este proceso se realiza utilizando la data obtenida (errores) de nuestro bloque de control PID,

el cual inicia con valores de ganancias aleatorias que

deberán ser optimizadas. El algoritmo tratará de minimizar nuestra función objetivo, que en nuestro caso es el error

durante el tiempo de simulación definido.

46.5521

0

0

0

0

0

14.1774

 

0

0

0

0

0

39.5794

 

0

0

0

0

0

30.2430

0

0

0

0

0

29.9443

Obtención de la data

La data con que se trabajará es el error de posición angular.

PR-RFN-011 Página 7 de 10

PR-RFN-011

Página 7 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010
Concurso de Proyectos - INTERCON - 2010 Fig. 37. neuro-fuzzy. Trayectoria helicoidal real y deseada usando
Concurso de Proyectos - INTERCON - 2010 Fig. 37. neuro-fuzzy. Trayectoria helicoidal real y deseada usando

Fig. 37.

neuro-fuzzy.

Trayectoria helicoidal real y deseada usando el controlador

Fig. 33. Trayectoria helicoidal real y deseada (AG).

Fig. 33. Trayectoria helicoidal real y deseada (AG). en el bloque de control PID con Fig.
en el bloque de control PID con Fig. 39. Fuzzy. 3. Resultados y discusión
en
el bloque de control PID
con
Fig. 39.
Fuzzy.
3. Resultados y discusión

Torques de entrada

Fig. 38. Error en el espacio de trabajo (neuro-fuzzy).

Fig. 34. Error en el espacio de trabajo (AG).

Fig. 34. Error en el espacio de trabajo (AG). Torques que ingresan al bloque robot usando

Torques que ingresan al bloque robot usando el Neuro-

Fig. 35.

sintonización AG.

Como se puede observar, al usar un controlador PID se emplea mayor cantidad de torque para el control de trayectorias que cuando se emplean algoritmos computacionales.

En investigaciones pasadas no se encontró una comparación clara entre los distintos tipos de optimización de control para manipuladores, cosa que se realiza en el presente trabajo.

2.5.4.

Controlador híbrido Neuro-Fuzzy

Ahora con el ANFIS editor creamos 5 sistemas fuzzy, las cuales entrenamos para optimizar los parámetros de estos. Como se menciono anteriormente estos sistemas tienen 25 reglas de tipo Sugeno, cuyas funciones de pertenencia serán modificadas usando redes neuronales, en nuestro caso se utilizó un ANFIS híbrido.

neuronales, en nuestro caso se utilizó un ANFIS híbrido. 4. Conclusiones -Se realizó un control con

4. Conclusiones

-Se realizó un control con regular precisión, los valores del error angular alcanzan unos cuantos ángulos para razonables magnitudes de torque, por lo cual el control realizado en el presente trabajo tiene un desempeño aceptable.

-En las pruebas realizadas, el incremento de la velocidad de recorrido requiere una reducción de los tiempos de asentamiento, sin embargo, al no modificar los parámetros del PID principalmente los Kd y Kp que están relacionados con los tiempos de corrección del controlador, la trayectoria

Fig. 36. Bloque del Neuro-Fuzzy en Simulink.

PR-RFN-011 Página 8 de 10

PR-RFN-011

Página 8 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

real mostrará diferencias con respecto a la deseada incrementándose éstas a medida que la velocidad aumente.

Jacobiano Lineal y Angular

Calculo del jacobiano lineal:

-El uso de algoritmo computacionales pueden disminuir el costo computacional si son optimizadas adecuadamente, sin embargo el controlador PID-Fuzzy que se utilizó no estaba optimizado requiere mayor carga computacional debido al uso de un sistema Mandani difuso y sintonización manual.

-El algoritmo para el controlador Neuro-Fuzzy, el cual utiliza un sistema Takagi Sugeno difuso requiere menor costo computacional y posee pequeños errores que dependen de la data y target empleados en su entrenamiento.

5.

Apéndices

5.1. Demostraciones

Cinemática Directa

6. Agradecimientos
6. Agradecimientos

Calculo del jacobiano total uniendo jacobiano lineal y angular:

Como se observa en las ecuaciones anteriores, se han incluido las variables y , ya que se controlarán dos parámetros de orientación además de los que corresponden a la trayectoria.

Cinemática Inversa

Los autores agradecen las contribuciones del asesor Msc. David Achanccaray Diaz del presente artículo, y del tutor del curso “Análisis y Control de Robots” Msc. Nilton Anchayhua por su apoyo en la revisión de este documento.

OBS:

y

son datos de entrada.

7. Referencias

[1]“Introduction to Robotics” (2006), H. Harry Asada. Massachussets Institute of Technology. [2] A. Barrientos, L. F. Peñín, C. Balaguer, and R. Aracil, Fundamentos de Robótica. McGrawHill, 1998. [3] J. J. Craig, Introduction to Robotics: Mechanics and Control, P. Hall, Ed., 2003. [4] Hybrid GA Tuned RBF Based Neuro-Fuzzy Controller for Robotic Manipulator. Sufian Ashraf Mazhari and Surendra Kumar Member IEEE [5] Springer Handbook of Robotics Bruno Siciliano, Oussama Khatib [6] Fuzzy + PID Controller for Robot Manipulator [7] TELEOPERATED MANIPULATOR CONTROL Ricardo Enrique Gutiérrez Carvajal [8] Schilling, J. Robert. , Fundamentals of Robotics. Estados Unidos: Prentice-Hall, Inc. (1990).

PR-RFN-011 Página 9 de 10

PR-RFN-011

Página 9 de 10

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

Concurso de Proyectos - INTERCON - 2010

ANEXOS

En esta parte se muestra el código utilizado para el diseño del controlador neurofuzzy y el uso de algoritmos genéticos. El diseño del controlador fuzzy PD+I se realizó trabajando con el editor FUZZY y el control PID se realizo usando SIMULINK, también se realizó un script en Matlab para el control PID que incluye los motores, sin embargo éste último no lo presentamos por falta de espacio.

A.1. Código en Matlab del controlador neurofuzzy

writefis(fis1,'gen_anfis1');

disp('1');

[fis2,error2,ss2]=anfis(TD2,fis2,4000,[],[],1);

writefis(fis2,'gen_anfis2');

disp('2');

[fis3,error3,ss3]=anfis(TD2,fis3,4000,[],[],1);

writefis(fis3,'gen_anfis3');

disp('3');

[fis4,error4,ss4]=anfis(TD2,fis4,4000,[],[],1);

writefis(fis4,'gen_anfis4');

disp('4');

% gen_neurofuzzy.m

%% Controlador neurofuzzy con sintonización genética close all;clc;close all; global Kp Ki Kd f

[fis5,error5,ss5]=anfis(TD2,fis5,4000,[],[],1);

writefis(fis5,'gen_anfis5');

disp('5');

%% Simulación final: trayectoria seguida sim('ControlePIDsimmechanics_gen_neurofuzzy.mdl');

%% Cálculo de las ganacias mediante algoritmos genéticos

f=1;

Kp=diag([2000 2000 2000 2000 2000]); Kd=diag([70 70 70 70 70]); Ki=diag([30 30 30 30 30]);

% Ganancias iniciales

kp0=[2400 2400 2400 2400 2400]; kd0=[70 70 70 70 70]; ki0=[30 30 30 30 30];

% Rango de valores

lb_kp=[200 200 200 200 200]; lb_kd=[10 10 10 10 10]; lb_ki=[5 5 5 5 5]; up_kp=[2500 2500 2500 2500 2500]; up_kd=[100 100 100 100 100]; up_ki=[50 40 40 40 40];

lb=[lb_kp lb_kd lb_ki]; up=[up_kp up_kd up_ki]; options=gaoptimset('MutationFcn', @mutationadaptfeasible,'PlotFcn',@gaplotbestf,

'Generations',10,'PopulationSize',24,

'InitialScores',[kp0 kd0 ki0]);

[x,error]=ga(@algoritmo_pid,15,[],[],[],[],

lb,up,[],options);

Kp = diag(x(1:5)); Kd = diag(x(6:10)); Ki = diag(x(11:15));

%% Entrenamiento de las reglas fuzzy mediante redes neuronales sim('ControlePIDsimmechanics_gen.mdl'); disp('ya corrió');

plot3(posiciondeseada(:,1),posiciondeseada(:,2),

posiciondeseada(:,3),'r','LineWidth',2);

hold on
hold on

%% función objetivo a minimizar function z = algoritmo_pid(KP) global Kp Kd Ki kp1 = KP(1); kp2 = KP(2); kp3 = KP(3); kp4 = KP(4); kp5 = KP(5); kd1 = KP(6); kd2 = KP(7); kd3 = KP(8); kd4 = KP(9); kd5 = KP(10); ki1 = KP(11); ki2 = KP(12); ki3 = KP(13); ki4 = KP(14); ki5 = KP(15);

Kp = diag([kp1 kp2 kp3 kp4 kp5]); Kd = diag([kd1 kd2 kd3 kd4 kd5]); Ki = diag([ki1 ki2 ki3 ki4 ki5]);

plot3(posicionreal(:,1),posicionreal(:,2),

posicionreal(:,3),'LineWidth',2);

legend('Trayectoria deseada','Trayectoria real')

A.2. Código en Matlab de la función objetivo del algoritmo genético.

%% Control PID sim('ControlePIDsimmechanics_gen.mdl');

CFuzzy=readfis('anfis_5gdl_2.fis');

% Creating fis'

writefis(CFuzzy,'gen_anfis1');

fis1=readfis('gen_anfis1');

writefis(CFuzzy,'gen_anfis2');

fis2=readfis('gen_anfis2');

writefis(CFuzzy,'gen_anfis3');

fis3=readfis('gen_anfis3');

writefis(CFuzzy,'gen_anfis4');

fis4=readfis('gen_anfis4');

writefis(CFuzzy,'gen_anfis5');

fis5=readfis('gen_anfis5');

%% Función del Error z = sqrt(dot(Error_q(:,1),Error_q(:,1))+

dot(Error_q(:,2),Error_q(:,2))+dot(Error_q(:,3),

Error_q(:,3))+dot(Error_q(:,4),Error_q(:,4))+

dot(Error_q(:,5),Error_q(:,5)));

% Data training

TD1=[Error_q(:,1) dError_q(:,1) tauv(:,1)]; TD2=[Error_q(:,2) dError_q(:,2) tauv(:,2)]; TD3=[Error_q(:,3) dError_q(:,3) tauv(:,3)]; TD4=[Error_q(:,4) dError_q(:,4) tauv(:,4)]; TD5=[Error_q(:,5) dError_q(:,5) tauv(:,5)];

% Training neural networks

[fis1,error1,ss1]=anfis(TD1,fis1,4000,[],[],1);

PR-RFN-011 Página 10 de 10

PR-RFN-011

Página 10 de 10