You are on page 1of 48

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.

R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater


29/11/05

Captulo

Simulacin y Control de Robots


La forma ms rpida de encontrar algo
es empezar a buscar otra cosa
(observacin de Oiens)

6.1.-Introduccin
En los ltimos aos han aparecido numerosos proyectos de investigacin relacionados
con disciplinas de simulacin virtual. Una correcta simulacin dinmica es necesaria
como primer paso para la obtencin de herramientas capaces de ser utilizadas para el
anlisis y diseo de robots.
Adems de necesitar una metodologa numricamente correcta, es de gr an importancia
el disponer de unas herramientas de visualizacin que permitan comprobar los
resultados obtenidos, de manera que la deteccin de errores sea lo ms intuitiva posible.
Siguiendo esta idea, en este captulo se va a presentar una serie de ejemp los en los que
se utilizan los modelos dinmicos presentados anteriormente con la finalidad de poder
realizar un correcto control del robot estudiado.
Histricamente se distingue entre control cinemtico y control dinmico de robots. El
control cinemtico ya fue estudiado en la planificacin de trayectorias del captulo 5.
Por control dinmico se entiende el control necesario para que el movimiento del robot
se ajuste realmente a las trayectorias calculadas. Para efectuar un correcto control
dinmico se necesita de un modelo dinmico del robot como el obtenido en el captulo 3
al que se le aade los modelos de los servoaccionamientos estudiados en el captulo 4
con sus correspondientes reguladores PID.
Como ya se vio en el captulo 3, el modelo dinmico de un robot es fuertemente no
lineal, multivariable, acoplado y de parmetros variables, lo cual implica una extremada
dificultad para abordar el problema sin simplificaciones. Sin embargo, en la mayora de
ocasiones, la utilizacin de un control desacoplado proporciona resultados aceptables.
En este captulo, en primer lugar se va tratar el problema de seleccionar de manera
correcta los servoaccionamientos de un robot. La seleccin consta de dos procesos: el
clculo de los pares mximos y la obtencin de los datos de los motores para las
articulaciones del robot. Una vez que se hayan seleccionado los motores que va a
utilizar el robot, el siguiente paso es realizar su sintonizado para que el comportamiento
de cada articulacin se ajuste a las especificacio nes establecidas. Para realizar el
sintonizado se presenta la estructura de control desacoplada y las tcnicas ms comunes
de sintonizacin de reguladores PID. Concluido el proceso de sintonizado de las
articulaciones, se explica como realizar la simulaci n completa del funcionamiento de
1

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

un robot. Concretamente, se detalla la simulacin de un robot efectuando una


planificacin del extremo del robot en lnea recta entre dos posiciones del espacio
cartesiano. Siguiendo con el espritu eminentemente prctico del libro, durante el
captulo se van aplicando todos los conceptos al robot de 4 GDL y al robot de 6 GDL
utilizando Simulink y Matlab.

6.2.-Seleccin de Servoaccionamientos
La seleccin adecuada de los servoaccionamientos que van a utilizarse en cada
articulacin de un robot es una tarea crtica para el correcto funcionamiento del robot.
La seleccin de los servoaccionamientos se realiza en base a la dinmica inversa del
robot y, por tanto, depende fuertemente de la aplicacin en la que se utilizar el robot.
El proceso de seleccin consta, fundamentalmente, de dos fases:
1- Clculo de los pares mximos requeridos.
2- Obtencin de los datos de los motores.
6.2.1. Clculo de los pares mximos requeridos
Para seleccionar los motores adecuados para un robot es necesario conocer los
requerimientos mximos a los cuales van a estar sometidos los motores. Para ello se
sita el robot en su peor configuracin y se le aplica un perfil de velocidad trapezoidal a
cada una de las articulaciones para obtener, utilizando la dinmica inversa del robot, el
par pico y el par nominal de cada motor. Un perfil de velocidad trapezoidal se
caracteriza por la grfica que se muestra en la figura 6.1. El perfil de velocidad se divide
en tres intervalos:
-

Intervalo de aceleracin (t acel): Durante este tiempo se introduce a la articulacin la


aceleracin mxima a la que va a estar sometida hasta alcanzar la velocidad mxima
a la que puede operar. El par pico se obtendr, utilizando la dinmica inversa,
cuando se introduzca a la articulaci n la velocidad mxima y la aceleracin mxima.

Intervalo constante (t const): Durante este tiempo se introduce a la articulacin la


velocidad mxima a la que va a estar sometida considerando aceleracin nula. El par
nominal corresponder al par producido en estas condiciones utilizando la dinmica
inversa.

Intervalo de deceleracin (t decel): Durante este intervalo se introduce a la articulacin


una deceleracin hasta alcanzar una velocidad nula.
vel
v max
t
tacel

tconst

tdecel

Figura 6.1. Perfil de velocidad trapezoidal.

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Los pares obtenidos mediante la dinmica inversa son divididos por el reductor
seleccionado para cada motor. La eleccin del reductor vendr determinada por la
velocidad mxima permitida para el accionamiento y por las revoluciones a las que
trabaje el motor. Por ltimo hay que sealar que, generalmente, la relacin entre el par
nominal y el par pico es del orden de 3~4 en los motores brushless.

Ejemplo 6.1. Clculo de los pares mximos requeridos para el robot de 4gdl.
Para calcular los pares mximos requeridos de cada articulacin se ha desarrollado una
herramienta en Simulink que, especificando la peor posicin en la que puede
encontrarse el robot y el perfil de velocidad que se le aplica a cada articulacin, se
obtiene una grfica del par o fuerza de la articulacin. En esta grfica aparece tanto el
par o fuerza pico como el par o fuerza nominal. El fichero en el que se encuentra
implementada la herramienta se denomina selmotor4.mdl. Si se ejecuta desde el entorno
de Matlab selmotor4 aparecer en pantalla la herramienta descrita anteriormente, que
se muestra en la figura 6.2.

Figura 6.2. Herramienta desarrollada en Simulink para calcular el par o fuerza pico y
nominal de cada articulacin.
Para generar el perfil de velocidad trapezoidal se ha creado el subsistema que se muestra
en la figura 6.3. Para tener acceso a dicho subsistema es necesario seleccionar el bloque
y elegir la opcin Look Under Mask del men Edit de Simulink.

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.3. Subsistema Perfil de Velocidad Trapezoidal.

El subsistema mostrado en la figura 6.3 hace uso de una funcin desarrollada en Matlab
trapezoidal.m. Esta funcin sirve para generar la velocidad y aceleracin de la
articulacin en cada instante de tiempo segn los parmetros elegidos del perfil de
velocidad, que recordemos que son la velocidad mxima, el tiempo de aceleracin, el
tiempo constante y el tiempo de deceleracin. El cdigo fuente de esta funcin se
muestra a continuacin:
% TRAPEZOIDAL Perfil de velocidad trapezoidal
%
PERFIL=TRAPEZOIDAL(U) devuelve un vector 1x2 que contiene la velocidad
%
y la aceleracin de un perfil de velocidad trapezoidal en un determinado
%
instante de tiempo. PERFIL(1) contiene la velocidad y PERFIL(2) la
%
aceleracin. U(1) representa el instante de tiempo actual(seg). U(2) es
%
la velocidad mxima. U(3) es el tiempo de aceleracin(seg). U(4) es el
%
tiempo de velocidad constante(seg). U(5) es el tiempo de
deceleracin(seg).
function perfil=trapezoidal(u)
t
velmax
tacel
tconst
tdecel

=
=
=
=
=

u(1);
u(2);
u(3);
u(4);
u(5);

% Instante de tiempo actual


% Velocidad mxima
% Tiempo de aceleracin
% Tiempo de velocidad constante
% Tiempo de deceleracin

% Se calcula la velocidad y la aceleracin


if t <= tacel
% Intervalo de aceleracin
acel = velmax/tacel;
vel = acel*t;
else
if t < (tacel+tconst)
% Intervalo de velocidad constante
vel = velmax;
acel = 0;
else
if t>(tacel+tconst+tdecel)
% Velocidad y aceleracin nula
vel = 0;
acel = 0;
else
% Intervalo de deceleracin
acel = -velmax/tdecel;
vel = velmax+acel*(t-tacel-tconst);
end

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05
end
end
% Se devuelve la velocidad y la aceleracin
perfil = [vel acel];

Para obtener el par o fuerza de cada articulacin se ha desarrollado en Matlab la funcin


dininv4gdl.m; que calcula el par o fuerza de cada articulacin cuando el robot
transporta una determinada carga en funcin de la posicin, velocidad y aceleracin de
cada articulacin. Esta funci n hace uso de la funcin newtoneuler4.m, explicada en el
captulo 3. El cdigo fuente de dininv4gdl.m se muestra a continuacin:
% DININV4GDL Dinmica inversa de un robot de 4GDL.
% PAR = DININV4GDL(ENTRADA) calcula el vector 4x1 de pares/fuerzas de
% entrada a las articulaciones utilizando el mtodo de Newton-Euler.
% ENTRADA(1:4) representa la posicin de cada articulacin.
% ENTRADA(5:8) es la velocidad de cada articulacin. ENTRADA(9:12)
% es la aceleracin de cada articulacin.
%
% See also NEWTONEULER4.
function par = dininv4gld(entrada)
q
= entrada(1:4);
qp = entrada(5:8);
qpp = entrada(9:12);

% Posicin de cada articulacin


% Velocidad de cada articulacin
% Aceleracin de cada articulacin

% Parmetros de la carga
masaext
= 10;
inerciaext = [0.0167 0 0;0 0.0167 0;0 0 0.0167];
% Se calcula el vector de pares/fuerzas utilizando Newton-Euler
par = newtoneuler4(q,qp,qpp,9.8,masaext,inerciaext);

Una vez presentada la herramienta, as como los ficheros que se van a utilizar para
calcular los pares y fuerzas pico y nominal de cada articulacin, se va a proceder a
obtener estos pares y fuerzas en el caso del robot de 4 GDL.
En primer lugar hay que destacar que la peor posicin en la que se puede encontrar el
robot se produce cuando las dos articulaciones prismticas han alcanzado su valor
mximo. Se considerar que el valor mximo de la segunda articulacin (q2 ) es de 1m,
mientras que el de la tercera (q3 ) es de 1.2m. El valor de la primera y cuarta articulacin
no influye en el clculo de los pares/fuerzas mximas. Por lo tanto, por comodidad, la
peor posicin del robot vendr dada por:

q = (0 1 1.2 0 )
Para ver la configuracin del robot en la peor posicin podemos utilizar la funcin
drawrobot3d4 que vimos en el captulo 2:
drawrobot3d4([0 1 1.2 0]')

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

La ejecucin de la funcin anterior muestra, efectivamente, que el vector de


coordenadas articulares anterior corresponde a la peor disposicin del robot, como se
puede apreciar en la figura 6.4.

Figura 6.4. Peor disposicin del robot. Se obtiene al ejecutar drawrobot3d4([0 1 1.2
0]').
Como ya se ha comentado anteriormente, los parmetros que caracterizan a un perfil de
velocidad trapezoidal son:
- Velocidad mxima
- Tiempo de aceleracin
- Tiempo constante
- Tiempo de deceleracin
Para el caso del robot de 4 GDL se va a suponer que la velocidad mxima para las
articulaciones rotacionales es de /3 rad/s, mientras que en el caso de las prismticas es
de 1 m/s. Se va a considerar que el tiempo de aceleracin es 0.1 segundos, lo que quiere
decir que se dispone de 0.1 segundos para alcanzar la velocidad mxima. Como tiempo
constante se va a tomar 0.4 segundos y como tiempo de deceleracin 0.1 segundos. Es
importante destacar que en funcin de la articulacin se considerar la velocidad
mxima positiva o negativa. En el caso de las articulaciones 1 y 4 es independiente
considerar la velocidad mxima positiva o negativa, ya que a efectos de requerimientos
de par, no hay diferencia en girar la articulacin en un sentido o en otro. Para la
obtencin de lo s pares pico y nominal se ha considerado la velocidad mxima positiva.
En las articulaciones 2 y 3 los mayores requerimientos de par se producirn cuando la
articulacin se desplace en el sentido positivo del eje z. Por lo tanto, para ambas
articulaciones se ha considerado la velocidad mxima positiva. Ver figura 6.5.

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

z2

d3

x2

d2

y2

l4

a2
1
z3
x3
l1

x1

y1
y3
z0
0
y0

z4

x4
y4

x0

Figura 6.5. Robot de 4 GDL.

Para las articulaciones rotacionales se van a utilizar reductores de 500, ya que


suponemos que se van a utilizar motores que trabajan a 5000 rpm. Esto se debe que la
velocidad mxima permitida es de /3 rad/s, o sea 10 rpm, por lo que si se utilizan
motores que funcionan a 5000 rpm, se obtiene un factor de reduccin de 5000/10=500.
Este factor puede ser comercialmente obtenido colocando en serie un reductor de 200
por piones y un reductor de factor 1:2.5 obtenido por transmisin de correa.
Para las articulaciones prismticas se usarn, como reductores, husillos de bolas de paso
25 mm. Para calcular el factor de reduccin en primer lugar es necesario obtener las rpm
que corresponden a la velocidad mxima de las articulaciones prismticas. Para ello se
utiliza la siguiente ecuacin:
=

v
x 60
p

donde v es la mxima velocidad (mm/s) y p es el paso del husillo (mm). Puesto que la
mxima velocidad de las articulaciones prismticas es de 1000 mm/s y el paso del
husillo es 25 mm, se obtiene que la velocidad mxima es de 2400 rpm. Por tanto si se
utilizan motores que funcionan a 5000 rpm, se obtiene un factor de reduccin de
5000/2400 2.
Para obtener los pares y fuerzas de los motores teniendo en cuenta los reductores que se
van a emplear, nicamente, como se muestra en la figura 6.2, es necesario dividir el
par/fuerza proporcionado por la dinmica inversa por el valor del reductor.

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Para obtener los pares mximos requeridos hay que considerar que el robot tiene en su
extremo la mxima carga permitida. Para nuestro robot hemos considerado que la carga
mxima es de 10 Kg y que su matriz de inercia es:

0
0
0.0167

Inercia = 0
0.0167
0
0
0
0.0167
Estas caractersticas de la carga externa se especifican en el fichero dininv4gdl.m.
Una vez especificadas las caractersticas relativas al robot, el siguiente paso es realizar
la simulacin del modelo desarrollado en Simulink. Pero antes es necesario configurar
los parmetros de la simulacin. Para ello ejecutamos la opcin Parameters del men
Simulation. Los valores seleccionados de los parmetros son los que se muestran en la
figura 6.6.

Figura 6.6. Configuracin de los parmetros de la simulacin.

Para realizar la simulacin del modelo desarrollado en Simulink para obtener los pares y
fuerzas pico y nominal de cada articulacin nicamente debemos ejecutar la opcin
Start del men Simulation. Cuando finalice la simulacin podemos pulsar dos veces con
el ratn en cualquier grfica que muestre el par o fuerza de la articulacin para obtener
su par o fuerza pico y nominal. Por ejemplo, si pulsamos dos veces sobre el bloque
correspondiente al par de la articulacin 1, obtenemos la grfica del par de la
articulacin que se muestra en la figura 6.7. El par pico corresponde al par mximo en
valor absoluto que aparece en la grfica, que en este caso es 0.612 Nm. El par nominal
es el valor absoluto del par en el intervalo constante del perfil trapezoidal, cuyo valor es,
en este caso, 0.088 Nm.

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.7. Grfica correspondiente al par de la articulacin 1.

En el caso de la cuarta articulacin el par pico es 4.8510-4 Nm y el par nominal es


1.0510-4 Nm.
En la segunda articulacin la fuerza pico es 228 N y la nominal es 113 N. En la tercera,
la fuerza pico es de |93| = 93 N y la nominal |12| = 12 N. Para obtener el par
equivalente a una fuerza se utiliza la siguiente frmula:
=

Fp
2 n

donde F es la fuerza (N), p es el paso del husillo (m) y n es la eficiencia del husillo.
Suponiendo que la eficiencia del husillo es de 0.85, puesto que el paso del husillo es
0.025 m, los pares pico y nominal de las articulaciones 2 y 3 son:
- Articulacin 2: Par pico: 1.0716 Nm; Par nominal: 0.5311 Nm.
- Articulacin 3: Par pico: |-0.4371| Nm; Par nominal: |0.0564| Nm.
En la tabla 6.1 se muestran los pares pico y nominal de cada una de las articulaciones
del robot de 4 gdl.
Articulacin
1
2
3
4
0.612
1.0716 0.4371 4.8510-4
pico (Nm)
0.088
0.5311 0.0564 1.0510-4
nominal (Nm)
Tabla 6.1. Par pico y nominal de cada articulacin.

Ejemplo 6.2. Clculo de los pares mximos requeridos para el robot de 6gdl.
Al igual que en el caso del robot de 4 gdl, para calcular los pares mximos requeridos de
cada articulacin se ha desarrollado una herramienta en Simulink que, especificando la
peor posicin en la que puede encontrarse el robot y el perfil de velocidad que se le
aplica a cada articulacin, se obtiene una grfica del par de la articulacin en la que
9

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

aparece tanto el par pico como el par nominal. El fichero en el que se encuentra
implementada la herramienta se denomina selmotor6.mdl. Si se ejecuta desde el entorno
de Matlab selmotor6 aparecer en pantalla la herramienta descrita anteriormente, que
se muestra en la figura 6.8.

SELECCIN DE MOTORES EN BASE


A LA DINMICA INVERSA DEL ROBOT

[0 0 pi/2 0 0 0]
1/500
Peor Posicin Robot
Reductor 1

Par Articulacin 1

Velocidad

1/500

Aceleracin

Perfil Trapezoidal de
Velocidad Articulacin 1

Reductor 2

Velocidad

Par Articulacin 2

1/500

Aceleracin

Perfil Trapezoidal de
Velocidad Articulacin 2

Reductor 3
Mux

Velocidad

Velocidad

Velocidad

1/500
Demux

Perfil Trapezoidal de
Velocidad Articulacin 3

Perfil Trapezoidal de
Velocidad Articulacin 4

Demux

Dinmica Inversa

Aceleracin

Aceleracin

MATLAB
Function

Reductor 4

Par Articulacin 4

1/500
Mux
Reductor 5

Par Articulacin 5

1/500

Aceleracin

Perfil Trapezoidal de
Velocidad Articulacin 5

Par Articulacin 3

Reductor 6

Par Articulacin 6

Velocidad
Aceleracin

Perfil Trapezoidal de
Velocidad Articulacin 6

Figura 6.8. Herramienta desarrollada en Simulink para calcular el par pico y nominal
de cada articulacin.
Para obtener el par de cada articulacin se ha desarrollado en Matlab la funcin
dininv6gdl.m; que calcula el par de cada articulacin cuando el robot transporta una
determinada carga en funcin la posicin, velocidad y aceleracin de cada articulacin.
Esta funcin hace uso de la funcin newtoneuler6.m, explicada en el captulo 3. El
cdigo fuente de dininv6gdl.m se muestra a continuacin:

10

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

% DININV6GDL Dinmica inversa de un robot de 6GDL.


% PAR = DININV6GDL(ENTRADA) calcula el vector 6x1 de pares de
% entrada a las articulaciones utilizando el mtodo de Newton-Euler.
% ENTRADA(1:6) representa la posicin de cada articulacin.
% ENTRADA(7:12) es la velocidad de cada articulacin. ENTRADA(13:18)
% es la aceleracin de cada articulacin.
%
% See also NEWTONEULER6.
function par = dininv6gld(entrada)
q
= entrada(1:6);
qp = entrada(7:12);
qpp = entrada(13:18);

% Posicin de cada articulacin


% Velocidad de cada articulacin
% Aceleracin de cada articulacin

% Parmetros de la carga
masaext
= 10;
inerciaext = [0.0167 0 0;0 0.0167 0;0 0 0.0167];
% Se calcula el par utilizando Newton-Euler
par = newtoneuler6(q,qp,qpp,9.8,masaext,inerciaext);

Una vez presentada la herramienta, as como los ficheros, que se van a utilizar para
calcular los pares pico y nominal de cada articulacin, se va a proceder a obtener estos
pares en el caso del robot de 6GDL.
En primer lugar hay que destacar que la peor posicin en la que se puede encontrar el
robot viene dada por:

q = 0 0
2

0 0 0

Para comprobar que es la peor posicin podemos utilizar la funcin drawrobot3d6 que
vimos en el captulo 2:
drawrobot3d6([0 0 pi/2 0 0 0]')
La ejecucin de la funcin anterior muestra, efectivamente, que el vector de
coordenadas articulares anterior corresponde a la peor disposicin del robot, como se
puede apreciar en la figura 6.9.

11

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.9. Peor disposicin del robot. Se obtiene al ejecutar drawrobot3d6([0 0 pi/2 0
0 0]').
Como ya se ha comentado anteriormente, los parmetros que caracterizan a un perfil de
velocidad trapezoidal son:
- Velocidad mxima
- Tiempo de aceleracin
- Tiempo constante
- Tiempo de deceleracin
Para el caso del robot de 6 GDL vamos a suponer que la velocidad mxima permitida
para un accionamiento es /3 rad/s. Se va a considerar que el tiempo de aceleracin es
0.1 segundos, lo que quiere decir que se dispone de 0.1 segundos para alcanzar la
velocidad mxima. Como tiempo constante se va a tomar 0.4 segundos y como tiempo
de deceleracin 0.1 segundos. Es importante destacar que en funcin de la articulacin
se considerar la velocidad mxima positiva o negativa. En el caso de las articulaciones
1, 4 y 6 es independiente considerar la velocidad mxima positiva o negativa, ya que a
efectos de requerimientos de par, no hay diferencia en girar la articulacin a la izquierda
o a la derecha. Para la obtencin de los pares pico y nominal se ha tomado la velocidad
mxima positiva. Por el contrario, se ha considerado la velocidad mxima negativa para
las articulaciones 2, 3 y 5, ya que, lgicamente, los requerimientos de par son mayores
cuando estas articulaciones giran en el sentido contrario al determinado por el eje z. Ver
figura 6.10.
Se va a considerar que los reductores a emplear para las articulaciones son de 500, ya
que suponemos que se van a utilizar motores que trabajan a 5000 rpm. Esto se debe que
la velocidad mxima permitida es de /3 rad/s, o sea 10 rpm, por lo que si se utilizan
motores que funcionan a 5000 rpm, se obtiene un factor de reduccin de 5000/10=500.
Este factor puede ser comercialmente obtenido colocando en serie un reductor de 200
por piones y un reductor de factor 1:2.5 obtenido por transmisin de correa. Para
obtener los pares de los motores teniendo en cuenta los reductores que se van a emplear,
nicamente, como se muestra en la figura 6.8, es necesario dividir el par proporcionado
por la dinmica inversa por el valor del reductor.

12

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

y3
4 y 4

z3
x2

l4

3
3

z4

x3

z2
y2

x4

y5
z5

l6

6
s

x5
2

6
a

a2

z1
2
1
l1

x0

y1
z0

x1
1

y0

Figura 6.10. Robot de 6 GDL.


Para obtener los pares mximos requeridos hay que considerar que el robot tiene en su
extremo la mxima carga permitida. Para nuestro robot hemos considerado que la carga
mxima es de 10 Kg y que su matriz de inercia es:

0
0
0.0167

Inercia = 0
0.0167
0
0
0
0.0167
Estas caractersticas de la carga externa se especifican en el fichero dininv6gdl.m.
Una vez especificadas las caractersticas relativas al robot, el siguiente paso es realizar
la simulacin del modelo desarrollado en Simulink. Pero antes es necesario configurar
los parmetros de la simulacin. Para ello ejecutamos la opcin Parameters del men
Simulation. Los valores seleccionados de los parmetros son los que se muestran en la
figura 6.11.

13

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.11. Configuracin de los parmetros de la simulacin.


Para realizar la simulacin del modelo desarrollado en Simulink para obtener los pares
pico y nominal de cada articulacin nicamente debemos ejecutar la opcin Start del
men Simulation. Cuando finalice la simulacin podemos pulsar dos veces con el ratn
en cualquier grfica que muestre el par de la articulacin para obtener su par pico y
nominal. Por ejemplo,si pulsamos dos veces sobre el bloque correspondiente al par de la
articulacin 1, obtenemos la grfica del par de la articulacin que se muestra en la figura
6.12. El par pico corresponde al par mximo en valor absoluto que aparece en la grfica,
que en este caso es |- 0.338|=0.338. El par nominal es el valor absoluto del par en el
intervalo constante del perfil trapezoidal, cuyo valor es, en este caso, |-3.810-3 |=3.810-3 .

Figura 6.12. Grfica correspondiente al par de la articulacin 1.


Los valores de par pico y nominal para cada articulacin obtenidos segn el
procedimiento descrito anteriormente se muestran en la tabla 6.2.

14

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Articulacin
pico (Nm)
nominal (Nm)

1
2
3
4
5
6
|-0.338| |-0.885| |-0.435| 1.1210-3 |-0.0494| 9.8510-4
|-3.810-3 | |-0.362| |-0.162| 2.510-4 |-0.0174| 2.2410-4
Tabla 6.2. Par pico y nominal de cada articulacin.

6.2.2. Obtencin de los datos de los motores


El par pico y nominal obtenido para cada actuador es necesario multiplicarlo por un
factor de seguridad de 1.5 antes de proceder a buscar los datos de los motores en
catlogos comerciales. A partir de los pares obtenidos al aplicar el factor de seguridad
se procede a buscar en catlogos comerciales los datos de los motores que satisfagan los
requerimientos de par. Los datos que se deben extraer de los motores son los
correspondientes a los parmetros requeridos por el modelo dinmico del motor, ver
tabla 6.3.
Parmetro
Smbolo Unidades
Resistencia
R
Ohms ()
Inductancia
L
mH
Constante de par
KT
Nm/A
Constante de voltaje
KV
V/rad/s
Corriente mxima
Imx
A
Tabla 6.3. Parmetros requeridos por el modelo dinmico del motor.
Ejemplo 6.3. Obtencin de los datos de los motores del robot de 4gdl.
En la tabla 6.4 se muestra el par pico y nominal de cada articulacin despus de
multiplicar los datos mostrados en la tabla 6.1 por el factor de seguridad de 1.5.
Articulacin
1
2
3
4
0.918
1.6074 0.6556 7.27510-4
pico (Nm)
0.132
0.7967 0.0846 1.57510-4
nominal (Nm)
Tabla 6.4. Par pico y nominal de cada articulacin considerando un factor de seguridad
de 1.5.
Se ha considerado que los actuadores del robot corresponden a motores brushless DC.
Para obtener los datos de los parmetros de los motores que satisfacen los
requerimientos de par especificados en la tabla 6.4 se ha consultado el catlogo de
motores brushless DC de Eastern Air Devices, Inc. Los valores seleccionados de los
parmetros del modelo dinmico del motor se muestran en la tabla 6.5.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23GBB
0.8
0.93
0.058
0.058
18.5
2
DA34HBB
1.6
1.56
0.176
0.176
23.7
3
DA23GBB
0.8
0.93
0.058
0.058
18.5
4
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.5. Datos de los motores seleccionados para cada articulacin.

15

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Ejemplo 6.4. Obtencin de los datos de los motores del robot de 6gdl.
En la tabla 6.6 se muestra el par pico y nominal de cada articulacin despus de
multiplicar los datos mostrados en la tabla 6.2 por el factor de seguridad de 1.5.
Articulacin
1
2
3
4
5
6
|-0.507|
|-1.3275|
|-0.6525|
0.0017
|-0.0741|
0.0015
pico (Nm)
|-0.0261| 0.0003
nominal (Nm) |-0.0057| |-0.543| |-0.243| 0.0004
Tabla 6.6. Par pico y nominal de cada articulacin considerando un factor de seguridad
de 1.5.
Al igual que en el ejemplo anterior, se ha considerado que los actuadores del robot
corresponden a motores brushless DC. Para obtener los datos de los parmetros de los
motores que satisfacen los requerimientos de par especificados en la tabla 6.6 se ha
consultado el catlogo de motores brushless DC de Eastern Air Devices, Inc. Los
valores seleccionados de los parmetros del modelo dinmico del motor se muestran en
la tabla 6.7.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23DBB
1.4
1.64
0.052
0.052
10
2
DA34FBB
0.7
1.01
0.112
0.112
21.8
3
DA23GBB
0.8
0.93
0.058
0.058
18.5
4
DB17CDB
6.9
1.28
0.035
0.035
3.6
5
DB17CDB
6.9
1.28
0.035
0.035
3.6
6
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.7. Datos de los motores seleccionados para cada articulacin.

6.3.-Sintonizado de los motores.


Una vez que se han seleccionado los servoaccionamientos para cada una de las
articulaciones del robot, el paso siguiente es realizar un sintonizado adecuado de los
mismos con el fin de que satisfagan un determinado comportamiento. Para realizar la
sintonizacin en primer lugar se debe especificar cul es la estructura de control a
utilizar, detallando los controladores a utilizar. A continuacin, mediante una
determinada tcnica de control, se realizar el sintonizado de los motores ajustando los
valores de los controladores especificados. Para efectuar el sintonizado de los motores
haremos uso del modelo dinmico directo del robot.

6.3.1. Estructuras de control de robots.


Hay dos estructuras de control tpicas utilizadas en los robots: control acoplado y
control desacoplado.

16

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Control desacoplado
En el control desacoplado se considera que las articulaciones del robot estn
desacopladas, de modo que un par en un determinado actuador nicamente tendr
efecto sobre el movimiento de la articulacin correspondiente. De esta forma
existir un controlador para cada articulacin. La ventaja del control desacoplado
radica en que el diseo del regulador ms adecuado para cada articulacin puede
hacerse utilizando las tcnicas ms frecuentes de diseo.

Control acoplado
En ocasiones, la suposicin de que el robot es una serie de eslabones dinmicamente
desacoplados, de forma que el movimiento de uno de ellos no afecta a los dems, no
es siempre aceptable. Las tcnicas de control acoplado consideran el modelo
dinmico real del robot, haciendo uso del conocimiento del mismo para tratar de
desacoplar el sistema.

Adoptaremos una estructura de control desacoplado, de manera que en cada articulacin


existe un regulador PID. Durante el sintonizado de una articulacin, los actuadores del
resto de articulaciones permanecen parados. En la figura 6.13 se muestra la estructura
de control desacoplado tpica de un robot de tres grados de libertad.

Figura 6.13. Estructura de control desacoplado de un robot de 3 grados de libertad. En


este caso, la entrada a cada articulacin es un escaln.
6.3.2. Tcnicas de sintonizado.
El sintonizado de un robot consiste en ajustar cada uno de los controladores para que el
robot satisfaga un comportamiento especificado. Para ello, en un esquema de control
desacoplado, se deber sintonizar de manera independiente cada articulacin del robot.
El sintonizado de una articulacin consiste en ajustar los parmetros del regulador que
acta sobre ella para que su respuesta cumpla unas determinadas especificaciones.

17

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

El controlador que utilizaremos en cada una de las articulaciones ser un regulador PID.
La funcin de transferencia de un regulador PID es la siguiente:

GPID ( s ) = k p (1 +

k
1
I
+ Td s ) = k p (1 + i + k d s ) = P + + Ds
Ti s
s
s

(6.1)

Para realizar el ajuste de los parmetros de un regulador PID existen mltiples mtodos.
A continuacin se van a estudiar dos mtodos muy utilizados: el manual y el de ZieglerNichols.

Mtodo manual (prueba y error)

Este mtodo propone una manera de ir modificando los parmetros del regulador para
conseguir que la respuesta de la articulacin cumple las especificaciones impuestas.
1- En primer lugar se aumenta la constante proporcional P hasta obtener el tiempo de
cruce deseado (el menor posible sin tener una sobreoscilacin exagerada).
2- A continuacin se procede a aumentar la constante derivativa D para disminuir la
sobreoscilacin ( esto incrementar el tiempo de cruce).
3- Por ltimo se aumenta la constante integral I para eliminar el error que exista en
rgimen permanente (esto incrementar la sobreoscilacin y disminuir el tiempo de
respuesta).

Mtodo de Ziegler-Nichols

Es un mtodo experimental en el que es necesario que la respuesta de la articulacin en


bucle cerrado ante escaln sea peridica. Para ello solamente se introduce una ganancia
proporcional que se va aumentando hasta conseguir la respuesta peridica. Si no se
consigue que la respuesta sea peridica, no se puede aplicar este mtodo.
Sea k cr la ganancia proporcional crtica a la cual la respuesta del sistema se vuelve
peridica y Pcr el perodo de la respuesta. En base a estos valores, el mtodo de ZieglerNichols proporciona los valores del regulador que aseguran una respuesta aceptable.
Los valores que proporciona este mtodo se muestran en la tabla 6.5.
kp =0.6 kcr
Ti = 0.5 Pcr
Td = 0.125 Pcr
Tabla 6.8. Valores de los parmetros de un regulador PID proporcionados por el mtodo
de Ziegler-Nichols.
Hay que destacar que es posible que la respuesta obtenida aplicando los valores
obtenidos por este mtodo no satisfaga las especificaciones impuestas, por lo que ser
necesario modificar estos valores mediante prueba y error. La utilidad de este mtodo es
que nos proporciona un punto de partida para realizar el ajuste de los parmetros.

18

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Ejemplo 6.5. Sintonizado del robot de cuatro grados de libertad.


Vamos a suponer que el esquema de control de este robot es desacoplado, por lo que
cada articulacin dispondr de un regulador PID y durante el proceso de sintonizado de
una articulacin concreta, los actuadores del resto de articulaciones permanecern
apagados.
Para efectuar el sintonizado del robot hay que situarlo en la peor posicin, introducir a
la articulacin que se desea ajustar un escaln y comprobar que la respuesta de la
articulacin cumple las especificaciones deseadas. Como vimos en el ejemplo 6.1, la
peor posicin en la que se puede encontrar el robot viene dada por:

q = (0 1 1.2 0 )
Para un funcionamiento satisfactorio del robot exigiremos que la respuesta de cada
articulacin cumpla las siguientes especificaciones:
-

Tiempo de cruce: < 100 mseg


Sobreoscilacin: < 20 %
Tiempo de establecimiento: < 200 mseg

La entrada a las articulaciones rotacionales (articulacin 1 y 4) para realizar el


sintonizado ser un escaln de 0.08 rad. En las articulaciones prismticas se introducir
un escaln de 100mm (0.1m) para sintonizar los reguladores. El escaln ser positivo o
negativo en funcin de la articulacin que se desee sintonizar. El escaln siempre debe
elegirse de modo que precise los mximos requerimientos de par. En el caso de las
articulaciones 1 y 4 es independiente considerar el escaln positivo o negativo, ya que a
efectos de requerimientos de par, no hay diferencia en girar la articulacin en un sentido
o en otro. En el caso de las articulaciones 2 y 3 el mximo requerimiento de par se
producira cuando la articulacin se desplace en el sentido positivo del eje z. Sin
embargo, puesto que la peor posicin del robot se produce cuando la articulacin 2 y 3
poseen su extensin mxima, no es posible introducir el escaln en el sentido positivo
del eje z. Por esta razn, en las articulaciones 2 y 3 se ha introducido un escaln
negativo. Ver figura 6.5.
Se ha desarrollado en Simulink un esquema de control en bucle cerrado, para cada una
de las articulaciones, que permite ajustar un regulador PID y comprobar si la respuesta
del sistema ante una entrada escaln satisface las especificaciones impuestas.
Motor 1
Para realizar el sintonizado del motor 1 se ha desarrollado en Simulink el modelo que se
encuentra en el fichero sintonizar1d4.mdl. Este fichero contiene el esquema de control
en bucle cerrado de la primera articulacin que permite ajustar su regulador PID para
que la respuesta satisfaga las especificaciones. Si se ejecuta desde el entorno de Matlab
sintonizar1d4 aparecer en pantalla la aplicacin para el sintonizado de la primera
articulacin, que se muestra en la figura 6.14.

19

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.14. Herramienta desarrollada en Simulink para realizar el sintonizado de la


primera articulacin.
Para obtener la aceleracin de cada articulacin se ha desarrollado en Matlab la funcin
dindir4gdl.m; que calcula la aceleracin de cada articulacin cuando el robot transporta
una determinada carga en funcin de la posicin y velocidad actual de la articulacin y
de su fuerza/par de entrada. Esta funcin hace uso de la funcin walkerorin4.m,
explicada en el captulo 3. El cdigo fuente de dindir4gdl.m se muestra a continuacin:
% DINDIR4GDL Dinmica directa de un robot de 4GDL.
% QPP = DINDIR4GDL(ENTRADA) calcula el vector 4x1 de aceleracin de
% cada articulacin utilizando el tercer mtodo de Walker y Orin.
% ENTRADA(1:4) representa el par de entrada a cada articulacin.
% ENTRADA(5:8) es la posicin de cada articulacin. ENTRADA(9:12)
% es la velocidad de cada articulacin.
%
% Ver tambin WALKERORIN4.
function qpp = dindir4gdl(entrada)
tau = entrada(1:4);
q
= entrada(5:8);
qp = entrada(9:12);

% Par de entrada a cada articulacin


% Posicin de cada articulacin
% Velocidad de cada articulacin

% Parmetros de la carga
masaext
= 10;
inerciaext = [0.0167 0 0;0 0.0167 0;0 0 0.0167];
% Se convierten los pares de la articulacin 2 y 3 en fuerzas.
n = 0.85;
% Eficiencia husillo
p = 0.025;
% Paso del husillo (mm)
tau(2:3) = 2*pi*tau(2:3)/p;
% Se calcula la aceleracin utilizando el mtodo de Walker y Orin.
qpp = walkerorin4(q,qp,tau,masaext,inerciaext);

En la funcin dindir4gdl.m el par proporcionado por los motores 2 y 3 se convierte a


fuerza, ya que las articulaciones 2 y 3 son prismticas, utilizando la siguiente ecuacin:
20

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

F=

2 n
p

donde es el par (Nm), p es el paso del husillo (m) y n es la eficiencia del husillo.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la primera articulacin. El escaln es de 0.08
rad y, puesto que para esta articulacin es independiente que sea positivo o negativo,
se ha considerado positivo. El valor de la posicin de esta primera articulacin en la
peor configuracin del robot es 0 rad, por lo tanto el escaln ser de 0 rad a 0.08 rad.
- Los pares del resto de motores. Puesto que los actuadores de las articulaciones que
no estn siendo sintonizadas son apagadas, los pares del resto de motores son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. La velocidad de las restantes
articulaciones siempre ser cero, puesto que sus actuadores estn apagados.
El bloque PID representa a un regulador convencional PID con la siguiente funcin de
transferencia:
I
G PID ( s) = P + + Ds
s
Asignando los valores adecuados a P, I y D se conseguir que la respuesta del sistema
sea la deseada.
En el bloque correspondiente al motor de la articulacin 1 se deben colocar los datos de
los parmetros del motor que se seleccion en el ejemplo 6.3 para esa articulacin.
Estos datos se muestran en la tabla 6.9.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23GBB
0.8
0.93
0.058
0.058
18.5
Tabla 6.9. Valores de los parmetros del motor utilizado para la primera articulacin.
Los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades, simplemente
indican el orden del vector de pares, posiciones y velocidades del robot. En este caso los
vectores poseen el orden adecuado, ya que se est sintonizando la primera articulacin,
de manera que el orden que indicaremos en los tres selectores ser [1 2 3 4]. Sin
embargo, veremos que esto no es as para el sintonizado del resto de articulaciones.
Puesto que estamos ajustando la primera articulacin, la nica aceleracin que nos
interesa es la primera, por lo que a continuacin del bloque Robot 4 GDL, que
corresponde a la dinmica directa del robot, utilizamos un selector para elegir la
aceleracin de la primera articulacin. A continuacin, se emplea un bloque integrador
para obtener la velocidad de la articulacin. En este bloque especificamos que la
condicin inicial es cero, ya que la velocidad inicial de esta articulacin es de 0 rad/s.
Para calcular la posicin de la articulacin se integra la velocidad utilizando otro
bloque integrador. En este integrador la condicin inicial ser cero, puesto que la
posicin inicial de la articulacin es 0 rad.

21

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Antes de realizar la simulacin del modelo para determinar si la respuesta del sistema es
la adecuada, es necesario configurar los parmetros de la simulacin con los valores que
se muestran en la figura 6.15.

Figura 6.15. Configuracin de los parmetros de la simulacin.


Cuando finalice la simulacin pulsando dos veces con el ratn sobre el bloque Grfica
Respuesta aparece la posicin de la articulacin y el escaln introducido.
En el caso de esta articulacin, no ha sido posible realizar el sintonizado que cumpla las
especificaciones establecidas. Esto se debe a que el motor elegido responde ms lento
de lo esperado. Para solucionar este problema se va a seleccionar un motor que
proporciona un par mayor. Las caractersticas de este motor se muestran en la tabla
6.10.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23JBB
0.39 0.65
0.054
0.054
25.3
Tabla 6.10. Valores de los parmetros del motor utilizado para la primera articulacin.
Con el motor seleccionado ya es posible realizar el sintonizado de forma que se
satisfagan las especificaciones. Un posible regulador que proporciona que la respuesta
de la primera articulacin se ajuste a las especificaciones establecidas es el siguiente:

GPID ( s ) = 90 + 1.6 s
En la figura 6.16 se muestra como vara la posicin de la articulacin 1 ante el escaln
introducido. Como se puede apreciar en la grfica, con el regulador escogido se
satisfacen los requerimientos impuestos.

22

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.16. Posicin de la articulacin 1 ante entrada en escaln.


Motor 2
Para realizar el sintonizado del motor 2 se utiliza el modelo implementado en Simulink
que se encuentra en el fichero sintonizar2d4.mdl. Este modelo contiene el esquema de
control en bucle cerrado de la segunda articulacin que permite ajustar su regulador PID
para que la respuesta satisfaga las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la segunda articulacin. Este escaln es de
100 mm. El valor de la posicin de esta articulacin en la peor configuracin del
robot es 1 m. El mayor requerimiento de par se produce cuando el escaln es
positivo. Sin embargo como la articulacin posee su extensin mxima, el escaln
no es realizable fsicamente, por lo que se introducir un escaln negativo. Por lo
tanto el escaln ser de 1 m a 0.9 m.
- Los pares del resto de motores. Al igual que en el caso anterior, los pares del resto
de motores son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. Como en el caso anterior, la velocidad
de las restantes articulaciones es cero.
En el bloque correspondiente al motor de la articulacin 2 se deben colocar los datos de
los parmetros del motor que se seleccion en el ejemplo 6.3 para esa articulacin.
Estos datos se muestran en la tabla 6.11.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
2
DA34HBB
1.6
1.56
0.176
0.176
23.7
Tabla 6.11. Valores de los parmetros del motor utilizado para la segunda articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 1 3 4].
Puesto que se est ajustando la segunda articulacin, a continuacin del bloque Robot 4
GDL, se indicar en el selector que se elige la aceleracin de la segunda articulaci n. En

23

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que


la velocidad inicial de esta articulacin es de 0 m/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es 1, puesto que la posicin inicial de la articulacin es
1 m.
Un posible regulador que proporciona que la respuesta de la segunda articulacin se
ajuste a las especificaciones establecidas es el siguiente:

GPID ( s ) = 300 + 6 s
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 2 ante el escaln introducido. Como se puede apreciar en la
grfica, al igual que en el caso anterior, con el regulador escogido se satisfacen los
requerimientos impuestos. Ver figura 6.17.

Figura 6.17. Posicin de la articulacin 2 ante entrada en escaln.

Motor 3
Para realizar el sintonizado del motor 3 se utiliza el modelo implementado en Simulink
que se encuentra en el fichero sintonizar3d4.mdl. Este modelo contiene el esquema de
control en bucle cerrado de la tercera articulacin que permite ajustar su regulador PID
para que la respuesta satisfaga las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la tercera articulacin. Este escaln es de 100
mm. El valor de la posicin de esta articulacin en la peor configuracin del robot es
1.2 m. Al igual que en el caso anterior, el mayor requerimiento de par se produce
cuando el escaln es positivo. Sin embargo como la articulacin posee su extensin
mxima, el escaln no es realizable fsicamente, por lo que se introducir un escaln
negativo. Por lo tanto el escaln ser de 1.2 m a 1.1 m.
- Los pares del resto de motores. Al igual que en los casos anteriores, los pares del
resto de motores son nulos.
- La posicin del resto de articulaciones en su peor configuracin.

24

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

La velocidad de las restantes articulaciones. Como en los casos anteriores, la


velocidad de las restantes articulaciones es cero.

En el bloque correspondiente al motor de la articulacin 3 se deben colocar los datos de


los parmetros del motor que se seleccion en el ejemplo 6.3 para esa articulacin.
Estos datos se muestran en la tabla 6.12.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
3
DA23GBB
0.8
0.93
0.058
0.058
18.5
Tabla 6.12. Valores de los parmetros del motor utilizado para la segunda articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 3 1 4].
Puesto que se est ajustando la tercera articulacin, a continuacin del bloque Robot 4
GDL, se indicar en el selector que se elige la aceleracin de la tercera articulacin. En
el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que
la velocidad inicial de esta articulacin es de 0 m/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es 1.2, puesto que la posicin inicial de la articulacin
es 1.2 m.
Un posible regulador que proporciona que la respuesta de la segunda articulacin se
ajuste a las especificaciones establecidas es el siguiente:

GPID ( s ) = 200 + 5.7s


Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 3 ante el escaln introducido. Como se puede apreciar en la
grfica, al igual que en el caso anterior, con el regulador escogido se satisfacen los
requerimientos impuestos. Ver figura 6.18.

Figura 6.18. Posicin de la articulacin 3 ante entrada en escaln.

25

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Motor 4
Para realizar el sintonizado del motor 4 se utiliza el modelo que se encuentra en el
fichero sintonizar4d4.mdl. Este modelo contiene el esquema de control en bucle cerrado
de la cuarta articulacin que permite ajustar su regulador PID para que la respuesta
cumpla las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la cuarta articulacin. El valor de la posicin
de esta articulacin en la peor configuracin del robot es 0 rad. Para esta
articulacin es independiente que el escaln sea positivo o negativo.
Consideraremos que el escaln es de 0 rad a 0.08 rad.
- Los pares del resto de motores. Al igual que en los casos anteriores, los pares del
resto de motores son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. Como en los casos anteriores, la
velocidad de las restantes articulaciones es cero.
En el bloque correspondiente al motor de la articulacin 4 se deben colocar los datos de
los parmetros del motor que se seleccion en el ejemplo 6.3 para esa articulacin.
Estos datos se muestran en la tabla 6.13.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
4
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.13. Valores de los parmetros del motor utilizado para la cuarta articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 3 4 1].
Puesto que se est ajustando la cuarta articulacin, a continuacin del bloque Robot 4
GDL, se indicar en el selector que se elige la aceleracin de la cuarta articulacin. En
el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que
la velocidad inicial de esta articulacin es de 0 rad/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es 0, puesto que la posicin inicial de la articulacin es
0 rad.
Un posible regulador que proporciona que la respuesta de la cuarta articulacin se ajuste
a las especificaciones establecidas es el siguiente:

GPID ( s) = 100
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 4 ante el escaln introducido. Como se puede apreciar en la
grfica, al igual que en los casos anteriores, con el regulador escogido se satisfacen los
requerimientos impuestos. Ver figura 6.19.

26

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.19. Posicin de la articulacin 4 ante entrada en escaln.

Ejemplo 6.6. Sintonizado del robot de seis grados de libertad.


Al igual que en el ejemplo anterior, vamos a suponer que el esquema de control de este
robot es desacoplado, por lo que cada articulacin dispondr de un regulador PID y
durante el proceso de sintonizado de una articulacin concreta, los actuadores del resto
de articulaciones permanecern apagados.
Para efectuar el sintonizado del robot hay que situarlo en la peor posicin, introducir a
la articulacin que se desea ajustar un escaln y comprobar que la respuesta de la
articulacin cumple las especificaciones deseadas. Como vimos en el ejemplo 6.1, la
peor posicin en la que se puede encontrar el robot viene dada por:

q = 0 0
2

0 0 0

Para un funcio namiento satisfactorio del robot exigiremos que la respuesta de cada
articulacin cumpla las siguientes especificaciones:
-

Tiempo de cruce: < 100 mseg


Sobreoscilacin: < 20 %
Tiempo de establecimiento: < 200 mseg

La entrada a cada articulacin para realizar el sintonizado ser un escaln de 0.08 rad.
Este escaln ser positivo o negativo en funcin de la articulacin que se desee
sintonizar. El escaln siempre debe elegirse de modo que precise los mximos
requerimientos de par. En el caso de las articulaciones 1, 4 y 6 es independiente
considerar el escaln positivo o negativo, ya que a efectos de requerimientos de par, no
hay diferencia en girar la articulacin en un sentido o en otro. Por el contrario, se ha
considerado el escaln negativo para las articulaciones 2, 3 y 5, ya que, lgicamente los
requerimientos de par son mayores cuando estas articulaciones giran en el sentido
contrario al determinado por el eje z. Ver figura 6.10.

27

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Se ha desarrollado en Simulink un esquema de control en bucle cerrado, para cada una


de las articulaciones, que permite ajustar un regulador PID y comprobar si la respuesta
del sistema ante una entrada escaln satisface las especificaciones impuestas.
Motor 1
Se ha desarrollado en Simulink un modelo para realizar el sintonizado del motor 1. Este
modelo se encuentra en el fichero sintonizar1d6.mdl y contiene el esquema de control
en bucle cerrado de la primera articulacin que permite ajustar su regulador PID para
que la respuesta satisfaga las especificaciones. Si se ejecuta desde el entorno de Matlab
sintonizar1d6 aparecer en pantalla la aplicacin para el sintonizado de la primera
articulacin, que se muestra en la figura 6.20.

Figura 6.20. Herramienta desarrollada en Simulink para realizar el sintonizado de la


primera articulacin.
Para obtener la aceleracin de cada articulacin se ha desarrollado en Matlab la funcin
dindir6gdl.m; que calcula la aceleracin de cada articulacin cuando el robot transporta
una determinada carga en funcin de la posicin y velocidad actual de la articulacin y
de su par de entrada. Esta funcin hace uso de la funcin walkerorin6.m, explicada en el
captulo 3. El cdigo fuente de dindir6gdl.m se muestra a continuacin:

% DINDIR6GDL Dinmica directa de un robot de 6GDL.


% QPP = DINDIR6GDL(ENTRADA) calcula el vector 6x1 de aceleracin de
% cada articulacin utilizando el tercer mtodo de Walker y Orin.
% ENTRADA(1:6) representa el par de entrada a cada articulacin.
% ENTRADA(7:12) es la posicin de cada articulacin. ENTRADA(13:18)
% es la velocidad de cada articulacin.
%
% Ver tambin WALKERORIN6.
function qpp = dindir6gdl(entrada)

28

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

tau = entrada(1:6);
q
= entrada(7:12);
qp = entrada(13:18);

% Par de entrada a cada articulacin


% Posicin de cada articulacin
% Velocidad de cada articulacin

% Parmetros de la carga
masaext
= 10;
inerciaext = [0.0167 0 0;0 0.0167 0;0 0 0.0167];
% Se calcula la aceleracin utilizando el mtodo de Walker y Orin.
qpp = walkerorin6(q,qp,tau,masaext,inerciaext);

Las entradas al esquema de control son:


- El escaln de posicin que se aplica a la primera articulacin. El escaln es de 0.08
rad y, puesto que para esta articulacin es independiente que sea positivo o negativo,
se ha considerado positivo. El valor de la posicin de esta primera articulacin en la
peor configuracin del robot es 0 rad, por lo tanto el escaln ser de 0 rad a 0.08 rad.
- Los pares del resto de motores. Puesto que los actuadores de las articulaciones que
no estn siendo sintonizadas son apagadas, los pares de entrada al resto de
articulaciones son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. La velocidad de las restantes
articulaciones siempre ser cero, puesto que sus actuadores estn apagados.
El bloque PID representa a un regulador convencional PID con la siguiente funcin de
transferencia:
I
G PID ( s) = P + + Ds
s
Asignando los valores adecuados a P, I y D se conseguir que la respuesta del sistema
sea la deseada.
En el bloque correspondiente al motor de la articulacin 1 se deben colocar los datos de
los parmetros del motor que se seleccion en el ejemplo 6.4 para esa articulacin.
Estos datos se muestran en la tabla 6.14.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23DBB
1.4
1.64
0.052
0.052
10
Tabla 6.14. Valores de los parmetros del motor utilizado para la primera articulacin.
Los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades, simplemente
indican el orden del vector de pares, posiciones y velocidades del robot. En este caso los
vectores poseen el orden adecuado, ya que se est sintonizando la primera articulacin,
de manera que el orden que indicaremos en los tres selectores ser [1 2 3 4 5 6]. Sin
embargo, veremos que esto no es as para el sintonizado del resto de articulaciones.
Puesto que estamos ajustando la primera articulacin, la nica aceleracin que nos
interesa es la primera, por lo que a continuacin del bloque Robot 6 GDL, que
corresponde a la dinmica directa del robot, utilizamos un selector para elegir la
aceleracin de la primera articulacin. A continuacin, se emplea un bloque integrador
para obtener la velocidad de la articulacin. En este bloque especificamos que la
29

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

condicin inicial es cero, ya que la velocidad inicial de esta articulacin es de 0 rad/s.


Para calcular la posicin de la articulacin se integra la velocidad utilizando otro
bloque integrador. En este integrador la condicin inicial ser cero, puesto que la
posicin inicial de la articulacin es 0 rad.
Antes de realizar la simulacin del modelo para determinar si la respuesta del sistema es
la adecuada, es necesario configurar los parmetros de la simulacin con los valores que
se muestran en la figura 6.21.

Figura 6.21. Configuracin de los parmetros de la simulacin.


Cuando finalice la simulacin pulsando dos veces con el ratn sobre el bloque Grfica
Respuesta aparece la posicin de la articulacin y el escaln introducido.
En el caso de esta articulacin, no ha sido posible realizar el sintonizado que cumpla las
especificaciones establecidas. Esto se debe a que el motor elegido responde muy
lentamente. Para solucionar este problema se va a seleccionar un motor que proporciona
un par mayor. Las caractersticas de este motor se muestran en la tabla 6.15.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23GBB
0.8
0.93
0.058
0.058
18.5
Tabla 6.15. Valores de los parmetros del motor utilizado para la primera articulacin.
Con el motor seleccionado ya es posible realizar el sintonizado de forma que se
satisfagan las especificaciones. Un posible regulador que proporciona que la respuesta
de la primera articulacin se ajuste a las especificaciones establecidas es el siguiente:

GPID ( s ) = 500 + 12 s
En la figura 6.22 se muestra como vara la posicin de la articulacin 1 ante el escaln
introducido. Como se puede apreciar en la grfica, con el regulador escogido se
satisfacen los requerimientos impuestos.

30

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.22. Posicin de la articulacin 1 ante entrada en escaln.

Motor 2
Para realizar el sintonizado del motor 2 se utiliza el modelo implementado en Simulink
que se encuentra en el fichero sintonizar2d6.mdl. Este modelo contiene el esquema de
control en bucle cerrado de la segunda articulacin que permite ajustar su regulador PID
para que la respuesta satisfaga las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la segunda articulacin. El valor de la
posicin de esta articulacin en la peor configuracin del robot es 0 rad, por lo tanto
el escaln ser de 0 rad a -0.08 rad, ya que el mayor requerimiento de par se produce
cuando la articulacin gira en sentido contrario al determinado por la regla de la
mano derecha.
- Los pares del resto de motores. Al igual que en el caso anterior, los pares de entrada
al resto de articulaciones son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. Como en el caso anterior, la velocidad
de las restantes articulaciones es cero.
En el bloque correspondiente al motor de la articulacin 2 se deben colocar los datos de
los parmetros del motor que se seleccion en el ejemplo 6.4 para esa articulacin.
Estos datos se muestran en la tabla 6.16.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
2
DA34FBB
0.7
1.01
0.112
0.112
21.8
Tabla 6.16. Valores de los parmetros del motor utilizado para la segunda articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 1 3 4 5 6].

