人机接口设备.docx

上传人:小飞机 文档编号:5005913 上传时间:2023-05-29 格式:DOCX 页数:36 大小:199.07KB
返回 下载 相关 举报
人机接口设备.docx_第1页
第1页 / 共36页
人机接口设备.docx_第2页
第2页 / 共36页
人机接口设备.docx_第3页
第3页 / 共36页
人机接口设备.docx_第4页
第4页 / 共36页
人机接口设备.docx_第5页
第5页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《人机接口设备.docx》由会员分享,可在线阅读,更多相关《人机接口设备.docx(36页珍藏版)》请在三一办公上搜索。

1、人机接口设备一示波器的仿真实现摘要仿真是求解随机问题的技术。随着具有存储功能的计算机的出现,计算机仿 真技术越来越受到重视,现已被应用于各个领域。本系统主要用于教育领域,形 象了演示了示波器的功能,方便了老师的教学。本文主要描述了仿真技术的基本概念以及仿真技术,介绍仿真技术在现实生 活中的应用实例,讨论了仿真理论目前的发展状况、前景以及论文研究的目的和 意义。本文所设计实现的基于仿真技术的示波器仿真实验系统是在Visual C+6.0 开发环境下编程实现的,利用MFC类库和Visual C+提供的高度可视的应用程 序开发工具,在其开发的小型应用程序平台上实现示波器控制面板的绘制、位图 资源的加

2、载,可以分别选择单踪波和双踪波的通道来实现不同波形的动态演示, 以及实现双踪波幅值分离的设计实现和波形周期的增加和减小。本文的最后对设 计研究工作进行了总结,指出了研究上的不足和系统需要改进的地方,说明了需 要进一步深入讨论的内容。关键词:模拟仿真;随机问题;MFC类库;可视化Man-machine Interaction Equipment-Oscilloscope Simulation AbstractSimulation technology is a skill to solve random problem. With the memory function of the compu

3、ter, computer simulation technology has been widely applied in various fields. The system is mainly used for teaching and the visualized demonstration of the oscilloscope functions will facilitate the teachers teaching.The thesis describes the basic concepts of simulation technology. And with applic

4、ation examples in real life about simulation, it discusses the current development situation and prospects of simulation technology, as well as the purpose and significance of the research in the thesis.The oscilloscope simulation system which based on simulation technology in the thesis is in Visua

5、l C + + 6.0 Programming environments. Using MFC and Visual C + + which provide a high degree of visual application development tools, the system can achieve such functions: the drawing of oscilloscopes control panel, the loading of bitmap resources, the dynamic displaying of different waveform with

6、single-track and double-track channel respectively, and the achievement of amplitude separation and the variation of time cycle of the wave of double-track. Finally, the thesis concludes for the research, and points out the lack of the system and the content for discussing further.Key words : Simula

7、tion; Random Problem; MFC; Visualization论文总页数:29页1 引言11.1 仿真理论的发展11.2 计算机仿真技术11.3 计算机仿真应用实例21.4 论文的目的及意义22 系统的总体设计32.1 系统功能说明32.2 开发运行平台选择及分析32.2.1 实现系统的硬件环境32.2.2 实现系统的软件环境42.2.3 实现系统的理论基础43 示波器仿真系统的实现43.1 应用程序平台基本框架的建立43.1.1 添加消息处理函数63.1.2 添加成员变量83.1.3 添加 RECOURCE 资源93.1.4 定时器成员函数103.1.5 通道的选择103.

8、1.6 BUTTON单击事件的设计113.2 曲线面板的设计143.2.1 位图资源及其应用143.2.2 图形刷新163.2.3 获取设备环境183.2.4 映射模式193.2.5 绘图工具213.3 本章小节234 系统运行结果及工作总结234.1 系统运行结果234.2 遇到的问题及解决方法254.3 系统改进方法26结 论26参考文献26致谢27声明281引言1.1仿真理论的发展仿真技术最早可以追溯到1773年法国自然学家G.L.L.Buffon为了估计n的 值而采用随机数做实验来求解随机问题。仿真又称做蒙特卡罗方法。比较早而且 著名的蒙特卡罗方法使用者是W.S.Gosset。他在19

