diseÑo y simulacion de un control pid optimizado mediante algoritmos de inteligencia computacional...

11
Concurso de Proyectos - INTERCON - 2010 PR-RFN-011 Página 1 de 11 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. 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. Key words: robotic manipulator, fuzzy control, PID, genetic algorithms, neuro-fuzzy control. 1. Introducción 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. 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, [email protected] Miguel Fernández Zavala, [email protected] Franz Huanay Martínez, [email protected] ASESORES: David Achanccaray Diaz, [email protected] Escuela de Ingeniería Mecatrónica, Universidad Nacional de Ingeniería, Perú.

Upload: calhoundoom

Post on 27-Jul-2015

1.460 views

Category:

Documents


11 download

DESCRIPTION

Control de un manipulador de 5GDL usando controladores PID, PD+I-fuzzy, neurofuzzy con sintonización usando algoritmos genéticos.

TRANSCRIPT

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 1 de 11

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.

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.

Key words: robotic manipulator, fuzzy control, PID,

genetic algorithms, neuro-fuzzy control.

1. Introducción

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.

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, [email protected]

Miguel Fernández Zavala, [email protected]

Franz Huanay Martínez, [email protected]

ASESORES:

David Achanccaray Diaz, [email protected]

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

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 2 de 11

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.

Fig. 1. Representación del robot

Cinemática Directa

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.

Eslabón

1 90° 0

2 0° 0

3 0° 0

4 90° 0 0

5 0° 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.

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.

OBS: y son datos de entrada.

Ver apéndice 5.1.

Y

X

(xe,ye)

X'

Fig. 2. Giro del primer grado de libertad.

2

1

3

(xw,yw)

(xe,ye)

l3

l4

r

l2

l1

Z

X'

Fig. 3. Giro de los 4 GDL restantes.

Jacobiano Lineal y Angular

Partiendo del producto de matrices (T), hallamos el

jacobiano.

Al jacobiano lineal de nuestro robot manipulador le hemos

agregado el jacobiano angular con respecto a los

parámetros de orientación y , con el objetivo de poder

controlarlos también.

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.

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 3 de 11

El jacobiano inverso se calcula de la siguiente manera:

Existen puntos donde no está definido el jacobiano inverso,

estos puntos son llamados de singularidad.

Para evitar este problema en las simulaciones, se asumió un

para esos puntos de singularidad.

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:

,M q q C q q q g q

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.

Compensación de la gravedad

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.

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.

2.2.3. Control Derivativo: El controlador derivativo

agrega un cero en el infinito para reducir o

eliminar el sobre impulso (overshoot).

La función de transferencia del controlador está dada por

la siguiente expresión:

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

2.3. Función de Transferencia de Motores DC

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.

Fig. 6. Bloque del motor DC.

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.

Fig. 7. Bloque de los actuadores del manipulador.

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 4 de 11

controlPIDMotor

ROBOTR+

-

qMotor

DC

e

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

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.

Fig. 9. Bloque de control fuzzy-PD+I

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.

Fig. 10. Diagrama de bloques del controlador (Mamdani).

Funciones de pertenencia

En este caso se empleó funciones triangulares con un

universo de discurso entre ±1:

Fig. 11. Funciones de pertenencia de los parámetros error, derror y control respectivamente.

Reglas difusas

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.

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

2.4.2. Algoritmos Genéticos

Los pasos que sigue el algoritmo dentro de cada

generación se detallan a continuación:

2.4.2.1. Reproducción

Existen diferentes métodos para la selección de la

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

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.

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

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

generación.

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

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 5 de 11

2.4.2.4. Sintonización del Controlador PID

Para obtener los parámetros del controlador PID se

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

utilizando la herramienta Simulink de MATLAB.

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

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.

Fig. 15. Sistema Takagi Sugeno Neuro-fuzzy.

Esta estructura teórica fue implementada con la ayuda del

“Anfis editor” de MATLAB 7.10.0.

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

Funciones de pertenencia básicas

Fig. 17. Funciones de pertenencia de los parámetros error, derror y

ucontrol respectivamente.

Reglas difusas

Fig. 18. Reglas de control (25).

2.5. Simulaciones

A partir del modelo desarrollado realizamos las respectivas

simulaciones con el bloque de control obtenido.

2.5.1. Control PID sintonizado manualmente:

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.

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

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 6 de 11

Kp=diag ([6125, 6125, 6125, 6125, 6125])

Ki= diag([30,30,30,30,30])