31

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Puesto que se est ajustando la segunda articulacin, a continuacin del bloque Robot 6
GDL, se indicar en el selector que se elige la aceleracin de la segunda articulacin. En
el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que
la velocidad inicial de esta articulacin es de 0 rad/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es cero, puesto que la posicin inicial de la
articulacin es 0 rad.
Un posible regulador que proporciona que la respuesta de la segunda articulacin se
ajuste a las especificaciones establecidas es el siguiente:

GPID ( s ) = 200
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 2 ante el escaln introducido. Como se puede apreciar en la
figura 6.23, al igual que en el caso anterior, con el regulador escogido se satisfacen los
requerimientos impuestos.

Figura 6.23. Posicin de la articulacin 2 ante entrada en escaln.

Motor 3
Para realizar el sintonizado del motor 3 se utiliza el modelo que se encuentra en el
fichero sintonizar3d6.mdl. Este modelo contiene el esquema de control en bucle cerrado
de la tercera articulacin que permite ajustar su regulador PID para que la respuesta
cumpla las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la tercera articulacin. El valor de la posicin
de esta articulacin en la peor configuracin del robot es /2 rad, por lo tanto el
escaln ser de /2 rad a /2 0.08 rad, ya que el mayor requerimiento de par se
produce cuando la articulacin gira en sentido contrario al determinado por la regla
de la mano derecha.
- Los pares del resto de motores. Al igual que en los casos anteriores, los pares de
entrada al resto de articulaciones son nulos.
- La posicin del resto de articulaciones en su peor configuracin.