9、08年以“Student”为笔名 发表论文时,使用了蒙特卡罗方法来证明他的t分布法。尽管蒙特卡罗方法起源 于1876年,但是直到75年之后才被命名。现代化的具有程序储存功能的计算机 使冗长的计算成为可能,而这种计算正式蒙特卡罗所要求的。如今计算机仿真技术被广泛运用于众多的领域之中。在国外,1876年,美 国统计学家第一次使用仿真模拟方法做随机实验。进入20世纪80年代,仿真模 拟技术在高科技中所处的地位日益提高。一些发达国家非常重视仿真模拟技术的 开发利用,在科学研究、工业、交通、军事、教育等领域得到大量应用。1.2计算机仿真技术所谓计算机仿真是指在实体尚不存在、或者不易在实体上进行实验的情况

10、 下,先通过对考察对象进行建模,用数学方程式表达出其物理特性,然后编制计 算机程序,并通过计算机运算出考察对象在系统参数以及内外环境条件改变的情 况下,其主要参数如何变化,从而达到全面了解和掌握考察对象特性的目的。计算机仿真技术是作为分析和研究系统运行行为、揭示系统动态过程和运动 规律的一种重要手段和方法。近年来,随着系统科学研究的深入、控制理论、计 算技术、计算机科学与技术的发展,计算机仿真技术已发展成一门新的学科。信 息处理技术的突飞猛进,更使得仿真技术得到迅速发展。一、计算机仿真的特点1. 模型参数任意调整模型参数可根据要求通过计算机程序随时进行调整,修改或补充,使人们能 够掌握各种可能

11、的仿真结果,为进一步完善研究方案提供了极大的方便。2. 系统模型快速求解借助于先进的计算机系统,人们在较短时间内就能知道仿真运算的结果(数 据或图像),从而为人们的实践活动提供强有力的指导。这是通常的数学模型方 法所无法实现的。3. 运算结果准确可靠只要系统模型、仿真模型和仿真程序是科学合理的,那么计算机的运算结果 一定准确无误(除非机器有故障)。因此,人们可毫无顾虑地应用计算机仿真的结 果。4. 实物仿真形象直观只要系统模型、仿真模型和仿真程序是科学合理的,那么计算机的运算结果 一定准确无误(除非机器有故障)。因此,人们可毫无顾虑地应用计算机仿真的结 果。1.3计算机仿真应用实例因工作需要,

12、要求一油缸保持稳定的工作压力,具体参数如下:油缸设定压 力10bar,压力允许误差为15%,蓄能器体积6.3L,充气压力2bar,其它参数如 电机转速、泵排量、缸径、泄露量等皆为已知,图一为该系统的仿真模型,其保 压原理是通过检测液压缸内的工作压力并与设定的压力进行比较从而决定是否 启动电机带动泵运行。当对仿真模型中的每个图形模块设置我们所期望的参数值 后,运行该仿真模型便可得出多种仿真结果。1. 压力对比为了比较采用保压控制和不保压控制这两个方案,仿真的结果告诉我们,由 于没有采用保压控制,在泄漏的影响下,系统的压力一直在下降,经过一段时间 后,缸内的压力就达不到压力要求了,而采用了保压系统

13、的方案,缸内的压力可 以一直维持在要求的压力上。2. 仿真结果通过仿真计算,还可以直接做出采用保压控制方案后缸内压力随时间的变 化,可以知道:缸内压力建立需要的时间是25秒,进一步放大图中直线部分, 我们可以清楚地看到缸内压力的波动情况,压力波动的振幅为0.008bar。此外 我们也可以将电机启动停止情况和压力波动情况绘在一张图上,电机在100秒的 仿真时间内起停了三次。3. 参数优化如果需要考察气囊式蓄能器预充气压力对压力波动、压力建立时间及其保压 时间等参数的影响,可以利用AMESim的Batch仿真运行模式,分别将预充气压 力设定为2bar、5bar和8 bar,从图七中可以明显看出:充

14、气压力小时,压力 波动值较小,但是压力建立时间长,保压时间短;充气压力高时,压力虽可迅速 建立,保压时间也较长,但是压力波动也较大。因此在产品设计阶段我们可以根 据要求在压力波动、压力建立时间及其保压时间之间折衷以确定最佳的预充气压 力。1.4论文的目的及意义本系统的目的是利用VC+进行简单仿真实现的人机交互设备,完成了一个 小型的应用程序及简单示波器仿真系统。论文主要涉及到仿真模拟技术,通过对 次系设计开发对仿真理论的发展及主要内容有了基本的认识与了解。通过对仿真系统的设计与实现,笔者熟悉了 VC+的MFC开发模式流程,掌握了仿真技术的思想,完成了简单的示波器仿真系统,验证了仿真在连续系统仿

15、 真下的可行性。2系统的总体设计系统设计的基本思想是以示波器的工作原理为基础,通过Visual C+语言 设计实现完成一个小型的示波器仿真系统。2.1系统功能说明本系统是利用VC+的MFC类库设计搭建的应用程序基本框架,在其基础上 添加一些相关的类和消息处理机制。本系统在运行以后,就可以点击相关的按钮 来选择单踪波和双踪波的演示。并在此基础上可以点击相应的按钮来调节波形幅 度和波形周期,另外,如果选择的是双踪波的演示,我们可以点击相应的按钮来 实现双踪波的分离,使两个波的幅度差越来越大。直观上充分的说明了示波器的 工作原理。功能模块划分如下:图1功能模块图示波器的虚拟实顼双踪波示波器基本椎架波

16、形模块方波示波器控制面板正弦波2.2开发运行平台选择及分析本系统是以VC+6. 0结合图形可视化的思想作为系统的开发环境。2.2.1实现系统的硬件环境实现本系统的硬件配置如表1所示:表1硬件配置CPUAMD Sempron(tm) 2200+内存1.50 GHz,512 M显卡NVIDIA GeForce4 MX 440 with AGP8X笔者所搭建的仅是一个小型的实验模拟系统,因此一般的用户PC机都可畅 通无阻的运行本程序。2.2.2实现系统的软件环境Visual C+自诞生以来,一直是Windows环境下最主要的应用开发系统之一。 Visual C+不仅是C+语言的集成开发环境,而且与W

17、in32紧密相连,利用Visual C+开发系统,可以完成各种各样的应用程序开发,从底层软件直到上层直接面 向用户的软件。而且,Visual C+强大的调试功能也为大型复杂软件的开发提供 了有效的排错手段。进入20实际90年代以来,随着多媒体技术和图形图像技术的不断发展,可 视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员都开始研究并 应用可视化技术。Visual C+是一个很好的可视化编程工具,使用Visual C+ 环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友 好,便于程序员操作。2.2.3实现系统的理论基础Visual C+是一个很好的可视化

18、编程工具,使用Visual C+环境来开发基 于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于操作。 开发环境是编程者同Visual C+的交互界面,通过它可以访问C+源代码编辑器、 资源编辑器、使用内部调试器,还可以创建项目文件。3示波器仿真系统的实现3.1应用程序平台基本框架的建立笔者使用VC+6. 0结合图形可视化技术实现了示波器的仿真试验系统。打开 Visual C+6.0操作界面,建立工程类型为MFC AppWizard exe的对话框文档 的新工程,系统自动为用户创建CMyApp, CMyDlg两个类。创建过程如图所示:Project name: 示波器演示L

