A人机接口设备—开关类部件的仿真实现

上传人:仙*** 文档编号:31508010 上传时间:2021-10-12 格式:DOC 页数:22 大小:185KB
收藏 版权申诉 举报 下载
A人机接口设备—开关类部件的仿真实现_第1页
第1页 / 共22页
A人机接口设备—开关类部件的仿真实现_第2页
第2页 / 共22页
A人机接口设备—开关类部件的仿真实现_第3页
第3页 / 共22页
资源描述:

《A人机接口设备—开关类部件的仿真实现》由会员分享,可在线阅读,更多相关《A人机接口设备—开关类部件的仿真实现(22页珍藏版)》请在装配图网上搜索。

1、人机接口设备开关类部件的仿真实现摘 要本文先简要介绍了仿真的基本理论,现状及发展前景,然后说明本毕业设计的研究目的和意义。开关类部件的仿真是为了在虚拟的接口实验平台上,以计算机软件模拟实际环境进行科学实验。本设计中主要研究的是机械类开关,包括单刀单掷开关和单刀双掷开关及键盘开关。详细分析了这些开关的机械物理特性,特别是开关在开、合过程中的瞬态响应特点。利用MFC类库和Visual C+提供的高度可视的应用程序开发工具对开关类部件进行模拟仿真设计:首先由虚拟实验平台统一设计的器件基类,派生出对应的开关器件类,通过重载基类中的一些虚函数,仿真实现开关的相应功能特性,包括对输入输出信号的响应及鼠标响

2、应模拟开关动作,不同的执行动作,会使开关有不同的状态,同时也会改变管脚信息。再将器件类封装成DLL模块,以便在实验时,通过特定的接口调用这些器件功能。根据开关的种类将每个种类写成独立的DLL模块。对于单刀单掷开关和单刀双掷开关,经测试,基本达到设计目标,但对于键盘类开关,由于某些技术上和知识上的不足,在本设计中没有成功设计出相应的DLL模块,有待以后改进。最后对设计研究工作进行了总结,指出了研究上的不足及改进方向,说明了在本次设计中的收获。关键词: 开关的种类;开关的特点;时间响应;仿真实现Man-machine interface equipment-Switch parts simulat

3、ion realizationAbstractThe thesis introduced basic theories, current situation and development prospect of simulation briefly first,then explained research purpose and meaning of this graduation project. Switch emulation is to carry on scientific experiment with simulating the real environment by co

4、mputer software, at the virtual interface experiment platform. In the thesis, the main research topic is mechanical switch, including SPST (Single Pole Single Throw), SPDT (Single Pole Double Throw) and keyboard switch. It analyzed the mechanical physical characteristics of the switches, especially

5、the transient state in the course of holding, shutting of the switch. Exploiting the developing tools for high degree visualized application provided by MFC and Visual C, it simulated the design of switch. At first, it has to design the basic device class by virtual experiment platform, and derive t

6、he relative switch device class. With deriving some virtual functions of basic class, the relative function characteristics of switch can be simulated, including the response of input and output signal, mouse response to emulate different switch activities which produce different switch status, and

7、change the pin information simultaneously. Second, the device class is packed into DLL module for using the functions of the device by particular interface in experiments. According to the type of switch, each switch can be packed as an independent DLL module. For SPST and SPDT switches, through tes

8、ting, they reach the design object basically. But for the keyboard switch, because of the deficiency on some technology and on knowledge, it has not succeeded in designing corresponding DLL module in this thesis, which needs improving in the future.Finally, the thesis summarized the research work, p

9、ointed out the study deficiency and the improving direction, and explained the harvest in the design. Key words: Switch type; Switch characteristics; Time responds; Emulation realization目 录 论文总页数:19页1引言11.1设计背景11.2计算机仿真11.2.1计算机仿真的发展11.2.2计算机仿真的现状21.3设计目的及意义31.4预期成果32设计知识介绍32.2虚拟实验平台32.2基类和派生类33开关类部

10、件的仿真方案设计43.1开发工具的选择43.2模块的划分原则43.3模块的划分53.4开关的种类及特性53.4.1开关的种类53.4.2开关的主要参数53.4.3瞬态响应特点64开关类部件的仿真实现74.1程序主要功能介绍74.2程序设计结构介绍74.2.1开关类器件实现功能框图74.2.2入口函数84.2.3输出接口函数84.2.4主要功能函数介绍94.3单刀单掷开关功能实现104.3.1工程创建104.3.2添加基类114.3.3创建功能函数124.3.4单刀单掷开关代码实现124.4单刀双掷开关的功能实现144.5键盘开关的主要功能154.6功能测试:15结 论17参考文献17致 谢18