32

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

La velocidad de las restantes articulaciones. Como en los casos anteriores, la


velocidad de las restantes articulaciones es cero.

En el bloque correspondiente al motor de la articulacin 3 se deben colocar los datos de


los parmetros del motor que se seleccion en el ejemplo 6.4 para esa articulacin.
Estos datos se muestran en la tabla 6.17.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
3
DA23GBB
0.8
0.93
0.058
0.058
18.5
Tabla 6.17. Valores de los parmetros del motor utilizado para la tercera articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 3 1 4 5 6].
Puesto que se est ajustando la tercera articulacin, a continuacin del bloque Robot 6
GDL, se indicar en el selector que se elige la aceleracin de la tercera articulacin. En
el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que
la velocidad inicial de esta articulacin es de 0 rad/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es /2, puesto que la posicin inicial de la articulacin
es /2 rad.
Un posible regulador que proporciona que la respuesta de la tercera articulacin se
ajuste a las especificaciones establecidas es el siguiente:

GPID ( s ) = 200
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 3 ante el escaln introducido. Como se puede apreciar en la
figura 6.24, al igual que en los casos anteriores, con el regulador escogido se satisfacen
los requerimientos impuestos.

Figura 6.24. Posicin de la articulacin 3 ante entrada en escaln.

33

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Motor 4
Para realizar el sintonizado del motor 4 se utiliza el modelo que se encuentra en el
fichero sintonizar4d6.mdl. Este modelo contiene el esquema de control en bucle cerrado
de la cuarta articulacin que permite ajustar su regulador PID para que la respuesta
cumpla las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la cuarta articulacin. El valor de la posicin
de esta articulacin en la peor configuracin del robot es 0 rad. Para esta
articulacin es independiente que el escaln sea positivo o negativo.
Consideraremos que el escaln es de 0 rad a 0.08 rad.
- Los pares del resto de motores. Al igual que en los casos anteriores, los pares de
entrada al resto de articulaciones son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. Como en los casos anteriores, la
velocidad de las restantes articulaciones es cero.
En el bloque correspondiente al motor de la articulacin 4 se deben colocar los datos de
los parmetros del motor que se seleccio n en el ejemplo 6.4 para esa articulacin.
Estos datos se muestran en la tabla 6.18.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
4
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.18. Valores de los parmetros del motor utilizado para la cuarta articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 3 4 1 5 6].
Puesto que se est ajustando la cuarta articulacin, a continuacin del bloque Robot 6
GDL, se indicar en el selector que se elige la aceleracin de la cuarta articulacin. En
el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que
la velocidad inicial de esta articulacin es de 0 rad/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es 0, puesto que la posicin inicial de la articulacin es
0 rad.
Un posible regulador que proporciona que la respuesta de la cuarta artic ulacin se ajuste
a las especificaciones establecidas es el siguiente:

GPID ( s) = 100
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 4 ante el escaln introducido. Como se puede apreciar en la
figura 6.25, al igual que en los casos anteriores, con el regulador escogido se satisfacen
los requerimientos impuestos.

34

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.25. Posicin de la articulacin 4 ante entrada en escaln.

Motor 5
Para realizar el sintonizado del motor 5 se utiliza el modelo que se encuentra en el
fichero sintonizar5d6.mdl. Este modelo contiene el esquema de control en bucle cerrado
de la quinta articulacin que permite ajustar su regulador PID para que la respuesta
cumpla las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la quinta articulacin. El valor de la posicin
de esta articulacin en la peor configuracin del robot es 0 rad, por lo tanto el
escaln ser de 0 rad a -0.08 rad, ya que el mayor requerimiento de par se produce
cuando la articulacin gira en sentido contrario al determinado por la regla de la
mano derecha.
- Los pares del resto de motores. Al igual que en los casos anteriores, los pares de
entrada al resto de articulaciones son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. Como en los casos anteriores, la
velocidad de las restantes articulaciones es cero.
En el bloque correspondiente al motor de la articulacin 5 se deben colocar los datos de
los parmetros del motor que se seleccion en el ejemplo 6.4 para esa articulacin.
Estos datos se muestran en la tabla 6.19.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
5
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.19. Valores de los parmetros del motor utilizado para la quinta articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 3 4 5 1 6].
Puesto que se est ajustando la quinta articulacin, a continuacin del bloque Robot 6
GDL, se indicar en el selector que se elige la aceleracin de la quinta articulacin. En

