Está en la página 1de 12

2 Bingul.

nb


El modelado de la dinmica de un robot se divide en dos partes:
Dinmica inversa
Dinmica directa
El modelo inverso es importante para el control del sistema
El modelo directo es usado para la simulacin del sistema
Resolver la dinmica mediante el modelos directo es muy complicado


Para estudiar la dinmica en el caso concreto de manipuladores paralelos se ha desarrollado diferentes
mtodos: El Newton- Euler, Formulacin Lagrangiana, el principio de trabajos virtuales y teora de
tornillos.
Bingul.nb 3

La formulacin lagrangiana es un mtodo para describir la dinmica de un sistema mecnico a partir de


los conceptos de trabajo y energa.

De manera general la funcin Lagrangiana se presenta como


L=T-U


La integral de accin toma su valor mnimo cuando z=z*(t) es la trayectoria seguida realmente en la
naturaleza.
0.6

0.4 =*()

0.2

2 4 6 8 10

-0.2


t
La integral de accin se puede escribir como s=t12 L(q, q, t) t y esto implica que

L- L=0, k = 1, 2, ...., n
t qk qk
4 Bingul.nb


Usando la formulacin Lagrangiana en el anlisis de la plataforma Stewart-Gough.


K q, q - K q, q + P (q) =
t q q q

Bingul, Z. and Karah, O.(2012)


Bingul.nb 5

..
JT (Xp-o ) F = M(Xp-o ) Xp-o + Vm Xp-o , Xp-o Xp-o + G(Xp-o )
En un principio para estudiar la cinmatica , basta con el lado derecho.
Para esto se debe conocer la matriz de inercia(M), la matriz de Coriolis - centrifuga(Vm ) y la matriz de
gravedad G, los parametros de la plataforma superior.

..
px px px
..
py py py
..
pz pz .. pz
Xp-o = Xp-o = Xp-o = ..

..

..

6 Bingul.nb


Se estudian dos partes, la plataforma movil y las piernas. Entonces las matrices anteriores se dividen
para cada una de estas partes.
M (Xp-o ) = Mplat + Mpiernas Vm = Vmplat + Vpiernas G = Gplat + Gpiernas

Para conocer las velocidades en cada una de las partes del dispositivo se usa una matriz Jacobiana,
que es divida en dos, una que muestra los movimientos de cada una de las uniones de la plataforma y
otras que proyecta estas uniones sobre las piernas.


L=JX L = J I VT VT = JII Xp-o
Bingul.nb 7

La energa cintica puede tener una parte traslacional y otra rotacional. La comn es la traslacional
mup 0 0 0 0 0 pxdot
0 mup 0 0 0 0 pydot
kup = ( pxdot pydot pzdot dot dot dot ). 0 0 mup 0 0 0 . pzdot
0 0 0 Ix 0 0 dot
0 0 0 0 Iy 0 dot
0 0 0 0 0 Iz dot
mup pxdot2 + mup pydot2 + mup pzdot2 + Ix dot2 + Iy dot2 + Iz dot2

px
py
pup = ( 0 0 mup g 0 0 0 ). pz



{{g mup pz}}
8 Bingul.nb


1
kLi = 2
(m1 + m2 )VTj T hi VTj - Li ki Li
I m2 2 1 1 m2
hi = Li + m1 +m2
, I= m1 +m2
m1 l1 + 2
m2 l2 , k1 = hi - m
1 +m2

Bingul, Z. and Karah, O.(2012)


Bingul.nb 9

La energa cintica de las piernas puede ser estudiada en trminos de la energa cintica rotacional y
la
energa cintica translacional, entonces la forma de la energa total se forma por el vector Vt y
L, los cuales tiene la forma.
Vt =

1 0 0 RY () S X RX () RZ () GT1 S Y RY () RX () RZ () GT1 RY () RX () S Z RZ (
0 1 0 RY () S X RX () RZ () GT1 S Y RY () RX () RZ () GT1 RY () RX () S Z RZ (
0 0 1 RY () S X RX () RZ () GT1 S Y RY () RX () RZ () GT1 RY () RX () S Z RZ (
1 0 0 RY () S X RX () RZ () GT2 S Y RY () RX () RZ () GT2 RY () RX () S Z RZ (
0 1 0 RY () S X RX () RZ () GT2 S Y RY () RX () RZ () GT2 RY () RX () S Z RZ (
0 0 1 RY () S X RX () RZ () GT2 S Y RY () RX () RZ () GT2 RY () RX () S Z RZ (
1 0 0 RY () S X RX () RZ () GT3 S Y RY () RX () RZ () GT3 RY () RX () S Z RZ (
0 1 0 RY () S X RX () RZ () GT3 S Y RY () RX () RZ () GT3 RY () RX () S Z RZ (
0 0 1 RY () S X RX () RZ () GT3 S Y RY () RX () RZ () GT3 RY () RX () S Z RZ (
1 0 0 RY () S X RX () RZ () GT4 S Y RY () RX () RZ () GT4 RY () RX () S Z RZ (
0 1 0 RY () S X RX () RZ () GT4 S Y RY () RX () RZ () GT4 RY () RX () S Z RZ (
0 0 1 RY () S X RX () RZ () GT4 S Y RY () RX () RZ () GT4 RY () RX () S Z RZ (
1 0 0 RY () S X RX () RZ () GT5 S Y RY () RX () RZ () GT5 RY () RX () S Z RZ (
0 1 0 RY () S X RX () RZ () GT5 S Y RY () RX () RZ () GT5 RY () RX () S Z RZ (
0 0 1 RY () S X RX () RZ () GT5 S Y RY () RX () RZ () GT5 RY () RX () S Z RZ (
1 0 0 RY () S X RX () RZ () GT6 S Y RY () RX () RZ () GT6 RY () RX () S Z RZ (
0 1 0 RY () S X RX () RZ () GT6 S Y RY () RX () RZ () GT6 RY () RX () S Z RZ (
0 0 1 RY () S X RX () RZ () GT6 S Y RY () RX () RZ () GT6 RY () RX () S Z RZ (

pxdot
pydot
. pzdot
dot
dot
dot
10 Bingul.nb

pxdot + GT1 RX RY RZ S X dot + GT1 RX RY RZ S Y dot + GT1 RX RY RZ S Z dot


pydot + GT1 RX RY RZ S X dot + GT1 RX RY RZ S Y dot + GT1 RX RY RZ S Z dot
pzdot + GT1 RX RY RZ S X dot + GT1 RX RY RZ S Y dot + GT1 RX RY RZ S Z dot
pxdot + GT2 RX RY RZ S X dot + GT2 RX RY RZ S Y dot + GT2 RX RY RZ S Z dot
pydot + GT2 RX RY RZ S X dot + GT2 RX RY RZ S Y dot + GT2 RX RY RZ S Z dot
pzdot + GT2 RX RY RZ S X dot + GT2 RX RY RZ S Y dot + GT2 RX RY RZ S Z dot
pxdot + GT3 RX RY RZ S X dot + GT3 RX RY RZ S Y dot + GT3 RX RY RZ S Z dot
pydot + GT3 RX RY RZ S X dot + GT3 RX RY RZ S Y dot + GT3 RX RY RZ S Z dot
pzdot + GT3 RX RY RZ S X dot + GT3 RX RY RZ S Y dot + GT3 RX RY RZ S Z dot
pxdot + GT4 RX RY RZ S X dot + GT4 RX RY RZ S Y dot + GT4 RX RY RZ S Z dot
pydot + GT4 RX RY RZ S X dot + GT4 RX RY RZ S Y dot + GT4 RX RY RZ S Z dot
pzdot + GT4 RX RY RZ S X dot + GT4 RX RY RZ S Y dot + GT4 RX RY RZ S Z dot
pxdot + GT5 RX RY RZ S X dot + GT5 RX RY RZ S Y dot + GT5 RX RY RZ S Z dot
pydot + GT5 RX RY RZ S X dot + GT5 RX RY RZ S Y dot + GT5 RX RY RZ S Z dot
pzdot + GT5 RX RY RZ S X dot + GT5 RX RY RZ S Y dot + GT5 RX RY RZ S Z dot
pxdot + GT6 RX RY RZ S X dot + GT6 RX RY RZ S Y dot + GT6 RX RY RZ S Z dot
pydot + GT6 RX RY RZ S X dot + GT6 RX RY RZ S Y dot + GT6 RX RY RZ S Z dot
pzdot + GT6 RX RY RZ S X dot + GT6 RX RY RZ S Y dot + GT6 RX RY RZ S Z dot
Bingul.nb 11

Para conocer la velocidad de una pierna tenemos que conocer la forma de cada una de sus
componentes:

Cos[b] 0 Sin[b]
RY = 0 1 0 ;
- Sin[b] 0 Cos[b]
0 0 0
SX = 0 0 -1 ;
0 1 0
Cos[a] - Sin[a] 0 1 0 0
RX = Sin[a] Cos[a] 0 ; RZ = 0 Cos[g] - Sin[g] ;
0 0 1 0 Sin[g] Cos[g]
rp * Cos[]
Gt1 = rp * Sin[] ;
0
0 0 1
SY = 0 0 0 ;
-1 0 0
0 -1 0
SZ = 1 0 0 ;
0 0 0

Entonces para la pierna 1 por ejemplo tenemos que la forma de Vt1 , primero la forma de la matriz
Jacobiana
Join[J2a1, RY.SX.RX.RZ.Gt1, SY.RY.RX.RZ.Gt1, RY.RX.SZ.Gt1, 2] // MatrixForm
1 0 0 rp Cos[] Sin[a] Sin[b] + rp Cos[a] Cos[g] Sin[b] Sin[] - rp Cos[a] Cos[] Sin[b]
0 1 0 - rp Sin[g] Sin[]
0 0 1 rp Cos[b] Cos[] Sin[a] + rp Cos[a] Cos[b] Cos[g] Sin[] - rp Cos[a] Cos[b] Cos[]

Ahora la forma de la velocidad Vt1

Vt1 = J2AA1.Xdot;

Vt1 // MatrixForm
Pxdot + dot - rp Cos[b] Cos[] Sin[a] - rp Cos[a] Cos[b] Sin[] + dot rp Cos[] Sin[a] Sin
Pydot - rp dot Sin[
Pzdot + dot rp Cos[b] Cos[] Sin[a] + rp Cos[a] Cos[b] Cos[g] Sin[] + dot rp Cos[] Sin
12 Bingul.nb


Ahora par poder obtener la velocidad de cada pierna necesitamos una segunda matriz Jacobiana

u1 = ({{ux}, {uy}, {uz}}); u1T = ({{ux, uy, uz}});

u1.u1T

{{ux ^ 2, ux uy, ux uz}, {ux uy, uy ^ 2, uy uz}, {ux uz, uy uz, uz ^ 2}}

JIA = {{ux1, uy1, uz1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},


{0, 0, 0, ux2, uy2, uz2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, ux3, uy3, uz3, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, ux4, uy4, uz4, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ux5, uy5, uz5, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ux6, uy6, uz6}} // MatrixForm
ux , ux uy, ux uz, ux uy, uy2 , uy uz, ux uz, uy uz, uz2
2

ux2 , ux uy, ux uz, ux uy, uy2 , uy uz, ux uz, uy uz, uz2

ux1 uy1 uz1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


0 0 0 ux2 uy2 uz2 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 ux3 uy3 uz3 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 ux4 uy4 uz4 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 ux5 uy5 uz5 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ux6 uy6 uz6

MatrixForm[u1]

(-Conjugate[bz1]+Conjugate[Pz-rp Cos[] Sin[b]+rp Cos[b] Sin[g] Sin[]]) (-bz1+Pz-rp Cos[] Sin[b]+rp Cos[b] Sin[g] Sin

(-Conjugate[bz1]+Conjugate[Pz-rp Cos[] Sin[b]+rp Cos[b] Sin[g] Sin[]]) (-bz1+Pz-rp Cos[] Sin[b]+rp Cos[b] Sin[g] Sin

(-Conjugate[bz1]+Conjugate[Pz-rp Cos[] Sin[b]+rp Cos[b] Sin[g] Sin[]]) (-bz1+Pz-rp Cos[] Sin[b]+rp Cos[b] Sin[g] Sin

También podría gustarte