Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. % Euler simulering av falldata
  2. % modell 1 utan luftmotstånd
  3. % modell 2 linjärt-
  4. % modell 3 kvadratiskt luftmotstånd.
  5. %--------------------------------------------------------
  6. clear
  7. clf
  8. % Experimentella data
  9. % data är tiden (t) i s för olika fallsträckor (y) i m [t,y]
  10. % OBS ta alltid med punkten 0,0
  11. %
  12. data=[
  13. 0.000 0.000 % 0,0 adderas manuellt - en bra punkt!!
  14. 0.154 0.100
  15. 0.187 0.150
  16. 0.215 0.200
  17. 0.241 0.250
  18. 0.263 0.300
  19. 0.304 0.400
  20. 0.340 0.500
  21. 0.374 0.600
  22. 0.403 0.700
  23. 0.432 0.800
  24. 0.459 0.900
  25. 0.486 1.000
  26. 0.547 1.250
  27. 0.605 1.500
  28. 0.660 1.750
  29. 0.710 2.000
  30. 0.813 2.500
  31. 0.906 3.000
  32. 0.992 3.500
  33. 1.078 4.000
  34. 1.244 5.000
  35. 1.406 6.000
  36. 1.573 7.000
  37. 1.727 8.000
  38. 1.889 9.000];
  39. %
  40. y=data(:,2);
  41. t=data(:,1);
  42. [N,dum]=size(t);
  43. %
  44. figure(1)
  45. % Data punkter ska ALLTID ritas som "+" (helst med felstaplar men det gör vi inte här)
  46. plot(t,y,'+')
  47. axis([-.1 2 -.2 10])
  48.  
  49. % Axlarna ska ALLTID betecknas med "Storhetsbeteckning / enhet" där Storhetsbeteckning ska vara kursiv (\it)
  50. % Kommandot \rm återställer till icke kursiv
  51. xlabel('\itt\rm / s')
  52. ylabel('\ity\rm / m')
  53. title('Fallsträckan som funktion av tiden')
  54.  
  55. % 3 momentanhastighet 2.
  56. hold on
  57. polyf = polyfit(t,y,4);
  58. xx = linspace(0,20, 1000);
  59. val = polyval(polyf, xx);
  60. plot(xx, val);
  61. maxhast2 = (polyval(polyf,1.727) - polyval(polyf,1.573))/(1.727-1.573);
  62. polyderiv = polyder(polyf);
  63. val2 = polyval(polyderiv, xx);
  64. plot(xx, val2);
  65.  
  66.  
  67. %
  68. %
  69. % fortsättning följer.....
  70. %
  71. deriv1 = zeros(26,1);
  72. deriv2 = zeros(25,1);
  73. n = 1;
  74. while n < 26
  75. deriv1(n,1) = (y(n+1)-y(n))/(t(n+1)-t(n))
  76. n = n + 1;
  77.  
  78. end
  79.  
  80. k = 1;
  81. while k < 25
  82. deriv2(k,1) = deriv1(k+1)-deriv1(k)
  83. k = k + 1;
  84. end
  85. deriv1
  86. deriv2
  87. t1 = t(1:end-1)
  88. %plot (t, deriv1, '-')
  89. vmax = 6.17024;
  90. vmax2 = 6.2
  91. % Accelerationen skall gå ner till 0!
  92. b = 9.82/6.2
  93. B = 0.005*9.82
  94.  
  95. %% euler
  96. t = 0;
  97. dt = 0.01;
  98. v1 = 0;
  99. v0 = 0;
  100. x0 = 0;
  101. x = 0;
  102. x1 = 0;
  103. g = 9.82;
  104. tt = 1;
  105.  
  106. dist = zeros(200,1);
  107. hast = zeros(200,1);
  108. acc = zeros(200,1);
  109.  
  110. while t<2
  111. x1 = x0 + v0*dt;
  112. v1 = v0 + g.*dt;
  113. hast(tt) = v1;
  114. dist(tt) = x1;
  115. acc(tt) = g;
  116. x0 = x1;
  117. v0 = v1;
  118. t = t + dt;
  119. tt = tt + 1;
  120. end
  121. X = linspace(0,2,200);
  122.  
  123. plot(X,dist, 'g-');
  124. hold on
  125.  
  126.  
  127. %% euler 2 v2
  128. t = 0;
  129. dt = 0.01;
  130. v1 = 0;
  131. v0 = 0;
  132. x0 = 0;
  133. x = 0;
  134. x1 = 0;
  135. g = 9.82;
  136. a = g;
  137.  
  138. tt = 1;
  139.  
  140. dist = zeros(200,1);
  141. hast = zeros(200,1);
  142. acc = zeros(200,1);
  143.  
  144. while t<2
  145. x1 = x0 + v0*dt;
  146. v1 = v0 + a*dt;
  147. a = g - g*v1/(6.2);
  148. hast(tt) = v1;
  149. dist(tt) = x1;
  150. acc(tt) = a;
  151.  
  152. x0 = x1;
  153. v0 = v1;
  154. t = t + dt;
  155. tt = tt + 1;
  156. end
  157. X = linspace(0,2,200);
  158.  
  159. plot(X,dist, 'r-');
  160. hold on
  161.  
  162. %% euler 3 v1
  163. t = 0;
  164. dt = 0.01;
  165. v1 = 0;
  166. v0 = 0;
  167. x0 = 0;
  168. x = 0;
  169. x1 = 0;
  170. g = 9.82;
  171. a = g;
  172.  
  173. tt = 1;
  174.  
  175. dist = zeros(200,1);
  176. hast = zeros(200,1);
  177. acc = zeros(200,1);
  178.  
  179. while t<2
  180. x1 = x0 + v0*dt;
  181. v1 = v0 + a*dt;
  182. a = g - g*v1^2;
  183. hast(tt) = v1;
  184. dist(tt) = x1;
  185. acc(tt) = a;
  186.  
  187. x0 = x1;
  188. v0 = v1;
  189. t = t + dt;
  190. tt = tt + 1;
  191. end
  192. X = linspace(0,2,200);
  193.  
  194. plot(X,dist, 'b-');
  195. hold on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement