Mathematics">
Laboratorio 9
Laboratorio 9
Laboratorio 9
“LABORATORIO DE ROBOTICA I”
NOMBRES Y APELLIDOS:
Alviz Aragon, Emmanuel
Diaz Reinoso, Pamela Stefanny
Ponce Orellana, David Jonathan
Semestre IX
2015
Tema: MODELO DINÁMICO – Algoritmos Computacionales
I. OBJETIVO
Introducción
La dinámica del robot relaciona el movimiento del robot y las fuerzas implicadas en el mismo. El
modelo dinámico establece relaciones matemáticas entre las coordenadas articulares (o las
coordenadas del extremo del robot), sus derivadas (velocidad y aceleración), las fuerzas y pares
aplicados en las articulaciones (o en el extremo) y los parámetros del robot (masas de los
eslabones, inercias, etc).
Siguiendo con la filosofía de este libro, se recomienda al lector que quiera profundizar sobre la
dinámica de robots, la lectura de los textos donde se estudian varias formulaciones clásicas como
Lagrange-Euler o las ecuaciones generalizadas de D’Alembert. Hay que tener en cuenta que las
ecuaciones de movimiento obtenidas con estas formulaciones son equivalentes en el sentido que
describen la conducta dinámica del robot, sin embargo, cada una de ellas presenta características
diferentes que la hacen más apropiada para ciertas tareas. Por ejemplo, la formulación de
Lagrange-Euler presenta un modelo simple y elegante, dando como resultado una serie de
ecuaciones diferenciales no lineales de 2º orden acopladas útiles para el estudio de estrategias de
control en el espacio de estados de las variables articulares del robot, pero que se presentan
ineficaces para aplicaciones en tiempo real dado el elevado tiempo de computación que requieren
las operaciones con matrices de transformación homogénea.
Los modelos dinámicos que se estudian en esta práctica están basados en el algoritmo recursivo
de Newton-Euler (N-E) desarrollado por Luh . Aunque las formulaciones recursivas destruyen la
estructura del modelo dinámico analítico y dan lugar a la falta de ecuaciones cerradas necesarias
para el análisis del control, la dificultad de un análisis clásico es enorme debido a que se obtienen
expresiones fuertemente no-lineales que constan de cargas inerciales, fuerzas de acoplo entre las
articulaciones y efectos de las cargas de gravedad, con la dificultad añadida de que los
pares/fuerzas dinámicos dependen de los parámetros físicos del manipulador, de la configuración
instantánea de las articulaciones, de la velocidad, de la aceleración y de la carga que soporta el
robot. Aunque las ecuaciones del movimiento son equivalentes ya sean analíticas o recursivas, los
diferentes planteamientos dependen de los objetivos que se quieran conseguir con ellos. En
algunos casos es necesario solucionar el problema dinámico de un robot para lograr tiempos de
1
calculo rápidos en la evaluación de los pares y fuerzas articulares para controlar el manipulador, y
en otros casos son necesarios planteamientos para facilitar el análisis y la síntesis del control.
La formulación de Newton-Euler
IV. PROCEDIMIENTO
IV.1. Obtener las ecuaciones del movimiento del robot de la figura, considerando que la masa de
cada uno de los enlaces se concentra en su centro de masas. Emplear los algoritmos
computacionales de Lagrange y Newton en la solución. Aplicar MATLAB.
Elemento de Masa 1
1 2 1 2 2
Ec = ∗I∗θ̇ = ∗M 1∗L1 ∗θ̇1
2 2
E p =¿ 0
2
L=E c −E p
1
L= ∗M 1∗L1 ∗θ˙1 −0
2 2
2
∂L
=0
∂θ
∂L 2
=M 1 ¿ L1 ∗θ̇1
∂ θ̇
∂ ∂L 2
=M 1 ¿ L1 ∗θ̈1
∂ t ∂ θ̇
∂ ∂L ∂L
τ= −
∂t ∂ θ̇ ∂ θ
2
τ =M 1 ¿ L1 ∗θ̈1 −0
2
τ =M 1 ¿ L1 ∗θ̈1
Elemento de Masa 2
1 2 1
Ec = ∗I∗θ̇ = ∗M 2∗d˙2
2
2 2
E p =¿ 0
L=E c −E p
1
L= ∗M 2∗d˙2 −0
2
2
∂L
=0
∂θ
∂L
=M 2∗ḋ 2
∂ ḋ
∂ ∂L
=M 2∗d¨2
∂ t ∂ ḋ
∂ ∂L ∂L
τ= −
∂t ∂ ḋ ∂ θ
τ =M 2∗d¨2−0
τ =M 2∗d¨2
Lagrange
2
τ =M 1 ¿ L1 ∗θ̈1 + M 2∗ d̈2
3
Algoritmo Computacional de Lagrange
clear all, close all, clc
syms t
sq1='sin(2*t)+ pi/2';
sq2='sin(5*t)+t+1';
% Parametros dimensionales
L1=10;
m1=20;
m2=10;
g=9.8;
G=[g 0 0 0];
r11=[0 0 L1 1]';
r22=[0 0 0 1]';
% Matrices de derivacion
Qr=zeros(4);Qr(1,2)=-1;Qr(2,1)=1;
Qd=zeros(4);Qd(3,4)=1;
% Bucle de paso de tiempo
for tk=1:1:50;
t=(tk-1)/10;
% Evaluacion numerica de posicion, velocidad y aceleracion
q1=eval(sq1);Q1(tk)=q1;qd1=eval(sqd1);qdd1=eval(sqdd1);
q2=eval(sq2);Q2(tk)=q2;qd2=eval(sqd2);qdd2=eval(sqdd2);
% PASOS 1 y 2 obtencion de matrices de transformacion Aij
% matrices A00 y A11 son la identidad
A00=eye(4);
A11=eye(4);
% Evalua la matriz A01 y A02
A01=[cos(q1) 0 -sin(q1) 0;sin(q1) 0 cos(q1) 0;0 -1 0 0; 0 0 0 1];
A12=[1 0 0 0;0 1 0 0;0 0 1 q2;0 0 0 1];
4
% PASO 5 Evaluacion Matrices Pseudoinversa 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;
H(1,1)=h111*qd1*qd1+h112*qd1*qd2+h121*qd2*qd1+h122*qd2*qd2;
H(2,1)=h211*qd1*qd1+h212*qd1*qd2+h221*qd2*qd1+h222*qd2*qd2;
C(1,1)=-m1*G*U11*r11-m2*G*U21*r22;
C(2,1)=-m1*G*U12*r11-m2*G*U22*r22;
F2=m2*qdd2-q2*m2*qd1^2+m2*g*sin(q1);
PARES2(1,tk)=T1;
PARES2(2,tk)=F2;
figure(1);clf
subplot(2,2,1),plot(Q1),grid,legend(strcat('Q1:',sq1),0)
subplot(2,2,2),hold,
plot(PARES(1,:)),plot(PARES2(1,:),'rx')
grid,title('PAR Q1 Alg.Lagrange'),hold
5
subplot(2,2,3),plot(Q2),grid,legend(strcat('Q2:',sq2),0)
subplot(2,2,4),hold,
plot(PARES(2,:)),plot(PARES2(2,:),'rx')
grid,title('PAR Q2 Alg.Lagrange'),hold
6
IV.2. Obtener las ecuaciones del movimiento del robot de la figura, considerando que la masa de
cada uno de los enlaces se concentra en su centro de masas. Emplear los algoritmos
computacionales de Lagrange y Newton en la solución. Aplicar MATLAB.
Elemento de Masa 1
x 1=d 1 ¿C 1
y 1=d1 ¿ S 1
7
ẏ 1=d1∗C1∗q̇1
2 2 2
v1 = x˙1 + ẏ 1
v1 =(−d 1 ¿ S 1 ¿ ˙q 1) +( d 1∗C1∗q̇1 )
2 2 2
2
˙1
2
v1 =d 1 ¿ q
2
Elemento de Masa 2
x 2=l 1 ¿ C 1+ d 2 ¿ C 12
y 2=l 1 ¿ S 1+ d 2 ¿ S 12
˙ 1 +d 2∗C 12∗q˙2
ẏ 2=( l 1 ¿ C1 +d 2 ¿ C12 ) ¿ q
2 2 2
v 2 = ẋ1 + ẏ 1
Energia cinetica
1 2 2
EC = ∗(m 1 v 1 +m2 v 2 )
2
1 2 1 2 1
EC = ∗( m1 d 1 +m2∗( l1 +d 2 +2∗d 2 ¿ l 1∗C 2) ) ¿ q˙ 1 + ∗( m 2 d 2 ) ¿ ˙q2 + ∗( m2 ¿ 2∗d 2 ∗( l 1 ¿ C 2+ d 2 ) ) ¿ q˙ 1 ¿ q˙ 2
2 2 2 2 2
2 2 2
Energia Potencial
E p =g∗(m1∗h1 +m2∗h2)
E p =g∗(m1∗y 1 +m2∗y 2 )
L=E c −E p
1 1 1
L= ∗( m1 d 12+ m2∗( l 12 +d 22+ 2∗d 2 ¿ l1∗C2 ) ) ¿ q˙ 12 + ∗( m2 d22 ) ¿ q˙ 22+ ∗( m2 ¿ 2∗d22∗( l 1 ¿ C 2+ d2 ) ) ¿ q˙ 1 ¿ q˙ 2−g∗(m1∗
2 2 2
8
%Reemplazando las matrices en el algoritmo de Lagrange
% Evalua la matriz A01 y A02
A01=[cos(q1) -sin(q1) 0 L1*cos(q1);sin(q1) cos(q1) 0 L1*sin(q1);0 0 1 0;
0 0 0 1];
A12=[cos(-q2) -sin(-q2) 0 L1*cos(-q2);sin(-q2) cos(-q2) 0 L1*sin(-q2);0
0 1 0; 0 0 0 1];
% Evalua la matriz A02=A011*A2
A02=A01*A12;
9
Algoritmo Computacional de Euler
%DefRej5_6 Define los parametros del Robot del Ejercicio
clear L
%Parametros de DH
L(1)=link([-pi/2 0 0 0 0],'standard');
L(2)=link([0 0 0 0 1],'standard');
10
%Rozamiento de Coulomb en la direccion positiva
%y negativa del actuador de cada elemento
L(1)*Tc=[0 0];
L(2)*Tc=[0 0];
q(tk,1)=eval(sq1);qd(tk,1)=eval(sqd1);qdd(tk,1)=eval(sqdd1);
q(tk,2)=eval(sq2);qd(tk,2)=eval(sqd2);qdd(tk,2)=eval(sqdd2);
XY(tk,1)=q(tk,2)*cos(q(tk,1));XY(tk,2)=q(tk,2)*sin(q(tk,1));
end
%Dibuja la trayectoria
figure(1)
subplot(2,2,1),plot(q),title('Posicion'),grid
legend(strcat('Q1:',sq1),strcat('Q2:',sq2),0)
legend boxoff
subplot(2,2,3),plot(qd),title('Velocidad'),grid
subplot(2,2,4),plot(qdd),title('Aceleracion'),grid
subplot(2,2,2),plot(XY(:,1),XY(:,2)),title('XY'),grid
%VERIFICACION
%Parametros dimensionales
L1=10;m1=20;m2=10;g=9.8;
11
q1=q(:,1);qd1=qd(:,1);qdd1=qdd(:,1);
q2=q(:,2);qd2=qd(:,2);qdd2=qdd(:,2);
T1=(m1*L1^2+m2*q2.*q2).*qdd1+2*q2*m2.*qd1.*qd2+m1*g*L1*cos(q1)+m2*g*q2.*c
os(q1);
F2=m2*qdd2-m2*q2.*qd1.*qd1+m2*g*sin(q1);
figure(2)
Tau=rne(Rej5_6,q,qd,qdd,grav);
TauG=GRAVLOAD(Rej5_6,q,grav);
TauC=CORIOLIS(Rej5_6,q,qd);
TauI=ITORQUE(Rej5_6,q,qdd);
subplot(2,4,1),hold
plot(Tau(:,1)),plot(T1,'rx'),title('Par Total Q1 rne'),grid
legend(strcat('Q1:',sq1),'Location','SouthOutside')
legend boxoff, hold
subplot(2,4,5),hold
plot(Tau(:,2)),plot(F2,'rx'),title('Par Total Q2 rne'),grid
legend(strcat('Q2:',sq2),'Location','SouthOutside')
legend boxoff, hold
CONCLUSIONES y OBSERVACIONES
12