图形化程序设计语言(双语)实验报告(2010/2011学年第二学期)课程名称图形化程序设计语言(双语)实验名称LabWINDOWS/CVI实验实验时间2011年3月1日指导单位自动化学院指导教师戴尔晗学生姓名班级学号学院(系)自动化学院专业测控技术与仪器图形化程序设计语言(双语)基于LABVIEW的数字电压表的设计一、实验要求1.掌握数字电压表的基本原理和方法;2.基于LabView设计数字电压表并实现;二、实验原理电压是电路中常用的电信号,通过电压测量,利用基本公式可以导出其他的参数。因此,电压测量是其他许多电参数和非电参数量的基础。测量电压相当普及的一种测量仪表就是电压表,但常用的是模拟电压表。模拟电压表根据检波方式的不同。分为峰值电压表、均值电压表和平均值电压表,它们都各自做成独立的仪表。这样,使用模拟电压表进行交流电压测量时,必须根据测量要求选择仪表。另外,多数电压表的表头是按正弦交流有效值刻度的,而测量非正弦波时,必须经过换算才能得到正确的测量结果,从而给实际工作带来不便。采用虚拟电压表,可将表征交流电压特征的峰值、平均值和有效值集中显示在一块面板上,测量时可根据波形在面板上选择仪表,用户仅通过面板指示值就能对测量结果进行分析比较,大大简化了测量步骤。三、设计思路LabVIEw8.5版本的工程技术比以往任何一个版本都丰富.它采用了英文界面,各个控件的功能一目了然。利用它全新的用户界面对象和功能,能开发出专业化、可完全自定义的前面板。LabVIEW8.2对数学、信号处理和分析也进行了重大的补充和完善,信号处理分析和数学具有更为全面和强大的库,其中包括500多个函数。所以在LabVIEW8.5版本下能够更方便地实现虚拟电压表的设计。该电压表主要用于电路分析和模拟电子技术等实验课的教学和测量仪器,能够让使用者了解和掌握电压的测量和电压表对各种波形的不同响应。因此,虚拟电压表应具备电源开关控制、波形选择,以及显示峰值、有效值和平均值三种结果,且输入信号的大小可调节等功能。所以,用软件虚拟了一个信号发生器。该信号发生器可产生正弦波、方波和三角波,还可以输入公式,产生任意波形。根据需要,可调节面板上的控件来改变信号的频率和幅度等可调参数,然后检测电压表的运行情况。因此,在LabVIEW图形语言环境下设计的虚拟电压表主要分为两个部分:第一部分是虚拟电压表前面板的设计;第二部分是虚拟电压表流程图的设汁。(1)前面板的设计前面板模拟真实电压表的前面板,用于设置输入数值和观察输出量。由于虚拟面板直接面向用户,是虚拟电压表控制软件的核心。设计这部分时,主要考虑界面美观、操作简洁,用户能通过面板上的各种按钮、开关等控件来控制虚拟电压表进行测量工作。根据传统电压表面板控件的功能,利用LabVIEW中的控制模板,分别在设计面板上放入模拟实际电压表控件的数据输入控件、显示器、数据输出控件、开关、选择器,显示器用于显示输入的信号波形;数据输入控件主图形化程序设计语言(双语)要用于输入被测信号的信号频率、采样频率、采样数、振幅和相位;数据输出控件则用于输出被测信号经过处理后得到的峰值、平均值和有效值及标准频率的有效显示。打开LabVIEW前面板的编辑窗口,点击鼠标右键,显示控制模板,选择图形一波形图,作为电压表的显示器。在显示器模板上点击鼠标右键,对其进行属性设置,例如根据示波器的频率与幅度值的变化,利用工具模板中的文字工具,对示波器横(时间)、纵(幅度)坐标的刻度进行重新设置。用Graph控件设计的示波器是完全同步的,且波形稳定。选择控件→数值→数值输入控件/数值显示控件,作为电压表参数设置中输入和测试结果的数据显示。选择控件→下拉列表与枚举→菜单下拉列表,放置对输入波形选择开关,在下拉列表中单击鼠标右键,选择“编辑项”对其进行编辑。“电源开关”控件选择经典→经典布尔→方形按钮,当按下开关时,虚拟电压表开始运行,同时电源开关的指示灯亮。同样,当弹起开关时,虚拟电压表停止运行。前面板如图1所示。显示界面:模拟信号生成:图形化程序设计语言(双语)3流程图的设计每一个前面板都对应一个流程图程序。前面板的设计完成后,可对流程图程序进行设计。打开LabVIEW设计环境中的窗口→显示程序框图,进入流程图编辑窗口,与前面板各控件对应的端口图标自动出现在流程图编辑窗口中。利用LabVIEW中的功能模块,根据虚拟示波器前面板各控件的作用和联系,虚拟示波器运作后数据流的控制,分别在流程图设计面板中放置各个功能模块,合理摆放后,在用连线工具依次连接,以实现虚拟示波器的功能。数据流的编辑主要是对端口图标的连接。用连线工具进行连线时,如果端口闪烁,说明相连的数据类型匹配,否则不能连接。(1)虚拟信号发生器的实现由于虚拟电压表主要用于演示,所以为了方便,可直接利用LabVIEW软件产生仿真信号。在该设计中,设置了正弦波、锯齿、波方波和三角波以及由公式确定的任意波形等基本波形。在程序设计框图中,使用一个Case(选择)语句对四种波形进行选择。Case语句中,每一个数字(0,1,2,3,4)都代表一种波形,与前面板控件中5种状态相对应。至于Case语句的制作,只需将5个图标中的一个,例如正弦波发生程序,用Case框起来,然后在上面的空白处写上相应的数字,例如1;然后点击箭头,可以设置第二个图标,如果要添加一个Case的话,可以点击鼠标右键,直接添加,编辑相应的基本信号发生器VI中相应的节点即可。在添加公式波时,要把基本信号发生器VI换成公式波形VI,本文给出了Case结构的一个分支,公式波形的流程图如图2所示。该子Ⅵ可使用指定时间函数的公式字符串生成一个函数波形,它要求公式的自变量必须是t,它所支持的运算符和常用的函数。具体函数如下图:基本函数发生器:由信号类型可以选择生成波形的类型一般,0——正弦波;1——三角波;2——方波;3——锯齿波;采样信息包含每秒采样率,和波形的采样数。(默认值都为1000)。波形从信号输出中输出来。图形化程序设计语言(双语)公式波形:公式是用于生成信号输出波形的表达式,一般f为频率,a为幅度,n为目前生成的采样数,n为已经过去的秒数,w为2*pi*f。另外,在模拟状态下,信号频率以赫兹或者每秒周期数为单位。但是在数字系统中,通常使用数字频率,它是信号频率与采样频率的比值,被称为标准频率。所以,在框图程序中,应当在信号频率与采样频率之间加载一个除法器。在波形发生程序按照规定的参数产生波形后,如果将波形直接输入波形显示控件,那将是错误的。因为波形显示控件,并不像数据显示控件那样只需要一个或一组数据,因此波形能否按规定显示出来,取决于输入的几组不同且具有决定性的数据,例如周期、相位等。(2)数据处理部分数据处理部分的作用,就是将产生出的信号通过不同形式的检波、计算,得出规定的不同的结果。在该设计中同时显示交流有效值、峰值和平均值。对于一个纯粹的交流电压,正半周期信号与负半周期信号对称,U的平均值等于零,所以一般不直接测量平均值。在设计时,按函数→数值→绝对值取交流电压的绝对值,然后求平均值,取全波平均值。交流电压中的最大值,即为峰值。可以通过比较数据求出最大值,这需要使用波形最大、最小子虚拟仪器来处理框图。有效值显示:在函数→信号处理→波形测量中选择基本平均直流均方根。其框图符号如图所示。图形化程序设计语言(双语)上图中,DC均值为测量的直流分量;均方根测量有效值;reset用于重启过去记录的时间信号、平均测量的参数;在单个模块VI中,可依据输入记录长度自动设置平均时间;Window是在DC/RMS计算之前,用于记录时间的窗;erroein是在该VI运行之前描述错误环境,默认值为noerror。如果错误已经发生,该VI在errorout端返回错误代码,子VI在无错误时才正常运行。(3)开关部分用一个while条件语句设计整个框图程序,当模拟电压开关为“1”时,虚拟电压表工作,条件语句中的程序开始运行;当模拟开关为“0”即关时,条件语句中的程序停止运行,虚拟电压表不工作。设计好的流程图如图所示。图形化程序设计语言(双语)四、实验结果(1)生成信号设置:图形化程序设计语言(双语)(2)实验数据:(3)数据分析:由上述结果可得出:由于电压信号的对称性和周期性,它的直流平均为零;有效值等效于模拟电压表所测的数值。图形化程序设计语言(双语)五、性能分析:该软件可以准确的测出正弦,方波,三角波,锯齿波以及任意波形的电压有效值,直流平均值等等。(如下图)该软件界面简单易操作;并加了错误设置,可分析出由于不当操作而引起的错误。(如下图)六、实验小结:经过实际使用,虚拟电压表所有的控制键和功能正常,符合使用要求。需要指出的是,在设计该虚拟电压表时,签于标其使用的目的,仅从功能上考虑,并未对虚拟电压表的技术指进行深入研究。事实上,峰值是取样值的最大值,而取样点不可能取得太多,否则运行速度太慢,因此显示的峰值与理论值是有差别的,在设计时应注意合理选择参数。