虚拟仪器课程设计报告.docx

上传人:b****3 文档编号:6737453 上传时间:2023-05-10 格式:DOCX 页数:14 大小:1.37MB
下载 相关 举报
虚拟仪器课程设计报告.docx_第1页
第1页 / 共14页
虚拟仪器课程设计报告.docx_第2页
第2页 / 共14页
虚拟仪器课程设计报告.docx_第3页
第3页 / 共14页
虚拟仪器课程设计报告.docx_第4页
第4页 / 共14页
虚拟仪器课程设计报告.docx_第5页
第5页 / 共14页
虚拟仪器课程设计报告.docx_第6页
第6页 / 共14页
虚拟仪器课程设计报告.docx_第7页
第7页 / 共14页
虚拟仪器课程设计报告.docx_第8页
第8页 / 共14页
虚拟仪器课程设计报告.docx_第9页
第9页 / 共14页
虚拟仪器课程设计报告.docx_第10页
第10页 / 共14页
虚拟仪器课程设计报告.docx_第11页
第11页 / 共14页
虚拟仪器课程设计报告.docx_第12页
第12页 / 共14页
虚拟仪器课程设计报告.docx_第13页
第13页 / 共14页
虚拟仪器课程设计报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

虚拟仪器课程设计报告.docx

《虚拟仪器课程设计报告.docx》由会员分享,可在线阅读,更多相关《虚拟仪器课程设计报告.docx(14页珍藏版)》请在冰点文库上搜索。

虚拟仪器课程设计报告.docx

虚拟仪器课程设计报告

一、绪论

1.虚拟仪器技术概述........................................................................2

1.1.什么是虚拟仪器................................................................................2

1.2.虚拟仪器的特点.................................................................................2

1.3.虚拟仪器的构成及其分类...................................................................3

二.虚拟数字示波器的设计

1.前面板的设计...............................................................................6

2.程序设计......................................................................................7

2.1.程序功能划分....................................................................................7

2.2.数据采集模块设计............................................................................8

2.3.波形显示与控制模块........................................................................9

2.4.参数测量模块..................................................................................10

2.5.波形存储和回放模块........................................................................11

3.模块连接、总体调试...........................................................13

4.存在问题和改良设想...............................................................14三.设计心得....................................................................................15

 

一.绪论

1.虚拟仪器技术概述

1.1什么是虚拟仪器

微机化仪器开展到20世纪80年代末,出现了虚拟仪器〔virtualinstrument,VI〕,它的出现标志着电子测量技术开展到一个崭新的阶段。

虚拟仪器往往以通用计算机为主要的硬件平台,利用I/O接口设备完成测控对象被测信号的采集和控制,而对于信号的测试功能、分析处理功能以及输出显示功能等那么由计算机软件来实现。

“软件就是仪器〞的说法是对虚拟仪器的最好注解。

虚拟仪器的“虚拟〞主要包含两方面的含义:

1〕虚拟仪器的面板是虚拟的:

虚拟仪器面板上的各种“控件〞与传统仪器面板上的各种“器件〞所完成的功能是一样的。

如由各种开关、按键等实现仪器电源的“通〞、“断〞;测量结果的“数值显示〞、“波形显示〞等。

2〕虚拟仪器测量功能是由软件编程来实现的:

在以计算机为核心组成的硬件平台支持下,通过软件编程来实现仪器的测试功能,而且可以通过不同测试功能的软件模块的组合来实现多种测试功能,因此有在硬件平台确定后“软件就是仪器〞的说法。

1.2虚拟仪器的特点

虚拟仪器和传统仪器有着很大的差异。

传统仪器全部由硬件组成,面板上的各种功能控制件,如开关、旋钮、显示表盘、荧光屏等都是实实在在的物件,需要通过测试者的手动操作进展调节,而在虚拟仪器中,面板各控制件设计成一个个和实物相象的图标,他们实际上对应着一个个相应的软件程序。

对于电子测量仪器的各种测试功能,在传统仪器中是通过一个个电子电路来实现的,而在虚拟仪器中,那么是通过计算机不同测试功能的软件模块的组合来实现的。

所以,虚拟仪器具有以下一些特点:

〔1〕极具灵活性和开放性。

传统仪器的功能完全由厂家决定,仪器出厂后就不能改变,可用户的需求却是多种多样的。

虚拟仪器可以设计不同的软件模块组合来满足不同的测试功能要求。

