收藏 分享(赏)

中学物理仿真模拟实验.doc

上传人:dzzj200808 文档编号:2300312 上传时间:2018-09-10 格式:DOC 页数:16 大小:110.50KB
下载 相关 举报
中学物理仿真模拟实验.doc_第1页
第1页 / 共16页
中学物理仿真模拟实验.doc_第2页
第2页 / 共16页
中学物理仿真模拟实验.doc_第3页
第3页 / 共16页
中学物理仿真模拟实验.doc_第4页
第4页 / 共16页
中学物理仿真模拟实验.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、中央电大毕业设计毕 业 论 文专 业:计算机基础与应用年 级:2004 年春计算机本科学 号:041060219姓 名:倪亚非指导老师:李征2005年 12月 28日物理仿真模拟实验-碰撞实验倪亚非(中央电大计算机基础与应用 2004年春本科)指导老师:李征【摘要】 随着计算机的发展,计算机的应用深入到各个领域,使用 Visual basic 6.0制作中学物理仿真模拟实验就是其中的一个领域。【关键词】 仿真模拟;碰撞;Visual Basic 6.0;窗体;【引言】 随着计算机的发展,计算机的应用深入到各个领域,使用计算机做物理仿真模拟实验即节省资源,又便捷。实验原理中学物理中,碰撞实验作为

2、验证动量守衡的一种精确测量手段,而倍受推崇。碰撞实验使用气垫导轨,数字毫秒计,游标卡尺,滑块等作为实验用具。当两滑块在水平的导轨上沿直线作对心碰撞时,若略去滑块运动过程中受到的粘滞阻力和空气阻力,则两滑块在水平方向除受到碰撞时彼此相互作用的内力外,不受其它外力作用。故根据动量守衡定律,两滑块的总动量在碰撞前后保持不变。设如图 1所示,滑块 1和滑块 2的质量分别为 M1和 M2,碰撞前二滑块的速度分别为 V10和 V20,碰撞后的速度分别为 V1和 V2,则根据动量守衡定律有 M1V10+M2V20=M1V1+M2V2若写成标量的形式,即 M1V10+M2V20=M1V1+M2V2 式中各速度