35

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

el bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que


la velocidad inicial de esta articulacin es de 0 rad/s. En el bloque Integrador Velocidad
se indica que la condicin inicial es 0, puesto que la posicin inicial de la articulacin es
0 rad.
Un posible regulador que proporciona que la respuesta de la quinta articulacin se ajuste
a las especificaciones establecidas es el siguiente:

GPID ( s) = 100
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 5 ante el escaln introducido. Como se puede apreciar en la
figura 6.26, al igual que en los casos anteriores, con el regulador escogido se satisfacen
los requerimientos impuestos.

Figura 6.26. Posicin de la articulacin 5 ante entrada en escaln.

Motor 6
Para realizar el sintonizado del motor 6 se utiliza el modelo que se encuentra en el
fichero sintonizar6d6.mdl. Este modelo contiene el esquema de control en bucle cerrado
de la sexta articulacin que permite ajustar su regulador PID para que la respuesta
cumpla las especificaciones.
Las entradas al esquema de control son:
- El escaln de posicin que se aplica a la sexta articulacin. El valor de la posicin
de esta articulacin en la peor configuracin del robot es 0 rad. Para esta
articulacin es independiente que el escaln sea positivo o negativo.
Consideraremos que el escaln es de 0 rad a 0.08 rad.
- Los pares del resto de motores. Al igual que en los casos anteriores, los pares de
entrada al resto de articulaciones son nulos.
- La posicin del resto de articulaciones en su peor configuracin.
- La velocidad de las restantes articulaciones. Como en los casos anteriores, la
velocidad de las restantes articulaciones es cero.

36

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

En el bloque correspondiente al motor de la articulacin 6 se deben colocar los datos de


los parmetros del motor que se seleccion en el ejemplo 6.4 para esa articulacin.
Estos datos se muestran en la tabla 6.20.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
6
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.20. Valores de los parmetros del motor utilizado para la sexta articulacin.
En los bloques Ordena Pares, Ordena Posiciones y Ordena Velocidades se indica el
orden del vector de pares, posiciones y velocidades del robot. El orden que indicaremos
en los tres selectores ser [2 3 4 5 6 1].
Puesto que se est ajustando la sexta articulacin, a continuacin del bloque Robot 6
GDL, se indicar en el selector que se elige la aceleracin de la sexta articulacin. En el
bloque Integrador Aceleracin especificamos que la condicin inicial es cero, ya que la
velocidad inicial de esta articulacin es de 0 rad/s. En el bloque Integrador Velocidad se
indica que la condicin inicial es 0, puesto que la posicin inicial de la articulacin es 0
rad.
Un posible regulador que proporciona que la respuesta de la sexta articulacin se ajuste
a las especificaciones establecidas es el siguiente:

GPID ( s) = 100
Si se realiza la simulacin del modelo se obtiene la grfica que muestra como vara la
posicin de la articulacin 6 ante el escaln introducido. Como se puede apreciar en la
figura 6.27, al igual que en los casos anteriores, con el regulador escogido se satisfacen
los requerimientos impuestos.

Figura 6.27. Posicin de la articulacin 6 ante entrada en escaln.

37

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

6.4.-Simulacin de robots.
Una vez que se han seleccionado los servoaccionamientos del robot y se ha efectuado el
sintonizado, ya puede realizarse una simulacin completa del funcionamiento del robot.
Ejemplo 6.7. Simulacin del robot de 4 GDL.
Se ha realizado la simulacin del robot de 4 GDL para que realice una planificacin de
su extremo en lnea recta entre dos puntos del espacio cartesiano. La planificacin
realizada nicamente es en posicin, de manera que el robot parte de la posicin inicial
con velocidad nula. Para realizar la planificacin se ha dividido la trayectoria en un
nmero determinado de intervalos, de forma que en cada iteracin de la simulacin, se
proporciona la posicin que debe alcanzar el extremo del robot. Para realizar la
simulacin se ha desarrollado en Simulink el modelo que se encuentra en el fichero
simulador4.mdl. Ver figura 6.28.
SIMULACIN DE LA TRAYECTORIA EN LNEA RECTA DEL ROBOT DE 4GDL

