Vous êtes sur la page 1sur 1

function xp = cap5_robot2gdl(t,x)

q=[x(1);x(2)]; %vector de posici�n articualar

%vector de velocidad articular


qp=[x(3);x(4)];

%Modelo din�mico del robot


%Matriz de inercia
M = [3.117+0.2*cos(q(2)) 0.108+0.1*cos(q(2));
0.108+0.1*cos(q(2)) 0.108];

%Matriz de fuerzas centripetas y de coreolis


C = [-0.2*sin(q(2))*qp(2) -0.1*sin(q(2))*qp(2);
0.1*sin(q(2))*qp(1) 0.0];

%Vector de pares gravitacionales


par_grav = [39.3*sin(q(1))+1.95*sin(q(1)+q(2));
1.95*sin(q(1)+q(2))];

%vector de pares de fricci�n viscosa

fr = [1.86*qp(1)+1.93*signo(qp(1));
0.16*qp(2)+0.3*signo(qp(2))];
tau=[(1-exp(-0.8*t))*32.0+56*sin(16*t+0.1)+12*sin(20*t+0.15);
(1-exp(-1.8*t))*1.2+8*sin(26*t+0.08)+2*sin(12*t+0.34)];

%din�mica de motor
ra=2.46;
ka=0.0859;
bm=0.00003819;
kv=0.0859436;
j=0.0000094;
r1=30;
r2=10;

B=[(bm+((ka*kv)/ra)) 0;0 (bm+((ka*kv)/ra))];


J=[j 0; 0 j];
R=[(1/r1^2) 0; 0 (1/r2^2)];
K=[(ka/(ra*r1)) 0; 0 (ka/(ra*r2))];
v=[12;8];
Ri=inv(R);
Mp= M + Ri*J;

%vector de aceleraci�n articular


%q2p = inv(M)*(tau-C*qp-par_grav-fr);

q2p = inv(Mp)*(Ri*K*v - Ri*B*qp - C*qp - par_grav - fr);

%vector de salida
xp = [qp(1);qp(2);q2p(1);q2p(2)];

end

Vous aimerez peut-être aussi