Advertisement
Pi0trek

Matlab Lab3

Dec 19th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. syms dteta1 teta1 real
  2.  
  3. hat=@(x)([0 -x(3) x(2) x(4);...
  4. x(3) 0 -x(1) x(5);...
  5. -x(2) x(1) 0 x(6);...
  6. 0 0 0 0 ]);
  7. u1=[0 0 0]';
  8. w1=[1 0 0]';
  9. p10=[0 0 2 1]';
  10.  
  11.  
  12. s1=[w1; -cross(w1, u1)];
  13.  
  14.  
  15. A1=expm(hat(s1)*teta1);
  16.  
  17. p1=A1*p10;
  18.  
  19.  
  20. g = A1;
  21. dg = hat(s1) * dteta1 * A1;
  22. vb = inv(g)*dg;
  23. vb = [vb(3,2) ; vb(1,3) ; vb(2,1); vb(1,4) ; vb(2,4) ; vb(3,4)];
  24. vb = simplify(vb);
  25.  
  26.  
  27. m = 1;
  28. J = [ 0.33 0 0;...
  29. 0 0.33 0;...
  30. 0 0 0];
  31.  
  32. M = [J zeros(3);...
  33. zeros(3) m*eye(3)];
  34. T = 0.5 * vb' * M * vb;
  35. p1 = A1 * p10;
  36. V = m * 9.81 * p1(3)
  37. V = simplify(V);
  38.  
  39.  
  40. ///////////////////////////////////////////////////////////////////////////////
  41. function symwa
  42. [t,x]=ode45(@robot1, 0:0.1:10, [pi/3 0])
  43. for i=1:length(t)
  44.  
  45. hat=@(x)([0 -x(3) x(2) x(4);...
  46. x(3) 0 -x(1) x(5);...
  47. -x(2) x(1) 0 x(6);...
  48. 0 0 0 0 ]);
  49.  
  50. u1=[0 0 0]';
  51. w1=[1 0 0]';
  52. p10=[0 0 2 1]';
  53.  
  54. s1=[w1; -cross(w1, u1)];
  55. A1=expm(hat(s1)*x(i,1));
  56. p1 = A1 * p10;
  57. punkty = [ [0;0;0;1] p1 ]
  58. plot3( punkty(1,:), punkty(2,:), punkty(3,:) )
  59. axis([-1 1 -1 1 -1 1])
  60.  
  61. pause(0.1)
  62. end
  63.  
  64. function dx = robot1(t, x)
  65.  
  66. theta1 = x(1)
  67. dtheta1 = x(2)
  68.  
  69.  
  70. D = 33/100;
  71. C = 0;
  72. G = -9.81 * sin(theta1)
  73. dx = [x(2) ;...
  74. inv(D) * (-C*x(2)-G-0.5*x(2))];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement