Академический Документы
Профессиональный Документы
Культура Документы
María
Facultad de Ciencias e Ingenierías Físicas y
Formales
Profesor:
Ing. Juan Carlos Cuadros
Tema:
Examen de Tercera Fase
Alumnos:
Valencia Nieto, Jonathan Melvin
Zárate Cáceres, Mario Eduardo
Fecha de Presentación:
09/07
Arequipa –2012
1
Y las masas totales m1 y m2. Como se muestra en la figura, el centro de masas del vínculo 1 se
encuentra una distancia L1 del eje de la articulación 1, el centro de masas del vínculo 2 se
encuentra a una distancia variable d2 del eje de la articulación 1. Use dinámica Lagrangiana
(Algoritmo) para determinar el modelo dinámico inverso y las ecuaciones de movimiento del
manipulador. Compruebe los resultados obtenidos empleando el algoritmo recursivo de Newton-
Euler.
Además se observa que es constante y el que varia es el , asi que para fines de análisis solo
consideraremos el , que representara el movimiento de ambos, como ya se ha explicado.
Así se tiene:
2
Las expresiones de Newton-Euler:
Se tiene:
Remplazando:
En forma matricial:
Formulación de Lagrange:
Posiciones:
3
Velocidades:
Energía cinética:
Energía Potencial:
Lagrange:
Derivadas respecto a :
Derivadas respecto a :
Formula de Lagrange
4
Expresado matricialmente:
Articulación
1 0 0
2 0 0 0
Inercias:
5
st1='sin(3*t)*t+pi/3'; %Entrada de q1.
sd2='cos(5*t)+t+4'; %Entrada de d2.
% Parámetros dimensionales
L1=5;
m1=8;
m2=3;
g=9.81;
6
Matrices Pseudoinversas:
Como nuestro plano esta en 2-D, solo tendremos inercias en .
Como se puede ver, el error en ambos métodos es mínimo, obteniéndose una muy buena
aproximación.
Problema 2
7
2. Derive el modelo dinámico inverso y las ecuaciones de movimiento para el manipulador PR de la
figura siguiente. Ignore la fricción pero incluya la gravedad. Los tensores de inercia de los vínculos
son diagonales, con los momentos Ixx1, Iyy1, Izz1 y Ixx2, Iyy2, Izz2.
Use dinámica lagrangiana (Algoritmo) para determinar el modelo dinámico inverso y las
ecuaciones de movimiento del manipulador. Compruebe los resultados obtenidos empleando el
algoritmo recursivo de Newton-Euler.
Formulación de Lagrange
8
Como se ve en el grafico el valor de , por tanto su velocidad es la misma:
Energía Cinética
Energía potencial
Formula de Lagrange
Derivadas respecto a :
9
Derivadas respecto a :
Derivadas respecto a :
Derivadas respecto a :
Finalmente se tiene:
Como se observa, el centro de gravedad del objeto 2 esta en el origen, por lo que es igual a 0,
anulándose el Torque y solo quedándonos una Fuerza:
10
Método de Newton-Euler:
Como se sabe, el centro de gravedad del objeto 2 esta en el origen, por lo que es igual a 0,
haciendo el Torque 1 “0” y solo habiendo una Fuerza.
11
Utilizando métodos Computacionales basados en DH
Articulación
1 0 0
2 0
Inercias:
12
Las matrices de Rotación son:
13
r11=[0 0 -l1 1]';
r22=[0 0 0 1]';
Matrices Pseudoinversas:
Como nuestro plano esta en 2-D, solo tendremos inercias en .
En este caso, no existe error en ninguno de los métodos, con lo cual comprobamos que nuestra
resolución es correcta.
14
Anexos, Programas en MatLab
Problema 1
[1.1] Método de Newton Euler
clc,clear all
% Algoritmo de Newton Euler
% Para la solución del modelo dinámico inverso de un robot
%----------------------------------------------------------
% Robot cilíndrico 2 GDL (RD) (Rotacion y desplazamiento)
% Problema 1
% Numero de puntos de la trayectoria
n=50;
% Definición de la trayectoria
%------------------------------
% Definición simbólica de la posición
st1='sin(3*t)*t+pi/3';
sd2='cos(5*t)+t+4';
% Parámetros dimensionales
L1=5;
m1=8;
m2=3;
g=9.81;
%Parametros iniciales
w0=[0 0 0]';
dw0=[0 0 0]';
v0=[0 0 0]';
dv0=-[0 -g 0]';%Gravedad en -y
z0=[0 0 1]';
15
% y trayectoria del TCP
%--------------------------------------------------------
t1=eval(st1);
vt1=eval(svt1);
at1=eval(sat1);
d2=eval(sd2);
vd2=eval(svd2);
ad2=eval(sad2);
q(tk,1)=t1;
qd(tk,1)=vt1;
qdd(tk,1)=at1;
q(tk,2)=d2;
qd(tk,2)=vd2;
qdd(tk,2)=ad2;
XY(tk,1)=L1*cos(t1)+d2*cos(t1);
XY(tk,2)=L1*sin(t1)+d2*sin(t1);
%PASO 3
%----------------------------------------------
R01=[cos(t1) 0 -sin(t1);sin(t1) 0 cos(t1); 0 -1 0];
R12=[1 0 0;0 1 0; 0 0 1];
%PASO 4
%----------------------------------------------
w1=R01'*(w0+z0*vt1);%Rotacion
w2=R12'*w1;%Traslacion
%PASO 5
%----------------------------------------------
dw1=R01'*(dw0+z0*at1)+cross(w0,z0*vt1);%Rotacion
dw2=R12'*dw1;%Traslacion
%PASO 6
%----------------------------------------------
dv1=cross(dw1,p1)+cross(w1,cross(w1,p1))+R01'*dv0;%Rotacion
dv2=R12'*(z0*ad2+dv1)+cross(w2,p2)+cross(2*w2,R12*z0*vd2)+cross(w2,cross(
w2,p2));%Traslacion
%PASO 7
16
%----------------------------------------------
a1=cross(dw1,s1)+cross(w1,cross(w1,s1))+dv1;
a2=cross(dw2,s2)+cross(w2,cross(w2,s2))+dv2;
%PASO 8
%----------------------------------------------
f2=R23*f3+m2*a2;
f1=R12*f2+m1*a1;
%PASO 9
%----------------------------------------------
n2=R23*(n3+cross((R23'*p2),f3))+cross((p2+s2),m2*a2)+I2*dw2+cross(w2,
(I2*w2));
n1=R12*(n2+cross((R12'*p1),f2))+cross((p1+s1),m1*a1)+I1*dw1+cross(w1,
(I1*w1));
%PASO 10
%----------------------------------------------
P1=n1'*R01'*z0;
P2=f2'*R12'*z0;
PARES(tk,1)=P1;
PARES(tk,2)=P2;
17
sd2='cos(5*t)+t+4';
18
U122=zeros(4);
U211=A00*Qr*A00*Qr*A02;
U212=A00*Qr*A01*Qd*A12;
U221=A00*Qr*A01*Qd*A12;
U222=A01*Qd*A11*Qd*A12;
% PASO 5 Evaluación matrices de pseudoinercia Ji
%-----------------------------------------------
J1=zeros(4);
J1(3,3)=l1^2*m1;
J1(3,4)=-l1*m1;
J1(4,3)=-l1*m1;
J1(4,4)=m1;
J2=zeros(4);
J2(4,4)=m2;
% PASO 6 Evaluación de la matriz de Inercias D
%----------------------------------------------
D(1,1)=trace(U11*J1*U11')+trace(U21*J2*U21');
D(1,2)=trace(U22*J2*U21');
D(2,1)=D(1,2);
D(2,2)=trace(U22*J2*U22');
% PASO 7-8 Evaluación de la matriz de Coriolis H
%------------------------------------------------
h111=trace(U111*J1*U11')+trace(U211*J2*U21');
h112=trace(U212*J2*U21');
h121=trace(U221*J2*U21');
h122=trace(U222*J2*U21');
h211=trace(U211*J2*U22');
h212=trace(U212*J2*U22');
h221=trace(U221*J2*U22');
h222=trace(U222*J2*U22');
H(1,1)=h111*vt1*vt1 + h112*vt1*vd2 + h121*vd2*vt1 + h122*vd2*vd2;
H(2,1)=h211*vt1*vt1 + h212*vt1*vd2 + h221*vd2*vt1 + h222*vd2*vd2;
% PASO 9 Evaluación de la matriz de Gravedad C
%----------------------------------------------
C(1,1)=-m1*G*U11*r11-m2*G*U21*r22;
C(2,1)=-m1*G*U12*r11-m2*G*U22*r22;
% PASO 10 Evaluación de los pares
%----------------------------------
pares(:,tk)=D*[at1 ad2]'+H+C;
%end
%findelalgoritmo
%---------------
%Verificacion del resultado
T1=(m1*l1^2+m2*d2^2)*at1+2*d2*m2*vt1*vd2;
T1=T1+g*(m1*l1*cos(t1)+m2*d2*cos(t1));
F2=m2*ad2-d2*m2*vt1^2+m2*g*sin(t1);
pares2(1,tk)=T1;
pares2(2,tk)=F2;
end
% fin del bucle de paso de tiempo
% Presentación Gráfica de los resultados
figure(2);clf
subplot(2,2,1),plot(Q1),title('Q1'),grid,legend(strcat('Q1:',st1),0)
subplot(2,2,2),hold on,
plot(pares(1,:)),plot(pares2(1,:),'rx')
grid,title('PAR Q1 Alg. Lagrange'),hold
19
subplot(2,2,3),plot(Q2),title('Q2'),grid,legend(strcat('Q2:',sd2),0)
subplot(2,2,4),hold
plot(pares(2,:)),plot(pares2(2,:),'rx')
grid,title(' Fuerza Q2 Alg.Lagrange'),hold
Problema 2
[2.1] Método de Newton Euler
clc,clear all
% Algoritmo de Newton Euler
% Para la solución del modelo dinámico inverso de un robot
%----------------------------------------------------------
% Robot cilíndrico 2 GDL (DR) (Desplazamiento y Rotacion)
% Problema 2
% Numero de puntos de la trayectoria
n=50;
% Definición de la trayectoria
%------------------------------
% Definición simbólica de la posición
sd1='sin(3*t)+t+2';
st2='cos(t)*t+pi/6';
% Parámetros dimensionales
L1=10;
L2=5;
m1=20;
m2=10;
g=9.81;
%Parametros iniciales
w0=[0 0 0]';
dw0=[0 0 0]';
v0=[0 0 0]';
dv0=-[-g 0 0]';%Gravedad en -x
z0=[0 0 1]';
20
% Evaluación numérica de posición, velocidad y aceleración
% y trayectoria del TCP
%--------------------------------------------------------
d1=eval(sd1);
vd1=eval(svd1);
ad1=eval(sad1);
t2=eval(st2);
vt2=eval(svt2);
at2=eval(sat2);
q(tk,1)=d1;
qd(tk,1)=vd1;
qdd(tk,1)=ad1;
q(tk,2)=t2;
qd(tk,2)=vt2;
qdd(tk,2)=at2;
XY(tk,1)=L1 + d1 +L2*cos(t2);
XY(tk,2)=L2*sin(t2);
%PASO 3
%----------------------------------------------
R01=[1 0 0;0 0 1; 0 -1 0];
R12=[sin(t2) cos(t2) 0;-cos(t2) sin(t2) 0; 0 0 1];
%PASO 4
%----------------------------------------------
w1=R01'*w0;%Traslacion
w2=R12'*(w1+z0*vt2);%Rotacion
%PASO 5
%----------------------------------------------
dw1=R01'*dw0;%Traslacion
dw2=R12'*(dw1+z0*at2)+cross(w1,z0*vt2);%Rotacion
%PASO 6
%----------------------------------------------
dv1=R01'*(z0*ad1+dv0)+cross(w1,p1)+cross(2*w1,R12*z0*vd1)+cross(w1,cross(
w1,p1));%Traslacion
dv2=cross(dw2,p2)+cross(w2,cross(w2,p2))+R12'*dv1;%Rotacion
21
%PASO 7
%----------------------------------------------
a1=cross(dw1,s1)+cross(w1,cross(w1,s1))+dv1;
a2=cross(dw2,s2)+cross(w2,cross(w2,s2))+dv2;
%PASO 8
%----------------------------------------------
f2=R23*f3+m2*a2;
f1=R12*f2+m1*a1;
%PASO 9
%----------------------------------------------
n2=R23*(n3+cross((R23'*p2),f3))+cross((p2+s2),m2*a2)+I2*dw2+cross(w2,
(I2*w2));
n1=R12*(n2+cross((R12'*p1),f2))+cross((p1+s1),m1*a1)+I1*dw1+cross(w1,
(I1*w1));
%PASO 10
%----------------------------------------------
P1=f1'*R01'*z0;
P2=n2'*R12'*z0;
PARES(tk,1)=P1;
PARES(tk,2)=P2;
22
sd1='sin(3*t)+t+2';
st2='cos(t)*t+pi/6';
23
U122=zeros(4);
U211=A00*Qd*A00*Qd*A02;
U212=A00*Qd*A01*Qr*A12;
U221=A00*Qr*A01*Qd*A12;
U222=A01*Qr*A11*Qr*A12;
24
subplot(2,2,3),plot(Q2),grid,legend(strcat('Q2:',st2),0)
subplot(2,2,4),hold
plot(pares(2,:)),plot(pares2(2,:),'rx')
grid,title(' PAR Q2 Alg.Lagrange'),hold
25