PID
Sum1

PID 1

25
Saturation 1 Amplificador 1

Volt
Vel

Par

Motor 1

[0 -0.6 0.5]
Posicin Inicial

PID
Planificacin

Demux

Sum2

PID 2

25
Saturation 2

Amplificador 2

[0 -1 1.2]

Volt
Vel

Par

Motor 2

PID
Sum3

PID 3

25
Saturation 3

Amplificador 3

Saturation 4

Amplificador 4

PID
Sum4
Cinemtica

MATLAB

Inversa

Function

Mux
Mux

Planificacin de
trayectorias

Posicin Final

PID 4

25

Pares

Volt
Vel

Mux

MATLAB
Function
Robot 4GDL

1/s
Integrator

Par

Motor 3

Volt
Vel

Par

Velocidades

Motor 4

Demux1

Demux

Demux

To Workspace
mat_q

1/s
Posiciones

Integrator1

Graficas

Figura 6.28. Simulador del robot de 4 GDL.


Como puede apreciarse en la figura 6.28, para realizar la simulacin se utiliza un
esquema de control desacoplado, de forma que cada articulacin posee un regulador
PID. Los valores de los motores del robot que se utilizan para realizar la simulacin son
aquellos que se emplearon en el proceso de sintonizado mostrado en el ejemplo 6.5.
Estos valores se recogen en la tabla 6.20. As mismo los valores de los reguladores PID
son los que se obtuvieron en el ejemplo 6.5, que se muestran en la tabla 6.21.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23JBB
0.39 0.65
0.054
0.054
25.3
2
DA34HBB
1.6
1.56
0.176
0.176
23.7
3
DA23GBB
0.8
0.93
0.058
0.058
18.5
4
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.20. Motores utilizados en el simulador del robot de 4 GDL.

38

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Articulacin
P
I
D
1
90
0
1.6
2
300
0
6
3
200
0
5.7
4
100
0
0
Tabla 6.21. Valores de los reguladores del robot de 4 GDL.
El bloque Robot 4 GDL representa la dinmica directa del robot de 4 GDL. Como se
mostr en el ejemplo 6.3, para realizar la dinmica directa se ha desarrollado en Matlab
la funcin dindir4gdl.m. Esta funcin calcula la aceleracin de cada articulacin
cuando el robot transporta una determinada carga en funcin de la posicin y velocidad
actual de la articulacin y de su fuerza/par de entrada.
El simulador efecta una planificacin de la trayectoria del extremo del robot en lnea
recta entre la posicin cartesiana inicial y final especificadas. Para realizar la
planificacin de trayectorias se ha desarrollado el subsistema Planificacin. Este
subsistema se muestra en la figura 6.29.

Figura 6.29. Subsistema de planificacin de trayectorias.


El subsistema de planificacin es el encargado de suministrar al esquema de control de
cada articulacin la posicin articular de cada articulacin en cada instante de
simulacin. Para obtener las posiciones articulares se utiliza la funcin implementada en
Matlab planifica4.m. El cdigo fuente de esta funcin es el siguiente:
% PLANIFICA4 Planificacin de trayectorias en lnea recta de un robot de 4GDL
%
Q = PLANIFICA4(ENTRADA) devuelve las coordenadas articulares
%
correspondientes al instante actual de simulacin en una planificacin
%
de trayectoria en lnea recta entre dos puntos cartesianos. ENTRADA(1)
%
representa el instante de tiempo actual (seg). ENTRADA(2:4) es la
%
posicin cartesiana inicial de la trayectoria. ENTRADA(5:7) es la
%
posicin cartesiana final de la trayectoria.
%
% Ver tambin CININV4GDL.
function q = planifica4(entrada)
t = entrada(1);
p1 = entrada(2:4);
p2 = entrada(5:7);
ts = 1;
intervalo = 1e-4;

% Instante actual de simuacin (seg)


% Posicin cartesiana inicial
% Posicin cartesiana final
% Tiempo de simulacin (seg)
% Intervalo de integracin (seg)

% Nmero de segmentos de la trayectoria


nseg = ts/intervalo;
% Clculo del vector unitario

39

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05
u = p2-p1;
mu = sqrt(u(1)^2+u(2)^2+u(3)^2);
u = (1/mu)*u;
% Clculo de la distancia entre puntos
d = mu/nseg;
% Nmero de punto actual en la trayectoria (el inicial es 0)
i = t*nseg;
% Clculo de la posicin cartesiana actual de la mano del manipulador
ps = p1+(i*d)*u;
% Clculo de las coordenadas articulares
q = cininv4gdl(ps);

Esta funcin proporciona las coordenadas articulares del robot del instante actual de
simulacin a partir del instante de tiempo y de la posicin inicial y final expresadas en
coordenadas cartesianas. La funcin realiza una planificacin de trayectorias en lnea
recta entre la posicin inicial y la final. Para ello divide la trayectoria en un nmero de
segmentos que viene impuesto por los parmetros con los que se desea simular en
Simulink:
n segmentos =

tiempo de simulacin
intervalo de integraci n

En funcin del instante de simulacin calcula qu posicin cartesiana debe tener el


extremo del robot y, realizando la cinemtica inversa del robot mediante la funcin
cininv4gdl.m, calcula las variables articulares del robot. El cdigo fuente de la funcin
cininv4gdl.m es el siguiente:
% CININV4GDL Cinemtica inversa de un robot de 4GDL.
% Q = CININV4GDL(ENTRADA) devuelve el vector 4x1 de coordenadas
% articulares que contiene la solucin cinemtica inversa.
% ENTRADA es un vector 3x1 que representa la posicin expresada
% en coordenadas
cartesianas.
%
% Ver tambin INVERSEKINEMATIC4.
function q = cininv4gdl(entrada)
% Posicin cartesiana
p = entrada;
%
n
s
a

Orientacin deseada en el extremo del robot


= [1 0 0]';
= [0 0 -1]';
= [0 1 0]';

% Matriz con la orientacin y posicin deseadas en el extremo del robot


T = [n s a entrada];
% Se calculan las coordenadas articulares
q = inversekinematic4(T);

La funcin cininv4gdl.m utiliza la funcin inversekinematic4.m presentada en el


captulo 2 para realizar la cinemtica inversa del robot de 4 GDL. Como se puede
40

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

apreciar en el cdigo fuente presentado, se especifica la orientacin deseada en el


extremo del robot. Por lo tanto la orientacin del extremo del robot permanecer fija
durante toda la planificacin. Para que un robot pueda posicionarse en cualquier punto
con cualquier orientacin necesita un mnimo de 6 GDL. Este robot es de 4 GDL, por lo
que existen trayectorias que no pueden realizarse si la orientacin del extremo es fija.
Para realizar cualquier trayectoria correctamente sera necesario modificar en cada
momento la orientacin del extremo. Es decir, habra que realizar una planificacin de
la posicin del extremo, as como de su orientacin. Sin embargo, como la nica
finalidad en este apartado es simular el comportamiento del robot de 4 GDL, la
orientacin del extremo permanecer fija, de forma que se realizarn trayectorias en las
que el extremo no cambie su orientacin.
El bloque Cinemtica Inversa calcula la cinemtica inversa de la posicin cartesiana
inicial de la trayectoria mediante la funcin cininv4gdl.m. Este clculo es necesario, ya
que el integrador del modelo que obtiene las posiciones articulares del robot a partir de
las velocidades, necesita como condicin inicial las variables articulares
correspondientes a la posicin cartesiana inicial del extremo del robot.
Con la finalidad de poder efectuar una animacin de la trayectoria del extremo del robot
desde Matlab se guarda la posicin de cada articulacin en la matriz mat_q. Esta matriz
posee una fila por cada instante de simulacin y una columna por cada variable
articular.
Para realizar la simulacin de la trayectoria en primer lugar es necesario configurar los
parmetros de la simulacin. Los valores seleccionados de los parmetros son los que se
muestran en la figura 6.30. Es muy importante destacar que el tipo de paso seleccionado
del Solver debe ser fijo y adems el valor del paso debe coincidir con el intervalo de
integracin especificado en la funcin planifica4.m. As mismo, el tiempo de
simulacin deber ser idntico al considerado en dicha funcin.

Figura 6.30. Parmetros para realizar la simulacin del robot de 4 GDL.


Una vez que se han establecido los parmetros de simulacin de Simulink, ya puede
realizarse la simulacin del modelo. Una vez finalizada la simulacin, podremos, desde
el entorno de Matlab, realizar una animacin para comprobar visualmente que el robot
realiza la trayectoria deseada. Para efectuar la animacin se utilizar la funcin

41

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

desarrollada en Matlab animacion4.m. El cdigo de esta funcin se muestra a


continuacin:
%
%
%
%
%
%

ANIMACION4
Animacin de la trayectoria de un robot de 4 GDL
ANIMACION(MAT_Q) realiza la animacin de la trayectoria, expresada
en la matriz MAT_Q, de un brazo robot de 4 GDL. MAT_Q contiene 4 filas
y una columna para cada disposicin del robot.
Ver tambin DRAWROBOT3D4.

function animacion4(mat_q)
% Parmetros Denavit-Hartenberg del robot. Los parmetros correspondientes
% a variables articulares aparecen con valor 0
teta = [0
0
0
0 ];
d
= [0.4
0
0 0.2];
a
= [0
-0.1
0
0 ];
alfa = [0
-pi/2
0
0 ];
% Vector de posicion (x, y, z) del sistema de coordenadas de referencia
x0 = 0;
y0 = 0;
z0 = 0;
% Se dibuja el sistema de coordenadas de referencia. Se asigna el modo XOR
para borrar
% slo el robot dibujado anteriormente. Se utiliza un grosor de lnea de 2
unidades
p = plot3(x0,y0,z0,'EraseMode','xor','LineWidth',2);
% Se asigna una rejilla a los ejes
grid;
% Se establecen los lmites de los ejes
axis([-1.5 1.5 -1.5 1.5 0 1.5]);
% Mantiene el grfico actual
hold on;
% Nmero de columnas de la matriz
n = size(mat_q,2);
% Se dibuja la disposicin del robot correspondiente a cada columna
for i=1:n
% Variables articulares del brazo robot
q1 = mat_q(1,i);
q2 = mat_q(2,i);
q3 = mat_q(3,i);
q4 = mat_q(4,i);
%
Matrices de transformacin homognea entre sistemas de coordenadas
consecutivos
A01 = denavit(q1, d(1), a(1), alfa(1));
A12 = denavit(teta(2), q2, a(2), alfa(2));
A23 = denavit(teta(3), q3, a(3), alfa(3));
A34 = denavit(q4, d(4), a(4), alfa(4));
% Matrices
A02 = A01 *
A03 = A02 *
A04 = A03 *
%
x1
xi
x2
x3
x4

de transformacin del primer sistema al correspondiente


A12;
A23;
A34;

Vector de posicion (x, y, z) de cada sistema de coordenadas


= A01(1,4);
y1 = A01(2,4);
z1 = A01(3,4);
= x1;
yi = y1;
zi = z1 + q2;
= A02(1,4);
y2 = A02(2,4);
z2 = A02(3,4);
= A03(1,4);
y3 = A03(2,4);
z3 = A03(3,4);
= A04(1,4);
y4 = A04(2,4);
z4 = A04(3,4);

