Académique Documents
Professionnel Documents
Culture Documents
FACULTAD DE INGENIERA
Maestra en ciencias en Instrumentacin y Control Automtico
TESIS
Que como parte de los requisitos para obtener el grado de
DIRIGIDO POR:
ii
RESUMEN
Debido a la variacin de la carga y dinmicas no modeladas, el modelo de un robot
manipulador es clasificado como un sistema dinmico no lineal. En este trabajo de
investigacin, se desarroll un controlador lgico difuso, el cual es robusto a
incertidumbres y perturbaciones. Se realizaron simulaciones y pruebas experimentales en
un robot manipulador de dos grados de libertad. Tambin se realiz un anlisis metdico
del controlador difuso desarrollado, basndose para esto, en los controladores de estructura
variable. Se compararon los resultados obtenidos con controladores clsicos tales como el
PID y el control PD compensado.
SUMMARY
Due to variation of load and unmodeled dynamics, a robot manipulator is
classified as a nonlinear dynamical system. In this research, we developed a fuzzy logic
controller which is robust to uncertainties and disturbances. Simulations and experimental
verification had been developed in a robot manipulator of two deegres of freedom. We also
performed a methodical analysis of the fuzzy controller based on variable structure
controllers. We compared the results obtained with classical controllers such as PID and PD
control compensated.
(Key words: Fuzzy Logic, Robustness, Robot Manipulator, Variable Structure Controller)
ii
AGRADECIMIENTOS
A Dios por guiarme en los momentos difciles y por estar a mi lado cuando ms lo he
necesitado, por darme una familia cariosa y amistades inigualables. A mis padres Isabel y
Amilcar, gracias por el apoyo y amor que a lo largo de la vida me han brindado. Sobre todo
gracias por confiar en m y ayudarme en esta etapa de mi vida, sin ellos no sera la persona
que soy ahora. A mis hermanas Jessica y Mercedes por su cario y apoyo, gracias por sus
consejos y nimos cuando lo he necesitado.
A Vctor por brindarme su amor y cario, por apoyarme en todo momento y regaarme
cuando me desanimaba. A su familia por hacerme sentir como en casa.
Al Consejo Nacional de Ciencia y Tecnologa por el apoyo brindado para realizar mis
estudios de maestra. A la Universidad Autnoma de Quertaro por dar las herramientas
necesarias para empezar y culminar con esta etapa.
iii
NDICE DE CONTENIDO
RESUMEN .......................................................................................................................................... i
SUMMARY ........................................................................................................................................ii
AGRADECIMIENTOS ................................................................................................................... iii
NDICE DE CONTENIDO ..............................................................................................................iv
NDICE DE FIGURAS................................................................................................................... vii
NDICE DE TABLAS ......................................................................................................................ix
I
INTRODUCCIN .................................................................................................................... 1
1.1
1.2
Justificacin ........................................................................................................................................ 4
1.3
1.4
Hiptesis ............................................................................................................................................. 4
1.5
Alcances ............................................................................................................................................. 5
1.6
II
2.1
2.2
2.2.1
iv
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.3
2.3.1
2.3.2
2.3.3
3.1.1
3.1.2
3.1.3
3.2
3.3
3.3.1
Introduccin .................................................................................................................................. 32
3.3.2
3.3.3
3.3.4
IV
RESULTADOS ...................................................................................................................... 54
4.1
4.2
4.2.1
4.2.2
Simulaciones .................................................................................................................................. 58
4.2.3
4.3
4.3.1
Simulaciones .................................................................................................................................. 69
4.3.2
4.4
4.4.1
Simulaciones .................................................................................................................................. 74
4.4.2
4.5
CONCLUSIONES .................................................................................................................. 81
VI
BIBLIOGRAFA.................................................................................................................... 83
Apndice A
A.1
A.2
Apndice B
B.1
B.2
B.3
Apndice C
C.1
C.2
Apndice D
D.1
vi
NDICE DE FIGURAS
Figura
Pgina.
vii
viii
NDICE DE TABLAS
Tabla
Pgina
ix
1I INTRODUCCIN
En el presente captulo, se dar una descripcin general del proyecto de investigacin
realizado. ara una mejor comprensin del tema se presenta el problema a resolver, los
objetivos que se pretenden alcanzar, las razones por las cuales se decidi trabajar en este
tema, as como, los alcances que tendr el trabajo de investigacin efectuado. Al final del
captulo se muestra una descripcin de la estructura del presente documento de tesis.
Para lograr que un robot realice una tarea, es necesario un dispositivo de control, el
cual asegure que el mecanismo realizar de forma autnoma dicha actividad. Es importante
resaltar que uno de los propsitos del controlador, adems del mencionado anteriormente,
es maximizar la velocidad de ejecucin de la tarea y la repetitividad en la medida de lo que
sea posible, tomando en cuenta las limitaciones del sistema fsico.
(1.1)
Otra caracterstica que posee la dinmica del manipulador, es que los parmetros
tales como la masa e inercia pueden variar al agregarle carga al robot por ejemplo: al mover
un objeto de un lugar a otro, o bien que la masa no sea estimada correctamente. Adems,
se podra incorporar un trmino de friccin, F(q,q) , suponiendo que ste es una funcin de
las posiciones y las velocidades de las articulaciones, y agregarlo a la ecuacin (1.1), por lo
tanto el resultado sera la ecuacin (1.2):
(1.2)
(1.3)
donde
= M(q)
= C(q,q)q + g(q)+ F(q,q)
(1.4)
representa un par calculado, por lo tanto, la ley de control a utilizar estara dada
nicamente por :
' = qd + kv q + k pq
donde qd , qd
(1.5)
q = qd - q
(1.6)
qd
Kp
Kv
qd
qd
'
M(q)
q
Robot
1.2 Justificacin
La principal dificultad es la necesidad de identificar, de forma precisa, el modelo
del robot manipulador; algunos mtodos slo suponen el conocimiento de ciertos trminos
del modelo dinmico, tal como la matriz de inercia. Cuando los parmetros en el modelo no
concuerdan con los parmetros del dispositivo real, no se tiene un control eficiente del
mismo.
1.4 Hiptesis
desconocen los
1.5 Alcances
Se pretende comparar los resultados obtenidos de un control por lgica difusa con
base en otros controladores convencionales y adems, verificar si es factible utilizar un
controlador de este tipo para robots manipuladores.
encuentra: la lgica difusa y el control por lgica difusa, as como tambin los trabajos
realizados en cuanto a robtica para el control de un manipulador.
II
2 REVISIN DE LITERATURA
2.1 Estado del arte
A continuacin se presenta el estado del arte que sustenta este trabajo,
comenzando con algunos trabajos realizados en el rea de lgica difusa como objeto de
investigacin y posteriormente se muestra
Zadeh sobre una caldera de vapor. La primera gran aplicacin fue el tren electromagntico
de Sendai construido en 1986 por la sociedad Hitachi.
robot de dos grados de libertad. Adems, mencionan que un robot manipulador es un caso
de dinmica incierta debido a variaciones de carga, friccin y disturbios externos.
Otra aplicacin interesante es la realizada por Dac Loc, et al. (2004) en el cual un
controlador difuso adaptable es diseado para un robot manipulador, el controlador difuso
utilizado es sintetizado a partir de un conjunto de reglas IF- THEN. Lo interesante del
trabajo realizado es que las funciones de pertenencia cambian de acuerdo a algunas leyes de
adaptacin con el propsito de controlar la trayectoria de un robot de dos grados de
libertad.
Zeinali y Notash (2010) presentan una metodologa por lgica difusa basado en el
modelo dinmico inverso de un robot manipulador. La metodologa fue implementada para
construir un modelo difuso adaptativo usado en un prototipo manipulador paralelo de 4
grados de libertad.
ser
La lgica difusa tiene una historia corta, pero un rpido crecimiento debido a su
capacidad de resolver problemas relacionados con la incertidumbre de la informacin
utilizando el conocimiento de los expertos. Adems, proporciona un mtodo formal para la
expresin del conocimiento en forma entendible por los humanos. Estas cualidades le
aseguran un amplio campo de aplicabilidad y un alto inters para las aplicaciones
industriales, presentes y futuras.
2.2.1
Conjuntos difusos
Un concepto bsico para introducirnos a la lgica difusa son los conjuntos difusos,
para ello es necesario compararlo con los conjuntos clsicos. Un conjunto clsico es una
coleccin de objetos de cualquier tipo que se caracteriza por los elementos que contiene, si
X es un conjunto, entonces x X, donde x es un elemento del conjunto X. Un conjunto
10
A : U 0,1
Este conjunto difuso A en U puede ser representado como un conjunto de pares ordenados
de elementos x y su grado de pertenencia o membresa A (Lee, 1990).
A x, A ( x ) x X
(1.7)
[0,1] el cual es
Existen diferentes formas que puede tomar una funcin de pertenencia. Las ms frecuentes
son la funcin tipo trapezoidal, singleton, triangular, gaussiana. Como se muestra en la
11
figura 2.1.
0
a
U
a
b)
a)
U
a
c)
U
a
d)
Para evitar hacer tediosa est parte introductoria, nicamente se describirn las
funciones de membresa que se utilizarn a lo largo del trabajo de investigacin, las cuales
son la triangular y singleton.
Una funcin de membresa de tipo triangular se puede expresar de forma matemtica como,
0
x a
A (x) b a
c x
c b
xa
axb
bxc
xc
(1.8)
Esta funcin es adecuada para modelar propiedades con un valor de inclusin distinto de
cero para un rango de valores estrecho en torno a un punto b.
La funcin de membresa tipo singleton tiene valor 1 slo para un punto a y 0 para
el resto. Se utiliza habitualmente en sistemas difusos simples para definir los conjuntos
difusos de las particiones de las variables de salida, pues permite simplificar clculos y
requiere menos memoria para almacenar la base de reglas. La
figura 2.1 c) muestra a la funcin singleton, la cual se define como:
12
1
0
A (x)
xa
xa
(1.9)
Definicin 2. Si una variable puede describirse con palabras del lenguaje natural, sta es
llamada variable lingstica, donde las palabras son caracterizadas por conjuntos difusos
definidos dentro del universo de discurso en el cual la variable es descrita (Wang, 1997).
Variable lingstica
Vel (V).
Baja
Media
Alta
Valores
lingsticos
V (mph)
Las operaciones bsicas que se realizan entre conjuntos difusos son: unin,
interseccin y complemento.
13
(1.10)
(1.11)
A ( x ) 1 A ( x)
(1.12)
14
Este formato de reglas se conoce como difuso puro o tipo Mandani por ser quien
primero las propuso. Otro formato de reglas es el llamado de tipo Sugeno. En este caso la
funcin de salida es una combinacin lineal de las variables de entrada (Martn del Bro y
Sanz, 2007).
Base de reglas: contiene las reglas difusas con estructura SI-ENTONCES que definen la
relacin entre las variables lingsticas.
Base de reglas y
Entrada de datos
Fuzificacin
mecanismo de
inferencia
15
Defuzifiacin
Fuzificacin
Los conjuntos difusos son usados para cuantificar la informacin en la base de
reglas y el mecanismo de inferencia opera sobre estos conjuntos para obtener otros
conjuntos difusos; por lo tanto, se debe especificar como convertir el sistema difuso sus
entradas numricas x X en conjuntos difusos, para entonces ser utilizados por el sistema
difuso (Passino y Yurkovich, 1998). La funcin de fuzificacin ms simple es la tipo
singleton, es decir, el valor crisp ser el nico valor del conjunto difuso. Formalmente se
puede representar como:
1 x x '
0 x x '
A (x ')
(1.13)
Las razones del porque no han sido utilizados otros mtodos de fuzificacion (por
ejemplo la gaussiana) son: agregan mayor complejidad computacional en el proceso de
inferencia y adems la necesidad de utilizarlas no ha sido justificada. Esto se debe en parte
al hecho de que se alcanzan buenas capacidades funcionales en el sistema difuso, cuando
slo se utiliza fuzificacin singleton.
Mecanismo de inferencia
16
Si x es A entonces y es B
x es A premisa
_____________________
Se deduce
y es B
Defuzificacin
Mtodo del centro de rea (CDA). En este mtodo se calcula el centro de gravedad del rea
limitada por la curva de la funcin de membresa , para ser el valor de salida representativo
de la cantidad difusa.
(y) y dy
(y) dy
y
(1.14)
y
Figura 2.4 Mtodo del centro
de rea
Entre las propiedades positivas de este mtodo hay que destacar que es continuo
(un pequeo cambio en las entradas no implica un cambio brusco en las salidas) y no es
17
ambiguo (obtiene un valor nico como resultado del proceso). Sin embargo el mtodo
presenta algunos inconvenientes. En primer lugar, no es plausible (ya que la salida puede
corresponder a un punto del soporte del conjunto con bajo grado de activacin). Otra
caracterstica, a veces indeseable, es que no se trata de un mtodo lineal. Por otra parte, la
principal limitacin de este mtodo es la necesidad de recorrer todo el universo de discurso
para evaluar el centroide. Esto hace que el clculo del valor representativo sea muy costoso
en nmero de operaciones.
y
y
o
ci
i 1
ci
(1.15)
i 1
Centro de Sumas: Es un mtodo similar al CDA, pero en este caso se trata de evitar el
complejo clculo del conjunto de salida y. Para la obtencin del elemento numrico se
considera el rea de cada uno de los valores lingsticos de salida individualmente. En el
18
i 1
Si ci
i 1
(1.16)
Si
19
ser una pinza, herramienta, etc. El cual permite la manipulacin de objetos en el espacio.
(Sciavicco y Siciliano, 2000)
El objetivo del problema cinemtico inversa consiste en encontrar los valores que
deben adoptar las coordenadas articulares del robot para que su extremo se posicione y
oriente segn una determinada localizacin espacial (Barrientos et al., 2007). Se puede
decir entonces que la cinemtica inversa hace lo inverso a la cinemtica directa, es decir,
busca determinar los ngulos que debe formar cada articulacin para llevar el brazo a una
posicin (o coordenadas) conocida o deseada.
La dinmica es la ciencia que se ocupa de estudiar la relacin entre las fuerzas que
actan sobre un cuerpo y el movimiento que en l se origina. En robtica, el modelo
dinmico tiene por objetivo conocer la relacin entre el movimiento del robot y las fuerzas
implicadas en el mismo. Este modelo relaciona matemticamente: la localizacin del robot
definida por sus variables articulares o por las coordenadas de localizacin de su extremo y
20
sus derivadas: velocidad y aceleracin, las fuerzas y pares aplicados en las articulaciones,
los parmetros dimensionales del robot (Barrientos et al., 2007).
Sin embargo, la obtencin de este modelo para mecanismos de uno o dos grados de
libertad no es excesivamente compleja, pero si el nmero de grados de libertad aumenta, el
planteamiento y obtencin del modelo se complica enormemente.
Existen diversos mtodos para obtener el modelo dinmico del robot como lo son el
mtodo de Newton- Euler, el cual se basa en las formulas dinmicas elementales y el
anlisis de fuerzas y momentos que actan sobre cada vinculo. Tambin se encuentra el
mtodo de Euler-Lagrange, ste ltimo est basado en la diferencia de la energa cintica y
la energa potencial del mecanismo.
T
1
1 T
ki mi vCi vCi i I ii
2
2
(1.17)
21
velocidad. La energa cintica total es la suma de la energa cintica de cada vnculo del
robot manipulador como lo muestra la ecuacin (1.18).
n
k ki
(1.18)
i 1
(1.19)
en donde g es el vector de gravedad, Pci es el vector que ubica al centro de masas del iesimo vinculo (Craig, 2006). La energa potencial total almacenada en el robot manipulador
es la suma de la energa potencial de cada vnculo.
n
u ui
(1.20)
i 1
(1.21)
,
dt d dt d
(1.22)
= M q q + C q,q + g( q )
(1.23)
23
III
3 METODOLOGA
3.1 Obtencin del modelo dinmico del manipulador
Las ecuaciones dinmicas de un robot manipulador pueden obtenerse a partir de
las ecuaciones de movimiento de Newton, pero presenta un inconveniente ya que se
complica notablemente cuando aumenta el nmero de articulaciones del robot (Kelly y
Santibez, 2003). Es por esta razn que se recurre a emplear las ecuaciones de
movimiento de Lagrange.
producto de la mitad de su masa por el cuadrado de la rapidez del centro de masa (energa
cintica traslacional) y el producto de la mitad de su momento de inercia (referido al centro
de masa) por el cuadrado de su velocidad angular (energa cintica rotacional).
24
1
1
ki q, q mi v 2 I i 2
2
2
(2.1)
Donde:
mi Masa del i-simo eslabn
Velocidad angular
Ii
lc1
l1
I1, m1
q1
I2, m2
lc2
q2
l2
Por lo tanto para el eslabn 1 se obtienen las coordenadas para la masa m1 expresadas en el
plano x-y
x1 lC1 s en(q1 )
(2.2)
y1 lc1 cos(q1 )
25
x lc q cos(q1 )
v1 1 1 1
y1 lc1q1sen(q1 )
(2.3)
(2.4)
y 2 l1 cos(q1 ) lc 2 cos(q1 q2 )
(2.5)
v1 v1 lc1 q1
(2.6)
Obtenidas las velocidades, se calcula la energa cintica total del manipulador, la cual est
dada por la suma de las energas cinticas de cada vnculo esto es:
T
1
1 2
m1 v1 v1 I1q1
2
2
T
1
1 2
K 2 m2 v2 v2 I 2 q 2
2
2
K1
(2.7)
26
(2.8)
3.1.2
La energa potencial se define como la energa que poseen los cuerpos que se encuentran a
una altura, y depende de la masa del cuerpo y de la gravedad. La ecuacin (2.9) define a la
energa potencial.
U mgh
(2.9)
Donde:
m masa del cuerpo
g gravedad
h altura del cuerpo
De forma similar a la energa cintica, la energa potencial total del sistema se puede
obtener sumando la energa potencial de cada eslabn, obtenindose:
U1 m1 glc1 cos(q1 )
(2.10)
(2.11)
L K 1 K 2 U1 U2
2
2
2
2
2
2
1
1
L [m1lc1 m2 l1 I1 I 2 ]q1 m2 lc 2 [q1 2q1q 2 q 2 ] m2 l1lc 2 [cos(q 2 )](q1 q1q 2 )
2
2
2
1
[m1lc1 m2 l1 ]g cos(q1 ) m2 glc 2 cos(q1 q2 ) I 2 q 2
2
27
(2.12)
d L L
dt qi qi
(2.13)
(2.14)
2 2
L
m2 lc 2 q1 m2 lc 2 q2 m2 l1lc 2 cos(q2 )q1 I 2 [q1 q2 ]
q2
L
[m1lc1 m2 l1 ]gsen(q1 ) m2 glc 2 sen(q1 q2 )
q1
2
L
m2 l1lc 2 sen(q2 )[q1q2 q1 ] m2 glc 2 sen(q1 q2 )
q2
2
2
d L
m2 lc 2 q1 m2 lc 2 q2 m2 l1lc 2 cos(q2 )q1 m2 l1lc 2 sen(q 2 )q1q2 I 2 [q1 q2 ]
dt q2
(2.15)
(2.16)
28
(2.17)
(2.18)
(2.19)
(2.20)
..
(2.21)
m l l s q m2 l1lc 2 s2 (q1 q2 ) q1
2 1 c2 2 2
q
0
m2 l1lc 2 s2 q1
2
(m1lc1 m2 l1 ) gs1 m2 glc 2 s12
m2 glc 2 s12
(2.22)
29
-1
(2.23)
Las simulaciones se realizaron en Matlab para tres diferentes valores de par, con
los siguientes parmetros del robot (ver apndice D).
Tabla 3-1 Parmetros del robot de 2 gdl
Parmetros
Valor
l1 (longitud eslabn 1)
0.1933 m
l2 (longitud eslabn 2)
0.1458 m
m1 (masa eslabn 1)
0.763 kg
m2 (longitud eslabn 2)
0.343 kg
0.136 m
0.04849 m
0.0186 kgm2
0.00269kgm2
Constante g (gravedad)
9.81 m/s2
(2.24)
y l1 cos(q1 ) l2 cos(q1 q2 )
se tom como referencia el trabajo expuesto por Maldonado del toro, et al. (2011), en el
cual se presentan las pruebas que se muestran a continuacin.
Prueba 1. La primer simulacin se realizo con 1=0 N-m y 2=0.15 N-m. La Figura 3.2
muestra el resultado obtenido con el modelo desarrollado en esta seccin y en la Figura 3.3
se muestra la trayectoria lograda por Maldonado del Toro, et al. (2011).
Dado que nicamente se mueve el eslabn 2, la trayectoria que se genera son
varias eliEPPs sin un centro fijo, esto por la inercia que genera el eslabn 2 al moverse en
el plano X-Y.
30
Prueba 2. Para esta segunda simulacin se consideran los pares de 1=1.3 N-m y 2=0 N-m.
Las figuras Figura 3.4 Figura 3.5 muestran el resultado obtenido y el presentado por
Maldonado del toro, et al. (2011) respectivamente.
0.4
0.3
0.2
y[m]
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.4
-0.3
-0.2
-0.1
0
x[m]
0.1
0.2
0.3
0.4
0.4
0.3
0.2
y[m]
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.4
-0.3
-0.2
-0.1
0
x[m]
0.1
0.2
0.3
0.4
Prueba 3. En esta ltima prueba se aplicaron valores de par de 1=1.6 N-m y 2=-0.3 N-m,
a cada eslabn.
31
La Figura 3.6 muestra la trayectoria obtenida en el plano XY, dado que los valores
de par son de signo contrario para cada articulacin, se genera una elipse, - realizada por la
articulacin 1- formada por dobleces, esto debido a la articulacin 2.
0.4
0.3
0.2
y[m]
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.4
-0.3
-0.2
-0.1
0
x[m]
0.1
0.2
0.3
0.4
Todas las pruebas se simularon en un tiempo 1.2 s., con un periodo de muestreo de
1ms. Es importante mencionar que los resultados obtenidos de la comparacin que se
realiza entre el modelo desarrollado en este trabajo con el presentado por Maldonado del
toro, et al. (2011) son satisfactorios ya que se obtiene el comportamiento esperado,
reflejado en las coordenadas X-Y.
Hoy en da, el control difuso ha sido sugerido como una alternativa a las tcnicas
de control convencionales para sistemas de control complejos. Durante la ltima dcada, el
32
control difuso ha atrado una gran atencin de las comunidades acadmica e industrial,
especialmente en el control de manipuladores.
El enfoque general del diseo de control se hace por la divisin de plano de fase
en dos semiplanos por una lnea de conmutacin. Dentro de los semiplanos, se producen
salidas positivas y negativas de control respectivamente, lo que pone de manifiesto la
similitud entre las reglas difusas del CLD y la salida del controlador de estructura variable,
como se observa en la Error! No se encuentra el origen de la referencia. y la figura 3.8
sistema de estructura variable
La tabla 3.8 representa la base de reglas de un controlador difuso en el cual las
entradas son el error y su derivada. Los valores lingsticos de la variable error son: error
negativo grande (ENG), error negativo pequeo (ENP), cero (ECR), error positivo pequeo
(EPP) y error positivo grande (EPG). De igual manera para la derivada del error los valores
lingsticos son: derivada del error positiva grande (DEPG), derivada del error positiva
33
pequea (DEPG), cero (DECR), derivada del error negativa pequea y negativa grande
(NPDE y NGDE).
Tabla 3-2 Base de reglas de un CLD
e / e
ENG
ENP
ECR
EPP
EPG
DEPG
CRK
NGK
NGK
NGK
NGK
DEPP
PGK
CRK
NPK
NPK
NGK
DECR
PGK
PPK
CRK
NPK
NGK
NPDE
PGK
PPK
PPK
CRK
NGK
NGDE
PGK
PGK
PGK
PGK
CRK
La desventaja del MD est en los cambios drsticos de las variables de control que
provocan alto estrs en los actuadores, como por ejemplo, el ruido contino. Mientras que
en CLD la magnitud de las salidas de control depende de la distancia del vector de estado a
la lnea de conmutacin, suavizando el control. Si los lmites de las incertidumbres del
modelo son conocidos, se puede garantizar la estabilidad y la alta calidad del
comportamiento del sistema controlado. En principio, el controlador difuso funciona como
un controlador de modo deslizante modificado. Las reglas estn, en general condicionadas
en tal manera que por encima de la lnea de conmutacin s=0 se genera un control negativo
y por debajo de la misma se genera un control positivo, similar al MD.
34
Generalidades
Las ecuaciones dinmicas de un robot manipulador de n grados de libertad puede
ser descrita como:
donde M(q)
nxn
Coriolis, y g(q)
q, ,
(2.25)
n
(2.26)
N (q, q)
1
M(q) C(q, q)
2
(2.27)
N (q, q) es antisimtrica y adems se cumple que el modelo dinmico del robot puede ser
representado por:
M (q)q C (q, q)q g (q) Y (q, q, q)
Y
nxp
(2.28)
35
e,i 0,i i i
i 1, 2,..., p
(2.29)
donde 0,i es el valor nominal conocido de i y e ,i denota el error de modelado. Para una
trayectoria representada por qd 1 el error de seguimiento estara dado por:
q q qd
(2.30)
Existen varios elementos de diseo en los CLD tales como: 1) definicin de las
variables de entrada con la forma de sus conjuntos difusos; 2) definicin de las variables de
salida con la forma de sus conjuntos difusos; 3) mtodo de razonamiento y defuzificacin;
4) reglas del controlador.
En adelante, las letras en negritas indican vectores y matrices, mientras que las letras normales indican escalares.
36
Establecidas las entradas del controlador, como siguiente paso del diseo es
asignar el tipo de funciones de pertenencia para cada conjunto difuso.
Ge
Defuzificacin
qi
Razonamiento
Ge
Fuzificacin
qi
Gki
fi
Base de reglas
Para la variable error de seguimiento los conjuntos difusos usados son de tipo
triangular y los valores lingsticos son los siguientes: error positivo grande (EPG), error
positivo pequeo (EPP), error negativo grande (ENG) , error negativo pequeo (ENP) y
cero (ECR). Para facilitar el diseo se eligen los centros de cada funcin de membresa, por
lo tanto se tiene que:
(2.31)
q
1
CNBE
CENP
CECR CEPP
CEPG
Figura 3.10 Funciones de pertenencia para la variable de entrada error de posicin y error de velocidad
37
(2.32)
(2.33)
La figura 3.11 muestra las funciones de pertenencia para los conjuntos difusos descritos
anteriormente.
q
1
CDENG
CDEPG
Para la variable de salida par, se utilizaron funciones de tipo singleton, dado que
no se requiere demasiado costo computacional. Los valores lingsticos son los siguientes:
positivo grande (PGK), positivo pequeo (PPK), negativo grande (NGK), negativo pequeo
(NPK) y cero (CRK).
CNGK
CPGK
38
q n Ge q
q n Ge q
(2.34)
f Gk n
adems, los centros de las funciones de membresa se eligen de tal forma que se utilice
completamente el espacio normalizado, por lo tanto se debe cumplir que:
(2.35)
Una vez que se han descrito las variables de entrada con sus respectivos conjuntos
difusos, es necesario establecer las reglas que conforman la base de conocimiento que
regirn el comportamiento del controlador. Para obtener las reglas difusas se recurri al
presentado por Yi y Chung (1997), denominado UNLP por sus siglas en ingles upperdiagonal-negative, lower-diagonal-positive.
(2.36)
Ge * q G e q 0
39
q
ENG
CENG
DEPG
CDEPG E1
ENP
ECR
EPP
E2
E3
qn
EPG
qn
CEPG
E4
E5
2CDEPP
DEPP
CDEPP
D1
D2
D3
D4
D5
DECR
CDECR
C1
C2
C3
C4
C5
NPDE
CNPDE B
1
B2
B3
B4
B5
qn
2CNPDE
NGDE
CNGDE
A1
rn qn qn 0
A2
A3 A4
CNGK
A5
f
CNPK
CPPK
CPGK
Figura 3.13 Funciones de membresa en el plano de fase del error
Dado que los universos de discurso del error de posicin y el error de velocidad
tienen 5 conjuntos difusos cada uno, el plano de fase se divide en 25 reas de acuerdo al
cruce entre el error de seguimiento y el de velocidad como lo muestra la Figura 3.13. El
centro de cada rea es expresado con un punto etiquetado desde A1 a E5. Dichos puntos
corresponden a cada regla difusa, de la forma si- entonces, que conforman a la base de
conocimiento.
40
1) Trazar dos lneas paralelas a rn en los puntos donde qn 2CDEPP en el de plano de fase
del error. En la Figura 3.13 estn marcadas con las lneas en rojo.
2) Asignar el conjunto difuso de salida CRK al punto donde rn=0.
3) Asignar el conjunto difuso de salida NPK a la regin donde 0<rn<2CDEPP.
4) Asignar el conjunto difuso de salida PPK a la regin donde 2CDENP <rn<0.
5) Asignar el conjunto difuso de salida NGK arriba de la diagonal donde r=2CDEPP
6) Asignar el conjunto difuso de salida PGK debajo de la diagonal donde r=2CDENP
Con este procedimiento se obtienen la Tabla 3-3, donde se resumen las 25 reglas
de la forma si-entonces.
Tabla 3-3 Reglas difusas con el modelo UNLP
q\q
ENG ENP
ECR
EPP
EPG
DEPG
CRK
DEPP
PGK
CRK
NPK
NPK
NGK
DECR
PGK
PPK
CRK
NPK
NGK
DENP
PGK
PPK
PPK
CRK
NGK
DENG PGK
PGK
PGK
PGK
CRK
Por ejemplo, la regla formada por la fila 1 y columna 5, indica que: si el error de
posicin es positivo grande y el error de velocidad es positivo grande, entonces, el par ser
negativo grande. La seal de control negativa revierte este comportamiento, dado que si
fuera positiva, el error incrementara ms y ms. Este proceder de la base de conocimiento
implica la similitud entre los controladores de estructura variable y el CLD.
Hay una relacin entre el error de plano de fase real y el normalizado con las
ganancias del CLD, multiplicando la ecuacin (2.36) por 1/ Ge se obtiene lo expresado en la
ecuacin (2.37).
41
Ge
q0
Ge
q q 0,
(2.37)
Ge
0
Ge
El parmetro r q q representa una medicin del error del sistema de control en lazo
cerrado.
(2.38)
prem
f
n
(k) k
i 1
l
(2.39)
(k)
i 1
Donde k representa el centro de las funciones de membresa de salida las cuales son
singleton (CNGKCPGK) y k el grado de membresa que se obtuvo en la inferencia. Si se
42
utilizan funciones triangulares en la salida, el resultado es igual dado que con este mtodo
no importa la forma de la funcin de membresa.
Aqu se concluye con el diseo del controlador, en los epgrafes que siguen se
utiliz el anlisis desarrollado por Yi y Chung (1997), as tambin se tomaron como
referencias los teoremas necesarios de dichos autores para demostrar la convergencia del
sistema en lazo cerrado a una vecindad cercana al punto de equilibrio.
f k f
r
r
en
(2.40)
donde k f k y r e e
43
Figura 3.14.
q\q
ENG
ENP
ECR
EPP
EPG
DEPG
CRK
NGK
NGK
NGK
NGK
DEPP
PGK
CRK
NPK
NPK
NGK
DECR
PGK
PPK
CRK
NPK
NGK
DENP
PGK
PPK
PPK
CRK
NGK
DENG
PGK
PGK
PGK
PGK
CRK
r=0
q
pa
a
f < -k
r=a
Pb
r=c
Pc
f > k
r=0
de s ,
f (q , q )
f (q , q )
f (q , q )
pa
GkCNGK GK
pB
GkCCRK 0
pC
GkCPGK GK
(2.41)
dado que la salida es continua, para cualquier k [0 Gk], existen puntos a* y c* en s tal
que:
44
f (q, q) k
f (q, q) k
en r a
(2.42)
en r c
s .
f (q, q) k
f (q, q) k
en r
(2.43)
en r
(2.44)
(2.45)
entonces las magnitudes de y k del teorema 1 pueden ser descritas por los parmetros de
diseo del CLD de acuerdo al siguiente teorema.
1
Teorema 2. Magnitud de k y : si C PSK C PBK , entonces para k=GkCPPK , f puede
2
f k f
r
r
en
(2.46)
45
Demostracin.
El plano de fase del error normalizado se muestra en la x el cual corresponde al plano de
fase del error de la Figura 3.14 con las ganancias Gq y Gq . De la se extrajeron un conjunto
*
de puntos n y n para
kn, CNSK y
kn, CPSK
n, f (qn , qn ) C NSK
en rn
n, f (qn , qn ) C PSK
en rn
(2.47)
*
n
qn
E2
E1
E4
E3
D4
D3
D2
D1
C1
C2
C3
B1
B2
B3
E5
D5
C5
C4
B4
qn
B5
qn qn 2CPSE
A1
A2
A3
A4
A5
qn qn 0
qn qn 2CNSE
Figura 3.15 Conjunto de puntos en el plano de fase del error normalizado
donde rn qn qn , aqu se considera la relacin entre las ecuaciones (2.44) y (2.45), por lo
*
46
n, f (qn , qn ) C NSK
en rn
n, f (qn , qn ) C PSK
en rn
(2.48)
*
n
qn Ge q, qn Ge q y f Gk n , f (qn , qn ) corresponde a
f GK C NPK
en r
f GK C PPK
en r
donde
(2.49)
2CEPP
. De acuerdo al teorema 2, es posible ajustar al parmetro con los
Ge
Anlisis
r = q + q donde
Ge
0,
Ge
diag i
(2.50)
i 1,..., n
Para analizar el sistema en lazo cerrado utilizando la caracterizacin del CLD (2.40), la
ecuacin (2.25) se puede expresar en trminos de la ecuacin (2.51) (Spong, 1992).
De aqu en adelante, un parmetro de cada CLD ser denotado por el subindice i, i=1,,n
47
r = q + q
dado que q = q - qd
y q = q - qd , sustituyendo
r = q - qd + q
ademas si qd - q = v y a = v entonces r = q - v r = q - a
Restando el trmino M(q)a C (q, q)v g(q) a ambos lados de la ecuacin
(2.51)
(2.25) se
obtiene
M ( q ) q + C ( qd , -q )Mq ( +q g) a( q+ ) C+ ( q- , M
q ) ( vq +) ag +( qC ) ( =
q , q ) v
(2.52)
agrupando trminos se obtiene
(2.53)
(2.54)
donde K
nxn
(2.55)
48
donde
1 ,..., p y Y q,q,a,v i
Y q,q,a,v
i 1,..., n
(2.56)
Demostracin.
Sustituyendo (2.55) en la ecuacin (2.54)
(2.57)
T
1 T
r M(q)r q Kq
2
(2.58)
diferenciando (2.58)
T
T
1 T
V r M(q)r r M(q)r 2q Kq
2
(2.59)
49
(2.60)
V r -Kr + Y(q,q,a,v)e + f - 2q Kq
(2.61)
V x Qx r [Y(q,q,a,v)e - ] + r f
(2.62)
T K 0
donde x [q , q ] y Q
.
K
0
T
T T
Para obtener las cotas superiores de V en cada intervalo de tiempo, se realiza una particin
de R+ en L1 t ri i i y L2 t ri i i .
i) Cuando t L1, de la ecuacin (2.62) junto con (2.40) y (2.56), la cota sobre V estara
dada por:
ri
i 1
i 1
ri
V x Qx ri { Y(q,q,a,v) i max,i } + ri k f ,i
min (Q ) x
utilizando la propiedad
(2.63)
i , entonces de (2.56) se
adquiere:
f ,i
1
C PPK ,i
Y q,q,a,v
max,i
i .
50
(2.64)
V x Qx ri {Y(q,q,a,v) }i + ri f ,i ri {Y(q,q,a,v) }i + ri f ,i
il
il
il
il
+ ri k f ,i
il
dado que
il
il
ri
ri
ri i , entonces
+ ri k f ,i
il
il
il
ri
ri
(2.65)
ya que
r {Y(q,q,a,v)
il
max,i } + ri k f ,i
il
ri
0 es posible acotar a V como
ri
V x Qx i { Y(q,q,a,v) i max,i } i f ,i
il
il
(2.66)
V x Qx i
il
C PPK ,i 1
C PPK
{ Y(q,q,a,v) i max,i }
(2.67)
Cabe sealar que a partir de las propiedades de la dinmica del robot, se puede acotar a las
incertidumbres como:
'
'
'
51
(2.68)
'
donde
'
k0,i , k1,i
'
ecuacin (2.28). Es importante notar que CPPK 1/ CPPK es una constante, por lo tanto
C PSK ,i 1
C PSK ,i
'
'
'
'
(2.69)
'
il
(2.70)
il
(2.71)
2
2
donde 0 < < 1 y si l x min (Q)(1 ) x i k0,i k1,i x k2,i x
il
V min (Q) x , si
2
x l
(2.72)
V min (Q) x , si
2
(2.73)
52
representa el peor de los casos de l . La ecuacin (2.73) implica una cota ltima del
sistema en lazo cerrado como lo define Khalil (1992).
53
IV
4 RESULTADOS
El captulo se encuentra divido en dos categoras, las simulaciones realizadas en el
entorno Matlab para el robot manipulador prototipo de dos grados de libertad y las
pruebas experimentales realizadas sobre el mismo. Dado que parte de los objetivos es
realizar una comparacin de los algoritmos de control clsicos ms implementados, el PD
con compensacin y el PID con el controlador robusto difuso, se presentan las simulaciones
de cada controlador y sus resultados experimentales.
qrms
2
1 N
(q i , j q d , i , j )
N j 1
(3.1)
Prueba 1. Robot sin carga: se supone al robot sin carga en el eslabn 2, para el caso del
PD Compensado tambin se supone al modelo dinmico conocido.
Prueba 2. Robot con carga: consisti de conjeturar que la masa del eslabn 2 ha cambiado
debido a que el manipulador tomo un objeto con un peso del 30% ms de la masa de dicho
54
Valor
l1 (longitud eslabn 1)
0.193 m
l2 (longitud eslabn 2)
0.145 m
m1 (masa eslabn 1)
0.763 kg
m2 (longitud eslabn 2)
0.343 kg
0.136 m
0.048 m
0.0186
0.0026987
Constante g (gravedad)
9.81
55
qd1 s en(0.1 t )
(3.2)
qd2 s en(0.1 t )
De acuerdo a las ecuaciones obtenidas del modelo del robot de dos grados de libertad
presentada en la seccin 3.1 y la ecuacin (2.22); una parametrizacin del robot es la
siguiente:
2
1 m1lc1 m2 l1 I1 2 m2lc 2 I 2
3 m2l1 lc
4 m1lc
(3.3)
5 m2l1
6 m2lc
con esta parametrizacin, la ecuacin (2.22) que representa el modelo, puede ser reescrita
como:
Y (q, q, q) Y
2x6
(3.4)
y12 q1 q 2
2
y15 gsen(q1 )
y 21 0
(3.5)
2
y 22 q1 q 2
y 24 0
y 25 0
y 26 gsen(q1 q 2 )
y12 a1 a2
y15 gsen(q1 )
y16 gsen(q1 q 2 )
y 21 0
y 22 a1 a2
y 24 0
y 25 0
y 26 gsen(q1 q 2 )
56
(3.6)
0,i
o,1
o, 2
o ,3
o, 4
o ,5
o,6
Valor
0.0455
0.0035
0.0032
0.1038
0.0662
0.0165
Eslabn i
Eslabn i
CEPG,i
-1.0
-0.01
0.0
0.01
-1.0
-0.001
0.0
0.001
CPPK,i
CPGK,i
-1.0
-0.1
0.0
0.1
-1.0
-0.15
0.0
0.15
El esquema completo del controlador lgico difuso se muestra en la Figura 4.1; las
ganancias de escalamiento seleccionadas se muestran en la tabla 4-5.
Eslabn i
Gki
4.0
0.32
3.5
0.19
0.02
2.1
57
Ge ,1
2C PPE ,1
Ge ,1
12.5, 2
Ge ,1
Ge ,2
Ge ,2
9.5,
0.0625, 2
2CPPE ,2
Ge ,2
(3.7)
0.1
La matriz K debe cumplir que sea positiva definida por lo tanto se eligi de tal forma que el
controlador tuviera el mejor desempeo posible.
0.3 0
K
0 0.1
(3.8)
4.2.2 Simulaciones
Las
simulaciones se realizaron con un periodo de muestreo de 0.01 s., durante 120 s., utilizando
los valores de ganancias y de diseo del CLD presentados en el apartado anterior.
Ge
Razonamiento
Ge
Gk
Base de reglas
qd
qd
Kr
q
q1
q2
Y(q,q,a,v)o
qd qd
58
Prueba 1. Robot sin carga: La primera prueba simulada consisti en suponer al robot sin
carga en el eslabn 2. Las grficas obtenidas de dicha prueba son las siguientes:
Articulacin 1
Seal de control
2
Tau1
1.5
0.5
Par (N.m)
Posicin(rad)
q1
qd1
-1
-0.5
-2
-1
-3
-1.5
-4
20
40
60
80
Tiempo (s)
100
120
-2
140
20
40
60
80
Tiempo (s)
100
120
140
Articulacin 1
0.08
0.06
0.04
Error (rad)
0.02
0
-0.02
-0.04
-0.06
-0.08
20
40
60
80
Tiempo (s)
100
120
140
59
El par mximo fue de alrededor de 1.66 N.m, el cual est representado por la
figura derecha de Figura 4.2. En la figura 4.3 se muestra la grafica del error de seguimiento
de la articulacin 1. Para el eslabn 2, se obtuvieron los resultados mostrados en la figura
4.4.
Articulacin 2
Seal de control
0.01
q2
qd2
3
0.005
2
0
Par (N.m)
Posicin (rad)
-0.005
-1
-0.01
-2
-0.015
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.02
140
20
40
60
80
Tiempo (s)
100
120
140
Articulacin 2
x 10
2
0
Error(rad)
-2
-4
-6
-8
-10
-12
20
40
60
80
Tiempo (s)
100
120
60
140
Articulacin 1
Seal de control
1.5
0.5
Par (N.m)
Posicin(rad)
q1
qd1
-1
-0.5
-2
-1
-3
-1.5
-4
20
40
60
80
Tiempo (s)
100
120
-2
140
20
40
60
80
Tiempo (s)
100
120
140
esperarse es mayor al obtenido en la prueba 1. La figura 4.7 muestra la grfica del error de
seguimiento, donde es claro que el error disminuye a un valor cercano a cero al momento
de cambiar la masa, inercia y centro de masa del eslabn 2, demostrando la robustez del
sistema en lazo cerrado.
3
Para la articulacin 2 se obtuvo un error eficaz de q2,rms 3.7x10 rad, las grficas
correspondientes a la posicin y la seal de control se muestra en la Figura 4.8. La
variacin en la masa se aprecia en la seal de control donde se observa que esta disminuye
dado que al agregarle la masa, el nuevo vector de parmetros calculados cambia y se
aproxima al nominal 0.
61
Seal de control
0.05
0.04
0.03
0.02
Error(rad)
0.01
0
-0.01
-0.02
-0.03
-0.04
-0.05
20
40
60
80
Tiempo (s)
100
120
140
Articulacin 2
Seal de control
0.01
q2
qd2
3
0.005
2
0
Par (N.m)
Posicin (rad)
-0.005
-1
-0.01
-2
-0.015
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.02
140
20
40
60
80
Tiempo (s)
100
120
140
62
Seal de control
0.015
0.01
Error(rad)
0.005
-0.005
-0.01
-0.015
20
40
60
80
Tiempo (s)
100
120
140
Articulacin 1
Seal de control
1.5
0.5
Par (N.m)
Posicin(rad)
q1
qd1
-1
-0.5
-2
-1
-3
-1.5
-4
20
40
60
80
Tiempo (s)
100
120
-2
140
20
40
60
80
Tiempo (s)
100
120
140
rad.
63
computacionales a diferencia de mtodo del promedio de reas. El optar por uno u otro
mtodo depende del diseador y el proceso a controlar.
Articulacin 2
Seal de control
0.015
q2
qd2
0.01
2
0.005
Par (N.m)
Posicin (rad)
-0.005
-1
-0.01
-2
-0.015
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.02
140
20
40
60
80
Tiempo (s)
100
120
140
64
Articulacin 1
Seal de control
Par (N.m)
Posicin (rad)
q1
qd1
-1
-1
-2
-2
-3
-3
-4
20
40
60
80
Tiempo (s)
100
120
-4
140
20
40
60
80
Tiempo (s)
100
120
140
0.06
0.04
Error (rad)
0.02
-0.02
-0.04
-0.06
20
40
60
80
100
120
140
Tiempo (s)
65
Articulacin 2
Seal de control
0.6
qd2
q2
0.4
2
0.2
Par (N.m)
Posicin (rad)
-0.2
-1
-0.4
-2
-0.6
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.8
140
20
40
60
80
Tiempo (s)
100
120
140
Prueba 2. Robot con carga. Por seguridad se opt por cambiar la masa del eslabn 2 en el
programa de control del robot y no agregarle la carga de manera fsica para evitar que los
engranes de los motores se daaran.
Seal de control
4
3
q1
qd1
Tau2
2
1
Par (N.m)
Posicin (rad)
-1
-1
-2
-2
-3
-3
-4
20
40
60
80
Tiempo (s)
100
120
-4
140
20
40
60
80
Tiempo (s)
100
120
140
cambiar la masa fue de q1,rms 29.7x10 , de aqu se observa que aumento su valor en
comparacin con el obtenido en la prueba sin carga.
66
Articulacin
Articulacin
22
44
Seal
control
Seal
dede
control
0.6
0.4
qd2
qd2
q2q2
0.3
0.4
33
0.2
22
0.2
0.1
Par (N.m)
Par (N.m)
Posicin (rad)
Posicin (rad)
11
00
-0.1
-0.2
-1-1
-0.2
-0.4
-2-2
-0.3
-0.6
-3-3
-4-4
00
-0.4
2020
4040
6060
8080
Tiempo
Tiempo
(s)(s)
100
100
120
120
-0.8
-0.5
00
140
140
2020
4040
6060
8080
Tiempo
Tiempo
(s)(s)
100
100
120
120
140
140
comparacin con la prueba 1, el error fue ms grande, sin embargo, se tuvo un mejor
desempeo en el seguimiento de la trayectoria ya que era de forma suave y contina. El
3
error eficaz en la articulacion 2 fue de q2,rms 20.6x10 rad. Con lo anterior y comparando
con los resultados derivados de las simulaciones se concluye que se tiene un menor ndice
de error con el mtodo de defuzificacin por media de centros.
67
Seal de control
4
3
q1
qd1
2
1
0
Par (N.m)
Posicin (rad)
-1
-1
-2
-2
-3
-3
-4
20
40
60
80
Tiempo (s)
100
120
-4
140
20
40
60
80
Tiempo (s)
100
120
140
Articulacin 2
Articulacin 2
Seal de control
Seal de control
0.15
4
qd2
q2
0.6
qd2
q2
0.1
3
3
0.4
0.05
2
2
0.2
1
-0.05
Par (N.m)
Par (N.m)
Posicin (rad)
Posicin (rad)
-0.2
-0.1
-0.15
-1
-1
-0.2
-0.4
-2
-2
-0.25
-3
-3
-4
-4
0
-0.6
20
20
40
40
60
80
60
80
Tiempo
(s) 100
Tiempo (s)
100
120
120
140
-0.8
140
-0.3
-0.35
0
0
20
20
40
40
60
80
60
80
Tiempo
(s) 100
Tiempo (s)
100
120
120
140
140
68
(3.9)
donde K p , K v
nxn
posicin y =Kp/Kv.
El control PD con compensacin es del tipo basado en el modelo, es decir, que la
ley de control emplea explcitamente los trminos del modelo. Kelly y Santibez (2003),
muestran el diseo de este controlador, dado que no es objetivo de esta investigacin, no se
presenta el desarrollo, simplemente se tomo como referencia los parmetros de diseo
obtenidos por los autores mencionados.
4.3.1 Simulaciones
1
2
k p1
kv1
k p2
k v2
12
(3.10)
20
dado que:
a q d q v
v q d q
La ley de control expresada en la ecuacin 4.9 puede ser implementada, empleando la
ecuacin 4.12.
69
= K pq + K v q + Y(q,q,a,v)
(3.12)
Prueba 1. Robot sin carga. La figura 4.19 muestra la respuesta de la articulacin 1 con la
4
Las grficas resultantes de la articulacin 2 son las presentadas por la figura 4.20.
4
Seal de control
1.5
0.5
Par (N.m)
Posicin(rad)
q1
qd1
-1
-0.5
-2
-1
-3
-1.5
-4
20
40
60
80
Tiempo (s)
100
120
-2
140
20
40
60
80
Tiempo (s)
100
120
140
Seal de control
0.01
q2
qd2
3
0.005
2
Par (N.m)
Posicin (rad)
-0.005
-1
-2
-0.01
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.015
140
20
40
60
80
Tiempo (s)
70
100
120
140
Prueba 2. Robot con carga. Los resultados obtenidos para el PD compensado en esta
prueba se muestran a continuacin.
3
Articulacin 1
Seal de control
1.5
0.5
Par (N.m)
Posicin(rad)
q1
qd1
-1
-0.5
-2
-1
-3
-1.5
-4
20
40
60
80
Tiempo (s)
100
120
-2
140
20
40
60
80
Tiempo (s)
100
120
140
71
Articulacin 2
Seal de control
0.025
q2
qd2
0.02
3
0.015
2
0.01
1
Par (N.m)
Posicin (rad)
0.005
-0.005
-1
-0.01
-2
-0.015
-3
-0.02
-4
20
40
60
80
Tiempo (s)
100
120
-0.025
140
20
40
60
80
Tiempo (s)
100
120
140
Articulacin 1
Seal de control
3
q1
qd1
2
1
Par (N.m)
Posicin (rad)
-1
-1
-2
-2
-3
-3
-4
20
40
60
80
Tiempo (s)
100
120
-4
140
20
40
60
80
Tiempo (s)
100
120
140
72
Prueba 2. Robot con carga. El error obtenido para la articulacin 1 fue de 0.2579 rad. Los
resultados obtenidos se muestran en la figura 4.25.
Articulacin 2
Seal de control
0.6
qd2
q2
0.4
2
0.2
Par (N.m)
Posicin (rad)
-0.2
-1
-0.4
-2
-0.6
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.8
140
20
40
60
80
Tiempo (s)
100
120
140
Seal de control
3
q1
qd1
3
2
Par (N.m)
Posicin (rad)
-1
-1
-2
-2
-3
-4
20
40
60
80
Tiempo (s)
100
120
-3
140
20
40
60
80
Tiempo (s)
100
120
140
73
Articulacin
2
Articulacin
2
4
qd2
q2
0.4
0.05
0.2
-0.05
-1
-1
-2
-2
-3
-3
Par (N.m)
-4
0 20
20 40
40 60
60 80
80 100
Tiempo Tiempo
(s)
(s)
100120
120140
Par (N.m)
Posicin (rad)
Posicin (rad)
0.1
-4
Seal deSeal
control
de control
0.6
qd2
q2
-0.2
-0.1
-0.4
-0.15
-0.6
-0.2
-0.8
140
-0.25
0 20
20 40
40 60
60 80
80 100
Tiempo (s)
Tiempo (s)
100120
120140
140
K p q K I q(s)ds KDq
(3.13)
donde K p , K I
y Kd
nxn
el error de posicin.
4.4.1 Simulaciones
74
(3.14)
Prueba 1. Robot sin carga. La figura 4.27 muestra la respuesta de la articulacin 1 con la
trayectoria deseada presentada en la ecuacin 4.1. El error de seguimiento eficaz es de
q1 0.0256 rad. El valor de par mximo es de aproximadamente 1.6 N.m. Las grficas
resultantes de la articulacin 2 se presentan en la figura 4.28. El error de seguimiento
4
Articulacin 1
Seal de control
1.5
0.5
Par (N.m)
Posicin(rad)
q1
qd1
-1
-0.5
-2
-1
-3
-1.5
-4
20
40
60
80
Tiempo (s)
100
120
-2
140
20
40
60
80
Tiempo (s)
100
120
140
100
120
140
Seal de control
0.06
q2
qd2
0.04
2
0.02
Par (N.m)
Posicin (rad)
-0.02
-1
-0.04
-2
-0.06
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.08
140
20
40
75
60
80
Tiempo (s)
Articulacin 1
Seal de control
3
q1
qd1
3
2
Par (N.m)
Error(rad)
-1
-1
-2
-2
-3
-4
20
40
60
80
Tiempo (s)
100
120
-3
140
20
40
60
80
Tiempo (s)
100
120
140
76
Articulacin 2
Seal de control
0.15
q2
qd2
3
0.1
2
Par (N.m)
Posicin (rad)
0.05
0
-1
-2
-0.05
-3
-4
20
40
60
80
Tiempo (s)
100
120
-0.1
140
20
40
60
80
Tiempo (s)
100
120
140
Seal de control
3
q1
qd1
2
1
Par (N.m)
Posicin (rad)
-1
-1
-2
-2
-3
-3
-4
20
40
60
80
Tiempo (s)
100
120
-4
140
20
40
60
80
Tiempo (s)
100
77
120
140
Articulacin 2
Seal de control
0.3
0.2
0.1
0
Par (N.m)
Posicin (rad)
qd2
q2
-0.1
-1
-0.2
-2
-0.3
-3
-0.4
-4
20
40
60
80
Tiempo (s)
100
120
-0.5
140
20
40
60
80
Tiempo (s)
100
120
140
Algoritmo de control
CLD robusto
16.7 x 10-3
13.0x10-3
PD compensado
242.7 x 10-3
144.9x10-3
PID
32.8 x 10-3
10.6x10-3
0.2
0.15
CLD robusto
PD Compensado
0.1
PID
0.05
0
qtil1
qtil2
Articulaciones
Para la prueba 2, nicamente se incluyen los resultados obtenidos del CLD y del
PD compensado, esto debido a que no realizo la prueba experimental con el algoritmo PID.
Algoritmo de control
CLD robusto
38.3 x 10-3
14.8x10-3
PD compensado
257.9 x 10-3
159.0x10-3
---
PID
---
Estos resultados indican que el CLD est cumpliendo con el objetivo del control,
que es reducir el error ante incertidumbres o cambios paramtricos. En especial muestra
que el control PD compensado se puede complementar con un CLD difuso para mejorar su
respuesta, sin embargo se complica la etapa de sintonizacin ya que aumenta el nmero de
ganancias y parmetros a ajustar.
79
0.25
0.2
0.15
CLD robusto
PD Compensado
0.1
0.05
0
qtil1
qtil2
Articulaciones
80
V5 CONCLUSIONES
Hay varias fuentes de incertidumbre en la dinmica de los robots manipuladores,
tales como; variacin en la carga del manipulador, fricciones, dinmicas no modeladas, y
adems el desgaste que sufren los mecanismos actuadores, que provocan hacer imposible
obtener de manera exacta su modelo matemtico. La mayora de los controladores tales
como el PD compensado, par computado, PD precompensado, necesitan tener
conocimiento a priori de la dinmica del manipulador de manera exacta, siendo esto difcil
de obtener, los controladores resultan no tener un buen desempeo.
Otra aportacin del trabajo realizado es que se presenta una metodologa para la
elaboracin de la base de reglas, la cual se bas principalmente en la teora de controladores
con estructura variable en especifico los modos deslizantes, esto se consigui gracias a que
existe una similitud entre los controladores de estructura variable (CEV) y los controladores
difusos, pero a su vez no se presenta el problema de castaeo, principal desventaja de los
CEV debido a trminos discontinuos, dado que la salida de controlador difuso es continua,
como se demuestra en los teoremas 1 y 2.
81
A pesar de que el control difuso ha sido blanco de varias crticas porque no cuenta
con un estudio de estabilidad, en este trabajo se presento un anlisis metdico para
determinar la robustez que presenta ante incertidumbres, utilizando el teorema de la cota
final (por sus siglas en ingles U.U.B.) y parte de la teora de control robusto.
82
VI
6 BIBLIOGRAFA
B. M., F. Mata y A. Jimnez. 2005. Controladores borrosos basados en
iAl-Hadithi,
estructura variable con modos deslizantes: aspectos y similitudes. RIAI. 2: 19-35.
Kuo, T.C. 2010. Trajectory control of a robotic manipulator utilizing an adaptive fuzzy
sliding mode. World Academy of Science, Engineering and Technology. 65:913-917
83
Lee, C.C. 1990. Fuzzy Logic in control Systems: Fuzzy Logic Controller-Part I. IEEE
transactions on systems, man and cybernetics. 20:404-418
Lpez, A.A. 2001. Usos y Abusos de la logica difusa. Con mantenimiento Productivo 8:1217.
Lpez, J., y P. Muoz. 2007. Control de un motor utilizando lgica difusa con reglas
sintonizadas por algoritmos genticos. Scientia et Technica 13: 121-127.
Maldonado del toro, H. M., R. Silva, E.R. Ramos, V. M. Hernandez, y J.C. Rivera. 2011.
Modelado y simulacion de un robot rgido de dos grado de libertad. Lat. Am. J. Phys.
Educ.5:321-327.
Martin del Brio, B. y A. Sanz. 2007. Redes Neuronales y Sistemas Borrosos. 3a edicion.
Mexico. Alfaomega.
Martnez, J., J. Bowles, y P.Mills. 1996. A fuzzy logic positioning system for an articulated
Robot arm: 251-257
Palm, R. 1992. Sliding mode fuzzy control. IEEE Int. Conf. Fuzzy Systems. San Diego,
C.A. pp. 519-526.
Passino, K.M. y S. Yurkovich. 1998. Fuzzy control Book. Ohio U.S. Addison-Wesley
Longman Inc.
Pires, J.N., y T. Godinho. 2008. Control difuso de fuerza en robotica industrial. Ingenierias.
21: 55-62.
84
Ray, K.S., y D.D. Majunder. 1984. Aplication of circle criterion for stability analysis of
linear siso and mimo systems associated with fuzzy logic controler. IEEE
Transactions on Systems, Man and Cybernetics. 14: 345-349.
Rezoug, A. S., S. Boudoua y F. Harmerlain. 2009. Fuzzy Logic Control for Manipulator
Robot actuated by Pneumatic Artificial Muscles. Journal of electrical systems. 01: 16.
Sala, A. y C.V. Ario. 2009. Reduciendo distancias entre el control difuso y el control no
lineal: luces y sombras. Revista Iberoamericana de automtica e informtica
industrial. 6: 26-35
Sciavicco, L.y B. Siciliano. 2000. Modelling and Control of robot manipulator. London.
Springer.
Spong, M. W. 1992. On the robust control of robot manipulators. IEEE trans. Automat.
Contr. 37:1782-1786
Sharkawy, A. B., M.M. Othman y A. M. Khalil. 2011. A robust fuzzy tracking control
scheme for robotic manipulators with experimental verification. Intelligent control
and automation. 2: 100-111.
Wang, X.L. 1995. A course in fuzzy systems and control. Upper Saddle River, N.J.
Prentice-Hall, PTR.
85
Yeong, Y.S.y M. J. Chung. 1997. A robust fuzzy logic controller for robot manipulator
with uncertainties. IEEE transactions on systems, Man and Cybernetics. 27: 706-713.
Yeong, Y.S. y M.J. Chung. 1994. Systematic design and stability analysis of a fuzzy
controller. Fuzzy Sets and systems. 91: 271-298
Yeong, Y.S. y M.J. Chung. 1993. Design of a Fuzzy Logic Controller for robot
manipulators in VSS control Scheme. Proc. IFSA. 11: 1207-1210.
86
APNDICES
87
Apndice A Preliminares
propiedades
A.1
matemticos
(A.1)
Las propiedades de cada componente de la ecuacin (A.1) sern revisadas a lo largo de este
epgrafe, las cuales estn divididas en: matriz de inercia M(q), matriz centrfuga y de
Coriolis (C (q, q)) , el vector de gravedad g(q), adems de la propiedad de linealidad en los
parmetros dinmicos (de principal importancia para el desarrollo de esta investigacin).
La matriz M(q) es de nxn, simtrica y definida positiva, adems sus elementos son
funciones nicamente de q.
1.- Existe una constante positiva , real tal que:
M(q) I
88
(A.2)
2.- nicamente para el caso de robots provistos de articulaciones rotacionales, existe una
constante > 0 tal que:
max M q , q R
(A.3)
|).
x, y, z R
tal que:
(A.4)
es:
(
|)
La matriz de fuerzas centrifugas y de Coriolis es una matriz de nxn cuyos elementos son
funciones de q y q y satisface las siguientes propiedades
1. La matriz C(q, ) puede ser no nica pero el vector C(q, ) es nico.
2.
89
C ( q , x ) y C (q , y ) x ,
C ( q , z x ) y C ( q , z) y C ( q , x ) y
(A.5)
q, x, y R
tal que:
(A.6)
|)
tales que:
v, x, y, z, w
(A.7)
6. La matriz C (q, q) est relacionada con la matriz de inercia M(q) por la expresin:
T 1
x M (q ) C (q , q ) x 0
2
y de hecho
q, q, x
(A.8)
1
M (q) C (q, q ) es una matriz antisimtrica. En forma anloga la matriz
2
(A.9)
El vector de pares gravitacionales g(q) est presente en robots que no han sido
diseados desde un punto de vista mecnica, con compensacin de pares de gravedad, es
decir, sin contrapesos o resortes. Algunas de sus propiedades ms importantes se citan
continuacin.
90
(A.10)
g(q) q dt U (q(0)) kU
y kU min q U (q)
tal que:
g(x) g( y ) K g x y
x, y R
(A.12)
es:
max g (q )
i
Kg n
i, j, q q j
Ms aun,
(A.11)
satisface:
kg
g(q)
g(q)
max
q
q
3.-Para robots que solo tienen uniones rotativas, existe una constante
91
tal que:
g q k , q
'
A.2
(A.13)
Producto de vectores
n
y1 x1
y x
xn 2 2
y n xn
x y x1 x2
y1
y
2
yn
(A.14)
*x y y x
T
* x (y z) x y x z
Norma euclidiana
La norma euclidiana x de un vector x se define como:
2
i
x x
(A.15)
* x 0 si y solo si x=0
* x 0 para todo x
con x 0
* x x para todo
y si x
.
n
92
* x y xy x y
T
*x y x y
Matrices particulares
Una matriz A es cuadrada si n=m. una matriz cuadrada es simtrica si esta es igual
a su transpuesta, es decir, A=AT, mientras que es antisimtrica si A=-AT. una propiedad de
T
Valores propios
Para cada matriz cuadrada A existen n valores propios o eigenvalores denotados por i{A}.
Para el caso de una matriz simtrica, sus valores propios son tales que:
* 1{A}, 2{A},, n{A} son nmeros reales.
*denotando los valores mximos y mnimos de A por max y min , respectivamente, el
teorema de Rayleigh-Ritz establece que para todo x
T
se tiene:
(A.16)
93
Norma espectral
La norma espectral A de una matriz A
nxm
min i i A
94
Apndice B Sistemas
de
Estructura Variable4 (CEV)
B.1
control
de
y una lgica que realiza la conmutacin entre ellos en funcin de los estados del sistema.
La accin de control que resulta de esta ley de conmutacin es una funcin discontinua de
los estados. Un modo de operacin particular se obtiene cuando las conmutaciones ocurren
a frecuencia muy elevada, restringiendo la trayectoria de los estados del sistema a una
variedad en el espacio de estados. Este modo de operacin es llamado modo o rgimen
deslizante (MD) y presenta propiedades muy atractivas. Entre otras, es robusto a
perturbaciones externas y La incertidumbre en los parmetros, el sistema de lazo cerrado es
de orden reducido, y su dinmica es gobernada mediante el diseo de la funcin de
conmutacin.
Entre los sistemas susceptibles de aplicar la teora del CEV se tienen: sistemas no
lineales, sistemas con retraso, sistemas de gran escala, sistemas multivariables , etc. Aparte
de su aplicacin principal, que es la estabilizacin de sistemas, las tcnicas del VSC
comienzan a aplicarse al control de sistemas de seguimiento de movimientos, control
ptimo y al control adaptativo.
El siguiente ejemplo puede dar una idea bsica del CEV. Dado el sistema de
segundo orden:
x ax (b k)x 0
Si la ley de control kx se elige de forma que k cambie entre valores diferentes, modificando
la estructura del sistema en cadena cerrada, se obtienen trayectorias diferentes de las que se
95
b
k
b
El sistema en cadena cerrada tendr dos estructuras:
x x 0
x x 0
Las trayectorias en los dos casos se muestran en la figura B.1 (A) y (B). En el
caso de la ltima ecuacin, existe un nico sub-espacio estable definido por la siguiente
ecuacin: x x 0 , utilizando esta lnea y la lnea x=0, se divide el plano de fases en
cuatro regiones como se ve en la figura B.1 (C). Se elige el control de la siguiente forma:
(B)
(A)
II
I
x
III
IV
(C)
96
Conmutacin
t
(A)
X(t)
t
Conmutaciones
(B)
Figura B.3 Las trayectorias del sistema como funcin del tiempo: (A) La
condicin inicial en la regin I; (B) La condicin inicial en la regin II
97
B.2
* Como el origen del espacio de estados representa el estado de equilibrio del sistema, el
MD representa el comportamiento del mismo durante el periodo transitorio. En otras
palabras, la superficie que describe s(x)=0 define la respuesta transitoria del sistema
durante MD.
* Durante el MD; las dinmicas de la trayectoria son de un orden menor que el orden del
sistema original.
La ley de control del sistema variable se cambia cuando su estado cruza la lnea de
conmutacin. En general, la entrada del control puede que no sea suave, e incluso a veces
98
accin de control puede conmutar de un valor a otro de forma infinitamente rpida. Sin
embargo, en sistemas prcticos, el ruido continuo es indeseable, porque es imposible
conseguir el control de alta conmutacin necesario en la mayora de diseos de CEV,
debido a muchas razones. Una de ellas en la existencia de un retardo en el cmputo del
control. La segunda razn es la limitacin de los actuadores fsicos. El ruido continuo
siempre ocurre en los modos deslizantes y en rgimen permanente. En rgimen permanente,
el ruido continuo aparece como una oscilacin de alta frecuencia alrededor del punto
deseado de equilibrio y puede resultar una fuente de excitacin de las dinmicas de alta
frecuencia del sistema no modeladas. Por tanto, el ruido continuo debe eliminarse de modo
que el control actu adecuadamente.
99
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
%% valores iniciales
x1(1)=0;
x2(1)=0;
x3(1)=0;
x4(1)=0;
pd1(1)=0;
pd2(1)=0;
tau1(1)=0;
tau2(1)=0;
%posicin articular 1
%posicin articular 2
%velocidad articular 1
%velocidad articular 2
%par 1 en instante t cero
%par 2 en instante t cero
100
auxe2=0;
inte1=0; %auxiliares para almacenar la suma del rea
inte2=0;
area1=0;
area2=0;
%% inicio de simulacin
for b=2:12500
% asignacin de posiciones, velocidades y aceleraciones deseadas
pd1(b)=-pi*sin(b*0.1*step);
pdd1(b)=-pi*0.1*cos(b*0.1*step);
pd2(b)=pi*sin(b*0.1*step);
pdd2(b)=pi*0.1*cos(b*0.1*step);
pdd1d(b)=pi*0.1^2*sin(b*0.1*step);
pdd2d(b)=-pi*0.1^2*sin(b*0.1*step);
q1(b)=x1(b); %salida posicin
q2(b)=x2(b);
q1p(b)=x3(b);
q2p(b)=x4(b);
%clculo del err de posicin
e1(b)=pd1(b)-q1(b);
e2(b)=pd2(b)-q2(b);
%clculo del error de velocidad
de1(b)=pdd1(b)-q1p(b);
de2(b)=pdd2(b)-q2p(b);
%clculo de la integral
area1=(e1(b)*step);
inte1=inte1+area1;
area2=(e2(b)*step);
inte2=inte2+area2;
%seal de control
tau1(b)=kp1*e1(b)+kd1*de1(b)+ki1*inte1;
tau2(b)=kp2*e2(b)+kd2*de2(b)+ki2*inte2;
%%modelo del robot
m11=A+2*B*cos(q2(b));
m12=C+B*cos(q2(b));
m21=m12;
m22=C;
C1=-G*(2*q1p(b)+q2p(b))*q2p(b)*sin(q2(b));
C2=G*q1p(b)*q1p(b)*sin(q2(b));
g1=H*sin(q1(b))+F*sin(q1(b)+q2(b));
g2=F*sin(q1(b)+q2(b));
aux1=m11*m22-m12*m21;
v1= tau1(b)-C1-g1;
v2= tau2(b)-C2-g2;
f1=q1p(b);
f2=q2p(b);
101
f3=((m22*v1)-(m12*v2))/aux1;
f4=((-m12*v1)+(m11*v2))/aux1;
x1(b+1)=f1*step+q1(b);
x2(b+1)=f2*step+q2(b);
x3(b+1)=f3*step+q1p(b);
x4(b+1)=f4*step+q2p(b);
KT(b)=(b)*step;
auxe=auxe+e1(b)^2;
auxe2=auxe2+e2(b)^2;
%cambio de masa en eslabn 2 a los 25 seg.
if KT(b)==25
m2=0.343+0.5*(0.343);
lc2=.048+0.5*(0.048);
I2=0.0026987+1*(0.0026987);
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
end
%cambio de masa en eslabn 2 a los 85 seg.
if(KT(b)==85)
m2=0.343;
lc2=.048;
I2=0.0026987;
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
end
end
%clculo del error eficaz
errorrms1=(auxe/6000)^(1/2)
errorrms2=(auxe2/6000)^(1/2)
%instrucciones para obtener las grficas
subplot(1,2,1),
plot(KT,q1,'b',KT,pd1,'r');
grid on;
legend('q1','qd1');
xlabel('Tiempo (s)');
ylabel('Posicin (rad)');
title('Articulacin 1')
subplot(1,2,2),plot(KT,tau1,'b');
xlabel('Tiempo (s)');
ylabel('Par (N.m)');
title('Seal de control')
grid on
102
CONTROL PD
Para el control PD se utiliz el cdigo siguiente
%robot 2 grados de libertad CONTROL PD
clear all;
close all;
%clc;
%% parmetros del robot
l1=0.193;
%longitud de eslabn 1
l2=0.145;
%longitud de eslabn 2
lc1=.136;
%distancia al centro de masa 1
lc2=.048;
%distancia al centro de masa 2
m1=0.763;
%masa 1
m2=0.343;
%masa 2
I1=0.0186;
%inercia eslabn 1
I2=0.0026987;
%inercia eslabn 2
g=9.81
%aceleracin de gravedad
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
%% valores iniciales
x1(1)=0;
x2(1)=0;
x3(1)=0;
x4(1)=0;
pd1(1)=0;
pd2(1)=0;
tau1(1)=0;
tau2(1)=0;
%posicin articular 1
%posicin articular 2
%velocidad articular 1
%velocidad articular 2
%par 1 en instante t cero
%par 2 en instante t cero
103
pdd2d(b)=-pi*0.1^2*sin(b*0.1*step);
q1(b)=x1(b); %SALIDA posicin
q2(b)=x2(b);
q1p(b)=x3(b);
q2p(b)=x4(b);
%clculo del error de posicin
e1(b)=pd1(b)-q1(b);
e2(b)=pd2(b)-q2(b);
%clculo del error de velocidad
de1(b)=pdd1(b)-q1p(b);
de2(b)=pdd2(b)-q2p(b);
%clculo de V y a para el cambio de variable
V1=pdd1(b)-lambda1*e1(b);
V2=pdd2(b)-lambda2*e2(b);
al1=pdd1d(b)-lambda1*de1(b);
al2=pdd2d(b)-lambda2*de2(b);
%Matriz Y
Yav=[al1 al1+al2 cos(q2(b))*(2*al1+al2)sin(q2(b))*(q2p(b)*V2+q1p(b)
*V2+q2p(b)*V1) g*sin(q1(b)) g*sin(q1(b)) g*sin(q1(b)+q2(b));
0 al1+al2 cos(q2(b))*al1+sin(q2(b))*q1p(b)*V1 0 0
g*sin(q1(b)+q2(b))];
r1(b)=de1(b)+lambda1*e1(b);
r2(b)=de2(b)+lambda2*e2(b);
%calcul de Y*th
T2=Yav*th;
tau1(b)=T2(1,1)-k1*r1(b);
tau2(b)=T2(2,1)-k2*r2(b);
%seal de control
tau1(b)=kp1*e1(b)+kd1*de1(b)+ki1*inte1;
tau2(b)=kp2*e2(b)+kd2*de2(b)+ki2*inte2;
%%modelo del robot
m11=A+2*B*cos(q2(b));
m12=C+B*cos(q2(b));
m21=m12;
m22=C;
C1=-G*(2*q1p(b)+q2p(b))*q2p(b)*sin(q2(b));
C2=G*q1p(b)*q1p(b)*sin(q2(b));
g1=H*sin(q1(b))+F*sin(q1(b)+q2(b));
g2=F*sin(q1(b)+q2(b));
104
aux1=m11*m22-m12*m21;
v1= tau1(b)-C1-g1;
v2= tau2(b)-C2-g2;
f1=q1p(b);
f2=q2p(b);
f3=((m22*v1)-(m12*v2))/aux1;
f4=((-m12*v1)+(m11*v2))/aux1;
x1(b+1)=f1*step+q1(b);
x2(b+1)=f2*step+q2(b);
x3(b+1)=f3*step+q1p(b);
x4(b+1)=f4*step+q2p(b);
KT(b)=(b)*step;
auxe=auxe+e1(b)^2;
auxe2=auxe2+e2(b)^2;
%cambio de masa en eslabn 2 a los 25 seg.
if KT(b)==25
m2=0.343+1*(0.343);
lc2=.048+1*(0.048);
I2=0.0026987+1*(0.0026987);
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
end
if(KT(b)==85)
m2=0.343;
lc2=.048;
I2=0.0026987;
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
end
end
%clculo del error eficaz
errorrms1=(auxe/12500)^(1/2)
errorrms2=(auxe2/12500)^(1/2)
%instrucciones para obtener las grficas
subplot(1,2,1),
plot(KT,q1,'b',KT,pd1,'r');
grid on;
legend('q1','qd1');
xlabel('Tiempo (s)');
ylabel('Posicin (rad)');
title('Articulacin 1')
subplot(1,2,2),plot(KT,tau1,'b');
xlabel('Tiempo (s)');
ylabel('Par (N.m)');
title('Seal de control')
grid on
105
CONTROL DIFUSO
%robot 2 grados de libertad CONTROL DIFUSO
clear all;
close all;
%clc;
%%
l1=0.193;
l2=0.145;
lc1=.136;
lc2=.048;
m1=0.763;
m2=0.343;
I1=0.0186;
I2=0.0026987;
g=9.81
%longitud de eslabn 1
%longitud de eslabn 2
%distancia al centro de masa 1
%distancia al centro de masa 2
%masa 1
%masa 2
%inercia eslabn 1
%inercia eslabn 2
%aceleracin de gravedad
th=[m1*lc1^2+m2*l1^2+I1;m2*lc2^2+I2;m2*l1*lc2;m1*lc1;m2*l1;m2*lc2];
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
%% valores iniciales
x1(1)=0;
%posicin articular 1
x2(1)=0;
%posicin articular 2
x3(1)=0;
%velocidad articular 1
x4(1)=0;
%velocidad articular 2
pd1(1)=0;
pd2(1)=0;
tau1(1)=0;
tau2(1)=0;
lingstica error
lingstica error
lingstica error
lingstica error
%%ganancias de escalamiento
gep1=4.0; %10;%ganancias de escalamiento de la entrada ep2
106
107
de1(b)=q1p(b)-pdd1(b);
de2(b)=q2p(b)-pdd2(b);
dedif1(b)=de1(b)*gev1;
dedif2(b)=de2(b)*gev2;
V1=pdd1(b)-lambda1*e1(b);
V2=pdd2(b)-lambda2*e2(b);
al1=pdd1d(b)-lambda1*de1(b);
al2=pdd2d(b)-lambda2*de2(b);
Yav=[al1 al1+al2 cos(q2(b))*(2*al1+al2)sin(q2(b))*(q2p(b)*V2+q1p(b)*V2+q2p(b)*V1) g*sin(q1(b)) g*sin(q1(b))
g*sin(q1(b)+q2(b));
0 al1+al2 cos(q2(b))*al1+sin(q2(b))*q1p(b)*V1 0 0
g*sin(q1(b)+q2(b))];
gk1(b)=3.2;
gk2(b)=2.1;
%seal de control
tf1(b)=difuso1(edif1(b),dedif1(b),cep1,cev1,ep1,ev1,reglas,MD1,MI1,MDe1,M
Ie1)*gk1(b);
tf2(b)=difuso1(edif2(b),dedif2(b),cep2,cev2,ep2,ev2,reglas,MD2,MI2,MDe2,M
Ie2)*gk2(b);
r1(b)=de1(b)+lambda1*e1(b);
r2(b)=de2(b)+lambda2*e2(b);
%calcul del vector Y*th
T2=Yav*th;
tau1(b)=T2(1,1)-k1*r1(b)+tf1(b);
tau2(b)=T2(2,1)-k2*r2(b)+tf2(b);
%%modelo del robot
m11=A+2*B*cos(q2(b));
m12=C+B*cos(q2(b));
m21=m12;
m22=C;
C1=-G*(2*q1p(b)+q2p(b))*q2p(b)*sin(q2(b));
C2=G*q1p(b)*q1p(b)*sin(q2(b));
g1=H*sin(q1(b))+F*sin(q1(b)+q2(b));
g2=F*sin(q1(b)+q2(b));
aux1=m11*m22-m12*m21;
v1= tau1(b)-C1-g1;
v2= tau2(b)-C2-g2;
f1=q1p(b);
f2=q2p(b);
f3=((m22*v1)-(m12*v2))/aux1;
f4=((-m12*v1)+(m11*v2))/aux1;
108
x1(b+1)=f1*step+q1(b);
x2(b+1)=f2*step+q2(b);
x3(b+1)=f3*step+q1p(b);
x4(b+1)=f4*step+q2p(b);
KT(b)=(b)*step;
auxe=auxe+e1(b)^2;
auxe2=auxe2+e2(b)^2;
if KT(b)==25
m2=0.343+1*(0.343);
lc2=.048+1*(0.048);
I2=0.0026987+1*(0.0026987);
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
end
if(KT(b)==85)
m2=0.343;
lc2=.048;
I2=0.0026987;
A=m1*lc1^2+m2*(l1^2+lc2^2)+I1+I2;
B=m2*l1*lc2;
C=m2*lc2^2+I2;
H=m1*g*lc1+m2*g*l1;
F=m2*g*lc2;
G=m2*l1*lc2;
end
end
errorrms1=(auxe/6000)^(1/2)
errorrms2=(auxe2/6000)^(1/2)
subplot(1,2,1),
plot(KT,q2,'b',KT,pd2,'r');
grid on;
legend('q2','qd2');
xlabel('Tiempo (s)');
ylabel('Posicin (rad)');
title('Articulacin 2')
subplot(1,2,2),plot(KT,tau2,'b');%,KT,tau2,'r');
xlabel('Tiempo (s)');
ylabel('Par (N.m)');
%legend('Tau1','Tau2');
title('Seal de control')
grid on
Funcin difuso1.m
function[ui]=difuso1(e,de,cep,cev,ep,ev,reglas,MD,MI,MDe,MIe)
109
110
end
%inferencia del mnimo y etapa de defuzificacin.
i=1;
for m=(e_int-e_cont+1):e_int
for n=(de_int-de_cont+1):de_int
prem=min([mfe(m) mfc(n)]);%calcula el mnimo de los grados de membresa
%mtodo de defuzificacin por promedio de reas
%area=base*(prem-prem^2/2)
%num=num+reglas(n,m)*area*prem;
%den=den+area*prem;
%mtodo de defuzificacion por promedio de centros
num=num+reglas(n,m)*prem;
den=den+prem;
end
end
ui=num/den;
C.2
111
for(j=0;j<=4;j++)
{mfe[j]=0.0;}
mfe[5]=1.0;
e_cont=e_cont+1;
e_int=ep;
}
else
{
for (i=1;i<=ep;i++)
{
if (qtil<=cep[i])
{
mfe[i]=max(0,1+(qtil-cep[i])*MI[i]); //calcula grado de membresa a la izquierda de la FM
if (mfe[i]!=0)
{
e_cont=e_cont+1;
e_int=i;
}
}
else
{
(
mfe[i]=max(0, cep[i]-qtil)*MD[i]); // calcula grado de membresa a la izquierda de la FM
if (mfe[i]!=0)
{
e_cont=e_cont+1;
e_int=i;
}
}
}
}
}
//----------------para la variable lingstica error de velocidad (ev)---------if (qptil<=cev[1]) //asegura mximo a la izquierda de la variable derivada del error
{
for(j=2;j<=5;j++)
{ mfc[j]=0.0; }
mfc[1]=1;
de_cont=de_cont+1;
de_int=1;
}
else
{
if (qptil>=cev[ev]) //asegura mximo a la derecha de la variable derivada del error
{
for(j=1;j<=4;j++)
{mfc[j]=0.0;}
mfc[5]=1;
de_cont=de_cont+1;
de_int=ev;
}
else
{
for (i=1;i<=ev;i++)
{
112
if (qptil<cev[i])
{
mfc[i]=max(0.0,1+(qptil-cev[i])*MIe[i]); //calcula grado de membresa a la izquierda de la FM
if (mfc[i]!=0)
{
de_cont=de_cont+1;
de_int=i;
}
}
else
{
mfc[i]=max(0.0,1+(cev[i]-qptil)*MDe[i]); //calcula grado de membresa a la derecha de la FM
if (mfc[i]!=0)
{
de_cont=de_cont+1;
de_int=i;
}
}
}
}
}
//------------------inferencia del mnimo y defuzificacin---------------------------------------------fun=e_int-e_cont+1;
fund=de_int-de_cont+1;
for(m=fun;m<=e_int;m++)
{
for (n=fund;n<=de_int;n++)
{
prem=min(mfe[m],mfc[n]); //valor mnimo de las entradas
//mtodo de defuzificacion por promedio de centros.
num=num+(reglas[n][m]*prem);
den=den+prem;
//mtodo de defuzificacion por promedio de reas
//area=base*(prem-prem^2/2)
//num=num+reglas(n,m)*area*prem;
//den=den+area*prem;
}
}
ui=num/den;
return ui;
113
En la tabla D.1 se presentan los parmetros calculados del robot manipulador. Los
actuadores utilizados son dos motores de cd con encoder de la marca Pittman . Para el
eslabn 1 el motor utilizado es el GM14904S014 (motor 1) y para el eslabn 2 es el
GM8724S015 (motor 2), de 12 v. La tabla D.2 muestra las especificaciones tcnicas del
motor 1, tomadas de la hoja de datos proporcionada por el fabricante. Las especificaciones
tcnicas del motor 2 se muestran en la tabla D.3.
114
Valor
l1 (longitud eslabn 1)
0.193 m
l2 (longitud eslabn 2)
0.145 m
m1 (masa eslabn 1)
0.763 kg
m2 (longitud eslabn 2)
0.343 kg
0.136 m
0.048 m
0.0186
0.0026987
Constante g (gravedad)
9.81
115
116
niveles de voltaje difieren entre las seales PIC-PC, se utiliz un CI MAX 232 que se
encarga de nivelarlos. La figura D.3 muestra a la etapa 1.
ENCODERS
serial
PC
CONVERSION SEAL DE
CONTROL
MICROCONTROLADOR
ETAPA DE POTENCIA
117
2
3
ROBOT DE 2GL
(ACTUADADORES )
Para manipular los datos recibidos (seal de control) por el microcontrolador de la PC, se utilizaron dos convertidores digitales
analgicos DAC0800, uno para cada motor, los puertos del PIC utilizados fueron el puerto A, D y parte del E. La seal obtenida a la
salida del DAC era de -1 a 1 V, esta seal era comparada con la seal obtenida del motor mediante una resistencia sensora colocada en
serie, para realizar esto se acondiciono la seal con amplificadores operacionales. El resultado de la comparacin, era procesada por
otros amplificadores que se encargaban de convertirla en una sea PWM . La figura C.4 representa el circuito elctrico descrito.
118
119