[关闭]
@zhongwei1234 2017-10-20T16:26:16.000000Z 字数 2582 阅读 54

计算物理第五次作业 钟伟 2015301020164

《计算物理》第二章第四节T2.20


一. 课题
Calculate the effect of the knuckleball force on a batted ball. Assume that the ball is a line drive hit at an initial speed of 90 mph and an angle of and that the ball does not spin at all. Let the rough side of the ball always face one side , which is perpendicular to the direction the ball is hit, and use Figuer 2.11 to estimate the magnitude of the lateral force. With all of these assumptions, calculate the lateral deflection of the ball.
Such ball hit with very little spin are observed by outfielders to effectively "flutter" from side to side as they move through the air.


二.实验目的

1.计算出棒球击出后的轨迹,并算出横向偏移量
2.搞清棒球产生这种现象的原因


三.分析过程

棒球的构造如下图
fc73abb21fd7e1c8-e264c3ef1a7e0938-7fe243b03facb7ff7b9e38a8da56fac6.jpg

我们可以将缝球线看成占据球体四个相间隔的八分之一角的粗糙面,这四个粗糙面间的面是由皮革构成的光滑面(和粗糙面一样,每个面占四分之一)

依题目所示,我们击出的棒球八分之一粗糙面和相邻的八分之一光滑面顶着空气运动,球没有旋转。这样迎面的面一半受较大阻力(光滑面),一半受较小阻力(粗糙面) 这可以由下图看出,在90mph下两者阻力差别很大。这样一个水平力指向粗糙面,使球前进中向左或又偏转偏转。

IMG_20171020_231042.jpg

如果球发生微小旋转(不快所以足以产生mangus力)则球受力忽左忽右,飘忽不定

面的角度旋转和所受横向力的关系如下图,由实验得到
IMG_20171020_231103.jpg

这和我们开头给出的棒球粗糙光滑模型吻合(有8个极大极小,分别交替;这些极大极小对应于球的光滑粗糙面分界线正好迎着前进方向),90度一个周期

现在我们用 lateral/weight=0.5来计算一个不旋转的球的chukel效应,这时的横向力很大我们可以算出在棒球场这种球的最大偏移。
查资料显示 击出球高度大概在1.5m(棒球运动员挥舞棒子的高度度)即=1.5.d7036c9a17f5fda2-db5a79f8c74d918b-aae163e5d3677e55d346cb0c795f2175.jpg 设想一个接球手扑到去接球,大概接住高度X=0.2m。完成一次全垒打。

fc73abb21fd7e1c8-7a1fd7c6ce418a51-7c4734ca78fd77dc56ad47ad7e4697fa.jpg

用欧拉法去计算运动轨迹
V_xt
V_yt
V_zt
速度的也同理
=- t
=-gt- t
=+t
其中我们取=0.5

并设定之前约定的全垒打的初始末态条件,画出图求偏移量


四.源代码

  1. """
  2. Created on Fri Oct 20 18:45:54 2017
  3. @author: 钟伟
  4. """
  5. import math
  6. import matplotlib.pyplot as plt
  7. x=0 #长度单位feet英尺
  8. y=1.5
  9. z=0
  10. v0=10 #初速度90mph
  11. θ0=(20/180)*math.pi
  12. v_x0=v0*math.cos0)
  13. v_y0=v0*math.sin0)
  14. x_list=[0]
  15. y_list=[1.5]
  16. z_list=[0]
  17. Δt=0.01
  18. v_x=v_x0
  19. v_y=v_y0
  20. v_z=0.0
  21. v=math.sqrt(v_x**2+v_y**2+v_z**2)
  22. B=0.0039+0.0058/(1+math.exp((v-35)/5)) #B=B2/m
  23. g=9.8
  24. n=0
  25. while y>0.2:
  26. x=x+v_xt
  27. y=y+v_yt
  28. z=z+v_zt
  29. v_x=v_x-B*v*v_xt
  30. v_y=v_y-gt-B*v*v_yt
  31. v_z=v_z+0.5t
  32. x_list.append(x)
  33. y_list.append(y)
  34. z_list.append(z)
  35. n+=1
  36. plt.figure(figsize=(10,10))
  37. plt.title('y/z-x')
  38. plt.xlabel('x(m)')
  39. plt.ylabel('y(m)/z(m)')
  40. plt.plot(x_list,y_list,label="y-x",ls=':',color='black')
  41. plt.plot(x_list,z_list,label="z-x",ls='-',color='red')
  42. plt.legend(loc='upper right')
  43. plt.show()
  44. plt.figure(figsize=(6,6))
  45. plt.title('x-z')
  46. plt.xlabel('x(m)')
  47. plt.ylabel('z(m)')
  48. plt.plot(x_list,z_list,label="x-z")
  49. plt.legend(loc='upper right')
  50. plt.show()
  51. print(z)

五.调试及结果

由代码知,X为球水平运动方向,Y为垂直地面方向,Z为球的横向偏移量
1. y或z关于x的变化
y,z-x.png

分析:在竖直方向(也是运动员最关心的,好做出预判确定X),球飞起到2米多下落,初速度为90mph大概为10m/s(不算快球,抛球的抛的不行)最后在9米远处被接住(不算远,看看给接球手的时间是关键)
print(z)
print(n)代码有输出结果如下
0.23765000000000017
98
所以z的最终值0.24米,对运动员来说就是一小步
总时间T=980.01=0.98s,问题来了运动员的速度要达到接近v=90.98=9.18m/s.
所以重点来了,这个奔跑速度100米是10.89s,是国家健将运动员标准(还更高些,应为只跑了9米还带启动)
打全垒打不容易啊 如果球轻微旋转则飘忽不定的轨迹让接球的更加为难
x-z.png

可以推广到足球,不过足球缝线更多
不过C罗的电梯球就可以解释了


感谢观看!!!
钟伟 武汉大学 2015301020164

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注