11、声 明19 1 引言计算机仿真就是建立系统数学模型,并利用该模型在计算机上运行,进行系统科学实验研究的全过程。随着计算机技术的飞速发展,使得仿真技术的应用领域不断扩大。早期局限在国防科技和军工部门(如航天,航空,核能等),而如今深入到科学研究,工程设计,辅助决策,系统优化等各个方面, 使人们的许多传统观念和方法产生了重大变革。1.1 设计背景随着信息技术在教育领域的广泛应用,虚拟实验正日益成为广大教师的计算机辅助教学手段。虚拟实验平台正是应这个大需求而诞生。并且随着信息技术的发展,以纯软件的形式模拟仿真硬件接口实验平台的逻辑功能,用于接口教学。在与硬件接口实验平台的实验步骤一致的情况下,连接线

12、路,用汇编语言或者C语言等编写程序,再运行程序观看结果。计算机仿真无硬件平台、器件的开销和磨损;也无实验环境的时间限制。让使用者更直观的更形象的演示实验过程和结果,更好的理解电路运行原理。为了增强虚拟实验平台的功能,首先由虚拟实验平台统一设计的器件基类,派生出对应的开关器件类,通过重载基类中的一些虚函数,仿真实现开关的相应功能特性。再将器件类封装成DLL模块,以便在实验时,通过特定的接口调用这些器件功能。1.2 计算机仿真1.2.1 计算机仿真的发展计算机仿真就是建立系统数学模型,并利用该模型在计算机上运行,进行系统科学实验研究的全过程。 自50年代初, 美国人Aaron借助大型的电子管计算机

13、, 并利用最小二乘法进行滤波器这样的线性网络设计以来, 仿真技术的发展已近半个世纪。 计算机仿真应用早期局限在国防科技和军工部门(如航天,航空,核能等), 而如今深入到科学研究,工程设计,辅助决策,系统优化等各个方面, 使人们的许多传统观念和方法产生了重大变革。计算机仿真技术被称为继科学理论和实验研究后的第三种认识和改造世界的工具,计算机技术的发展,计算数学的成熟, 使计算机仿真技术成为一种工程领域必不可少的重要设计手段,它的应用可以大大地缩短产品的开发周期和降低产品开发的成本,从而提高产品的竞争力。 传统的设计方法往往是通过反复的试制样品(物理成型)和实验来分析该系统是否达到设计要求, 因此

14、在设计过程中大量的人力和物力投入在样品的试制和试验上。 随着计算机仿真技术的发展, 在工程系统的设计开发中, 大量地采用了数字成型的方法, 即通过建立系统的数字模型, 通过计算机仿真使得大量的产品设计的问题的发现和解决在物理成型之前就得到处理, 从而极大地减少反复物理成型的人力和物力的投入, 使我们可以在最短的时间以最低的成本将新产品投放到市场, 是我们在竞争日益激烈的市场上占的先机。 正是由于计算机仿真技术的这种优越性, 在国外, 计算机仿真技术已经充分地被各大公司应用到产品的设计, 开发和改进中。早期的计算机仿真技术需要仿真人员自己推导系统的数学模型,应用编程语言将数学模型转化成为计算机能

15、够直接运算的程序。应用此法设计仿真程序,不仅要求仿真人员须精通所采用的计算机语言,还使他们将大量的时间和精力耗费在程序的编写和调试上,而不能致力于对系统模型和仿真方法的研究。为了使仿真人员摆脱复杂的程序设计,从20世纪6070年代, 就有人发展了面向仿真问题的仿真专用语言。它采用简单的方式(即仿真人员熟悉的描述问题的方式)来表达仿真中常用的算法或控制流程。早期的仿真语言有CSMP,CSSL,DSL,MIMC等,应用十分广泛。20世纪80年代美国一家软件公司推出一种面向科学和工程计算的语言。它以矩阵运算为基础,把计算、可视化及程序设计融合到了一个交互的工作环境中,可以实现工程计算,算法研究,建模

16、和仿真,数据分析及可视化,科学和工程绘图,应用程序开发等功能。这些通用的计算机仿真软件系统的主要特点是:1. 提供了方便的数学模型建立工具,使用者可方便地在计算机上建立自己的数学模型。2. 定义了一些典型,通用和专用的非线性函数,加速数学模型的建立过程。3. 提供多种数值计算方法。4. 提供灵活,方便和直观的多种输出格式。5. 具有友好的窗口式人机界面等。然而这些仿真语言的还是基于提供给仿真人员一种更方便的数学模型在计算机中的表达方式通过仿真语言这个中介,使得仿真人员可以跟方便地把数学模型转化到计算机中去运算。因此,还是需要专门的仿真人员进行操作,因此数学模型的建立还是需要仿真人员来进行。1.

17、2.2 计算机仿真的现状基本实现了上层电路层,基本实现四个常用的大规模集成接口器件的内部逻辑;能够灵活设置电路图,并仿真正确及错误的结果;已经实现IA32CPU(从INTEL 8086到PIII)的代码,还未进行器件类封装;容易实现的表现用器件或外设还不足,如开关、LED、示波器等;对器件逻辑功能的延时处理考虑得还不周全。尽管这对普通实验演示影响不大。1.3 设计目的及意义本设计的目的是利用Visual C+环境以纯软件的形式模拟硬件接口实验平台的逻辑功能,简单的仿真实现人机交互设备开关类部件,增强虚拟实验平台的功能,用于接口教学。另外,通过本次设计开发对仿真理论的发展及主要内容有了基本的认识

18、与了解。通过对仿真系统的设计与实现,熟悉了Visual C+的MFC开发模式流程,掌握了仿真技术的思想,完成了开关设备的仿真实现。1.4 预期成果开发设计一种模拟仿真的软件,使其能够在虚拟环境下模拟实验接口电路中开关的控制功能。弥补虚拟实验平台在外设方面的不足,增加开关类部件的模拟仿真实现功能,使原有的实验平台功能更强大,让使用者更直观的更形象的演示实验过程和结果,更好的理解电路运行原理。2 设计知识介绍2.2 虚拟实验平台计算机技术、大规模集成电路技术和通讯技术的飞速发展,为虚拟实验的发展奠定了坚实的基础。虚拟实验就是在通用计算机上加载相应的软件或硬件,使得使用者在操作这台计算机时,就像是在

19、操作一台专用的传统试验设备一样。在虚拟实验系统中,软件是整个系统的关键,任何以个使用者都可以通过软件的相关设置来达到要实现实验的效果。虚拟实验就是利用外部输入(如鼠标的点击、拖动和键盘的敲击等),将计算机上虚拟的各种仪器,按实验要求、过程,组装成一个完整的实验环境,同时在这个环境中完成实验操作,包括实验器材的添加、实验条件的改变、数据采集以及实验结果的模拟、分析。它包含了虚拟仿真技术、计算机技术、实验技术、网络技术与专业等多方面理论知识。2.2 基类和派生类类是进行面向对象程序设计的基础。它能够定义数据和对数据的操作,并通过不同的访问权限,将类的接口和内部的实现分开,支持信息的封装和隐藏。面向

20、对象程序设计的其它重要特征还包括:继承和多态。支持程序代码的复用是面向对象程序设计的主要目标之一,而支持程序代码复用的最重要的方法之一就是继承。继承能够从一个类派生出另一个类,前者称之为基类或父类,后者称之为派生类或子类。派生类能够继承基类的功能,也能改变或增加它的功能。在面向对象的程序设计中,多态的功能强大,但也较难掌握。它允许指向基类对象的指针指向派生类的对象。基类和派生类中可有名字和参数完全相同的函数,但他们的功能并不相同。当程序运行时,如果用基类指针调用成员函数,能够根据该指针所指向的对象的类型自行确定是调用基类的成员函数还是调用派生类的成员函数。如果没有多态的功能,我们就不得不用条件

21、语句,确定是调用哪一个类的成员函数。代码复用是C+最重要的性能之一,它是通过类继承机制来实现的。通过类继承,我们可以复用基类的代码,并可以在继承类中增加新代码或者覆盖基类的成员函数,为基类成员函数赋予新的意义,实现最大限度的代码复用。3 开关类部件的仿真方案设计3.1 开发工具的选择根据不同的工程选择不同的开发工具,可以有效地提高工作效率。不同的开发工具各有各的优点同时又各有各的不足,在开发中要扬长避短。Visual C+自诞生以来,一直是Windows环境下最主要的应用开发系统之一。Visual C+不仅是C+语言的集成开发环境,而且与Win32紧密相连,利用Visual C+开发系统,可以