这种巨大的灵活性可以使得一台计算机被设计成多台不同功能的电子测量仪器来使用,并且这种设计又完全是开放的。

〔2〕有强大的数据处理能力。

由于计算机有极其丰富的软件资源,所以能对测量数据有强大的分析和处理能力,这在传统仪器中是不可能具有的。

计算机极高的运算速度,庞大的存储容量,可以使测量数据得到快捷、实时的处理,也可以将数据存储起来,以供需要时调出来分析之用。

〔3〕良好的人机交互界面。

传统仪器的用户界面是面板上的一些固定控制件,其功能有限,而虚拟仪器那么把计算机多媒体技术引入到测量领域中来,使得人机交互界面更加方便美观,更具人性化,并且这种界面还可以方便地由用户自己定义。

〔4〕开发、研制周期短,技术更新快。

在虚拟仪器中,仪器功能的更新主要是软件设计的更新,因而易于开发、制作。

传统仪器的技术更新周期大约是5至10年,而虚拟仪器技术的更新周期是1至2年,甚至更短。

虚拟仪器的维护、修理费用也低,所以虚拟仪器具有良好的性能价格比。

〔5〕虚拟仪器通过计算机总线,极易实现测量的自动化、智能化和网络化功能,而传统测量仪器功能单一,无法完成高性能的测量任务。

目前,我国在科研、教学领域使用的一些高档台式测量仪器,如数字存储示波器、频谱分析仪、逻辑分析仪等,制造水平要求高,加工工艺复杂。

如果采用虚拟仪器技术,只需购置必要的通用仪器硬件,主要通过软件设计来构造高性能的测试仪器系统,以满足各行各业的需要。

1.3虚拟仪器的构成及其分类

虚拟仪器的构成如图1所示。

图1虚拟仪器构成原理

虚拟仪器的构成分为硬件平台和软件构造两大局部。

硬件平台包括以下两局部:

〔1〕计算机。

这是虚拟仪器的核心硬件。

仪器功能的程序设计和实现、被测数据的分析和处理、测试结果数据或波形的显示,都要通过计算机进展。

它可以是一台PC机或工作站。

〔2〕I/O接口设备。

它的主要任务是完成被测信号的输入采集、放大调理、模/数转换。

根据测控对象的不同情况采用不同的I/O硬件设备。

现在常用的有各种各样的数据采集(DAQ)卡/板、GPIB仪器、VXI仪器、PXI/pactPCI仪器、串口仪器等。

虚拟仪器的软件构造也由两局部组成:

〔1〕应用程序。

①实现虚拟仪器面板功能的前面板软件设计程序。

②实现仪器测试功能的流程图软件设计程序。

〔2〕I/O接口的仪器驱动程序。

这类程序用来完成计算机外部特定硬件设备的驱动、通信和扩展等功能设计。

二.虚拟数字示波器的设计

1.前面板的设计

前面板程序用来提供用户与虚拟示波器的接口,它产生一个友好的图形界面,用于显示测量和处理的结果,另一方面,用户也可以通过控制前面板上的开关和按钮,模拟传统仪器的操作,通过键盘和鼠标,实现对虚拟示波器的控制。

本文设计的虚拟示波器软面板如图2所示。

 

图2虚拟示波器前面板

这个前面板上包含了实时波形显示窗口,可以显示实时采样波形。

右上边的暗框里面可以直接得到采样数据的最大值、最小值、平均值、被测信号的频率。

右边中间局部是信号调整局部,它包括x轴调整和y轴调整两个旋钮,可以调整实时波形在屏幕上的显示效果。

在显示频域波形窗口的右边是一些按钮,包括保存波形,翻开波形,频域分析。

其中存储按钮可以将波形自动的以电子表格的形式进展保存,并以每天的日期作为文件名称。

另外面板上还有通道选择框、工作方式和采样完毕按钮,用于选择通道、进展波形显示或翻开波形以及完毕采样。

特别注意的是,在这里我们所选用的用来显示实时波形的窗口的VI是XY图。

由于波形图和波形图表的横坐标都是均匀分布的,因而在使用上有一定的限制,例如不能描绘出均匀采样得到的数据。

而XY图的输入数据需要包含两个一维数组,并将两个数组组合成一个簇,使其分别包含数据点横坐标的数值和纵坐标的数值。

2.程序设计

2.1.程序功能划分

根据示波器的工作原理和设计要求,可以将软件分为以下功能模块:

数据采集、波形显示与控制、参数测量、及数据存储与回放等4大模块。

接下来即可对每个模块进展程序设计,然后将各模块进展程序连接。

2.2数据采集模块设计

数据采集主要包括模拟量的输入输出。

模拟输入将是将电压、电流、温度、压力等物理量转换为数字量并传递到计算机中的过程;模拟输出那么是将计算机中的数字量转换成模拟电压〔或电流〕输出到各种仪表或执行机构的过程。

基于LabVIEW的数据采集系统如图5所示。

图5基于LabVIEW的数据采集系统

在此,我们选用的数据采集硬件为PCI-DAQ数采卡。

为了使数采卡正常工作,在软件驱动前必须根据需要对一些参数进展正确的设置。

主要包括:

A、模拟信号输入

主要是设置信号的输入方式:

单端还是双端,单极性还是双极性等。

还要根据输入信号幅值和分辨率要求进展放大增益设置。

此外,根据输入信号的不同极性设置适宜的量程。

B、A/D转换

要设定信号输入的通道号,还要设定采样点数、采样速率、采样结果的输出方式〔是放在一个数组中还是放在一个缓冲区内〕、采样触发方式〔外触发、定时触发、软件触发〕等。

C、D/A转换

主要是设置D/A转换后输出模拟信号的通道号以及输出信号的幅值、数值刷新的速率等。

以上参数正确设置后,就可以利用LabVIEW自带的驱动程序,完成测试采集任务。

在把模拟信号连接到采集卡端子上时,有三种连接方法:

(1)差分输入方式

输入信号的正负极分别接入DAQ设备的两个通道,所有输入信号各自有自己的参考点。

此种接法能抑制接地回路的感应误差,而且也能在一定程度上抑制接收的环境噪声,是较理想的接法。

这种测试系统较适合测量小于1V的低电平信号,且信号电缆较长或无护套,环境噪声较大,任何一个输入信号要求单独的参考点等条件。

差分输入方式比单端输入方式多用一倍的通道。

当所有的信号在信号源可以共享一个公共参考点,并且信号的电平值大于1V的较高电平,输入电缆较短〔一般小于5米〕,或有适宜的护套,无环境噪声时,就可以采用单端输入方式,单端输入方式分为参考单端输入方式和非参考单端输入方式。

(2)参考单端输入方式

参考单端输入方式用于测试浮动信号,它把信号的公共参考点和测试仪器模拟输入地连接起来。

(3)非参考单端输入方式

此种方法用于测试已经接地的信号,因为所有输入信号都已经接地,所以无须再和仪器放大器的模拟输入地连接。

信号连接完成后,就可以使用LabVIEW中的数据采集VI进展数据采集了。

数据采集VI主要完成数据采集的控制,包括触发控制、通道选择控制、时基控制等,其中:

〔1〕包括触发电平、触发斜坡控制;

〔2〕通道选择主要控制单通道或双通道测量;

〔3〕时基控制主要控制采集卡采样率和采样点数。

数据采集模块可以说是虚拟示波器的核心局部,只有将数据采集进来以后才能进展分析显示等工作。

其实,数据采集就是把外界的模拟电信号〔可能经过信号调理〕通过A/D转换成数字信号,或直接的数字量变成数组输入计算机。

在LabVIEW的流程面板中,在Functions/DataAcquisition/AnalogInput中有所需要的模拟输入模块,如图4所示。

模拟输入模块分为4类:

简易VIs、中级VIs、实用VIs和高级VIs。

因为在示波器中要使模拟输入模块工作在很高的刷新率下,而且还要其他功能,特别是要使用触发功能,所以要使用中级VIs来进展数据采集。

下面是对局部中级VIs的一些简单介绍。

AIConfig模块,其作用是对模拟输入的器件和端口进展设置,同时,设置缓存区的大小。

AIStart模块,其作用是开场数据采集,同时,设置每个通道的采样率。

这个模块还可以设置触发方面的内容。

不过很可惜,这里设置的触发问题都是硬件触发的。

AIRead模块,其作用是从缓存区读入数据。

这个模块同样也是有触发功能的,不过这个触发很像软件触发。

图6模拟输入模块

因为在采集过程中,并不需要对硬件设置进展调整,所以也用不到高级VIs,于是数据采集模块的程序如下:

