基于LabVIEW的功率谱的设计Word格式文档下载.docx
《基于LabVIEW的功率谱的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的功率谱的设计Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
2.2.4公式节点..............................................................................................6
2.3LabVIEW功率谱设计步骤............................................................................7
2.3.1整体的设计框架...................................................................................7
2.3.2设计总方案...........................................................................................7
3.LABVIEW功率谱功能实现....................................................................................8
3.1各部分电路功能.............................................................................................8
3.2程序设计.........................................................................................................9
3.3程序运行结果...............................................................................................10
总结..............................................................................................................................11
致谢..............................................................................................................................12
参考文献......................................................................................................................13
课程设计说明书第1页1.LabVIEW概述
1.1LabVIEW与G语言
LabVIEW[1](LaboratoryVirtualInstrumentEngineering),即实验室虚拟仪器集成环境,是一种用图标代替文本行创建应用程序的图形化编程语言。
和Perl、VisualC++、Delphi、VisualBasic等文本型程序代码的程序语言不一样的是,LabVIEW是一种利用图形化的结构框图构建程序代码的语言,所以,运用这种图形化的语言编程时,基本不用写文本行程序代码,取代的是使用连线、图标构成的流程图表。
LabVIEW是一种面向最终用户的编程平台,它不必去记忆那眼花缭乱的文本式程序代码,提供了实现数据采集系统和仪器编程的便捷方法。
使用它进行测试、原理设计、研究并且实现仪器系统的功能时,因而可以促进提高工作效率。
LabVIEW是一个图形编程虚拟仪器系统开发环境,它集中了图形化编程方式的灵活性与高性能以及数据采集、控制、数据分析、数据表示等功能,能为数据显示、测量分析、数据采集和仪器控制等各种实际应用提供因要的开发平台,所以,LabVIEW环境可以缩短应用程序开发时间和项目成本帮助程序员们促进工作效率。
当我们厌烦于对于文本模式编程语言,陷入数组、函数、表达式、指针以及对象、继承、封装等枯燥的概念和代码中时,我们急切的需求一种层次清晰、简单易用、代码直观而且功能强大的编程方法,G语言就是一种这样的新颖的编程,而LabVIEW则是G语言的新颖的编程方法的代表。
LabVIEW基于G语言的基本特征——用软件模块和流程方框图产生块状程序,编程就像是设计电路图一样[2]。
1.2虚拟仪器的基本概念
虚拟仪器(VisualInstrument)是一种基于计算机的仪器,计算机和仪器有两种结合方式。
一是计算机装入仪器:
最典型的是智能化的仪器,这类仪器随着计算机功能的强大和体积的缩小,目前已出现嵌入式系统的仪器。
二是仪器装入计算机:
虚拟仪器主要是指这种方式,它是以计算机硬件以及操作系统为依托,实现各种仪器功能。
虚拟仪器利用计算机显示器(CRT)的显示功能模拟传统仪器的控制面板,以多种形式表达输出检测结果;
利用计算机强大的软件功能实现信号数据的运算,分析,处理,由I/O接口设备完成信号的采集,测量与调理,从而完成各种调试功能的一种计算机仪器系统。
课程设计说明书第2页虚拟仪器中硬件仅仅是解决信号的输入/输出的方法和软件赖以生存,运行的物理环境,软件才是整个仪器的核心构件。
它由计算机,模块化功能硬件和应用软件三大部分组成。
目前已有多种虚拟仪器的软件开发工具,一是文本式编程语言:
如C,VisualC++,VisualBasic,Labwindows/CVI等。
二是图形化编程语言:
本文介绍的NI公司的Labview,HP公司的VEE,CapitalEquipment公司的Testpoint2.0和HEM公司的Snap-Master等。
1.3LabVIEW软件的特点
Labview运用图形化的编程方式,设计者无需写任何文本格式的代码,是真正的工程师的语言;
提供了丰富的数据采集,分析及存储的库函数;
既提供了传统的程序调试手段,如设置断点,单步运行,同时提供有独到的高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷;
32bit的编译器编译生成32bit的编译程序,保证用户数据采集,量方案的高速执行。
利用Labview,可产生独立运行的可执行文件,Labview提供了Windows,UNIX,Linux等多种版本;
囊括了DAQ,GPIB,PXI,VXI,RS-232/485在内的各种仪器通信总线标准的所有功能函数;
提供大量与外部代码或软件进行连接的机制,如DLLS(连接库),DDE(共享库),ActiveX等;
强大的Internet功能,支持常用网络协议,方便网络,远程测控仪器的开发。
1.4Labview中的基本概念
1.4.1VI的概念
利用LabVIEW开发出的图形化应用编程环境被称作VI(VirtualInstrument的英文简称,即虚拟仪器[2])。
VI是由框图、图标以及连线构成的应用软件程序,Labview应用程序以.VI后缀,由FrontPanel(前面板)、BlockDiagram(框图或流程图程序)以及图标/连接器(Icon)三部分构成。
前面板是应用程序的主界面,是人机交互的窗口,主要由Indicators(显示量)和Controls(控制量)组成。
在程序运行时,用户通过使用控制量(例如用户输入数据的开关以及一些文本框、按钮等)控制程序和输入数据的运行,而显示量(例如显示波形的示波器控件等)则主要用于显示程序运行的结果。
如果将一个VI程序比作一台仪器,那么,显示量则是仪器的显示窗口,用于显示经过处理、程序分析后的结果,
课程设计说明书第3页而控制量是仪器的数据输入端口的控制开关,用于给程序提供控制信号和输入数据。
若是把VI的前面板比作一台仪器的操作面板,用于信号的结果的显示、输入以及仪器控制的运行,那么后面板就是仪器中的电路原件和电路板,主要对信号进行处理和分析[3]。
1.4.2框图程序
每一个程序前面板都对应着一段框图程序。
框图程序用Labview图形编程语言编写,可以理解为传统程序的源代码。
框图程序由端口,节点,图框和连线四种元素构成。
端口是框图程序与前面板的控制件和指示器间传递数据的起点与终点。
节点是实现程序功能的基本单元,它具有输入和输出端口,在程序运行时完成一定操作。
图标是LabVIEW作为G语言这种图形化的编程语言的特点之一,是图形化的函数、变量、常量,以及ExpressVIs和VIs。
一般情况下,LabVIEW中的每一个图标至少都有一个端口,用来向其他图标传输数据。
连线是图标的数据端口之间的数据通道,这等同于一般程序中的赋值语句。
数据是单向流动的,从“源数据端口”往一个或多个“目的数据端口”流动。
不同的线型表示着不同的数据结构类型。
在屏幕上,不同数据类型不同的颜色标注。
框图是用来实现LabVIEW中的流程顺序。
例如条件分支控制、顺序控制和循环控制等,程序员使用它们控制着VI程序的执行顺序方式。
在LabVIEW中,框图的使用是保证其结构化的程序设计运行的最重要手段。
2.LabVIEW功率谱基础
2.1虚拟功率谱参数及基本结构
(1)视在功率:
测得的正弦电压和电流有效值得乘积,即S=UI
(2)相位差:
通常用φ表示,是两个频率相同的交流电相位的差,功率因数:
用λ表示,λ=cosφ
(3)有功功率:
指一端口实际消耗的功率,在正弦波中,电路的有功功率就是其平均功率P=UIcosφ,无功功率:
Q=UIcosφ
(4)瞬时功率:
正弦波任一时刻的电流与电压的乘积
课程设计说明书第4页2.2LabVIEW中功率谱功能函数
2.2.1正弦信号发生器
图2-1正弦波功能引脚图
如图2-1所示,以下介绍各端口的功能。
重置相位确定正弦波的初始相位。
默认值为TRUE。
如重置相位的值为TRUE,LabVIEW将把初始相位设置为相位输入。
如重置相位的值为FALSE,LabVIEW将把正弦波的初始相位设置为上一次VI执行时相位输出的值。
采样是正弦波的采样数。
默认值为128。
幅值是正弦波的幅值。
默认值为1.0。
频率是正弦波的频率,单位为周期/采样的归一化单位。
默认值为1周期/128采样或7.8125E–3周期/采样。
相位输入是重置相位的值为TRUE时正弦波的初始相位,以度为单位。
正弦波是输出的正弦波。
相位输出是正弦波下一个采样的相位,以度为单位。
错误返回VI的任意错误或警告。
如将错误连线至错误代码至错误簇转换VI,错误代码或警告可转换为错误簇。
正弦波详细信息
如序列Y表示正弦波,正弦波VI根据下列等式生成一个信号。
yi=a*sin(phase[i])
i=0,1,2,..,n-1,其中,
a是幅值,
课程设计说明书第5页相位[i]=初始相位+频率*360*i,
频率是以归一化周期/采样为单位的频率,
如重置相位为TRUE,则初始相位是相位输入。
如重置相位为FALSE,则初始相位是上一次执行的相位输出。
“正弦波”VI可重入,所以可使用该VI模拟从正弦波函数生成器进行连续采集。
如输入控件重置相位为FALSE,则此后对正弦波VI的调用将产生含有下个采样的输出正弦波数组。
该VI在下次执行时,将相位输出作为新的相位输入。
2.2.2幅值和电平测量
图2-2幅值和电平测量功能引脚图
如图2-2所示,以下介绍各端口的功能。
信号:
包含一个或多个输入信号。
重新开始平均:
指定是否重新开始选定的平均过程。
默认值为FALSE。
第一次调用ExpressVI时,平均过程会自动开始。
勾选平均复选框后将出现输入端。
错误输入(无错误):
说明VI或函数运行前发生的错误。
直流:
采集信号的直流分量。
最大峰:
测量信号的最高正峰值。
输入信号:
显示输入信号。
若将数据连ExpressVI后运行,输入信号将会显示实际数据。
如关闭后再打开ExpressVI,输入信号将显示示例数据,直到再次运行VI。
2.2.3功率谱
图2-3功率谱功能引脚图
课程设计说明书第6页如图2-3所示,以下介绍各端口的功能。
X是输入序列。
功率谱[6]返回X的双边功率谱。
如输入信号以伏特为单位(V),功率谱的单位为伏特-rms平方(Vrms2)。
如输入信号不是以伏特为单位,则功率谱的单位为输入信号单位-rms平方。
功率谱详细信息
函数x(t)的功率谱Sxx(f)定义为Sxx(f)=X*(f)X(f)=|X(f)|2,
其中X(f)=F{x(t)},X*(f)是X(f)的复共扼。
“功率谱”VI根据FFT和DFT例程计算功率谱
其中Sxx表示输出序列功率谱,n是输入序列X中的采样数。
当输入序列X的采样数n为一个有效的2的幂
n=2m
m=1,2,3,„,23,
“功率谱”VI以快速基2FFT算法计算实数值序列的快速傅立叶变换并缩放幅度平方。
该VI以FFT可计算的最大功率谱为223(8,388,608或8M)。
当输入序列X中的采样数不是一个有效的2的幂而是可分解因子的小质数的积时,“功率谱”VI以高效DFT算法计算实数值序列的离散傅立叶变换并缩放幅度平方。
VI以快速DFT可计算的最大功率谱为222–1(4,194,303or4M–1)。
2.2.4公式节点
公示节点[7]是一种程序结构,利用公示节点,用户不仅可以实现复杂的数学公式还能通过文本编程写一些基本的逻辑语句。
公式节点基本上弥补了图形化开发语言相对于文本语言的缺陷。
公示节点的语法和C语言的语法基本相同。
公式节点,如图2-4所示。
计算程序框图上的数学公式和与C相似的表达式。
在公式中实用下列内置函数:
abs,acos,acosh,asin,asinh,atan,atan2,atanh,ceil,cos,cosh,cot,csc,exp,expm1
课程设计说明书第7页,floor,getexp,getman,int,intrz,ln,lnp1,log,log2,max,min,mod,pow,rand,rem,sec,sign,sin,sinc,sinh,size0fDim,sprt,tan,tanh。
数学VI中的解析器和公式节点中的解析器有所不同。
图2-4公式节点功能引脚图
2.3LabVIEW功率谱设计步骤
2.3.1整体的设计框架
While循环,如图2-5所示。
重复执行内部的子程序框图,直到条件接线端(输入端)接收到特定的布尔值。
将布尔值连接至While循环的条件接线端。
有段单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
也可将一个错误簇连线至条件接线端,右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
While循环永远至少执行一次。
图2-5while循环
2.3.2设计总方案
产生同频率的仿真电流、电压信号,它们的初相位、幅值、采样、频率都可以任意的调节。
通过调节各参数,可正确测量有功功率、视在功率和无功功率。
具体包括以下四个部分:
(1)计算瞬时功率和显示瞬时功率谱的波形图;
(2)计算相位差和功率因数;
课程设计说明书第8页(3)计算有功功率;
(4)计算电压有效值;
总体设计框图如下图2-6所示:
图2-6功率分析的结构框图
3.LabVIEW功率谱功能实现
3.1各部分电路功能
1、信号发生器设计:
通过设定参数发生器产生同频率的一个正弦电压和一个正弦电流信号,可以同时调节它的幅值、频率和相位,用sinewave.vi节点来产生正弦波。
2、相位差的计算:
当电压和电流信号的频率相同可以求相位差,利用相位相减法即可求出。
3、功率计算:
,视在功率S=UI,有功功率P=UIcosφ,无功功率Q=UIcosφ,通过测量电压电流的最大值,再通过得出的相位差,三者之积可以得到结果。
4、功率谱图:
在电流电压信号发生器之后利用功率谱测量,从波形图表可以直观的看到功率谱图。
课程设计说明书第9页3.2程序设计
程序设计前面板,如下图3-1所示。
图3-1功率谱前面板程序框
图3-2功率谱后面板程序框图
课程设计说明书第10页3.3程序运行结果
设置正弦波电流、电压采样为128,频率为0.9,电流幅值为5V,电压幅值为8V,电流初始相位为30,电压初始相位为60,程序运行结果如下图3-3所示:
图
3-3运行程序结果
程序运行时,所得的功率结果为视在功率S=38.9116,平均功率P=6.0021,无功功率Q=38.445.瞬时电流I=3.3456,瞬时电压U=1.6632,瞬时功率UI=5.5648
经计算,平均功率P、无功功率Q、视在功率S之间满足关系式:
S=P2Q2.
课程设计说明书第11页总结
随着现代测试技术的不断发展,以LabVIEW为软件平台的虚拟仪器测量技术正在现代测控领域占据越来越重要的位置,LabVlEW是NI公司推出的虚拟仪器开发工具,它采用图形化编程语言———G语言,易学易用。
它的功能强大灵活,既可以和采集设备、控制设备等硬件进行通信,也可以和GPIB、PXI、RS-232、VXI仪器通信,简化了虚拟仪器的开发过程,缩短了系统开发和调试时间,广泛应用于工业自动化、试验测量、数据采集及处理等各个领域
在这次课程设计中我所研究的是虚拟功率谱的设计,由于时间有限,我所考虑的功率问题有一定局限性。
一般来说功率的大小为电压和电流信号相乘然后在一个周期内积分在除以周期的大小。
我设计的功率大小为电压的有效值乘以电流的有效值再乘以功率因数。
这次课程设计和我所学的专业息息相关,对我今后的学习和工作有很大的帮处,如果以后还有类似机会,我一定会弥补遗憾,考虑各种各样的情况,把设计做的更符合实际效果。
课程设计说明书第12页致谢
历时将近一个月的时间终于写完这篇论文,在论文的写作过程中遇到了很多的困难和障碍,都在同学和老师的帮助下度过了。
尤其要强烈感谢我的论文指导老师—付致伟老师,不厌其烦的帮助进行论文的修改和改进。
在此向帮助和指导过我的各位老师表示最衷心的感谢!
感谢这篇论文所涉及到的各位学者。
本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。
感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版等过程中提供热情的帮助。
由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!
课程设计说明书第13页参考文献
[1]王磊,陶梅编著.精通LabVIEW8.0[M].北京:
电子工业出版社.2007
[2]陈锡辉,张银鸿编著.LabVIEW8.2程序设计从入门到精通[M].北京:
清华大学出版社.2007
[3]邱关源主编.电路(第四版)[M].北京:
高等教育出版社.1999
[4]林继鹏,茹峰编.虚拟仪器原理及应用[M].北京:
中国电力出版社.2009
[5]谭浩强著.C语言程序设计(第二版)[M].北京:
清华大学出版社.1999
[6]杨乐平,李海涛,肖相生等编著.LabVIEW程序设计与应用(第二版)[M].北京:
电子工业出版社.2005
[7]杨乐平,李海