3、均为代数值,各 V值的正负号决定于速度的方向与所选取的坐标轴方向是否一致,这一点要特别注意。牛顿曾提出“弹性恢复系数”概念。其定义为碰撞后的相对速度与碰撞前的相对速度的比值。一般称为恢复系数,用 e表示,即:e= v201当 e=1时为完全弹性碰撞,e=0 时为完全非弹性碰撞,一般 0M2) ,将滑块 2置于 A,B 光电门之间,使 V20=0 推动滑块1以速度 V10去撞滑块 2,碰撞后速度分别为 V1,V2,则M1V10=M1V1+M2V2 碰撞前后动能的变化为: vmvEK210221)(实际实验时,由于滑块运动受到一定的阻力,又由于导轨具有少许的弯曲,在A门测出的速度 V1A,在 B门

4、测出的速度 V2B 和 V1B,都和碰撞前后瞬间相应的速度有些差异,减少差异的方法之一,是尽可能缩短碰撞点到测速光电门间的距离。办法之二是进行速度修正,因为滑块在“调平”气轨上运动时仍然有加速度。可参照图 2测出 3个加速度,对相应的速度进行修正 图中滑块位置为碰撞前瞬间的位置,CD 为此时二滑块挡光片中点的位置,AB 为实验时光电门的正常位置。 1。AC 间距离为 S10,将 B门移至 C,测出滑块 1在 AC间的加速度 a10。则 V10= (V1A是在门的速度) savA10212。CB 间距离为 S1,将光电门置于 C,B 处,测出滑块 1在 CB间的加速度 a1,则 1= (V1是在

5、 B门的速度) B1213。DB 间距离为 S2,将光电门置 DB时,测出滑块 2在 DB间的加速度则:V2= (V2B是在 B门的速度) savB22(2) 。完全非弹性碰撞 此时 e=0,将滑块 2置于光电门 AB间,而且 V20=0,滑块 1以速度 V10撞向滑块 2,碰撞后二滑块粘在一起以同一速度 V2运动。碰撞前后的动量关系为 M1V10=(M1+M2)V2 动能变化为vmEK21021)(2核心算法在实验中,滑块的质量和挡片的长度是可以自行设置的,为了和实际相符,滑块的速度也是可以设置的,即10 或 V1A是可以设置的。也就是说在实验开始时,是以知的。V1使用 Scrollbar控

6、件来控制,V1A=Scroll1.value. 那么,如何描述1B(1) ,2B(V2)?由实验原理可知:1.当时,即:M1V1A= M2V2B V2B=V1A2.当时,有:M1V10=M1V1+M2V2 (其中1A,M1,M2 已知)设X V2B/V1A=Y由最小二乘法求出:a+bX 中 a,b 的值即当1,M2,V1A 给定后,就可求出 V2B , V1B,V2B=V1A(a+bM1/M2)将上式代入碰撞方程就可求出 V1B=V1A(1-b-aM2/M1)也就是说知道了 a,b后,就可知道 V1B,V2B求 a,b (由实验得以下数据,即可求出 a,b)滑块 1质量(g)滑块 2质量(g)

7、 V1A(CM/S) V1B(CM/S) V2B(CM/S)M1 M1+1 17.16 2.17 14.14M1 M1+2 13.59 3.02 10.44M1 M1+3 14.03 4.01 9.72M1 M1+4 12.01 4.33 7.60M1+1 M1+2 13.11 1.11 11.73M1+1 M1+3 12.96 2.15 10.57M1+1 M1+4 11.80 2.70 8.87M1+2 M1+3 13.24 0.83 12.08M1+2 M1+4 17.94 2.59 14.86M1+1 M2 11.74 1.53 12.67M1+2 M2 10.56 2.53 12.5

8、1M1+3 M2 10.97 3.30 13.74M1+4 M2 11.22 3.95 14.73M1+2 M2+1 13.47 1.49 14.49M1+3 M2+1 12.34 2.32 14.26M1+4 M2+1 12.75 3.16 15.55M1+3 M2+2 14.04 1.52 15.00M1+4 M2+2 11.99 2.11 13.65配重=50.07g M1=183.86g M2=183.40g 1 表示 1个配重设 M1/M2=X , V2B/V1A=Y 则:X Y X*X XY0.7875 0.8240 0.62015625 0.64890.6484 0.7682 0

9、.42042256 0.498100880.5511 0.6928 0.30371121 0.381802080.4792 0.6328 0.22963264 0.303237760.8250 0.8947 0.680625 0.73812750.7012 0.8156 0.49168144 0.571898720.6097 0.7517 0.37173409 0.458311490.8513 0.9124 0.72471169 0.776726120.7402 0.8283 0.54789604 0.613107661.2755 1.0792 1.62690025 1.37651961.54

10、86 1.1846 2.39985225 1.83435311.8215 1.2525 3.31786225 2.28142.0945 1.3128 4.38693025 2.74971.2164 1.0757 1.47962896 1.308481481.4309 1.1556 2.04747481 1.653548041.6454 1.2196 2.70734116 2.006729841.1782 1.0684 1.38815524 1.258788881.3548 1.1384 1.83548304 1.54230432 18.9718 17.6093 25.57819289 21.0

11、0203747有最小二乘法可知:拟合直线 Y=a+bX 的 a,b可由以下公式求出a=Yi/n bXi/nb= )(22xyiniii由以上公式和数据可求出:a=0.517202515b=0.437473235即:Y=0.517202515+0.437473235X到次,由实验以及最小二乘法求出了 a,b。在实验开始时,M1,M2,V1A 已知,那么从以上公式就可以很容易得到其他的量。代码Form1:(进入窗体)Private Sub Command1_Click()Unload MeForm2.ShowEnd SubPrivate Sub Form_Load()Form1.Caption =

12、 “:欢迎使用中学物理仿真模拟实验:“Timer1.Interval = 500End SubPrivate Sub Timer1_Timer() 运动字体由 Timer1触发s = Form1.Captionb = Len(s)Form1.Caption = Right(s, b - 1) + Left(s, 1)End Sub此窗体中加了段会来回运动的字体,在标题栏里。Form2: (主界面)Option ExplicitPublic flage As BooleanPublic direction1 As Boolean, direction2 As BooleanPublic v As

13、 Integer, dd As BooleanPrivate Sub Command1_Click()Dim i As Integer, j As Integer, t As IntegerIf Form8.Text1.Text = “ Or Form8.Text2.Text = “ Then 判断滑块质量输入数据t = MsgBox(“请先设置滑块 1的属性!“, 16, “操作步骤错误“) 的正确性BeepGoTo hui:End IfIf Form9.Text1.Text = “ Or Form9.Text2.Text = “ Thent = MsgBox(“请先设置滑块 2的属性!“,

14、 16, “操作步骤错误“)BeepGoTo hui:End IfTimer1.Interval = 50 设置触发时间间隔hui:End SubPrivate Sub Command2_Click() 实验器具位置初始化Image9.Visible = TrueImage6.Left = 960Image9.Left = 4800Timer1.Interval = 0Form13.Text1.Text = “Form13.Text2.Text = “Form13.Text3.Text = “End SubPrivate Sub Command3_Click() 使用 Slider控件来设置

15、V1ASlider1.Visible = TrueCommand3.Visible = FalseSlider1.Left = 8520Slider1.Top = 960End SubPrivate Sub data_Click() 数据处理窗口显示Form5.ShowEnd SubPrivate Sub exit_Click() 退出实验EndEnd SubPrivate Sub Label2_Click() 滑块属性 1设置窗口显示Form8.ShowEnd SubPrivate Sub Label3_Click() 滑块属性 2设置窗口显示Form9.ShowEnd SubPrivate

16、 Sub Image2_Click() 光电门位置调整Form2.Image9.Visible = FalseIf direction1 = False ThenImage2.Left = Image2.Left + 2000direction1 = TrueElseImage2.Left = Image2.Left - 2000direction1 = FalseEnd IfEnd SubPrivate Sub Image3_Click() 光电门位置调整If direction2 = False ThenImage3.Left = Image3.Left - 2000direction2

17、= TrueElseImage3.Left = Image3.Left + 2000direction2 = FalseEnd IfImage9.Visible = FalseEnd SubPrivate Sub Image4_Click() 计时器窗口显示Form13.ShowEnd SubPrivate Sub Image6_Click() 滑块属性 1设置窗口显示Form8.ShowEnd SubPrivate Sub Image7_Click() 调平窗口显示Form10.ShowForm12.ShowEnd SubPrivate Sub Image8_Click() 水平窗口显示Fo

18、rm12.ShowEnd SubPrivate Sub Image9_Click() 滑块属性 2设置窗口显示Form9.ShowEnd SubPrivate Sub mudi_Click() 实验目的窗口显示Form3.ShowEnd SubPrivate Sub step_Click() 实验步骤窗口显示Form6.ShowEnd SubPrivate Sub form2_load() flage = FalseEnd SubPrivate Sub Timer1_Timer()v = Slider1.Value Dim vv As Singlevv = vIf flage = False

19、Then 判断是完全非弹性碰撞还是非完全弹性碰撞If Val(Form8.Text1.Text) = Val(Form9.Text1.Text) Then M1=M2时If Image6.Left 3599 + (10 - Val(Form8.Text2.Text) * 120 ThenImage9.Left = Image9.Left + vEnd IfIf Image6.Left 3240 And Form13.Option1.Value = True ThenForm13.Text1.Text = Val(Form8.Text2.Text) / vvEnd IfIf Image9.Lef

20、t 6120 And Form13.Option1.Value = True ThenForm13.Text3.Text = Val(Form9.Text2.Text) / vvEnd IfIf Image6.Left 3240 And Form13.Option2.Value = True ThenForm13.Text1.Text = vvEnd IfIf Image9.Left 6120 And Form13.Option2.Value = True ThenForm13.Text3.Text = vvEnd IfElseIf Val(Form8.Text1.Text) 3540 + (

21、10 - Val(Form8.Text2.Text) * 120 Thendd = FalseEnd IfIf Image6.Left 960 And Image9.Left 4801 ThenImage6.Left = Image6.Left + vv * (1 - 0.437473235 - 0.517202515 * Val(Form9.Text1.Text) / Val(Form8.Text1.Text)End IfIf Image9.Left 6120 And Form13.Option1.Value = True ThenForm13.Text3.Text = Val(Form9.

22、Text2.Text) / vv * (0.517202515 + 0.437473235 * Val(Form8.Text1.Text) / Val(Form9.Text1.Text)Form13.Text2.Text = Val(Form8.Text2.Text) / (vv * (1 - 0.437473235 - 0.517202515 * Val(Form9.Text1.Text) / Val(Form8.Text1.Text)End IfIf Image6.Left 6120 And Form13.Option2.Value = True ThenForm13.Text3.Text

23、 = vv * (0.517202515 + 0.437473235 * Val(Form8.Text1.Text) / Val(Form9.Text1.Text)Form13.Text2.Text = vv * (1 - 0.437473235 - 0.517202515 * Val(Form9.Text1.Text) / Val(Form8.Text1.Text)End IfElse M1M2时If Image6.Left 3600 + (10 - Val(Form8.Text2.Text) * 120 ThenImage9.Left = Image9.Left + vv * (0.517

24、202515 + 0.437473235 * Val(Form8.Text1.Text) / Val(Form9.Text1.Text)End IfEnd IfIf Image6.Left 3240 And Form13.Option1.Value = True ThenForm13.Text1.Text = Val(Form8.Text2.Text) / vvEnd IfIf Image6.Left 6120 And Form13.Option1.Value = True ThenForm13.Text2.Text = Val(Form8.Text2.Text) / (vv * (1 - 0

25、.437473235 - 0.517202515 * Val(Form9.Text1.Text) / Val(Form8.Text1.Text)End IfIf Image9.Left 6120 And Form13.Option1.Value = True ThenForm13.Text3.Text = Val(Form9.Text2.Text) / (vv * (0.517202515 + 0.437473235 * Val(Form8.Text1.Text) / Val(Form9.Text1.Text)End IfIf Image6.Left 3240 And Form13.Optio

26、n2.Value = True ThenForm13.Text1.Text = vvEnd IfIf Image6.Left 6120 And Form13.Option2.Value = True ThenForm13.Text2.Text = vv * (1 - 0.437473235 - 0.517202515 * Val(Form9.Text1.Text) / Val(Form8.Text1.Text)End IfIf Image9.Left 6120 And Form13.Option2.Value = True ThenForm13.Text3.Text = vv * (0.517

27、202515 + 0.437473235 * Val(Form8.Text1.Text) / Val(Form9.Text1.Text)End IfElse 完全非弹性碰撞If Image6.Left 3600 + (10 - Val(Form8.Text2.Text) * 120 ThenImage9.Left = Image9.Left + vv * Val(Form8.Text1.Text) / (Val(Form8.Text1.Text) + Val(Form9.Text1.Text)End IfIf Image6.Left 3240 And Form13.Option1.Value

28、= True ThenForm13.Text1.Text = Val(Form8.Text2.Text) / vvEnd IfIf Image9.Left 6120 And Form13.Option1.Value = True ThenForm13.Text3.Text = Val(Form9.Text2.Text) / (vv * Val(Form8.Text1.Text) / (Val(Form8.Text1.Text) + Val(Form9.Text1.Text)Form13.Text2.Text = Val(Form8.Text2.Text) / (vv * Val(Form8.T

29、ext1.Text) / (Val(Form8.Text1.Text) + Val(Form9.Text1.Text)End IfIf Image6.Left 3240 And Form13.Option2.Value = True ThenForm13.Text1.Text = vvEnd IfIf Image9.Left 6120 And Form13.Option2.Value = True ThenForm13.Text3.Text = vv * Val(Form8.Text1.Text) / (Val(Form8.Text1.Text) + Val(Form9.Text1.Text)

30、Form13.Text2.Text = vv * Val(Form8.Text1.Text) / (Val(Form8.Text1.Text) + Val(Form9.Text1.Text)End IfEnd IfEnd SubPrivate Sub yq_Click() 仪器帮助窗口显示Form7.ShowEnd SubPrivate Sub yuanli_Click() 实验原理窗口显示Form4.ShowEnd SubForm3:(实验目的)Form4:(实验原理)Form5:(数据处理)Private Sub Command4_Click() 调用外部计算器程序Dim cal As S

31、tringcal = Shell(“C:WINDOWSSystem32calc.exe“, 1)End SubForm6:(实验步骤)Private Sub Command1_Click()Form2.Image9.Left = 4800Form6.HideForm2.flage = FalseForm2.Command1.Enabled = True 保证使用者在看了实验步骤以后在开始实验End SubPrivate Sub Command2_Click() 开始非完全弹性碰撞Form2.Image9.Left = 4800Form6.HideForm2.flage = TrueForm2.

32、Command1.Enabled = TrueEnd SubPrivate Sub Command3_Click() 开始完全非弹性碰撞Form2.Image9.Left = 7440Form6.HideForm2.flage = FalseEnd SubForm7:(仪器介绍)Form8:(滑块 1属性设置)Private Sub Command1_Click()Dim t As IntegerIf Val(Text2.Text) 10 Thenf = MsgBox(“请输入 10以内整数!“, 16, “数据输入错误“)End IfEnd SubForm9:(滑块 2属性设置) (和滑块

33、1的类似)Private Sub Command1_Click()If Val(Text2.Text) 10 Thenf = MsgBox(“请输入 10以内整数!“, 16, “数据输入错误“)End IfEnd SubForm10:(调平旋钮)Private Sub Image1_Click() 右粗调If Form12.Image2.Left 1140 ThenForm12.Image2.Left = Form12.Image2.Left - 20ElseForm12.Image2.Left = Form12.Image2.Left + 20End IfEnd SubPrivate Su

34、b Image2_Click() 右微调If Form12.Image2.Left 1140 ThenForm12.Image2.Left = Form12.Image2.Left - 5ElseForm12.Image2.Left = Form12.Image2.Left + 5End IfEnd SubPrivate Sub Image3_Click() 左粗调If Form12.Image2.Left 1140 ThenForm12.Image2.Left = Form12.Image2.Left + 20ElseForm12.Image2.Left = Form12.Image2.Le

35、ft - 20End IfEnd SubForm12:(水平)Private Sub Form_Load() 随机确定水平位置Form12.Image2.Left = Form12.Image2.Left + Int(1001 * Rnd(1) - 400End SubForm13:(计时器窗口)Private Sub form13_load() 初始化Text1.Text = “Text2.Text = “Text3.Text = “End SubPrivate Sub Option1_Click() 测时间档Label1.Caption = “T1a:“Label2.Caption = “

36、T1b:“Label3.Caption = “T2b:“Label8.Caption = “s“Label9.Caption = “s“Label10.Caption = “s“End SubPrivate Sub Option2_Click() 测速度档Label1.Caption = “V1a:“Label2.Caption = “V1b:“Label3.Caption = “V2b:“Label8.Caption = “cm/s“Label9.Caption = “cm/s“Label10.Caption = “cm/s“End SubPrivate Sub Option3_Click(

37、) 测加速度档Label1.Caption = “ a10:“Label2.Caption = “ a1:“Label3.Caption = “ a2:“Label8.Caption = “cm/s2“Label9.Caption = “cm/s2“Label10.Caption = “cm/s2“If Form12.Image2.Left - 1080 0 ThenForm13.Text1.Text = (Form12.Image2.Left - 1080) / 1080Form13.Text2.Text = (Form12.Image2.Left - 1080) / 1080Form13.

38、Text3.Text = (Form12.Image2.Left - 1080) / 1080ElseIf Form12.Image2.Left - 1080 0 ThenForm13.Text1.Text = (1080 - Form12.Image2.Left) / 1080Form13.Text2.Text = (1080 - Form12.Image2.Left) / 1080Form13.Text3.Text = (1080 - Form12.Image2.Left) / 1080Else: Form13.Text1.Text = 0Form13.Text2.Text = 0Form

39、13.Text3.Text = 0End IfEnd Sub【参考文献】 1 Visual Basic 程序设计教程 周霭如、官士鸿 等编著 清华大学出版社 2 Visual Basic6.0 应用与提高 尹利民 科学出版社【英文】The high school physics imitates to really imitate the experimentNi Ya-feiTeacher Guide:LiZheng【Abstract】 Along with the development of the calculator ,the application of the calculato

40、r goes deep into the each realm ,usage Visual basic 6.0 creation the high school physics imitates a realm that true emulation experiment is among them .Hitting the experiment is a classic experiment that high school physics experiment the inside. Usage VB at compute the on board doing this experiment ,is a convenient path.【key phrase】 Imitate the true emulation; Hit;Visual basic 6.0;Form

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报