function [qtilde tau] = cap8_TANHrobot2gdl(x,xp) q1=x(1); q2=x(2); q = [q1; q2]; %posiciones qp1=xp(1); qp2=xp(2); qp = [qp1; qp2]; %velocidades %parámetros del robot: par gravitacional m1=23.902; lc1=0.091; l1=0.45; m2=3.880; lc2=0.048; g=9.81; theta4=g*(lc1*m1+m2*l1); theta5=g*m2*lc2; %par gravitacional par_grav = [theta4*sin(q1)+theta5*sin(q1+q2); g*m2*lc2]; %ganancia proporcional kp1=10; kp2=2; Kp=[kp1, 0; 0, kp2]; %ganancia derivativa kv1=8; kv2=1; Kv=[kv1, 0; 0, kv2]; %referencias qd1=45; qd2=90; qd=[qd1; qd2]; qtilde=pi/180*qd-q; %error de posición en grados qtgrados=(180/pi)*qtilde; %velocidad en grados/segundo qpgrados=180*qp/pi; tau=Kp*tanh(qtgrados)-Kv*tanh(qpgrados)+par_grav; end