22、完成各种各样的应用程序开发,从底层软件直到上层直接面向用户的软件。而且,Visual C+强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。随着多媒体技术和图形图象技术的不断发展,可视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员都开始研究并应用可视化技术。Visual C+是一个很好的可视化编程工具,使用Visual C+环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于程序员操作。因此,根据实际情况在本设计中选用的是Visual C+6.0作为开发工具。3.2 模块的划分原则模块划分是系统分析中非常重要的一部分,下面是模块划分时的基本

23、原则。1独立性:让模块直接内的关系减到最少。理想的状态就是模块之间没有关系,但这种情况不符合现实。既然是同一个工程,模块之间自然都会存在一定的联系,只要想办法让模块之间的关系尽量简单就可以了。2接口简单化:让模块之间的接口尽量单纯、简单、易用。即让公用函数和公用变量尽量地少。3分层处理:吸取Windows操作系统对模块做分层处理的经验。建立一些中间模块,让两端的模块来完成相互调用的透明化。4容易合并:容易将划分的模块进行合并。例如将一个工程的各个功能模块分别设计成可执行文件,然后用一个总模块将这些模块关联起来组成一个工程。这种情况下,对模块独立性要求较高,模块之间几乎没有任何关系。5可测试性:

24、尽量使每个模块都可以单独进行测试。上面的5条是参考原则。既然是参考原则就不会完全执行。完全按照一个教条去执行真的很困难。只要在做模块划分的时候能经常记起这些原则,然后稍加注意就OK了。另外,在这5条原则中,第一条是根本,能把这一条做好,下面的一些就容易实现了。在做模块划分时一定要始终贯穿独立性的思想。商业源代码,全套计算机毕业设计免费下载 更多全套设计联系QQ:1042897696最新设计大全 3.3 模块的划分本设计中在大体上分为两种模块:DLL功能模块和EXE功能测试模块。根据开关的种类将每个种类写成独立的DLL模块,在此分成2个DLL模块单刀单掷模块、单刀双掷模块。DLL模块主要负责设计

25、输入、输出接口、开关功能及瞬态响应特点,以便在实验时,通过特定的接口调用这些器件功能,将这些全部封装在DLL工程中。根据写好的DLL功能模块,通过编写的测试程序分别测试每个DLL模块的实现情况,直观的显示开关类部件的仿真实现。3.4 开关的种类及特性3.4.1 开关的种类开关可以根据其结构特点、极数、位数、用途等进行分类。1按照开关按结构特点分类:按钮开关、拨动开关、薄膜开关、水银开关、杠杆式开关、微动开关、行程开关等。 2按照开关按极数、位数分类:单极单位开关、双极双位开关、单极多位开关、多极单位开关和多极多位开关等。 3按照开关按用途分类:电源开关、录放开关、波段开关、预选开关、限位开关、

26、脚踏开关 转换开关、控制开关等。 在本设计中主要研究的是机械类开关,笔者大体将其归纳为三类:分为单刀单掷开关,单刀双掷开关,键盘开关,由于技术上还存在一些问题,因此在本次设计中没有成功设计出相应的键盘类开关的功能模块,还有待将来的研究和改进。3.4.2 开关的主要参数开关的主要参数有额定电压、额定电流、接触电阻、绝缘电阻及寿命等。1最大额定电压:是指在正常工作状态下开关能容许施加的最大电压。若是交流电源开关,通常用交流电压作此参数。 2最大额定电流:是指在正常工作状态下开关能容许通过的最大电流。若电压标注为交流(AC),则电源也指交流。 3接触电阻:开关接通时,“接触对”(两触点)导体间的电阻

27、值叫做接触电阻。该值要求越小越好,一般开关多在20m(即0.02)以下,某些开关及使用久的开关则在0.10.8。 4绝缘电阻:指定的不相接触的开关导体之间的电阻称为绝缘电阻。此值越大越好,一般开关多在100M以上。 5耐压:也叫抗电强度,其含义是指定的不相接触的开关导体之间所能承受的电压。一般开关至少大于100V;电源(市电)开关要求大于500V(交流,50Hz)。 6寿命:是指开关在正常条件下能工作的有效时间(使用次数)。通常为500010000次,要求较高的开关为50000500000次。 对一般电子制作实验来讲,选用及掉换开关时,除了型号或外形等需要考虑外,参数方面只要注意额定电压、额定

28、电流和接触电阻三项便可以了。3.4.3 瞬态响应特点当开关由断开状态变到闭合状态或由闭合状态到断开状态时,并不是在瞬间就改变状态的,需要一定的响应时间,虽然只是毫级的时间差,肉眼无法观察的到的. 下面根据图1来说明开关的响应时间:图1开关时间响应说明图当开关在收到电平信号,要求闭合时(或要求断开时),并不是瞬间就闭合(或断开)的,就是说不是从图中t1处直接变到t6处的(或从t6处直接变到t11处的),而是需要经过一定的状态变化,最后才由t1处的状态变到t6状态的(或从t6处的状态变到t11处的状态的).而其中的状态变化形成的原因可能是由于电流,电压,或其他的原因(不同情况原因不同)导致开关在这

29、一瞬间形成不稳定的状态,在闭合与断开两种状态多次随即的变化,这种变化是我们用肉眼看不到的,我们看到的只能是状态由t1变到t6,再由t6变到t11这个过程。响应时间从使用角度来看,就是开关从闭合到断开或从断开到闭合过程中所延迟的时间.响应时间主要取决于其寿命、绝缘电阻及接触电阻,所以不同材料制得的开关响应时间各不相同。4 开关类部件的仿真实现4.1 程序主要功能介绍在Visual C+环境下分别建立关于单刀单掷开关和单刀双掷的DLL工程,工程中封装了开关类器件被外界平台调用的输出接口函数,获得信号的输入函数,还有单刀单掷开关、单刀双掷开关在鼠标控制下状态的改变,管脚信息的改变和开关在断开与闭合或

30、在闭合与断开的瞬间产生的时间响应。4.2 程序设计结构介绍4.2.1 开关类器件实现功能框图图2开关类器件实现功能框图左部分图3开关类器件实现功能框图右部分系统的整个功能框图如图2和图3所示。其中的上层程序可以是器件功能测试程序,也可以整个仿真实验平台程序。器件DLL的设计与实现为本毕业设计的主要内容。4.2.2 入口函数利用MFC的AppWizard自动生成的DLL框架中没有显式的调用DLLMain入口函数,但是对于每个DLL来说,将自动生成一个CWinApp派生类的对象,它会在派生类的成员函数InitInstance和ExitInstance中完成必要的初始化和终止工作。4.2.3 输出接

31、口函数对于使用AppWizard创建的MFC DLL,AppWizard会创建一个DEF文件的框架,并自动增加到工程中,然后在DEF文件中增加用于输出的。;DLL名字LIBRARY DSwitchDLL;DLL描述DESCRIPTION DSwitchDLL Windows Dynamic Link Library;输出函数及其编号EXPORTS 在此加入被调用的函数4.2.4 主要功能函数介绍1、画图函数DrawObject(CDC *pDC):是负责画图的,在程序中设定画笔,并设置字体,背景颜色,文本颜色及指示确定在测试程序中开关的各种状态图(断开状态图、波动期状态图、闭合状态图)的具体画

32、法。2、计时器函数OnTimer(CDC *pDC ):是设置响应时间发生过程的。当开关闭合或者断开时,进入一个不稳定的时期,在这个时期开关的状态是随即在0和1之间变化的,也就是图4中带有峰值变化的阶段,通过加载DLL文件的应用程序(测试程序)每隔一定时间调用该函数,表达开关的这种变化。图4开关的随即状态显示3、鼠标捕捉函数MouseEvent(int event , CPoint pt):是负责捕捉鼠标信息的,利用鼠标响应模拟开关动作,当鼠标点击开关时,根据鼠标开关的状态(断开、闭合),改变开关的状态,进入时间响应相应的波动期。4、输入函数OutSig(int iPinNo , int iS

33、igVal ):是外部给某个管脚的信号值。当函数OutSig调用函数SetPin(int iPinNo,int iSigval)时,将信号值传递给SetPin,而后SetPin指示下一步该执行什么操作。5、显示函数DispMsg(CString s):负责显示当前状态,在特定的文本框中输出文本信息,显示现在在执行的动作。属于VisualexDoc的成员函数。4.3 单刀单掷开关功能实现4.3.1 工程创建首先打开Visual C+6.0操作界面,建立工程类型为MFC AppWizarddll的对话框文档的新工程,工程名字为D2SwitchDL系统自动为用户创建CDSwitch1DLLApp这个

34、类。创建过程如图5新建工程和图6应用程序向导所示:图5新建工程图6应用程序向导4.3.2 添加基类将DComponent.cpp和line.cpp两个基类及他们各自的头文件DComponent.h和line.h添加到工程中去,具体如图7插入文件所示:图7插入文件先将DComponent.cpp和line.cpp两个基类及他们各自的头文件DComponent.h和line.h拷贝到DSwitch1DLL当中,然后在FileView中分别在Source Files和Header Files文件夹点击右键选择“添加文件到目录”一项,就会出现上图,分别点击要选的选项添加到各自的文件夹中。4.3.3 创

35、建功能函数分别创建两个由基类派生的类开关的功能类DSwitch1和演示类VisualexDoc具体方法是这样的:点击插入类,就会出现图8新建类的提示框:图8新建类在类的类型中选择Generic Class 名称分别为DSwitch1和VisualexDoc,然后点击确定就会出现两个类及各自的头文件了。接下来分别在类里面写出功能函数。4.3.4 单刀单掷开关代码实现单刀单掷开关的有四种状态分别是:闭合状态,断开状态,由闭合转为断开的波动期,由断开转为闭合的波动期。利用DrawObject(CDC *pDC)函数进行设置,在具体程序代码如下:if(ss=0)CPen pen,*pold;pen.C

36、reatePen(PS_SOLID,3,RGB(200,0,0);pold = pDC-SelectObject(&pen);pDC-MoveTo(Pin1.Start.x,Pin1.Start.y);pDC-LineTo(Pin2.Start.x,Pin2.Start.y);pDC-SelectObject(pold);else if(ss = 1)CPen pen,*pold;pen.CreatePen(PS_SOLID,3,RGB(200,0,0);pold = pDC-SelectObject(&pen);pDC-MoveTo(Pin1.Start.x,Pin1.Start.y);pD

37、C-LineTo(Pin2.Start.x,Pin2.Start.y-20);pDC-SelectObject(pold);elseCPen pen,*pold;pen.CreatePen(PS_SOLID,3,RGB(200,0,0);pold = pDC-SelectObject(&pen);pDC-MoveTo(Pin1.Start.x,Pin1.Start.y);pDC-LineTo(Pin2.Start.x,Pin2.Start.y-rand()%20);pDC-SelectObject(pold);接下来通过OutSig(int iPinNo,int iSigval)函数读取输入信

38、息,判断开关的状态,用鼠标响应模拟开关动作,鼠标点击开关,如果是断开状态,执行MouseEvent(int event , CPoint pt)函数,改变开关的状态,由断开转为闭合的波动期,调用DispMsg函数在测试程序的信息框中显示“开关将由断开转为闭合的波动期”。执行时间响应函数OnTimer(CDC *pDC ),开关变为闭合状态,调用DispMsg函数在测试程序的信息框中显示“开关波动结束”。具体代码如下:int D2Switch:MouseEvent(int event , CPoint pt) if(ss = 0 )ss = 3;tstart = 0;pParent-DispMs

39、g(开关将由闭合转为断开的波动期);if(ss = 1)ss = 2 ; tstart = 0 ;pParent-DispMsg(开关将由断开转为闭合的波动期);return 1 ;int D2Switch:OnTimer(CDC *pDC ) if(ss = 2 | ss = 3)tstart += rand() % 10;if(tstart 100)ss -= 2 ;pParent-DispMsg(开关波动结束);DrawObject(pDC) ;return 1 ;如果是闭合状态,执行MouseEvent(int event , CPoint pt)函数,改变开关的状态,由断开转为闭合的

40、波动期,调用DispMsg函数在测试程序的信息框中显示“开关将由闭合转为断开的波动期”。执行时间响应函数OnTimer(CDC *pDC ),开关变为闭合状态,调用DispMsg函数在测试程序的信息框中显示“开关波动结束”。4.4 单刀双掷开关的功能实现单刀双掷开关的初期设置上,基本跟单刀单掷的功能设置是相同的。他们的不同之处就在于功能函数和仿真的实现。在开关的功能实现上首先判断开关的状态是断开还是闭合。接着用鼠标响应模拟开关动作,如果是断开状态,就要搞清楚开关具体打到哪个管脚上,然后用鼠标点击开关,进入相应的由闭合转为断开的波动期,执行响应函数,根据输入信号信息指示开关打到哪个管脚上。开关变

41、为闭合状态。如果是闭合状态,也需要知道开关位于哪个管脚上,然后用鼠标点击开关,进入相应的由闭合转为断开的波动期,执行响应函数,据输入信号信息指示开关从哪个管脚上断开,开关变为断开状态。4.5 键盘开关的主要功能由于有些技术上的问题还很复杂,在在本设计中没有成功设计出相应的DLL功能模块,有待以后改进,这也许是本次设计的一个遗憾吧!4.6 功能测试:图9单刀单掷开关测试程序界面图10单刀双掷开关测试程序界面在进行功能测试时,测试程序通过导出函数分别调用单刀单掷开关和单刀双掷开关的DLL功能模块,获得函数句柄,接着读取单刀单掷开关和单刀双掷开关的相应的管脚信息及界面画图信息等,然后根据每类开关的具

42、体功能函数依次执行程序。在函数执行过程中,开关的状态会发生变化,在开关状态发生变化过程中,MouseEvent和OnTimer函数会调用VisualexDoc函数中的DispMsg(CString str)(DispMsg是用来向测试程序发送相关信息的)。以显示开关执行的过程中发生的变化,如开关的断开、开关的闭合、开关瞬态响应变化等。具体程序如下:int CVisualexDoc:DispMsg(CString str)SendMessage(hDlgWnd,MYM_DISPMSG,(WPARAM)str.GetBuffer(0),NULL);str.ReleaseBuffer() ;retu

43、rn 1;int CVisualexDoc:AddDrawingLine(DComponent * object,int iPinNo , int iSigVal)struct tagAddDrawLine dl;dl.pComp = object;dl.iPin = iPinNo ;dl.iSig = iSigVal ;SendMessage(hDlgWnd , MYM_ADDDRAWLINE , (WPARAM)&dl , NULL) ;return 1;经过测试,成功的实现了上面两种开关的功能及成功的仿真实现了开关的瞬态响应特点。结 论通过本次课题的研究,弥补了虚拟实验平台在外设方面的一

44、些不足之处,增加开关类部件的模拟仿真实现功能,通过分类,建立不同的DLL模块,仿真实现了单刀单掷开关,单刀双掷开关的功能,同时,增加了开关在闭合与断开状态的转变过程中的时间响应,使模拟仿真设计更接近实际效果。对于单刀单掷开关和单刀双掷开关,经测试,基本达到设计目标,使人们更直观的更形象的观测演示实验过程和结果,更好的理解电路运行原理。本次设计中虽然在外设方面弥补了一定的缺陷,但是还没有完全的将外设这方面的不足改进,如在键盘类开关上,由于时间有限,且对VC+6.0开发环境和编程不够熟悉,对仿真技术的掌握还不够深入等因素,未能成功进行改进,有待以后研究改进。另外,在这次设计中,也曾遇到不少问题,通

45、过查找资料、请教老师、请教同学都等到了解决。同时自己得到了知识的补充,增强了自己的动手能力及独立思考的能力。总之,通过本次开发设计自己获益非浅。参考文献1刘瑞叶.计算机仿真技术基础M.北京:子工业出版社.2004.4。2Walter Savitch(美).C+面向对象程序设计M.周靖译.北京:华大学出版社.2003.11。3李明柱,单肃,赵光启.Visual C+最新编程实践与技巧M.北京:北京航空航天大学出版社.2000.12。4孔鹏.Visual C+6.0完全自学手册M.北京:机械工业出版社。2006.12。5揣锦华.面向对象程序设计与VC+实践M.西安:西安电子科技大学出版社.2005.2。6韦有双等.虚拟实现与系统仿真M.北京:国防工业出版社.2004.1。7林青松.Visual C+案例开发M.北京:中国水利水电出版社 2005。8徐慧.Visual C+数字图像实用工程案例精选M.北京:人民邮电出版社.2004。第 17 页 共 19 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!