




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 课题背景本文所讲的虚拟仪器实验教学系统是在计算机、电子测量技术、信号处理技术、自动控制技术高速发展,而传统仪器下的高校实验教学已严重滞后于信息时代和工程实际需要的背景下,利用美国ni公司的虚拟仪器开发平台-labview自行设计开发的虚拟仪器实验教学系统。它可用于信号的采集、分析、存储和读取,以及电工、自动控制、计算机等课程的实验教学。本文的课题背景知识包括:数字信号处理技术、工程测试技术、虚拟仪器技术、labview软件开发平台等。11 虚拟仪器在教学上的运用前景随着低成本高性能的计算机资源普及运用。数学化测量平台逐渐成为测量仪器的基础。在20世纪80年代末美国研制成功虚拟仪器,代表了仪
2、器发展的一种方向。虚拟仪器是计算机技术与电子仪器相结合而产生的一种新的仪器模式,它通常是由个人计算机、模块化的功能硬件与用于数据分析、过程通信及图形用户界面的应用软件有机结合构成,使计算机成为一个具有各种测量功能的数字化测量平台。它利用软件在屏幕上生成各种仪器面板,完成对数据的处理、表达、传送、存储、显示等功能。 eda技术借助计算机存储容量大、运行速度快的特点,可对设计方案进行人工难以完成的模拟评估、设计校验、设计优化和数据处理等工作。eda成为集成电路、印刷电路板、电子整机和系统设计的主要技术手段。利用当今先进的electronic workbench、pspice等电子电路设计软件以及一
3、些自动设计的软件,完成电子电路的计算机辅助设计、超大规模集成电路设计、现场可编程门阵列和可编程逻辑器件的实验以及印刷电路板的设计。学生在计算机上完成电路设计计算、电路模拟和印刷电路板设计,并在实验实际制作。在电路设计和鼓掌查询时,应用虚拟仪器技术对各种实际典型电路进行分析和测量,充分利用虚拟仪器的优势,培养学生设计电路系统的能力和实际操作能力。运用虚拟仪器技术,以微机为基础,构建集成化测试平台,代替常规化仪器仪表,不但满足电工、电子实验教学的需要,而且可将这批微机时间较长的缺点得到改善,而且在经济性上也变得合理,从而用数学方法处理信号的范围越来越大,这中趋势仍在继续发展。测试技术与科学研究、工
4、程师工程实践密切相关。科学技术的发展促进了测试技术的发展,测试技术的发展反过来又促进了科学技术的提高。测量仪器发展至今,大体经历了四代发展历程。第一代模拟仪器是以电磁感应基本定律为基础的模拟仪表。当20世纪50年代出现电子管,60年代出现晶体管时不我待,便产生了以电子管或晶体管为基础的第二代测量仪器-分立元件测试仪器。20世纪70年代集成电路的出现,诞生了以集成电路芯片为基础的第三代仪器-数字式仪器。随着电子技术和微处理技术的发展和普及,20世纪80年代以微处理器为核心的第四代仪器-智能式仪器迅速发展和普及。由于微电子技术、计算机技术、软件技术、网络技术的高速发展及其在电子测量技术和仪器上的应
5、用,新的测试理论、新的测试方法、新的测试领域以及新的仪器结构不断出现,在许多方面已经突破传统仪器的概念。电子测量仪器的功能和作用已经发生了质的变化。测试技术与计算机技术的深层次结合正引起测试仪器领域里的一场革命,一种全新的仪器结构概念-虚拟仪器,它的出现使人类的测试技术进入了一个新的发展纪元。 12 虚拟仪器及labview的发展在这种背景下,20世纪80年代末美国率先研制成功虚拟仪器(virtual instrument.简称vi)。所谓虚拟仪器就是利用通用计算机为核心,加上特殊设计的仪器硬件结构平台,由用户设计、定义虚拟仪器面板,测试功能由软件实现的一种计算机测试系统,形成既有普通仪器的基
6、本功能又有一般仪器所没有的特殊功能的高档、低价的新型仪器。虚拟仪器的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向和潮流,对科学技术的发展和工业生产的进步将产生不可估量的影响。虚拟仪器利用个人计算机强大的图形环境和在线帮助功能,建立虚拟仪器面板,完成对仪器的控制,数据分析与显示,代替传统仪器,改变传统仪器的使用方式,提高仪器的功能和使用效率,大幅度降低仪器价格,使用户可以根据自己的需要定义仪器的功能。虚拟仪器可广泛应用于电子测量、电力工程、物矿勘探、医疗、振动分析、声学分析、故障诊断及教学科研等诸多领域。国际上从1988年陆续有虚拟仪器产品面市,当时有五家制造商推出30种产品。此后。虚
7、拟仪器产品每年成倍增加,到1994年底,虚拟仪器制造厂已达95家共生产1000多种虚拟仪器产品,销售额达2。93亿美元、,占整个仪器销售额73亿的4%。美国是虚拟仪器的诞生地,也是全球最大的虚拟仪器制造国,生产虚拟仪器的主要厂家有hp公司目前生产100多种型号的虚拟仪器。tectronix公司目前生产约80多种型号的虚拟仪器,此外还有ni公司、keithely公司,iotech公司等。虚拟仪器的软件开发环境目前大致有两类:一类是文本式的编程语言,如borland c, visual c+,labwindow/cvi等;另一类是图形化编程语言,具代表性的有labview,hpvee等。 labv
8、iew是laboratory virtual instrument engineer workbench的缩写。它是一个工程软件包。1986年,美国国家仪器公司(national instruments)开发研制出基于苹果公司的macintosh微机的最早版本。在此之后,该公司不断推出基于各种操作系统的labview版本。1998年ni公司推出了基于windows 95/windows nt4.0的最新版本labview5.0和它的姐妹软件包labwindow/cvi 5.0。正是由于labview的出现开创了上文提到的虚拟仪器研究新方法。labview采用图形化语言编程,以方框图的形式编制程
9、序,运用的设备图表与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相似。labview提供提供了大量的函数和子程序支持用户的任务,也提供了一些专用程序如gpib设备控制、vxi总线控制、串行口设备控制、以及数据分析、显示和存储。labview还提供了专门用于程序开发的工具箱,使得用户能够设置断点,动态执行程序来观察数据的传输过程,以便进行方便的调试。同时,labview 可调用windows动态连接库和用户自定义的动态连接库中的函数,以解决labview对某些非ni公司支持的硬件在使用过程中的驱动问题。labview 的cin节点使用户可以使用由其它语言,如ansic,
10、编译的程序模块,使labview 成为一个完全开放式的开发平台。此外,labview还直接支持动态数据交换(dde)、结构化查询语言(sql)、tcp和udp网络协议等。传统仪器下的高校实验教学,已严重滞后于信息时代和工程实际的需要。其根本原因在于实验教学内容依附于课程设立,基本处于割裂状态,仪器设备不可能实现资源共享,在科学技术以摩尔定律发展的今天,高校不可能支付巨额的仪器设备更新资金。而且,在、现在化生产要求电子仪器品种多、功能强、精度高、自动化程度高,而且要求测试速度快、实时性好、具有良好的人机界面。虚拟仪器正可以实现这些要求。 与传统仪器相比,虚拟仪器具有以下优点: 1在通用硬件平台确
11、定后,有软件取代传统仪器中的硬件来完成仪器的功能;2仪器的功能是用户根据需要由软件来定义的,而不是事先由生产厂家定义好的;3仪器性能的改进和功能的扩展只需进行相关软件的设计更新,而不需要购买新的仪器;4研制周期较传统仪器大为缩短,且成本低廉;5虚拟仪器具有开放性和灵活性,可与计算机同步发展,与网络及其它周边设备互联。 目前,我国正处于科学技术蓬勃发展的新时期,对仪器设备的需求将更加强劲。虚拟仪器赖以生存的pc计算机近几年正以迅猛的势头席卷全国,这为虚拟仪器的发展奠定了基础。虚拟仪器作为传统仪器的替代品,市场容量巨大。据统计,1995年我国进口电子测量仪器73。5万台,价值32亿美元。据专家预测
12、,到本世纪初我国将有50%的仪器为虚拟仪器。发达国家虽然在此领域比我国起步早,但差距并不是很大,我们应当充分把握时机,取长补短,学习国外先进经验,将我国的虚拟仪器产业水平逐渐向先进国家靠拢。labview作为虚拟仪器开发系统的杰出代表,在我国由于引进的时间不长,了解和熟悉它的人还不多,还远远没有被认识和推广应用。本文就labview在开发虚拟仪器过程中的应用做初步的探讨,愿其中成功的经验、失败的教训对于应用此软件的读者来说有所帮助。2 虚拟仪器及labview的简介 21 概述由于微电子技术、计算机技术、软件技术、网络技术的高度发展及其在电子测量技术与仪器上的应用,新的测试理论、新的测试方法、
13、新的测试领域以及新的仪器结构不断出现,在许多方面已经突破了传统仪器的概念,电子测量仪器的功能和作用已经发生了质的变化。在这种背景下,美国国家仪器公司(national instruments)在20世纪80年代最早提出虚拟仪器(virtual instrument)的概念,同时推出了用于虚拟仪器开发的工程软件包labview。ni公司宣称“the software is the instrument”,即“软件就是仪器”1。虚拟仪器利用现有的计算机,加上特殊设计的仪器硬件和专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的高档低价的新型仪器。虚拟仪器是计算机技术与电子仪器相结
14、合而产生的一种新的仪器模式。它通常是由个人计算机、模块化的功能硬件与用于数据分析、过程通信及图形用户界面的应用软件有机结合构成,使计算机成为一个具有各种测量功能的数字化测量平台。它利用软件在屏幕上生成各种仪器面板,完成对数据的处理、表达、传送、存储、显示等功能。虚拟仪器的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向和潮流,对科学技术的发展和工业生产的进步将产生不可估量的影响,同时对改善高校实验教学仪器设备,提高教学质量也是一个福音。labview是laboratory virtual instrument engneering workbench的缩写,即实验室虚拟仪器工程平台,是美
15、国ni公司(national instrument company)推出的一种基于g语言(graphics language,图形化编程语言)的虚拟仪器软件开发工具。最初它是基于苹果公司的macintosh微机的。后来ni公司不断推出基于各种操作系统的labview版本。2003年ni公司推出了labview7 express,目前已经有了labview8.0。正是由于labview的出现开创了仪器研究的新方法虚拟仪器。22 虚拟仪器技术221 虚拟仪器的定义 虚拟仪器(virtual instrument)是基于计算机的仪器。在计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种
16、结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器的功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。信号调理数据采集卡数据处理虚拟仪器面板被测对象图2-1 常见虚拟仪器应用方案 虚拟仪器一般由通用仪器硬件平台和应用软件两大部分组成。222 虚拟仪器硬件平台 构成虚拟仪器的硬件平台有两大部分:(1) 计算机:一般为一台pc机或者工作站,它是硬件平台的核心。虚拟仪器使用的个人
17、计算机中,微处理器和总线成为最重要的因素。 其中,微处理器的发展是最迅速的,它使虚拟仪器的能力得到极大地提高。80年代末制造的虚拟仪器频率分析仪完成一个1024点的快速傅立叶变换需要1秒钟的时间;今天的系统可以在1毫秒内完成同样的运算,速度提高了一千倍。这意味着,如果以前人们是用虚拟仪器来做快速傅立叶变换观察信号,那么今天可以利用它进行高速的实时运算,并将之应用于过程控制和其它控制系统中。总线技术的发展也为提高虚拟仪器的处理能力提供了必要的支持。pci总线性能比isa总线提高了近十倍,使得微处理器能够更快地访问数据。使用isa总线时,插在电脑中的数据采集板的采集速度最高为2mbps;使用pci
18、总线时,最高采集速度可提高到132mbps。由于总线速度的大大提高,现在可以同时使用数块数据采集板,甚至图象数据采集也可以和数据采集结合在一起。(2) i/o接口设备:主要完成被测信号的采集、放大、模/数转换。可根据不同情况采用不同的i/o接口硬件设备,如数据采集卡(daq)、gpib总线仪器、vxi总线仪器模块、串口仪器等,虚拟仪器构成方式有五种类型,如图1-2框图所示。labview提供了各种图形化驱动程序,使用者不必熟悉pci计算机总线、gpib总线、vxi总线、串口总线,利用labview提供的图形化驱动程序就可以驱动上述各种总线的i/o接口设备,实现对被测信号的输入、数据采集、放大与
19、模/数转换,进而供计算机进一步分析处理。虽然这五种系统有很大的差别,但是无论那种vi系统,都是通过应用软件将仪器硬件与通用计算机相结合。被测信号pcdaqgpib仪器串口仪器vxi模块pxi模块计算机图2-2虚拟仪器的构成方式考虑到pcdaq/pci插卡式虚拟仪器在五种虚拟仪器系统中,是虚拟仪器最基本最廉价的构成形式。在经费不足或时间不充裕的情况下经常被采用,下面就对这种虚拟仪器系统做简单的介绍。它的硬件平台主要有pc计算机和数据采集卡(daq卡)组成。数据采集卡(daq卡)由以下几个部分组成:1. 多路开关。将各路信号轮流切换的放大器的输入端,实现多参数多路信号的分时采集。2. 放大器。将前
20、一级多路开关切换进入待采集信号放大(或衰减)至采样环节的量程范围内。通常实际系统中放大器作成增益可调的放大器,设计者可根据输入信号不同的幅值选择不同的增益倍数。3. 采样保持器。取出待测信号在某一瞬时的值(即实现信号的时间离散化),并在a/d转换过程中保持信号不变,如果被测信号变化很缓慢,也可以不用采样/保持器。4. a/d转换器。将输入的模拟量转化为数字量输出,并完成信号幅值的量化。随着电子技术的发展,目前通常将采样/保持器同a/d转换器集成在一块芯片上。以上四个部分都处在计算机的前向通道,是组成数据采集卡的主要环节,与其它有关电路如定时/计数器、总线接口电路等集成在一块印刷电路板上,即构成
21、数据采集卡(daq卡),完成对信号数据的采集、放大及模/数转换任务。pc-daq/pci插卡式虚拟仪器系统充分利用了pc计算机的机箱、总线、电源及软件资源,但是因而也受到pc计算机机箱环境和计算机总线的限制,存在诸多的不足,如电源功率不足、散热条件差等。223 软件软件包括应用软件和i/o驱动软件:1) 应用程序。包含两个方面的程序:l 实现虚拟面板功能的前面板软件程序。l 定义测试功能的流程图软件程序。2) i/o接口仪器驱动程序。这类程序用来完成特定外部硬件设备的扩展、驱动和通信。大部分虚拟仪器开发环境均提供一定程度的i/o设备支持。许多i/o驱动程序已经集成在开发环境中。以labview
22、为例,他能够支持串行接口、gpib及vxi等标准总线和多种数据采集板,labview还可以驱动许多仪器公司的仪器,如hewlett-packard,philips,tektronix,b&k,fluke等。同时,labview还可调用windows动态连接库和用户自定义的动态连接库中的函数,以解决对某些非ni公司支持的标准硬件在使用过程中的驱动问题。23 虚拟仪器的功能及特点231 虚拟仪器的功能虚拟仪器利用个人计算机强大的图形环境和在线帮助功能,建立虚拟仪器面板,完成仪器的控制,数据分析与显示,代替传统仪器,改变传统仪器的使用方式,提高仪器的功能和使用效率,大幅度降低仪器的价格,使用户可以根
23、据自己的需要定义仪器的功能。虚拟仪器广泛应用于信号处理、电子测量、电力工程、物矿探测、医疗、振动分析、声学分析、故障诊断及教学科研等诸多领域。其中,最广泛的应用是取代传统的台式仪器。高等学校特别是理工科学校,教学、科研需要大量的测量分析仪器设备,特别是实验教学,每种仪器都必须配置多套,而且有的仪器设备价格昂贵,因此仪器设备所需投资巨大,一般学校很难满足,造成许多学校仪器设备缺乏和过时陈旧等现象,严重影响教学科研。如果运用虚拟仪器系统,情况就大不一样了。使用虚拟仪器不但可以节约大量仪器设备的经费投入,而且能够提高教学科研的质量与效率。232 虚拟仪器的特点现代化生产要求电子仪器品种多、功能强、精
24、度高、自动化程度高,而且要求测试速度快、实时性好、具有良好的人机界面。虚拟仪器正好可以满足这些要求。与传统仪器相比,虚拟仪器具有如下优点:1) 虚拟仪器具有开放性、模块化、可重复使用及互换性等特点。 在一定通用硬件模块和软件环境的支持下,用户可以根据实际情况够设自己的测试方案,以完成不同的测试任务。2) 用户自定义性。用户可以自行定义虚拟仪器的功能,通过对软件模块的扩充,相当于购买一台新仪器。虚拟仪器使得用户能够根据自己的需要定义仪器功能,而不像传统仪器那样,受到仪器厂商的限制。233 虚拟仪器的发展前景虚拟仪器依靠其自身的优势使它在仪器市场的竞争力不断增强。许多大型仪器公司均在虚拟仪器市场上
25、占有一席之地。1988年国际上开始有虚拟仪器产品面市,当时只有五家制造商推出的30种产品。此后,虚拟仪器产品每年成倍增加,到1994年底,虚拟仪器制造厂已达95家共生产1000多种虚拟仪器产品,销售额达2.93亿美元,占整个仪器销售额73亿的4%。目前,我国正处于科学技术和教育事业蓬勃发展的新时期,对仪器设备的需求将更加强劲。虚拟仪器赖以生存的pc计算机近几年正以迅猛的势头席卷全国,这为虚拟仪器的发展奠定了基础。虚拟仪器作为传统仪器的替代品,市场容量巨大。据统计,1998年我国进口电子测量仪器73.5台,价值32亿美元。据专家预测,到本世纪初我国将有50%的仪器为虚拟仪器。以上统计数字表明,虚
26、拟仪器具有广阔的发展前景。但同时也应认识到,现在我国的科技水平还相对落后,每年需要花费大量的外汇进口电子仪器产品。如何发展我国自己的仪器产品,尤其是具有广阔发展前景的虚拟仪器,是我们应该迫切解决的问题。24 labview开发平台介绍241 labview应用程序的构成所有的labview应用程序,即虚拟仪器(ni),它包括前面板(front panel)、流程图(block diagram)以及图标/连接器(icon/connector)三部分。1. 前面板前面板是图形用户界面,也就是vi的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(cont
27、rol)和显示对象(indicator)。2. 流程图流程图也称为后面板,提供vi的图形化源程序。在流程图对vi编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件和连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。3. 图标/连接器vi具有层次化和结构化的特征。一个vi可以作为子程序,这里称为子vi(subvi),被其他vi调用。图标与连接器在这里相当于图形化的参数。242 labview的操作模板在labview的用户界面上,应特别注意它提供的操作模板,包括工具(tools)模板、控制(controls)模板和函数(functions)模板
28、。这些模板集中反映了该软件的功能与特征。1. 工具模板(tools palette)该模板提供了各种用于创建、修改和调试vi程序的工具,如图1-3所示。如果该模板没有出现,则可以在windows菜单下选择show tools palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从windows菜单下选择了show help window功能后,把工具模板内选定的任一种工具图2-3labview的工具模板光标放在流程图程序的子程序(sub vi)或图标上,就会显示相应的帮助信息。2. 控制模板(controls palette)该模板用来给前面板设置
29、各种所需的输出显示对象和输入控制对象。每个图标代表一类子模板。如果控制模板不显示,可以用windows菜单的show controls palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。控制模板如下图1-4所示,它包括如下所示的一些子模板。图2-4 labview的控制模板3. 功能模板(functions palette)图2-5 labview的功能模板功能模板是创建流程图程序的工具,如图1-5所示。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用windows菜单下的show functions palette功能打开它,也可以在流程图程
30、序窗口的空白处点击鼠标右键以弹出功能模板,功能模板如图1-5所示。243 labview的特点labview(laboratory virtual instrument engneering workbench)是由美国国家仪器公司(ni)在1986年推出的一种基于图形编程语言(g语言)的开发环境,它具有十分强大的功能,包括数值函数运算、数据采集、信号处理、输入/输出控制、信号生成、图象的获取、处理和传输等等。labview与c,pascal,basic等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具,以及模块化的编程特点等2。但二者最大的区别在于:传统编程语言用
31、文本语言编程;而labview使用图形语言(即各种图标、图形符号、连线等)编程,界面非常直观形象,而且使用的都是测试工程师们熟悉的旋钮、开关、波形图等,因此是一种直觉式图形程序语言。用labview编程无须太多编程经验,只要以很直觉的方法建立前面板人机界面和方框图程序,便可以完成编程过程,使用户免于传统程序语言线性结构的困扰,这对于没有丰富编程经验的工程师们来说无疑是个极好的选择。同时,labview的执行顺序是依方框图间数据的传递来决定的,并不像传统文字式编程语言必须逐行地执行,因此用户能设计出可同时执行多个程序的流程图。采用labview编程,其主要特点就是将虚拟仪器分解为若干基本的功能模
32、块(相当于硬件设计的集成电路),模块的引脚代表输入/输出接口。编程者可以通过交互式手段,采用图形化框图设计的方法,完成虚拟仪器的逻辑和测量分析功能设计。labview程序设计过程与人们设计仪器的思维过程十分相似,程序框图就实现了程序代码功能,避免了一般程序设计从框图构思到程序表示的繁琐。labview编程的另一个优点是将软件的界面设计与功能设计独立开来,修改人机交互界面无须对整个程序进行调试,这对设计像仪器操作面板这样复杂的人机界面而言是十分方便的。labview还为用户提供了函数扩展功能,从而可以调用c等传统编程语言写的程序代码、调用标准动态链接库等。对于构建虚拟仪器,labview有许多特
33、点和优势,诸如:仪器控制与数据采集的图形化编程;直观明了的前面板用户界面和流程图式的编程风格;内置的编译器可加快执行速度;数据采集daq函数库可让用户采集测量信号或发出控制信号,适合应用于快速且直接的控制;650多种仪器驱动程序,可驱动超过50多家厂商制造的仪器;内容丰富的高级分析库,可进行信号处理、统计、曲线拟合以及复杂的分析工作;利用activex,dde以及tcp/ip进行网络连接和进程通信;适用于windows nt/9x/xp,macos,hp2ux,sun以及concurrent实时计算机等等3。labview现成的人机界面工具可帮助用户很快地构成所需的图形化人机界面,包括趋势图、
34、按钮、led指示灯和图表等,完全无须从头开始去设计这些元件。并可更进一步以labview的pc工具箱或其它绘图软件来订制人机界面元件,藉以呈现仪控符号和系统流程图。labview的特色还在于拥有功能超强大且庞大的分析函数库,足以与专业数学分析套装软件相匹敌。25 设计本虚拟仪器系统所采用的方法labview的图形化程序设计是基于现代软件的面向对象技术和数据流技术而发展起来的。数据流程序设计表示只有在所有输入都有效时,一个对象才开始执行,同样,只有当对象的功能完成以后,对象输出才有效。这样的话,互相在对象间的数据流控制执行顺序,执行顺序不局限于来自文本式程序设计的线性顺序,它可以不受其限制。用户
35、能够通过连接模块来快速开发自己的应用程序,甚至能够使用多路数据通道,实现同步操作。与传统的文本式程序设计一样,labview也有控制流程图功能执行的部分,它们包括sequence case statement,for loop,while loop,它们被图形化地描述成边界结构,像在传统的线形化程序设计中可以插入代码段一样,可以把图标放在labview图形结构的界限内部。labview有一个图形编辑器来产生最优化的编辑代码,虚拟仪器执行他们相当编译c的速度。利用应用程序生成器,用户能够产生虚拟仪器,就像独立的执行程序一样。下面按步骤说明进行图形化的程序设计。1. 建立方案:选用labview软
36、件,可以构建虚拟仪器而不是编写程序。有了交互式控制的软件系统,用户可以很方便地建立其前面板窗口。为了实现具体的功能,用户利用向导把流程图结合在一起。2. 建立前面板:从控制模板上选择你需要的对象,放在虚拟仪器的前面板上。控制模板上的对象包括数字显示、表头、压力计、热敏计外壳、表、图片等。当你的虚拟仪器完成以后,就能在虚拟仪器工作十利用前面板去控制整个系统,如移动滑动片、在图象中变向、从键盘输入等。3. 构建图形化的流程图:对虚拟仪器进行程序设计,你不必担心很多传统设计所需的语法细节,而可自己构建流程图。从功能模板上选择对象(用图标表示),并用线将它们连接起来以便数据进行传递。功能模块上的对象包
37、括简单的数学运算、高级数据采集和分析方法、以及网络和文件输入输出操作。4. 数据流程序设计:labview用一种精巧的数据流程序设计模式把用户从文本式语言的线形化方式构建程序的方法中解放出来。因为在labview软件中程序的执行顺序由各方块中的数据流决定。你也可以建立同步操作的流程图。labview软件是一个多任务系统具有多线程功能并运行多个虚拟仪器。5. 模块化和层次:labview虚拟仪器实行模块化设计,因而任何虚拟仪器既能独立运行,又能被用作其他虚拟仪器的一部分。甚至可以创建自己的虚拟仪器图标,因而可以设计由虚拟仪器构成的多层系统,并可以改变它,同其他虚拟仪器交换和连接以满足不断变化的应
38、用需要。6. 图形编辑器:在许多场合,程序运行速度都很关键。labview软件是唯一的带有编辑器的图形化编程环境,可以产生最优化的代码,其运行速度与编译c的速度相当。利用内置的绘图器,甚至能够对时间很关键的代码部分进行分析和优化。因而,不会因为图形化编程降低了效率。图形化程序设计编程简单、直观、开发效率高。3 基于labview的虚拟仪器31 虚拟仪器频谱分析仪311 虚拟仪器频谱分析仪的实验原理信号的频谱描述是以频谱f(=2f)为横坐标变量来描述信号幅值、相位的变化规律。3111 周期信号与离散频谱在有限的区间上满足狄里赫利条件的周期函数x(t)可以展开成傅立叶级数。傅立叶级数有两种表达式1
39、. 傅立叶级数的三角函数展开式:x(t)=sinnt+cosnt =+(sinnt+cosnt)=+sin(nt+)式中:=是直流分量; =是余弦分量的幅值; =是正弦分量的幅值; =是各频率分量的幅值; =arctan是各频率分量的相位; =是角频率8;以角频率n为横轴,幅值或相角为横轴作图,则分别得到幅频谱图和相频谱图,它们是单边谱,n由0。2. 傅立叶级数的复指数函数展开式:x(t)=(m=0,1,2) (3-1)式中为傅立叶系数。 =+=| (3-2)又=+j=|根据欧拉公式= cosmt-j sinmt,代入式(3-2)可得=|=arctan=-m=0,常值分量=以|-m和-m作图分
40、别为幅频谱图和相频谱图,它们都是双边谱,m从-+。3. 周期信号频谱的特点8l 离散性。只在n离散值上取值或只在m离散点上取值。l 谐波性。每条谱线只出现在基波频率的整数倍的频率上,基波频率是主分量频率的公约数,相邻谱线间隔为。l 收敛性。常见的周期信号幅值总的趋势是随谐波次数的增高而减小。由于这种收敛性,实际测量中可以在一定误差允许范围内忽略次数过高的谐波分量8。3112 非周期信号与连续频谱1. 频谱密度函数x(w)对于非周期信号,可以看作周期t为无穷大的周期信号。当周期趋近无穷大时,则基波谱线及谱线间隔=趋近无穷小,从而离散的频谱就变成了连续的,所以非周期信号的频谱是连续的。傅立叶级数的
41、复指数函数展开式为: x(t)= (3-3)傅立叶系数 = (3-4)当周期t,谱线间隔=2/t趋近无穷小,离散量m( m=0,1,2,)变为连续量,傅立叶系数的模|趋于无穷小,故作不出|-m的幅频图,但各条谱线比例保持不变。将它放大t倍,则(3-4)变为:=因为有d,所以有=由于时间t是积分变量,故上式积分后,仅是的函数,并记作x()或,即x()=dt= x()或x(f)表示单位频段的频率分量,是复数,称为x(t)的频率密度函数。2. 非周期信号的傅立叶积分表示作为周期t为无穷大的非周期信号,当周期t时,频谱谱线间隔d,t,离散变量m变为连续变量,求和运算就变成求积分运算。于是(3-3)就变
42、为:x(t)= =这就是傅立叶积分。记为x(t)=。于是就有=dtx(t)= d将=2f带入以上两式,得 x(t)= dfx(f)= x()=2x(f)作| x()-|或|x(f)-f|图,就称为非周期信号的幅值谱密度。非周期信号用傅立叶级数来表示,其频谱为连续的,它由无限多个频率无限接近的频率成分组成。各频率上谱线幅值趋于无穷小,故用频谱密度表示,它在数值上相当于将分量放大t=2/d倍,同时保持各频率分量幅值相对分布规律不变。3113 离散时间信号的频谱在以计算机为中心的测试系统中,模拟信号x(t)进入计算机前先经过数据采集卡(daq)中的采样器,将连续时间信号变为离散时间信号,成为采样信号
43、后再经a/d转换器在幅值上量化为离散的数字信号。这样,就会引起频域上的一些变化。1. 采样定理连续时间信号x(t)被数据采集卡(daq)中的采样器以等时间间隔t采样,则采样时刻0、t、2t、所得信号x(t)的瞬时值,就构成了连续信号x(t)的离散时间序列,(i=0、1、2)。采样信号的频谱在幅值上比信号x(t)的频谱x()放大了1/t倍,并呈现周期行,周期为。采样是把连续时间信号变为离散时间序列的过程。这一过程相当于在连续时间信号上“抽取”许多离散时刻it(i=0、1、2)上的信号瞬时值。其中t是采样间隔,=2/t为采样角频率,它们的取值是个很重要的问题。即采样频率,必须满足关系:2式中为信号
44、的最高频率分量。当时,也就是采样频率=2/t2时,可以通过加一理想低通滤波器提取主分量,滤除全部m1的高频分量,从而由x()恢复原信号x(t)在理论上无误差。但是在实际工程中的低通滤波器不可能有理想的低通特性,故采样频率需要更高,通常为=(420) 。如果采样频率不满足采样定理,谱线就会重叠,即使采用理想低通滤波器也不可能将混入的高频主分量滤除。2. 离散傅立叶变换当采样点i=0、1、2n,共有n个,即无限长信号截断后变为周期信号,频谱由连续谱变为离散谱,即=k(k=0、1、2、n-1),于是有离散傅立叶变换(dft)的定义式如下: x(k)=x(it)= x(i) (3-5)x(t)= x(
45、k)=x(k) (3-6)式中=是复数因子。欲对连续时间信号x(t)用计算机进行离散傅立叶变换,首先经采样器对它进行采样,满足采样频率为=2/t(t为采样间隔),从而获得时间离散的信号(t),它是一个无限长的离散的时间序列 (i=0,1,2,)。实际上,只能对有限长的信号进行分析与处理,所以必须对无限长离散序列截断,只取有限长时间=nt中的n个有限数据 (i=0,1,2,)。这样,无限长时间信号x(t)就变成有限长时间信号=nt的周期信号。因此,其频谱的特点是具有离散性、谐波性、周期性。当对信号x(t)进行采样 ,共n个采样点,得离散时间序列x(i) (i=0,1,2,,n-1),代入式(3-
46、5)可得离散时间序列的频谱x(k) (k=0,1,2,,n-1),共n条谱线,其中有效谱线n/2条;反之,将n条谱线代入式(3-6),则可得i=0,1,2,,n-1共n个离散时间序列x(i)。当n=4时,总计需+n(n-1)=28次运算;当n=1024时,则需要进行2096068次运算。如此多的计算次数使dft不可能在实际工程中得到应用,因而出现了各种用于减少dft计算次数的算法。如基2时间奇偶分解算法等。那些能够减少计算次数,缩短计算时间,能在工程实际中用来实现dft计算的快速算法就称为快速傅立叶变换,简称fft。在许多软件的工具箱中,已有各种实用函数或功能模板可供使用。labview就提供
47、了这样的功能模块。虚拟信号频谱分析仪的功能主要是用来对生成的仿真信号进行fft变换,获得该时域信号的频谱图。312软件开发本章的任务是要在labview平台上开发出一台虚拟信号频谱分析仪器。该仪器应实现典型实验信号的产生,对典型实验信号进行fft变换,分析其频谱,并显示计算结果。概括起来其主要功能应包括:信号的产生、信号分析和处理、数据文件存储和读取。由于labview是基于模块化程序设计思想,因此在开发过程中也是基本上遵循着这一基本思想,在总体方案确定后,根据所需的不同功能分别组建各种功能模块,最后再集成和调试。下面将对各个功能模块的设计思想做简要介绍。根据该虚拟仪器功能的需要,程序至少应包
48、含以下几个模块:1、 典型信号生成模块2、 数据处理模块3、 数据读取存储模块4、 结果显示模块各个模块之间的数据流关系如图3-1所示: 3-1 各个模块之间的数据流关系 下面将分别阐述每个模块编程的基本思想和出现的问题及解决方法。3121典型信号生成模块labview的signal generation子模块下有丰富的仿真信号产生子vi,如正弦波序列发生器、方波序列发生器、三角波序列放生器、单位脉冲序列发生器、锯齿波序列发生器等。我们只需将需要的各个子vi放入一个case结构即可构成典型信号生成模块,case结构类似于c语言中的switch结构,是一个多分支选择结构,它根据输入值决定程序进入
49、不同的分支流。图3-2示出了该模块case结构下的方波分支程序流程。但在程序开发中有两个问题应特别注意。 3-2 case结构下的典型信号生成模块程序流程 应注意的问题: 1、“归一化频率”问题:labview中的所有仿真信号-用函数生成的离散时间序列,其输入参数频率均为数学频率,因此就不可避免地遇到了归一化频率的问题。数学频率f等于一个周期内采样点数的倒数,它是仿真信号频率与采样频率之比,即 这里特别提请读者注意,不要混淆归一化频率和采样频率的概念。 2、“bundle”的使用:为了将仿真信号波形的横轴起点、横轴分度值和幅值合成一个整体,我们使用了cluster子模板上的”bundle”图标
50、,它有三个输入量:横轴起点,设为0;横轴分度值,由采样频率的倒数,即采样间隔决定:输出信号幅值。 3122 数据处理模块 信号频谱分析仪所要做的主要数据处理工作就是对待分析信号进行傅立叶变换,以获得它的频率图。可幸是labview在频域分析子模块中提供了与信号分析有关的大量函数供设计者使用,在此我们调用了计算输入序列的实数fft作为信号频谱分析仪的主要数据处理子vi。 3-3 数据处理模块程序流程 3123 数据存储模块为了解决前文提到的“栅栏效应”和“泄露”问题我们将labview在windows. vi子模块与窗函数中提供的海宁窗、汉明窗、三角窗、blackman、exact blackm
51、an、flat top等子vi放在一个case结构中形成了“窗函数选择”。 由fft和“窗函数选择”及其它运算部件组成的数据处理模块如图3-3所示。 labview有丰富的文件操作函数库,可以方便进行的读写(i/o)操作。labview在向一个新的或已存在的文件读写数据是一个三部的过程:首先打开或创建一个文件,然后按一定格式读写数据到文件,最后关闭文件。labview可以读写文本文件(txt)、数据表文件(spreadsheets)和二进制文件(dat)。由于本信号频谱分析仪的数据量不是很大,而且为了学生在实验后进行实验数据分析方便,本模块采用数据表文件的形式对实验数据进行读写操作。 labv
52、iew的function模板下的file i/o子模板中放置了spreadsheet文件i/o,当到磁盘上读取数据或写数据到磁盘时它将数字数组转换成spreadsheet字符串格式或反向转换。本文选用write to spreadsheet子vi作为数据存储,它将一个单精度二维数组组成一个文本字符串,并把这个字符串写到新文件或添加到一个已存在的文件中:选择read spreadsheet file 作为数据读取,它可以读一个以文本格式保存的spreadsheet文件,并将其转换为二维单精度数字数组。 图3-4为读取存储文件的基本框图,其基本流程为:1、 打开或创建一个指定路径(file pat
53、h)的文件;2、 将s readsheet格式文件转换为二维单精度数字数组(读)或将二维单精度数字数组转换为spreadsheet文件格式(写);3、 关闭文件。应注意的问题write to spreadsheet和read from spreadsheet file两个函数当其输入端file path为空时自动弹出对话框要求输入读写路径。为了规范操作,作者采用了case结构,将read from spreadsheet file和write to spreadsheet分别放入true(进行读写操作)中,而false(不进行读写操作)中为空。由面板开关进行控制3124 结果显示模块结果显示模
54、块的主要功能是将测试到的、采集到的或经过数据处理后的数据送到示波器上显示,供使用者分析和研究。实质上显示模块还包含许多附属的显示项,如:坐标单位显示,最大值及其相应位置显示,时限显示,数据存取文件索引显示等许多内容。然而实际上它并不是完整意义上的模块,它是分散于各个模块之间,无处不在的,我门很难分析它的组成结构,所以此处不对其进行讨论。在此之所以将其称为“模块”,是由于它在整个程序中起举足轻重的作用,如果没有它,开发出来的程序不能称为“虚拟仪器”,只能算做是一个“信号处理存储器”。 3-4 读取存储文件的基本框图 3125 程序的集成与调试 将组建好的各功能模块按照前文提到的程序框图加上必要的
55、控件和指示器上,就可以将它们集成到一起,形成一个功能完善的虚拟信号频谱分析仪器。在程序集成时需要注意的问题有:1、 数据流向问题在上文已经提到过,由于labview 是数据流驱动式编程语言,因此在各个模块集成时,更应注意数据流向的问题。尤其是使用到弹出式子面板的模块,很容易引起数据流的混乱,造成错误。在必要时,应使用sequence结构控制数据流向,使它按照设计者的意思传递数据。2、 数据的内聚与偶合问题 同其它模块化编程语言一样,labview同样存在着模块的内聚与偶合问题。高内聚、低偶合是模块化编程遵循的一个基本原则,只有如此程序才可能有较好的可维护性。在使用循环结构时,要特别注意在何种情
56、况下循环内部的变量才可以被外部引用,而不影响内部的参量,不改变内部结构。尤其为增加仪器功能而添加功能函数或子vis时,因慎重考虑模块的内聚与耦合问题。 任何较大型的程序的调试都是一件烦琐的事情。labview虽然为我们提供完善的调试工具,但仍然存在着许多隐含在程序内部的错误无法发现。这就要求我们在开发程序的过程中一定要仔细地把好每一关,在模块内部将错误清除,才能减轻最终程序调试的难度。 3126仪器面板和程序流程图 图3-5示出了虚拟信号频谱分析仪的前面板设计窗口。前面板中包含了两个波形显示器、分别显示待分析信号的波形图和经fft变换后的幅值谱图:波形选择可选取正弦波、方波、三角波、锯齿波等实验信号,其幅值、相位、频率和采样点数由左边的信号源参数板决定;窗口选择板是为是否加hamming window. vi、hanningwindow. vi、triangle window. vi、blackman window. vi等而设立的,学生可以通过加窗前后的频谱变化,进一步理解窗函数对解决混频、泄露和栅栏效应的作用;数据存取可由用户决定数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年上海立达学院辅导员考试真题
- 提升业务拓展能力的实践计划
- 2024年南京理工大学辅导员考试真题
- 2024年西南医科大学选调工作人员笔试真题
- 2024年嘉兴市海宁市马桥养老服务中心招聘真题
- 2024年湖北省知识产权局下属事业单位真题
- 未来发展趋势分析计划
- 2024年四川轻化工大学选调笔试真题
- 2024年海南省医疗保障局下属事业单位真题
- 2024年宁波市鄞州区公立学校招聘笔试真题
- 男朋友申请表
- 反应器详细设计说明书
- 无人机教员聘用协议书参考
- 变电站工程电缆沟施工设计方案
- 氧化铝仓库及氧化铝输送系统施工组织设计
- 章狭义相对论力学基础PPT学习教案
- 项目需求调研表模板
- 高清元素周期表(专业版)
- 投资框架协议中英文版
- 50吨汽车吊性能表
- 光荣升旗手PPT课件
评论
0/150
提交评论