Kd= diag([70,70,70,70,70])

Fig. 20. Trayectorias helicoidales real y deseada.

Fig. 21. Error en el espacio de trabajo (helicoide).

Fig. 22. Torques de entrada en el bloque robot para trayectoria

helicoidal.

Trayectoria sinusoidal inscrita en un cilindro

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

Fig. 23. Trayectoria sinusoidal real y deseada.

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

Fig. 25. Torques de entrada en el bloque robot para trayectoria

sinusoidal.

2.5.2. Control Fuzzy-PD+I

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.

Ganancias usadas:

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

Fig. 26. Bloque FLCPD+I en simulink.

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

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 7 de 11

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

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:

Fig. 30. Incremento de velocidad en control PID.

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

2.5.3. Algoritmos genéticos

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.

Obtención de la data

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

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

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

Ki =

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

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 8 de 11

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

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

Fig. 35. Torques de entrada en el bloque de control PID con

sintonización AG.

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.

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

Fig. 37. Trayectoria helicoidal real y deseada usando el controlador neuro-fuzzy.

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

Fig. 39. Torques que ingresan al bloque robot usando el Neuro-

Fuzzy.

3. Resultados y discusión

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.

4. Conclusiones y Recomendaciones

-Se realizó un control con buena precisión, los valores de

los errores angulares alcanzados fueron razonables, así

como las magnitudes de los torques, esto en parte se debió

al bloque de motor DC que se utilizó en las simulaciones,

permitiendo comprobar la obtención de valores admisibles

en una posible implementación de nuestro robot.

-Luego de realizar las comparaciones entre las respuestas

del robot con control PID y la respuesta del control fuzzy,

bajo las mismas condiciones, se observa que ambos

métodos presentan dinámicas muy similares.

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 9 de 11

-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

real mostrará diferencias con respecto a la deseada

incrementándose éstas a medida que la velocidad aumente.

-En el caso del control fuzzy, las ganancias Kp y Kd

varían en cada iteración, este controlador mostró mejores

resultados que el PID al incrementarse la velocidad de

recorrido.

-El uso de algoritmo computacionales pueden disminuir

el costo computacional si se optimizan las ganancias

adecuadamente, sin embargo el controlador PID-Fuzzy que

se utilizó no estaba optimizado, éste requirió 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 el target empleados en su

entrenamiento.

-Una buena manera para que nuestro robot pueda seguir

una trayectoria cualquiera es usando algoritmos genéticos,

sin embargo en pruebas realizadas se pudo comprobar que

estos pierden algo de precisión en trayectorias muy

complejas; por lo que sería ideal un controlador PID de

ganancias variables en el tiempo, lo cual resulta casi

imposible de simular debido a la alta carga computacional

que implicaría por ser de 5 grados de libertad el robot a

controlar.

-Se recomienda usar el software SimMechanics de

Matlab, ya que, es una potente herramienta en la simulación

de sistemas robóticos y nos permite importar nuestro diseño

realizado en algún programa CAD (en este caso

SolidWorks) incluyendo las características inerciales del

diseño, además permite realizar análisis dinámicos,

cinemáticos, de dinámica inversa y también estática. La

ventaja de utilizar este software de simulación es que

permite realizar el análisis matemático y, en la mayoría de

los casos, poder obtener importantes deducciones de una

forma eficaz y rápida. Otra ventaja de este programa de

simulación es que su complejidad no aumenta a medida que

se añaden más grados de libertad, cosa que no sucede con el

análisis matemático.

5. Apéndices

5.1. Demostraciones

Cinemática Directa

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

OBS: y son datos de entrada.

Jacobiano Lineal y Angular

Calculo del jacobiano lineal:

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 10 de 11

Calculo del jacobiano total uniendo jacobiano lineal y angular:

6. Agradecimientos

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.

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

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

% gen_neurofuzzy.m %% Controlador neurofuzzy con sintonización

genética

close all;clc;close all;

global Kp Ki Kd f

%% 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ó');

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

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

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

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

writefis(fis5,'gen_anfis5');

disp('5');

%% Simulación final: trayectoria seguida

sim('ControlePIDsimmechanics_gen_neurofuzzy.mdl');

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

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

hold on

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

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

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

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

Concurso de Proyectos - INTERCON - 2010

PR-RFN-011 Página 11 de 11

A.2. Código en Matlab de la función objetivo del

algoritmo genético. %% 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]);

%% Control PID

sim('ControlePIDsimmechanics_gen.mdl');

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