19、ocation:D: WC编程尽波器演示 Create new workspacePlatforms:Win32newFiles Projects Workspaces I Other DocumentsATLCOM AppWizard Cluster Resource Type Wizard Custom AppWizard (Database Project DevStudio Add-in Wizard 曾 Extended Stored Proc Wizard 矗ISAPI Extension Wizard Makefile IMFC ActiveX Controlwizard 箜 M

20、FC AppWizard dll S3 MFC AppWizard exe 机 Utility Project 前Win32 Application Win32 Console Application g Win32 Dynamic-Link Library 国 Win32 Static Library图2创建工程的界面What type of application would you like to create?Single documentMultiple documents* Dialog based图3选择工程类型的界面Application type of 示波器演示:Dialo

21、g-Based Application targeting: Win32Classes to be created:Application: CMyApp in 市板器演示.h and ; 毯鞭示.c叩Dialog: CMyDIg in不波器演不Dlg.h and不披器演不Dlg.cppFeatures:+ About box on system menu+ 3D Controls+ Uses shared DLL implementation (MFC42.DLL)+ ActiveX Controls support enabled+ Localizable text in:中文中国1图4创

22、建好的工程信息界面在Resource View中的Dialog文件目录下有两个对话框,分别为IDD-ABOUTBOX 和 IDD-MY-DIALOG,如下图所示:示波器演示1.版版权所有(C) 2007确定图 5 IDD-ABOUTBOX在IDD-MY-DLALOG对话框中进行设置,在对话框中添加一个 STATICTEXT控件和四个GROUP BOX控件,然后再在每个GROUP BOX控件中添加 相应的BUTTON按纽,结果如图所示:ZI示诚署演示x幅值调节时间调节双踪分离调节色网 判 赢|减小|增加|减小|图 6 IDD_MY_DIALOG3.1.1添加消息处理函数为每个按纽创建类向导,右键

23、单击,选择“CLASS WIZARD”,就会出现如图 所示的对话框:MFC ClassWizardMessage Maps Member Variables Automation ActiveX Events Class InfoProject:Class nanie:22, CMy22DlgD:l.侑用的源代昭2222Dlg.h, D:l.2222Dlg.cppObject IDs:CMy22DlgIDC_AMINUS IDC APLUSMessages:BN CLICKEDBN_DOUBLECLICKEDIDC BMINUSIDC_BPLUSIDC_TIMEMINUSIDC_TIMEPLU

24、SMember functions:V DoDataExchangeW OnAminusON_IDC_AMINUS:BN_CLICKEDW OnAplusON_IDC_APLUS:BN_CLICKEDOnBminusON_IDC_BMINUS:BN_CLICKEDW OnBplusON_IDC_BPLUS:BN_CLICKEDDescription: Indicates the user clicked a button图7 CLASS WIZARD对话框此对话框主要是用来为每个用ID标志的按纽添加消息处理函数,如对应的 ID为IDC-BMINUS的按扭,有两个相应的消息处理函数,如 BN_C

25、LICKED与 BN_DOUBLECLICKED,而我们在此工程中用到的是BN_CLICKED,点击有边的添加消 息处理函数就可以了,双击相应的消息处理函数名就可以进入相应的消息处理函 数的编辑,如对应的幅值增加按扭的消息处理函数为:Void CMy22Dlg:OnVoltplus ()ID_VOLTMINUS (对应的幅值减小的按扭):Void CMy22Dlg:OnVoltminus ()在相应的DLG.H文件中的CLASS CMY22Dlg: publicCDialog中就会出现相 应的消息处理函数的声明(AFX_MSG (CMy22Dlg)Virtual BOOL OnInitDial

26、og ();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnVoltplus();afx_msg void OnVoltminus();afx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidafx_msgvoidvoidOnTimeplus();OnTimeminus();OnAplus();OnAm

27、inus();OnBplus();OnBminus();OnRadio1();OnRadio2();OnRadio3();afx_msg)/AFXDECLARE_MESSAGE_MAP ()MSG3.1.2添加成员变量同样右键单击“ CLASS WIZARD”,在弹出来的对话框中点击“ MemberVariables,就可对相应的控件添加相应的成员变量,如图所示:MFC ClassWizardMessage Maps Member VariablesProject:AutomationActiveX EventsClass name:Class InfoAdd Class. Add Varia

28、ble.Delete VariableAPLUSCButtonmbtnaplusBMINUSCButtonm btnbminusBPLUSCButtonmbtnbplus1IMEMINUSCButtonm btntimeminusTIMEPLUSCButtonmbtntimeplusVOLTMINUSCButtonm btnvoltminusVOLTPLUSCButtonm btnvoltplus22 CMy22Dlg有用的源代码2222Dlg.h, D:.2222Dlg.cppControl IDs:TypeMemberIDC AMINUSCButtonm btnaminusc c c c

29、c c c D D D D D D DDescription: map to CButton member图8添加成员变量的界面在相应的DLG.H文件中的CLASS CMY22Dlg: publicCDialog中就会出现以 下代码:/ Dialog Data/(AFX_DATA(CMy22Dlg)enum ( IDD = IDD_MY22_DIALOG );CButtonm_btnaminus;CButtonm_btnaplus;CButtonm_btnbminus;CButtonm_btnbplus;CButtonm_btntimeminus;CButtonm_btnvoltplus;CB

30、uttonm_btnvoltminus;CButtonm_btntimeplus;CString m_wndscope;/AFX_DATA3.1.3 添加 RECOURCE 资源在“RECOURCE VIEW”中,展开“ ICON”目录,右键单击,选择“ IMPORT” 选项,则会弹出以下对话框:Import Resource查找范围(X):res=1&m_dDimY=10&m_dDimY=100&m_dDimY=1000)m_dDimY+=1000;Else if (m_dDimY=0&m_dDimY1&m_dDimY10&m_dDimY100&m_dDimY1000)M_dDimY-=10

31、00;If (m_dDimY-60)m_Amove=m_Amove-10;Break;/则A的Case 5:(If (m_Amove-60)m_Bmove=m_Bmove-10;Break;Case 7:(If (m_Bmove60)m_Bmove=m_Bmove+10;Break;Default:Break;Invalidate ();3.2曲线面板的设计3.2.1位图资源及其应用位图是一种数字化的图形表示形式,是表示一个图像目标的系列数据,应用 程序使用位图能很快地将预先定义好的物体显示到屏幕上。位图中的每个像素点 有位图文件中的一位或多位数据表示。整个位图的信息被细化为每个像素点的属 性

32、值。与设备相关的位图是与特定的显示设备相联系的,这种位图的位和显示输出 设备的像素之间关系密切。与设备无关的位图与特殊的显示设备之间的关系较松 散,这种位图表示的是图象的外形而不是位图的位与输出设备像素之间的关系。对于绘图或照片一类的位图数据量一般较大,因此为了提高显示刷新速度, 位图操作须在内存中进行。用于位图操作的系统设备环境为内存设备环境。应用 程序首先要通过调用函数CreateCompatibleDC向系统申请获取内存设备环境。 其形式为:hdcmem二CreateCompatibleDC(hdc);与设备环境相似,内存设备环境也有设备描述表。应用程序获取内存设备环 境后,调用函数Se

33、lectObject将位图文件内容选入内存设备环境之后,既可直 接在内存设备环境中操作位图,如绘制图形及编辑等。操作位图结束后,应用程 序必须调用DeleteDC(hdcmem)来释放内存设备环境。位图操作过程包括定义加载或创建,选入内存设备环境和输出。1. 位图的定义:定义一个位图句柄,其形式为:HBITMAP hbM;而在本系统中作者使用到了两个位图,首先要在Resource View中右键点击 “insert”,在弹出的对话框中选中“Bitmap”这一栏,“Iimport”相应的位图 资源。在“Bitmap “文件目录下,我们可以看到我们刚刚” Iimport “的位图, 这两个位图的I

34、D分别为IDB_TITLE,IDB_TRACK2. 位图的加载或创建:应用程序调用函数LoadBitmap加载位图并获得位图的句柄,其形式为:hBm二LoadBitmap(hInstance,lpszName此外,应用程序还可通过调用函数CreateCompatibleBitmap创建位图。其 形式为:hBm二CreateCompatibleBitmap (hdc, nWidth, nHeight)在本系统中,笔者定义了两个位图,在Scope.h中声明了两个位图,声明语 句如下:CBitmap m_bitmapTitle;CBitmap m_bitmapTrack;在ClasssView中,在

35、Scope类中添加成员变量,选择“Add member variable “,弹出添加成员变量的对话框,在对话框中可以设置变量的类型以及变量的访 问类型,如” public”,” private”,” protect” .如图所示:Add Member Variable?:Variable Type:KCBitmapCancelVariable Name:m_bitmapTitleAccess厂 Public L Protected * Private图10添加成员变量在Scope.cpp的Scope构造函数中,笔者使用了 LoadBitmap()函数来加载 之前导入的位图m_bitmapTitle.LoadBitmap(IDB_TITLE);/加载IDB_TITLE 这个位图m_bitmapTrack.LoadBitmap(IDB_TRACK);加载

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号