% Se dibuja el robot
x = [x0 x1 xi x2 x3 x4];

42

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05
y = [y0 y1 yi y2 y3 y4];
z = [z0 z1 zi z2 z3 z4];
set(p,'XData',x,'YData',y,'ZData',z);
% Se fuerza a MATLAB a actualizar la pantalla
drawnow;
end

Para realizar la animacin simplemente se ejecutar desde Matlab:


animacion4(mat_q')

En la figura 6.31 se muestra el instante final de la animacin del robot cuyo extremo
realiza una trayectoria en lnea recta entre la posicin (0,-0.6,0.5) y (0,-1,1.2).

Figura 6.31. Instante final de la animacin del robot de 4 GDL. Se ha aadido la


trayectoria seguida por el extremo del robot.
Ejemplo 6.8. Simulacin del robot de 6 GDL.
Al igual que en el caso del robot de 4 GDL, se ha realizado la simulacin del robot de 6
GDL para que realice una planificacin de su extremo en lnea recta entre dos puntos
del espacio cartesiano. La planificacin realizada nicamente es en posicin, de manera
que el robot parte de la posicin inicial con velocidad nula. Para realizar la planificacin
se ha dividido la trayectoria en un nmero determinado de intervalos, de forma que en
cada iteracin de la simulacin, se proporciona la posicin que debe alcanzar el extremo
del robot. Para realizar la simulacin se ha desarrollado en Simulink el modelo que se
encuentra en el fichero simulador6.mdl. Ver figura 6.32.

43

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

SIMULACIN DE LA TRAYECTORIA EN LNEA RECTA DEL ROBOT DE 6GDL

PID
Sum1

PID 1

25

PID
Sum2
[0 0.1 0.4]
Posicin Inicial

Planificacin

Sum3
Planificacin de
trayectorias

Posicin Final

25

PID 3

25

PID
Sum4

PID 4

PID 5

Amplificador 3
25

25

Volt

Amplificador 5

Saturation 6

Amplificador 6

Par

Mux

Pares

Volt

MATLAB

Mux

Motor 3

Mux

Function
Robot 6GDL

1/s
Integrator

Par

Motor 4
Volt
Vel

Saturation 5

Par

Motor 2

Vel

Saturation 4 Amplificador 4

PID
Sum5

Volt

Vel

Saturation 3

Par

Motor 1

Vel

Saturation 2 Amplificador 2

PID

Demux

[-0.4 0.2 0.3]

PID 2

Volt
Vel

Saturation 1 Amplificador 1

Par

Motor 5
Velocidades

Cinemtica
Inversa

MATLAB
Function

PID
Sum6

PID 6

25

Volt
Vel

Par

Motor 6
Demux1

Demux
Demux
To Workspace
mat_q

1/s
Posiciones

Integrator1

Graficas

Figura 6.32. Simulador del robot de 6 GDL.


Como puede apreciarse en la figura 6.32, para realizar la simulacin se utiliza un
esquema de control desacoplado, de forma que cada articulacin posee un regulador
PID. Los valores de los motores del robot que se utilizan para realizar la simulacin son
aquellos que se emplearon en el proceso de sintonizado mostrado en el ejemplo 6.6.
Estos valores se recogen en la tabla 6.22. As mismo los valores de los reguladores PID
son los que se obtuvieron en el ejemplo 6.6, que se muestran en la tabla 6.23.
Articulacin Nombre Motor R() L(mH) KT (Nm/A) KV (V/rad/s) Imx (A)
1
DA23GBB
0.8
0.93
0.058
0.058
18.5
2
DA34FBB
0.7
1.01
0.112
0.112
21.8
3
DA23GBB
0.8
0.93
0.058
0.058
18.5
4
DB17CDB
6.9
1.28
0.035
0.035
3.6
5
DB17CDB
6.9
1.28
0.035
0.035
3.6
6
DB17CDB
6.9
1.28
0.035
0.035
3.6
Tabla 6.22. Motores utilizados en el simulador del robot de 6 GDL.
Articulacin
P
I
D
1
500
0
12
2
200
0
0
3
200
0
0
4
100
0
0
5
100
0
0
6
100
0
0
Tabla 6.23. Valores de los reguladores del robot de 6 GDL.
El bloque Robot 6 GDL representa la dinmica directa del robot de 6 GDL. Como se
mostr en el ejemplo 6.4, para realizar la dinmica directa se ha desarrollado en Matlab
la funcin dindir6gdl.m. Esta funcin calcula la aceleracin de cada articulacin

44

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

cuando el robot transporta una determinada carga en funcin de la posicin y velocidad


actual de la articulacin y de su fuerza/par de entrada.
El simulador efecta una planificacin de la trayectoria del extremo del robot en lnea
recta entre la posicin cartesiana inicial y final especificadas. Para realizar la
planificacin de trayectorias se ha desarrollado el subsistema Planificacin, mostrado
anteriormente en la figura 6.29.
El subsistema de planificacin es el encargado de suministrar al esquema de control de
cada articulacin la posicin articular de cada articulacin en cada instante de
simulacin. Para obtener las posiciones articulares se utiliza la funcin implementada en
Matlab planifica6.m. El cdigo fuente de esta funcin es el siguiente:
% PLANIFICA6 Planificacin de trayectorias en lnea recta de un robot de 6GDL
%
Q = PLANIFICA6(ENTRADA) devuelve las coordenadas articulares
%
correspondientes al instante actual de simulacin en una planificacin
%
de trayectoria en lnea recta entre dos puntos cartesianos. ENTRADA(1)
%
representa el instante de tiempo actual (seg). ENTRADA(2:4) es la
%
posicin cartesiana inicial de la trayectoria. ENTRADA(5:7) es la
%
posicin cartesiana final de la trayectoria.
%
%
Ver tambin CININV6GDL.
function q = planifica6(entrada)
t = entrada(1);
p1 = entrada(2:4);
p2 = entrada(5:7);
ts = 1;
intervalo = 1e-4;

% Instante actual de simuacin (seg)


% Posicin cartesiana inicial
% Posicin cartesiana final
% Tiempo de simulacin (seg)
% Intervalo de integracin (seg)

% Nmero de segmentos de la trayectoria


nseg = ts/intervalo;
% Clculo del vector unitario
u = p2-p1;
mu = sqrt(u(1)^2+u(2)^2+u(3)^2);
u = (1/mu)*u;
% Clculo de la distancia entre puntos
d = mu/nseg;
% Nmero de punto actual en la trayectoria (el inicial es 0)
i = t*nseg;
% Clculo de la posicin cartesiana actual de la mano del manipulador
ps = p1+(i*d)*u;
% Clculo de las coordenadas articulares
q = cininv6gdl(ps);

Esta funcin proporciona las coordenadas articulares del robot del instante actual de
simulacin a partir del instante de tiempo y de la posicin inicial y final expresadas en
coordenadas cartesianas. La funcin realiza una planificacin de trayectorias en lnea
recta entre la posicin inicial y la final. Para ello divide la trayectoria en un nmero de
segmentos que viene impuesto por los parmetros con los que se desea simular en
Simulink:

45

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

n segmentos =

tiempo de simulacin
intervalo de integraci n

En funcin del instante de simulacin calcula qu posicin cartesiana debe tener el


extremo del robot y, realizando la cinemtica inversa del robot mediante la funcin
cininv6gdl.m, calcula las variables articulares del robot. El cdigo fuente de la funcin
cininv6gdl.m es el siguiente:
% CININV6GDL Cinemtica inversa de un robot de 6GDL.
% Q = CININV6GDL(ENTRADA) devuelve el vector 6x1 de coordenadas
% articulares que contiene la solucin cinemtica inversa.
% ENTRADA es un vector 3x1 que representa la posicin expresada
% en coordenadas
cartesianas.
%
% Ver tambin INVERSEKINEMATIC6.
function q = cininv6gdl(entrada)
% Posicin cartesiana
p = entrada;
%
n
s
a

Orientacin deseada en el extremo del robot


= [1 0 0]';
= [0 0 -1]';
= [0 -1 0]';

% Matriz con la orientacin y posicin deseadas en el extremo del robot


T = [n s a entrada];
% Disposicin del codo del robot deseada
codo = 1;
% Codo arriba
% Disposicin de la mueca del robot deseada
muneca = -1; % Mueca por encima de la posicin cartesiana

% Se calculan las coordenadas articulares


q = inversekinematic6(T,codo,muneca);

La funcin cininv6gdl.m utiliza la funcin inversekinematic6.m presentada en el


captulo 2 para realizar al cinemtica inversa del robot de 6 GDL. Como se puede
apreciar en el cdigo fuente presentado, se especifica la orientacin deseada en el
extremo del robot, as como la disposicin del codo y de la mueca. Por lo tanto la
orientacin del extremo del robot, la disposicin del codo y la de la mueca
permanecern fijas durante toda la planificacin.
El bloque Cinemtica Inversa calcula la cinemtica inversa de la posicin cartesiana
inicial de la trayectoria mediante la funcin cininv6gdl.m. Este clculo es necesario, ya
que el integrador del modelo que obtiene las posiciones articulares del robot a partir de
las velocidades, necesita como condicin inicial las variables articulares
correspondientes a la posicin cartesiana inicial del extremo del robot.
Con la finalidad de poder efectuar una animacin de la trayectoria del extremo del robot
desde Matlab se guarda la posicin de cada articulacin en la matriz mat_q. Esta matriz
posee una fila por cada instante de simulacin y una columna por cada variable
articular.

46

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Al igual que en el ejemplo 6.7, para realizar la simulacin de la trayectoria en primer


lugar es necesario configurar los parmetros de la simulacin. Los valores seleccionados
de los parmetros son los que se muestran en la figura 6.33. Es muy importante destacar
que el tipo de paso seleccionado del Solver debe ser fijo y adems el valor del paso debe
coincidir con el intervalo de integracin especificado en la funcin planifica6.m. As
mismo, el tiempo de simulacin deber ser idntico al considerado en dicha funcin.

Figura 6.33. Parmetros para realizar la simulacin del robot de 6 GDL.


Una vez que se han establecido los parmetros de simulacin de Simulink, ya puede
realizarse la simulacin del modelo. Una vez finalizada la simulacin, podremos, desde
el entorno de Matlab, realizar una animacin para comprobar visualmente que el robot
realiza la trayectoria deseada. Para efectuar la animacin se utilizar la funcin
desarrollada en Matlab animacion6.m, ya presentada en el captulo 2. Para realizar la
animacin simplemente se ejecutar desde Matlab:
animacion6(mat_q')

En la figura 6.34 se muestra el instante final de la animacin del robot cuyo extremo
realiza una trayectoria en lnea recta entre la posicin (0,0.1,0.4) y (-0.4,0.2,0.3).

47

Borrador del libro: ROBOTICA: MODELADO,SIMULACIN Y DISEO CON MATLAB.


R.Saltarn, M.Almonacid, J.M.Azorn, J.M.Sabater
29/11/05

Figura 6.34. Instante final de la animacin del robot de 6 GDL. Se ha aadido la


trayectoria seguida por el extremo del robot.

48

You might also like