function xp = robot_cartesiano3gdl(t,x) d = [x(1); x(2); x(3)]; % Vector de posición articular dp = [x(4); x(5); x(6)]; % vector de velocidad articular %parámetros del robot cartesiano m1=0.7; m2=0.28; m3=0.28; % masas de los servomotores y partes mecánicas b1=0.02; b2=0.08; b3=.02; % coeficientes de fricción viscosa fc1=0.01; fc2=0.07; fc3=.02; % coeficientes de la fricción de Coulomb fe1=0.015; fe2=0.076; fe3=0.022; % coeficientes de la fricción estática g=9.81; % constante de aceleración gravitacional B=[b1, 0, 0; 0, b2,0; 0, 0, b3]; Fc=[fc1, 0, 0; 0, fc2,0; 0, 0, fc3]; % matriz de masas M = [m1+m2+m3, 0, 0; 0 m1+m2, 0; 0 0 m3]; par_grav = g*[m1+m2+m3; 0;0]; %vector de par de gravitacional %fricción estática fe=[ fe1*(1-abs(sign(dp(1)))); fe2*(1-abs(sign(dp(2)))); fe3*(1-abs(sign(dp(3))))]; fr= B*dp+Fc*sign(dp)+fe; tau=[ g*(m1+m2+m3)+ 0.05*sin(t); (1-exp(-0.5*t))*0.13*sin(t);0.06*sin(t)]; % Vector de aceleración articular dpp = inv(M)*(tau- par_grav-fr); % Vector de salida xp = [dp(1); dp(2); dp(3); dpp(1); dpp(2); dpp(3)]; end