【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-正弦波信号的采集数据分析程序设计 - 毕业设计,希望本篇文章对您学习有所帮助。
综合课程设计
报告正弦波信号的采集数据分析程序设 计 学院(系): 计算机科学与工程学院 班 级: 学生导教师: 时间: 从 2010 年 9 月 13 日 到 2010 年 9 月 30 日1.绪论 1.1 课题的选题背景 测量是人类认识自然、改造自然的一种手段,通过测量人们可以对客观世界取得定量的信息, 仪器是测量中必不可少的工具。
电子测量是利用电子学的理论和技术对电量和非电量进行观察和测量的装置和系统。
随着电子技术的发展及其在各方面的广泛应用, 对于测量和仪器提出了更高的要求,测试项目和范围与日俱增,测试精度和测试速度要求急剧提高。
七十年代以来,是电子测量和仪器领域发生飞跃变化的年代, 微计算机的问世和大规模集成电路的发展对这一领域产生了革命性的影响。
在测试系统中,对仪器的“智能”要求越来越高,仪器中微机的任务不断加重,仪器在很多方面逐渐向微计算机靠拢。
此外,随着微计算机和智能仪器的普及, 测试系统中包含的重复部件越来越多, 而冗余的部件往往不能容错。
因此需要统筹地考虑仪器与
计算机之间的系统结构。
在这种背景下,1982 年出现了一种与 PC 机配合使用的模块式仪器,自动测试系统结构也从传统的机架层迭式结构发展成为模块式结构。
与传统仪器不同的是,模块式仪器本身不带仪器面板,因此必须借助于 PC机强大的图形环境和在线帮助功能,建立图形化的“虚拟的”仪器面板,完成对仪器的控制、数据分析与显示。
这种与 PC 机结合构成的,包含实际仪器使用与操作信息软件的仪器,被称为“虚拟仪器” 。
与传统仪器相比,虚拟仪器具有以下几个性能特点: 1. 虚拟仪器的硬、软件具有开放性、模块化、可重复使用及互换性等特点。
为提高测试系统的性能,可以方便地加入一个通用仪器模块或更换一个仪器模块,而不用购买一个全新的系统,有利于测试系统的扩展。
2. 可由用户自定义仪器功能。
由于仪器的功能可在用户级上产生,故它不再完全由仪器生产厂家来确定, 用户可以根据自己的需要,通过增加或修改软件,为虚拟仪器加入新的测量功能,而不用购买一台新的仪器。
3. 数据处理能力强。
由于借助于计算机,虚拟仪器可以实现过去比基于微处理机内核仪器复杂许多的数据处理、分析与显示能力,并可利用数据文件或数据库格式进行数据的存储与恢复。
1.2 课题的国内外研究现状 示波器是一种图形显示设备,它在描绘电信号的波形曲线的同时说明信号的许多特性:信号的时间和电压值、振荡信号的频率、是否存在信号失真、比较多个波形信号等。
我们可以从其操作面板的显示屏幕上直观地观察到波形和一些重要参数。
而虚拟示波器就是在传统的示波器的基础上体现了虚拟仪器可重复使用、更好的面向对象的优势。
对于虚拟示波器来说,最为重要的应该是其应用程序的开发环境。
自动测试系统应用程序开发环境可以选择传统文本形式的语言环境,如
VB、VC、Delphi或 LabWindows/CVI 等, 也可以选择图形化的软件开发环境。
被称为快速应用程序开发环境(RAD)的 VC、
VB、
Delphi 等开发平台具有可视化界面与已经以类形式封装的可视化控件, 在很大程度上编程也不需要从头开始。
而另外的基于图形化的编程平台是 NI 公司的 LabVIEW,它具有图形化的源
代码且能提供复杂的数学分析能力以及丰富的数据显示方式。
一台传统的独立示波器,往往具有一个操作前面板,我们可以通过操作面板上的显示屏幕作为图形化输出。
所有的功能, 均需要通过仪器面板的操作来实现,这个操作面板是人与机器的交互面板, 是传统意义上的人机交互界面。
而虚拟示波器的最大特点就是抛弃了传统示波器的操作面板, 所有操作与波形显示均须借助计算机强大的计算与显示功能来实现, 用户与示波器的交互界面变成了由计算机
软件实现,也即软面板。
软面板的存在使得人机交互更为自然,而源
代码的编写使得这一交互真正成为可行。
不论是哪种类型的开发环境,都致力于产生一个整合性能较好的应用程序,使示波器完成预期的任务,实现波形的显示以及谱线的分析等基本功能。
1.3 本人所做的主要工作 1、在同一窗口画出两条曲线 2、能够对曲线放大、缩小 3、找到曲线的最大、最小点,用鼠标点击曲线上的点能够显示该点的坐标 4、选作:用 DFT 分析计算该正弦波的有效值(电压、电流、有功、无功、功率因数、谐波等)2.课题需求分析 2.1 课题的功能需求 虚拟示波器的设计要使外接数据采集卡的 PC 机的界面上显示出对应数据的波形,并对波形进行分析和存储,以及对一些波形参数进行测量和显示,这一切都应该通过安装在 PC 上的开发环境产生前面板及内部源
程序, 形成一个完整的软件系统。
而基于示波器针对波形的基本处理操作,我们需要通过开发环境完成信号采集、波形控制、数据分析等功能,并使得虚拟仪器的优越性——可适当添加新的模块——进而完整该系统的设计构想。
1.、界面控制和波形显示模块: 界面控制和波形显示模块主要的功能是: 使得人机交互界面能够实现复位和退出波形基本显示等功能。
2、数据采集模块: 数据采集模块主要完成的功能是:通过设置采样通道采样频率触发产生的方式等条目由外部的数据采集卡将数据以波形的形式在显示区呈现出来 (故波形的显示模块有一部分是与数据采集模块交叉在一起的) 。
3、波形的测量模块: 波形的测量模块主要完成的功能是:随着设置在波形图上的游标的移动可测量出此游标的中心所在的 X 轴和 Y 轴的坐标; 并且可以通过一些控件来控制和更改图形的显示范围。
几乎所有的模块都与界面控制和波形显示模块有直接或间接的关系: 数据采集模块和数据读取模块可以将代表某种波形的数据引入
系统以波形的形式呈现在波形显示模块中 波形测量模块中对波形参数的一些控制会使得波形显示模块中的波形有相应的变化当然这一过程是通过在程序中调用相应的函数和设置相应的参数实现的, 如在波形显示控制模块中。
定义可以存储数据的变量来记录经过调整的波形,再通过把变量存储进 PC 的某个文件夹,以便在波形的读取和存储模块中可以调出来用数据描述的波形。
3. 涉及的主要
工作原理和关键技术介绍 3.1 Measurement Studio 原理技术 1 介绍 NI Measurement Studio 是为 Visual Studio .NET 和 Visual Studio 6.0 环境 提供的一个集成式套件,包括各种常用的测量和自动化控件、工具和类库。
NI Measurement Studio 带有的 ActiveX 和.
NET 控件、面向对象的测量硬件 接口、高级的分析库、科学的用户界面控件、测量数据
网络化、向导、交互 式
代码设计器和高扩展性类库等功能,极大的减少了应用程序 的开发时间。
Measurement Studio 企业版和专业版继续提供在 Visual C 6.0 和 Visual Basic 6.0 环境下开发所需的 ActiveX 控件和类库。
利用交互式 ActiveX 属性页面,您可以为模拟输入和输出、数字 I/O、GPIB、VISA 以及更多的设备图形化配置数据采集和仪器控制应用程序。
科学分析库 包括了很多
常用函数,如快速傅立叶变换(Fast Fourier transforms) 、频 谱测量和数组操作等。
此外,包含在 Measurement Studio 里的 ActiveX 用户界面控件专为使您创建一个如同真实世界仪器的虚拟仪器系统而 设计。
3.2 关键问题解决思路 3.2.1 measurement studio 安装问题的解决方法 在 windows 下装软件会遇到这么大的挫折,还好最终总算是装上了。
安装过程如下: 1.首先安装 vc6.0 中文企业版。
2.安装 NI Measurement Studio for vc 6.0。
问题就在这里: 安装时它会提示你安装前需要安装微软的 visual c service pack 3 or later。
就是说要你安装 pack 3 或者 3 以后的补丁。
于是我在微软的中文网 站下载了个 Service Pack 6 for Visual Basic 6.0 Visual C 6.0 with Visual Source Safe 6.0d。
也就是 sp6. 我开始想我的 vc 是中文版的,于是下了个 中文版的 sp6.结果解压安装提示:“无法找到与操作系统语言匹配的 vc”然后 就弹出。
我下了各个版本的都不行。
sp6 就是装不上。
google 一下发现很多 人有这样的
问题,都没
方案。
下了个英文版的 sp6.问题终于算是解决了。
3.2.2 CWgraph 控件显示波形的解决方法 首先我对这个控件的基本操作熟悉了一遍,其次对其属性表里面的各项 属性进行了详细的操作和实践,比如如何在这个控件中添加显示波形 1 和波 形 2 的响应函数,如何添加表格和游标等。
如: m_graph1.Plots.Item2.PlotYm_wave2就是将模拟的正弦曲线 m_wave2 在 graph 控件上显示出来,当然在这之前必须对曲线进行初始化。
3.2.3 读取文件显示波形问题的解决方法 当我接触到 Measurement Studio 环境时,刹那间被那些控件吸引住了, 有二维的,立体的,比当时学的 MFC 里面的控件好看多了,而且很具有现 实感。
第一步就是先把采集到的数据通过 txt
文档的形式读取出来,这个主 要就是读取文件的操作,第二步就是如何将获取到的文件内容通过描点的方 法显示在 graph 控件上,我当时想到了两种方法,一种是 GDI 画图,一种是 数组的方式,后期对控件的熟悉后最终还是选择了数组的方式将图像显示出 来。
4 系统设计 提示:主要用流程图形式,并配以文字进行说明 4.1 系统总体结构、模块或流程 图 1、系统总体模块结构 界面控制和波形显示模块主要的功能是:使得人机交互界面能够实现复位和退出波形基本显示等功能。
数据采集模块主要完成的功能是:通过将数据以波形的形式在显示区呈现出来 。
波形的测量模块: 波形的测量模块主要完成的功能是: 随着设置在波形图上的游标的移动可测量出此游标的中心所在的 X 轴和 Y 轴的坐标; 并且可以通过一些控件来控制和更改图形的显示范围。
4.2 界面控制和波形显示子模块 1
设计 图 2、界面控制模块1、U wave:初始化和读取文件显示电压的波形曲线的视图界面。
2、I wave:读取文件显示电流的波形曲线的视图界面。
3、Up:对模拟波形放大操作。
4、Down:对模拟波形缩小操作。
5、Back:复位操作。
6、reset:初始化操作。
7、quit:退出操作。
8、read U:读取电压信号并显示在 m_graph1 控件上。
9、read I:读取电流信号并显示在 m_graph2 控件上。
10、Clear:清空界面的数据。
图 3、波形显示模块。
1、模拟波形的显示部分
代码: CNiMath::SineWavem_wave2c3c2 m_graph1.Plots.Item2.PlotYm_wave22、读取文件显示波形的部分
代码: CString PuffXpuff.Leftpuff.Find puff puff.Rightpuff.GetLength-PuffX.GetLength-1 PuffX.TrimLeft PuffX.TrimRight CoorCountatoiPuffX CString tempX PuffX double xatoitempX m_graph1.Plots.Item1.ChartYx4.3 波形的读取子模块 2 设计 1 电压波形读取模块流程图如下: 图 4、波形读取流程图 图 5、读取后显示出来的电压正弦波形 2、电流波形读取流程类似电压读取流程。
5.系统实现 主要根据系统设计的各个子模块进行描述 首 先 通 过 AppWizard 建 立 应 用 程 序 框 架 并 新 建 一 个 工 作 区 取 名 workspace并在该工作区下添加一个项目命名 project。
这样直至应用程序框 架生成再调用已被安装在 VC下的 Measurement Studio 中的控件如 slide、knob、graph、button、numedit 等。
然后便可以在对话框中进行具体 模块的实现了。
5.1 界面控制和波形显示子模块 1 实现 界面控制和波形显示模块中通过设置图形显示控件以及两个按键这三个控件都属于 Measurement Studio 的专用控件。
它们分别完成波形的显示、复位及退出的基本功能。
这一模块中主要应用的是控件属性的添加和变量的设置。
在控件工具栏中波形图的位置上按下鼠标并拖动鼠标画出一个适中的Graph 控件。
在 Graph 上单击鼠标右键选择 properties 对话框分别对各个选项卡进行参数设置。
在 General 选项卡中将 Caption 改为 wave在 Plots选项卡中设置两个波形并分别将它们的颜色改为一绿一红分别对应数据采集模块中的两个通道在 Cursor 选项卡中添加一个游标并将其 Crosshair 设置为 Major X Major Y在 Axes 选项卡中设置 X 轴和 Y 轴并将 X 轴的取值范围设为 0—400将 Y 轴的取值范围设为-1600—1600。
在属性设置完毕时在 ClassWizard 中为 Graph 设置一个变量 m_graph1以便于以后对某些成员定义时调用方便。
最后在工具栏中的 ClassView 里对 CProjectDlg 进行两个变量 m_wave1 和 m_wave2 的添加以便于对两个波形数据的存储这便完成了该模块与波形的读取和存储模块的交互。
Graph 设置完毕接着添加两个 Caption 为复位和退出的按钮用来对界面进行控制。
分别在它们各自的 ClassWizard 中添加 ValueChanged 功能并编写相应
代码如下: 1. 复位按钮: CNiMath::SineWavem_wave11000500 此处调用系统自带的正弦函数,并将正弦波存储在 m_wave1 变量中; m_graph1.Plots.Item1.PlotYm_wave1 使用 m_wave1 中存储的数据在示波区画出编号为 1 的图形,m_wave1中的数据映射为 波形的纵坐标,此
代码中对于变量 m_graph1,引用了其属性 Plots; 2. 退出按钮 OnOK5.2 波形的读取子模块 2 实现 在通道设置组框中安置了两个复选框控件用以控制相应通道采集的信号的显示。
流程如下: 在控件工具栏中复选框的位置上按下鼠标左键并拖动鼠标画出一个大小合适的复选框控件。
在控件上单击鼠标右键在弹出的快捷菜单中选择Properties 对话框在该对话框中重新输入控件的 Caption 属性为 Channel 1。
然后再右击该复选框选择 Class Wizard 对话框在 Member Variables 选项卡中为 Channel 1 控件添加变量 m_check1在 Member Maps 选项卡中为Channel 1 控件添加功能 BN_CLICKED最后单击 Edit Codes 按键进入projectDlg.cpp 进行该功能相关
代码的添加Channel 2 设置如 Channel 1。
图2 “Channel 1” 功能、变量设置 图 3 “Channel 1”属性设置5.3 波形的测量子模块 2 实现 波形的测量模块中包含对游标中心的位置测量分别针对波形图中的 X轴和 Y 轴最大值的调整组框。
在游标位置测量组框中放置了两个数据编辑框此类型的编辑框是由Measurement Studio 环境提供的。
这两个编辑框分别展示游标中心位于 X轴和 Y 轴的位置。
这一测量是由在 Graph 中定义的功能 CursorChange 实现的再将获得的数据赋给代表编辑框的变量。
具体
代码如下: m_numedit3.Value m_graph1.Cursors.Item1.GetXPosition m_numedit4.Value m_graph1.Cursors.Item1.GetYPosition 上述
代码中调用了 GetXPosition 和 GetYPosition 函数, 即用此函数捕捉游标中心所在位置的 X 坐标和 Y 坐标,并分别将它们的值赋给两个编辑 框变量。
6.系统测试 6.1 测试环境介绍测试环境如何搭建 本设计中使用的开发环境是 Visual C 6.0 的环境下通过添加 NI 公司推 出的集成式套件 Measurement Studio 来构成的。
所以在 Visual C 6.0 的基 础上必须嵌入集成式套件 Measurement Studio 以及 Visual C 6.0 的更新包 Vs6sp6.exe 才能完成本实验。
6.2 测试记录自己设计测试用例。
1、 模块名称:界面控制和波形显示 功能:使得人机交互界面能够实现复位和退出波形基本显示等功能。
输入:reset 按钮响应 期望的输出:显示出正弦波形 实际的输出:(如图) 2、 模块名称:数据读取采集模块 功能:将数据以波形的形式在显示区呈现出来。
输入:read 按钮响应,读取 txt 文件。
(文件部分内容:-0314 -0231 -0170 -0093 -0008 0079 ……) 期望的输出:将文本文件通过波形曲线显示出来。
实际的输出: (如图) 3、 模块名称:波形测量模块 功能:随着设置在波形图上的游标的移动可测量出此游标的中心所 在的 X 轴和 Y 轴的坐标; 并且可以通过一些控件来控制和更改图 形的显示范围。
输入:游标响应 期望的输出:随着游标的移动,可测量出此游标的中心所在的 X 轴 和 Y 轴的坐标。
实际的输出:(如图)7.用户试用说明书 7.1 需要下载安装的软件 1、Microsof Visual C 6.0。
2、NI 公司推出的集成式套件 Measurement Studio 6.0。
模拟控件工具如下(部分)。
3、Microsof Visual C 6.0 的 3.0 以上的更新包。
如:Vs6sp6。
8.心得体会 通过这次综合
课程设计,我更加认识到了 VC语言的神奇与魅力,在没有接触到 measurement studio 之前,只了解熟悉 MFC,里面的空间也都是一般 2 维的图像,当接触并熟悉了 measurement studio 之后发现还有基于 MFC 下的三维和虚拟仪器的实现功能。
生动形象的控件更加加深了我对它的印象,虽然在安装measurement studio 和下载 measurement studio 6.0 的时候遇到了很大的麻烦,但是最终还是基本完成了。
通过本次实验, 我受益匪浅,主要体现在以下几个方面: 1、学习心态方面: 当我接触到这个题目的时候,我必须先把运行环境先建立起来,但是在寻找 measurement studio 和安装上遇到了很大的阻力,花了我整整一天时间才把环境建立起来,我当时就有放弃的想法,但是最终还是坚持下来了,所以我相信只要坚持就是胜利,这对于我的
学习心态有很大的帮助与提高。
2.、学习内容方面: 通过本次实验,对我的知识面进行了很大的扩展,了解了虚拟仪器的measurement studio 环境的基本操作。
3、团结合作方面: 通过本次实验,我深刻的认识到了合作的必然性与统一性,虽然我们做的方面不一样,但之间都有既对立又统一的联系,可以互相纠错,互相帮助。
9.参考文献1杨乐平,李海涛.虚拟仪器技术概论M.北京:电子工业出版社,2003.2张易知.虚拟仪器M.西安:西安电子科技大学出版社,2002.3黄维通,姚瑞霞.Visual C程序设计教程M. 北京:机械工业出版社,2001.6木林森.Visual C 6.0 使用与开发M.北京:清华大学出版社,1998.7陈建春.Microsoft Visual C 图形系统开发技术基础M.北京:电子工业出版社,1998.中考满分作文 中考网 中考资源网 上海中考网 北京中考网 中考优秀作文 中考语文试卷 中考英语试卷 中考数学试卷 中高考英语试卷 考试卷及答案 高考语文试卷 成人高考
试卷 2010 高考试卷 江苏高考试卷 2010 高考语文试卷 考试百科网站以考试资讯为核心,提供最新最快最全面的考试资讯,包括报考指南、模拟试题、历年真题、经验技巧等信息。
考试百科还提供考试咨询、培训服务,依托于扬格考试研究院——以考试研究为核心、以提供考试服务为目的的专业考试研究机构,考试百科积累了优厚的师资和丰富的教学经验。
同时,还与众多知名培训机构达成了合作关系。
在综合全国各地公考模拟试卷优点的基础上特意编制一套紧贴 2010 年湖南公考命题精髓的“考前预测卷”有利于考生提前适应公考试卷的难度、区分度并有利于提高考生考前心理适应度。
4、本套试卷汇集湖南知名考试命题研究专家、学科... “‘归中反应’之我见”发表在《中学理科》2006 年第 4 期 14.“2006 年高考理科综合预测卷”发表在《常德晚报》2006 年 5 月 28日 15.“对一道高考题的再评析”发表在《中学理科》 2006 年第 11 期 16.“几个较难离子方程式的书写”发表在《中学生...