利用VC++模拟示波器实现简谐振动的合成

2015-07-08 09:34:12   来源:dzsc   

关键字: VC++  模拟示波器  简谐振动

  0 引言

  Visubl C++是一个功能强大的面向对象的可视化软件开发工具,它是一个基于windows操作系统的可视化集成开发环境。ViSUal C++中包括的编辑器、调试器以及AppWizard、Class Wizard等开发工具,大大减轻了编程的工作量。在Visual c++环境下,用户可以较好地实现用户界面的设计、图形图像处理、网络、通讯、多媒体、数据库的使用等方面的编程[1]。在物理教学中,简谐振动的合成是必要的,其演示一般是通过函数信号发生器与示波器来实现的[2]。在利用示波器观察简谐振动的合时,其图形的稳定性极易受到信号干扰的影响,特别在是观察李萨如图形时,很难调节其稳定性。针对其不足,本文提出了用Visual C++编程来演示简谐振动的合成。连续、动态的图形效果,不但可以加深学生的对各种简谐振动合成的理解,还可提高学生的学习兴趣。

  1 简谐振动合成的原理

  简谐振动是最基本最简单的振动,在实际问题中,常会遇到一个质点同时参与几个振动的情况,即振动的合成。振动合成问题比较复杂,一般只研究几种简单情况简谐振动的合成[3]。

  1.1 同方向简谐振动的合成

  同方向的两个简谐振动的合成可分为同频率与不同频率的两种情况。

  (1) 同方向、同频率的简谐振动的合成。

  两个简谐振动的表达式分别为:x1=A1cos(2πft+φ10)和x2=A2cos(2πft+φ20),其中A1、A2、φ10、φ20、f分别表示两者振动的振幅、初相位和频率。则其合振动为:

 

  (2)同方向、不同频率的简谐振动的合成

  两个简谐振动的表达式分别为x1=A1cos(2πf1t+φ10)和x2=A2cos(2πf2t+φ20),若.A1=A2=A,则其合振动为:

 

  1.2 相互垂直简谐振动的合成

  (1)相互垂直、同频率的简谐振动的合成

  两个简谐振动的表达式分别为:x=A1cos(2πft+φ10和y=A2cos(2πft+φ20)。消去t,得轨迹方程:

 

  (2) 相互垂直、不同频率的简谐振动的合成

  如果两个振动的频率有很小的差异,相位差不是定值,合运动的轨迹是变化的。如果两个振动的频率相差很大,并有简单的整数比值关系,可得到稳定的运动轨迹曲线即李萨如图形。在李萨如图形中,作与x、y轴平行的直线,两线与李萨如图形最大交点的个数比与对应的频率比成反比,由此可求一振动的未知频率。

  2 VC++的模拟实现

  2.1 程序的设计框图

  根据功能可设计如下功能:

 

  图1.简谐振动合成演示程序的设计框图

  2.2 图形的合成实现

  根据简谐振动合成的功能分析,用户界面可分成同方向和垂直方向合成两部分,每一部分都包括数据输入及图形的显示。

  (1)数据的输入

  分振动各数据(振幅A,、A2,频率f1、f2,初相位φ10、φ20)的输入是通过编辑控件及微调控件实现,两振动的初相差还可通过滑动条的移动来设置,操作简单方便,如图2、4所示。

 

  (2)图形的显示

  在同方向振动中,当两振动为同频率时,若输入的数据为:A1=2m,f1=2Hz,.A2=2m,φ10=0,f2=2Hz,φ20=1.57rad(即π/2),便显示合振动的数据为:A=2.82955m,f=2Hz,φ0=o.785rad,如图2所示。并用不同的颜色显示两分振动与合振动图形。图中黑色曲线为合成图形,红色表示振动1,绿色表示振动2。当两振动为不同频率时,若输入的数据为:A1=2m,f1=100Hz,φ10=0,A2=2m,f2=90Hz,φ20=2.61667rad,这种情况图形合成后产生拍现象。由.f拍=|f2-f1|,显示合振动的拍频为lOHz,如图3所示。图中黑色曲线为合成的拍现象。

[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0708/article_12253.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文