使用AIConfig进展硬件的设置,AIConfig在主循环的外边,这也就说明在程序运行后就不能更改缓存区的大小;然后是AIStrat和AIRead,和模拟输出不同的是,模拟输出是先将数据输到缓存区中,然后再开场转换,而模拟输入是先进展转换再读入缓存区。

在程序的最后是使用AIClear将硬件设置去除。

附:

因为实验室条件限制,无PCI-DAQ数采卡,所以数据采集模块无法完成,没有进展程序设计。

2.3.波形显示与控制模块

在通常情况的示波器中,显示波形都是利用锯齿波电压来扫描的,锯齿波在这里提供了一个时间的概念,有了锯齿波,就形成了以时间为参数的两个参数方程,一个是输入信号随时间变化的方程,另一个是锯齿波随时间变化的方程,两个方程合起来在就把输入信号随时间变化的情况变成了随空间〔横坐标〕变化的情况。

在程序对于波形的显示过程中,横坐标代表时间,锯齿波实际上就是为每个采样点的数据匹配上一个时间的坐标。

当然,我们在波形发生模块中有锯齿波发生器,但是他们所发生出来的是“实实在在的锯齿波〞,而我们所需要的其实是一个横坐标,所以这些锯齿波发生器在这里使用起来不是很方便。

另外在进展双踪显示的时候,普通示波器只能有一个纵向扫描电压和一个横向扫描电压,所以要采用交替断续等方式来实现双踪显示,还可以使两个显示波形不仅来自不同的源,同时还可以用不同的频率进展扫描,完全和两个示波器一样[8]。

在前面我们说过用于显示波形的模块-----XYGraph,它是输入一个一个点的二维坐标。

所以,如果得到了1000个点的数据,那么想让这1000个数据显示在控件上就需要提供1000个横坐标信息。

锯齿波发生模块如图7所示。

图7锯齿波发生模块

在这个图中,For循环的作用是产生一组均匀的点来作为时间基准,,就好象是对时钟进展均匀的采样,只不过是在图象上。

其余的局部,是为了给整个坐标加权,使之能更好的显示波形。

图中的软件开关Knob用来调节1大格所代表的时间,相当于调节扫描速度。

如果需要混合扫描,或者对数扫描,只需要对这个程序的加权局部进展更改就可以了。

当然,锯齿波发生器只能用来作为提供一个时间概念,不能用于产生波形。

前面我们已经说过对于输入的数据波形,用一个正弦波来代替。

并与用于调整纵向波形的y轴调整按钮相乘,然后与锯齿波发生模块形成的数组组合成一个簇,再在XY图上显示出来。

这样我们就可以得到一个较为简单实用的波形显示与控制模块的程序。

如图8所示。

图8波形显示与控制模块

2.4.参数测量模块

该模块主要模拟示波器的参数测量功能,完成对于波形的幅值大小,电压参数值和波形的周期、频率等参数的测量并显示其测量结果。

具体为,我们先将显示得到的波形分解为分别为横向和纵向〔即x和y轴〕的两个数组,由于幅值、电压等参数是与y轴有关的,故我们把用于测量其数值的VI与y轴上的数组向连。

同样,对于要测量的周期、频率等是与x轴相关的,我们就将用于测量周期、频率的VI与x轴相连。

2.5.波形存储和回放模块

一个功能模块在主程序流程中的位置对模块程序的编制有很大的影响。

首先因为功能模块不在主程序的关键流程之中,所以可以有不同的位置;然后是它所承受的数据组织方式是不同的,对于不同的组织方式编程是不同的。

数据存储与回放模块就是这样。

如图3-5所示的示波器前面板,我们提供了“是否保存〞和“是否翻开〞两个按钮。

当按下“是否保存〞按钮时,显示的波形将以电子表格的形式,根据每个点的位置在电子表格中用具体的数字保存起来。

另外我们还事先设定了波形的保存路径,并以每天的日期作为文件名来保存。

在这里我们用的是底层函数来保存电子表格文件的,如图9所示。

图9数据保存模块

程序中用翻开/创立/替换文本VI新建了一个文件*.xls,在For循环中用写入函数将数据写入文件。

其中数据文件的格式为首先写入数据序号,然后参加一个TAB定位符号,接着写入正弦波幅值数据,最后行加上终止符号。

