Advertisement
Guest User

RobotArm

a guest
Apr 5th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 1.75 KB | None | 0 0
  1. using PyPlot
  2. R=1
  3. PlotSteps = 52
  4. ModVal = (PlotSteps - 2)*20
  5.  
  6. a1x(g) = R*cos(g[1])
  7. a2x(g) = R*cos(g[2])
  8. a1y(g) = R*sin(g[1])
  9. a2y(g) = R*sin(g[2])
  10.  
  11. a1xD(g) = -R*sin(g[1])
  12. a2xD(g) = -R*sin(g[2])
  13. a1yD(g) = R*cos(g[1])
  14. a2yD(g) = R*cos(g[2])
  15.  
  16.  
  17. ax(g) = a1x(g) + a2x(g)
  18. ay(g) = a1y(g) + a2y(g)
  19.  
  20. Fskj=[1.3;1.3]
  21. J(g) = [a1xD(g) a1yD(g); a2xD(g) a2yD(g)]
  22. Fv(g) = [ax(g); ay(g)] - Fskj
  23.  
  24. guess=[pi/3;pi/5]
  25. for i in 1:50
  26.     guess = guess - inv(J(guess))\Fv(guess)
  27. end
  28.  
  29. println(guess)
  30. println(Fv(guess) + Fskj)
  31.  
  32. plot([1.3], [1.3], "o")
  33.  
  34. function euler_method(func, range, y, y1, y2, h)
  35.     angel_array = zeros(PlotSteps)
  36.     aI, c = 1, 1
  37.     for t in range
  38.         if c%ModVal == 1
  39.             angel_array[aI] = y
  40.             aI+=1
  41.         end
  42.  
  43.         tmp1, tmp2, tmp3 = func(y1, y2, y, t), y2, y1
  44.  
  45.         y2 +=  h * tmp1
  46.         y1 += h * tmp2
  47.         y = tmp3
  48.        
  49.         c+=1
  50.     end
  51.  
  52.     angel_array[aI] = y
  53.     return y, angel_array
  54. end
  55.        
  56.  
  57. Ny(y1, y2, theta, t) = -2 * (y1 - theta)-1*y2+ 0.3*sin(2*pi*t)
  58.  
  59. h = 0.001
  60. range = 0:h:50
  61.  
  62.  
  63. E1y = guess[1]
  64. E1y1 = pi/4
  65. E1y2 = 0
  66.  
  67. E2y = guess[2]
  68. E2y1 = 0
  69. E2y2 = 0
  70.  
  71. a1finish, a1move = euler_method(Ny, range, E1y, E1y1, E1y2, h)
  72. a2finish, a2move = euler_method(Ny, range, E2y, E2y1, E2y2, h)
  73. answer = [a1finish ,a2finish]
  74.  
  75. Tf(a) = Fv(a) + Fskj
  76.  
  77. finish_point = Tf(answer)
  78. println(finish_point)  
  79.  
  80. plot(finish_point[1], finish_point[2], "o")
  81. pause(10)
  82.  
  83. xaxis = zeros(PlotSteps)
  84. yaxis = zeros(PlotSteps)
  85.  
  86. for i in 1:PlotSteps
  87.     angles = [a1move[i], a2move[i]]
  88.     point = Tf(angles)
  89.    
  90.     plot1x = [0, a1x(angles)]
  91.     plot1y = [0, a1y(angles)]
  92.     plot2x = [a1x(angles), ax(angles)]
  93.     plot2y = [a1y(angles), ay(angles)]
  94.  
  95.     plot(plot1x, plot1y)
  96.     plot(plot2x, plot2y)
  97.     pause(0.1)
  98.  
  99.     xaxis[i] = point[1]
  100.     yaxis[i] = point[2]
  101. end
  102.  
  103. plot(xaxis, yaxis)
  104. pause(20)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement