1、Q260046902 专业做论文中国石油大学(华东)现代远程教育毕业设计(论文)题 目:基于 LABVIEW 的虚拟信号分析系统设计与开发 学习中心: 重庆信息工程专修学院奥鹏学习中心 年级专业: 0409 级电气工程及自动化 学生姓名: 姜 和 峰 学 号: 0451480146 指导教师: 韩 亚 军 职 称: 讲 师 导师单位: 重庆信息工程专修学院 中 国 石 油 大 学 ( 华 东 ) 远 程 与 继 续 教 育 学 院论文完成时间:2008 年 5 月 15 日Q260046902 专业做论文中国石油大学(华东)现代远程教育毕业设计(论文)任务书发给学员 姜 和 峰 1设计(论文)
2、 题目: 基于 LabVIEW 的虚拟信号分析系统设计与开发 2学生完成设计(论文) 期限: 2007 年 11 月 1 日至 2007 年 12 月 1 日3设计(论文) 课题要求:首先规划好个人的设计方案,结合所学的知识对论文进行进一步的探讨,论文要内容鲜明,题目新颖,文字流畅,内容阐述清楚。格式严格按照学校规定排序。如有不熟悉的知识点,向指导老师请教。4实验(上机、调研)部分要求内容:在规定的时间内,到网上搜寻 LabVIEW 的相关信息然后摘抄下来,首先虚拟仪器是基于计算机的仪器,对虚拟信号系统设计进行一个了解,阐述波形的采集,波形存储,波形读取等程序的编程方法,框图程序和关键技术。把
3、相关的内容用Microsoft word 2003 排版论文的版面和图象处理软件来加工文中的图表。5文献查阅要求:1 刘君华.基于 LabVIEW 的虚拟仪器设计.电子工业出版社, 2003. 2 袁渊、古军 .LabVIEW 程序设计与应用.电子科技大学出版社, 2000. 6发 出 日 期: 年 月 日 7学员完成日期: 年 月 日指导教师签名: 学 生 签 名: i摘 要本文介绍了用 LabVIEW6.1 采集卡实现虚拟信号分析仪基本功能的方法,并重点阐述了波形的采集,波形存储,波形读取等程序的编程方法,框图程序和关键技术。虚拟仪器是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展
4、的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式 将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。结合实例详细介绍了 LabVIEW 通过 ActvieX 自动化技术与MATLAB 进行混合编程,达到了利用 MATLAB 优化算法库的目的。将 LabVIEW 与 MATLAB 有机结合,是一条开发智能虚拟仪器的有效途径。关键词:LabVIEW 数据采集 MATLAB Active
5、X 自动化 虚拟仪器iiii目 录摘 要 i目 录 ii第 1 章 前言 1第 2 章 虚拟仪器的主要特点 2第章 工作原理及性能指标 4第章 系统功能设计 64.1 硬件实现 .64.2 软件设计 .64.2.1 数据采集 74.2.2 信号分析 94.3 应用举例 .124.3.1 方法一:使用 MATLAB Script 节点 124.3.2 方法二:使用 ActiveX 函数模板 134.3.3 两种调用方法的比较 16第 5 章 结 论 18致 谢 19参考文献 201 第 1 章 前言LabVIEW 是美国 NI 公司具有革命性的图形化虚拟仪器开发环境,是业界领先的测试、测量和控制
6、系统的开发工具。它内置信号采集、测量分析与数据显示功能,集开发、调试、运行于一体,不仅提供了几乎所有经典的信号处理函数和大量现代的高级信号分析工具,而且LabVIEW 虚拟仪器程序(Virtual Instrument,简称 VI)可以非常容易的与各种数据采集硬件、以太网系统无缝集成,与各种主流的现场总线通信以及与大多数通用数据库链接。 “软件就是仪器” 反映了其虚拟仪器技术的本质特征1 。LabVIEW 是一个业界领先的工业标准软件工具,用于开发测试、测量和控制系统,前段时间神六的工程师接受采访时提到了 LABVIEW应用。LabVIEW 自 1986 年问世以来,世界各国的工程师和科学家们
7、都已将 NI LabVIEW 图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、缩短了产品投放市场的时间,并提高了产品开发和生产效率。使用集成化的 LabVIEW 环境与现实世界的信号相连,分析数据以获取实用信息,共享信息成果,有助于在整个企业范围内提高生产效率。由于 LabVIEW 具有编程语言的灵活性,可以结合专为测试,测量和控制设计的内置工具,因此您可以建立各种应用程序,其范围可从温度监控到复杂的仿真和控制系统。LabVIEW 6.1 版本推出了 Express 技术,简化了测试测量应用系统的开发进程,其灵活的交互式 VI 易与各种范围的 I/O 信号连接,用户只需点击鼠标配
8、置应用系统,即可完成搭建工作并开始运行。通过简单地修改 Express VI 的配置,可以快速反复地修改应用程序以适应新的测试测量需求。2 第 2 章 虚拟仪器的主要特点虚拟仪器的主要特点有:尽可能采用了通用的硬件,各种仪器的差异主要是软件。可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。用户可以根据自己的需要定义和制造各种仪器。虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国 NI 公司的LabVIEW。虚拟仪器的起源可以追溯到 20 世纪 70 年代
9、,那时计算机测控系统在国防,航天等领域已经有了相当的发展。PC 机出现以后,仪器级的计算机化成为可能,甚至在 Microsoft 公司的indows 诞生之前,NI 公司已经在 MACINTOSH 计算机上推出了 LabVIEW2.0 以前的版本。对虚拟仪器和 LabVIEW 长期,系统,有效的研究开发使得该公司成为业界公认的权威。普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了 VXI 标准,这是一种插卡式仪器本身都没有面板,其面板仍然用虚拟方式在计算机屏幕上出现。这些卡插入标准的 VXI机箱,再与计算机相连
10、,就组成了一个测试系统。VXI 仪器价格昂贵,目前又推出了一种较为便宜的 PXI 标准仪器。虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是 IEEE488 或 GPIB 协议。未来的仪器也应当是网络化的。LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界,学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。abVIEW 集成了与满足3 GPIB,VXI,RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用 TCP/IP,Act
11、iveX 等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“” 语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员,科学家,工程师所熟悉的术语,图标和概念,因此,abVIEW 是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究,设计,测试并实现仪器系统时,可以大大提高工作效率。利用 LabVIEW,可产生独立运行的可执行文件,它是一个真正的 32位编译器。像许多重要的软件
12、一样,LabVIEW 提供了Windows,UNIX,Linux,Macintosh 的多种版本。4 第章 工作原理及性能指标ActiveX 自动化是基于组件对象模型 COM(Component Object Model)的技术,允许应用程序或组件控制另一个应用程序或组件的运行,它包括自动化服务器和自动化控制器。MATLAB 支持 ActiveX 自动化技术。通过使用 MATLAB 自动化服务器功能,可以在其它应用程序中执行 MATLAB 命令,并与 MATLAB 的工作空间进行数据交换。因此可以借助这一特性,把 LabVIEW 与 MATLAB 结合,充分利用MATLAB 提供的大量高效可靠
13、的算法和 LabVIEW 的图形化编程能力,混合开发出功能强大的应用软件。基于数据库技术的专家系统将数据库技术与知识库技术结合起来,构造大规模的知识库系统,其知识量可达海量条规则与事实,而且从知识库中存取知识如同从数据库中存取数据一样迅速方便。充分利用关系型数据库管理系统功能,可以方便知识库管理,缩短系统的开发周期,并方便的实现知识库的易维护性与可扩充性,这将是知识库系统的发展趋势。同样利用数据库技术可以简化其它搜索策略的设计,实现了对正向推理和逆向推理设计的简化,使推理更快速、准确。对于作为监测对象的机械系统本身来说,其运行过程复杂多变,因此系统既要能把每一运行时刻的各个测点数据获取到,还要
14、同时能够把数据处理成简约易懂的图形、数字显示给用户,为此系统开启了双线程。系统启动后同时有两个线程在运行,一个是工作者(worker)线程,另一个是用户界面(UI) 线程。前者( 采样线程)负责数据的采集、计算、报警及文件的保存等后台工作;后者负责显示用户界面、控制第一个线程及数据的实时监测。对机器运行情况进行监测时,首先要获取到监测部位的数据,因此,设置采样线程优先级较高,用户界面线程优先级一般。这样保证了系统监测时,时刻都能得到需要数据。声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经
15、过 DSP 音效芯片的处理,将该5 数字信号转换为模拟信号输出。声卡的基本工作流程为2:输入时,麦克风或线路输入(Line In)获取的音频信号通过 A/D 转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以 PCM(脉冲编码调制)方式送到 D/A 转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(Line Out)送到音箱等设备转换为声波,人耳侦测到环境空气压力的改变,大脑将其解释为声音。衡量声卡的技术指标包括复音数量、采样频率、采样位数(即量化精度)、声道数、信噪比(SNR)和总谐波失真(THD)等,主要介绍如下:(1)复音数量 代
16、表了声卡能够同时发出多少种声音。复音数越大,音色就越好,播放声音时可以听到的声部越多、越细腻。(2)采样频率 每秒采集声音样本的数量。采样频率越高,记录的声音波形就越准确,保真度就越高,但采样数据量相应变大,要求的存储空间也越多。(3)采样位数 将声音从模拟信号转化为数字信号的二进制位数(bit)。位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。例如,16 位声卡把音频信号的大小分为 216=65536 个量化等级来实施上述转换。目前一般的声卡最高采样频率可达 96KHz;采样位数可达 16 位甚至 32 位;声道数为 2,即立体声双声道,可同时采集两路信号,需要时还可选用多
17、路输入的高档声卡或配置多块声卡;每路输入信号的最高频率可达 22.05 KHz,输出 16 位的数字音频信号,而 16 位数字系统的信噪比可达 96dB。6 第章 系统功能设计4.1 硬件实现声卡一般有 Line In 和 Mic In 两个信号输入插孔,声音传感器(本文采用通用的麦克风)信号可通过这两个插孔连接到声卡。若由 Mic In 输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,故推荐使用 Line In,其噪声干扰小且动态特性良好。声卡测量信号的引入应采用音频电缆或屏蔽电缆以降低噪声干扰。若输入信号电平高于声卡所规定的最大输入电平,则应在声卡输入插孔和被测信号之间配置一个衰减
18、器,将被测信号衰减至不大于声卡最大允许输入电平。此外,将声卡的 Line Out 端口接到耳机上还可以实时的监听声音信号。LabVIEW 对声音采集的设置默认于其所处的操作系统,本文使用的是最普通的声卡,对于高级的声卡采集信号时,要注意关闭如混响之类的一些特效,避免影响测量结果的真实性。4.2 软件设计根据 VI 结构化的特征,把整个系统分为数据采集和信号分析两个模块,以友好的图形界面与用户进行交互。LabVIEW SignalExpress 提供与基于 USB 的模块化数据采集系统 CompactDAQ 的单次点击、即插即用的设置并且可用于 270 余种数据采集仪器。NI CompactDA
19、Q 现有30 余种模块选择,帮助用户轻松地结合众多测量,例如 RTD、电流I/O、高密度数字 I/O、高速模拟 I/O 和高精度模拟 I/O。使用台式仪器进行重复测量或使用多种仪器测试(例如激励响应测量)通常要手工重复去调整仪器上的旋钮和按钮。从数学上讲,对于确定的初始值,由动力系统就可以推知该系统长期行为甚至追溯其过去形态。但在 20 世纪7 60 年代,美国气象学家 Lorenz 在研究大气时发现,当选取一定参数的时候,一个由确定的三阶常微分方程组描述的大气对流模型,变得不可预测了。如果模拟大气动力学特性的微分方程的解确定是混沌的,那么就不可能进行长时期的天气预报。因为一个任意小的扰动,如
20、蝴蝶翅膀的振动都有可能在将来某个时候改变地球另一边的天气。这就是著名的蝴蝶效应。一个 LabVIEW 程序分为 3 部分:前面板、框图程序、图标/接线端口。前面板用于模拟真实仪器的前面板;框图程序则是利用图形语言对前面板上的控件对象(分为控制量和指示量两种)进行控制;图标/接线端口用于把 LabVIEW 程序定义成一个子程序,从而实现模块化编程。利用 LABVIEW 设计者可以向搭积木一样,轻松组建一个虚拟仪器软面板。但图形化语言在软件设计中有一定的限制,因此,在虚拟仪器软件设计中可采用以 LABVIEW 为主,LABVIEW 和 C 语言混合编程的方法。Lorenz 在耗散系统中首先发现了混
21、沌运动,这为以后的混沌研究开辟了道路。 通过 LabVIEW SignalExpress,工程师们可以轻松地在 400多种模块化和独立仪器上进行自动化的数据采集、分析和存储。工程师们可以通过使用 LabVIEW SignalExpress 节省大量宝贵的实验室工作时间,完成许多通用测量任务的自动化,例如电路特特性、扫频和数据记录。4.2.1 数据采集数据采集模块根据用户设置的声音格式从声卡获得数据。采集到的数据及其频谱特性以直观的图形方式呈现于用户面前。该模块还提供保存所有或部分数据以及转到信号分析模块的功能。由于 PCM 波形音频格式输出的信号质量最好,所以本文使用该格式对信号进行数字化处理
22、、存盘和重载。数据采集过程分为三步:初始化 /配置声卡;采样; 释放声卡。图 3. 1 为数据存盘部分框图程序。8 图 4.1 数据存盘框图程序LabVIEW 把声卡的声道分为 mono 8-bit(单声道 8 位)、mono 16-bit(单声道 16 位) 、stereo 8-bit(立体声 8 位)和 stereo 16-bit(立体声 16 位)。若用单声道采样,左右声道信号都相同,而且幅值为原信号的 1/2;用立体声采样,左右声道互不干扰,可以采集两路不同的信号,而且幅值与原信号相同。声卡的采样频率分为 8000Hz、11025Hz、22050Hz 和44100Hz,应根据具体情况采
23、用合适的频率。本文根据主流声卡的性能指标,默认设置采样频率为 44.1KHz,采样位数为 16 位,采样方式为单声道,这样采样的波形稳定,而且干扰小。声卡对外部信号的采样在起始部分会有几十个不稳定的数据,所以无特殊要求时忽略了前 100 个数据。图 3.2 所示局部用户界面中的波形是通过麦克风实时采集的女士高音,其效果已经满足了普通测量要求,在采集暂停和终止时可以通过 LabVIEW 波形显示器(Waveform Graph)自带的功能对波形进行观察和测量,对稳定的周期信号还可以直接准确的读出幅值和频率。9 图 4.2 数据采集和谱分析预览部分的用户界面4.2.2 信号分析首先我们先对信号分析
24、仪作一个简介。信号分析仪是用来对电信号进行测量,显示,波形存储,时域和频域分析的仪器。虚拟信号分析仪主要由参数设置,功能选择,信号一,信号二和互相关分析文革模块构成:1参数设置模块。完成波形显示,波形存储,读取波形数据,更新信号和退出。2功能选择模块。实现波形显示,波形存储,读取波形数据,更新信号和退出。3信号一。对应采集通道一,可实现滤波及加窗,自相关分析,自功率谱分析,统计分析和幅值分析。4信号二。对应采集通道二,功能与信号一类似。10 5互相关分析。对信号一和信号二进行互相关分析和功率谱分析。程序运行时,首先通过往通道控件中输入通道号,来控制数据采集时的通道数,同时对扫描数,扫描率和缓冲
25、大小进行配置。配置完成后,可以点击波形采集,先观察信号的具体波形,如果不满足要求,则可以重新进行参数配置。当所要采集的波形满足要求后,可以点击波形存储,把波形数据保存到指定的文件当中。点击读取波形数据,把以前存储到文件中的数据读出来,并把相应的信号输送到信号一和信号二。此时通过点击滤波及加窗,对信号进行滤波及加窗函数处理,同时把处理之后的数据输出到相关分析单元,对输出信号进行相关分析。信号分析模块从采集模块获得数据,或者从文件重载以前采集并存盘的数据;对全部数据进行时域和频域分析并显示相应的时域图和频域图;重新做增强的数据保存工作,即保存所选时段数据的谱信息,以便作进一步的分析。用户还可以对数
26、据进行分段处理,甚至对该段数据按频段进行分析。LabVIEW 完全图形化的编程环境和数据流的驱动方式使用户可以非常直观的观察到程序代码的并行执行。该系统充分利用 LabVIEW 的多线程(Multithreading)技术,为整个系统中的用户接口、数据采集、信号分析以及文件读写等多个操作自动分配优先级,让它们相互独立运行,避免了单线程系统中的调用阻塞,且不会浪费 CPU 时间3。例如,用户接口操作被分配在一个特定的线程并被赋予较低的优先级,移动面板窗口这样的事件不会影响数据采集等对时间要求非常严格的操作,从而保证了系统的可靠性。LabVIEW 还有自动错误处理功能1 ,利用其函数节点的 err
27、or in和 error out 端口可在程序运行中某一个函数发生错误时自动挂起,弹出错误信息对话框,高亮显示出错函数的图标并将出错信息依次向后传递,后续函数将不再进行任何操作,直到程序最后做出相应的错误处理。11 图 3.3 为信号分析模块的框图程序。该 VI 主要使用了 LabVIEW中 While Loop 结构来实现整个程序的信号采集、存储和运行退出等功能,并且应用了 Sound Input 和 Signal Processing 模板中的节点完成信号采集、时域图实时显示、加窗和功率谱分析等操作。在信号分析之前加入了 Butterworth 低通滤波器,对原始信号进行平滑滤波处理以消除
28、高次谐波失真和噪声干扰,提高信噪比。和模拟滤波器相比,该数字滤波器不需要精度组件,不会因温度、湿度的变化产生误差。图 4.3 信号分析模块的局部框图程12 4.3 应用举例在混合编程中,通常用 LabVIEW 设计用户图形界面,负责数据采集和网络通信;MATLAB 在后台提供大型算法供 LabVIEW 调用。4.3.1 方法一:使用 MATLAB Script 节点为了简化调用过程,LabVIEW 提供了 MATLAB Script 节点。LabVIEW 使用 ActiveX 技术执行该节点,启动一个 MATLAB 进程。这样用户就可以很方便地在自己的 LabVIEW 应用程序中使用 MATL
29、AB,包括执行 MATLAB 命令、使用功能丰富的各种工具箱,如神经网络工具箱(Neural Network Toolbox) 、优化工具箱(Optimization Toolbox) 。值得注意的是:LabVIEWgn MATLAB 之间的数据通信仅支持Real、 RealVector、RealMatrix 、Complex 、VectorComplex、Matrix 六种格式的数据,且必须根据具体情况进行选择。当开发涉及工业控制的应用程序时,常常由于控制参数的非线性变化,而无法建立合适的模型。由于此类问题,神经网络提供了一条有效的解决途径。在 LabVIEW 开发环境下新建一个三层 BP
30、神经网络的 VI 程序,网络结构部分主要设置隐层(Hidelay)神经元的个数、传递函数(Transfer Function)以及网络训练算法( Algorithm) 。经过样本数据(Training Data)训练过的网络,即可进行仿真测试了。MATLAB 脚本程序可以在 MATLAB 环境下调试,再使用 MATLAB Script 节点导入MATLAB 脚本;也可以直接在 MATLAB Script 节点中编写。位于FunctionMathematicsFormula 模板中的 MATLAB Script 节点可以导入 MATLAB 脚本。脚本程序使用 CASE 语句进行传递函数和训练算法
31、的选择。MATLAB Script 节点中神经网络的输入层和隐层之间的权值矩13 阵 inweight 应指定为 RealMatrix,在 LabVIEW 中对应的数据类型是二维实数据组 Net.I-Weight。变量名 LabVIEW 数据类型 MATLAB 数据类型 size of algorithm Double floating point numeric Real t outweight hideb outb result 1D array double floating numeric Real Vector p data inweight Multidimensional arr
32、ay double floating point numeric Real Matrix 在此程序中,得到的 BP 网络各层的权值矩 阵、阈值向量和传递函数三类参非常有用的,它们决定了神经网络的结构与特性。因此当神经网络训练好后,可以直接使用这些参数处理新的数据,得到预测值,而不必重新调用 MATLAB。这样程序的运行效率会更高。另一方面,将调试好的神经网络 VI 创建成一个子 VI,作为模块保存,当需要更新网络时,可以随时调用。虽然通过 MATLAB Script 节点进行通信比较易于实现,但以这种方式调用 MATLAB 时,在任务栏中将出现一个 MATLAB 图标,单击该图形会打开 MAT
33、LAB 窗口,在其中可以任意输入。通常,这会干扰前台程序的运行,甚至造成程序的崩溃。另一方面,当 MATLAB Script节点中的脚本执行完后,MATLAB 也不能自动关闭。4.3.2 方法二:使用 ActiveX 函数模板在 LabVIEW 中使用引用(Refnum, 也称“参考”)作为某个对象的唯一标识符,对象可以是文件、设备、网络连接等。由于引用是指向某一对象的临时指针,因此它仅在对象被打开时有效,一旦对象被关闭,LabVIEW 就会自动断开连接。为了获得对 MATLAB 更多的控制,可以在框图程序中使用 LabVIEW 提供的相关子 VI 创建和获取自动化对象,14 然后在代码中调用
34、对象拥有的方法和属性。当不再需要对象时,可以随时释放。LabVIEW 可以调用 MATLAB(Ver6.5)ActiveX 接口提供的 8 个方法和 1 个属性:(1)BSTR Execute(inBSTR Command): Execute 方法调用MATLAB 执行一个合法的 MATLAB 命令,并将结果以字符串的形式输出。其输入参数 Command 为字符串类型变量,表示一个合法的MATLAB 命令。(2)void GetFullMatrix(in BSTR Name,inBSTR Workspace,in,outSAFEARRAY(double)*pr,in,outSAFEARRAY(
35、double ) *pi):使用 GetFullMatrix 方法,LabVIEW 从指定的 MATLAB 工作空间中获取一维或二维数组。 Name 为数组名,Workspace 标识包含数组的工作空间,其默认值是“base”。Pr 了所提取数组的实部,pi 包含了所提取数组的虚部,它们在 LabVIEW 中为变体(Variant_数据类型。(3)void PutFullMatrix(inBSTR Name,inBSTR Workspace,inSAFEARRAY(double)*pr,inSAFEARRAY(double )*pi) ;此方法向指定的 MATLAB 工作空间中设置一维或二维数
36、组。如果传递的数据为实数型,pi 也必须传送,不过其内容可以为空。(4)BSTR GetCharArray(inBSTR Name,inBSTR Workspace):此方法从指定的 MATLAB 工作空间中获取字符数组。(5)void PutCharArray( inBSTR Name,inBSTR Workspace ,inBSTR charArray):此方法向指定的工作空间中的变量写入一个字符数组。(6)void MinimizeCommandWindow():此方法使 MATLAB 窗口最小化。15 (7)void MaximizeCommandWindow():此方法使 MATLA
37、B 窗口最大化。(8)void Quit():用于 MATLAB 退出。(9)属性 Visible:当 Visible 为 1 时,MATLAB 窗口显示在桌面上;当 Visible 为 0 时,隐含 MATLAB 窗口。举例说明:LabVIEW 程序中有二维数组 A、B,通过 MATLAB 计算表达式B=A.*3(即 A 的每个元素均乘以 3) ,得到的结果保存在 LabVIEW 的数组 B 中,并显示在前面板上。其 MATLAB Window 为枚举量,值为Lnvisible 或 Visible,目的是用于控制任务上是否出现 MATLAB 图标。数组 A 为控制量,用于输入二维数组数据。数
38、组 B 为指示量,用于显示经 MATLAB 计算后返回的结果。此程序较完整地描述了调用MATLAB 过程的总体框架,至于复杂的算法可以在 MATLAB 中实现。首先必须引用自动化对象。为此在 LabVIEW 的ControlsActiveXAutomation Refnum 模板中选择自动化引用(Automation Refnum)控制量,将其放置在前面板上,设置控件的Visible 属性为 False,从对象列表中选择 Matlab Application(Version6.5 ) Type Library Version1.0。这样 MATLABr 的引用就添加到程序中,其对应的图标为 M
39、LApp.DIMLApp。为了简化访问自动化服务器的过程,LabVIEW 在其FunctionLCommunicationActiveX 模板中提供了一组与 ActiveX 操作相关的子 VI,其中 Automation Open.vi 打开引用,启动 MATLAB 自动化服务器,并将引用传递给其它节点,如属性节点(Property Node) 、调用方法节点(Invoke Node) 。程序中 LabVIEW 调用 PutFullMatrix 方法,将二维组 A 通过参数 pr 传到 MATLAB 的“base”工作空间。虽然 A16 为双精度浮点型数组,pr 和 pi 的数据类型为变体(
40、Variant) ,数据类型不同,但 LabVIEW 会自动将输入数据的类型转换为变化,以满足输入要求。程序中 A 为实数数组,无虚部,所以给 pi 赋空值。接着LabVIEW 调用 MLApp.DIMLApp 提供的 Execute 方法,向 MATLAB 传送一条命令“B=A.*3”,于是 MATLAB 将数组 A 的每个元素与 3 相乘,计算后的结果保存在数组 B 中。再调用 GetFullMatrix 方法,从“base”工作空间中获取数组 B 的实部。这里必须使用 Variant to Data.vi,将变体类型的输出转化为 LabVIEW 中的二维数组。最后用 Quit 方法退出M
41、ATLAB,Automation Close.vi 随即断开引用。运行程序,可以看到MATLAB 一经启动,任何标上底图标例立即消失,计算结果返回到LabVIEW 的前面板上。这里仅介绍了 ActiveX 函数模板的基本使用以及调用 MATLAB 过程的总体框架,读者可以根据需要进行扩充。4.3.3 两种调用方法的比较(1)MATLAB Script 节点具有多输入、多输出的特点,一次处理的信息量要以很大。MATLAB 脚本可以先在 MATLAB 下调试。无误后再导入到 MATLABSeript 节点中。MATLAB Script 节点对输入、输出数据的类型有明确的要求。只有 LabVIEW
42、中的数据类型与 MATLAB中的数据型相匹配,才能进行数据传输。使用 MATLAB Script 节点的方法,快捷方便,但不利于较大的应用程序开发。当需要使用时,可将其模块化,采用主程序动态加载。(2)使用 ActiveX 函数模的方法,具有对 MATLAB 更强的控制能力。如随时打开和关闭 MATLAB,隐藏在务栏中的 MATLAB 图标,与 MATLAB 进行字符数组传输,这些都是 MATLAB Script 节点都不具有的。使用 ActiveX 函数模板时,经常 会遇到数据类型的转换,尤其是变体(Variant )与其他类型的转换。当高用大型算法时,必须明确输入、输出数据的具体类型,而且
43、要尽量减少数据传输量和启动17 MATLAB 自动化服务器的次数 ActiveX 函数模板,适于较大的应用程序开发。在 LabVIEW 顺序结构中,不提供使用。原因是顺序结构妨碍了作为 LabVIEW 优点之一的程序并行运行机制,而且 MATLAB 自动化服务器启动也需要一定时间,这会使整个程序不能及时处理其它的用户操作。总之,两种调用方法其自身的优势和不足。在开发一个大的复杂应用程序时,综合不同的应用要求,合理选择可以显著提高开发效率。18 第 5 章 结 论 本文采用 PC 技术、DSP 技术和 LabVIEW 多线程技术,实现了对音频信号实时、高保真的采集与处理。实践证明,整个系统性价比
44、高,通用性强,界面友好,数据存储方便,性能稳定可靠,其个别性能指标甚至优于市售数据采集板卡,而价格却不到后者的十分之一。在 PC 上配置多块声卡并行工作,完全可以构成一个多通道数据采集系统,满足特定应用范围内数据采集的需要。如果采用笔记本电脑则无需添加任何硬件就可以构成便携式测量系统。用虚拟仪器技术,通过 LabVIEW 构建测试仪器开发效率高、可维护性强、测试精度、稳定性和可靠性能够得到充保证;具有很高的性价比,节省投资,但于设备更新和功能扩充。如果能利用 MATLAB 功能强大的算法库,可望开发出更具智能化的虚拟仪器,将会在诸如故障诊断、专家系统、复杂过程控制等方面大有用武之地。在声卡性能
45、越来越好,成本越来越低,普及率越来越高的情况下,这种方法值得在工程测量应用及相关实验室中进一步推广和扩充。例如,对环境噪声进行实时监测,采集语音信号并进行分析和处理来实现语音识别,还可以实现示波器、信号发生器及万用表等设备在音频信号范围内的基本功能,其应用前景较为广阔。19 致 谢本文从拟定题目到定稿,历时数月。在本论文完成之际,首先要向我的导师致以诚挚的谢意。在论文的写作过程中,韩亚军老师给了我许许多多的帮助和关怀。韩老师学识渊博、治学严谨,待人平易近人,在韩老师的悉心指导中,我不仅学到了扎实的专业知识,也在怎样处人处事等方面收益很多;同时他对工作的积极热情、认真负责、有条不紊、实事求是的态
46、度,给我留下了深刻的印象,使我受益非浅。在此我谨向韩亚军老师表示衷心的感谢和深深的敬意。同时,我要感谢学院给我们授课的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。我也要感谢石油大学网络教育学院及他的重庆永川学习中心,是它提供了良好的学习环境和生活环境,让我的大学生活丰富多姿,为我的人生留下精彩的一笔。另外,衷心感谢我的同窗同学们,在我毕业论文写作中,与他们的探讨交流使我受益颇多;同时,他们也给了我很多无私的帮助和支持,我在次深表谢意。最后,向我的亲爱的家人和亲爱的朋友表示深深的谢意,他们给予我的爱、理解、关心和支持是我不断前进的动
47、力。学无止境,明天,将是我终身学习另一天的开始。Q260046902 专业做论文20参考文献1 刘君华.基于 LabVIEW 的虚拟仪器设计.电子工业出版社, 2003.2 袁渊、古军 .LabVIEW 程序设计与应用.电子科技大学出版社, 2000. 3 刘国福,张屺,淳静,等. DSP 与 ISA 总线声卡的接口技术研究 J. 测控技术,2002(3):61-63.4林渭勋.浅谈半导体高频电力电子技术.电力电子技术选编,浙江大学,384-390,19925季幼章.迎接知识 经济时代.发展电源技术应用.电源技术应用,N0.2,l9986叶治正,叶靖国.开关稳压电源.北京:高等教育出版社,1998Q260046902 专业做论文中国石油大学(华东)现代远程教育毕业设计(论文)评语指导教师 : 韩 亚 军 职称: 讲 师 工作单位: 重庆信息工程专修学院 学 员: 姜和峰 年级专业层次 0409 级 电气工程及自动化 高起本评语: 指导教师签名: 年 月 日