Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Resumen: El propósito de este trabajo de investigación fue Key words: robotic manipulator, fuzzy control, PID,
realizar el diseño y simulación de un control PID genetic algorithms, neuro-fuzzy control.
optimizado mediante algoritmos de inteligencia
computacional aplicado en el seguimiento de la trayectoria 1. Introducción
de un manipulador robótico de 5 grados de libertad. El
método utilizado realizó una optimización de nuestra Los trabajos desarrollados por los robots manipuladores
sintonización manual inicial de los parámetros del como un elemento más del proceso productivo consisten
controlador presente en cada grado de libertad para cada frecuentemente en tareas repetitivas, ello exige ubicarlos en
movimiento propuesto por el usuario a partir de algoritmos áreas accesibles para el manipulador, caracterizado por la
de inteligencia computacional, con la finalidad de evitar máxima extensión de sus articulaciones, lo cual podría
complicaciones en el cálculo respectivo de dichos resultar imposible a medida que el área sufra variaciones.
parámetros. Como parte de nuestro análisis se diseñaran La necesidad de obtener mayor rapidez y precisión en un
controladores difusos, neuro-difusos y el uso de algoritmos manipulador robótico bajo restricciones de área de trabajo
genéticos para sintonizar las ganancias. Este trabajo genera nos lleva a una planificación de la trayectoria de
una mejor calidad de control en manipuladores robóticos movimiento de nuestro manipulador así como también a la
así como también reduce la pérdida de tiempos que se supervisión mediante algoritmos los cuales desarrollaremos
invierten en la obtención e implementación de nuevos introduciéndonos en conceptos de inteligencia
controladores en manipuladores presentes muchos de ellos computacional a partir del cual diseñaremos de un
en procesos que requieren menos pausas y más trabajo controlador adecuado que garantice la confiabilidad y
continuo y eficiente. 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
Palabras clave: manipulador robótico, control difuso, PID,
limitaciones presentes en un modelo real como
algoritmos genéticos, control neuro-difuso.
perturbaciones reales (variaciones de cargas, fricción, y
demás señales de ruidos externos).
Abstract: The purpose of this research was to undertake
Para la elaboración del presente proyecto se tiene como
the design and simulation of an optimized PID control
antecedentes artículos destacados realizados en los últimos
through computational intelligence algorithms applied in
años en diferentes universidades extranjeras e instituciones,
tracking the trajectory of a robotic manipulator with five
los cuales a partir de estos desarrollaremos nuestra propia
degrees of freedom. The method used made an optimization
línea de investigación.
of our initial manual tuning of the parameters of our
Finalmente presentamos las simulaciones respectivas de
controller present in each degree of freedom for each
nuestro trabajo usando el toolbox Simechanics de Simulink,
proposed movement by the user from computational
así como los cálculos respectivos utilizando el software
intelligence algorithms, in order to avoid complications in
MATLAB.
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
Concurso de Proyectos - INTERCON - 2010
2. Materiales y métodos
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)
Procedemos a calcular los parámetros D-H del manipulador l4
1
para utilizar las matrices de transformación y encontrar la (xw,yw)
3
sigue el manipulador al utilizar algoritmos en su control.
l2
2
Eslabón l1
X'
1 90° 0
Fig. 3. Giro de los 4 GDL restantes.
2 0° 0
3 0° 0 Jacobiano Lineal y Angular
4 90° 0 0 Partiendo del producto de matrices (T), hallamos el
5 0° 0 jacobiano.
Tabla 1. Parámetros DH del manipulador Lynx6
PR-RFN-011 Página 2 de 10
Concurso de Proyectos - INTERCON - 2010
Dinámica
Donde: M(q) es la matriz de inercias, C(q,q’) es la Fig. 5. Bloque del control PID para el voltaje de entrada.
matriz de fuerzas centrífugas y de coriolis, g(q) es el vector
de fuerzas gravitacionales y es el vector de pares de 2.3. Función de Transferencia de Motores DC
entrada.
Ahora modificamos el PID inicial, para poder utilizar las
Compensación de la gravedad características de los motores DC. Se crea el diagrama de
bloques dentro de nuestro lazo de control, el cual tendrá
Como paso previo al desarrollo del control se usó la como entrada Voltaje y Torque como salida, teniendo en
compensación de gravedad para comprobar que nuestras cuenta los valores límites de la entrada Voltaje.
ecuaciones de dinámica calculadas fuesen admisibles.
2.2.2. Control Integral: El controlador derivativo agrega Fig. 7. Bloque de los actuadores del manipulador.
un polo en el origen, para eliminar el error (offset)
en estado estacionario.
PR-RFN-011 Página 3 de 10
Concurso de Proyectos - INTERCON - 2010
Reglas difusas
R+ e control q
Motor
PID ROBOT
DC
- Motor
Fig. 9. Bloque de control fuzzy-PD+I Los pasos que sigue el algoritmo dentro de cada
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 2.4.2.1. Reproducción
controlador se utilizó el toolbox de lógica difusa (Fuzzy Existen diferentes métodos para la selección de la
logic toolbox) de MATLAB® 7.10.0. 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:
2.4.2.3. Mutación
PR-RFN-011 Página 4 de 10
Concurso de Proyectos - INTERCON - 2010
2.5. Simulaciones
Fig. 19. Diagrama general del control usando el modelo del robot en
Fig. 16. Diagrama de bloques del controlador (Sugeno). simmechanics de Simulink.
Trayectoria Helicoidal
Funciones de pertenencia básicas
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
Concurso de Proyectos - INTERCON - 2010
Ganancias usadas:
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. 26. Bloque FLCPD+I en simulink.
PR-RFN-011 Página 6 de 10
Concurso de Proyectos - INTERCON - 2010
Parámetro Valor
Fig. 29. Torques de entrada en el bloque robot para un FLCPD+I.. Método de Selección Roulette Wheel
Población 40
Incremento de la velocidad
Generaciones 20
En el control cinematico, además de la trayectoria Crossover Probabilidad 60%
espacial que debe ser realizada por el robot es necesario Probabilidad de Mutación 0.10%
especificar la velocidad media del recorrido o la precisión
con que se deba alcanzar el punto de destino. Esto implica Rango de valores PID 0 - 2500
que las constantes del controlador a usar varían de acuerdo
a la velocidad usada en la trayectoria. En la siguiente Tabla 2. Parámetros del algoritmo genético.
gráfica se muestra el resultado de incrementar la velocidad
de recorrido en controladores PID y FLCPD+I: 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
Fig. 30. Incremento de velocidad en control PID. 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
Fig. 31. Incremento de velocidad en control FLCPD+I. 0 0 0 0 49.2273
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
Concurso de Proyectos - INTERCON - 2010
Fig. 35. Torques de entrada en el bloque de control PID con Fig. 39. Torques que ingresan al bloque robot usando el Neuro-
sintonización AG. Fuzzy.
3. Resultados y discusión
Como se puede observar, al usar un controlador PID se
2.5.4. Controlador híbrido Neuro-Fuzzy emplea mayor cantidad de torque para el control de
trayectorias que cuando se emplean algoritmos
Ahora con el ANFIS editor creamos 5 sistemas fuzzy, las computacionales.
cuales entrenamos para optimizar los parámetros de estos.
Como se menciono anteriormente estos sistemas tienen 25 En investigaciones pasadas no se encontró una comparación
reglas de tipo Sugeno, cuyas funciones de pertenencia serán clara entre los distintos tipos de optimización de control
modificadas usando redes neuronales, en nuestro caso se para manipuladores, cosa que se realiza en el presente
utilizó un ANFIS híbrido. trabajo.
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.
PR-RFN-011 Página 8 de 10
Concurso de Proyectos - INTERCON - 2010
5. Apéndices
5.1. Demostraciones
Cinemática Directa
6. Agradecimientos
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 Los autores agradecen las contribuciones del asesor Msc.
a la trayectoria. David Achanccaray Diaz del presente artículo, y del tutor
del curso “Análisis y Control de Robots” Msc. Nilton
Cinemática Inversa 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).
OBS: y son datos de entrada.
PR-RFN-011 Página 9 de 10
Concurso de Proyectos - INTERCON - 2010
ANEXOS writefis(fis1,'gen_anfis1');
disp('1');
% gen_neurofuzzy.m [fis5,error5,ss5]=anfis(TD2,fis5,4000,[],[],1);
writefis(fis5,'gen_anfis5');
%% Controlador neurofuzzy con sintonización
disp('5');
genética
close all;clc;close all;
%% Simulación final: trayectoria seguida
global Kp Ki Kd f
sim('ControlePIDsimmechanics_gen_neurofuzzy.mdl');
%% Cálculo de las ganacias mediante algoritmos
plot3(posiciondeseada(:,1),posiciondeseada(:,2),…
genéticos
posiciondeseada(:,3),'r','LineWidth',2);
f=1;
hold on
Kp=diag([2000 2000 2000 2000 2000]);
plot3(posicionreal(:,1),posicionreal(:,2),...
Kd=diag([70 70 70 70 70]);
posicionreal(:,3),'LineWidth',2);
Ki=diag([30 30 30 30 30]);
legend('Trayectoria deseada','Trayectoria real')
% Ganancias iniciales
kp0=[2400 2400 2400 2400 2400]; A.2. Código en Matlab de la función objetivo del
kd0=[70 70 70 70 70]; algoritmo genético.
ki0=[30 30 30 30 30];
%% función objetivo a minimizar
% Rango de valores function z = algoritmo_pid(KP)
lb_kp=[200 200 200 200 200]; global Kp Kd Ki
lb_kd=[10 10 10 10 10]; kp1 = KP(1);
lb_ki=[5 5 5 5 5]; kp2 = KP(2);
up_kp=[2500 2500 2500 2500 2500]; kp3 = KP(3);
up_kd=[100 100 100 100 100]; kp4 = KP(4);
up_ki=[50 40 40 40 40]; kp5 = KP(5);
kd1 = KP(6);
lb=[lb_kp lb_kd lb_ki]; kd2 = KP(7);
up=[up_kp up_kd up_ki]; kd3 = KP(8);
options=gaoptimset('MutationFcn',... kd4 = KP(9);
@mutationadaptfeasible,'PlotFcn',@gaplotbestf,... kd5 = KP(10);
'Generations',10,'PopulationSize',24,... ki1 = KP(11);
'InitialScores',[kp0 kd0 ki0]); ki2 = KP(12);
[x,error]=ga(@algoritmo_pid,15,[],[],[],[],... ki3 = KP(13);
lb,up,[],options); ki4 = KP(14);
ki5 = KP(15);
Kp = diag(x(1:5));
Kd = diag(x(6:10)); Kp = diag([kp1 kp2 kp3 kp4 kp5]);
Ki = diag(x(11:15)); Kd = diag([kd1 kd2 kd3 kd4 kd5]);
Ki = diag([ki1 ki2 ki3 ki4 ki5]);
%% Entrenamiento de las reglas fuzzy mediante
redes neuronales %% Control PID
sim('ControlePIDsimmechanics_gen.mdl'); sim('ControlePIDsimmechanics_gen.mdl');
disp('ya corrió');
%% Función del Error
CFuzzy=readfis('anfis_5gdl_2.fis'); z = sqrt(dot(Error_q(:,1),Error_q(:,1))+...
% Creating fis' dot(Error_q(:,2),Error_q(:,2))+dot(Error_q(:,3),…
writefis(CFuzzy,'gen_anfis1'); Error_q(:,3))+dot(Error_q(:,4),Error_q(:,4))+...
fis1=readfis('gen_anfis1'); dot(Error_q(:,5),Error_q(:,5)));
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)];
PR-RFN-011 Página 10 de 10