每次循环将这样一行的数据写入文件,经过由原波形所含有点数的次数的循环,数据文件就按照电子表格文件的格式写好了。

因为保存的时候是以锯齿波所产生的时间变化为基准来保存的,所以在数据回放的时候就只能以保存时的锯齿波来扫描波形。

图10波形回放模块

当按下“是否翻开〞按钮时,一旦开场读取波形数据操作,立刻就会弹出一个读取数据文件对话框,该对话框如图11所示,在该对话框中可以选择要读取数据文件的路径、文件名及文件类型等〔我们这里限为电子表格文件〕。

该对话框完全仿照Windows风格,操作简便,可以很快将所需数据读出。

 

 

图11读取数据文件时弹出的对话框

该功能尤其适用于因特殊原因不能实时处理数据,或数据对以后的研究具有重要的参考价值,此时可以先把数据保存下来,日后再把原来保存的数据文件读出来,这时读出的数据就和实时采集的数据一样,也能够进展自动参数测量,频谱分析等操作。

程序中采用的是读取电子表格文本VI,在指定了读取文件的路径和读取数据的列数后,VI可以读取电子表格文件中的数据。

需要注意的是读取电子表格文本VI默认的读取数据定位符号是TAB,如果在写电子表格文件时用了其他的定位符号,那么需要在读取电子表格文本VI的delimiter数据端口加以设置。

在这里我们设置为-1,意思为读取全部列数。

然后我们提取出原电子表格的第二列,即为y轴的数据值,并与产生的锯齿波数组组成一个二维数组,最后在XY图上显示出来。

另外,我们通过对x或y轴旋钮的设置,可对读出的波形进展调整。

3.模块连接、总体调试

在模块都完成了之后就可以对模块进展连接了,在连接模块的时候可以分为很多步进展,先连接关键性的模块,在调试根本成功之后在连接其他功能模块。

我们需要将波形的显示、波形的存储和波形的回放放到一个选择构造中,并用一个总开关来控制。

当开关扳向上时,可以进展正常的波形显示、参数测量、频域分析等。

开关扳向下时,可以进展读取文件的操作。

如图12所示。

〔a)

(b)

图12虚拟示波器程序框图

图(a)、(b)为调试后的程序框图,由图中,我们可以发现,该框图由一个主VI和假设干个子VI组成,使虚拟示波器是分层次和模块化的,即可以把主VI当作顶层程序,将其它子VI当作自身的子程序,这样用户就可以把一个复杂的应用任务分解为一系列的、多层次的子任务,并为每一个子任务设置一个子虚拟仪器(简称“子VI〞),通过图标连接器供其上层调用。

调试过后的波形显示如图13所示。

图13正弦波的波形显示

4.存在问题和改良设想

问题:

在选择CH1条件构造的“假〞分支,时,因为不用输出波形,所以我没连接输出隧道,这时会出现错误,这个错误是因为条件构造中多个分支的输出隧道公用输出。

仅执行构造的某一帧是,各个帧必须给所有的输出赋值,不赋值时要使用默认。

解决方法:

右键单击隧道并选择“未连接时使用默认〞,既可以满足该要求。

三.设计心得

此次课程设计开场的时候,我先看了几本介绍虚拟仪器和Labview方面的书籍随即对这个软件强大的防真功能产生极大的兴趣,并且自己动手做了一些简单的仿真程序,比方利用调用for循环和移位存放器计算数学递归公式、产生数字波形、建立数学计算的VI等。

做的程序渐渐从简单到难,学到的东西也越来越多。

直到这个设计完毕,除了这个设计里面的知识外,我还了解了公式节点的用法;滤波器的用法;图形编辑器的用法和子VI的建立过程及调用;掌握了while循环、for循环、条件构造循环的用法;初步了解顺序构造的用法等等。

本次设计的虚拟示波器大量用到条件构造,让我感受到Labview在子VI的强大之处,更为自己能做出这个虚拟示波器而感到自豪。

通过这次Labview课程设计,我在很多方面都有所提高。

这此次设计综合运用了本专业的所学课程的理论和实际知识,稳固与扩大了Labivew课程所学的内容,掌握了Labview设计的方法和步骤,掌握了Labview设计的根本编程技能,提高了分析能力,设计能力,熟悉了规X和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

总之,此次课程设计让我们对书本上的知识有了一个更深层次的认识,并且让我们意识到了团队的力量是强大的,单凭一个人是无法完成的。

 

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2